/*
Theme Name: SFK Steuerberater
Theme URI: https://www.sfk-steuerberater.de
Description: SFK Steuerberater Partnerschaft mbB – Theme für moderne Steuerberatungskanzlei. Child Theme von Sauriatheme.
Author: Digitalsauria
Author URI: https://digitalsauria.de
Template: sauriatheme
Version: 1.10.59
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sfk
Requires at least: 6.0
Requires PHP: 8.0
*/

/* ==========================================================================
   Self-hosted Webfonts (DSGVO) – siehe assets/css/fonts.css
   ========================================================================== */

/* ==========================================================================
   SFK CI – CSS Custom Properties (3 Marken-Farben: Blau, Grau, Gelb)
   ========================================================================== */
:root {
    /* Primärfarbe – SFK Blau (Pantone 2945 U) */
    --sfk-primary:        #285589;
    --sfk-primary-dark:   #1B3F69;
    --sfk-primary-light:  #3A6EA8;
    --sfk-primary-rgb:    40, 85, 137;

    /* Sekundärfarbe – SFK Grau (HKS 92 N) */
    --sfk-secondary:      #909692;
    --sfk-secondary-dark: #6E736F;
    --sfk-secondary-light:#B5BAB7;
    --sfk-secondary-rgb:  144, 150, 146;

    /* CTA-Farbe – SFK Gelb (NUR für Buttons / Call-to-Actions) */
    --sfk-yellow:         #F2A91C;
    --sfk-yellow-dark:    #D8941A;
    --sfk-yellow-light:   #F8C351;
    --sfk-yellow-rgb:     242, 169, 28;

    /* Aliase (Backwards-Compat) */
    --sfk-accent:         var(--sfk-yellow);
    --sfk-accent-dark:    var(--sfk-yellow-dark);
    --sfk-accent-light:   var(--sfk-yellow-light);

    /* Neutral */
    --sfk-white:          #ffffff;
    --sfk-gray-50:        #f8f9fa;
    --sfk-gray-100:       #f1f3f5;
    --sfk-gray-200:       #e9ecef;
    --sfk-gray-400:       #adb5bd;
    --sfk-gray-600:       #6c757d;
    --sfk-gray-800:       #343a40;
    --sfk-black:          #1a1a1a;

    /* Typografie */
    --sfk-font-heading:   'Montserrat', sans-serif;
    --sfk-font-body:      'Open Sans', sans-serif;

    /* Spacing */
    --sfk-section-gap:    5rem;
    --sfk-card-radius:    0;          /* eckig – globale Vorgabe */
    --sfk-btn-radius:     0;          /* eckig – Buttons */

    /* Sauriatheme-Overrides */
    --color-primary:      var(--sfk-primary);
    --color-accent:       var(--sfk-yellow);
    --color-btn-bg:       var(--sfk-yellow);
    --color-btn-text:     var(--sfk-primary-dark);
    --color-btn-hover:    var(--sfk-yellow-dark);
    --btn-radius:         0;
    --button-radius:      0;
    --font-heading:       var(--sfk-font-heading);
    --font-body:          var(--sfk-font-body);
}

/* ==========================================================================
   GLOBALE OVERRIDES – eckige Buttons + Yellow CTA
   (überschreibt Parent-Theme + frühere Definitionen)
   ========================================================================== */
.sfk-btn,
.sfk-btn--primary,
.sfk-btn--outline,
.sfk-btn--outline-light,
.sfk-btn--lg,
.btn,
.button,
button,
input[type="submit"],
input[type="button"],
.wp-block-button__link,
.wp-element-button {
    border-radius: 0 !important;
}

/* Yellow Primary Button (CTA-Standard) */
.sfk-btn--primary,
.wp-block-button__link,
.wp-element-button {
    background: var(--sfk-yellow) !important;
    color: var(--sfk-primary-dark) !important;  /* WCAG AA: 4.5:1 auf #F2A91C */
    border-color: var(--sfk-yellow) !important;
    font-weight: 700;
}
.sfk-btn--primary:hover,
.wp-block-button__link:hover,
.wp-element-button:hover {
    background: var(--sfk-yellow-dark) !important;
    border-color: var(--sfk-yellow-dark) !important;
    color: var(--sfk-primary-dark) !important;
    box-shadow: 0 4px 16px rgba(var(--sfk-yellow-rgb), 0.35);
}

/* Blue secondary (z. B. Header-Login-Button) */
.sfk-btn--blue {
    background: var(--sfk-primary);
    color: var(--sfk-white);
    border: 2px solid var(--sfk-primary);
}
.sfk-btn--blue:hover {
    background: var(--sfk-primary-dark);
    border-color: var(--sfk-primary-dark);
    color: var(--sfk-white);
}

/* Dark/Outline (Login Portal) */
.sfk-btn--dark {
    background: var(--sfk-primary-dark);
    color: var(--sfk-white);
    border: 2px solid var(--sfk-primary-dark);
}
.sfk-btn--dark:hover {
    background: #000;
    border-color: #000;
    color: var(--sfk-white);
}

/* Header CTA "Zum sfkPortal" – auffälliger, animierter Button */
.sfk-header__cta--portal {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.sfk-header__cta--portal::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        110deg,
        transparent 0%,
        transparent 35%,
        rgba(242, 169, 28, 0.45) 50%,
        transparent 65%,
        transparent 100%
    );
    background-size: 220% 100%;
    background-position: 120% 0;
    animation: sfk-portal-shimmer 3.4s ease-in-out infinite;
    pointer-events: none;
}
.sfk-header__cta--portal:hover {
    background: var(--sfk-accent);
    border-color: var(--sfk-accent);
    color: var(--sfk-white);
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(242, 169, 28, 0.45);
    animation: none;
}
.sfk-header__cta--portal:hover::before {
    animation: none;
    opacity: 0;
}
.sfk-header__cta--portal .sfk-header__cta-icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    animation: sfk-portal-arrow 2.6s ease-in-out infinite;
    transition: transform 0.2s ease;
}
.sfk-header__cta--portal:hover .sfk-header__cta-icon {
    animation: none;
    transform: translateX(4px);
}

@keyframes sfk-portal-shimmer {
    0%   { background-position: 120% 0; }
    60%  { background-position: -60% 0; }
    100% { background-position: -60% 0; }
}
@keyframes sfk-portal-arrow {
    0%, 70%, 100% { transform: translateX(0); }
    80%           { transform: translateX(4px); }
    90%           { transform: translateX(2px); }
}

@media (prefers-reduced-motion: reduce) {
    .sfk-header__cta--portal,
    .sfk-header__cta--portal::before,
    .sfk-header__cta--portal .sfk-header__cta-icon {
        animation: none;
    }
}

/* ==========================================================================
   Basis
   ========================================================================== */
html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--sfk-font-body);
    color: var(--sfk-gray-800);
    background: var(--sfk-white);
    font-size: 1.125rem;
    line-height: 1.7;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    color: var(--sfk-primary);
    line-height: 1.25;
}

a {
    color: var(--sfk-primary);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--sfk-accent);
}

/* ==========================================================================
   SFK Hero
   ========================================================================== */
.sfk-hero {
    position: relative;
    min-height: 80vh;
    display: flex;
    align-items: center;
    background: linear-gradient(135deg, var(--sfk-primary) 0%, var(--sfk-primary-light) 60%, var(--sfk-accent) 100%);
    color: var(--sfk-white);
    overflow: hidden;
}

.sfk-hero__content {
    position: relative;
    z-index: 2;
    max-width: 800px;
}

.sfk-hero__claim {
    font-family: var(--sfk-font-heading);
    font-size: clamp(2rem, 5vw, 3.75rem);
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: -0.02em;
}

.sfk-hero__claim em {
    font-style: normal;
    color: var(--sfk-accent-light);
}

.sfk-hero__sub {
    font-size: 1.25rem;
    opacity: 0.9;
    margin-bottom: 2.5rem;
    max-width: 600px;
}

.sfk-hero-voices {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 1rem;
    margin-top: 2.5rem;
    max-width: 48rem;
}

.sfk-hero-voices__shell {
    display: grid;
    gap: 1rem;
}

.sfk-hero-voices__avatars {
    overflow: hidden;
    padding: 0.25rem 0;
}

.sfk-hero-voices__avatars-track {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: max-content;
    min-width: 100%;
}

.sfk-hero-voices__avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(18px);
    box-shadow: 0 0.9rem 2rem rgba(10, 20, 36, 0.18);
    color: var(--sfk-white);
    cursor: default;
    overflow: hidden;
    transition: transform 0.28s ease, border-color 0.28s ease, background 0.28s ease, box-shadow 0.28s ease;
}

.sfk-hero-voices__avatar.is-active {
    transform: translateY(-0.18rem) scale(1.04);
    border-color: rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.18);
    box-shadow: 0 1rem 2.2rem rgba(10, 20, 36, 0.28);
}

.sfk-hero-voices__avatar img,
.sfk-hero-voices__avatar-fallback {
    width: 100%;
    height: 100%;
    border-radius: 999px;
}

.sfk-hero-voices__avatar img {
    object-fit: cover;
}

.sfk-hero-voices__avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--sfk-font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.92);
}

.sfk-hero-voices__panels {
    position: relative;
    min-height: 12rem;
}

.sfk-hero-voices__panel {
    display: grid;
    gap: 1rem;
    padding: 1.5rem 1.6rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 1.75rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.1));
    backdrop-filter: blur(24px);
    box-shadow: 0 1.2rem 2.6rem rgba(9, 19, 34, 0.22);
    color: var(--sfk-white);
}

.sfk-hero-voices__panel.is-active {
    animation: sfkHeroVoicesIn 0.3s ease;
}

.sfk-hero-voices__panel-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.sfk-hero-voices__person {
    display: grid;
    gap: 0.35rem;
}

.sfk-hero-voices__meta-row {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.sfk-hero-voices__person strong {
    font-family: var(--sfk-font-heading);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.sfk-hero-voices__person span {
    font-size: 0.84rem;
    color: rgba(255, 255, 255, 0.72);
}

.sfk-hero-voices__google,
.sfk-reviews-band__google {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.sfk-hero-voices__google__icon,
.sfk-reviews-band__google__icon {
    width: 1rem;
    height: 1rem;
    flex: 0 0 1rem;
}

.sfk-reviews-band__google__wordmark {
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.sfk-hero-voices__stars {
    display: flex;
    gap: 0.16rem;
    padding-top: 0.1rem;
}

.sfk-hero-voices__star {
    color: rgba(255, 255, 255, 0.28);
    font-size: 0.95rem;
}

.sfk-hero-voices__star.is-filled {
    color: rgba(255, 255, 255, 0.92);
}

.sfk-hero-voices__quote {
    margin: 0;
    font-size: 1rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.94);
}

@keyframes sfkHeroVoicesIn {
    from {
        opacity: 0;
        transform: translateY(0.5rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (min-width: 992px) {
    .sfk-hero-voices__shell {
        grid-template-columns: minmax(0, 18rem) minmax(0, 1fr);
        align-items: center;
        gap: 1.5rem;
    }

    .sfk-hero-voices__avatars {
        max-width: 18rem;
    }
}

@media (max-width: 767px) {
    .sfk-hero-voices {
        margin-top: 2rem;
    }

    .sfk-hero-voices__avatar {
        width: 3.1rem;
        height: 3.1rem;
    }

    .sfk-hero-voices__panel {
        padding: 1.25rem 1.15rem;
        border-radius: 1.35rem;
    }

    .sfk-hero-voices__panel-head {
        flex-direction: column;
    }

    .sfk-hero-voices__quote {
        font-size: 0.96rem;
        line-height: 1.65;
    }
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.sfk-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 2rem;
    border-radius: 0.375rem;
    font-family: var(--sfk-font-heading);
    font-weight: 600;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.2s ease;
    text-decoration: none;
}

.sfk-btn--primary {
    background: var(--sfk-accent);
    color: var(--sfk-white);
    border-color: var(--sfk-accent);
}

.sfk-btn--primary:hover {
    background: var(--sfk-accent-dark);
    border-color: var(--sfk-accent-dark);
    color: var(--sfk-white);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(196, 153, 42, 0.35);
}

.sfk-btn--outline {
    background: transparent;
    color: var(--sfk-white);
    border-color: rgba(255, 255, 255, 0.6);
}

.sfk-btn--outline:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--sfk-white);
    color: var(--sfk-white);
}

/* ==========================================================================
   Team Grid (sfk_team CPT)
   ========================================================================== */
.sfk-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 2rem;
    padding: 0;
    list-style: none;
}

.sfk-team-card {
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-200);
    border-radius: var(--sfk-card-radius);
    overflow: hidden;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
    text-align: center;
}

.sfk-team-card:hover {
    box-shadow: 0 8px 32px rgba(26, 54, 96, 0.12);
    transform: translateY(-4px);
}

.sfk-team-card__portrait {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}

.sfk-team-card__portrait-placeholder {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, var(--sfk-primary) 0%, var(--sfk-primary-light) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--sfk-font-heading);
    font-size: 3rem;
    font-weight: 700;
    color: rgba(255,255,255,0.5);
}

.sfk-team-card__body {
    padding: 1.5rem 1.25rem;
}

.sfk-team-card__name {
    font-family: var(--sfk-font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--sfk-primary);
    margin: 0 0 0.25rem;
}

.sfk-team-card__role {
    font-size: 1rem;
    color: var(--sfk-accent);
    font-weight: 600;
    margin: 0 0 0.5rem;
}

.sfk-team-card__bio {
    font-size: 1rem;
    color: var(--sfk-gray-600);
    margin: 0 0 1rem;
    line-height: 1.55;
}

.sfk-team-card__socials {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
}

.sfk-team-card__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--sfk-gray-100);
    color: var(--sfk-primary);
    font-size: 0.875rem;
    transition: background 0.2s ease, color 0.2s ease;
}

.sfk-team-card__social-link:hover {
    background: var(--sfk-primary);
    color: var(--sfk-white);
}

/* ==========================================================================
   Kanzleiwerte / Philosophie Section
   ========================================================================== */
.sfk-values {
    padding: var(--sfk-section-gap) 0;
    background: var(--sfk-gray-50);
}

.sfk-values__label {
    font-family: var(--sfk-font-heading);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--sfk-accent);
    margin-bottom: 1rem;
}

.sfk-values__title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--sfk-primary);
    margin-bottom: 0.5rem;
}

.sfk-values__subtitle {
    font-size: 1.375rem;
    font-weight: 500;
    color: var(--sfk-primary-light);
    font-style: italic;
    margin-bottom: 2rem;
}

/* ==========================================================================
   Leistungen Cards
   ========================================================================== */
.sfk-leistungen-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
}

.sfk-leistung-card {
    background: var(--sfk-white);
    border-left: 4px solid var(--sfk-accent);
    border-radius: var(--sfk-card-radius);
    padding: 2rem;
    box-shadow: 0 2px 12px rgba(26, 54, 96, 0.06);
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.sfk-leistung-card:hover {
    box-shadow: 0 6px 24px rgba(26, 54, 96, 0.12);
    border-left-color: var(--sfk-primary);
}

.sfk-leistung-card__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--sfk-primary);
    margin-bottom: 0.75rem;
}

.sfk-leistung-card__text {
    font-size: 1.125rem;
    color: var(--sfk-gray-600);
    line-height: 1.6;
}

/* ==========================================================================
   Kontakt / CTA-Banner
   ========================================================================== */
.sfk-cta-banner {
    background: linear-gradient(135deg, var(--sfk-primary) 0%, var(--sfk-primary-light) 100%);
    color: var(--sfk-white);
    padding: 4rem 0;
    text-align: center;
}

.sfk-cta-banner__title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 800;
    text-transform: uppercase;
    color: var(--sfk-white);
    margin-bottom: 1rem;
}

.sfk-cta-banner__text {
    font-size: 1.25rem;
    opacity: 0.9;
    margin-bottom: 2rem;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.sfk-footer {
    background: var(--sfk-primary-dark);
    color: rgba(255,255,255,0.75);
    padding: 3rem 0 2rem;
    font-size: 1rem;
}

.sfk-footer a {
    color: rgba(255,255,255,0.75);
}

.sfk-footer a:hover {
    color: var(--sfk-accent-light);
}

.sfk-footer__company {
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    font-size: 1.125rem;
    color: var(--sfk-white);
    margin-bottom: 0.5rem;
}

/* ==========================================================================
   Layout – Container
   ========================================================================== */
.sfk-container {
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.sfk-container--narrow {
    max-width: 800px;
}

/* ==========================================================================
   Sections
   ========================================================================== */
.sfk-section {
    padding: var(--sfk-section-gap) 0;
}

.sfk-section--alt {
    background: var(--sfk-gray-50);
}

.sfk-section--content {
    padding: 3rem 0;
}

.sfk-section__header {
    text-align: center;
    margin-bottom: 3rem;
}

.sfk-section__header h2 {
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    margin-bottom: 1rem;
}

.sfk-section__header p {
    font-size: 1.125rem;
    color: var(--sfk-gray-600);
    max-width: 620px;
    margin: 0 auto;
}

.sfk-section__eyebrow {
    display: block;
    font-family: var(--sfk-font-heading);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--sfk-accent);
    margin-bottom: 0.75rem;
}

.sfk-section__cta {
    text-align: center;
    margin-top: 2.5rem;
}

/* ==========================================================================
   Hero – Vollbild mit Hintergrundfoto
   ========================================================================== */
.sfk-hero {
    position: relative;
    min-height: 90vh;
    display: flex;
    align-items: center;
    color: var(--sfk-white);
    overflow: hidden;
}

.sfk-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.sfk-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.sfk-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
        135deg,
        rgba(10, 26, 54, 0.88) 0%,
        rgba(26, 54, 96, 0.72) 60%,
        rgba(26, 54, 96, 0.55) 100%
    );
}

.sfk-hero > .sfk-container {
    position: relative;
    z-index: 2;
    width: 100%;
}

.sfk-hero__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    padding: 6rem 0 4rem;
}

.sfk-hero__eyebrow {
    display: block;
    font-family: var(--sfk-font-heading);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--sfk-accent-light);
    margin-bottom: 1rem;
}

.sfk-hero__claim {
    font-family: var(--sfk-font-heading);
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 900;
    line-height: 1.05;
    color: var(--sfk-white);
    text-transform: uppercase;
    letter-spacing: -0.02em;
    margin: 0 0 1.5rem;
}

.sfk-hero__claim em {
    font-style: normal;
    color: var(--sfk-accent-light);
}

.sfk-hero__sub {
    font-size: 1.25rem;
    line-height: 1.6;
    color: rgba(255,255,255,0.88);
    max-width: 540px;
    margin-bottom: 2rem;
}

.sfk-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2.5rem;
}

.sfk-hero__usps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
}

.sfk-hero__usp {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: rgba(255,255,255,0.85);
}

.sfk-hero__image {
    display: flex;
    justify-content: flex-end;
}

.sfk-hero__image-frame {
    position: relative;
    border-radius: var(--sfk-card-radius);
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,0.4);
    max-width: 520px;
    width: 100%;
}

.sfk-hero__image-frame::before {
    content: '';
    position: absolute;
    top: -0.75rem;
    left: -0.75rem;
    right: 0.75rem;
    bottom: 0.75rem;
    border: 3px solid var(--sfk-accent);
    border-radius: var(--sfk-card-radius);
    z-index: -1;
}

.sfk-hero__image-frame img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

.sfk-hero__scroll {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.sfk-hero__scroll-line {
    display: block;
    width: 2px;
    height: 48px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.6) 0%, transparent 100%);
    animation: sfk-scroll-bounce 1.8s ease-in-out infinite;
}

@keyframes sfk-scroll-bounce {
    0%, 100% { transform: scaleY(1); opacity: 0.7; }
    50%       { transform: scaleY(0.6); opacity: 0.3; }
}

/* ==========================================================================
   Philosophie / Kanzleiwerte
   ========================================================================== */
.sfk-philosophy__quote {
    font-family: var(--sfk-font-heading);
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    font-weight: 700;
    font-style: italic;
    color: var(--sfk-primary);
    border-left: 4px solid var(--sfk-accent);
    padding: 1.25rem 2rem;
    margin: 0 0 1.5rem;
    background: var(--sfk-gray-50);
    border-radius: 0 var(--sfk-card-radius) var(--sfk-card-radius) 0;
}

.sfk-philosophy__divider {
    width: 4rem;
    height: 3px;
    background: var(--sfk-accent);
    border-radius: 2px;
    margin: 0 0 1.5rem;
}

.sfk-philosophy__text {
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--sfk-gray-800);
    margin-bottom: 1.25rem;
}

/* ==========================================================================
   Leistungen – Icon & Link
   ========================================================================== */
.sfk-leistung-card h3 {
    font-size: 1.25rem;
    color: var(--sfk-primary);
    margin: 0 0 0.75rem;
}

.sfk-leistung-card p {
    font-size: 1.125rem;
    color: var(--sfk-gray-600);
    margin-bottom: 1.25rem;
}

.sfk-leistung-card__icon {
    width: 3rem;
    height: 3rem;
    background: rgba(196, 153, 42, 0.12);
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
    color: var(--sfk-accent);
}

.sfk-leistung-card__icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

.sfk-leistung-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--sfk-font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--sfk-primary);
    text-decoration: none;
    letter-spacing: 0.03em;
    transition: gap 0.2s ease, color 0.2s ease;
}

.sfk-leistung-card__link svg {
    width: 1rem;
    height: 1rem;
    transition: transform 0.2s ease;
}

.sfk-leistung-card__link:hover {
    color: var(--sfk-accent);
    gap: 0.65rem;
}

.sfk-leistung-card__link:hover svg {
    transform: translateX(3px);
}

/* ==========================================================================
   Team – Gruppenphoto + Overlay
   ========================================================================== */
.sfk-team-group-photo {
    margin-bottom: 3rem;
}

.sfk-team-photo-frame {
    position: relative;
    border-radius: var(--sfk-card-radius);
    overflow: hidden;
    max-height: 480px;
}

.sfk-team-group-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sfk-team-photo-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.5rem;
    background: linear-gradient(to top, rgba(10, 26, 54, 0.8) 0%, transparent 100%);
    color: var(--sfk-white);
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    font-size: 1.125rem;
}

/* ==========================================================================
   CTA-Banner
   ========================================================================== */
.sfk-cta-banner {
    background: linear-gradient(135deg, var(--sfk-primary-dark) 0%, var(--sfk-primary) 60%, var(--sfk-primary-light) 100%);
    color: var(--sfk-white);
    padding: 5rem 0;
}

.sfk-cta-banner__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
}

.sfk-cta-banner__text h2 {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    color: var(--sfk-white);
    margin-bottom: 0.75rem;
}

.sfk-cta-banner__text p {
    font-size: 1.125rem;
    color: rgba(255,255,255,0.85);
    margin: 0;
}

.sfk-cta-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    flex-shrink: 0;
}

/* ==========================================================================
   Buttons – Erweiterungen
   ========================================================================== */
.sfk-btn--lg {
    padding: 1rem 2.25rem;
    font-size: 1.0625rem;
}

.sfk-btn--outline-light {
    background: transparent;
    color: var(--sfk-white);
    border-color: rgba(255,255,255,0.55);
}

.sfk-btn--outline-light:hover {
    background: rgba(255,255,255,0.12);
    border-color: var(--sfk-white);
    color: var(--sfk-white);
}

/* ==========================================================================
   Header
   ========================================================================== */
.sfk-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--sfk-white);
    box-shadow: 0 2px 12px rgba(26, 54, 96, 0.08);
    transition: box-shadow 0.3s ease;
}

.sfk-header.is-scrolled {
    box-shadow: 0 4px 24px rgba(26, 54, 96, 0.15);
}

.sfk-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
    height: 76px;
    gap: 1.5rem;
}

.sfk-header__logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    text-decoration: none;
}

.sfk-header__logo img {
    height: 36px;
    width: auto;
    display: block;
}

.sfk-header__logo-text {
    font-family: var(--sfk-font-heading);
    font-weight: 900;
    font-size: 1.375rem;
    color: var(--sfk-primary);
    letter-spacing: -0.02em;
}

.sfk-header__actions {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
}

.sfk-header__phone {
    display: none;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    font-size: 1rem;
    color: var(--sfk-primary);
    text-decoration: none;
    transition: color 0.2s ease;
}

.sfk-header__phone:hover {
    color: var(--sfk-accent);
}

@media (min-width: 1024px) {
    .sfk-header__phone {
        display: inline-flex;
    }
}

/* ==========================================================================
   Desktop Navigation
   ========================================================================== */
.sfk-nav {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}

.sfk-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.sfk-nav__list > li {
    position: relative;
}

