/* =========================================================
   KIT Base Theme — Haupt-Stylesheet
   Natives CSS, keine Build-Pipeline.
   Pro Kunde im Child-Theme nur die Custom Properties ueberschreiben.
   ========================================================= */

:root {
    /* ==========================================================
       Farben — neutraler Default, pro Kundenprojekt im Child-Theme überschreiben
       ========================================================== */
    --kit-color-primary:     #2d6c9e;
    --kit-color-primary-deep:#1e4d74;
    --kit-color-primary-soft:#eaf2fa;
    --kit-color-secondary:   #b48165;

    --kit-color-bg:          #fafaf8;
    --kit-color-bg-alt:      #f0f4f8;
    --kit-color-surface:     #ffffff;

    --kit-color-ink:         #0f172a;
    --kit-color-ink-soft:    #1e293b;
    --kit-color-muted:       #475569;
    --kit-color-subtle:      #64748b;
    --kit-color-border:      #e2e8f0;
    --kit-color-border-soft: #f1f5f9;

    --kit-color-success:     #0f9d58;
    --kit-color-warning:     #eab308;
    --kit-color-error:       #dc2626;

    --kit-color-focus-ring:  #2d6c9e;

    /* ==========================================================
       Typografie — System-UI-Stack per Default (kein Font-Load)
       Überschreiben via kit_fonts_register() + Child-Theme CSS.
       ========================================================== */
    --kit-font-heading: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --kit-font-body:    ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --kit-font-mono:    ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;

    /* Fluid Typo-Skala (Mobile → Desktop) */
    --kit-text-xs:   clamp(.75rem,  .7rem + .12vw, .8rem);
    --kit-text-sm:   clamp(.85rem,  .8rem + .15vw, .9rem);
    --kit-text-base: clamp(1rem,    .95rem + .2vw, 1.05rem);
    --kit-text-lg:   clamp(1.1rem,  1rem + .35vw,  1.2rem);
    --kit-text-xl:   clamp(1.25rem, 1.1rem + .5vw, 1.4rem);
    --kit-text-2xl:  clamp(1.5rem,  1.3rem + .8vw, 1.75rem);
    --kit-text-3xl:  clamp(1.8rem,  1.5rem + 1.2vw, 2.2rem);
    --kit-text-4xl:  clamp(2.2rem,  1.8rem + 1.8vw, 3rem);
    --kit-text-5xl:  clamp(2.6rem,  2rem + 2.6vw, 3.8rem);

    /* ==========================================================
       Spacing-Skala
       ========================================================== */
    --kit-space-1:  4px;
    --kit-space-2:  8px;
    --kit-space-3:  12px;
    --kit-space-4:  16px;
    --kit-space-5:  20px;
    --kit-space-6:  24px;
    --kit-space-8:  32px;
    --kit-space-10: 40px;
    --kit-space-12: 48px;
    --kit-space-16: 64px;
    --kit-space-20: 80px;
    --kit-space-24: 96px;

    --kit-space-section: clamp(48px, 8vw, 96px);

    /* ==========================================================
       Layout
       ========================================================== */
    --kit-container:    1200px;
    --kit-container-narrow: 880px;
    --kit-container-wide:   1440px;
    --kit-radius-sm: 4px;
    --kit-radius-md: 8px;
    --kit-radius-lg: 16px;
    --kit-radius:    0;               /* Default: kantig. Child kann auf var(--kit-radius-md) setzen. */
    --kit-shadow-sm: 0 1px 2px rgba(15,23,42,.04), 0 1px 3px rgba(15,23,42,.06);
    --kit-shadow-md: 0 4px 14px rgba(15,23,42,.06), 0 2px 6px rgba(15,23,42,.04);
    --kit-shadow-lg: 0 20px 50px rgba(15,23,42,.1), 0 8px 20px rgba(15,23,42,.06);
    --kit-trans:     180ms cubic-bezier(.2,.8,.2,1);
    --kit-trans-fast:120ms cubic-bezier(.2,.8,.2,1);

    /* ==========================================================
       Z-Index-Stack
       ========================================================== */
    --kit-z-dropdown: 100;
    --kit-z-sticky:   200;
    --kit-z-fixed:    300;
    --kit-z-modal:    400;
    --kit-z-skip:     9999;
}

/* =========================================================
   Basics / Reset
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

html, body { margin: 0; padding: 0; }

body {
    font-family: var(--kit-font-body);
    font-size: var(--kit-text-base);
    color: var(--kit-color-ink);
    background: var(--kit-color-bg);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-feature-settings: "kern" 1, "liga" 1;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

img, svg, video, canvas { max-width: 100%; height: auto; display: block; }

a {
    color: var(--kit-color-primary-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    transition: color var(--kit-trans-fast);
}
a:hover { color: var(--kit-color-ink); }

/* Focus — sichtbar, überall konsistent */
:focus-visible {
    outline: 2px solid var(--kit-color-focus-ring);
    outline-offset: 3px;
    border-radius: var(--kit-radius-sm);
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline: 2px solid var(--kit-color-focus-ring);
    outline-offset: 3px;
}

/* Selection */
::selection {
    background: var(--kit-color-primary-soft);
    color: var(--kit-color-primary-deep);
}

/* Typografie */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--kit-font-heading);
    line-height: 1.15;
    letter-spacing: -.02em;
    margin: 0 0 .6em;
    color: var(--kit-color-ink);
    font-weight: 700;
    text-wrap: balance;
}

