:root {
    --fkh-color-primary: #0047F0;
    --fkh-color-secondary: #002A8F;
    --fkh-color-surface: #E6EEFF;
    --fkh-color-text-dark: #0B1320;
    --fkh-color-text-medium: #4B5563;
    --fkh-color-gray-light: #F4F6F9;
    --fkh-color-white: #FFFFFF;
}

body,
.editor-styles-wrapper {
    --fkh-primary: var(--wp--preset--color--fkh-primary, #0047F0);
    --fkh-secondary: var(--wp--preset--color--fkh-secondary, #002A8F);
    --fkh-surface: var(--wp--preset--color--fkh-surface, #E6EEFF);
    --fkh-text-dark: var(--wp--preset--color--fkh-text-dark, #0B1320);
    --fkh-text-medium: var(--wp--preset--color--fkh-text-medium, #4B5563);
    --fkh-gray-light: var(--wp--preset--color--fkh-gray-light, #F4F6F9);
    --fkh-white: var(--wp--preset--color--fkh-white, #FFFFFF);
}

/* FKH base canvas: keep the default page and editor canvas white. */
body {
    background-color: var(--fkh-color-white, #FFFFFF);
}

.editor-styles-wrapper {
    background-color: var(--fkh-color-white, #FFFFFF) !important;
}

/* FKH paragraph style: compact blue eyebrow above a heading. */
.wp-block-paragraph.is-style-fkh-dachzeile,
p.is-style-fkh-dachzeile {
    margin-bottom: 0.35rem;
    color: var(--fkh-primary);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

/* Keep an immediately following heading visually attached to the eyebrow. */
.is-style-fkh-dachzeile + :is(h1, h2, h3, h4, h5, h6),
.is-style-fkh-dachzeile + .wp-block-heading {
    margin-top: 0 !important;
}

/* FKH group style: informational note with an icon aligned to line one. */
.wp-block-group.is-style-fkh-info {
    display: grid !important;
    grid-template-columns: 1.5rem minmax(0, 1fr);
    align-items: start;
    column-gap: 0.85rem;
    row-gap: 0.5rem;
    width: 100%;
    max-width: 760px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 1rem 1.125rem;
    box-sizing: border-box;
    background-color: var(--fkh-surface);
    border-radius: 10px;
    text-align: left !important;
}

.wp-block-group.is-style-fkh-info::before {
    content: "i";
    grid-column: 1;
    grid-row: 1;
    display: grid;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    margin-top: 0.16em;
    border-radius: 50%;
    background-color: var(--fkh-primary);
    color: var(--fkh-white);
    font-family: Arial, sans-serif;
    font-size: 1rem;
    font-style: normal;
    font-weight: 700;
    line-height: 1;
}

.wp-block-group.is-style-fkh-info > * {
    grid-column: 2;
    width: 100%;
    max-width: none !important;
    min-width: 0;
    margin-block: 0;
    margin-inline: 0 !important;
    text-align: left !important;
}

.wp-block-group.is-style-fkh-info > :first-child {
    grid-row: 1;
}

.wp-block-group.is-style-fkh-info strong {
    font-weight: 700;
}

/* FKH divider block: two brand colours with a transparent diagonal joint. */
.wp-block-fkh-trenner {
    --fkh-trenner-height: 6px;
    width: 100%;
    max-width: 100%;
    margin: 2rem auto 2rem 0;
    padding: 0;
}

.wp-block-fkh-trenner.is-length-short {
    width: 50%;
}

.wp-block-fkh-trenner.is-length-80 {
    width: 80%;
}

.wp-block-fkh-trenner.is-length-30 {
    width: 30%;
}

.wp-block-fkh-trenner.is-thickness-thin {
    --fkh-trenner-height: 4px;
}

.wp-block-fkh-trenner.is-thickness-standard {
    --fkh-trenner-height: 6px;
}

.wp-block-fkh-trenner.is-thickness-thick {
    --fkh-trenner-height: 10px;
}

.fkh-trenner__line {
    display: block;
    position: relative;
    width: 100%;
    height: var(--fkh-trenner-height);
}

.fkh-trenner__line::before,
.fkh-trenner__line::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: calc(50% + 2.5px);
}

.fkh-trenner__line::before {
    left: 0;
    background-color: var(--fkh-primary);
    clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}

.fkh-trenner__line::after {
    right: 0;
    background-color: var(--fkh-secondary);
    clip-path: polygon(10px 0, 100% 0, 100% 100%, 0 100%);
}



/* FKH header */
.fkh-header {
    margin-block: 0 !important;
    padding-block: 24px !important;
    border-bottom: 1px solid var(--fkh-color-surface, #E6EEFF);
    box-shadow: none;
    position: relative;
    z-index: 100;
}

/* Keep navigation flyouts above overlapping page cards and hero content. */
.fkh-header .wp-block-navigation,
.fkh-header .wp-block-navigation__responsive-container,
.fkh-header .wp-block-navigation__submenu-container {
    z-index: 110;
}

.fkh-header .wp-block-navigation__submenu-container {
    position: absolute;
}

@media (max-width: 781px) {
    .fkh-header {
        padding-block: 16px !important;
    }
}

/* FKH training card block. Kept independent for use in columns or stacks. */
.wp-block-fkh-trainingskarte {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    width: 100%;
    max-width: none !important;
    padding: 0.9rem 1rem;
    box-sizing: border-box;
    background-color: var(--fkh-white);
    border: 1px solid var(--fkh-surface);
    border-radius: 8px;
    color: var(--fkh-text-dark);
    text-align: left;
}

.fkh-training-card__icon {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    background-color: var(--fkh-surface);
    color: var(--fkh-primary);
}

.fkh-training-card__icon svg {
    display: block;
    width: 2.25rem;
    height: 2.25rem;
}

.fkh-training-card__content {
    min-width: 0;
}

.wp-block-fkh-trainingskarte .fkh-training-card__eyebrow,
.wp-block-fkh-trainingskarte .fkh-training-card__primary,
.wp-block-fkh-trainingskarte .fkh-training-card__secondary {
    max-width: none;
    margin: 0;
    text-align: left;
}

.wp-block-fkh-trainingskarte .fkh-training-card__eyebrow {
    color: var(--fkh-primary);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.wp-block-fkh-trainingskarte .fkh-training-card__primary {
    margin-top: 0.25rem;
    color: var(--fkh-text-dark);
    font-size: 1.125rem;
    font-weight: 700;
    font-variation-settings: "wght" 700;
    line-height: 1.35;
}

.wp-block-fkh-trainingskarte .fkh-training-card__secondary {
    margin-top: 0.15rem;
    color: var(--fkh-text-medium);
    font-size: 0.9375rem;
    line-height: 1.4;
}

.wp-block-fkh-trainingskarte .fkh-training-card__secondary:empty {
    display: none;
}

@media (max-width: 480px) {
    .wp-block-fkh-trainingskarte {
        grid-template-columns: 3.25rem minmax(0, 1fr);
        gap: 0.8rem;
        padding: 0.8rem;
    }

    .fkh-training-card__icon {
        width: 3.25rem;
        height: 3.25rem;
    }

    .fkh-training-card__icon svg {
        width: 1.85rem;
        height: 1.85rem;
    }
}

/* FKH footer */
.fkh-footer a {
    color: inherit;
    text-decoration: none;
}

.fkh-footer a:hover,
.fkh-footer a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.fkh-footer-logo img {
    filter: brightness(0) invert(1);
}

.fkh-footer-separator {
    opacity: 0.28;
}

@media (max-width: 781px) {
    .fkh-footer {
        padding-top: 44px !important;
    }
}

/* FKH standard page template */
.fkh-page {
    color: var(--fkh-color-text-dark, #0B1320);
}

/* Full-bleed hero. */
.fkh-page-hero-wrap {
    width: 100vw !important;
    max-width: none !important;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin: 0 !important;
}

.fkh-page-hero-wrap > .wp-block-cover,
.fkh-page-hero {
    width: 100% !important;
    max-width: none !important;
}

/* Shorter hero: still prominent, but no longer dominates the page. */
.fkh-page-hero {
    height: clamp(300px, 30vw, 420px) !important;
    min-height: 0 !important;
    overflow: hidden;
}

.fkh-page-hero .wp-block-cover__image-background,
.fkh-page-hero img.wp-block-cover__image-background {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

/* FKH primary-blue overlay at 50% plus a subtle blur. */
.fkh-page-hero .wp-block-cover__background {
    background: rgba(0, 71, 240, 0.50) !important;
    opacity: 1 !important;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.fkh-page-hero .wp-block-cover__inner-container {
    position: relative;
    z-index: 2;
    width: 100%;
}

/* Page title centred in the hero. */
.fkh-page-title {
    max-width: 1040px;
    margin-inline: auto !important;
    text-align: center;
    text-wrap: balance;
    text-shadow: 0 2px 20px rgba(0, 19, 64, 0.18);
}

/* White content card overlaps the hero and provides a broad working canvas. */
.fkh-page-content-wrap {
    position: relative;
    z-index: 10;
    width: calc(100% - 48px);
    max-width: 1040px !important;
    margin: -64px auto 0 !important;
    padding: 56px 56px 88px !important;
    box-sizing: border-box;
    background: var(--fkh-color-white, #FFFFFF);
    border-radius: 16px 16px 0 0;
}

.fkh-page-content {
    width: 100%;
    max-width: 1040px !important;
    margin-inline: auto;
    color: var(--fkh-color-text-medium, #4B5563);
}


/* FKH reading typography */
.fkh-page-content :where(strong, b) {
    font-weight: 700;
    font-variation-settings: "wght" 700;
}

.fkh-page-content p:not([class*="-font-size"]):not(.is-style-fkh-dachzeile):not(.fkh-training-card__eyebrow):not(.fkh-training-card__primary):not(.fkh-training-card__secondary):not(.fkh-contact-card__position):not(.fkh-contact-card__name) {
    font-size: 1.125rem;
    line-height: 1.65;
    letter-spacing: 0;
}

.fkh-page-content :where(ul, ol):not([class*="-font-size"]),
.fkh-page-content :where(ul, ol):not([class*="-font-size"]) li {
    font-size: 1.125rem;
    line-height: 1.65;
}

.fkh-page-content :where(h2) {
    line-height: 1.2;
}

.fkh-page-content :where(h3, h4) {
    line-height: 1.3;
}

@media (max-width: 781px) {
    .fkh-page-content p:not([class*="-font-size"]):not(.is-style-fkh-dachzeile):not(.fkh-training-card__eyebrow):not(.fkh-training-card__primary):not(.fkh-training-card__secondary):not(.fkh-contact-card__position):not(.fkh-contact-card__name),
    .fkh-page-content :where(ul, ol):not([class*="-font-size"]),
    .fkh-page-content :where(ul, ol):not([class*="-font-size"]) li {
        font-size: 1.0625rem;
        line-height: 1.65;
    }
}

/* Keep ordinary prose comfortably readable while allowing wide content to use the card. */
.fkh-page-content > :where(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, pre):not(.alignwide):not(.alignfull) {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.fkh-page-content > :where(.alignwide, figure, .wp-block-image, .wp-block-table, .wp-block-columns, .wp-block-group) {
    max-width: 100%;
}

.fkh-page-content :where(h2, h3, h4, h5, h6) {
    color: var(--fkh-color-text-dark, #0B1320);
}

@media (max-width: 781px) {
    .fkh-page-hero {
        height: clamp(260px, 62vw, 340px) !important;
        min-height: 0 !important;
        padding: 28px 24px !important;
    }

    .fkh-page-content-wrap {
        width: calc(100% - 32px);
        margin-top: -32px !important;
        padding: 36px 24px 64px !important;
        border-radius: 12px 12px 0 0;
    }
}

/* FKH contact card block. */
.wp-block-fkh-ansprechpartner {
    display: grid;
    grid-template-columns: clamp(4.5rem, 18%, 7.5rem) minmax(0, 1fr);
    align-items: center;
    gap: clamp(1rem, 3vw, 2rem);
    width: 100%;
    max-width: none !important;
    padding: clamp(1rem, 3vw, 2rem);
    box-sizing: border-box;
    background-color: var(--fkh-white);
    border: 1px solid var(--fkh-surface);
    border-radius: 8px;
    color: var(--fkh-text-dark);
    text-align: left;
}

.fkh-contact-card__visual {
    display: grid;
    place-items: center;
    width: 100%;
    max-width: 7.5rem;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 50%;
    background-color: var(--fkh-surface);
}

.fkh-contact-card__visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fkh-contact-card__initials {
    color: var(--fkh-text-medium);
    font-size: clamp(1.5rem, 5vw, 2.5rem);
    font-weight: 700;
    font-variation-settings: "wght" 700;
    line-height: 1;
}

.fkh-contact-card__content {
    min-width: 0;
}

.wp-block-fkh-ansprechpartner .fkh-contact-card__position,
.wp-block-fkh-ansprechpartner .fkh-contact-card__name {
    max-width: none;
    margin: 0;
    text-align: left;
}

.wp-block-fkh-ansprechpartner .fkh-contact-card__position {
    color: var(--fkh-primary);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.wp-block-fkh-ansprechpartner .fkh-contact-card__name {
    margin-top: 0.3rem;
    color: var(--fkh-text-dark);
    font-size: clamp(1.25rem, 3vw, 1.6rem);
    font-weight: 700;
    font-variation-settings: "wght" 700;
    line-height: 1.25;
}

.fkh-contact-card__detail {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.8rem;
}

.fkh-contact-card__detail-icon {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background-color: var(--fkh-surface);
    color: var(--fkh-primary);
}

.fkh-contact-card__detail-icon svg {
    display: block;
    width: 1rem;
    height: 1rem;
}

/* Draw the envelope shell and flap as an outline instead of a solid square. */
.fkh-contact-card__detail-icon path[d^="M3 5h18"] {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linejoin: round;
}

.fkh-contact-card__detail-text {
    min-width: 0;
    color: var(--fkh-text-medium);
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.4;
    overflow-wrap: anywhere;
    text-align: left;
    text-decoration: none;
}

a.fkh-contact-card__detail-text:hover,
a.fkh-contact-card__detail-text:focus-visible {
    color: var(--fkh-primary);
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

@media (max-width: 480px) {
    .wp-block-fkh-ansprechpartner {
        grid-template-columns: 4rem minmax(0, 1fr);
        align-items: start;
        gap: 0.9rem;
        padding: 1rem;
    }

    .fkh-contact-card__detail {
        grid-template-columns: 1.75rem minmax(0, 1fr);
        gap: 0.6rem;
    }

    .fkh-contact-card__detail-icon {
        width: 1.75rem;
        height: 1.75rem;
    }
}


/* FKH compact page template: no image hero, just a strong title band. */
.fkh-page-banner {
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 36px 24px 60px;
    box-sizing: border-box;
}

.fkh-page-banner-title {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto !important;
    text-align: center;
    text-wrap: balance;
    color: var(--fkh-color-white, #FFFFFF);
}

.fkh-page-compact-content-wrap {
    margin-top: -40px !important;
}

@media (max-width: 781px) {
    .fkh-page-banner {
        min-height: 165px;
        padding: 28px 20px 48px;
    }

    .fkh-page-compact-content-wrap {
        margin-top: -24px !important;
    }
}