.sfk-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.5rem 0.875rem;
    font-family: var(--sfk-font-heading);
    font-weight: 600;
    font-size: 1rem;
    color: var(--sfk-primary);
    text-decoration: none;
    border-radius: 0;
    background: transparent;
    position: relative;
    transition: color 0.15s ease;
    white-space: nowrap;
}

.sfk-nav__link::after {
    content: "";
    position: absolute;
    left: 0.875rem;
    right: 0.875rem;
    bottom: 2px;
    height: 3px;
    background: var(--sfk-yellow);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.2s ease;
}

.sfk-nav__link:hover,
.current-menu-item > .sfk-nav__link,
.current-menu-ancestor > .sfk-nav__link,
.current_page_item > .sfk-nav__link {
    background: transparent;
    color: var(--sfk-primary);
}

.sfk-nav__link:hover::after,
.current-menu-item > .sfk-nav__link::after,
.current-menu-ancestor > .sfk-nav__link::after,
.current_page_item > .sfk-nav__link::after {
    transform: scaleX(1);
}

.sfk-nav__chevron {
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.sfk-nav__item--has-dropdown:hover .sfk-nav__chevron {
    transform: rotate(180deg);
}

/* Dropdown */
.sfk-nav__dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    min-width: 220px;
    background: var(--sfk-white);
    border-radius: var(--sfk-card-radius);
    box-shadow: 0 8px 32px rgba(26, 54, 96, 0.14);
    list-style: none;
    padding: 0.5rem;
    margin: 0;
    z-index: 200;
    border-top: 3px solid var(--sfk-accent);
}

.sfk-nav__dropdown.is-open,
.sfk-nav__item--has-dropdown:hover .sfk-nav__dropdown {
    display: block;
}

.sfk-nav__dropdown-link {
    display: block;
    padding: 0.625rem 1rem;
    font-family: var(--sfk-font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--sfk-primary);
    text-decoration: none;
    border-radius: 0.375rem;
    transition: background 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}

.sfk-nav__dropdown-link:hover {
    background: var(--sfk-gray-100);
    color: var(--sfk-accent);
}

/* Navigation nur ab Desktop sichtbar */
@media (max-width: 1023px) {
    .sfk-nav {
        display: none;
    }
}

/* ==========================================================================
   Hamburger
   ========================================================================== */
.sfk-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    width: 40px;
    height: 40px;
    padding: 0.5rem;
    background: none;
    border: none;
    cursor: pointer;
    border-radius: 0.375rem;
    transition: background 0.15s ease;
}

.sfk-hamburger:hover {
    background: var(--sfk-gray-100);
}

.sfk-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--sfk-primary);
    border-radius: 2px;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

@media (min-width: 1024px) {
    .sfk-hamburger {
        display: none;
    }
}

/* ==========================================================================
   Mobile Menu Overlay
   ========================================================================== */
.sfk-mobile-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: rgba(10, 26, 54, 0.6);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.sfk-mobile-overlay.is-visible {
    display: block;
    opacity: 1;
}

.sfk-mobile-menu {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1200;
    width: min(380px, 100vw);
    background: var(--sfk-white);
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.sfk-mobile-menu.is-open {
    transform: translateX(0);
}

.sfk-mobile-menu__inner {
    padding: 5rem 1.5rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 100%;
}

.sfk-mobile-menu__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sfk-gray-100);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    color: var(--sfk-primary);
    transition: background 0.15s ease;
}

.sfk-mobile-menu__close:hover {
    background: var(--sfk-gray-200);
}

.sfk-mobile-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sfk-mobile-nav__list > li {
    border-bottom: 1px solid var(--sfk-gray-100);
}

.sfk-mobile-nav__list a {
    display: block;
    padding: 1rem 0;
    font-family: var(--sfk-font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--sfk-primary);
    text-decoration: none;
    transition: color 0.15s ease;
}

.sfk-mobile-nav__list a:hover {
    color: var(--sfk-accent);
}

/* Sub-Level im Mobile Menu */
.sfk-mobile-nav__list ul {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0 0 0 1rem;
}

.sfk-mobile-nav__list ul a {
    font-size: 1rem;
    font-weight: 500;
    padding: 0.5rem 0;
    color: var(--sfk-gray-600);
}

.sfk-mobile-menu__contact {
    margin-top: auto;
    padding-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Body-Lock wenn Menü offen */
body.sfk-menu-open {
    overflow: hidden;
}

/* ==========================================================================
   Page – generische Seite
   ========================================================================== */
.sfk-main {
    min-height: 50vh;
}

.sfk-page {
    padding: 3rem 0 5rem;
}

.sfk-page__header {
    margin-bottom: 2.5rem;
    border-bottom: 2px solid var(--sfk-gray-100);
    padding-bottom: 1.5rem;
}

.sfk-page__title {
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    font-weight: 900;
    color: var(--sfk-primary);
    margin: 0;
}

.sfk-page__content {
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--sfk-gray-800);
}

/* ==========================================================================
   Footer
   ========================================================================== */
.sfk-footer {
    background: var(--sfk-primary-dark);
    color: rgba(255,255,255,0.75);
    font-size: 1rem;
}

.sfk-footer__top {
    padding: 4rem 0 3rem;
}

.sfk-footer__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2.5rem;
}

.sfk-footer__heading {
    font-family: var(--sfk-font-heading);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sfk-white);
    margin: 0 0 1.25rem;
}

.sfk-footer__logo img {
    height: 44px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: 0.9;
    margin-bottom: 0.75rem;
    display: block;
}

.sfk-footer__logo-text {
    font-family: var(--sfk-font-heading);
    font-size: 1.25rem;
    font-weight: 900;
    color: var(--sfk-white);
    display: block;
    margin-bottom: 0.75rem;
}

.sfk-footer__tagline {
    font-style: italic;
    color: rgba(255,255,255,0.6);
    margin-bottom: 1.25rem;
    font-size: 1rem;
}

.sfk-footer__tagline em {
    font-style: normal;
    color: var(--sfk-accent-light);
}

.sfk-footer__address {
    font-style: normal;
    color: rgba(255,255,255,0.65);
    line-height: 1.7;
    font-size: 1rem;
}

.sfk-footer__contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.sfk-footer__contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    font-size: 1rem;
    line-height: 1.5;
    color: rgba(255,255,255,0.75);
}

.sfk-footer__contact-list svg {
    flex-shrink: 0;
    margin-top: 0.125rem;
    color: var(--sfk-accent-light);
}

.sfk-footer__contact-list a {
    color: rgba(255,255,255,0.75);
    text-decoration: none;
    transition: color 0.2s ease;
}

.sfk-footer__contact-list a:hover {
    color: var(--sfk-accent-light);
}

.sfk-footer__nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sfk-footer__nav li a {
    color: rgba(255,255,255,0.75);
    text-decoration: none;
    font-size: 1rem;
    transition: color 0.2s ease;
}

.sfk-footer__nav li a:hover {
    color: var(--sfk-accent-light);
}

.sfk-footer__social {
    display: flex;
    gap: 0.875rem;
    margin-bottom: 1.5rem;
}

.sfk-footer__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.75);
    transition: color 0.2s ease;
}

.sfk-footer__social a:hover {
    color: var(--sfk-white);
}

.sfk-footer__cta {
    display: inline-block;
}

.sfk-footer__bottom {
    border-top: 1px solid rgba(255,255,255,0.1);
    padding: 1.25rem 0;
}

.sfk-footer__bottom .sfk-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
}

.sfk-footer__copy {
    margin: 0;
    font-size: 0.9375rem;
    color: rgba(255,255,255,0.5);
}

.sfk-footer__legal-nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 1.5rem;
}

.sfk-footer__legal-nav a {
    font-size: 0.9375rem;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    transition: color 0.2s ease;
}

.sfk-footer__legal-nav a:hover {
    color: var(--sfk-accent-light);
}

.sfk-footer__cookie-settings {
    appearance: none;
    background: transparent;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    font-size: 0.9375rem;
    color: rgba(255,255,255,0.5);
    cursor: pointer;
    text-decoration: none;
    transition: color 0.2s ease;
}

.sfk-footer__cookie-settings:hover,
.sfk-footer__cookie-settings:focus-visible {
    color: var(--sfk-accent-light);
    outline: none;
}