h1 { font-size: var(--kit-text-5xl); letter-spacing: -.025em; }
h2 { font-size: var(--kit-text-3xl); }
h3 { font-size: var(--kit-text-xl); font-weight: 600; }
h4 { font-size: var(--kit-text-lg); font-weight: 600; }
h5, h6 { font-size: var(--kit-text-base); font-weight: 600; }

p, ul, ol, dl, blockquote, pre, figure, table {
    margin: 0 0 1.2em;
    text-wrap: pretty;
}

ul, ol { padding-left: 1.4em; }
li { margin-bottom: .3em; }

small, .kit-text-sm { font-size: var(--kit-text-sm); color: var(--kit-color-muted); }

strong, b { font-weight: 600; color: var(--kit-color-ink-soft); }

code, kbd, samp {
    font-family: var(--kit-font-mono);
    font-size: .9em;
    background: var(--kit-color-bg-alt);
    padding: .12em .4em;
    border-radius: var(--kit-radius-sm);
}

pre {
    background: var(--kit-color-bg-alt);
    padding: var(--kit-space-4) var(--kit-space-5);
    overflow-x: auto;
    border-radius: var(--kit-radius-md);
}
pre code { background: transparent; padding: 0; }

hr {
    border: 0;
    height: 1px;
    background: var(--kit-color-border);
    margin: var(--kit-space-10) 0;
}

blockquote {
    border-left: 3px solid var(--kit-color-primary);
    padding-left: var(--kit-space-5);
    color: var(--kit-color-muted);
    font-style: italic;
    margin-left: 0;
    margin-right: 0;
}

/* Layout-Container */
.kit-wrap {
    max-width: var(--kit-container);
    margin: 0 auto;
    padding: 0 var(--kit-space-6);
}
.kit-wrap--narrow { max-width: var(--kit-container-narrow); }
.kit-wrap--wide   { max-width: var(--kit-container-wide); }

/* Screen-Reader-Only */
.screen-reader-text, .kit-sr {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
    padding: 0;
    margin: -1px;
}

/* Main-Container */
.kit-main {
    min-height: 40vh;
}

/* =========================================================
   Skip-Link (a11y)
   ========================================================= */
.kit-skip-link {
    position: absolute;
    top: -60px;
    left: 8px;
    background: var(--kit-color-ink);
    color: #fff;
    padding: 10px 16px;
    z-index: 9999;
    text-decoration: none;
    font-weight: 600;
    transition: top .15s ease;
}
.kit-skip-link:focus {
    top: 8px;
    color: #fff;
}

/* =========================================================
   Site-Header — klassisches Business-Layout
   - optional Top-Bar (Hours/Mail/Phone/Social)
   - Haupt-Navbar (Logo / Menü / CTA)
   Header sitzt im Fluss, nicht über dem Hero.
   ========================================================= */
.kit-site-header {
    position: relative;
    background: var(--kit-color-surface);
    border-bottom: 1px solid var(--kit-color-border);
}

/* --- Top-Bar --- */
.kit-topbar {
    background: var(--kit-color-bg-alt);
    border-bottom: 1px solid var(--kit-color-border);
    font-size: 13px;
    color: var(--kit-color-muted);
}
.kit-topbar__wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--kit-space-4);
    padding-top: 10px;
    padding-bottom: 10px;
    flex-wrap: wrap;
}
.kit-topbar__left,
.kit-topbar__right {
    display: flex;
    align-items: center;
    gap: var(--kit-space-5);
    flex-wrap: wrap;
}
.kit-topbar__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--kit-color-muted);
    text-decoration: none;
    white-space: nowrap;
}
a.kit-topbar__item { color: var(--kit-color-muted); }
a.kit-topbar__item:hover { color: var(--kit-color-primary-deep); }
.kit-topbar__item .kit-icon { color: var(--kit-color-primary); }

.kit-topbar__social {
    list-style: none;
    margin: 0;
    padding: 0;
    display: inline-flex;
    gap: 8px;
}
.kit-topbar__social li { margin: 0; }
.kit-topbar__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
    color: var(--kit-color-muted);
    background: transparent;
    border: 1px solid var(--kit-color-border);
    border-radius: 999px;
    text-decoration: none;
    transition: all var(--kit-trans-fast);
}
.kit-topbar__social a:hover {
    color: #fff;
    background: var(--kit-color-primary);
    border-color: var(--kit-color-primary);
}

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

/* --- Haupt-Navbar --- */
.kit-navbar {
    background: var(--kit-color-surface);
}
.kit-navbar__wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--kit-space-6);
    padding-top: var(--kit-space-4);
    padding-bottom: var(--kit-space-4);
    flex-wrap: nowrap;
}

.kit-site-header__brand {
    flex: 0 0 auto;
}
.kit-site-header__brand img,
.kit-site-header__brand .custom-logo-link img {
    max-height: 48px;
    width: auto;
    display: block;
}
.kit-site-header__title {
    font-family: var(--kit-font-heading);
    font-size: 20px;
    font-weight: 700;
    color: var(--kit-color-ink);
    text-decoration: none;
    letter-spacing: -.01em;
}