.sfk-footer__cookie-settings:focus-visible {
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
    .sfk-hero__grid {
        grid-template-columns: 1fr;
        padding: 5rem 0 3rem;
    }

    .sfk-hero__image {
        display: none;
    }

    .sfk-cta-banner__inner {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 768px) {
    .sfk-team-grid {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 1.25rem;
    }

    .sfk-leistungen-grid {
        grid-template-columns: 1fr;
    }

    .sfk-footer__grid {
        grid-template-columns: 1fr 1fr;
    }

    .sfk-hero__usps {
        gap: 0.875rem;
    }
}

@media (max-width: 480px) {
    .sfk-footer__grid {
        grid-template-columns: 1fr;
    }

    .sfk-footer__bottom .sfk-container {
        flex-direction: column;
        text-align: center;
    }

    .sfk-footer__legal-nav {
        flex-wrap: wrap;
        justify-content: center;
        gap: 1rem;
    }
}

/* ==========================================================================
   FRONT-PAGE 2026 – neue Sektionen
   ========================================================================== */

body { font-family: var(--sfk-font-body); font-weight: 400; }
h1, h2, h3, h4 { font-family: var(--sfk-font-heading); font-weight: 800; color: var(--sfk-primary); letter-spacing: -0.01em; }

.sfk-container { max-width: 1240px; margin: 0 auto; padding: 0 1.25rem; }
.sfk-section   { padding: var(--sfk-section-gap) 0; }
.sfk-section--alt { background: var(--sfk-gray-100, #F1F3F5); }

/* ---------- HEADER ---------- */
.sfk-header { background: rgba(255,255,255,0.85); backdrop-filter: saturate(160%) blur(10px); -webkit-backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid transparent; position: sticky; top: 0; z-index: 100; transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease; }
.sfk-header.is-scrolled { background: rgba(255,255,255,0.92); border-bottom-color: var(--sfk-gray-200); box-shadow: 0 4px 18px rgba(0,0,0,0.06); }
.sfk-header__inner { max-width: 1400px; margin: 0 auto; padding: 1rem 1.5rem; display: flex; align-items: center; gap: 2rem; }
.sfk-header__logo img { height: 36px; width: auto; display: block; }
.sfk-nav { flex: 1; }
.sfk-nav__list { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; justify-content: center; }
.sfk-nav__list a { color: var(--sfk-primary); font-weight: 600; text-decoration: none; padding: .5rem .25rem; font-size: 1rem; }
.sfk-nav__list a:hover { color: var(--sfk-yellow-dark); }
.sfk-header__actions { display: flex; align-items: center; gap: .5rem; }
.sfk-header__cta { padding: .55rem 1.1rem !important; font-size: .9rem !important; text-transform: none !important; letter-spacing: 0 !important; }
.sfk-header__a11y { background: var(--sfk-primary); color: #fff; border: none; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.sfk-header__a11y:hover { background: var(--sfk-primary-dark); }

@media (max-width: 1024px) {
    .sfk-nav { display: none; }
    .sfk-header__cta { display: none; }
}

/* ---------- HERO ---------- */
.sfk-hero { position: relative; min-height: 540px; display: flex; align-items: center; color: #fff; overflow: hidden; }
.sfk-hero__bg { position: absolute; inset: 0; z-index: 0; }
.sfk-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.sfk-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,30,56,0.65) 0%, rgba(40,85,137,0.45) 60%, rgba(40,85,137,0.25) 100%); z-index: 1; }
.sfk-hero .sfk-container { position: relative; z-index: 2; padding-top: 6rem; padding-bottom: 6rem; }
.sfk-hero__brand-mark {
    position: absolute;
    left: clamp(1.5rem, 5vw, 4.5rem);
    top: 56%;
    transform: translateY(-50%);
    z-index: 2;
    width: clamp(360px, 44vw, 620px);
    pointer-events: none;
}
.sfk-hero__brand-mark-image {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 10px 30px rgba(0,0,0,0.2));
}
.sfk-hero__content { max-width: 720px; margin-left: auto; }
.sfk-hero__eyebrow { display: block; font-weight: 600; letter-spacing: .05em; margin-bottom: 1rem; color: #fff; opacity: .9; font-size: 1.125rem; }
.sfk-hero__claim { font-size: clamp(2rem, 4.5vw, 3.5rem); font-weight: 800; color: #fff; line-height: 1.1; margin: 0 0 1.5rem; text-transform: uppercase; }
.sfk-hero__sub { font-size: 1.125rem; line-height: 1.6; margin: 0 0 2rem; max-width: 640px; }

@media (max-width: 1180px) {
    .sfk-hero__brand-mark {
        left: 1rem;
        width: 340px;
    }
}

@media (max-width: 860px) {
    .sfk-hero__brand-mark { display: none; }
}

/* ---------- SPLIT SECTIONS ---------- */
.sfk-split__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.sfk-split--reverse .sfk-split__grid { /* layout via DOM order */ }
.sfk-split__media { aspect-ratio: 3/4; overflow: hidden; }
.sfk-split__media img { width: 100%; height: 100%; object-fit: cover; object-position: 34% top; display: block; }
.sfk-split__media-placeholder { width: 100%; height: 100%; background: var(--sfk-gray-200); }
.sfk-split__headline { font-size: clamp(1.75rem, 2.8vw, 2.4rem); margin: 0 0 1.5rem; text-transform: uppercase; }
.sfk-split__sub-h { font-weight: 600; color: var(--sfk-primary-light); display: inline-block; margin-top: .25rem; }
.sfk-split__text { color: var(--sfk-gray-800); font-size: 1.0625rem; line-height: 1.7; }
.sfk-split__text p + p { margin-top: 1rem; }
.sfk-split__quote {
    margin: 1.5rem 0 0;
    padding: 1.25rem 1.5rem;
    background: rgba(40, 85, 137, 0.08);
    border-left: 4px solid var(--sfk-blue, #285589);
    color: var(--sfk-blue, #285589);
    font-style: italic;
    font-size: 1.125rem;
    line-height: 1.6;
}
.sfk-split__actions { margin-top: 2rem; }
@media (max-width: 900px) {
    .sfk-split__grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* ---------- BRANCHEN-GRID ---------- */
.sfk-branchen-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 1fr; gap: 2rem; align-items: stretch; }
@media (max-width: 900px) { .sfk-branchen-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }
@media (max-width: 600px) { .sfk-branchen-grid { grid-template-columns: 1fr; } }
.sfk-branche-card { background: #fff; border: 1px solid var(--sfk-gray-200); padding: 2.5rem 2.25rem; transition: box-shadow .2s ease, transform .2s ease; display: flex; flex-direction: column; height: 100%; min-height: 18rem; }
.sfk-branche-card:hover { box-shadow: 0 8px 24px rgba(40,85,137,0.12); transform: translateY(-2px); }
.sfk-branche-card__title { color: var(--sfk-primary); font-size: 1.5rem; margin: 0 0 1rem; text-transform: uppercase; font-weight: 800; line-height: 1.25; }
.sfk-branche-card__excerpt { color: var(--sfk-gray-800); font-size: 1.125rem; line-height: 1.6; margin: 0 0 1.25rem; flex: 1 1 auto; }
.sfk-branche-card__link { color: var(--sfk-yellow-dark); font-weight: 700; text-decoration: none; font-size: 1.0625rem; margin-top: auto; align-self: flex-start; }
.sfk-branche-card__link:hover { color: var(--sfk-primary); }

/* ---------- JOBS ---------- */
.sfk-jobs { overflow: visible; }
.sfk-jobs__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 4rem; align-items: center; }
.sfk-jobs__media { margin-top: -5rem; margin-bottom: -5rem; }
.sfk-jobs__media img { width: 100%; height: auto; display: block; box-shadow: 0 12px 48px rgba(0,0,0,0.14); }
.sfk-jobs__content h2 { text-transform: uppercase; font-size: 2rem; margin: 0 0 1rem; color: var(--sfk-primary); font-weight: 800; }
.sfk-jobs__content p { font-size: 1.125rem; line-height: 1.7; margin: 0 0 1.75rem; color: var(--sfk-gray-800); }
@media (max-width: 900px) {
    .sfk-jobs__grid { grid-template-columns: 1fr; gap: 2rem; }
    /* Mobile: kein negatives Bottom — sonst rutscht die Headline
       "JOBS / AUSBILDUNG" optisch in das Bild hinein. */
    .sfk-jobs__media { margin-top: 0; margin-bottom: 0; }
}

/* ---------- NEWS-CARDS ---------- */
.sfk-news__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
@media (max-width: 800px) { .sfk-news__grid { grid-template-columns: 1fr; } }
.sfk-news-card {
    color: #fff;
    min-height: 326px;
    padding: 2.2rem;
    border-radius: 0;
    overflow: hidden;
    background-color: var(--sfk-primary);
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: stretch;
    box-shadow: 0 22px 48px rgba(8, 30, 61, 0.14);
}
.sfk-news-card__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
    height: 100%;
    width: min(100%, 22rem);
}
.sfk-news-card__content {
    display: grid;
    gap: 1rem;
    padding: 1.2rem 1.25rem 1.3rem;
    background: linear-gradient(180deg, rgba(8, 30, 61, 0.62) 0%, rgba(8, 30, 61, 0.38) 100%);
    box-shadow: 0 16px 36px rgba(8, 30, 61, 0.18);
    backdrop-filter: blur(3px);
}
.sfk-news-card__title {
    color: #fff !important;
    font-size: clamp(2rem, 3vw, 2.5rem);
    line-height: 1.08;
    margin: 0;
    text-transform: none;
    letter-spacing: -0.03em;
    text-shadow: 0 4px 18px rgba(8, 30, 61, 0.28);
}
.sfk-news-card__sub {
    color: rgba(255, 255, 255, 0.98) !important;
    font-size: 1.125rem;
    line-height: 1.65;
    margin: 0;
    max-width: 17rem;
    text-shadow: 0 4px 18px rgba(8, 30, 61, 0.24);
}
.sfk-news-card__cta {
    margin-top: auto;
    min-width: 13.5rem;
    justify-content: center;
    padding: .9rem 1.75rem !important;
    font-size: 1.125rem !important;
    box-shadow: 0 12px 24px rgba(255, 170, 0, 0.22);
}
@media (max-width: 800px) {
    .sfk-news-card {
        min-height: 360px;
        padding: 1.75rem;
    }

    .sfk-news-card__body {
        width: min(100%, 18rem);
    }

    .sfk-news-card__title {
        font-size: 2rem;
    }
}

/* ---------- E-COMMERCE / FAQ ---------- */
.sfk-faq { list-style: none; padding: 0; margin: 1.5rem 0; border-top: 1px solid var(--sfk-gray-200); }
.sfk-faq__item { border-bottom: 1px solid var(--sfk-gray-200); }
.sfk-faq__question { width: 100%; background: transparent; border: none; padding: 1.1rem 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; font-family: inherit; font-size: 1.0625rem; color: var(--sfk-primary); font-weight: 600; text-align: left; }
.sfk-faq__question svg { transition: transform .2s ease; flex-shrink: 0; color: var(--sfk-yellow-dark); }
.sfk-faq__question[aria-expanded="true"] svg { transform: rotate(180deg); }
.sfk-faq__answer { padding: 0 0 1.1rem; color: var(--sfk-gray-800); font-size: 1rem; line-height: 1.65; }

/* ---------- REVIEWS BAND ---------- */
.sfk-reviews-band {
    position: relative;
    padding: 5.5rem 0 3.25rem;
    background:
    radial-gradient(circle at top right, rgba(var(--sfk-primary-rgb), 0.1), transparent 28%),
        linear-gradient(180deg, #fff 0%, var(--sfk-gray-50) 58%, #f7f8fa 100%);
}

.sfk-reviews-band__header {
    display: grid;
    gap: 1.5rem;
    margin-bottom: 1.25rem;
}

.sfk-reviews-band__eyebrow {
    display: inline-flex;
    margin-bottom: 0.75rem;
    font-family: var(--sfk-font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--sfk-secondary-dark);
}

.sfk-reviews-band__title {
    margin: 0;
    font-size: clamp(2.15rem, 4vw, 3.6rem);
    line-height: 1.05;
}

.sfk-reviews-band__sub {
    max-width: 44rem;
    margin: 0.75rem 0 0;
    color: var(--sfk-gray-600);
}

.sfk-reviews-band__summary {
    display: inline-grid;
    gap: 0.35rem;
    width: fit-content;
    padding: 1.2rem 1.45rem;
    background: var(--sfk-white);
    border: 1px solid rgba(var(--sfk-primary-rgb), 0.12);
    border-left: 0.35rem solid var(--sfk-primary-light);
    box-shadow: 0 1rem 2.5rem rgba(27, 63, 105, 0.08);
}

.sfk-reviews-band__summary-label {
    font-family: var(--sfk-font-heading);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--sfk-secondary-dark);
}

.sfk-reviews-band__score {
    font-family: var(--sfk-font-heading);
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
    color: var(--sfk-primary);
}

.sfk-reviews-band__summary-stars,
.sfk-reviews-band__stars {
    letter-spacing: 0.12em;
}

.sfk-reviews-band__summary-stars {
    color: var(--sfk-primary);
    font-size: 1.2rem;
}

.sfk-reviews-band__summary-count {
    color: var(--sfk-gray-600);
    font-size: 0.95rem;
}

.sfk-reviews-band__rail {
    display: flex;
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}

.sfk-reviews-band__rail span {
    display: block;
    height: 0.3rem;
    background: linear-gradient(90deg, rgba(var(--sfk-primary-rgb), 0.95), rgba(var(--sfk-secondary-rgb), 0.8));
}

.sfk-reviews-band__rail span:nth-child(1) {
    width: 6rem;
}

.sfk-reviews-band__rail span:nth-child(2) {
    width: 2.75rem;
    opacity: 0.68;
}

.sfk-reviews-band__rail span:nth-child(3) {
    width: 1.4rem;
    opacity: 0.38;
}

.sfk-reviews-band__viewport {
    overflow: hidden;
}

.sfk-reviews-band__grid {
    display: flex;
    gap: 1rem;
    transition: transform 0.5s ease;
    will-change: transform;
}

.sfk-reviews-band__card {
    position: relative;
    display: grid;
    gap: 1rem;
    flex: 0 0 100%;
    padding: 1.75rem 1.5rem 1.5rem;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(var(--sfk-primary-rgb), 0.1);
    border-top: 0.28rem solid rgba(var(--sfk-primary-rgb), 0.16);
    box-shadow: 0 1.25rem 2.8rem rgba(27, 63, 105, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    overflow: hidden;
}

.sfk-reviews-band__card:hover {
    transform: translateY(-0.25rem);
    box-shadow: 0 1.5rem 3rem rgba(27, 63, 105, 0.12);
    border-color: rgba(var(--sfk-primary-rgb), 0.18);
}

.sfk-reviews-band__card.is-featured {
    background:
        linear-gradient(180deg, rgba(var(--sfk-primary-rgb), 0.04), transparent 32%),
        rgba(255, 255, 255, 0.96);
    border-top-color: var(--sfk-primary-light);
}

.sfk-reviews-band__mark {
    position: absolute;
    top: 0.85rem;
    right: 1rem;
    font-family: Georgia, serif;
    font-size: 4.25rem;
    line-height: 1;
    color: rgba(var(--sfk-primary-rgb), 0.08);
    pointer-events: none;
}

.sfk-reviews-band__card-head,
.sfk-reviews-band__person {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sfk-reviews-band__person {
    justify-content: flex-start;
}

.sfk-reviews-band__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(var(--sfk-primary-rgb), 0.95), rgba(var(--sfk-secondary-rgb), 0.92));
    color: var(--sfk-white);
    overflow: hidden;
    flex-shrink: 0;
}

.sfk-reviews-band__avatar img,
.sfk-reviews-band__avatar-fallback {
    width: 100%;
    height: 100%;
    border-radius: 999px;
}

.sfk-reviews-band__avatar img {
    object-fit: cover;
}

.sfk-reviews-band__avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
}

.sfk-reviews-band__person-copy {
    display: grid;
    gap: 0.2rem;
}

.sfk-reviews-band__person-copy strong {
    color: var(--sfk-primary);
    font-size: 1rem;
}

.sfk-reviews-band__person-copy span,
.sfk-reviews-band__google {
    color: var(--sfk-gray-600);
    font-size: 0.92rem;
}

.sfk-reviews-band__google {
    justify-self: end;
}

.sfk-reviews-band__stars {
    display: inline-flex;
    gap: 0.18rem;
}

.sfk-reviews-band__star {
    color: #d5d9dc;
    font-size: 1rem;
}

.sfk-reviews-band__star.is-filled {
    color: var(--sfk-primary-light);
}

.sfk-reviews-band__quote {
    margin: 0;
    max-width: 31ch;
    color: var(--sfk-gray-800);
    line-height: 1.75;
}

.sfk-reviews-band__link {
    display: inline-flex;
    width: fit-content;
    margin-top: auto;
    font-family: var(--sfk-font-heading);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.sfk-reviews-band__link:hover {
    color: var(--sfk-primary-light);
}

.sfk-reviews-band__controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.85rem;
    margin-top: 1.35rem;
}

.sfk-reviews-band__control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.9rem;
    min-height: 2.9rem;
    padding: 0;
    border: 1px solid rgba(var(--sfk-primary-rgb), 0.14);
    background: var(--sfk-white);
    color: var(--sfk-primary);
    font-size: 1.1rem;
    cursor: pointer;
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.sfk-reviews-band__control:hover,
.sfk-reviews-band__control:focus-visible {
    transform: translateY(-0.1rem);
    border-color: rgba(var(--sfk-primary-rgb), 0.28);
    box-shadow: 0 0.75rem 1.4rem rgba(27, 63, 105, 0.08);
}

.sfk-reviews-band__status {
    min-width: 5rem;
    text-align: center;
    font-family: var(--sfk-font-heading);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--sfk-secondary-dark);
}

@media (min-width: 768px) {
    .sfk-reviews-band__header {
        grid-template-columns: minmax(0, 1.6fr) auto;
        align-items: end;
    }

    .sfk-reviews-band__card {
        flex-basis: calc((100% - 1rem) / 2);
    }
}

@media (min-width: 1100px) {
    .sfk-reviews-band__card {
        flex-basis: calc((100% - 2rem) / 3);
    }
}

@media (max-width: 767px) {
    .sfk-reviews-band {
        padding: 4rem 0 2.5rem;
    }

    .sfk-reviews-band__summary {
        width: 100%;
    }

    .sfk-reviews-band__card {
        padding: 1.25rem;
    }

    .sfk-reviews-band__card-head {
        align-items: flex-start;
    }

    .sfk-reviews-band__controls {
        justify-content: space-between;
    }
}

/* ---------- NEWSLETTER ---------- */
.sfk-newsletter { background: var(--sfk-gray-100); padding: 3rem 0; }
.sfk-newsletter__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.sfk-newsletter__lead { display: block; font-size: 1.125rem; color: var(--sfk-gray-600); text-transform: uppercase; letter-spacing: .1em; margin-bottom: .5rem; }
.sfk-newsletter__title { font-size: clamp(2.5rem, 5vw, 4rem); color: var(--sfk-primary); margin: 0; text-transform: uppercase; }
.sfk-newsletter__form { display: flex; gap: .5rem; align-items: stretch; }
.sfk-newsletter__form input { flex: 1; padding: .9rem 1rem; border: 1px solid var(--sfk-gray-200); font-size: 1.125rem; font-family: inherit; }
.sfk-newsletter__form input:focus { outline: 2px solid var(--sfk-yellow); }
@media (max-width: 800px) {
    .sfk-newsletter__grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ---------- FOOTER ---------- */
.sfk-footer { background: var(--sfk-secondary-dark); color: #fff; }
.sfk-footer a { color: #fff; }
.sfk-footer a:hover { color: var(--sfk-gray-100); }
.sfk-footer__top { padding: 3rem 0 2rem; }
.sfk-footer__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; align-items: start; }
@media (max-width: 900px) {
    .sfk-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
    .sfk-footer__awards-grid {
        grid-template-columns: repeat(2, minmax(7rem, 8.5rem));
        justify-content: start;
        gap: .75rem;
    }
}
.sfk-footer__heading { font-size: .8rem; color: #fff; opacity: 1; text-transform: uppercase; letter-spacing: .15em; margin: 0 0 1rem; font-weight: 700; }
.sfk-footer__social { display: flex; gap: .75rem; margin-bottom: 1.5rem; }
.sfk-footer__social a { color: rgba(255,255,255,.75); }
.sfk-footer__social a:hover { color: #fff; opacity: 1; }
.sfk-footer__logo .custom-logo-link { display: inline-block; line-height: 0; }
.sfk-footer__address { font-style: normal; line-height: 1.6; font-size: .95rem; margin: 0 0 1rem; color: rgba(255,255,255,.92); }
.sfk-footer__contact { font-size: .9rem; line-height: 1.6; margin: 0; color: rgba(255,255,255,.92); }
.sfk-footer__contact a { color: inherit; }
.sfk-footer__col--hours { color: #fff; padding: 0; width: 100%; }
@media (max-width: 900px) { .sfk-footer__col--hours { max-width: none; } }
.sfk-footer__col--hours .sfk-footer__heading { color: #fff; opacity: 1; }
.sfk-footer__col--hours a { color: #fff; }
.sfk-footer__hours { font-size: .95rem; line-height: 1.6; margin: 0; color: rgba(255,255,255,.92); }
.sfk-footer__col--hours .sfk-footer__social { margin-top: 1rem; margin-bottom: 0; }
.sfk-footer__col--awards { padding: 0; width: 100%; }
@media (min-width: 901px) { .sfk-footer__col--hours, .sfk-footer__col--awards { padding-top: 62px; } }
.sfk-footer__col--awards .sfk-footer__heading { color: #fff; opacity: 1; text-align: right; }
.sfk-footer__awards-grid { display: grid; grid-template-columns: repeat(2, minmax(7rem, 8.5rem)); gap: .75rem; align-items: start; justify-content: start; }
@media (min-width: 901px) { .sfk-footer__awards-grid { grid-template-columns: repeat(4, 1fr); justify-content: stretch; } }
.sfk-footer__award { display: flex; align-items: center; justify-content: center; }
.sfk-footer__award img { width: auto; height: auto; max-width: 100%; max-height: 8rem; object-fit: contain; }
.sfk-footer__award:first-child img { clip-path: inset(4px); }
.sfk-footer__ai-notice { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.18); color: #ffffff; text-align: right; outline: none; }
.sfk-footer__ai-notice-heading { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: #ffffff; margin: 0 0 .5rem; }
.sfk-footer__ai-notice-text { font-size: .8rem; line-height: 1.55; margin: 0 0 .5rem; }
.sfk-footer__ai-notice-text:last-child { margin-bottom: 0; }
.sfk-footer__ai-notice-link { color: #fff; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.sfk-footer__ai-notice-link:hover, .sfk-footer__ai-notice-link:focus-visible { color: var(--sfk-yellow); }
.sfk-footer__ai-notice:target, .sfk-footer__ai-notice.is-highlight { box-shadow: 0 0 0 2px var(--sfk-yellow); transition: box-shadow .3s ease; }
@media (max-width: 900px) { .sfk-footer__ai-notice { text-align: left; } }

.sfk-header__ai-link { display: inline-flex; align-items: center; gap: .35rem; margin-left: 1rem; padding: .25rem .55rem; font-size: .8rem; font-weight: 600; line-height: 1.2; color: var(--sfk-gray, #5f6461); border: 1px solid currentColor; border-radius: 999px; text-decoration: none; transition: color .15s ease, border-color .15s ease, background .15s ease; white-space: nowrap; }
.sfk-header__ai-link:hover, .sfk-header__ai-link:focus-visible { color: var(--sfk-primary, #285589); background: rgba(40,85,137,.06); }
.sfk-header__ai-link-icon { flex-shrink: 0; }
.home .sfk-header__ai-link { color: rgba(255,255,255,.9); }
.home .sfk-header__ai-link:hover, .home .sfk-header__ai-link:focus-visible { color: #fff; background: rgba(255,255,255,.12); }
@media (max-width: 1100px) { .sfk-header__ai-link span { display: none; } .sfk-header__ai-link { padding: .35rem; } }
@media (max-width: 900px) { .sfk-header__ai-link { display: none; } }

.sfk-footer__bottom { background: #5f6461; padding: 1rem 0; font-size: .85rem; }
.sfk-footer__bottom .sfk-container { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; flex-wrap: wrap; }
.sfk-footer__legal-nav { display: flex; gap: 1.25rem; list-style: none; padding: 0; margin: 0; }

/* ---------- FLOATING CONTACT BAR ---------- */
.sfk-floatbar { position: fixed; right: 1rem; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: .5rem; z-index: 99; }
.sfk-floatbar__item,
button.sfk-floatbar__item { width: 44px !important; height: 44px !important; padding: 0 !important; margin: 0 !important; background: var(--sfk-primary) !important; color: #fff !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; display: inline-flex !important; align-items: center; justify-content: center; text-decoration: none; cursor: pointer; position: relative; transition: background .15s ease; font: inherit; line-height: 1; appearance: none; -webkit-appearance: none; }
.sfk-floatbar__item svg { width: 22px; height: 22px; display: block; }
.sfk-floatbar__item:hover, .sfk-floatbar__item.is-open { background: var(--sfk-yellow) !important; color: var(--sfk-primary) !important; }
.sfk-floatbar__tooltip { position: absolute; right: calc(100% + .5rem); top: 50%; transform: translateY(-50%); background: var(--sfk-primary-dark); color: #fff; padding: .5rem .75rem; font-size: .85rem; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .15s ease; }
.sfk-floatbar__item:hover .sfk-floatbar__tooltip,
.sfk-floatbar__item:focus .sfk-floatbar__tooltip,
.sfk-floatbar__item.is-open .sfk-floatbar__tooltip { opacity: 1; }
.sfk-floatbar__tooltip--hours { white-space: normal; min-width: 220px; line-height: 1.5; }
@media (max-width: 600px) {
    .sfk-floatbar { right: .5rem; gap: .3rem; }
    .sfk-floatbar__item { width: 40px; height: 40px; }
}

/* ---------- A11y mode (Toggle) ---------- */
.sfk-a11y { font-size: 112.5%; }
.sfk-a11y body { color: #000; background: #fff; }

/* ---------- Empty State ---------- */
.sfk-empty-state { text-align: center; color: var(--sfk-gray-600); padding: 2rem; font-style: italic; }

/* ==========================================================================
   HOME / FRONT-PAGE: Fullwidth Hero Image hinter Menü
   ========================================================================== */
.home .sfk-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    /* Dunkler Gradient als WCAG-Fallback: weiße Header-Texte bleiben auch
       lesbar, falls das Hero-Hintergrundbild nicht lädt. Auf dem Hero-Bild
       ist das ohnehin unsichtbar (Bild ist dunkel). Erfüllt WCAG 1.4.3 für
       Text-on-image-Pattern. */
    background: linear-gradient(180deg, rgba(11, 30, 56, 0.55) 0%, rgba(11, 30, 56, 0.25) 70%, rgba(11, 30, 56, 0) 100%);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: none;
    box-shadow: none;
    z-index: 50;
    transition: background .25s ease, backdrop-filter .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.home .sfk-header.is-scrolled {
    background: rgba(11, 30, 56, 0.55);
    backdrop-filter: saturate(160%) blur(14px);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    border-bottom: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 4px 18px rgba(0,0,0,0.18);
}
.home .sfk-header__inner { padding-top: .75rem; padding-bottom: .75rem; }
.home .sfk-nav__list a,
.home .sfk-header__a11y svg { color: #fff; }
.home .sfk-hamburger span { background: #fff; }
.home .sfk-nav__list a:hover { color: var(--sfk-yellow); }
.home .sfk-header__logo img { filter: brightness(0) invert(1); }
.home .sfk-header__a11y { background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.4); }
.home .sfk-header__a11y:hover { background: var(--sfk-yellow); color: var(--sfk-primary); }

/* Hero darf hinter dem absolut platzierten Header sitzen */
.home {
    --sfk-section-gap: 15rem;
}

.home .sfk-main { margin-top: 0; }

@media (max-width: 900px) {
    .home {
        --sfk-section-gap: 8rem;
    }
}
.sfk-hero { min-height: 100vh; padding-top: 0; }
.sfk-hero .sfk-container { padding-top: 10rem; padding-bottom: 6rem; }
.home .sfk-hero .sfk-container {
    max-width: 1400px;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.home .sfk-hero { align-items: flex-end; }
.home .sfk-hero .sfk-container { padding-top: 8rem; padding-bottom: 5rem; }
.home .sfk-hero__content {
    margin-left: auto;
    margin-right: 0;
}
.home .sfk-hero__brand-mark {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    transform: none;
    width: clamp(220px, 24vw, 360px);
    margin: 0 0 1.75rem;
}
@media (max-width: 1430px) {
    .home .sfk-hero__brand-mark {
        position: static;
        left: auto;
        transform: none;
    }
}
.home .sfk-hero__brand-mark-image {
    filter:
        brightness(0)
        invert(1)
        drop-shadow(0 0 10px rgba(255, 255, 255, 0.34))
        drop-shadow(0 14px 30px rgba(6, 16, 32, 0.44));
    opacity: 0.96;
}
.sfk-hero__overlay { background: linear-gradient(180deg, rgba(11,30,56,0.55) 0%, rgba(11,30,56,0.25) 35%, rgba(40,85,137,0.45) 100%); }

@media (max-width: 1024px) {
    .home .sfk-header__cta { display: none; }
    .home .sfk-hero .sfk-container {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
        padding-bottom: 3.5rem;
    }
}

/* ==========================================================================
   Custom Logo (WP) auf Header-Höhe begrenzen
   ========================================================================== */
.sfk-header__logo .custom-logo-link { display: inline-block; line-height: 0; }
.sfk-header__logo .custom-logo,
.sfk-header__logo img { height: 36px !important; width: auto !important; max-width: 100%; display: block; }
@media (max-width: 600px) {
    .sfk-header__logo .custom-logo,
    .sfk-header__logo img { height: 30px !important; }
}

/* Header schrumpft beim Scroll leicht */
.sfk-header.is-scrolled .sfk-header__inner { padding-top: .5rem; padding-bottom: .5rem; }
.sfk-header.is-scrolled .sfk-header__logo .custom-logo,
.sfk-header.is-scrolled .sfk-header__logo img { height: 28px; transition: height .2s ease; }
.sfk-header__logo .custom-logo,
.sfk-header__logo img { transition: height .2s ease; }

/* ==========================================================================
   Blog Single – Startseiten-Look (ohne Kachel)
   ========================================================================== */
.single-post .sfk-main {
    margin-top: 0;
}

.sfk-page-breadcrumbs {
    background: var(--sfk-gray-100);
    color: var(--sfk-primary);
    padding: 0.75rem 0;
    margin-top: 0;
}

.sfk-page-breadcrumbs .sfk-blog-single__breadcrumb,
.sfk-page-breadcrumbs .sfk-news-overview__breadcrumb,
.sfk-page-breadcrumbs .sfk-page-breadcrumbs__nav {
    margin: 0;
}

.sfk-page-breadcrumbs .sfk-blog-single__breadcrumb-current,
.sfk-page-breadcrumbs .sfk-news-overview__breadcrumb-current,
.sfk-page-breadcrumbs .sfk-page-breadcrumbs__current {
    white-space: normal;
    overflow: visible;
    text-overflow: initial;
}

/* Generic breadcrumbs styling */
.sfk-page-breadcrumbs__nav {
    margin-bottom: 1.5rem;
}

.sfk-page-breadcrumbs__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem;
    font-size: 1.125rem;
    line-height: 1.5;
}

.sfk-page-breadcrumbs__link {
    text-decoration: none;
    color: inherit;
    opacity: 0.88;
    transition: opacity 0.2s ease;
}

.sfk-page-breadcrumbs__link:hover {
    opacity: 1;
}

.sfk-page-breadcrumbs__current {
    font-weight: 700;
}

.sfk-page-breadcrumbs__separator {
    opacity: 0.6;
}

.sfk-blog-single__hero {
    background: linear-gradient(180deg, #eef4fa 0%, #f8fbff 100%);
    padding-top: 4.5rem;
    padding-bottom: 3.5rem;
}

.sfk-blog-single__hero .sfk-container {
    padding-top: 0;
    padding-bottom: 0;
}

.sfk-blog-single__hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 2.5rem;
    align-items: stretch;
}

.sfk-blog-single__hero-content {
    margin-left: 0;
    color: var(--sfk-primary);
    align-self: center;
    min-width: 0;
    overflow: hidden;
}

.sfk-blog-single__hero-media {
    background: var(--sfk-gray-200);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sfk-blog-single__hero-image,
.sfk-blog-single__hero-media img {
    width: 100%;
    height: auto;
    max-height: 560px;
    object-fit: contain;
    object-position: center;
    display: block;
}

.sfk-blog-single__hero-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(145deg, #c7d6ea 0%, #e6edf7 100%);
}

.sfk-blog-single__breadcrumb {
    margin-bottom: 1.5rem;
}

.sfk-blog-single__breadcrumb ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem;
    font-size: 1.125rem;
    line-height: 1.5;
}

.sfk-blog-single__breadcrumb a {
    text-decoration: none;
    color: inherit;
    opacity: 0.9;
    transition: opacity .2s ease;
}

.sfk-blog-single__breadcrumb a:hover {
    opacity: 1;
}

.sfk-blog-single__breadcrumb-current {
    font-weight: 600;
    display: inline-block;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sfk-blog-single__breadcrumb-separator {
    opacity: 0.6;
}

.sfk-blog-single__category {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border: 1px solid currentColor;
    text-decoration: none;
    color: inherit;
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.sfk-blog-single__title {
    font-size: clamp(1.75rem, 3.6vw, 3rem);
    line-height: 1.1;
    margin: 0 0 1.25rem;
    text-transform: uppercase;
    color: inherit;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
    -webkit-hyphens: auto;
    max-width: 100%;
}

.sfk-blog-single__author {
    display: inline-flex;
    align-items: center;
    gap: 0.875rem;
    margin: 0 0 1.1rem;
}

.sfk-blog-single__author-image,
.sfk-blog-single__author-fallback {
    width: 4.25rem;
    height: 4.25rem;
    border-radius: 999px;
    flex-shrink: 0;
}

.sfk-blog-single__author-image {
    object-fit: cover;
    object-position: center;
    display: block;
    border: 2px solid rgba(var(--sfk-primary-rgb), 0.25);
}

.sfk-blog-single__author-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
    background: var(--sfk-primary);
}

.sfk-blog-single__author-copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.sfk-blog-single__author-label {
    font-size: 1.125rem;
    line-height: 1.35;
    font-weight: 600;
    color: var(--sfk-gray-700);
}

.sfk-blog-single__author-name {
    font-size: 1.125rem;
    line-height: 1.35;
    font-weight: 700;
    color: inherit;
}

.sfk-blog-single__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem;
    font-size: 1.125rem;
    line-height: 1.5;
    margin-bottom: 1.5rem;
    color: inherit;
    opacity: 0.95;
}

.sfk-blog-single__dot {
    opacity: 0.7;
}

.sfk-blog-single__excerpt {
    font-size: 1.125rem;
    line-height: 1.75;
    max-width: 760px;
    margin: 0 0 1.75rem;
}

.sfk-blog-single__share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.125rem;
    line-height: 1.5;
}

.sfk-blog-single__share a {
    text-decoration: none;
    color: inherit;
    padding: 0.25rem 0.4rem;
    border-bottom: 1px solid rgba(8, 30, 61, 0.35);
    transition: border-color .2s ease;
}

.sfk-blog-single__share a:hover {
    border-bottom-color: rgba(8, 30, 61, 0.9);
}

.sfk-blog-single__body {
    padding-top: 4rem;
}

.sfk-blog-single__article {
    font-size: 1.125rem;
    line-height: 1.85;
    color: var(--sfk-gray-800);
}

.sfk-blog-single__article > *:first-child {
    margin-top: 0;
}

.sfk-blog-single__article p,
.sfk-blog-single__article ul,
.sfk-blog-single__article ol,
.sfk-blog-single__article blockquote,
.sfk-blog-single__article figure,
.sfk-blog-single__article pre,
.sfk-blog-single__article table {
    margin-top: 0;
    margin-bottom: 1.5rem;
}

.sfk-blog-single__article h2,
.sfk-blog-single__article h3,
.sfk-blog-single__article h4 {
    color: var(--sfk-primary);
    margin-top: 2.25rem;
    margin-bottom: 0.9rem;
    line-height: 1.28;
}

.sfk-blog-single__article h2 {
    font-size: clamp(1.8rem, 2.8vw, 2.4rem);
}

.sfk-blog-single__article h3 {
    font-size: clamp(1.45rem, 2.2vw, 1.8rem);
}

.sfk-blog-single__article h4 {
    font-size: clamp(1.2rem, 1.8vw, 1.35rem);
}

.sfk-blog-single__article a {
    color: var(--sfk-primary-light);
}

.sfk-blog-single__article blockquote {
    padding: 1.25rem 1.5rem;
    border-left: 4px solid var(--sfk-primary-light);
    background: var(--sfk-gray-100);
    color: var(--sfk-gray-700);
}

.sfk-blog-single__article img {
    display: block;
    max-width: 100%;
    height: auto;
}

.sfk-blog-single__article figcaption {
    font-size: 1.125rem;
    color: var(--sfk-gray-600);
    margin-top: 0.5rem;
}

.sfk-blog-single__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.sfk-blog-single__tags a {
    text-decoration: none;
    font-size: 1.125rem;
    color: var(--sfk-primary);
    background: var(--sfk-gray-100);
    padding: 0.35rem 0.7rem;
}

.sfk-blog-single__related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.sfk-blog-single__related-link {
    display: block;
    background: #fff;
    border: 1px solid var(--sfk-gray-200);
    text-decoration: none;
    color: inherit;
    height: 100%;
}

.sfk-blog-single__related-media {
    aspect-ratio: 16 / 9;
    background: var(--sfk-gray-100);
    overflow: hidden;
}

.sfk-blog-single__related-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sfk-blog-single__related-copy {
    padding: 1.25rem;
}

.sfk-blog-single__related-copy h3 {
    font-size: 1.35rem;
    line-height: 1.35;
    margin: 0 0 0.8rem;
    color: var(--sfk-primary);
}

.sfk-blog-single__related-category,
.sfk-blog-single__related-meta {
    font-size: 1.125rem;
    line-height: 1.5;
    margin: 0;
    color: var(--sfk-gray-600);
}

.sfk-blog-single__related-category {
    margin-bottom: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sfk-blog-single__cta {
    padding-top: 3.25rem;
}

.sfk-blog-single__cta-inner {
    text-align: center;
    padding: 0.25rem 0 0.5rem;
}

.sfk-blog-single__cta-inner h2 {
    margin: 0 0 1rem;
    font-size: clamp(1.85rem, 3vw, 2.7rem);
    color: var(--sfk-primary);
}

.sfk-blog-single__cta-inner p {
    margin: 0 auto 1.75rem;
    max-width: 760px;
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--sfk-gray-700);
}

@media (max-width: 1024px) {
    .sfk-blog-single__hero {
        padding-top: 3.75rem;
    }

    .sfk-blog-single__hero-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .sfk-blog-single__title {
        font-size: clamp(1.85rem, 5.5vw, 3rem);
    }

    .sfk-blog-single__related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .sfk-page-breadcrumbs {
        padding-top: 0.85rem;
        padding-bottom: 0.6rem;
    }

    .sfk-blog-single__hero {
        padding-top: 3.25rem;
        padding-bottom: 2.5rem;
    }

    .sfk-blog-single__breadcrumb-current {
        max-width: 100%;
        white-space: normal;
    }

    .sfk-blog-single__related-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Kanzlei Page - /kanzlei
   ========================================================================== */
.page-template-page-kanzlei {
    background: #e9ecef;
}

.sfk-kanzlei-page {
    padding: 0 0 5rem;
}

/* Karriere-style blue hero re-used on /kanzlei/ – Split-Layout (Bild rechts, Text links) */
.sfk-kanzlei-hero-blue {
    /* Höhe an breiteres Bild-Verhältnis (4:3) der rechten Hälfte koppeln,
       damit auf breiten Screens deutlich mehr vom Motiv sichtbar bleibt.
       Rechte Hälfte = 50vw → Höhe = 50vw * 3/4 = 37.5vw.
       Mindesthöhe sichert genug Platz für den Text auf normalen Screens. */
    min-height: max(clamp(440px, 60vh, 620px), 37.5vw);
    align-items: stretch;
    background: var(--sfk-primary);
    overflow: hidden;
}
.sfk-kanzlei-hero-blue .sfk-kar-hero__bg {
    position: absolute;
    inset: 0 0 0 50%;
    z-index: -2;
    background: var(--sfk-primary);
}
.sfk-kanzlei-hero-blue .sfk-kar-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
}
.sfk-kanzlei-hero-blue .sfk-kar-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
        var(--sfk-primary) 0%,
        var(--sfk-primary) 42%,
        rgba(40, 85, 137, 0.85) 50%,
        rgba(40, 85, 137, 0) 60%);
    z-index: -1;
}
.sfk-kanzlei-hero-blue .sfk-container {
    width: 100%;
}
.sfk-kanzlei-hero-blue .sfk-kar-hero__content {
    max-width: 50%;
    padding-block: clamp(3rem, 7vw, 5.5rem);
    padding-right: 2rem;
}
.sfk-kanzlei-hero-blue__lead {
    font-family: var(--sfk-font-heading);
    font-size: clamp(1.05rem, 1.6vw, 1.25rem);
    line-height: 1.5;
    color: var(--sfk-white);
    margin: -0.75rem 0 1.75rem;
    max-width: 36rem;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.25);
}

@media (max-width: 900px) {
    .sfk-kanzlei-hero-blue .sfk-kar-hero__bg {
        position: relative;
        inset: auto;
        height: auto;
        aspect-ratio: 2024 / 1350;
        margin-bottom: 0;
    }
    .sfk-kanzlei-hero-blue .sfk-kar-hero__bg img {
        object-fit: cover;
        object-position: center center;
    }
    .sfk-kanzlei-hero-blue .sfk-kar-hero__overlay {
        display: none;
    }
    .sfk-kanzlei-hero-blue {
        flex-direction: column;
        display: flex;
    }
    .sfk-kanzlei-hero-blue .sfk-container {
        background: var(--sfk-primary);
    }
    .sfk-kanzlei-hero-blue .sfk-kar-hero__content {
        max-width: 100%;
        padding-right: 0;
        padding-block: clamp(2rem, 6vw, 3rem);
    }
}

.sfk-kanzlei-page > .sfk-kanzlei-band:first-of-type,
.sfk-kanzlei-page > .sfk-kar-hero + .sfk-kanzlei-band {
    padding-top: 3rem;
}

.sfk-kanzlei-band {
    padding: 3.5rem 0;
}

.sfk-kanzlei-title {
    margin: 0 0 1rem;
    color: #0f3d77;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.2;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.sfk-kanzlei-title--compact {
    margin-bottom: 0.75rem;
}

.sfk-kanzlei-title__main {
    display: block;
}

.sfk-kanzlei-title__sub {
    display: block;
    margin-top: 0.35rem;
    color: #3f5f88;
    font-size: clamp(1.1rem, 1.6vw, 1.5rem);
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: none;
}

.sfk-kanzlei-title--intro {
    font-size: clamp(1.75rem, 2.5vw, 2.5rem);
}

@media (min-width: 1100px) {
    .sfk-kanzlei-title--intro .sfk-kanzlei-title__main {
        white-space: nowrap;
    }
}

.sfk-kanzlei-subtitle {
    margin: 0 0 1.5rem;
    color: #3f5f88;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    font-size: 1.25rem;
}

.sfk-kanzlei-copy p,
.sfk-kanzlei-media__caption,
.sfk-kanzlei-list li,
.sfk-kanzlei-team-intro,
.sfk-kanzlei-values dt,
.sfk-kanzlei-values dd,
.sfk-kanzlei-cta__copy p {
    font-size: 1.125rem;
    line-height: 1.7;
    color: #40577b;
}

.sfk-kanzlei-copy p {
    margin: 0 0 1.1rem;
}

.sfk-kanzlei-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 3rem;
    align-items: start;
}

.sfk-kanzlei-media {
    margin: 0;
}

.sfk-kanzlei-media__image {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    background: #d9dee5;
}

.sfk-kanzlei-media__caption {
    margin-top: 1rem;
    max-width: 56ch;
}

.sfk-kanzlei-media__caption strong {
    display: block;
    margin-bottom: 0.35rem;
    color: #0f3d77;
}

.sfk-kanzlei-media__caption--strong {
    font-weight: 600;
    color: #244a7d;
}

.sfk-kanzlei-list {
    margin: 0 0 1.3rem;
    padding: 0;
    list-style: none;
}

.sfk-kanzlei-list li {
    position: relative;
    padding: 0.55rem 0 0.55rem 1.85rem;
    border-bottom: 1px solid rgba(40, 85, 137, 0.12);
    color: #40577b;
    font-size: 1.125rem;
    line-height: 1.55;
}

.sfk-kanzlei-list li:last-child {
    border-bottom: 0;
}

.sfk-kanzlei-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1.05rem;
    width: 0.85rem;
    height: 2px;
    background: var(--sfk-yellow);
}

.sfk-kanzlei-values {
    margin: 1.25rem 0 0;
}

.sfk-kanzlei-values dt {
    margin: 1.5rem 0 0.25rem;
    color: #0f3d77;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
}

.sfk-kanzlei-values dt:first-child {
    margin-top: 0;
}

.sfk-kanzlei-values dd {
    margin: 0;
}

.sfk-kanzlei-hero {
    padding-bottom: 1.8rem;
}

.sfk-kanzlei-hero__frame {
    position: relative;
    margin: 0;
    overflow: hidden;
}

.sfk-kanzlei-hero__image {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: center top;
}

.sfk-kanzlei-hero__copy {
    position: absolute;
    left: 1.5rem;
    right: 1.5rem;
    bottom: 1.2rem;
    max-width: 36rem;
    margin: 0;
    padding: 1rem 1.1rem;
    background: linear-gradient(180deg, rgba(8, 31, 62, 0) 0%, rgba(8, 31, 62, 0.84) 62%);
    color: #ffffff;
    text-transform: uppercase;
}

.sfk-kanzlei-hero__copy p {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.45;
    letter-spacing: 0.02em;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
}

.sfk-kanzlei-section-head {
    margin-bottom: 1.5rem;
    text-align: left;
}

.sfk-kanzlei-section-head h2 {
    margin: 0;
    color: #0f3d77;
    font-size: clamp(1.9rem, 2.8vw, 2.5rem);
    text-transform: uppercase;
}

.sfk-kanzlei-section-head p {
    margin: 0.35rem 0 0;
    font-size: 1.25rem;
    color: #3f5f88;
    text-transform: uppercase;
}

.sfk-kanzlei-partner-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.5rem;
}

.sfk-kanzlei-partner-card {
    margin: 0;
    display: flex;
    flex-direction: column;
}

.sfk-kanzlei-partner-card__media {
    background: #dbe0e5;
}

.sfk-kanzlei-partner-card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center top;
}

.sfk-kanzlei-partner-card__meta {
    margin-top: 0.85rem;
    padding-bottom: 0.85rem;
    border-bottom: 2px solid var(--sfk-yellow);
}

.sfk-kanzlei-partner-card__name,
.sfk-kanzlei-partner-card__role {
    margin: 0;
    text-transform: uppercase;
    font-family: var(--sfk-font-heading);
}

.sfk-kanzlei-partner-card__name {
    font-size: 1.125rem;
    color: #0f3d77;
    font-weight: 700;
}

.sfk-kanzlei-partner-card__role {
    margin-top: 0.3rem;
    font-size: 1.125rem;
    color: #3f5f88;
    font-weight: 600;
}

.sfk-kanzlei-partner-card__bio {
    margin-top: 1rem;
    color: var(--sfk-gray-800);
    font-size: 1.125rem;
    line-height: 1.6;
}

.sfk-kanzlei-partner-card__bio p {
    margin: 0 0 0.85rem;
}

.sfk-kanzlei-partner-card__bio p:last-child {
    margin-bottom: 0;
}

.sfk-kanzlei-band--team {
    padding-top: 3.5rem;
}

.sfk-kanzlei-team-intro {
    margin: 0 0 1.6rem;
}

.sfk-kanzlei-team-slider__viewport {
    overflow: hidden;
}

.sfk-kanzlei-team-slider__track {
    display: flex;
    gap: 1rem;
    transition: transform 0.5s ease;
    will-change: transform;
}

.sfk-kanzlei-team-slide {
    position: relative;
    flex: 0 0 calc((100% - 3rem) / 4);
    background: #dbe0e5;
    overflow: hidden;
}

.sfk-kanzlei-team-slide__image {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center top;
}

.sfk-kanzlei-team-slide__label {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1rem 0.95rem;
    background: linear-gradient(180deg, rgba(8, 31, 62, 0) 0%, rgba(8, 31, 62, 0.86) 100%);
}

.sfk-kanzlei-team-slide__label span {
    display: block;
    color: #ffffff;
    font-size: 1.125rem;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    line-height: 1.35;
}

.sfk-kanzlei-team-slider__controls {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-top: 0.95rem;
}

.sfk-kanzlei-team-slider__control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    border: 1px solid rgba(var(--sfk-primary-rgb), 0.2);
    background: transparent;
    color: #0f3d77;
    cursor: pointer;
    font-size: 1.25rem;
    transition: background 0.2s ease, color 0.2s ease;
}

.sfk-kanzlei-team-slider__control:hover,
.sfk-kanzlei-team-slider__control:focus-visible {
    background: #0f3d77;
    color: #ffffff;
}

.sfk-kanzlei-team-slider__status {
    min-width: 5.5rem;
    text-align: center;
    font-size: 1.125rem;
    color: #2e527f;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
}

.sfk-kanzlei-cta {
    padding-top: 2.8rem;
}

.sfk-kanzlei-cta__inner {
    background: var(--sfk-primary);
    display: grid;
    grid-template-columns: 1.2fr minmax(220px, auto);
    align-items: center;
    gap: 1.5rem;
    padding: 2rem;
    color: #ffffff;
}

.sfk-kanzlei-cta__copy h2 {
    margin: 0 0 0.8rem;
    color: #ffffff;
    font-size: clamp(1.75rem, 2.7vw, 2.5rem);
    line-height: 1.2;
    text-transform: none;
}

.sfk-kanzlei-cta__copy p {
    margin: 0;
    color: rgba(255, 255, 255, 0.95);
}

.sfk-kanzlei-cta__action {
    display: flex;
    justify-content: flex-start;
}

.sfk-kanzlei-cta__action .sfk-btn {
    min-width: 14rem;
    justify-content: center;
}

@media (max-width: 1200px) {
    .sfk-kanzlei-partner-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem;
    }

    .sfk-kanzlei-team-slide {
        flex-basis: calc((100% - 2rem) / 3);
    }
}

@media (max-width: 980px) {
    .sfk-kanzlei-split {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .sfk-kanzlei-split--values .sfk-kanzlei-copy {
        order: 1;
    }

    .sfk-kanzlei-split--values .sfk-kanzlei-media {
        order: 2;
    }

    .sfk-kanzlei-cta__inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .sfk-kanzlei-team-slide {
        flex-basis: calc((100% - 1rem) / 2);
    }

    .sfk-kanzlei-hero__copy {
        left: 1rem;
        right: 1rem;
        bottom: 0.75rem;
    }
}

@media (max-width: 600px) {
    .sfk-kanzlei-page {
        padding-top: 1.25rem;
    }

    .sfk-kanzlei-band {
        padding: 1.5rem 0;
    }

    .sfk-kanzlei-partner-grid {
        grid-template-columns: 1fr;
    }

    .sfk-kanzlei-team-slide {
        flex-basis: 100%;
    }

    .sfk-kanzlei-cta__inner {
        padding: 1.4rem;
    }
}

/* ==========================================================================
   News Overview - /news
   ========================================================================== */
.sfk-news-overview__hero {
    position: relative;
    min-height: clamp(460px, 62vh, 640px);
}

.sfk-news-overview__hero .sfk-hero__overlay {
    background: linear-gradient(135deg, rgba(8, 30, 61, 0.84) 0%, rgba(26, 63, 111, 0.7) 52%, rgba(26, 63, 111, 0.42) 100%);
}

.sfk-news-overview__hero .sfk-container {
    position: relative;
    z-index: 2;
    padding-top: 7rem;
    padding-bottom: 4.75rem;
}

.sfk-news-overview__hero--plain {
    min-height: 0;
    background: linear-gradient(180deg, #eef4fa 0%, #f8fbff 100%);
}

.sfk-news-overview__hero--plain .sfk-hero__overlay {
    display: none;
}

.sfk-news-overview__hero-content {
    max-width: 56rem;
    color: #fff;
}

.sfk-news-overview__hero--plain .sfk-news-overview__hero-content {
    color: var(--sfk-primary);
}

.sfk-news-overview__breadcrumb {
    margin-bottom: 1.5rem;
}

.sfk-news-overview__breadcrumb ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem;
    font-size: 1.125rem;
    line-height: 1.5;
}

.sfk-news-overview__breadcrumb a {
    text-decoration: none;
    color: inherit;
    opacity: 0.88;
}

.sfk-news-overview__breadcrumb a:hover {
    opacity: 1;
}

.sfk-news-overview__breadcrumb-separator {
    opacity: 0.6;
}

.sfk-news-overview__breadcrumb-current {
    font-weight: 700;
}

.sfk-news-overview__eyebrow {
    display: inline-flex;
    margin-bottom: 1rem;
    font-family: var(--sfk-font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--sfk-yellow-light);
}

.sfk-news-overview__hero--plain .sfk-news-overview__eyebrow {
    color: var(--sfk-yellow-dark);
}

.sfk-news-overview__title {
    margin: 0 0 1rem;
    font-size: clamp(2.1rem, 4.5vw, 3.85rem);
    line-height: 1.08;
    text-transform: uppercase;
    color: inherit;
}

.sfk-news-overview__lead {
    margin: 0;
    max-width: 44rem;
    font-size: 1.2rem;
    line-height: 1.7;
    color: inherit;
    opacity: 0.96;
}

.sfk-news-overview__actions {
    margin-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
}

.sfk-news-overview__feed-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
}

.sfk-news-overview__feed-icon {
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
}

.sfk-news-overview__feed-hint {
    font-size: 1rem;
    line-height: 1.4;
    color: inherit;
    opacity: 0.85;
}

.sfk-news-overview__hero--plain .sfk-news-overview__feed-hint {
    color: var(--sfk-gray, #909692);
    opacity: 1;
}

@media (max-width: 600px) {
    .sfk-news-overview__actions {
        margin-top: 1.5rem;
        gap: 0.75rem;
    }

    .sfk-news-overview__feed-cta {
        width: 100%;
        justify-content: center;
    }

    .sfk-news-overview__feed-hint {
        font-size: 0.95rem;
    }
}

.sfk-news-overview__intro {
    padding-top: 3.25rem;
    padding-bottom: 0;
}

.sfk-news-overview__intro-copy {
    font-size: 1.125rem;
    line-height: 1.82;
}

.sfk-news-overview__intro-copy > :first-child {
    margin-top: 0;
}

.sfk-news-overview__sections {
    padding-top: 3.5rem;
}

.sfk-news-overview__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
}

.sfk-news-overview__column {
    display: grid;
    align-content: start;
    gap: 1.25rem;
}

.sfk-news-overview__column-header {
    display: grid;
    gap: 1rem;
    align-content: start;
    padding: 2rem;
    background: linear-gradient(135deg, var(--sfk-primary-dark) 0%, var(--sfk-primary) 100%);
    border-left: 6px solid var(--sfk-yellow);
    color: #fff;
    box-shadow: 0 20px 40px rgba(8, 30, 61, 0.15);
}

.sfk-news-overview__column-title {
    margin: 0;
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    line-height: 1.1;
    text-transform: uppercase;
    color: inherit;
}

.sfk-news-overview__column-subline {
    margin: 0;
    max-width: 26rem;
    font-size: 1.125rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.95);
}

.sfk-news-overview__column-cta {
    margin-top: 0.35rem;
    min-width: 14rem;
    justify-content: center;
    font-size: 1.125rem !important;
}

.sfk-news-overview__column-cta.is-disabled {
    pointer-events: none;
    cursor: default;
}

.sfk-news-overview__posts {
    display: grid;
    gap: 1rem;
}

/* News timeline rail (left of each post) */
.sfk-news-timeline {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sfk-news-timeline__item {
    display: grid;
    grid-template-columns: 6.5rem minmax(0, 1fr);
    gap: 1.25rem;
    align-items: stretch;
    position: relative;
}

.sfk-news-timeline__marker {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 1rem 1.5rem 0 0;
}

/* Continuous vertical line through all items */
.sfk-news-timeline__marker::before {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    height: calc(100% + 1rem); /* bridge the grid gap */
    width: 2px;
    background: var(--sfk-primary, #285589);
}

.sfk-news-timeline__item:first-child .sfk-news-timeline__marker::before {
    top: 1rem;
    height: calc(100% + 1rem - 1rem);
}

.sfk-news-timeline__item:last-child .sfk-news-timeline__marker::before {
    height: 1rem;
}

.sfk-news-timeline__item:only-child .sfk-news-timeline__marker::before {
    display: none;
}

.sfk-news-timeline__date {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
    font-size: 1.125rem;
    line-height: 1.15;
    font-weight: 700;
    color: var(--sfk-primary, #285589);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.sfk-news-timeline__date-year {
    font-weight: 500;
    font-size: 1.125rem;
    color: var(--sfk-gray-700, #555);
}

.sfk-news-timeline__dot {
    position: absolute;
    right: 0;
    top: 1rem;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--sfk-accent, #F2A91C);
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--sfk-primary, #285589);
    transform: translate(50%, 0);
    z-index: 1;
}

@media (max-width: 800px) {
    .sfk-news-timeline__item {
        grid-template-columns: 4.5rem minmax(0, 1fr);
        gap: 1rem;
    }
    .sfk-news-timeline__date {
        font-size: 1.125rem;
    }
    .sfk-news-timeline__date-year {
        font-size: 1.125rem;
    }
    .sfk-news-timeline__marker {
        padding-right: 1rem;
    }
}

.sfk-news-overview__post {
    min-height: 100%;
}

.sfk-news-overview__post-link {
    display: grid;
    grid-template-rows: auto 1fr;
    min-height: 100%;
    background: #fff;
    border: 1px solid var(--sfk-gray-200);
    color: inherit;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sfk-news-overview__post-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(8, 30, 61, 0.1);
    border-color: rgba(var(--sfk-primary-rgb), 0.28);
}

.sfk-news-overview__post-media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--sfk-gray-100);
    overflow: hidden;
}

.sfk-news-overview__post-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.sfk-news-overview__post-media-fallback {
    width: 100%;
    height: 100%;
    background: linear-gradient(145deg, rgba(var(--sfk-primary-rgb), 0.16) 0%, rgba(var(--sfk-yellow-rgb), 0.2) 100%);
}

.sfk-news-overview__post-copy {
    display: grid;
    gap: 0.6rem;
    align-content: start;
    padding: 1rem 1rem 1.05rem;
}

.sfk-news-overview__post-meta {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    font-size: 1.125rem;
    line-height: 1.5;
    color: var(--sfk-gray-600);
}

.sfk-news-overview__post-dot {
    opacity: 0.55;
}

.sfk-news-overview__post-copy h3 {
    margin: 0;
    font-size: 1.45rem;
    line-height: 1.3;
    color: var(--sfk-primary);
}

.sfk-news-overview__post-excerpt {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.65;
    color: var(--sfk-gray-800);
}

.sfk-news-overview__post-more {
    display: inline-flex;
    margin-top: 0.15rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--sfk-yellow-dark);
}

.sfk-news-overview__post-link:hover .sfk-news-overview__post-more {
    color: var(--sfk-primary);
}

.sfk-news-overview__empty {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.65;
    padding: 1.25rem;
    border: 1px dashed var(--sfk-gray-400);
    background: #fff;
}

@media (max-width: 1100px) {
    .sfk-news-overview__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .sfk-news-overview__hero .sfk-container {
        padding-top: 5.75rem;
        padding-bottom: 3.75rem;
    }

    .sfk-news-overview__column-header {
        padding: 1.5rem;
    }

    .sfk-news-overview__post-link {
        grid-template-rows: auto 1fr;
    }
}


/* ==========================================================================
   KARRIERE-SEITE (page-karriere.php) – Mockup 04/2026
   ========================================================================== */

/* ---------- HERO ---------- */
.sfk-kar-hero {
    position: relative;
    min-height: clamp(440px, 60vh, 620px);
    display: flex;
    align-items: center;
    color: var(--sfk-white);
    overflow: hidden;
    isolation: isolate;
}
.sfk-kar-hero__bg {
    position: absolute;
    inset: 0;
    z-index: -2;
}
.sfk-kar-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.sfk-kar-hero__bg--fallback {
    background:
        linear-gradient(135deg, rgba(40, 85, 137, 0.55), rgba(27, 63, 105, 0.7)),
        radial-gradient(circle at 30% 40%, #5d8fb8, #1B3F69);
}
.sfk-kar-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(8, 30, 61, 0.55) 0%, rgba(8, 30, 61, 0.25) 60%, rgba(8, 30, 61, 0.05) 100%);
    z-index: -1;
}
.sfk-kar-hero__content {
    max-width: 720px;
    padding-block: clamp(3rem, 8vw, 6rem);
}
.sfk-kar-hero__claim {
    font-family: var(--sfk-font-heading);
    font-size: clamp(1.85rem, 4.5vw, 3.25rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--sfk-white);
    margin: 0 0 1.75rem;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.25);
}
.sfk-kar-hero__actions .sfk-btn {
    padding: 0.95rem 1.6rem;
    font-size: 1rem;
}

/* ---------- WARUM WIR – Split ---------- */
.sfk-kar-warum {
    padding-block: clamp(3rem, 6vw, 5rem);
}
.sfk-kar-warum__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(1.75rem, 4vw, 3.5rem);
    align-items: center;
}
.sfk-kar-warum__media img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
.sfk-kar-warum__eyebrow {
    color: var(--sfk-primary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.95rem;
    margin: 0 0 0.5rem;
}
.sfk-kar-warum__headline {
    color: var(--sfk-primary);
    font-size: clamp(1.4rem, 2.6vw, 2rem);
    line-height: 1.25;
    margin: 0 0 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: -0.005em;
}
.sfk-kar-warum__text p {
    color: var(--sfk-gray-800);
    font-size: 1.0625rem;
    line-height: 1.65;
    margin: 0 0 1rem;
}
.sfk-kar-warum__text p:last-child {
    margin-bottom: 0;
}

@media (max-width: 800px) {
    .sfk-kar-warum__grid {
        grid-template-columns: 1fr;
    }
}

/* ---------- STELLEN-GRID ---------- */
.sfk-kar-stellen {
    background: var(--sfk-gray-100);
    padding-block: clamp(3rem, 6vw, 5rem);
}
.sfk-kar-stellen__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    gap: 1.25rem;
}
.sfk-kar-stelle {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 200px;
    padding: 1.75rem 1.75rem 2rem;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.sfk-kar-stelle--blue {
    background: var(--sfk-primary);
    color: var(--sfk-white);
}
.sfk-kar-stelle--blue .sfk-kar-stelle__title,
.sfk-kar-stelle--blue .sfk-kar-stelle__subtitle,
.sfk-kar-stelle--blue .sfk-kar-stelle__arrow {
    color: var(--sfk-white);
}
.sfk-kar-stelle--light {
    background: var(--sfk-white);
    color: var(--sfk-primary);
    border: 1px solid var(--sfk-gray-200);
}
.sfk-kar-stelle:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(8, 30, 61, 0.12);
}
.sfk-kar-stelle__title {
    font-family: var(--sfk-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 0.4rem;
    color: inherit;
}
.sfk-kar-stelle__subtitle {
    font-size: 1rem;
    line-height: 1.45;
    opacity: 0.85;
    margin: 0;
}
.sfk-kar-stelle__arrow {
    margin-top: 1.5rem;
    font-size: 1.5rem;
    line-height: 1;
}

@media (max-width: 1100px) {
    .sfk-kar-stellen__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 600px) {
    .sfk-kar-stellen__grid {
        grid-template-columns: 1fr;
    }
}

/* ---------- VORTEILE 9 KARTEN ---------- */
.sfk-kar-vorteile {
    padding-block: clamp(3rem, 6vw, 5.5rem);
}
.sfk-kar-vorteile__head {
    margin-bottom: 2.5rem;
}
.sfk-kar-vorteile__headline {
    color: var(--sfk-primary);
    text-transform: uppercase;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    line-height: 1.2;
    font-weight: 700;
    margin: 0;
    max-width: 24em;
}
.sfk-kar-vorteile__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
}
.sfk-kar-vorteil {
    position: relative;
    padding: 2rem 1.75rem;
    min-height: 260px;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.sfk-kar-vorteil--blue {
    background: var(--sfk-primary);
    color: var(--sfk-white);
}
.sfk-kar-vorteil--light {
    background: #dde1e4;
    color: var(--sfk-gray-800);
}
.sfk-kar-vorteil__num {
    font-family: var(--sfk-font-heading);
    font-size: 2.5rem;
    font-weight: 300;
    line-height: 1;
    opacity: 0.7;
    letter-spacing: -0.02em;
    display: block;
    margin-bottom: 0.5rem;
}
.sfk-kar-vorteil--light .sfk-kar-vorteil__num {
    color: var(--sfk-primary-dark);
    opacity: 1;
}
.sfk-kar-vorteil__title {
    font-family: var(--sfk-font-heading);
    font-size: 1.05rem;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.25;
    margin: 0;
    color: inherit;
}
.sfk-kar-vorteil--light .sfk-kar-vorteil__title {
    color: var(--sfk-primary);
}
.sfk-kar-vorteil__text {
    font-size: 0.95rem;
    line-height: 1.55;
    margin: 0;
    color: inherit;
    opacity: 0.92;
}

/* Bürofotos unter dem Vorteils-Raster */
.sfk-kar-vorteile__photos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-top: 1.25rem;
}
.sfk-kar-vorteile__photo {
    margin: 0;
    overflow: hidden;
    aspect-ratio: 4 / 3;
}
.sfk-kar-vorteile__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 1100px) {
    .sfk-kar-vorteile__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .sfk-kar-vorteile__photos {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 600px) {
    .sfk-kar-vorteile__grid {
        grid-template-columns: 1fr;
    }
    .sfk-kar-vorteile__photos {
        grid-template-columns: 1fr;
    }
}

/* ---------- BEWERBUNGSFORMULAR (CI-konform, eckig, gleicher Look wie /kontakt/) ---------- */
.sfk-kar-form {
    background: var(--sfk-gray-100);
    padding-block: clamp(3rem, 6vw, 5rem);
    color: var(--sfk-primary);
}
.sfk-kar-form__head {
    margin-bottom: 2rem;
    max-width: 56rem;
}
.sfk-kar-form__eyebrow {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--sfk-primary);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}
.sfk-kar-form__headline {
    color: var(--sfk-primary);
    text-transform: uppercase;
    font-size: clamp(1.5rem, 2.5vw, 2.15rem);
    line-height: 1.15;
    font-weight: 800;
    margin: 0 0 0.75rem;
}
.sfk-kar-form__lead {
    color: var(--sfk-primary-dark);
    font-size: 1rem;
    line-height: 1.55;
    margin: 0;
    max-width: 44rem;
    opacity: 0.85;
}

/* Weiße eckige Karte – analog .sfk-kontakt-form-card */
.sfk-kar-form-card {
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-100);
    padding: clamp(1.75rem, 3vw, 3rem);
    box-shadow: 0 8px 32px -12px rgba(var(--sfk-primary-rgb), 0.18);
    border-radius: 0;
}

.sfk-kar-form__form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    width: 100%;
}
.sfk-kar-form__row {
    display: grid;
    gap: 1.25rem;
}
.sfk-kar-form__row--2 {
    grid-template-columns: 1fr 1fr;
}

.sfk-kar-form__field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.sfk-kar-form__field label {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--sfk-primary);
    letter-spacing: 0.02em;
}
.sfk-kar-form__req {
    color: var(--sfk-yellow-dark);
    margin-left: 0.15rem;
}
.sfk-kar-form__opt {
    color: var(--sfk-secondary);
    font-weight: 400;
    font-size: 0.8125rem;
    margin-left: 0.25rem;
}

/* Inputs – eckig, CI-konform */
.sfk-kar-form__form input[type="text"],
.sfk-kar-form__form input[type="email"],
.sfk-kar-form__form input[type="tel"],
.sfk-kar-form__form input[type="number"],
.sfk-kar-form__form textarea {
    width: 100%;
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-200);
    border-radius: 0;
    padding: 0.875rem 1rem;
    font-family: var(--sfk-font-body);
    font-size: 1rem;
    color: var(--sfk-gray-800);
    line-height: 1.4;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: none;
}
.sfk-kar-form__form input::placeholder,
.sfk-kar-form__form textarea::placeholder {
    color: var(--sfk-gray-600);
    opacity: 1;
}
.sfk-kar-form__form input:focus,
.sfk-kar-form__form textarea:focus {
    outline: none;
    border-color: var(--sfk-primary);
    box-shadow: 0 0 0 3px rgba(var(--sfk-primary-rgb), 0.15);
}
.sfk-kar-form__form textarea {
    resize: vertical;
    min-height: 8rem;
}

/* File-Upload – eckig, dashed border */
.sfk-kar-form__upload {
    position: relative;
    background: rgba(var(--sfk-primary-rgb), 0.03);
    border: 1px dashed rgba(var(--sfk-primary-rgb), 0.35);
    padding: 1.25rem 1.25rem;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.sfk-kar-form__upload:hover,
.sfk-kar-form__upload:focus-within {
    background: rgba(var(--sfk-primary-rgb), 0.06);
    border-color: var(--sfk-primary);
}
.sfk-kar-form__upload input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.sfk-kar-form__upload-content {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    color: var(--sfk-gray-800);
    font-size: 0.95rem;
}
.sfk-kar-form__upload-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    background: var(--sfk-primary);
    color: var(--sfk-white);
    flex-shrink: 0;
}
.sfk-kar-form__upload-text strong {
    color: var(--sfk-primary);
    font-weight: 700;
}
.sfk-kar-form__upload-hint {
    color: var(--sfk-secondary);
    font-size: 0.8125rem;
    flex-basis: 100%;
}
.sfk-kar-form__upload.is-filled {
    background: rgba(var(--sfk-primary-rgb), 0.06);
    border-style: solid;
    border-color: var(--sfk-primary);
}

/* Liste der ausgewählten Dateien */
.sfk-kar-form__filelist {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.sfk-kar-form__fileitem {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.6rem 0.75rem;
    background: var(--sfk-white);
    border: 1px solid rgba(var(--sfk-primary-rgb), 0.2);
    color: var(--sfk-gray-800);
    font-size: 0.95rem;
}
.sfk-kar-form__fileitem-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--sfk-primary);
    flex-shrink: 0;
}
.sfk-kar-form__fileitem-name {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
    color: var(--sfk-primary);
}
.sfk-kar-form__fileitem-size {
    color: var(--sfk-secondary);
    font-size: 0.85rem;
    flex-shrink: 0;
}
.sfk-kar-form__fileitem-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    background: transparent;
    border: 1px solid rgba(var(--sfk-primary-rgb), 0.25);
    color: var(--sfk-secondary);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    flex-shrink: 0;
}
.sfk-kar-form__fileitem-remove:hover,
.sfk-kar-form__fileitem-remove:focus-visible {
    background: var(--sfk-primary);
    border-color: var(--sfk-primary);
    color: var(--sfk-white);
}

/* Datenschutz-Checkbox */
.sfk-kar-form__privacy {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    font-size: 0.95rem;
    color: var(--sfk-gray-800);
    line-height: 1.5;
}
.sfk-kar-form__privacy input[type="checkbox"] {
    flex-shrink: 0;
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0.2rem;
    accent-color: var(--sfk-primary);
    border-radius: 0;
    cursor: pointer;
}
.sfk-kar-form__privacy label {
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 400;
    color: var(--sfk-gray-800);
    letter-spacing: normal;
    text-transform: none;
}
.sfk-kar-form__privacy a {
    color: var(--sfk-primary);
    text-decoration: underline;
    font-weight: 600;
}

/* Submit */
.sfk-kar-form__actions {
    margin-top: 0.5rem;
}
.sfk-kar-form__submit {
    width: 100%;
    max-width: 100%;
    padding: 1rem 0.75rem;
    font-size: clamp(0.7rem, 2.6vw, 1rem) !important;
    font-weight: 700;
    border-radius: 0 !important;
    letter-spacing: 0 !important;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    box-sizing: border-box;
    text-align: center;
    justify-content: center;
    line-height: 1.2;
}
.sfk-kar-form__submit [hidden] {
    display: none !important;
}

/* Status-Box (Erfolg/Fehler) */
.sfk-kar-form__status {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.25rem 1.4rem;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.45;
    border-left: 4px solid transparent;
}
.sfk-kar-form__status::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    margin-top: 0.1rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.sfk-kar-form__status--success {
    background: #e8f7ed;
    color: #136a2a;
    border-left-color: #1c8f3a;
}
.sfk-kar-form__status--success::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23136a2a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='8 12 11 15 16 9'/></svg>");
}
.sfk-kar-form__status--error {
    background: #fdecea;
    color: #a3170f;
    border-left-color: #d6342b;
}
.sfk-kar-form__status--error::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3170f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='8' x2='12' y2='13'/><line x1='12' y1='16' x2='12.01' y2='16'/></svg>");
}

@media (max-width: 800px) {
    .sfk-kar-form__row--2 {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================================
   STELLEN-DETAIL (single-sfk_stelle.php)
   ========================================================================== */
.sfk-stelle-hero {
    background: var(--sfk-primary);
    color: var(--sfk-white);
    padding-block: clamp(3rem, 6vw, 5rem);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.sfk-stelle-hero--has-bg {
    min-height: clamp(360px, 48vh, 520px);
    display: flex;
    align-items: center;
}
.sfk-stelle-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}
.sfk-stelle-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
/* Glasur / Glassmorphism: gradient + dezenter Blur über dem Bild */
.sfk-stelle-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(
            135deg,
            rgba(40, 85, 137, 0.88) 0%,
            rgba(40, 85, 137, 0.72) 50%,
            rgba(11, 30, 56, 0.78) 100%
        );
    backdrop-filter: blur(6px) saturate(120%);
    -webkit-backdrop-filter: blur(6px) saturate(120%);
}
.sfk-stelle-hero--has-bg > .sfk-container {
    position: relative;
    z-index: 2;
    width: 100%;
}
.sfk-stelle-hero__breadcrumb {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.75);
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}
.sfk-stelle-hero__breadcrumb a {
    color: var(--sfk-white);
    text-decoration: underline;
}
.sfk-stelle-hero__breadcrumb a:hover {
    color: var(--sfk-yellow);
}
.sfk-stelle-hero__title {
    color: var(--sfk-white);
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    line-height: 1.15;
    margin: 0 0 0.75rem;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: -0.005em;
}
.sfk-stelle-hero__subtitle {
    color: rgba(255, 255, 255, 0.92);
    font-size: 1.15rem;
    margin: 0 0 1rem;
    line-height: 1.4;
}
.sfk-stelle-hero__pills {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.sfk-stelle-hero__pill {
    display: inline-block;
    padding: 0.4rem 0.9rem;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: var(--sfk-white);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
    backdrop-filter: blur(8px) saturate(140%);
    -webkit-backdrop-filter: blur(8px) saturate(140%);
}
.sfk-stelle-hero__pill--accent {
    background: var(--sfk-yellow);
    border-color: var(--sfk-yellow);
    color: var(--sfk-primary);
}

/* Sidebar mit Faktenbox + CTA – ersetzt das alte Sticky am .sfk-stelle-content__cta */
.sfk-stelle-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    position: sticky;
    top: 6rem;
}
.sfk-stelle-facts {
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-200);
    padding: 1.5rem 1.5rem 1.25rem;
}
.sfk-stelle-facts__title {
    color: var(--sfk-primary);
    font-size: 1.05rem;
    margin: 0 0 1rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
}
.sfk-stelle-facts__list {
    margin: 0;
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 0.4rem;
}
.sfk-stelle-facts__list dt {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--sfk-gray-600);
    font-weight: 600;
    margin-top: 0.5rem;
}
.sfk-stelle-facts__list dt:first-of-type {
    margin-top: 0;
}
.sfk-stelle-facts__list dd {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.45;
    color: var(--sfk-gray-800);
}