.kit-site-nav {
    flex: 1 1 auto;
    display: flex;
    justify-content: center;
}
.kit-site-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    align-items: center;
}
.kit-site-nav__list li { margin: 0; }
.kit-site-nav__list a {
    display: inline-block;
    padding: 10px 14px;
    font-size: 15px;
    font-weight: 500;
    color: var(--kit-color-ink);
    text-decoration: none;
    border-radius: var(--kit-radius-sm);
    transition: color var(--kit-trans-fast), background var(--kit-trans-fast);
}
.kit-site-nav__list a:hover,
.kit-site-nav__list .current-menu-item > a {
    color: var(--kit-color-primary);
    background: var(--kit-color-primary-soft);
}

.kit-header__cta {
    flex: 0 0 auto;
}

/* --- Burger / Mobile --- */
.kit-nav-toggle {
    display: none;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    padding: 0;
    background: transparent;
    border: 1px solid var(--kit-color-border);
    border-radius: var(--kit-radius-sm);
    cursor: pointer;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-direction: column;
}
.kit-nav-toggle__bar {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--kit-color-ink);
    border-radius: 2px;
    transition: transform var(--kit-trans-fast), opacity var(--kit-trans-fast);
}

@media (max-width: 900px) {
    .kit-site-nav { display: none; }
    .kit-nav-toggle { display: inline-flex; }
    .kit-header__cta { display: none; }
}
@media (max-width: 600px) {
    .kit-header__cta { display: none; }
}

/* =========================================================
   Site-Footer
   ========================================================= */
.kit-site-footer {
    background: var(--kit-color-ink);
    color: #cfd8e4;
    padding: 48px 0;
    margin-top: 80px;
}
.kit-site-footer__wrap {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.kit-site-footer__brand {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.kit-site-footer__title {
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    letter-spacing: -.01em;
}
.kit-site-footer__tagline {
    font-size: 14px;
    color: #94a3b8;
}
.kit-site-footer__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
}
.kit-site-footer__list a {
    color: #cfd8e4;
    font-size: 14px;
    text-decoration: none;
}
.kit-site-footer__list a:hover { color: #fff; }
.kit-site-footer__meta {
    font-size: 12px;
    color: #94a3b8;
    letter-spacing: .04em;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.08);
}

@media (min-width: 720px) {
    .kit-site-footer__wrap {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    .kit-site-footer__meta {
        width: 100%;
        border-top: 1px solid rgba(255,255,255,.08);
        margin-top: 16px;
        padding-top: 16px;
    }
}

/* =========================================================
   Buttons
   ========================================================= */
.kit-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    font-family: var(--kit-font-body);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.02em;
    border-radius: var(--kit-radius);
    border: 1px solid transparent;
    cursor: pointer;
    transition: all var(--kit-trans);
    line-height: 1;
    text-decoration: none;
}

.kit-btn--primary {
    background: var(--kit-color-primary);
    color: #fff;
}
.kit-btn--primary:hover {
    background: var(--kit-color-primary-deep);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: var(--kit-shadow-md);
}

.kit-btn--ghost {
    background: transparent;
    color: var(--kit-color-primary);
    border-color: var(--kit-color-primary);
}
.kit-btn--ghost:hover {
    background: var(--kit-color-primary);
    color: #fff;
}

/* =========================================================
   [kit_hero]
   ========================================================= */
.kit-hero {
    padding: clamp(48px, 8vw, 96px) 0;
    background: var(--kit-color-bg);
    border-bottom: 1px solid var(--kit-color-border);
}

.kit-hero__wrap {
    display: flex;
    flex-direction: column;
    gap: 22px;
    align-items: flex-start;
}

.kit-hero__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--kit-color-primary-deep);
}

.kit-hero__title {
    font-size: clamp(1.9rem, 4.6vw, 3.6rem);
    line-height: 1.12;
    margin: 0;
    letter-spacing: -.025em;
    max-width: 22ch;
    color: var(--kit-color-ink);
}

.kit-hero__subtitle {
    font-size: clamp(1rem, 1.3vw, 1.2rem);
    color: var(--kit-color-muted);
    max-width: 56ch;
    margin: 0;
}

.kit-hero__actions { margin-top: 8px; }