/* Status-Pill in Faktenbox + Hero */
.sfk-stelle-status {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem 0.35rem 0.6rem;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.2;
    border: 1px solid;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sfk-stelle-status__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.6);
}
.sfk-stelle-status--open {
    background: #e6f6ea;
    color: #136a2a;
    border-color: rgba(19, 106, 42, 0.25);
}
.sfk-stelle-status--open .sfk-stelle-status__dot {
    background: #2aa657;
    animation: sfk-status-pulse 2s ease-out infinite;
}
.sfk-stelle-status--closed {
    background: #fdecea;
    color: #a3170f;
    border-color: rgba(163, 23, 15, 0.25);
}
.sfk-stelle-status--closed .sfk-stelle-status__dot {
    background: #cc2a1c;
}
@keyframes sfk-status-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(42, 166, 87, 0.55); }
    70%  { box-shadow: 0 0 0 8px rgba(42, 166, 87, 0); }
    100% { box-shadow: 0 0 0 0 rgba(42, 166, 87, 0); }
}

/* Hero-Variante (auf blauem Untergrund leicht andere Töne) */
.sfk-stelle-hero__pill.sfk-stelle-status--open,
.sfk-stelle-hero__pill.sfk-stelle-status--closed {
    background: rgba(255, 255, 255, 0.96);
}

/* Vergebene Stelle: Bewerben-Button optisch deaktiviert */
.sfk-stelle-page--closed .sfk-stelle-content__cta .sfk-btn--primary,
.sfk-stelle-page--closed .sfk-team-widget__actions .sfk-btn--primary {
    pointer-events: none;
    opacity: 0.5;
    filter: grayscale(0.5);
}
.sfk-stelle-page--closed .sfk-stelle-content__cta::after {
    content: "Diese Stelle ist aktuell vergeben. Schauen Sie gerne auf der Karriereseite nach offenen Positionen.";
    display: block;
    margin-top: 0.75rem;
    font-size: 0.9rem;
    color: var(--sfk-gray-800);
    line-height: 1.45;
}

.sfk-stelle-content {
    padding-block: clamp(3rem, 6vw, 5rem);
}
.sfk-stelle-content__grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: start;
}
.sfk-stelle-content__body {
    color: var(--sfk-gray-800);
    font-size: 1.0625rem;
    line-height: 1.7;
}
.sfk-stelle-content__body :is(h2, h3) {
    color: var(--sfk-primary);
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}
.sfk-stelle-content__body h2 { font-size: 1.45rem; }
.sfk-stelle-content__body h3 { font-size: 1.15rem; }
.sfk-stelle-content__body ul,
.sfk-stelle-content__body ol {
    padding-left: 1.25rem;
    margin: 1rem 0 1.25rem;
}
.sfk-stelle-content__body li { margin-bottom: 0.4rem; }
.sfk-stelle-content__lead {
    font-size: 1.15rem;
    color: var(--sfk-primary);
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.sfk-stelle-content__cta {
    background: var(--sfk-gray-100);
    padding: 2rem 1.75rem;
}
.sfk-stelle-content__cta-title {
    color: var(--sfk-primary);
    font-size: 1.25rem;
    margin: 0 0 0.5rem;
    text-transform: uppercase;
}
.sfk-stelle-content__cta .sfk-btn {
    width: 100%;
    margin: 1rem 0;
    padding: 0.95rem 1.25rem;
    text-align: center;
    justify-content: center;
}
.sfk-stelle-content__contact {
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--sfk-gray-800);
    margin: 0.5rem 0 0;
}
.sfk-stelle-content__contact a {
    color: var(--sfk-primary);
    text-decoration: underline;
}

@media (max-width: 900px) {
    .sfk-stelle-content__grid { grid-template-columns: 1fr; }
    .sfk-stelle-sidebar       { position: static; }
}

/* ==========================================================================
   KONTAKT-PAGE  (page-kontakt.php)
   ========================================================================== */

.sfk-kontakt-page {
    background: var(--sfk-white);
}

/* ---------- Page-Header ---------- */
.sfk-kontakt-hero {
    background: linear-gradient(180deg, #F4F7FB 0%, var(--sfk-white) 100%);
    padding: clamp(3rem, 6vw, 6rem) 0 clamp(3rem, 5vw, 5rem);
    border-bottom: 1px solid var(--sfk-gray-100);
}
.sfk-kontakt-hero__breadcrumbs {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    font-size: 0.875rem;
    color: var(--sfk-secondary);
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.sfk-kontakt-hero__breadcrumbs a {
    color: var(--sfk-secondary);
    text-decoration: none;
    transition: color 0.2s ease;
}
.sfk-kontakt-hero__breadcrumbs a:hover { color: var(--sfk-primary); }
.sfk-kontakt-hero__breadcrumbs span[aria-current] { color: var(--sfk-primary); font-weight: 600; }

.sfk-kontakt-hero__eyebrow {
    display: inline-block;
    color: var(--sfk-secondary);
    font-style: italic;
    font-size: 1rem;
    margin-bottom: 1rem;
    letter-spacing: 0.02em;
}
.sfk-kontakt-hero__headline {
    font-family: var(--sfk-font-heading);
    font-size: clamp(2.25rem, 5vw, 4rem);
    font-weight: 700;
    color: var(--sfk-primary);
    line-height: 1.05;
    margin: 0 0 1rem;
    letter-spacing: -0.02em;
}
.sfk-kontakt-hero__subline {
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    color: var(--sfk-primary-light);
    font-weight: 600;
    margin: 0 0 1.25rem;
}
.sfk-kontakt-hero__intro {
    max-width: 56rem;
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--sfk-gray-800);
    margin: 0;
}
.sfk-kontakt-hero__cta {
    margin: 1.75rem 0 0;
}

/* ---------- Kontakt-Info-Grid ---------- */
.sfk-kontakt-info { padding: clamp(3rem, 6vw, 5rem) 0; }
.sfk-kontakt-info__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr));
    gap: 1.5rem;
}
.sfk-kontakt-card {
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-100);
    border-top: 4px solid var(--sfk-primary);
    padding: 2rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    border-radius: 0;
}
.sfk-kontakt-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px -10px rgba(var(--sfk-primary-rgb), 0.18);
    border-top-color: var(--sfk-yellow);
}
.sfk-kontakt-card__icon {
    width: 3.25rem;
    height: 3.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--sfk-primary-rgb), 0.08);
    color: var(--sfk-primary);
    margin-bottom: 0.25rem;
}
.sfk-kontakt-card__title {
    font-family: var(--sfk-font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--sfk-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0;
}
.sfk-kontakt-card__body {
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--sfk-gray-800);
    font-style: normal;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.sfk-kontakt-card__body span { display: block; }
.sfk-kontakt-card__primary {
    color: var(--sfk-primary);
    font-weight: 700;
    font-size: 1.125rem;
    text-decoration: none;
    transition: color 0.2s ease;
}
.sfk-kontakt-card__primary:hover { color: var(--sfk-yellow-dark); }
.sfk-kontakt-card__note {
    color: var(--sfk-secondary);
    font-size: 0.95rem;
    margin-top: 0.25rem;
}
.sfk-kontakt-card__hours {
    font-size: 1rem;
    color: var(--sfk-gray-800);
    line-height: 1.7;
}
.sfk-kontakt-card__link {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--sfk-primary);
    font-weight: 700;
    text-decoration: none;
    padding-top: 0.5rem;
    transition: color 0.2s ease, gap 0.2s ease;
    font-size: 0.95rem;
}
.sfk-kontakt-card__link:hover {
    color: var(--sfk-yellow-dark);
    gap: 0.75rem;
}

/* ---------- Karte ---------- */
.sfk-kontakt-map {
    padding: 0 0 clamp(3rem, 6vw, 5rem);
}
.sfk-kontakt-map__frame {
    position: relative;
    width: 100%;
    background: var(--sfk-gray-100);
    overflow: hidden;
    border: 1px solid var(--sfk-gray-100);
    box-shadow: 0 4px 24px -8px rgba(var(--sfk-primary-rgb), 0.15);
}
.sfk-kontakt-map__media {
    display: block;
    position: relative;
    color: inherit;
}
.sfk-kontakt-map__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1280 / 512;
    object-fit: cover;
    filter: saturate(0.92) contrast(1.02);
}

/* Pin-Position wird vom Template per Inline-Style (left/top in %) gesetzt,
   passend zu den Pixel-Koordinaten der Kanzlei im OSM-PNG (1280×512). */
.sfk-kontakt-map__pin {
    position: absolute;
    transform: translate(-50%, -100%);
    transform-origin: 50% 100%;
    pointer-events: none;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.35));
    animation: sfkPinPulse 2.4s ease-in-out infinite;
}
@keyframes sfkPinPulse {
    0%, 100% { transform: translate(-50%, -100%) scale(1); }
    50%      { transform: translate(-50%, -108%) scale(1.04); }
}

.sfk-kontakt-map__overlay {
    position: absolute;
    left: 1.5rem;
    bottom: 1.5rem;
    background: var(--sfk-white);
    padding: 1.25rem 1.5rem;
    max-width: 22rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    box-shadow: 0 8px 24px -8px rgba(var(--sfk-primary-rgb), 0.25);
    border-left: 4px solid var(--sfk-yellow);
}
.sfk-kontakt-map__overlay-title {
    font-family: var(--sfk-font-heading);
    color: var(--sfk-primary);
    font-weight: 700;
    font-size: 1.0625rem;
}
.sfk-kontakt-map__overlay-text {
    color: var(--sfk-gray-800);
    font-size: 0.95rem;
}
.sfk-kontakt-map__overlay-routelabel {
    margin: 0.85rem 0 0.4rem;
    color: var(--sfk-secondary);
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
}
.sfk-kontakt-map__routes {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.sfk-kontakt-map__route {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.5rem 0.75rem;
    color: var(--sfk-primary);
    background: var(--sfk-gray-100);
    text-decoration: none;
    font-weight: 700;
    font-size: 0.95rem;
    border: 1px solid transparent;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    width: 100%;
}
.sfk-kontakt-map__route:hover,
.sfk-kontakt-map__route:focus-visible {
    background: var(--sfk-yellow);
    color: var(--sfk-primary);
    border-color: var(--sfk-yellow-dark);
}
.sfk-kontakt-map__route svg { flex-shrink: 0; }
.sfk-kontakt-map__route-arrow { margin-left: auto; }
.sfk-kontakt-map__attribution {
    color: var(--sfk-secondary);
    font-size: 0.8125rem;
    margin: 0.75rem 0 0;
    text-align: right;
}
.sfk-kontakt-map__attribution a {
    color: var(--sfk-primary);
    text-decoration: underline;
}

/* ---------- Form-Section ---------- */
.sfk-kontakt-form-section {
    padding: clamp(3rem, 6vw, 6rem) 0;
    background: linear-gradient(180deg, #F4F7FB 0%, var(--sfk-white) 100%);
}
.sfk-kontakt-form-section__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr);
    gap: clamp(2rem, 4vw, 4rem);
    align-items: start;
}
.sfk-kontakt-form-section__aside {
    position: sticky;
    top: 7rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.sfk-kontakt-form-section__eyebrow {
    color: var(--sfk-secondary);
    font-style: italic;
    font-size: 1rem;
}
.sfk-kontakt-form-section__headline {
    font-family: var(--sfk-font-heading);
    font-size: clamp(1.875rem, 3vw, 2.5rem);
    color: var(--sfk-primary);
    font-weight: 700;
    margin: 0;
    line-height: 1.15;
    letter-spacing: -0.015em;
}
.sfk-kontakt-form-section__lead {
    font-size: 1.0625rem;
    color: var(--sfk-gray-800);
    line-height: 1.65;
    margin: 0;
}
.sfk-kontakt-form-section__bullets {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.sfk-kontakt-form-section__bullets li {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 1rem;
    color: var(--sfk-gray-800);
}
.sfk-kontakt-form-section__bullets svg {
    color: var(--sfk-yellow-dark);
    flex-shrink: 0;
}

.sfk-kontakt-form-section__sidecard {
    margin-top: 0.5rem;
    padding: 1.5rem;
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-100);
    border-left: 4px solid var(--sfk-yellow);
}
.sfk-kontakt-form-section__sidecard h3 {
    font-family: var(--sfk-font-heading);
    color: var(--sfk-primary);
    margin: 0 0 0.25rem;
    font-size: 1.125rem;
    font-weight: 700;
}
.sfk-kontakt-form-section__sidecard p {
    margin: 0 0 1rem;
    color: var(--sfk-gray-800);
    font-size: 0.95rem;
}
.sfk-kontakt-form-section__sidecard .sfk-btn--blue {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1.25rem;
    color: var(--sfk-white);
    text-decoration: none;
    font-weight: 700;
}

/* ---------- Form-Card ---------- */
.sfk-kontakt-form-card {
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-100);
    padding: clamp(1.75rem, 3vw, 3rem);
    box-shadow: 0 8px 32px -12px rgba(var(--sfk-primary-rgb), 0.18);
}
.sfk-kontakt-form-card__notice {
    background: rgba(var(--sfk-yellow-rgb), 0.12);
    border-left: 4px solid var(--sfk-yellow);
    padding: 0.875rem 1rem;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
    color: var(--sfk-gray-800);
}

.sfk-kontakt-form { display: flex; flex-direction: column; gap: 1.25rem; }
.sfk-kontakt-form__row {
    display: grid;
    gap: 1.25rem;
}
.sfk-kontakt-form__row--2 { grid-template-columns: 1fr 1fr; }

.sfk-kontakt-form__field { display: flex; flex-direction: column; gap: 0.4rem; }
.sfk-kontakt-form__field label {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--sfk-primary);
    letter-spacing: 0.02em;
}
.sfk-kontakt-form__req { color: var(--sfk-yellow-dark); margin-left: 0.15rem; }
.sfk-kontakt-form__opt { color: var(--sfk-secondary); font-weight: 400; font-size: 0.8125rem; margin-left: 0.25rem; }

.sfk-kontakt-form input[type="text"],
.sfk-kontakt-form input[type="email"],
.sfk-kontakt-form input[type="number"],
.sfk-kontakt-form select,
.sfk-kontakt-form textarea {
    width: 100%;
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-200);
    border-radius: 0;
    padding: 0.875rem 1rem;
    font-family: var(--sfk-font-body);
    font-size: 1rem;
    color: var(--sfk-gray-800);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    appearance: none;
    -webkit-appearance: none;
    line-height: 1.4;
}
.sfk-kontakt-form select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23285589' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 14px 14px;
    padding-right: 2.5rem;
    cursor: pointer;
}
.sfk-kontakt-form input:focus,
.sfk-kontakt-form select:focus,
.sfk-kontakt-form textarea:focus {
    outline: none;
    border-color: var(--sfk-primary);
    box-shadow: 0 0 0 3px rgba(var(--sfk-primary-rgb), 0.15);
}
.sfk-kontakt-form textarea { resize: vertical; min-height: 8rem; }

.sfk-kontakt-form__captcha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    background: rgba(var(--sfk-primary-rgb), 0.04);
    border: 1px solid var(--sfk-gray-100);
    padding: 1rem 1.25rem;
}
.sfk-kontakt-form__captcha-label {
    font-size: 0.95rem;
    color: var(--sfk-gray-800);
    margin: 0;
}
.sfk-kontakt-form__captcha-label strong { color: var(--sfk-primary); margin-left: 0.25rem; }
.sfk-kontakt-form__captcha input[type="number"] {
    width: 6rem;
    padding: 0.55rem 0.75rem;
    text-align: center;
    font-weight: 700;
}
.sfk-kontakt-form__captcha-help {
    color: var(--sfk-secondary);
    font-size: 0.8125rem;
    flex-basis: 100%;
}

.sfk-kontakt-form__privacy {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    font-size: 0.95rem;
    color: var(--sfk-gray-800);
    line-height: 1.5;
}
.sfk-kontakt-form__privacy input[type="checkbox"] {
    flex-shrink: 0;
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0.2rem;
    accent-color: var(--sfk-primary);
    border-radius: 0;
    cursor: pointer;
}
.sfk-kontakt-form__privacy label { cursor: pointer; }
.sfk-kontakt-form__privacy a {
    color: var(--sfk-primary);
    text-decoration: underline;
    font-weight: 600;
}

.sfk-kontakt-form__status.hidden,
.sfk-kontakt-form__success.hidden,
.sfk-kontakt-form__error.hidden,
.sfk-kontakt-form .button-loading.hidden { display: none !important; }

.sfk-kontakt-form__success,
.sfk-kontakt-form__error {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.25rem 1.4rem;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.45;
    border-radius: 0;
    border-left: 4px solid transparent;
}
.sfk-kontakt-form__success svg,
.sfk-kontakt-form__error svg {
    width: 1.75rem;
    height: 1.75rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
    stroke-width: 2.4;
}
.sfk-kontakt-form__success {
    background: #e8f7ed;
    color: #136a2a;
    border-color: #B7DCC4;
    border-left-color: #1c8f3a;
}
.sfk-kontakt-form__error {
    background: #fdecea;
    color: #a3170f;
    border-color: #EDB6B6;
    border-left-color: #d6342b;
}

/* Submit-Button – SFK Gelb (überschreibt Parent-Theme-Override mit !important) */
.sfk-kontakt-form .sfk-kontakt-form__submit,
form .sfk-kontakt-form__submit.contact-form-submit,
.sauriatheme-contact-form button[type="submit"].sfk-kontakt-form__submit {
    width: 100%;
    justify-content: center;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 1.125rem 2rem;
    font-size: 1.0625rem;
    font-weight: 700;
    font-family: var(--sfk-font-heading);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: pointer;
    border: 2px solid var(--sfk-yellow) !important;
    border-radius: 0 !important;
    background: var(--sfk-yellow) !important;
    background-color: var(--sfk-yellow) !important;
    color: var(--sfk-primary) !important;
    box-shadow: 0 6px 18px -8px rgba(var(--sfk-yellow-rgb), 0.55);
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
.sfk-kontakt-form .sfk-kontakt-form__submit:hover,
form .sfk-kontakt-form__submit.contact-form-submit:hover,
.sauriatheme-contact-form button[type="submit"].sfk-kontakt-form__submit:hover {
    background: var(--sfk-yellow-dark) !important;
    background-color: var(--sfk-yellow-dark) !important;
    border-color: var(--sfk-yellow-dark) !important;
    color: var(--sfk-primary) !important;
    box-shadow: 0 10px 24px -8px rgba(var(--sfk-yellow-rgb), 0.7);
    transform: translateY(-1px);
}
.sfk-kontakt-form .sfk-kontakt-form__submit:focus-visible {
    outline: 3px solid var(--sfk-primary);
    outline-offset: 3px;
}
.sfk-kontakt-form__submit:disabled,
.sfk-kontakt-form__submit[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none !important;
}
.sfk-kontakt-form__submit .button-icon {
    display: inline-flex;
    align-items: center;
    transition: transform 0.25s ease;
}
.sfk-kontakt-form__submit:hover .button-icon { transform: translateX(3px); }
.sfk-kontakt-form__submit .button-icon svg,
.sfk-kontakt-form__submit .button-loading svg { display: block; }
.sfk-spin { animation: sfkSpin 0.85s linear infinite; }
@keyframes sfkSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* ---------- Team-Slider im Aside ---------- */
.sfk-kontakt-team {
    margin-top: 0.5rem;
    background: var(--sfk-white);
    border: 1px solid var(--sfk-gray-100);
    border-left: 4px solid var(--sfk-primary);
    padding: 1.5rem 1.5rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}
.sfk-kontakt-team__head { display: flex; flex-direction: column; gap: 0.25rem; }
.sfk-kontakt-team__eyebrow {
    color: var(--sfk-secondary);
    font-style: italic;
    font-size: 0.9375rem;
}
.sfk-kontakt-team__title {
    font-family: var(--sfk-font-heading);
    color: var(--sfk-primary);
    font-size: 1.125rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.25;
}
.sfk-kontakt-team__lead {
    margin: 0;
    color: var(--sfk-gray-800);
    font-size: 0.9375rem;
    line-height: 1.5;
}

/* Slider-Override: kompakte Variante des kanzlei-team-sliders.
   Wir behalten die JS-Hooks (.sfk-kanzlei-team-slide), passen nur Größen an. */
.sfk-kontakt-team-slider {
    margin: 0;
    width: 100%;
    overflow: hidden;
    position: relative;
}
.sfk-kontakt-team-slider__viewport {
    overflow: hidden;
    width: 100%;
    /* Sanft ausblendender Rand rechts, deutet "weiter" an */
    -webkit-mask-image: linear-gradient(to right, #000 0%, #000 88%, transparent 100%);
            mask-image: linear-gradient(to right, #000 0%, #000 88%, transparent 100%);
}
.sfk-kontakt-team-slider__track {
    display: flex;
    gap: 0.875rem;
    transition: transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}
.sfk-kontakt-team-slider .sfk-kontakt-team-slide {
    flex: 0 0 calc((100% - 0.875rem * 2) / 3); /* 3 sichtbare Slides + Maske */
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--sfk-gray-100);
    border-radius: 0;
    box-shadow: 0 4px 14px -8px rgba(var(--sfk-primary-rgb), 0.25);
}
.sfk-kontakt-team-slider .sfk-kontakt-team-slide__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(0.95);
    transition: transform 0.6s ease, filter 0.4s ease;
}
.sfk-kontakt-team-slider .sfk-kontakt-team-slide:hover .sfk-kontakt-team-slide__image {
    transform: scale(1.04);
    filter: saturate(1.05);
}
.sfk-kontakt-team-slider .sfk-kontakt-team-slide__label {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0.875rem 0.75rem 0.625rem;
    background: linear-gradient(180deg, rgba(40,85,137,0) 0%, rgba(27,63,105,0.92) 100%);
    color: var(--sfk-white);
    font-family: var(--sfk-font-heading);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.01em;
}
.sfk-kontakt-team-slider .sfk-kontakt-team-slide__label span { display: block; }

/* Mittlere Aside-Breiten: 2 sichtbar */
@media (max-width: 1280px) {
    .sfk-kontakt-team-slider .sfk-kontakt-team-slide {
        flex-basis: calc((100% - 0.875rem) / 2);
    }
}
/* Sehr schmal (Mobile, Aside auf voller Breite): 2 sichtbar bleiben */
@media (max-width: 480px) {
    .sfk-kontakt-team-slider .sfk-kontakt-team-slide {
        flex-basis: calc((100% - 0.875rem) / 2);
    }
}

/* ---------- Anfahrt-Section ---------- */
.sfk-kontakt-anfahrt {
    padding: clamp(3rem, 6vw, 5rem) 0;
    background: var(--sfk-primary);
    color: var(--sfk-white);
}
.sfk-kontakt-anfahrt__head { margin-bottom: 2.5rem; max-width: 42rem; }
.sfk-kontakt-anfahrt__eyebrow {
    color: var(--sfk-yellow);
    font-style: italic;
    font-size: 1rem;
    display: inline-block;
    margin-bottom: 0.5rem;
}
.sfk-kontakt-anfahrt__headline {
    font-family: var(--sfk-font-heading);
    color: var(--sfk-white);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 700;
    margin: 0;
    line-height: 1.15;
}
.sfk-kontakt-anfahrt__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1.5rem;
}
.sfk-kontakt-anfahrt__col {
    background: rgba(255,255,255,0.06);
    padding: 1.75rem;
    border-top: 3px solid var(--sfk-yellow);
}
.sfk-kontakt-anfahrt__col h3 {
    font-family: var(--sfk-font-heading);
    margin: 0 0 0.5rem;
    color: var(--sfk-white);
    font-size: 1.125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.sfk-kontakt-anfahrt__col p {
    margin: 0;
    color: rgba(255,255,255,0.85);
    font-size: 1rem;
    line-height: 1.65;
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
    .sfk-kontakt-form-section__grid { grid-template-columns: 1fr; }
    .sfk-kontakt-form-section__aside { position: static; }
}
@media (max-width: 720px) {
    .sfk-kontakt-form__row--2 { grid-template-columns: 1fr; }
    .sfk-kontakt-map__overlay {
        position: static;
        max-width: none;
        margin-top: 0;
        box-shadow: 0 4px 16px -8px rgba(var(--sfk-primary-rgb), 0.18);
    }
    .sfk-kontakt-map__image { aspect-ratio: 4 / 3; }
    .sfk-kontakt-card { padding: 1.5rem 1.25rem; }
}


/* ==========================================================================
   Typografie-Angleichung: Blog-Detail + News an Startseite (Hero-Pattern)
   Stellt sicher, dass Heading-Familie & Weight zwischen
   .sfk-hero__claim, .sfk-news-overview__title und .sfk-blog-single__title
   identisch sind (Parent-Theme überschreibt sonst auf Inter 400).
   ========================================================================== */
.sfk-news-overview__title,
.sfk-blog-single__title {
    font-family: var(--sfk-font-heading), 'Montserrat', sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: var(--sfk-primary);
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
    -webkit-hyphens: auto;
}

.sfk-news-overview__hero-content,
.sfk-news-overview__hero-content .sfk-news-overview__title {
    color: #fff;
}

.sfk-news-overview__hero--plain .sfk-news-overview__title {
    color: var(--sfk-primary);
}

.sfk-news-overview__eyebrow,
.sfk-blog-single__category {
    font-family: var(--sfk-font-heading), 'Montserrat', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em;
}

/* Lead/Excerpt + Meta + Article: gleiche Body-Familie wie Home */
.sfk-news-overview__lead,
.sfk-blog-single__excerpt,
.sfk-blog-single__meta,
.sfk-blog-single__author-label,
.sfk-blog-single__author-name,
.sfk-blog-single__article,
.sfk-blog-single__article p,
.sfk-blog-single__article ul,
.sfk-blog-single__article ol,
.sfk-blog-single__article blockquote,
.sfk-blog-single__article figcaption {
    font-family: var(--sfk-font-body), 'Inter', sans-serif !important;
}

/* Artikel-Headlines auf Blog-Detail in gleicher Family wie Hero-Title */
.sfk-blog-single__article h2,
.sfk-blog-single__article h3,
.sfk-blog-single__article h4,
.sfk-blog-single__related-copy h3,
.sfk-blog-single__cta-inner h2 {
    font-family: var(--sfk-font-heading), 'Montserrat', sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: -0.01em;
}


/* ==========================================================================
   KARRIERE-TEAM-WIDGET (template-parts/karriere-team-widget.php)
   Wird auf jeder Stellen-Detailseite ausgegeben.
   ========================================================================== */

.sfk-team-widget {
    position: relative;
    background: var(--sfk-primary);
    color: var(--sfk-white);
    padding-block: clamp(3.5rem, 7vw, 6rem);
    overflow: hidden;
    isolation: isolate;
}
.sfk-team-widget::before {
    content: "";
    position: absolute;
    inset: -10% -5% auto auto;
    width: 36rem;
    height: 36rem;
    background: radial-gradient(circle at 30% 30%, rgba(242, 169, 28, 0.18), transparent 60%);
    z-index: -1;
    pointer-events: none;
}
.sfk-team-widget::after {
    content: "";
    position: absolute;
    inset: auto auto -20% -10%;
    width: 28rem;
    height: 28rem;
    background: radial-gradient(circle at 50% 50%, rgba(58, 110, 168, 0.45), transparent 65%);
    z-index: -1;
    pointer-events: none;
}

.sfk-team-widget__inner {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}

/* ----- Copy-Spalte ------ */
.sfk-team-widget__eyebrow {
    display: inline-block;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--sfk-yellow);
    font-weight: 700;
    padding: 0.35rem 0.75rem;
    border: 1px solid rgba(242, 169, 28, 0.4);
    background: rgba(242, 169, 28, 0.08);
    margin-bottom: 1.25rem;
}
.sfk-team-widget__headline {
    color: var(--sfk-white);
    font-size: clamp(1.85rem, 4vw, 2.85rem);
    line-height: 1.05;
    text-transform: uppercase;
    margin: 0 0 1rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.sfk-team-widget__lead {
    color: rgba(255, 255, 255, 0.88);
    font-size: 1.0625rem;
    line-height: 1.6;
    margin: 0 0 1.75rem;
    max-width: 38ch;
}
.sfk-team-widget__lead strong {
    color: var(--sfk-yellow);
    font-weight: 700;
}

/* ----- Avatar-Stack ------ */
.sfk-team-widget__avatars {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
    display: flex;
    align-items: center;
}
.sfk-team-widget__avatar {
    --avatar-size: 4.25rem;
    position: relative;
    width: var(--avatar-size);
    height: var(--avatar-size);
    margin-left: -1.1rem;
    border-radius: 50%;
    border: 3px solid var(--sfk-primary);
    background: var(--sfk-primary-dark);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.25);
    transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), border-color 0.25s;
    z-index: calc(20 - var(--i, 0));
    overflow: hidden;
}
.sfk-team-widget__avatar:first-child {
    margin-left: 0;
}
.sfk-team-widget__avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 50%;
}
.sfk-team-widget__avatar-name {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.5rem);
    transform: translateX(-50%) translateY(0.4rem);
    background: var(--sfk-white);
    color: var(--sfk-primary);
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.3rem 0.6rem;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s, transform 0.2s;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}
.sfk-team-widget__avatar-name::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -5px;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border: 5px solid transparent;
    border-top-color: var(--sfk-white);
}
.sfk-team-widget__avatar:hover,
.sfk-team-widget__avatar:focus-within {
    transform: translateY(-6px) scale(1.08);
    border-color: var(--sfk-yellow);
    z-index: 99;
}
.sfk-team-widget__avatar:hover .sfk-team-widget__avatar-name,
.sfk-team-widget__avatar:focus-within .sfk-team-widget__avatar-name {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* +N-Badge */
.sfk-team-widget__avatar--more {
    background: var(--sfk-yellow);
    border-color: var(--sfk-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}
.sfk-team-widget__avatar--more .sfk-team-widget__avatar-plus {
    color: var(--sfk-primary);
    font-weight: 800;
    font-size: 1rem;
    letter-spacing: -0.01em;
}
.sfk-team-widget__avatar--more:hover {
    transform: translateY(-6px) scale(1.08);
    border-color: var(--sfk-yellow);
}

/* ----- Actions ------ */
.sfk-team-widget__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.5rem;
}
.sfk-team-widget__actions .sfk-btn {
    padding: 0.95rem 1.6rem;
    font-size: 1rem;
}
.sfk-team-widget__secondary {
    color: var(--sfk-white);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.98rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
    padding-bottom: 0.15rem;
    transition: color 0.2s, border-color 0.2s;
}
.sfk-team-widget__secondary:hover,
.sfk-team-widget__secondary:focus-visible {
    color: var(--sfk-yellow);
    border-color: var(--sfk-yellow);
}

/* ----- Büro-Bilder rechts (kompaktes 2x2-Grid, gleiche Höhe) ------ */
.sfk-team-widget__media {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.65rem;
    align-self: stretch;
}
.sfk-team-widget__tile {
    margin: 0;
    overflow: hidden;
    position: relative;
    aspect-ratio: 4 / 3;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
}
.sfk-team-widget__tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.sfk-team-widget__tile:hover img {
    transform: scale(1.05);
}

@media (max-width: 1100px) {
    .sfk-team-widget__inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .sfk-team-widget__avatar {
        --avatar-size: 3.4rem;
        margin-left: -0.85rem;
    }
    .sfk-team-widget__actions {
        gap: 0.75rem 1rem;
    }
}

/* ==========================================================================
   Leistungen Page (Slug: leistungen) – page-leistungen.php
   ========================================================================== */
.page-template-page-leistungen {
    background: var(--sfk-gray-200);
}

.sfk-leistungen-page {
    padding: 0 0 5rem;
}

/* ----- HERO / Intro ------------------------------------------------------- */
.sfk-leistungen-hero {
    padding: 2.5rem 0 3rem;
}

.sfk-leistungen-hero__eyebrow {
    margin: 0 0 1rem;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    color: var(--sfk-primary-light);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 1rem;
}

.sfk-leistungen-hero__title {
    margin: 0 0 1.5rem;
    color: var(--sfk-primary-dark);
    font-size: clamp(2.1rem, 3.4vw, 3.4rem);
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: 0.01em;
}

.sfk-leistungen-hero__lead {
    max-width: none;
}

.sfk-leistungen-hero__lead p {
    margin: 0 0 1rem;
    color: #40577b;
    font-size: 1.125rem;
    line-height: 1.7;
}


/* ----- Übersichts-Kacheln (Anker-Navigation) ------------------------------ */
.sfk-leistungen-overview {
    padding: 3rem 0;
}

.sfk-leistungen-overview__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 1rem;
}

.sfk-leistungen-overview__item {
    margin: 0;
    display: flex;
    min-height: 6.5rem;
}

.sfk-leistungen-overview__link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding: 1.25rem 1.4rem;
    background: #ffffff;
    color: var(--sfk-primary-dark);
    text-decoration: none;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    font-size: 1.125rem;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.sfk-leistungen-overview__link:hover,
.sfk-leistungen-overview__link:focus-visible {
    background: var(--sfk-primary);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(40, 85, 137, 0.18);
}

.sfk-leistungen-overview__num {
    flex: 0 0 auto;
    font-size: 1rem;
    color: var(--sfk-yellow-dark);
    font-weight: 800;
    letter-spacing: 0.05em;
}

.sfk-leistungen-overview__link:hover .sfk-leistungen-overview__num,
.sfk-leistungen-overview__link:focus-visible .sfk-leistungen-overview__num {
    color: var(--sfk-yellow);
}

.sfk-leistungen-overview__title {
    flex: 1 1 auto;
}

.sfk-leistungen-overview__arrow {
    flex: 0 0 auto;
    font-size: 1.25rem;
    color: var(--sfk-yellow-dark);
    transition: transform 0.2s ease;
}

.sfk-leistungen-overview__link:hover .sfk-leistungen-overview__arrow {
    color: var(--sfk-yellow);
    transform: translateX(3px);
}


/* ----- Detail-Sektionen --------------------------------------------------- */
.sfk-leistungen-band {
    padding: 3rem 0;
    scroll-margin-top: 8rem;
}

.sfk-leistungen-band:nth-of-type(odd) {
    background: var(--sfk-gray-200);
}

.sfk-leistungen-band:nth-of-type(even) {
    background: #ffffff;
}

.sfk-leistungen-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 3rem;
    align-items: start;
}

.sfk-leistungen-band--reverse .sfk-leistungen-split {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
}

.sfk-leistungen-band--reverse .sfk-leistungen-media {
    order: 2;
}

.sfk-leistungen-band--reverse .sfk-leistungen-copy {
    order: 1;
}

.sfk-leistungen-media {
    margin: 0;
    overflow: hidden;
    background: #d9dee5;
}

.sfk-leistungen-media__image {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
}

/* ----- Visual-Kachel (CI-Farben statt Bild) ------------------------------ */
.sfk-leistungen-visual {
    position: relative;
    aspect-ratio: 4 / 3;
    width: 100%;
    background:
        linear-gradient(135deg, #1f4570 0%, var(--sfk-primary) 45%, #2f6aa8 100%);
    color: #ffffff;
    isolation: isolate;
    overflow: hidden;
}

.sfk-leistungen-visual__bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(120% 80% at 0% 0%, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0) 55%),
        radial-gradient(80% 60% at 100% 100%, rgba(242, 169, 28, 0.18) 0%, rgba(242, 169, 28, 0) 60%);
    z-index: 0;
    pointer-events: none;
}

.sfk-leistungen-visual__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
    background-size: 44px 44px;
    background-position: 0 0;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.25) 75%, rgba(0, 0, 0, 0) 100%);
    -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.25) 75%, rgba(0, 0, 0, 0) 100%);
    z-index: 1;
    pointer-events: none;
    animation: sfkVisualGridDrift 22s linear infinite;
}

.sfk-leistungen-visual__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(28px);
    opacity: 0.55;
    z-index: 1;
    pointer-events: none;
    will-change: transform;
}

.sfk-leistungen-visual__orb--a {
    width: 55%;
    aspect-ratio: 1 / 1;
    top: -12%;
    right: -10%;
    background: radial-gradient(circle at 30% 30%, rgba(242, 169, 28, 0.55), rgba(242, 169, 28, 0) 65%);
    animation: sfkVisualOrbA 14s ease-in-out infinite alternate;
}

.sfk-leistungen-visual__orb--b {
    width: 50%;
    aspect-ratio: 1 / 1;
    bottom: -18%;
    left: -12%;
    background: radial-gradient(circle at 70% 70%, rgba(144, 184, 229, 0.45), rgba(144, 184, 229, 0) 65%);
    animation: sfkVisualOrbB 18s ease-in-out infinite alternate;
}

.sfk-leistungen-visual__inner {
    position: relative;
    z-index: 2;
    height: 100%;
    padding: clamp(1.75rem, 4vw, 3rem);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.5rem;
}

.sfk-leistungen-visual__top {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.sfk-leistungen-visual__bottom {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.sfk-leistungen-visual__icon {
    width: clamp(3rem, 6vw, 4.25rem);
    height: clamp(3rem, 6vw, 4.25rem);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    animation: sfkVisualIconFloat 6s ease-in-out infinite;
    flex-shrink: 0;
}

.sfk-leistungen-visual__bereich {
    margin: 1.25rem 0 0;
    font-family: var(--sfk-font-heading);
    font-weight: 600;
    color: #ffffff;
    font-size: clamp(1.6rem, 3vw, 2.25rem);
    line-height: 1.1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateY(8px);
    animation: sfkVisualFadeUp 0.9s ease-out 0.05s forwards;
}

.sfk-leistungen-visual__icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

.sfk-leistungen-visual__kicker {
    margin: 0;
    font-family: var(--sfk-font-heading);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.85);
    opacity: 0;
    transform: translateY(8px);
    animation: sfkVisualFadeUp 0.9s ease-out 0.35s forwards;
}

.sfk-leistungen-visual__headline {
    margin: 0.5rem 0 0;
    font-family: var(--sfk-font-heading);
    font-weight: 400;
    color: #ffffff;
    font-size: clamp(1.25rem, 2.2vw, 1.75rem);
    line-height: 1.3;
    letter-spacing: 0.005em;
    text-transform: none;
    opacity: 0;
    transform: translateY(10px);
    animation: sfkVisualFadeUp 1s ease-out 0.2s forwards;
}

.sfk-leistungen-visual__tagline {
    margin: 0;
    font-size: 1rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.85);
    max-width: 28ch;
    opacity: 0;
    transform: translateY(10px);
    animation: sfkVisualFadeUp 1s ease-out 0.4s forwards;
}