.kit-hero__media {
    width: 100%;
    margin-top: 24px;
}
.kit-hero__img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.kit-hero--dark {
    background: var(--kit-color-ink);
    color: #fff;
    border-bottom-color: transparent;
}
.kit-hero--dark .kit-hero__eyebrow { color: #a8c5e0; }
.kit-hero--dark .kit-hero__title { color: #fff; }
.kit-hero--dark .kit-hero__subtitle { color: #cfd8e4; }

@media (min-width: 900px) {
    .kit-hero__wrap {
        gap: 28px;
    }
}

/* =========================================================
   Icons (inline SVG, currentColor)
   ========================================================= */
.kit-icon { display: inline-block; vertical-align: middle; flex-shrink: 0; }

/* =========================================================
   Section-Defaults
   ========================================================= */
.kit-stats, .kit-pl, .kit-services, .kit-tb, .kit-values, .kit-logos,
.kit-testi, .kit-stories, .kit-story-feat, .kit-tl, .kit-pq, .kit-cmp,
.kit-check, .kit-team, .kit-career, .kit-quals, .kit-faq, .kit-vk,
.kit-cta, .kit-kk {
    padding: var(--kit-space-section) 0;
}
.kit-stats__title, .kit-services__title, .kit-values__title,
.kit-testi__title, .kit-stories__title, .kit-tl__title, .kit-cmp__title,
.kit-check__title, .kit-team__title, .kit-career__title,
.kit-quals__title, .kit-faq__title {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    margin: 0 0 12px;
    letter-spacing: -.02em;
}
.kit-services__intro, .kit-stories__intro, .kit-career__intro {
    color: var(--kit-color-muted);
    max-width: 60ch;
    margin: 0 0 36px;
}

/* =========================================================
   [kit_stats] — Kennzahlen-Band (Sales-Pattern)
   Rendert ein Card-Band mit 4 Items, kann per Child via margin-top negativ
   über einen Hero overlappen.
   ========================================================= */
.kit-stats {
    padding: var(--kit-space-section) 0;
}
.kit-stats__title {
    font-size: clamp(1.3rem, 2.4vw, 1.75rem);
    margin: 0 0 16px;
}
.kit-stats__inner {
    list-style: none;
    margin: 0 auto;
    padding: var(--kit-space-8);
    background: var(--kit-color-surface);
    border: 1px solid var(--kit-color-border);
    border-radius: var(--kit-radius);
    display: grid;
    gap: var(--kit-space-10);
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    box-shadow: var(--kit-shadow-md);
    max-width: var(--kit-container);
}
.kit-stats__item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
    padding: 0;
    background: transparent;
    border: 0;
}
.kit-stats__num {
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: 700;
    color: var(--kit-color-ink);
    line-height: 1;
    letter-spacing: -0.03em;
}
.kit-stats__num .unit {
    font-size: 0.62em;
    margin-left: 2px;
    color: var(--kit-color-primary);
}
.kit-stats__label {
    font-size: 13px;
    color: var(--kit-color-muted);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 600;
}

/* =========================================================
   [kit_problem_loesung]
   ========================================================= */
.kit-pl__wrap {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    align-items: stretch;
}
.kit-pl__col {
    padding: 28px;
    background: #fff;
    border: 1px solid var(--kit-color-border);
}
.kit-pl__col--problem { border-left: 4px solid var(--kit-color-secondary); }
.kit-pl__col--loesung { border-left: 4px solid var(--kit-color-primary); }
.kit-pl__label {
    font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em;
    color: var(--kit-color-muted);
    margin-bottom: 10px;
}
.kit-pl__col--problem .kit-pl__label { color: var(--kit-color-secondary); }
.kit-pl__col--loesung .kit-pl__label { color: var(--kit-color-primary); }
.kit-pl__text { margin: 0; }
.kit-pl__divider { display: none; color: var(--kit-color-primary); align-items: center; justify-content: center; }
@media (min-width: 820px) {
    .kit-pl__wrap { grid-template-columns: 1fr auto 1fr; }
    .kit-pl__divider { display: flex; }
}

/* =========================================================
   [kit_services]
   ========================================================= */
.kit-services__grid {
    list-style: none; margin: 0; padding: 0;
    display: grid; gap: 18px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.kit-services__item { display: flex; }
.kit-services__card {
    display: flex; flex-direction: column; gap: 12px;
    padding: 28px;
    background: #fff;
    border: 1px solid var(--kit-color-border);
    color: inherit; text-decoration: none;
    transition: border-color var(--kit-trans), transform var(--kit-trans), box-shadow var(--kit-trans);
    width: 100%;
}
a.kit-services__card:hover {
    border-color: var(--kit-color-primary);
    transform: translateY(-2px);
    box-shadow: var(--kit-shadow-md);
}
.kit-services__icon { color: var(--kit-color-primary); }
.kit-services__h { font-size: 18px; margin: 0; }
.kit-services__t { color: var(--kit-color-muted); margin: 0; font-size: 15px; }
.kit-services__more {
    margin-top: auto;
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--kit-color-primary); font-weight: 600; font-size: 14px;
}

/* =========================================================
   [kit_text_bild]
   ========================================================= */
.kit-tb__wrap {
    display: grid; gap: 36px;
    grid-template-columns: 1fr;
    align-items: center;
}
.kit-tb__eyebrow {
    font-size: 12px; font-weight: 600; letter-spacing: .2em;
    text-transform: uppercase; color: var(--kit-color-primary-deep);
    margin-bottom: 10px;
}
.kit-tb__title {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    margin: 0 0 16px; letter-spacing: -.02em;
}
.kit-tb__body { color: var(--kit-color-muted); margin-bottom: 24px; }
.kit-tb__body p:last-child { margin-bottom: 0; }
.kit-tb__img { width: 100%; height: auto; }
@media (min-width: 860px) {
    .kit-tb__wrap { grid-template-columns: 1.1fr 1fr; gap: 56px; }
    .kit-tb--rechts .kit-tb__text { order: 2; }
    .kit-tb--rechts .kit-tb__media { order: 1; }
}

/* =========================================================
   [kit_values]
   ========================================================= */
.kit-values__grid {
    list-style: none; margin: 28px 0 0; padding: 0;
    display: grid; gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.kit-values__item { padding: 24px; background: #fff; border: 1px solid var(--kit-color-border); }
.kit-values__icon { color: var(--kit-color-primary); display: inline-flex; margin-bottom: 12px; }
.kit-values__h { font-size: 17px; margin: 0 0 6px; }
.kit-values__t { color: var(--kit-color-muted); font-size: 15px; margin: 0; }

/* =========================================================
   [kit_logos]
   ========================================================= */
.kit-logos__title {
    font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .22em;
    color: var(--kit-color-muted);
    text-align: center; margin-bottom: 20px;
}
.kit-logos__list {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
    gap: 36px 48px;
}
.kit-logos__img { max-height: 44px; width: auto; filter: grayscale(1); opacity: .7; transition: opacity var(--kit-trans), filter var(--kit-trans); }
.kit-logos__img:hover { filter: grayscale(0); opacity: 1; }

/* =========================================================
   [kit_testimonials]
   ========================================================= */
.kit-testi__grid {
    list-style: none; margin: 28px 0 0; padding: 0;
    display: grid; gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.kit-testi__card {
    padding: 28px;
    background: #fff;
    border: 1px solid var(--kit-color-border);
    display: flex; flex-direction: column; gap: 16px;
}
.kit-testi__quote {
    margin: 0;
    font-size: 17px;
    line-height: 1.5;
    color: var(--kit-color-ink);
}
.kit-testi__quote::before { content: '„'; }
.kit-testi__quote::after { content: '"'; }
.kit-testi__author { display: flex; align-items: center; gap: 12px; }
.kit-testi__foto { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.kit-testi__name { font-weight: 600; font-size: 14px; }
.kit-testi__firma { font-size: 13px; color: var(--kit-color-muted); }

/* Sterne */
.kit-stars { display: inline-flex; gap: 2px; color: var(--kit-color-secondary); }

/* =========================================================
   [kit_stories]
   ========================================================= */
.kit-stories__grid {
    list-style: none; margin: 0; padding: 0;
    display: grid; gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.kit-stories__card { background: #fff; border: 1px solid var(--kit-color-border); overflow: hidden; }
.kit-stories__link { color: inherit; text-decoration: none; display: block; }
a.kit-stories__link { transition: transform var(--kit-trans); }
a.kit-stories__link:hover { transform: translateY(-2px); }
.kit-stories__media { aspect-ratio: 16/10; overflow: hidden; }
.kit-stories__img { width: 100%; height: 100%; object-fit: cover; }
.kit-stories__body { padding: 20px 22px 24px; }
.kit-stories__h { font-size: 17px; margin: 0 0 8px; }
.kit-stories__t { color: var(--kit-color-muted); font-size: 15px; margin: 0; }

/* =========================================================
   [kit_story_featured]
   ========================================================= */
.kit-story-feat__wrap {
    display: grid; gap: 36px;
    grid-template-columns: 1fr;
    align-items: center;
    padding: 40px;
    background: var(--kit-color-primary-soft);
    border-left: 4px solid var(--kit-color-primary);
}
.kit-story-feat__title { margin: 0 0 12px; font-size: clamp(1.4rem, 2.6vw, 2rem); }
.kit-story-feat__text { color: var(--kit-color-ink); margin-bottom: 20px; }
.kit-story-feat__text p:last-child { margin-bottom: 0; }
.kit-story-feat__img { width: 100%; height: auto; }
@media (min-width: 860px) {
    .kit-story-feat__wrap { grid-template-columns: 1fr 1.3fr; padding: 56px; }
}

/* =========================================================
   [kit_timeline]
   ========================================================= */
.kit-tl__list {
    list-style: none; margin: 28px 0 0; padding: 0;
    display: grid; gap: 18px;
    position: relative;
}
.kit-tl__item {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 20px;
    align-items: flex-start;
    padding: 20px 24px 20px 0;
    background: #fff;
    border: 1px solid var(--kit-color-border);
}
.kit-tl__marker {
    width: 52px; height: 100%;
    background: var(--kit-color-primary);
    color: #fff;
    font-weight: 700; font-size: 18px;
    display: flex; align-items: center; justify-content: center;
    min-height: 52px;
}
.kit-tl__h { font-size: 17px; margin: 4px 0 6px; }
.kit-tl__t { color: var(--kit-color-muted); font-size: 15px; margin: 0; }

/* =========================================================
   [kit_pullquote]
   ========================================================= */
.kit-pq { background: var(--kit-color-primary-soft); }
.kit-pq__wrap {
    max-width: 780px; margin: 0 auto;
    text-align: center;
    display: flex; flex-direction: column; align-items: center; gap: 16px;
}
.kit-pq__mark { color: var(--kit-color-primary); opacity: .6; }
.kit-pq__zitat {
    margin: 0;
    font-size: clamp(1.3rem, 2.4vw, 1.8rem);
    line-height: 1.4;
    letter-spacing: -.01em;
    color: var(--kit-color-ink);
}
.kit-pq__autor { font-size: 14px; color: var(--kit-color-muted); letter-spacing: .04em; }

/* =========================================================
   [kit_compare]
   ========================================================= */
.kit-cmp__grid {
    display: grid; gap: 20px;
    grid-template-columns: 1fr;
    margin-top: 28px;
}
.kit-cmp__col {
    padding: 28px;
    background: #fff;
    border: 1px solid var(--kit-color-border);
}
.kit-cmp__col--neg { opacity: .9; }
.kit-cmp__col--pos { border-color: var(--kit-color-primary); }
.kit-cmp__label {
    font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em;
    margin-bottom: 16px;
    color: var(--kit-color-muted);
}
.kit-cmp__col--pos .kit-cmp__label { color: var(--kit-color-primary); }
.kit-cmp__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.kit-cmp__items li { display: flex; gap: 10px; align-items: flex-start; }
.kit-cmp__col--neg .kit-icon { color: var(--kit-color-muted); }
.kit-cmp__col--pos .kit-icon { color: var(--kit-color-primary); }
@media (min-width: 720px) {
    .kit-cmp__grid { grid-template-columns: 1fr 1fr; }
}

/* =========================================================
   [kit_checklist]
   ========================================================= */
.kit-check__list {
    list-style: none; margin: 24px 0 0; padding: 0;
    display: flex; flex-direction: column; gap: 10px;
    max-width: 720px;
}
.kit-check__item {
    display: flex; gap: 12px; align-items: flex-start;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid var(--kit-color-border);
}
.kit-check__item.is-done .kit-icon { color: var(--kit-color-primary); }
.kit-check__item.is-open .kit-icon { color: var(--kit-color-muted); }
.kit-check__item.is-open { opacity: .75; }

/* =========================================================
   [kit_team]
   ========================================================= */
.kit-team__grid {
    list-style: none; margin: 28px 0 0; padding: 0;
    display: grid; gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.kit-team__card { background: #fff; border: 1px solid var(--kit-color-border); overflow: hidden; }
.kit-team__media { aspect-ratio: 4/5; }
.kit-team__foto { width: 100%; height: 100%; object-fit: cover; }
.kit-team__body { padding: 18px 20px 22px; }
.kit-team__name { font-weight: 700; font-size: 16px; }
.kit-team__pos { font-size: 14px; color: var(--kit-color-muted); margin-bottom: 10px; }
.kit-team__contact { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.kit-team__contact a { color: var(--kit-color-primary-deep); text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }

/* =========================================================
   [kit_career]
   ========================================================= */
.kit-career__list {
    list-style: none; margin: 24px 0 0; padding: 0;
    display: flex; flex-direction: column; gap: 12px;
}
.kit-career__item {
    display: grid; gap: 6px 18px;
    grid-template-columns: 1fr auto;
    grid-template-areas: "titel more" "ort more";
    padding: 18px 22px;
    background: #fff;
    border: 1px solid var(--kit-color-border);
}
.kit-career__titel { grid-area: titel; font-weight: 600; font-size: 16px; }
.kit-career__ort { grid-area: ort; color: var(--kit-color-muted); font-size: 14px; }
.kit-career__more { grid-area: more; align-self: center; color: var(--kit-color-primary); font-weight: 600; font-size: 14px; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }
.kit-career__empty { padding: 24px; background: var(--kit-color-bg-alt); color: var(--kit-color-muted); }

/* =========================================================
   [kit_quals]
   ========================================================= */
.kit-quals__grid {
    list-style: none; margin: 28px 0 0; padding: 0;
    display: grid; gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.kit-quals__item {
    display: flex; gap: 14px; align-items: flex-start;
    padding: 20px 22px;
    background: #fff;
    border: 1px solid var(--kit-color-border);
}
.kit-quals__icon { color: var(--kit-color-primary); flex-shrink: 0; }
.kit-quals__h { font-weight: 600; font-size: 15px; margin-bottom: 4px; }
.kit-quals__t { color: var(--kit-color-muted); font-size: 14px; margin: 0; }

/* =========================================================
   [kit_faq]
   ========================================================= */
.kit-faq__list { margin-top: 20px; max-width: 820px; display: flex; flex-direction: column; gap: 8px; }
.kit-faq__item {
    background: #fff;
    border: 1px solid var(--kit-color-border);
}
.kit-faq__q {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 18px 22px;
    cursor: pointer;
    list-style: none;
    font-weight: 600;
    color: var(--kit-color-ink);
}
.kit-faq__q::-webkit-details-marker { display: none; }
.kit-faq__chev { color: var(--kit-color-muted); transition: transform var(--kit-trans); }
.kit-faq__item[open] .kit-faq__chev { transform: rotate(180deg); }
.kit-faq__a { padding: 0 22px 18px; color: var(--kit-color-muted); }
.kit-faq__a p { margin: 0 0 10px; }
.kit-faq__a p:last-child { margin-bottom: 0; }

/* =========================================================
   [kit_visitenkarte]
   ========================================================= */
.kit-vk__wrap {
    display: grid; gap: 20px;
    grid-template-columns: 1fr;
    align-items: center;
    padding: 28px;
    background: #fff;
    border: 1px solid var(--kit-color-border);
    max-width: 680px;
}
.kit-vk__media { width: 120px; }
.kit-vk__foto { width: 120px; height: 120px; object-fit: cover; border-radius: 50%; }
.kit-vk__name { font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.kit-vk__pos { font-size: 14px; color: var(--kit-color-muted); margin-bottom: 12px; }
.kit-vk__lines { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.kit-vk__lines li { display: flex; gap: 8px; align-items: flex-start; color: var(--kit-color-ink); }
.kit-vk__lines a { color: var(--kit-color-primary-deep); text-decoration: none; }
.kit-vk__lines .kit-icon { color: var(--kit-color-primary); flex-shrink: 0; margin-top: 2px; }
@media (min-width: 600px) {
    .kit-vk__wrap { grid-template-columns: auto 1fr; gap: 28px; }
}

/* =========================================================
   [kit_cta]
   ========================================================= */
.kit-cta__wrap {
    display: grid; gap: 20px;
    grid-template-columns: 1fr;
    align-items: center;
    padding: 40px;
}
.kit-cta__title { margin: 0 0 6px; font-size: clamp(1.4rem, 2.6vw, 2rem); }
.kit-cta__sub { margin: 0; }
.kit-cta--primary { background: var(--kit-color-primary); }
.kit-cta--primary .kit-cta__title, .kit-cta--primary .kit-cta__sub { color: #fff; }
.kit-cta--primary .kit-cta__sub { color: #dbe9f3; }
.kit-cta--ink { background: var(--kit-color-ink); }
.kit-cta--ink .kit-cta__title { color: #fff; }
.kit-cta--ink .kit-cta__sub { color: #cfd8e4; }
.kit-cta--soft { background: var(--kit-color-primary-soft); }
.kit-cta--soft .kit-cta__title { color: var(--kit-color-primary-deep); }

.kit-btn--on-cta {
    background: #fff;
    color: var(--kit-color-primary-deep);
    border: 1px solid #fff;
}
.kit-btn--on-cta:hover {
    background: transparent;
    color: #fff;
    border-color: #fff;
}
.kit-cta--soft .kit-btn--on-cta {
    background: var(--kit-color-primary);
    color: #fff;
    border-color: var(--kit-color-primary);
}
.kit-cta--soft .kit-btn--on-cta:hover {
    background: var(--kit-color-primary-deep);
    color: #fff;
    border-color: var(--kit-color-primary-deep);
}
@media (min-width: 820px) {
    .kit-cta__wrap { grid-template-columns: 1fr auto; padding: 56px; gap: 40px; }
}

/* =========================================================
   [kit_kontakt]
   ========================================================= */
.kit-kk__wrap {
    display: grid; gap: 36px;
    grid-template-columns: 1fr;
}
.kit-kk__title { font-size: clamp(1.6rem, 3vw, 2.4rem); margin: 0 0 12px; }
.kit-kk__intro { color: var(--kit-color-muted); margin-bottom: 22px; }
.kit-kk__lines { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.kit-kk__lines li { display: flex; gap: 10px; align-items: flex-start; }
.kit-kk__lines .kit-icon { color: var(--kit-color-primary); flex-shrink: 0; margin-top: 3px; }
.kit-kk__lines a { color: var(--kit-color-primary-deep); text-decoration: none; }
.kit-kk__form { padding: 28px; background: #fff; border: 1px solid var(--kit-color-border); }
.kit-kk__form-hint { font-size: 13px; color: var(--kit-color-muted); }
@media (min-width: 900px) {
    .kit-kk__wrap { grid-template-columns: 1fr 1fr; gap: 56px; }
}

/* =========================================================
   Page-Header (page.php / single.php)
   — Rendert den H1 oben. Für Hero-Pages: Template "Hero-driven Page".
   ========================================================= */
.kit-page-header {
    padding: clamp(40px, 6vw, 72px) 0 clamp(28px, 4vw, 48px);
    background: var(--kit-color-bg);
    border-bottom: 1px solid var(--kit-color-border);
}
.kit-page-header__title {
    margin: 0 0 12px;
    max-width: 28ch;
}
.kit-page-header__lead {
    font-size: var(--kit-text-lg);
    color: var(--kit-color-muted);
    max-width: 60ch;
    margin: 0;
}
.kit-page-header__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    font-size: var(--kit-text-sm);
    color: var(--kit-color-muted);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 14px;
}
.kit-page-header__meta a { color: var(--kit-color-muted); text-decoration: none; }
.kit-page-header__meta a:hover { color: var(--kit-color-primary-deep); }

.kit-page-content { padding: clamp(28px, 4vw, 48px) 0; }
.kit-page-content > .kit-wrap { max-width: var(--kit-container-narrow); }
.kit-page-content :is(.wp-block-cover, .alignfull, .alignwide) ~ * { /* Fullwidth-Blocks dürfen raus */ }

.kit-single__featured {
    margin: 0;
    aspect-ratio: 16 / 8;
    overflow: hidden;
    background: var(--kit-color-bg-alt);
}
.kit-single__featured img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Page-Template Hero-driven: Content randlos, kein Page-Header */
.kit-page--hero .kit-page-content { padding: 0; }
.kit-page--hero .kit-page-content > .kit-wrap { max-width: none; padding: 0; }

/* =========================================================
   [kit_copyright] / [kit_signatur]
   ========================================================= */
.kit-copyright {
    font-size: inherit;
    color: inherit;
    white-space: nowrap;
}
.kit-signatur {
    font-size: var(--kit-text-sm);
    color: var(--kit-color-muted);
    display: inline-flex;
    gap: 6px;
    align-items: baseline;
    flex-wrap: wrap;
}
.kit-signatur__prefix { opacity: .8; }
.kit-signatur__link {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted currentColor;
    transition: color var(--kit-trans-fast);
}
.kit-signatur__link:hover {
    color: var(--kit-color-primary-deep);
    border-bottom-style: solid;
}

/* =========================================================
   Forms — Basis
   ========================================================= */
input[type="text"], input[type="email"], input[type="url"],
input[type="tel"], input[type="number"], input[type="search"],
input[type="password"], input[type="date"],
textarea, select {
    font: inherit;
    color: var(--kit-color-ink);
    background: var(--kit-color-surface);
    border: 1px solid var(--kit-color-border);
    border-radius: var(--kit-radius);
    padding: 10px 14px;
    width: 100%;
    max-width: 100%;
    transition: border-color var(--kit-trans-fast), box-shadow var(--kit-trans-fast);
}
textarea { min-height: 120px; resize: vertical; }
input:focus, textarea:focus, select:focus {
    border-color: var(--kit-color-primary);
    box-shadow: 0 0 0 3px var(--kit-color-primary-soft);
    outline: none;
}
label { display: inline-block; margin-bottom: 6px; font-weight: 500; font-size: var(--kit-text-sm); }

button, .wp-block-button__link, input[type="submit"], input[type="button"] {
    font: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    border: 0;
}

/* =========================================================
   [kit_btn--sales] — Sales-CTA-Modifier (Grüner Conversion-Button)
   Default-Werte; Child-Theme kann Farbe via --kit-color-sales überschreiben.
   ========================================================= */
.kit-btn--sales {
    background: var(--kit-color-sales, #16A34A);
    color: #fff;
    font-weight: 600;
    box-shadow: 0 10px 24px rgba(22, 163, 74, 0.28), inset 0 -2px 0 rgba(0, 0, 0, 0.1);
    transition: transform var(--kit-trans-fast), background var(--kit-trans-fast), box-shadow var(--kit-trans-fast);
}
.kit-btn--sales:hover {
    background: var(--kit-color-sales-deep, #128A3F);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(22, 163, 74, 0.4);
}
.kit-btn--sales:active { transform: translateY(0); }

.kit-btn--lg {
    padding: 18px 32px;
    font-size: 18px;
    gap: 14px;
}

/* =========================================================
   [kit_hero] — Trust-Chips
   ========================================================= */
.kit-hero__trust {
    display: flex;
    gap: 10px;
    margin-top: 24px;
    flex-wrap: wrap;
}
.kit-hero__trust-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: var(--kit-color-primary-soft);
    color: var(--kit-color-primary-deep);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 500;
}
.kit-hero--dark .kit-hero__trust-chip {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.22);
}

/* =========================================================
   [kit_card__badges] — USP-Pills (auch in text_bild nutzbar)
   ========================================================= */
.kit-card__badges {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.kit-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--kit-color-sales-soft, #DCFCE7);
    color: var(--kit-color-sales-deep, #128A3F);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.01em;
}
.kit-card__badge svg { width: 13px; height: 13px; }
.kit-card__badge--neutral {
    background: #F1F5F9;
    color: #334155;
}

/* =========================================================
   [kit_steps] — 3-Schritte-Ablauf-Band
   ========================================================= */
.kit-steps {
    padding: var(--kit-space-section) var(--kit-space-6);
    max-width: var(--kit-container);
    margin: 0 auto;
}
.kit-steps__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--kit-space-8);
    margin-bottom: var(--kit-space-8);
    flex-wrap: wrap;
}
.kit-steps__head-left { max-width: 720px; }
.kit-steps__kicker {
    display: inline-block;
    padding: 6px 14px;
    background: var(--kit-color-sales-soft, #DCFCE7);
    color: var(--kit-color-sales-deep, #128A3F);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.kit-steps__title {
    font-size: clamp(1.6rem, 2.4vw, 2.4rem);
    letter-spacing: -0.02em;
    margin: 0;
    text-wrap: balance;
}
.kit-steps__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--kit-space-5);
}
.kit-steps__card {
    background: var(--kit-color-surface);
    border: 1px solid var(--kit-color-border);
    border-radius: var(--kit-radius);
    padding: var(--kit-space-8);
    display: flex;
    flex-direction: column;
    gap: var(--kit-space-3);
    transition: transform var(--kit-trans);
}
.kit-steps__card:hover { transform: translateY(-2px); }
.kit-steps__num {
    font-size: 56px;
    font-weight: 700;
    line-height: 1;
    color: var(--kit-color-sales, #16A34A);
    letter-spacing: -0.04em;
}
.kit-steps__h {
    font-size: 22px;
    font-weight: 600;
    margin: 0;
    letter-spacing: -0.01em;
}
.kit-steps__t {
    font-size: 16px;
    line-height: 1.55;
    color: var(--kit-color-muted);
    margin: 0;
}

@media (max-width: 900px) {
    .kit-steps__grid { grid-template-columns: 1fr; }
}

/* Default-Sales-Tokens (Fallback für Sites ohne Child-Theme) */
:root {
    --kit-color-sales:      #16A34A;
    --kit-color-sales-deep: #128A3F;
    --kit-color-sales-soft: #DCFCE7;
}

/* =========================================================
 * kit_rechtliches — Footer-Rechtslinks
 * ========================================================= */
.kit-rechtliches { font-size: 14px; }
.kit-rechtliches__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4em 1em;
    align-items: center;
}
.kit-rechtliches__item {
    display: inline-flex;
    align-items: center;
    gap: 1em;
}
.kit-rechtliches__link {
    color: inherit;
    text-decoration: none;
    opacity: .8;
    transition: opacity .15s ease;
}
.kit-rechtliches__link:hover,
.kit-rechtliches__link:focus-visible {
    opacity: 1;
    text-decoration: underline;
}
.kit-rechtliches__sep {
    opacity: .5;
    user-select: none;
}