.sfk-leistungen-visual__rule {
    display: block;
    width: clamp(3rem, 8vw, 5rem);
    height: 3px;
    background: var(--sfk-yellow);
    margin-top: 1rem;
    transform-origin: left center;
    animation: sfkVisualRuleGrow 1.1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.55s both,
               sfkVisualRulePulse 4.5s ease-in-out 1.7s infinite;
}

@keyframes sfkVisualFadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes sfkVisualRuleGrow {
    from { transform: scaleX(0); }
    to   { transform: scaleX(1); }
}

@keyframes sfkVisualRulePulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.55; }
}

@keyframes sfkVisualIconFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-6px); }
}

@keyframes sfkVisualOrbA {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    100% { transform: translate3d(-6%, 4%, 0) scale(1.08); }
}

@keyframes sfkVisualOrbB {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    100% { transform: translate3d(5%, -3%, 0) scale(1.1); }
}

@keyframes sfkVisualGridDrift {
    0%   { background-position: 0 0; }
    100% { background-position: 44px 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .sfk-leistungen-visual__grid,
    .sfk-leistungen-visual__orb,
    .sfk-leistungen-visual__icon,
    .sfk-leistungen-visual__bereich,
    .sfk-leistungen-visual__kicker,
    .sfk-leistungen-visual__headline,
    .sfk-leistungen-visual__tagline,
    .sfk-leistungen-visual__rule {
        animation: none !important;
    }

    .sfk-leistungen-visual__bereich,
    .sfk-leistungen-visual__kicker,
    .sfk-leistungen-visual__headline,
    .sfk-leistungen-visual__tagline {
        opacity: 1;
        transform: none;
    }

    .sfk-leistungen-visual__rule {
        transform: scaleX(1);
    }
}

.sfk-leistungen-eyebrow {
    margin: 0 0 0.85rem;
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    color: var(--sfk-yellow-dark);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.95rem;
}

.sfk-leistungen-eyebrow--light {
    color: var(--sfk-yellow-light);
}

.sfk-leistungen-title {
    margin: 0 0 0.65rem;
    color: var(--sfk-primary-dark);
    font-size: clamp(1.9rem, 3vw, 2.75rem);
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: 0.01em;
}

.sfk-leistungen-subtitle {
    margin: 0 0 1.5rem;
    color: var(--sfk-primary-light);
    font-family: var(--sfk-font-heading);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    font-size: 1.125rem;
}

.sfk-leistungen-intro,
.sfk-leistungen-lead {
    margin: 0 0 1.1rem;
    color: #40577b;
    font-size: 1.125rem;
    line-height: 1.7;
}

.sfk-leistungen-lead {
    color: var(--sfk-primary-dark);
    font-weight: 600;
}

.sfk-leistungen-list-title {
    margin: 1.8rem 0 0.9rem;
    color: var(--sfk-primary-dark);
    font-family: var(--sfk-font-heading);
    font-size: 1.125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

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

.sfk-leistungen-list li {
    position: relative;
    padding: 0.55rem 0 0.55rem 1.85rem;
    border-bottom: 1px solid rgba(40, 85, 137, 0.12);
    color: #40577b;
    font-size: 1.125rem;
    line-height: 1.55;
}

.sfk-leistungen-list li:last-child {
    border-bottom: 0;
}

.sfk-leistungen-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 1.05rem;
    width: 0.85rem;
    height: 2px;
    background: var(--sfk-yellow);
}


/* ----- Erfolgsreport (USP) ------------------------------------------------ */
.sfk-leistungen-erfolgsreport {
    padding: 4rem 0;
    background: var(--sfk-primary);
    color: #ffffff;
}

.sfk-leistungen-erfolgsreport__inner {
    max-width: none;
}

.sfk-leistungen-erfolgsreport__title,
.sfk-leistungen-erfolgsreport__lead,
.sfk-leistungen-erfolgsreport__copy {
    max-width: 64rem;
}

.sfk-leistungen-erfolgsreport__title {
    margin: 0 0 1.5rem;
    color: #ffffff;
    font-size: clamp(1.9rem, 3vw, 2.75rem);
    line-height: 1.15;
    text-transform: uppercase;
}

.sfk-leistungen-erfolgsreport__copy p {
    margin: 0 0 1.1rem;
    color: rgba(255, 255, 255, 0.92);
    font-size: 1.125rem;
    line-height: 1.7;
}

.sfk-leistungen-erfolgsreport__copy p:last-child {
    margin-bottom: 0;
}


/* ----- Responsive --------------------------------------------------------- */
@media (max-width: 1100px) {
    .sfk-leistungen-overview__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .sfk-leistungen-split,
    .sfk-leistungen-band--reverse .sfk-leistungen-split {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .sfk-leistungen-band--reverse .sfk-leistungen-media,
    .sfk-leistungen-band--reverse .sfk-leistungen-copy {
        order: initial;
    }

    .sfk-leistungen-media__image {
        aspect-ratio: 16 / 10;
    }

    .sfk-leistungen-visual {
        aspect-ratio: auto;
        min-height: 26rem;
    }

    .sfk-leistungen-visual__inner {
        height: auto;
        min-height: 26rem;
        padding: 2.25rem 1.75rem;
        gap: 2rem;
    }
}

@media (max-width: 640px) {
    .sfk-leistungen-page {
        padding-top: 0.5rem;
    }

    .sfk-leistungen-hero {
        padding: 1.75rem 0 2rem;
    }

    .sfk-leistungen-overview__grid {
        grid-template-columns: 1fr;
    }

    .sfk-leistungen-band {
        padding: 2.25rem 0;
    }

    .sfk-leistungen-erfolgsreport {
        padding: 2.75rem 0;
    }

    .sfk-leistungen-visual {
        min-height: 24rem;
    }

    .sfk-leistungen-visual__inner {
        min-height: 24rem;
        padding: 2rem 1.5rem;
        gap: 1.75rem;
    }

    .sfk-leistungen-visual__bereich {
        font-size: clamp(1.5rem, 5.5vw, 2rem);
        margin-top: 1rem;
    }

    .sfk-leistungen-visual__headline {
        font-size: clamp(1.15rem, 4.5vw, 1.5rem);
        line-height: 1.3;
    }

    .sfk-leistungen-visual__kicker {
        font-size: 0.78rem;
        letter-spacing: 0.1em;
    }
}


/* ============================================================
 * Leistungen – Mandanten-Versprechen (4 Karten unter dem Hero)
 * ============================================================ */
.sfk-leistungen-versprechen {
    padding: 2.5rem 0 3.5rem;
    background: #ffffff;
}

.sfk-leistungen-versprechen__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
}

.sfk-leistungen-versprechen__card {
    padding: 1.75rem 1.5rem;
    background: var(--sfk-gray-50);
    border-top: 3px solid var(--sfk-yellow);
}

.sfk-leistungen-versprechen__num {
    display: block;
    margin-bottom: 0.75rem;
    color: var(--sfk-primary);
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.06em;
}

.sfk-leistungen-versprechen__title {
    margin: 0 0 0.5rem;
    font-size: 1.25rem;
    line-height: 1.25;
    color: var(--sfk-primary);
}

.sfk-leistungen-versprechen__card p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.55;
    color: var(--sfk-gray-800);
}

@media (max-width: 1100px) {
    .sfk-leistungen-versprechen__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .sfk-leistungen-versprechen__grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
 * Leistungen – Erfolgsreport 3-Säulen-Modell (überschreibt alten Block)
 * ============================================================ */
.sfk-leistungen-erfolgsreport__lead {
    max-width: 50rem;
    margin: 0 0 2.5rem;
    color: rgba(255, 255, 255, 0.92);
    font-size: 1.125rem;
    line-height: 1.6;
}

.sfk-leistungen-saeulen {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.sfk-leistungen-saeule {
    padding: 1.75rem 1.5rem 2rem;
    background: rgba(255, 255, 255, 0.07);
    border-top: 3px solid var(--sfk-yellow);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.sfk-leistungen-saeule__num {
    display: block;
    margin-bottom: 0.5rem;
    color: var(--sfk-yellow);
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.08em;
}

.sfk-leistungen-saeule__title {
    margin: 0 0 0.25rem;
    color: #ffffff;
    font-size: 1.5rem;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.sfk-leistungen-saeule__sub {
    margin: 0 0 1rem;
    color: var(--sfk-yellow-light);
    font-size: 1.05rem;
    font-weight: 600;
}

.sfk-leistungen-saeule__text {
    margin: 0 0 1rem;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1rem;
    line-height: 1.6;
}

.sfk-leistungen-saeule__meta {
    margin: auto 0 0;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.95rem;
    line-height: 1.55;
}

@media (max-width: 1100px) {
    .sfk-leistungen-saeulen {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
 * Leistungen – Finanzstatus-Block (in Bereich 02 Privatpersonen)
 * ============================================================ */
.sfk-leistungen-finanzstatus {
    margin-top: 2.5rem;
    padding: 2rem 1.75rem;
    background: var(--sfk-gray-50);
    border-left: 4px solid var(--sfk-yellow);
}

.sfk-leistungen-finanzstatus__head {
    margin-bottom: 1.25rem;
}

.sfk-leistungen-finanzstatus__title {
    margin: 0 0 0.5rem;
    color: var(--sfk-primary);
    font-size: 1.5rem;
    line-height: 1.2;
}

.sfk-leistungen-finanzstatus__lead {
    margin: 0;
    color: var(--sfk-gray-800);
    font-size: 1.05rem;
    line-height: 1.55;
}

.sfk-leistungen-finanzstatus__list {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 1.5rem;
}

.sfk-leistungen-finanzstatus__list li {
    position: relative;
    padding-left: 1.5rem;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--sfk-gray-800);
}

.sfk-leistungen-finanzstatus__list li::before {
    content: "?";
    position: absolute;
    left: 0;
    top: 0;
    width: 1.1rem;
    height: 1.1rem;
    line-height: 1.1rem;
    text-align: center;
    background: var(--sfk-yellow);
    color: var(--sfk-primary);
    font-weight: 700;
    font-size: 0.85rem;
}

.sfk-leistungen-finanzstatus__usp {
    margin: 0;
    padding: 1.1rem 1.25rem;
    background: #ffffff;
    border-left: 3px solid var(--sfk-primary);
    color: var(--sfk-gray-800);
    font-size: 1.05rem;
    line-height: 1.55;
}

.sfk-leistungen-finanzstatus__usp strong {
    color: var(--sfk-primary);
}

@media (max-width: 800px) {
    .sfk-leistungen-finanzstatus__list {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
 * Leistungen – Experten-Block Christian Kamml (in Bereich 03)
 * ============================================================ */
.sfk-leistungen-experte {
    margin-top: 2.5rem;
    padding: 2rem 1.75rem;
    background: var(--sfk-primary);
    color: #ffffff;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2rem;
    align-items: start;
}

.sfk-leistungen-experte--no-media {
    grid-template-columns: 1fr;
}

.sfk-leistungen-experte__media {
    overflow: hidden;
    background: var(--sfk-primary-dark, #1f4570);
}

.sfk-leistungen-experte__image {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center top;
}

.sfk-leistungen-experte__copy .sfk-leistungen-eyebrow {
    color: var(--sfk-yellow);
    margin-bottom: 0.4rem;
}

.sfk-leistungen-experte__title {
    margin: 0 0 0.4rem;
    color: #ffffff;
    font-size: 1.65rem;
    line-height: 1.2;
}

.sfk-leistungen-experte__sub {
    margin: 0 0 1.2rem;
    color: var(--sfk-yellow-light);
    font-size: 1.05rem;
    font-weight: 600;
}

.sfk-leistungen-experte__copy p {
    margin: 0 0 1rem;
    color: rgba(255, 255, 255, 0.92);
    font-size: 1.05rem;
    line-height: 1.6;
}

.sfk-leistungen-experte__list {
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem 1.25rem;
}

.sfk-leistungen-experte__list li {
    position: relative;
    padding-left: 1.25rem;
    color: rgba(255, 255, 255, 0.92);
    font-size: 1rem;
    line-height: 1.5;
}

.sfk-leistungen-experte__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 0.55rem;
    height: 0.55rem;
    background: var(--sfk-yellow);
}

@media (max-width: 800px) {
    .sfk-leistungen-experte {
        grid-template-columns: 1fr;
    }

    .sfk-leistungen-experte__media {
        max-width: 100%;
    }

    .sfk-leistungen-experte__list {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
 * Front-Page – Digitale Steuerkanzlei (Mandantenportal-Sektion)
 * ============================================================ */
.sfk-digital {
    background: var(--sfk-gray-50);
    padding: clamp(3rem, 7vw, 5rem) 0;
}

.sfk-digital__head {
    max-width: 56rem;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.sfk-digital__eyebrow {
    margin: 0 0 0.75rem;
    color: var(--sfk-primary);
    font-weight: 600;
    letter-spacing: 0.04em;
    font-size: 1rem;
}

.sfk-digital__headline {
    margin: 0 0 1rem;
    color: var(--sfk-primary);
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    line-height: 1.15;
}

.sfk-digital__lead {
    margin: 0;
    color: var(--sfk-gray-800);
    font-size: 1.125rem;
    line-height: 1.6;
}

.sfk-digital__grid {
    list-style: none;
    margin: 0 0 2.5rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.sfk-digital__card {
    padding: 1.75rem 1.5rem;
    background: #ffffff;
    border-top: 3px solid var(--sfk-primary);
}

.sfk-digital__card-title {
    margin: 0 0 0.5rem;
    color: var(--sfk-primary);
    font-size: 1.2rem;
    line-height: 1.25;
}

.sfk-digital__card-text {
    margin: 0;
    color: var(--sfk-gray-800);
    font-size: 1rem;
    line-height: 1.55;
}

.sfk-digital__actions {
    text-align: center;
}

@media (max-width: 1100px) {
    .sfk-digital__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .sfk-digital__grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
 * Karriere – Trust-Statement (kompakte Pull-Quote unter Headline)
 * ============================================================ */
.sfk-kar-warum__trust {
    margin: 0.75rem 0 1.25rem;
    padding: 0.75rem 1rem;
    background: var(--sfk-gray-50);
    border-left: 3px solid var(--sfk-yellow);
    color: var(--sfk-primary);
    font-size: 1.05rem;
    line-height: 1.5;
    font-weight: 500;
}

/* ==========================================================================
   Legal Pages (Impressum, Datenschutz, EU AI Act, Barrierefreiheit, Cookies)
   ========================================================================== */
.sfk-legal {
    background: var(--sfk-white);
}

.sfk-legal__header {
    padding: 2.5rem 0 2rem;
    background: linear-gradient(180deg, var(--sfk-gray-50) 0%, var(--sfk-white) 100%);
    border-bottom: 1px solid var(--sfk-gray-100);
}

.sfk-legal__eyebrow {
    display: inline-block;
    font-family: var(--sfk-font-heading);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--sfk-secondary-dark);
    margin-bottom: 0.75rem;
}

.sfk-legal__title {
    font-family: var(--sfk-font-heading);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
    line-height: 1.15;
    color: var(--sfk-primary);
    margin: 0 0 1rem;
}

.sfk-legal__rule {
    display: block;
    width: 72px;
    height: 4px;
    background: var(--sfk-yellow);
    border-radius: 0;
}

.sfk-legal__body {
    padding: 3rem 0 5rem;
}

.sfk-legal__article {
    background: var(--sfk-white);
}

.sfk-legal__content {
    font-family: var(--sfk-font-body);
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--sfk-gray-800);
    font-weight: 400;
}

.sfk-legal__content > *:first-child {
    margin-top: 0;
}

.sfk-legal__content > *:last-child {
    margin-bottom: 0;
}

.sfk-legal__content p {
    margin: 0 0 1.25rem;
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--sfk-gray-800);
}

.sfk-legal__content h2 {
    font-family: var(--sfk-font-heading);
    font-size: clamp(1.4rem, 2.4vw, 1.75rem);
    font-weight: 800;
    color: var(--sfk-primary);
    margin: 2.75rem 0 1rem;
    line-height: 1.25;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--sfk-gray-100);
}

.sfk-legal__content h3 {
    font-family: var(--sfk-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--sfk-primary);
    margin: 2rem 0 0.75rem;
    line-height: 1.3;
}

.sfk-legal__content h4 {
    font-family: var(--sfk-font-heading);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--sfk-primary-dark);
    margin: 1.5rem 0 0.5rem;
    line-height: 1.35;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sfk-legal__content ul,
.sfk-legal__content ol {
    margin: 0 0 1.5rem;
    padding-left: 1.5rem;
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--sfk-gray-800);
}

.sfk-legal__content li {
    margin-bottom: 0.5rem;
}

.sfk-legal__content li::marker {
    color: var(--sfk-yellow-dark);
    font-weight: 700;
}

.sfk-legal__content a {
    color: var(--sfk-primary);
    text-decoration: underline;
    text-decoration-color: var(--sfk-yellow);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.sfk-legal__content a:hover,
.sfk-legal__content a:focus {
    color: var(--sfk-yellow-dark);
    text-decoration-color: var(--sfk-primary);
}

.sfk-legal__content strong,
.sfk-legal__content b {
    color: var(--sfk-primary);
    font-weight: 700;
}

.sfk-legal__content blockquote {
    margin: 1.5rem 0;
    padding: 1rem 1.25rem;
    background: var(--sfk-gray-50);
    border-left: 4px solid var(--sfk-yellow);
    color: var(--sfk-primary);
    font-size: 1.0625rem;
    line-height: 1.6;
    font-style: normal;
}

.sfk-legal__content blockquote p:last-child {
    margin-bottom: 0;
}

.sfk-legal__content hr {
    margin: 2.5rem 0;
    border: 0;
    border-top: 1px solid var(--sfk-gray-200);
}

.sfk-legal__content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    font-size: 1rem;
}

.sfk-legal__content th,
.sfk-legal__content td {
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--sfk-gray-200);
    vertical-align: top;
}

.sfk-legal__content th {
    background: var(--sfk-gray-50);
    color: var(--sfk-primary);
    font-weight: 700;
    font-family: var(--sfk-font-heading);
}

.sfk-legal__content address {
    font-style: normal;
    margin: 0 0 1.25rem;
    color: var(--sfk-gray-800);
}

.sfk-legal__back {
    margin: 3rem 0 0;
    padding-top: 2rem;
    border-top: 1px solid var(--sfk-gray-100);
    text-align: left;
}

.sfk-legal__back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--sfk-primary);
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    transition: color 0.2s ease, transform 0.2s ease;
}

.sfk-legal__back-link:hover,
.sfk-legal__back-link:focus {
    color: var(--sfk-yellow-dark);
}

.sfk-legal__back-link:hover svg,
.sfk-legal__back-link:focus svg {
    transform: translateX(-3px);
}

.sfk-legal__back-link svg {
    transition: transform 0.2s ease;
}

/* CookieFirst-Tabellen sauber im SFK-Look */
.sfk-legal #cookiefirst-policy-page {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sfk-legal #cookiefirst-policy-page table {
    width: 100%;
    min-width: 600px;
    border-collapse: collapse;
    font-size: 0.9375rem;
}

.sfk-legal #cookiefirst-policy-page th,
.sfk-legal #cookiefirst-policy-page td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--sfk-gray-200);
    text-align: left;
    vertical-align: top;
    word-break: break-word;
}

.sfk-legal #cookiefirst-policy-page th {
    background: var(--sfk-gray-50);
    color: var(--sfk-primary);
    font-weight: 700;
    font-family: var(--sfk-font-heading);
}

.sfk-legal #cookiefirst-policy-page td {
    color: var(--sfk-gray-800);
}

.sfk-legal #cookiefirst-policy-page a {
    color: var(--sfk-primary);
}

.sfk-legal #cookiefirst-policy-page h2,
.sfk-legal #cookiefirst-policy-page h3,
.sfk-legal #cookiefirst-policy-page h4 {
    font-family: var(--sfk-font-heading);
    color: var(--sfk-primary);
    margin-top: 2rem;
    margin-bottom: 1rem;
}

@media (max-width: 768px) {
    .sfk-legal__header {
        padding: 2rem 0 1.5rem;
    }
    .sfk-legal__body {
        padding: 2rem 0 3.5rem;
    }
    .sfk-legal__content,
    .sfk-legal__content p,
    .sfk-legal__content ul,
    .sfk-legal__content ol {
        font-size: 1.0625rem;
    }
    .sfk-legal #cookiefirst-policy-page table {
        font-size: 0.8125rem;
    }
    .sfk-legal #cookiefirst-policy-page th,
    .sfk-legal #cookiefirst-policy-page td {
        padding: 0.5rem 0.75rem;
    }
}

/* ==========================================================================
   RESPONSIVE FIXES – 2026-05 Audit (Smartphone / Tablet / Landscape /
   Widescreen / Ultrawide). Konsolidiert frühere fragmentierte Breakpoints.
   ========================================================================== */

/* --- 1) Header-Navigation: Lücke zwischen 1024px und Hamburger schließen
   Vorher: .sfk-nav versteckt @max-1023, Hamburger versteckt @min-1024
   → bei genau 1024px war WEDER Nav noch Hamburger sichtbar. Außerdem
     versteckte sich .sfk-header__cta @max-1024px unnötig auf Tablets >=768px.
   ------------------------------------------------------------------------- */
@media (max-width: 1023.98px) {
    .sfk-hamburger { display: flex !important; }
}
@media (min-width: 1024px) {
    .sfk-nav { display: block; }
    .sfk-header__cta { display: inline-flex; }
}
/* CTAs auf engeren Desktops kompakter darstellen statt zu verstecken */
@media (min-width: 1024px) and (max-width: 1180px) {
    .sfk-header__cta {
        padding: .5rem .8rem !important;
        font-size: .82rem !important;
    }
    .sfk-header__inner { gap: 1rem; padding: .75rem 1rem; }
    .sfk-nav__list { gap: 1rem; }
    .sfk-nav__list a { font-size: .92rem; padding: .4rem .15rem; }
}

/* --- 2) Container skaliert bis Ultrawide
   Vorher: .sfk-container max-width: 1240px → auf 2560px viel toter Raum.
   Nutzt jetzt clamp() für sanftes Wachstum bis 1600px ab Widescreen.
   Header-Inner durfte schon 1400 → wir heben auf 1600 an für Konsistenz.
   ------------------------------------------------------------------------- */
.sfk-container {
    max-width: min(1600px, 92vw);
    padding-inline: clamp(1rem, 3vw, 2rem);
}
@media (min-width: 1921px) {
    .sfk-container {
        max-width: 1760px;
    }
}
.sfk-header__inner {
    max-width: min(1760px, 96vw);
}

/* --- 3) Branchen-Grid: feste 3 Spalten auf Desktop
   9 Branchen → 3 Reihen × 3 Spalten, größere Kacheln.
   Mobile/Tablet weiterhin via Default-Regel (2/1 Spalten).
   ------------------------------------------------------------------------- */

/* --- 4) Front-Page „Zusammenarbeit" Grid (split-grid mit 3 Cols) skaliert
   Schon 3 Cols, aber auf Ultrawide ginge mehr. Lassen wir defaultmäßig.
   --- */

/* --- 5) Front-Page Leistungs-Grid (6 Cards) skaliert bis 6 Cols
   Vorher: 3 Cols (default), 1 Col @<=768. Auf Ultrawide alle 6 in 1 Reihe.
   ------------------------------------------------------------------------- */
@media (min-width: 1280px) {
    .sfk-leistungen-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1800px) {
    .sfk-leistungen-grid { grid-template-columns: repeat(6, 1fr); }
}

/* --- 6) News-Grid (Steuer-News + Kanzlei-News): bleibt 2-spaltig, aber
   die Kacheln werden auf Ultrawide nicht mehr "verloren" wirken weil
   .sfk-container jetzt skaliert. Mehr brauchts hier nicht. */

/* --- 7) Mandantenstimmen / Reviews: Container-Skalierung reicht. */

/* --- 8) Footer-Grid auf Ultrawide etwas auflockern
   ------------------------------------------------------------------------- */
@media (min-width: 1600px) {
    .sfk-footer__grid {
        gap: 3rem;
    }
}

/* --- 9) Karriere – Stellen-Grid skaliert bis 4 Cols, vermeidet leere
   Cards-Wirkung auf Landscape/Widescreen.
   Vorher: 3 Cols (>1100), 2 Cols (≤1100), 1 Col (≤600).
   Jetzt: zusätzlich 4 Cols (≥1500).
   ------------------------------------------------------------------------- */
@media (min-width: 1500px) {
    .sfk-kar-stellen__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* --- 10) Leistungen – Overview-Grid: durchgehend 3 Spalten ab Desktop.
   Vorher: 3 Cols, ≤1100→2, ≤640→1. Auf 1024px blieb es bei 2 Cols (eng).
   Jetzt: 3 Cols schon ab 900px – auch auf Ultrawide (keine 4er-Reihe).
   ------------------------------------------------------------------------- */
@media (min-width: 900px) {
    .sfk-leistungen-overview__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* --- 11) Kanzlei – Partner-Grid (4 Partner): gleiche Logik
   ------------------------------------------------------------------------- */
@media (min-width: 1500px) {
    .sfk-team-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* --- 12) Hero-Section: brand-mark left rückt nicht ins inhaltliche Layout
   bis sehr breite Viewports, sonst überlappt es mit Content.
   Bestehende Regel @max-860 versteckt es schon. Auf Ultrawide etwas größer:
   ------------------------------------------------------------------------- */
@media (min-width: 1800px) {
    .sfk-hero__brand-mark {
        width: clamp(420px, 30vw, 720px);
    }
}

/* --- 13) Min-Schriftgröße auf Smartphone erzwingen (Lesbarkeit) ----------- */
@media (max-width: 480px) {
    body { font-size: 1rem; }
    .sfk-hero__sub,
    .sfk-leistungen-band p,
    .sfk-kar-warum__text p,
    .sfk-stelle-content__body p {
        font-size: 1rem;
        line-height: 1.6;
    }
    /* Tap-Targets >= 44px Höhe */
    .sfk-btn,
    .sfk-leistungen-overview__link,
    .sfk-kar-stelle {
        min-height: 44px;
    }
}

/* --- 14) Stelle-Detail Hero-Pills: bei sehr engen Viewports kleiner
   ------------------------------------------------------------------------- */
@media (max-width: 480px) {
    .sfk-stelle-hero__pill {
        font-size: 0.75rem;
        padding: 0.3rem 0.7rem;
        letter-spacing: 0.03em;
    }
}

/* --- 15) Ultrawide-spezifische Type-Ramp: auf sehr großen Bildschirmen
   die Hero-Headlines etwas größer für visuelles Gleichgewicht.
   ------------------------------------------------------------------------- */
@media (min-width: 1800px) {
    .sfk-hero__claim {
        font-size: clamp(2.5rem, 3.2vw, 4.5rem);
    }
    .sfk-hero__sub {
        font-size: 1.25rem;
        max-width: 760px;
    }
}

/* --- 16) Floating-Contact: auf Tablets/Landscape nicht überlappen mit
   schmalen Hero-Sektionen (Buttons rechts schweben).
   ------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .sfk-floatbar { right: 0.75rem; }
}

/* --- 17) Tablet (768-1023px): Header-CTAs sichtbar machen
   Vorher: @max-1024 hat .sfk-header__cta versteckt → keine sichtbare CTA.
   Jetzt zeigen wir nur die primäre CTA, kompakt; Portal-CTA bleibt aus.
   ------------------------------------------------------------------------- */
@media (min-width: 768px) and (max-width: 1023.98px) {
    .sfk-header__cta {
        display: inline-flex;
        padding: .5rem .85rem !important;
        font-size: .85rem !important;
    }
    .sfk-header__cta--portal {
        display: none;
    }
}

/* --- 18) Container-Padding auf sehr kleinen Smartphones reduzieren
   damit Cards/Text die volle Breite nutzen können (375px Viewports).
   ------------------------------------------------------------------------- */
@media (max-width: 380px) {
    .sfk-container {
        padding-inline: 0.875rem;
    }
}

/* --- 19) Front-Page Branchen-Card-Inhalt: auf engen Tablets nicht
   abschneiden (Mehr lesbarer Text, kein Overflow).
   ------------------------------------------------------------------------- */
.sfk-branchen-grid .sfk-branche__title,
.sfk-branchen-grid h3 {
    word-break: break-word;
    hyphens: auto;
}

/* --- 20) Karte/Map-Iframes responsive --- */
.sfk-kontakt-map iframe,
.sfk-kontakt iframe {
    width: 100%;
    height: clamp(280px, 50vh, 480px);
    display: block;
}

/* --- 21) Hero-Headlines: auf Smartphone schrumpfen + brechen erlauben.
   Ohne dies clippen lange Wörter wie "RICHTUNGSWEISEND" / "IRGENDEINEN"
   am rechten Containerrand (uppercase + font-weight 800).
   ------------------------------------------------------------------------- */
@media (max-width: 480px) {
    .sfk-hero__claim {
        font-size: clamp(1.5rem, 7vw, 2rem);
        line-height: 1.1;
        word-break: break-word;
        hyphens: auto;
    }
    .sfk-kar-hero__claim {
        font-size: clamp(1.4rem, 6.8vw, 1.85rem);
        line-height: 1.1;
        word-break: break-word;
        hyphens: auto;
    }
    .sfk-stelle-hero__title,
    .sfk-leistungen-hero__title,
    .sfk-news-overview__title {
        word-break: break-word;
        hyphens: auto;
    }
}

/* --- 22) Floatbar nimmt auf engen Smartphones nicht den halben Hero ein.
   ------------------------------------------------------------------------- */
@media (max-width: 480px) {
    .sfk-floatbar {
        right: 0.5rem;
        gap: 0.35rem;
    }
    .sfk-floatbar__item,
    button.sfk-floatbar__item {
        width: 38px !important;
        height: 38px !important;
    }
    .sfk-floatbar__item svg {
        width: 18px;
        height: 18px;
    }
}

/* --- 23) Hero-Container: Padding-Right auf Smartphone erhöhen, damit der
   Headline-Text nicht mit der Floatbar kollidiert. */
@media (max-width: 480px) {
    .sfk-hero .sfk-container,
    .sfk-kar-hero .sfk-container {
        padding-right: clamp(3rem, 14vw, 4rem);
    }
}

/* --- 24) Hamburger-Striche: auf .home (dunkler Vollbild-Hero direkt unter
   dem Header) sind die Striche weiß. Auf den anderen Seiten bleibt der
   Header über hellem Hintergrund → blaue Striche bleiben gut sichtbar.
   Beim Scrollen (Header wird weiß-deckend) immer blau.
   ------------------------------------------------------------------------- */
.home .sfk-hamburger span {
    background: #ffffff;
}
.home .sfk-header.is-scrolled .sfk-hamburger span {
    background: var(--sfk-primary);
}

/* ==========================================================================
   WCAG 2.2 AA – Accessibility Fixes (2026-05 Audit)
   Behebt von axe-core gemeldete Verstöße sowie manuelle Befunde.
   Detaillierter Audit-Bericht: ci/wcag-audit-2026-05.md
   ========================================================================== */

/* --- A11y-1) Globale prefers-reduced-motion: für alle Animationen,
   nicht nur Portal-CTA. WCAG 2.3.3 (AAA) und 2.2.2 (A).
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    html { scroll-behavior: auto !important; }
}

/* --- A11y-2) Einheitliche, gut sichtbare Focus-Indikatoren.
   WCAG 2.4.7 (AA) "Focus Visible" + 2.4.13 (AAA) "Focus Appearance".
   2px outline + 2px offset + 3:1 Kontrast garantiert.
   ------------------------------------------------------------------------- */
:focus-visible {
    outline: 3px solid var(--sfk-primary);
    outline-offset: 2px;
    border-radius: 2px;
}
/* Auf Yellow-Buttons: dunkleres Outline für Kontrast */
.sfk-btn--primary:focus-visible,
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible {
    outline: 3px solid var(--sfk-primary-dark);
    outline-offset: 3px;
}
/* Auf Hero (dunkler Hintergrund): weißes Outline */
.sfk-hero a:focus-visible,
.sfk-hero button:focus-visible,
.sfk-kar-hero a:focus-visible,
.sfk-stelle-hero a:focus-visible,
.home .sfk-header a:focus-visible,
.home .sfk-header button:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 2px;
    box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.4);
}

/* --- A11y-3) Skip-Link sichtbar machen on focus (WCAG 2.4.1).
   Vorher: dauerhaft per .screen-reader-text off-screen, auch bei Fokus.
   ------------------------------------------------------------------------- */
.skip-link {
    position: absolute;
    top: -100px;
    left: 1rem;
    padding: 0.75rem 1.25rem;
    background: var(--sfk-primary-dark);
    color: #ffffff;
    font-weight: 700;
    text-decoration: none;
    z-index: 10000;
    border-radius: 0;
    transition: top 0.15s ease;
    /* Override .screen-reader-text während fokussiert */
    clip: auto !important;
    clip-path: none !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    white-space: nowrap !important;
}
.skip-link:not(:focus):not(:focus-visible) {
    top: -100px;
    /* fallback: visuell verstecken */
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}
.skip-link:focus,
.skip-link:focus-visible {
    top: 1rem;
    outline: 3px solid var(--sfk-yellow);
    outline-offset: 2px;
}

/* --- A11y-4) Kontrast-Korrekturen.
   axe-core meldete 185 Verstöße (color-contrast WCAG 1.4.3 AA, 4.5:1 / 3:1).
   ------------------------------------------------------------------------- */

/* "Mehr erfahren →" Branchen-Card-Links: Gelb #D8941A auf Weiß = 2.57:1
   → SFK-Blau #285589 = 8.6:1, Hover dunkler */
.sfk-branche-card__link,
.sfk-branche-card a.sfk-branche-card__link {
    color: var(--sfk-primary) !important;
}
.sfk-branche-card__link:hover,
.sfk-branche-card__link:focus-visible {
    color: var(--sfk-primary-dark) !important;
    text-decoration: underline;
}

/* Newsletter-Lead-Text: #6c757d auf #f1f3f5 = 4.21:1 → dunkler */
.sfk-newsletter__lead,
.sfk-newsletter__sub {
    color: #495057 !important;  /* 7.4:1 */
}

/* Footer-Texte: hellgrau (#f3f4f3 / #f1f1f1 / #e9eae9) auf grau #6e736f
   ergeben 4.0–4.38:1 → reines Weiß setzen (≥ 4.6:1) */
.sfk-footer address,
.sfk-footer__col address,
.sfk-footer__contact,
.sfk-footer__contact a,
.sfk-footer__ai-notice,
.sfk-footer__ai-notice-heading,
.sfk-footer__ai-notice-text,
.sfk-footer__col p,
.sfk-footer__col li,
.sfk-footer__col a {
    color: #ffffff !important;
}

/* Karriere-Vorteils-Nummer (light): #7994b2 / #8c9eaf / #8393a4 auf #dde1e4
   ergeben 2.09–2.39:1 → einheitlich primary-dark für ≥ 7:1 */
.sfk-kar-vorteil--light .sfk-kar-vorteil__num,
.sfk-kar-vorteil--light .sfk-kar-vorteil__title {
    color: var(--sfk-primary-dark) !important;
}

/* Leistungen-Overview-Numerals (#d8941a auf weiß = 2.57:1) → SFK-Blau */
.sfk-leistungen-overview__num,
.sfk-leistungen-overview__arrow {
    color: var(--sfk-primary) !important;
}
.sfk-leistungen-overview__link:hover .sfk-leistungen-overview__num,
.sfk-leistungen-overview__link:hover .sfk-leistungen-overview__arrow,
.sfk-leistungen-overview__link:focus-visible .sfk-leistungen-overview__num,
.sfk-leistungen-overview__link:focus-visible .sfk-leistungen-overview__arrow {
    color: var(--sfk-yellow) !important;  /* nur bei Hover/Focus auf blauem BG */
}

/* Eyebrow auf hellem Hintergrund (#e9ecef): primary-dark für ≥ 4.5:1.
   Aber NICHT in Sektionen mit blauem Hintergrund — dort gewinnt yellow-light. */
.sfk-leistungen-band .sfk-leistungen-eyebrow,
.sfk-leistungen-split .sfk-leistungen-eyebrow,
.sfk-leistungen-overview .sfk-leistungen-eyebrow,
.sfk-leistungen-versprechen .sfk-leistungen-eyebrow {
    color: var(--sfk-primary-dark) !important;
}
/* Eyebrow auf dunkelblauem Hintergrund: yellow-light für ≥ 4.5:1.
   experte-Box hat blauen Hintergrund → eyebrow muss hell bleiben. */
.sfk-leistungen-experte .sfk-leistungen-eyebrow,
.sfk-leistungen-eyebrow--light,
.sfk-kontakt-anfahrt__eyebrow {
    color: var(--sfk-yellow-light) !important;  /* 5.0:1 auf #285589 */
}

/* Leistungen-Saeule auf Mittelblau (#376191): Numerals + Sublines.
   Yellow-light (#f8c351) = 3.93:1 → noch heller für ≥ 4.5:1 */
.sfk-leistungen-saeule__num,
.sfk-leistungen-saeule__sub {
    color: #fff5e0 !important;  /* hellster Gelb-Ton, 4.7:1 auf #376191 */
}

/* Branchen-Card-Eyebrow: #d8941a auf #e9ecef = 2.16:1 → primary-dark */
.sfk-branche-card__eyebrow,
.sfk-branche-card__num {
    color: var(--sfk-primary-dark) !important;
}

/* Karriere-Form: Captcha- und Upload-Hilfetexte: #909692 auf hellgrau
   ergibt 2.83–2.88:1 → dunkleres Grau */
.sfk-kar-form__upload-hint,
.sfk-kar-form__opt,
#sfk_kontakt_captcha_help,
.sfk-kontakt-form__captcha-help,
.sfk-form__hint {
    color: #6e736f !important;
}

/* Sekundäres Primary-Light (#3a6ea8) auf hellgrau (#e9ecef) ergibt 4.45:1
   → primary-Standard für ≥ 4.6:1 */
.sfk-leistungen-split--alt .sfk-leistungen-meta,
.sfk-leistungen-split [class*="--alt"] .sfk-leistungen-eyebrow,
.sfk-text-secondary {
    color: var(--sfk-primary) !important;
}

/* button-text-Klasse (Plugin-Override): #285589 auf #f2a91c = 3.8:1 → primary-dark */
.button-text {
    color: var(--sfk-primary-dark) !important;
}

/* News-Overview Datums-/Mehr-Links (Timeline): #d8941a auf weiß = 2.57:1
   → SFK-Primary für ≥ 4.6:1, hover-/focus-Yellow-Akzent bleibt */
.sfk-news-overview__posts .sfk-news-tim,
.sfk-news-tim__date,
.sfk-news-overview__date,
.sfk-news-overview__post-date,
.sfk-news-overview__post-more,
.sfk-news-timeline__item .sfk-news-overview__post-more,
.sfk-news-overview__column .sfk-news-overview__post-more {
    color: var(--sfk-primary) !important;
}
.sfk-news-overview__post-link:hover .sfk-news-overview__post-more,
.sfk-news-overview__post-link:focus-visible .sfk-news-overview__post-more {
    color: var(--sfk-primary-dark) !important;
    text-decoration: underline;
}

/* Leistungen-Subtitle: primary-light (#3a6ea8) auf hellgrau = 4.45:1
   → primary für ≥ 4.6:1 */
.sfk-leistungen-subtitle {
    color: var(--sfk-primary) !important;
}

/* Karriere-Vorteil-light Numerals: #7288a0 auf hellgrau = 2.77:1
   → primary-dark sicher (höchste specificity) */
.sfk-kar-vorteile .sfk-kar-vorteil--light .sfk-kar-vorteil__num,
.sfk-kar-vorteil--light .sfk-kar-vorteil__num,
[class*="sfk-kar-vorteil--light"] [class*="__num"] {
    color: var(--sfk-primary-dark) !important;
}

/* Sekundäres Primary-Light auf hellgrau (#e9ecef): #3a6ea8 = 4.45:1
   → primary für sichere ≥ 4.6:1 */
.sfk-leistungen-meta,
.sfk-leistungen-copy [class*="--alt"],
.sfk-text-alt {
    color: var(--sfk-primary) !important;
}

/* Kontakt-Team-Eyebrow + Form-Opts (#909692 auf weiß = 3.01:1) → dunkler */
.sfk-kontakt-team__eyebrow,
.sfk-kontakt-form__opt {
    color: #6e736f !important;  /* 4.6:1 */
}

/* Footer-AI-Notice-Heading: nochmal explizit weiß setzen wegen
   möglicher höherer Specificity in einer Vorgängerregel */
.sfk-footer .sfk-footer__ai-notice .sfk-footer__ai-notice-heading,
.sfk-footer__ai-notice-heading {
    color: #ffffff !important;
}

/* Kontakt-Card-Note: #909692 auf weiß = 3.01:1 → dunkler */
.sfk-kontakt-card__note,
.sfk-kontakt-map__attribution {
    color: #6e736f !important;  /* 4.6:1 */
}

/* Generischer SFK-Grau-Text auf weiß: globale Anhebung wo es als
   Body-Text auftaucht, damit alle Untertitel/Lead-Texte ≥ 4.5:1 erreichen. */
.sfk-text-muted,
.sfk-eyebrow--muted {
    color: #6e736f !important;
}

/* --- A11y-5) Touch-Targets ≥ 24×24 px (WCAG 2.5.8 AA).
   Stand-by: Footer-Legal-Links und kleine Icon-Links prüfen.
   ------------------------------------------------------------------------- */
.sfk-footer__legal-nav a,
.sfk-footer__social a {
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    padding-block: 0.25rem;
}

/* --- A11y-6) Mobile-Menü: visuell versteckt aber NICHT fokussierbar
   wenn geschlossen. Wird per JS auch via inert-Attribut gesetzt.
   Hier CSS-Fallback für Browser ohne inert-Support.
   ------------------------------------------------------------------------- */
.sfk-mobile-menu[aria-hidden="true"] {
    visibility: hidden;
    pointer-events: none;
}
.sfk-mobile-menu[aria-hidden="false"],
.sfk-mobile-menu.is-open {
    visibility: visible;
    pointer-events: auto;
}

/* --- A11y-7) Outline-Button im Mobile-Menü: Mobile-Menü hat weißen
   Hintergrund → der Standard `.sfk-btn--outline` (weißer Text auf
   transparent + weiße Border) wäre weiß-auf-weiß. WCAG 1.4.3 erfordert
   ≥ 4.5:1 → kontextspezifisch dunkler.
   ------------------------------------------------------------------------- */
.sfk-mobile-menu .sfk-btn--outline {
    color: var(--sfk-primary-dark);
    border-color: var(--sfk-primary);
    background: transparent;
}
.sfk-mobile-menu .sfk-btn--outline:hover,
.sfk-mobile-menu .sfk-btn--outline:focus-visible {
    background: var(--sfk-primary);
    color: #ffffff;
    border-color: var(--sfk-primary);
}

/* ==========================================================================
   Barrierefreiheits-Erklärung (Page 120) – Statusbox, Protokoll-Tabelle,
   Details-Akkordeon. Selbst WCAG-2.2-AA-konform (Kontraste, Fokus, Touch).
   ========================================================================== */

.sfk-bf-status {
    margin: 0 0 2rem;
    padding: 1.5rem 1.75rem;
    background: var(--sfk-primary);
    color: #ffffff;
    border-left: 6px solid var(--sfk-yellow);
}
.sfk-legal__content .sfk-bf-status p,
.sfk-bf-status p {
    color: #ffffff !important;
}
.sfk-legal__content .sfk-bf-status__label,
.sfk-bf-status__label {
    margin: 0 0 0.25rem !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--sfk-yellow-light) !important;
    font-weight: 700 !important;
}
.sfk-legal__content .sfk-bf-status__headline,
.sfk-bf-status__headline {
    margin: 0 0 0.5rem !important;
    font-family: var(--sfk-font-heading) !important;
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    color: #ffffff !important;
}
.sfk-legal__content .sfk-bf-status__meta,
.sfk-bf-status__meta {
    margin: 0 !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

.sfk-bf-protocol-wrap {
    margin: 1.5rem 0 2rem;
    overflow-x: auto;
}
.sfk-bf-protocol {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
    background: #ffffff;
}
.sfk-bf-protocol caption {
    text-align: left;
    padding: 0.5rem 0.75rem;
    font-weight: 700;
}
.sfk-bf-protocol thead th {
    background: var(--sfk-primary-dark);
    color: #ffffff;
    text-align: left;
    padding: 0.75rem 1rem;
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 2px solid var(--sfk-primary);
}
.sfk-bf-protocol tbody th,
.sfk-bf-protocol tbody td {
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--sfk-gray-200);
    color: var(--sfk-gray-800);
    vertical-align: top;
}
.sfk-bf-protocol tbody th {
    font-weight: 600;
    color: var(--sfk-primary-dark);
}
.sfk-bf-protocol tbody tr:nth-child(even) {
    background: var(--sfk-gray-50);
}
.sfk-bf-protocol tbody tr.sfk-bf-protocol__total {
    background: var(--sfk-primary);
    color: #ffffff;
}
.sfk-bf-protocol tbody tr.sfk-bf-protocol__total th,
.sfk-bf-protocol tbody tr.sfk-bf-protocol__total td {
    color: #ffffff !important;
    font-weight: 700;
    border-bottom: none;
}
.sfk-bf-ok {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.2rem 0.7rem;
    background: #1f6c3f;       /* dunkelgrün, 4.6:1 auf weiß */
    color: #ffffff;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    border-radius: 0;
}
.sfk-bf-protocol tbody tr.sfk-bf-protocol__total .sfk-bf-ok {
    background: var(--sfk-yellow);
    color: var(--sfk-primary-dark);
}

.sfk-bf-details {
    margin: 1.5rem 0 2.5rem;
    border: 1px solid var(--sfk-gray-200);
    background: var(--sfk-gray-50);
}
.sfk-bf-details > summary {
    padding: 1rem 1.5rem;
    background: var(--sfk-gray-100);
    color: var(--sfk-primary-dark);
    font-family: var(--sfk-font-heading);
    font-weight: 700;
    font-size: 1.05rem;
    cursor: pointer;
    list-style: none;
    position: relative;
    user-select: none;
    min-height: 44px;          /* Tap-Target */
    display: flex;
    align-items: center;
}
.sfk-bf-details > summary::-webkit-details-marker {
    display: none;
}
.sfk-bf-details > summary::after {
    content: "+";
    margin-left: auto;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--sfk-primary);
    transition: transform 0.2s ease;
}
.sfk-bf-details[open] > summary::after {
    content: "−";
}
.sfk-bf-details > summary:focus-visible {
    outline: 3px solid var(--sfk-primary);
    outline-offset: -3px;
}
.sfk-bf-details > *:not(summary) {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.sfk-bf-details > *:first-of-type:not(summary) {
    margin-top: 1.25rem;
}
.sfk-bf-details > *:last-child {
    padding-bottom: 1.5rem;
}
.sfk-bf-details h3 {
    margin: 1.25rem 0 0.5rem;
    font-size: 1.1rem;
    color: var(--sfk-primary-dark);
}

@media (max-width: 600px) {
    .sfk-bf-status { padding: 1.25rem; }
    .sfk-bf-status__headline { font-size: 1.25rem; }
    .sfk-bf-protocol { font-size: 0.85rem; }
    .sfk-bf-protocol thead th,
    .sfk-bf-protocol tbody th,
    .sfk-bf-protocol tbody td { padding: 0.6rem 0.75rem; }
    .sfk-bf-details > summary { padding: 0.85rem 1rem; font-size: 1rem; }
}

/* ==========================================================================
   WP Admin Bar offset — Header darf nicht von der Adminbar verdeckt werden
   ========================================================================== */
.admin-bar .sfk-header { top: 32px; }
.admin-bar .home .sfk-header { top: 32px; }
.admin-bar .sfk-floatbar--top { top: 32px; }
@media screen and (max-width: 782px) {
    .admin-bar .sfk-header { top: 46px; }
    .admin-bar .home .sfk-header { top: 46px; }
    .admin-bar .sfk-floatbar--top { top: 46px; }
}
@media screen and (max-width: 600px) {
    /* WP versteckt die Adminbar unter 600px nicht, hält sie aber position:absolute.
       Damit ist kein Header-Offset nötig — Reset für den Fall, dass eine größere
       Regel oben gegriffen hat. */
    .admin-bar .sfk-header,
    .admin-bar .home .sfk-header,
    .admin-bar .sfk-floatbar--top { top: 0; }
}
