img[src*='.svg'] {
    width: 100% !important;
    height: auto !important;
}
/*
Theme Name: Custom Theme
Theme URI: https://hannes-weber.de/custom-theme
Author: hosthans
Author URI: https://hannes-weber.de
Description: A custom WordPress theme built from scratch.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: custom-theme
*/

/* Base */
*, *::before, *::after {
    box-sizing: border-box;
}

html, body { padding: 0; }

body {
    margin: 0;
    font-family: var(--ct-font-base, Georgia, "Times New Roman", serif);
    color: #2e2e2e;
    background: #e9e9e9;
    line-height: 1.65;
}

a {
    color: inherit;
}

strong,
b {
    font-weight: 700;
}

p strong,
p b,
.entry-content strong,
.entry-content b,
.wp-block-paragraph strong,
.wp-block-paragraph b {
    font-weight: 800 !important;
}

.site-shell {
    max-width: 1500px;
    margin: 0 auto; /* kein Außenabstand ober/unter Header/Footer */
    background: #fff;
}

/* Header / Navigation */
.site-header {
    position: static; /* header scrolls with page */
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: none;
}

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

.site-branding {
    display: flex;
    align-items: center;
    min-width: 220px;
}

.branding-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.custom-logo-link {
    display: inline-flex;
}

.custom-logo {
    max-height: 60px;
    width: auto;
}

.site-title-text {
    color: #152512;
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.main-navigation {
    margin-left: auto;
}

.menu-toggle {
    display: none;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255, 255, 255, 0.45);
    background: rgba(40, 59, 18, 0.55);
    border-radius: 10px;
    padding: 10px 8px;
    cursor: pointer;
}

.menu-toggle-bar {
    display: block;
    width: 100%;
    height: 3px;
    margin: 4px 0;
    border-radius: 99px;
    background: #f4f8ec;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.menu-toggle.is-open .menu-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.menu-toggle.is-open .menu-toggle-bar:nth-child(2) {
    opacity: 0;
}

.menu-toggle.is-open .menu-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Logo Effekte: Sichtbarkeit, Skalierung, Blur mit hoher Spezifität */
.site-header .site-branding .custom-logo {
     opacity: 1 !important;
}

body.home .site-header .site-branding .custom-logo {
     opacity: 0 !important;
}

.primary-menu {
    list-style: none;
    display: flex;
    align-items: stretch;
    margin: 0;
    padding: 0;
    background: rgba(42, 62, 20, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    overflow: hidden;
}

.primary-menu li {
    margin: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.35);
}

.primary-menu li:last-child {
    border-right: 0;
}

.primary-menu a {
    display: block;
    padding: 14px 24px;
    color: #f5f8ef;
    text-decoration: none;
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.primary-menu a:hover,
.primary-menu .current-menu-item > a,
.primary-menu .current_page_item > a {
    background: #566f31;
}

/* Hero */
.hero {
    position: relative;
    min-height: 640px;
    background: #f3f3f3 center/cover no-repeat;
}

.hero-overlay {
    min-height: inherit;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 92px;
}

.hero-brand {
    text-align: center;
    background: rgba(255, 255, 255, 0.26);
    padding: 28px 34px;
    border-radius: 2px;
}

.hero-brand .custom-logo {
    max-height: 320px;
}

.hero-brand p {
    margin: 12px 0 0;
    font-size: 1.2rem;
    color: #1d1d1d;
}

/* Main Content */
.site-content {
    padding-top: 0;
    padding-bottom: 48px;
}

.front-page-content,
.inner-page-content,
.single-post-layout,
.posts-feed {
    margin-top: 0;
}

.entry-header {
    margin-bottom: 28px;
}

.entry-title {
    margin: 0;
    color: #78943b;
    font-size: clamp(2rem, 3.2vw, 3.65rem);
    line-height: 1.08;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.entry-title a {
    text-decoration: none;
}

.entry-meta {
    margin-top: 8px;
    color: #6b6b6b;
    font-size: 1.1rem;
}

.entry-content {
    font-size: 1.05rem;
}

.entry-content p {
    margin: 0 0 1.2rem;
}

.entry-content h2,
.entry-content h3 {
    color: #78943b;
    text-transform: uppercase;
    line-height: 1.12;
    margin: 0 0 14px;
}

.entry-content .wp-block-columns {
    gap: 0;
    margin: 0;
}

.entry-content .wp-block-column {
    padding: 56px;
}

.entry-content .wp-block-column:has(> .wp-block-image) {
    padding: 0;
}

.entry-content .wp-block-image,
.entry-content .wp-block-image img {
    margin: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.entry-content .wp-block-button {
    margin-top: 26px;
}

.entry-content .wp-block-button__link {
    background: #a5af83;
    border-radius: 0;
    color: #fff;
    text-transform: none;
    font-size: 1.25rem;
    padding: 12px 34px;
}

/* Blog list */
.posts-feed {
    display: grid;
    gap: 28px;
    padding-top: 42px;
}

.post-card {
    display: grid;
    grid-template-columns: minmax(290px, 460px) 1fr;
    background: #f7f7f7;
    border: 1px solid #ececec;
    overflow: hidden;
}

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

.post-card-content {
    padding: 30px;
}

/* Single */
.single-post-layout {
    max-width: 980px;
    margin: 42px auto 0;
}

.post-thumbnail img {
    width: 100%;
    height: auto;
    margin-bottom: 24px;
}

/* Footer */
.site-footer {
    background: #f0f0f0;
    border-top: 1px solid #dddddd;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
}

.site-footer-inner {
    /* padding-top: 16px;
    padding-bottom: 16px; */
    text-align: center;
    color: #626262;
}

/* Responsive */
@media (max-width: 1080px) {
    .site-header-inner {
        min-height: 78px;
    }

    .primary-menu {
        flex-wrap: wrap;
        justify-content: center;
    }

    .primary-menu a {
        font-size: 1.1rem;
        padding: 12px 18px;
    }

    .hero {
        min-height: 420px;
    }

    .hero-brand .custom-logo {
        max-height: 180px;
    }

    .entry-content .wp-block-column {
        padding: 34px;
    }

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

@media (max-width: 960px) {
    .site-header-inner {
        flex-wrap: wrap;
        gap: 12px;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .site-branding {
        min-width: 0;
    }

    .menu-toggle {
        display: inline-block;
        margin-left: auto;
    }

    .main-navigation {
        width: 100%;
        margin-left: 0;
        display: none;
    }

    .main-navigation.is-open {
        display: block;
        animation: menuFadeIn 0.18s ease;
    }

    .primary-menu {
        flex-direction: column;
        border-radius: 12px;
    }

    .primary-menu li,
    .primary-menu li:last-child {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }

    .primary-menu li:last-child {
        border-bottom: 0;
    }

    .primary-menu a {
        font-size: 1rem;
        padding: 13px 16px;
    }
}

@keyframes menuFadeIn {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 700px) {
    .site-branding .custom-logo {
        max-height: 30px !important;
        width: auto;
        border-radius: 0;
    }
    .home-icon {
        font-size: 0.9rem;
    }
    /* Headings deutlich kleiner */
    .entry-content h1 {
        font-size: 1.2rem;
    }
    .entry-content h2 {
        font-size: 1.05rem;
    }
    .entry-content h3 {
        font-size: 0.95rem;
    }
    .entry-content h4,
    .entry-content h5,
    .entry-content h6 {
        font-size: 0.9rem;
    }
    .site-shell {
        margin: 0;
    }

    .container {
        padding-left: 14px;
        padding-right: 14px;
    }

    .entry-content .wp-block-column {
        padding: 22px;
    }
}

/* -------------------------------------------------
   Modern Theme Layer (2026)
------------------------------------------------- */

:root {
    --ct-font-base: var(--font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
    --ct-container-max: 1600px;
    --ct-container-pad-inline: 20px; /* default horizontal inner spacing for content */

    /* bild größen media blöcke */
    --media-height-lg: 600px;
    --media-height-md: 500px;
    --media-height-sm: 400px;

    --ct-bg: #eef2ea;
    --ct-surface: #ffffff;
    --ct-surface-soft: #eef4e8;
    --ct-text: #1c2617;
    --ct-muted: #4b5d45;
    --ct-border: #d5dfcc;
    --ct-primary: #6f9630;
    --ct-primary-dark: #48661d;
    --ct-accent: #95b85a;
    --ct-radius: 18px;
    --ct-shadow: 0 20px 48px rgba(25, 41, 16, 0.14);

    /* Global anpassbare Farbzonen */
    --ct-link: #3d6a17;
    --ct-link-hover: #5d8a2a;

    --ct-header-bg: transparent;
    --ct-header-border: rgba(210, 228, 185, 0.22);
    --ct-header-shadow: rgba(16, 25, 9, 0.22);
    --ct-header-fg: #f3f8ec;

    --ct-nav-bg: transparent;
    --ct-nav-border: transparent;
    --ct-nav-link: #f7fbef;
    --ct-nav-link-hover-bg: linear-gradient(120deg, #39581a 0%, #476b20 100%);
    --ct-nav-link-hover-border: rgba(255, 255, 255, 0.38);
    --ct-nav-link-active-bg-1: #7ca42b;
    --ct-nav-link-active-bg-2: #6f9630;

    --ct-footer-bg: #3d5a12;
    --ct-footer-text: rgba(255, 255, 255, 0.88);
    --ct-footer-link: #ffffff;
    --ct-footer-divider: rgba(255, 255, 255, 0.35);

    --ct-team-primary: #2f5615;
    --ct-team-accent: #5f8b36;
    --ct-team-text: #17320b;
    --ct-team-surface: #f8fbf6;
    --ct-team-muted: #52713e;
    --ct-tile-bg: #2f5615;
}

body {
    background: var(--ct-surface);
    color: var(--ct-text);
    font-family: var(--ct-font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
}

html,
body,
button,
input,
select,
textarea,
.wp-element-button,
.wp-block-button__link {
    font-family: var(--ct-font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
}

a {
    color: var(--ct-link);
}

a:hover {
    color: var(--ct-link-hover);
}

.container {
    width: min(100%, var(--ct-container-max));
    padding-left: var(--ct-container-pad-inline);
    padding-right: var(--ct-container-pad-inline);
}

.site-shell {
    width: 100%;
    max-width: var(--ct-container-max);
    margin: 0 auto; /* kein Außenabstand ober/unter Header/Footer */
    padding-left: var(--ct-container-pad-inline);
    padding-right: var(--ct-container-pad-inline);
    border-radius: 0;
    overflow: visible;
    box-shadow: none;
    background: var(--ct-surface);
    min-height: 100dvh;
}

.site-header {
    position: static; /* overridden to fixed at end of file */
    background: transparent !important;
    background-color: transparent !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: none;
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
}

/* Center main content sections (header/footer remain full-bleed) */
.site-content,
.front-page-content,
.inner-page-content,
.posts-feed,
.single-post-layout,
.entry-content {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--ct-container-max);
    padding-left: var(--ct-container-pad-inline);
    padding-right: var(--ct-container-pad-inline);
    box-sizing: border-box;
}

/* Utility: make an element full-viewport width (opt-in).
   Important: `alignfull` is constrained by default below; to force
   full-bleed add the `full-width` class (or `alignfull full-width`). */
.full-width,
.alignfull.full-width,
.wp-block-media-text.full-width {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

/* Make contact widget/blocks full-bleed as well (Contact plugin uses .ckl-contact) */
.ckl-contact,
.ckl-contact.full-width {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

/* Utility: centered text block with max width 800px
   - block is centered; paragraphs inside are left-aligned by default
*/
.text-block {
    max-width: 800px;
    width: min(100%, 800px);
    margin-inline: auto;
    padding-inline: var(--ct-container-pad-inline);
    text-align: center; /* headings/inline content centered by default */
    box-sizing: border-box;
}

.text-block p {
    text-align: left; /* paragraphs inside the centered block are left-aligned */
}

.wp-block-list.text-block {
    max-width: 800px;
    margin: 0 auto;
    list-style-position: inside;
}

/* Strong fallback: ensure any element using the helper class becomes a centered block.
   Covers paragraphs, wp-block-paragraph, wp-block-list and other variations that
   might be injected by editor/plugins. Uses !important to counteract interfering CSS. */
.text-block,
.wp-block-list.text-block,
.wp-block-paragraph.text-block,
p.text-block,
.entry-content p.text-block {
    display: block !important;
    width: min(100%, 800px) !important;
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-inline: auto !important;
    box-sizing: border-box !important;
}
/* Left-aligned variant: use when content should start at the left edge
   (keeps same max-width but is not centered). */
.text-block-left {
    max-width: 800px;
    width: 100%;
    margin-left: 0;
    margin-right: auto;
    padding-left: var(--ct-container-pad-inline);
    padding-right: var(--ct-container-pad-inline);
    text-align: left;
}

/* Fallback for paragraphs that receive the helper class directly */
p.text-block-left,
.entry-content p.text-block-left {
    display: block;
    max-width: 800px;
    width: 100%;
    margin-left: 0;
    margin-right: auto;
}

/* Remove horizontal inner padding on small screens; keep padding only on larger viewports */
@media (max-width: 900px) {
    .container,
    .site-shell,
    .site-content,
    .front-page-content,
    .inner-page-content,
    .posts-feed,

    /* Utility: Entfernt nur horizontales Padding, vertikales bleibt erhalten */
    .no-horizontal-padding {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .entry-content,
    .text-block {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}


/* Full-bleed header: stretch to viewport edges while keeping inner content centered */
.site-header {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
}

.site-header-inner {
    max-width: var(--ct-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--ct-container-pad-inline);
    padding-right: var(--ct-container-pad-inline);
}

.site-header-inner {
    min-height: 82px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.site-branding {
    display: flex;
    align-items: center;
    grid-column: 1;
    justify-self: start;
}

.branding-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: 0;
    border-radius: 0;
    text-decoration: none;
    background: transparent;
    border: 0;
    transition: transform 0.2s ease;
}

.branding-link:hover {
    transform: translateY(-1px);
}

.site-branding .custom-logo {
    max-height: 50px;
    width: auto;
    border-radius: 0;
}

.home-icon {
    font-size: 1.35rem;
    line-height: 1;
    color: var(--ct-header-fg);
}

.primary-menu {
    background: linear-gradient(120deg, #2f4714 0%, #3b581a 100%);
    border: 1px solid rgba(255, 255, 255, 0.28);
    box-shadow: 0 6px 14px rgba(9, 17, 5, 0.24);
    gap: 2px;
    border-radius: 999px;
    padding: 4px;
    justify-content: center;
}

.primary-menu li,
.primary-menu li:last-child {
    border: 0;
    margin-right: 0;
}

.primary-menu a {
    color: var(--ct-nav-link);
    border-radius: 999px;
    padding: 9px 18px;
    font-size: 0.95rem;
    font-family: var(--ct-font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
    font-weight: 700;
    background: transparent;
    border: 1px solid transparent;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.16s ease;
}

.primary-menu a:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.22);
    color: #ffffff;
    transform: translateY(-1px);
}

.primary-menu .current-menu-item > a,
.primary-menu .current_page_item > a {
    background: linear-gradient(120deg, #7ca42b 0%, #6f9630 100%);
    border-color: rgba(255, 255, 255, 0.28);
}

.main-navigation {
    grid-column: 2;
    display: flex;
    justify-content: center;
}

.header-contact {
    grid-column: 3;
    justify-self: end;
}

.header-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    text-decoration: none;
    color: #f7fbef;
    background: linear-gradient(120deg, #2f4714 0%, #3b581a 100%);
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    padding: 9px 14px;
    font-family: var(--ct-font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    box-shadow: 0 6px 14px rgba(9, 17, 5, 0.24);
    transition: transform 0.16s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.header-contact-link:hover {
    transform: translateY(-1px);
    background: linear-gradient(120deg, #39581a 0%, #476b20 100%);
    box-shadow: 0 9px 18px rgba(9, 17, 5, 0.3);
}

.header-contact-link:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.84);
    outline-offset: 2px;
}

.header-contact-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
}

.header-contact-icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
    display: block;
}


@media (max-width: 700px) {
    .site-header-inner.container {
        padding-left: 16px;
        padding-right: 16px;
    }
    .header-contact {
        margin-right: 8px;
    }
    .menu-toggle {
        margin-right: 16px;
    }
}



.menu-toggle {
    display: none;
    grid-column: 3;
    justify-self: end;
}

.menu-toggle {
    position: relative;
    width: 46px;
    height: 46px;
    padding: 0;
    border-color: rgba(241, 249, 229, 0.3);
    background: rgba(23, 38, 10, 0.52);
    border-radius: 12px;
    box-shadow: 0 6px 14px rgba(10, 17, 5, 0.3);
    transition: transform 0.15s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.menu-toggle:hover {
    transform: translateY(-1px);
    background: rgba(34, 55, 15, 0.72);
    box-shadow: 0 8px 16px rgba(19, 28, 10, 0.3);
}

.menu-toggle:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 2px;
}

.menu-toggle-bar {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 2.5px;
    margin: 0;
    border-radius: 99px;
    transform-origin: center;
    background: #f1f7e8;
    transition: transform 0.22s ease, opacity 0.2s ease;
}

.menu-toggle .menu-toggle-bar:nth-child(1) {
    transform: translate(-50%, calc(-50% - 8px));
}

.menu-toggle .menu-toggle-bar:nth-child(2) {
    transform: translate(-50%, -50%);
}

.menu-toggle .menu-toggle-bar:nth-child(3) {
    transform: translate(-50%, calc(-50% + 8px));
}

.menu-toggle.is-open .menu-toggle-bar:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
}

.menu-toggle.is-open .menu-toggle-bar:nth-child(2) {
    opacity: 0;
    transform: translate(-50%, -50%) scaleX(0.2);
}

.menu-toggle.is-open .menu-toggle-bar:nth-child(3) {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.hero {
    min-height: clamp(500px, 76vh, 880px);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: var(--hero-opacity, 1);
    transition: opacity 0.15s linear;
}

.hero.hero--no-image {
    background-image: linear-gradient(135deg, #d7dfca 0%, #ecf1e6 100%);
}

.hero-overlay {
    align-items: flex-start;
    justify-content: center;
    padding: clamp(24px, 4vw, 44px) 20px;
    background: linear-gradient(180deg, rgba(12, 20, 10, 0.25) 0%, rgba(12, 20, 10, 0.08) 42%, rgba(12, 20, 10, 0.14) 100%);
}

.hero-brand {
    max-width: 940px;
    text-align: center;
    background: rgba(255, 255, 255, 0.68);
    border-radius: var(--ct-radius);
    padding: clamp(18px, 3.8vw, 34px);
    box-shadow: var(--ct-shadow);
    margin-top: clamp(8px, 2vw, 28px);
    transform: translateY(var(--hero-brand-shift, 0px));
    opacity: var(--hero-brand-opacity, 1);
    transition: transform 0.12s linear, opacity 0.12s linear;
}

.hero-brand h1,
.hero-brand p {
    margin-left: auto;
    margin-right: auto;
}

.hero-brand p {
    color: var(--ct-muted);
}

.hero-brand .custom-logo {
    max-height: clamp(120px, 20vw, 230px);
    width: auto;
}

.site-content {
    padding-top: 0;
    padding-bottom: 0;
}

.site-content > :last-child,
.entry-content > :last-child {
    margin-bottom: 0;
}

.entry-content > :last-child,
.modern-builder-page .entry-content > :last-child,
.inner-page-content .entry-content > :last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.page-template-template-modern-builder .site-content {
    padding-top: 0;
}

.entry-title,
.entry-content h2,
.entry-content h3 {
    color: var(--ct-text);
    text-transform: none;
    letter-spacing: 0;
}

.entry-header {
    margin-bottom: 14px;
}

.entry-content {
    color: var(--ct-text);
}

.entry-content > .alignfull,
.entry-content > .wp-block-media-text.alignfull,
.entry-content > .alignwide,
.entry-content > .wp-block-media-text.alignwide,
.entry-content > .wp-block-media-text {
    /* Default: constrain Gutenberg blocks (including media-text/alignfull)
       to the container max width. Use `.full-width` on a block to force
       full-bleed behavior. */
    width: min(100%, var(--ct-container-max));
    max-width: var(--ct-container-max);
    margin-left: auto;
    margin-right: auto;
}

/* Keep an explicit escape hatch: if a block has `full-width` class, make it full-bleed */
.entry-content > .alignfull.full-width,
.entry-content > .wp-block-media-text.full-width,
.entry-content > .alignwide.full-width {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

.entry-content .wp-block-media-text {
    align-items: stretch;
}

/* Layout: Content constrained to --ct-container-max by default
   Header and Footer remain full-bleed. Use the utility class
   `.full-width` to make any element full-bleed.
*/
/* utility for forcing full-bleed sections: only `.full-width` should force full-bleed.
   `alignfull` is constrained by default above to `--ct-container-max`. */
.full-width {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

/* Constrain ordinary content children to the container max width.
   Do not affect .alignfull, .alignwide or .full-width elements.
*/
.site-content > *:not(.alignfull):not(.alignwide):not(.full-width),
.entry-content > *:not(.alignfull):not(.alignwide):not(.full-width),
.front-page-content > *:not(.alignfull):not(.alignwide):not(.full-width),
.inner-page-content > *:not(.alignfull):not(.alignwide):not(.full-width) {
    width: 100%;
    max-width: var(--ct-container-max);
    margin-inline: auto;
    padding-inline: var(--ct-container-pad-inline);
    box-sizing: border-box;
}

/* Also enforce container max width for direct children of .site-shell
   (this ensures top-level blocks outside .entry-content are constrained)
   Exclude header/footer and explicit `.full-width`. */
.site-shell > *:not(.site-header):not(.site-footer):not(.full-width) {
    max-width: var(--ct-container-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--ct-container-pad-inline) !important;
    padding-right: var(--ct-container-pad-inline) !important;
    box-sizing: border-box !important;
}

/* Ensure any Media&Text block anywhere (unless opted-in `.full-width`) is constrained */
.wp-block-media-text:not(.full-width) {
    width: min(100%, var(--ct-container-max)) !important;
    max-width: var(--ct-container-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.entry-content .wp-block-media-text .wp-block-media-text__media {
    height: 100%;
    margin: 0;
}

.entry-content .wp-block-media-text .wp-block-media-text__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Enforce fixed media heights (responsive) so images always crop to a predictable box. */
.entry-content .wp-block-media-text .wp-block-media-text__media {
    height: var(--media-height-lg);
    max-height: var(--media-height-lg);
    overflow: hidden;
}
.entry-content .wp-block-media-text.full-width .wp-block-media-text__media {
    /* larger visual for full-width blocks */
    height: clamp(480px, 40vh, 640px);
    max-height: none;
}

@media (max-width: 1080px) {
    .entry-content .wp-block-media-text .wp-block-media-text__media {
        height: var(--media-height-md) !important;
        max-height: var(--media-height-md) !important;
    }
    .entry-content .wp-block-media-text.full-width .wp-block-media-text__media {
        height: 420px;
    }
}

@media (max-width: 700px) {
    .entry-content .wp-block-media-text .wp-block-media-text__media {
        height: var(--media-height-sm) !important;
        max-height: var(--media-height-sm) !important;
    }
    .entry-content .wp-block-media-text.full-width .wp-block-media-text__media {
        height: 260px;
    }
    /* stacked layout: keep media height reasonable when the media stacks above text */
    .entry-content .wp-block-media-text.is-stacked .wp-block-media-text__media {
        height: var(--media-height-sm) !important;
        max-height: var(--media-height-sm) !important;
    }
}

@media (max-width: 900px) {
    .entry-content .wp-block-media-text {
        grid-template-columns: 1fr !important;
        grid-auto-rows: auto;
    }

    .entry-content .wp-block-media-text .wp-block-media-text__media,
    .entry-content .wp-block-media-text .wp-block-media-text__content {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    .entry-content .wp-block-media-text .wp-block-media-text__media {
        grid-row: 1 !important;
    }

    .entry-content .wp-block-media-text .wp-block-media-text__content {
        grid-row: 2 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        /* padding-top und padding-bottom bleiben erhalten (z.B. 2em inline style) */
    }

    /* Einheitlicher Abstand für alle Textbereiche auf kleinen Screens */
    .entry-content p,
    .entry-content h1,
    .entry-content h2,
    .entry-content h3,
    .entry-content h4,
    .entry-content h5,
    .entry-content h6,
    .entry-content ul,
    .entry-content ol {
        padding-left: 16px;
        padding-right: 16px;
    }
}

.entry-content .wp-block-button__link {
    background: linear-gradient(120deg, var(--ct-primary), var(--ct-accent));
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 600;
    padding: 0.8rem 1.3rem;
}

.posts-feed {
    gap: 24px;
}

.post-card {
    border-radius: var(--ct-radius);
    border: 1px solid var(--ct-border);
    background: var(--ct-surface);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.post-card-content {
    padding: clamp(16px, 2.5vw, 24px);
}

.single-post-layout {
    background: var(--ct-surface);
    border: 1px solid var(--ct-border);
    border-radius: var(--ct-radius);
    padding: clamp(14px, 3vw, 22px);
}

.modern-builder-page {
    max-width: 1380px;
    margin: 0 auto;
}

.modern-builder-page .entry-content > .wp-block-cover {
    width: auto;
    max-width: none;
    margin-top: 0;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    margin-bottom: 26px;
    border-radius: 0;
}

.modern-builder-page .entry-content > .wp-block-cover .wp-block-cover__image-background {
    border-radius: 0;
}

/* Fullwidth Map ohne Restabstand vor Footer */
.entry-content .fullwidth-map {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: 0 !important;
    line-height: 0;
}

.entry-content > .fullwidth-map:last-child,
.modern-builder-page .entry-content > .fullwidth-map:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.entry-content .fullwidth-map iframe {
    display: block;
    width: 100%;
    border: 0;
    margin: 0;
}

.single-post-layout .post-thumbnail img {
    border-radius: calc(var(--ct-radius) - 6px);
}

.site-footer {
    background: var(--ct-footer-bg);
    border-top: 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
}

.site-footer-inner {
    max-width: var(--ct-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--ct-container-pad-inline);
    padding-right: var(--ct-container-pad-inline);
}

/* Plugin: Custom Kachel / Team Orbit – globale Farb-Overrides */
.ckl-section {
    --ckl-green-900: var(--ct-team-primary) !important;
    --ckl-green-800: var(--ct-team-primary) !important;
    --ckl-green-700: var(--ct-team-accent) !important;
    --ckl-green-600: var(--ct-team-accent) !important;
}

.ckl-tile {
    background: linear-gradient(160deg, var(--ct-tile-bg) 0%, var(--ct-tile-bg) 78%, var(--ct-team-primary) 100%) !important;
}

.ckl-info {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.03) 0%, var(--ct-tile-bg) 38%, var(--ct-tile-bg) 100%) !important;
}

.ckl-tile::after {
    background: linear-gradient(180deg, rgba(12, 23, 6, 0.01) 20%, rgba(12, 23, 6, 0.05) 58%, rgba(12, 23, 6, 0.03) 100%) !important;
}

.ckl-tile.ckl-no-image .ckl-info {
    background: linear-gradient(165deg, var(--ct-tile-bg) 0%, var(--ct-team-primary) 100%) !important;
}

.ckl-tile.ckl-no-image::before {
    background:
        radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.18), transparent 46%),
        linear-gradient(160deg, var(--ct-tile-bg) 0%, var(--ct-tile-bg) 72%, var(--ct-team-primary) 100%) !important;
}

.ckl-teamorbit-kicker,
.ckl-teamorbit-nav,
.ckl-teamorbit-close {
    color: var(--ct-team-primary) !important;
}

.ckl-teamorbit-name,
.ckl-teamorbit-member-name,
.ckl-teamorbit-meta-value,
.ckl-teamorbit-meta-value a,
.ckl-teamorbit-details {
    color: var(--ct-team-text) !important;
}

.ckl-teamorbit-intro,
.ckl-teamorbit-role,
.ckl-teamorbit-member-role,
.ckl-teamorbit-member-hint,
.ckl-teamorbit-position,
.ckl-teamorbit-member-position,
.ckl-teamorbit-meta-label {
    color: var(--ct-team-muted) !important;
}

.ckl-teamorbit-member.is-active,
.ckl-teamorbit-dialog,
.ckl-teamorbit-meta-card {
    background: var(--ct-team-surface) !important;
}

.ckl-teamorbit-card-media,
.ckl-teamorbit-button,
.ckl-teamorbit-portrait-fallback {
    background: linear-gradient(160deg, var(--ct-team-accent) 0%, var(--ct-team-primary) 100%) !important;
}

.ckl-teamorbit-button,
.ckl-teamorbit-card-media,
.ckl-teamorbit-portrait-fallback,
.ckl-teamorbit-member,
.ckl-teamorbit-popup,
.ckl-teamorbit-dialog {
    border-color: color-mix(in srgb, var(--ct-team-primary) 24%, transparent) !important;
}

.site-footer-inner {
    color: var(--ct-footer-text);
    padding: 14px 0 10px;
    --ct-footer-inline-space: clamp(24px, 2.2vw, 48px);
}

.footer-row {
    width: 100%;
    padding-left: var(--ct-footer-inline-space);
    padding-right: var(--ct-footer-inline-space);
}

.footer-row-top {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    gap: 24px;
    /* margin-bottom: 20px; */
    position: relative;
}

.footer-row-top::before,
.footer-row-top::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2px;
    height: 44px;
    background: var(--ct-footer-divider);
    pointer-events: none;
}

.footer-row-top::before {
    left: calc(100% / 3);
}

.footer-row-top::after {
    left: calc((100% / 3) * 2);
}

.footer-col {
    min-height: 78px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding-left: 8px;
    padding-right: 8px;
}

.footer-col:not(:first-child) {
    border-left: 0;
    padding-left: 24px;
    position: relative;
}

.footer-col:not(:first-child)::before {
    content: none;
}

.footer-col-address,
.footer-col-contact {
    font-family: var(--ct-font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
    font-size: 1.08rem;
    line-height: 1.3;
}

.footer-row-top p {
    margin: 0;
}

.footer-col-address {
    align-items: center;
    text-align: center;
}

.footer-col-contact {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 20px;
    text-align: center;
    width: 100%;
    max-width: none;
    justify-self: stretch;
}

.footer-contact-lines {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.footer-social-link {
    order: -1;
    color: var(--ct-footer-link);
    text-decoration: none;
    font-size: 1.85rem;
    font-weight: 700;
    line-height: 1;
}

.footer-col-logo {
    align-items: center;
}

.footer-col-logo .custom-logo {
    max-height: 120px;
    width: auto;
}


.footer-logo-img {
    margin-top: 0;
    margin-bottom: 0;
}
/* Footer-Logo: Begrenzung der Bildgröße */
.footer-logo-img {
    max-height: 50px;
    width: auto;
    max-width: 100%;
    height: auto;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.footer-title {
    margin: 0;
    font-size: 1.2rem;
    font-family: var(--ct-font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
    font-weight: 700;
    color: var(--ct-footer-link);
}

.footer-menu {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: center;
    gap: 34px;
}

.footer-row-middle {
    padding: 8px 0 14px;
}

.footer-menu a {
    color: var(--ct-footer-link);
    display: inline-block;
    text-align: center;
    padding-left: 8px;
    padding-right: 8px;
    font-size: 1rem;
    font-family: var(--ct-font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
    font-weight: 700;
}

.footer-menu a:hover {
    opacity: 0.86;
}

.footer-row-bottom {
    border-top: 0;
    /* padding-top: 14px; */
    padding-left: var(--ct-footer-inline-space);
    padding-right: var(--ct-footer-inline-space);
    text-align: center;
    font-family: var(--ct-font-base, Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif);
    color: var(--ct-footer-link);
    position: relative;
}

.branding-link:focus-visible,
.primary-menu a:focus-visible,
.header-contact-link:focus-visible,
.menu-toggle:focus-visible,
.footer-menu a:focus-visible,
.footer-social-link:focus-visible,
.entry-content .wp-block-button__link:focus-visible {
    outline: 2px solid color-mix(in srgb, #ffffff 80%, var(--ct-primary));
    outline-offset: 2px;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .site-header {
        background: rgba(20, 30, 10, 0.85) !important;
    }
}

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

.footer-row-bottom::before {
    content: "";
    /* display: block; */
    width: min(520px, 86%);
    height: 1px;
    margin: 0 auto 14px;
    background: rgba(255, 255, 255, 0.2);
}

.footer-row-bottom p {
    margin: 0;
    text-align: center;
}

.footer-copyright {
    font-size: 1.1rem;
    margin-bottom: 4px;
}

.footer-note {
    margin-top: 2px;
    font-size: 0.98rem;
    color: rgba(255, 255, 255, 0.9);
}

.footer-support {
    margin-top: 2px;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.86);
}

/* Gutenberg helper classes for reusable patterns */
.section {
    margin-block: clamp(28px, 4.2vw, 52px);
}

.section-hero {
    margin-top: 0;
    padding: clamp(30px, 6vw, 62px) clamp(16px, 3vw, 24px);
    background: linear-gradient(140deg, #38571b 0%, #6f9630 48%, #95b85a 100%);
}

.section-hero .hero-panel {
    background: rgba(255, 255, 255, 0.96);
    border-radius: calc(var(--ct-radius) + 2px);
    box-shadow: var(--ct-shadow);
    padding: clamp(16px, 3.5vw, 30px);
}

.section-hero .eyebrow {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ct-primary-dark);
    margin-bottom: 0.5rem;
}

.cards-grid {
    gap: 18px;
}

.card {
    height: 100%;
    border: 1px solid var(--ct-border);
    border-radius: var(--ct-radius);
    background: var(--ct-surface);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
    padding: clamp(14px, 2.6vw, 20px);
}

.section-cta {
    padding: clamp(24px, 4.5vw, 40px) 20px;
    background: linear-gradient(120deg, #e1ecd2 0%, #f2f7ea 100%);
}

.section-cta .wp-block-button__link {
    background: #2e4719;
}

@media (max-width: 960px) {
    .site-shell {
        margin: 0;
        border-radius: 0;
        width: 100%;
    }

    .site-header-inner {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        padding-top: 12px;
        padding-bottom: 10px;
    }

    .site-branding {
        order: 1;
		margin-left: 20px;
    }

    .header-contact {
        order: 2;
        margin-left: auto;
    }

    .menu-toggle {
        display: inline-flex;
        order: 3;
        margin-left: 8px;
        justify-self: auto;
        grid-column: auto;
    }

    .main-navigation.is-open {
        order: 4;
        display: block;
        margin-top: 8px;
        width: 100%;
    }

    .main-navigation {
        order: 4;
        width: 100%;
        display: none;
        justify-content: initial;
        grid-column: auto;
    }

    .header-contact-label {
        display: none;
    }

    .header-contact-link {
        padding: 9px;
        min-width: 46px;
        min-height: 46px;
        justify-content: center;
        border-radius: 12px;
    }

    .primary-menu {
        border: 1px solid rgba(239, 248, 228, 0.2);
        border-radius: 16px;
        padding: 8px;
        background: rgba(20, 32, 11, 0.62);
        justify-content: flex-start;
    }

    .primary-menu a {
        border-radius: 10px;
        font-size: 1rem;
        padding: 11px 14px;
    }

    .branding-link {
        width: auto;
        height: auto;
    }

    .footer-row-top {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        grid-template-columns: 1fr;
        gap: 16px;
        text-align: center;
    }

    .footer-row-top::before,
    .footer-row-top::after {
        content: none;
    }

    .footer-col {
        width: 100%;
        min-height: 0;
        padding-left: 0;
        padding-right: 0;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .footer-col:not(:first-child) {
        border-left: 0;
        padding-left: 0;
        padding-top: 14px;
    }

    .footer-col:not(:first-child)::before {
        content: "";
        left: 50%;
        top: 0;
        transform: translateX(-50%);
        width: min(180px, 64%);
        height: 1px;
    }

    .footer-col-logo {
        align-items: center;
        order: 1;
    }

    .footer-col-contact {
        order: 3;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 10px;
        text-align: center;
    }

    .footer-col-address {
        order: 2;
        align-items: center;
        text-align: center;
    }

    .footer-contact-lines {
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .footer-social-link {
        order: 0;
    }

    .footer-menu {
        gap: 14px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .footer-menu a,
    .footer-copyright,
    .footer-note,
    .footer-support,
    .footer-col-address,
    .footer-col-contact,
    .footer-title {
        font-size: 1rem;
    }
}

@media (max-width: 700px) {
    .modern-builder-page .entry-content > .wp-block-cover {
        margin-bottom: 20px;
    }
}

/* Media-Text: Begrenzung der Breite und Bild-Cropping
   Verhindert zu breite Media-Text-Blöcke; Bilder werden gecroppt (nicht gestreckt).
*/
.entry-content > .wp-block-media-text.alignwide,
.entry-content > .wp-block-media-text.alignfull,
.entry-content > .wp-block-media-text {
    width: min(100%, var(--ct-container-max));
    max-width: var(--ct-container-max);
    margin-left: auto;
    margin-right: auto;
}

/* Ensure any media-text (not explicitly full-width) is constrained to container max
   This handles nested media-text blocks as well. */
.entry-content .wp-block-media-text:not(.alignfull) {
    width: min(100%, var(--ct-container-max));
    max-width: var(--ct-container-max);
    margin-left: auto;
    margin-right: auto;
}

.entry-content .wp-block-media-text {
    display: grid;
    grid-auto-flow: column;
    gap: clamp(12px, 2vw, 24px);
}

.entry-content .wp-block-media-text .wp-block-media-text__media {
    overflow: hidden;
    /* height: clamp(180px, 28vh, 420px); */
    min-height: 120px;
}

.entry-content .wp-block-media-text .wp-block-media-text__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Auf sehr kleinen Bildschirmen: Media-Text wieder einspaltig */
@media (max-width: 900px) {
    .entry-content .wp-block-media-text {
        grid-template-columns: 1fr !important;
    }

    .entry-content .wp-block-media-text .wp-block-media-text__media {
        height: clamp(140px, 26vh, 260px);
    }
}

/* Ende bereinigter Media-Text / Bild-Styles (keine doppelte/kommentierte Blöcke) */

/* Responsive headings
     - Use `.responsive-heading` as a wrapper, or the block editor's
         `h*.wp-block-heading.responsive-heading` class on the heading itself.
     - Keep `h1` at the theme default size; scale `h2`–`h5` for rhythm.
*/

/* h1: make largest heading (desktop + mobile overrides below) */
h1.wp-block-heading.responsive-heading,
.responsive-heading h1 {
    font-size: 42px;
    line-height: 1.06;
}

/* h2-h5 when the class is on the heading element or on a wrapper */
h2.wp-block-heading.responsive-heading,
.responsive-heading h2 {
    font-size: 30px;
    line-height: 1.12;
}

h3.wp-block-heading.responsive-heading,
.responsive-heading h3 {
    font-size: 22px;
    line-height: 1.16;
}

h4.wp-block-heading.responsive-heading,
.responsive-heading h4 {
    font-size: 18px;
    line-height: 1.3;
}

h5.wp-block-heading.responsive-heading,
.responsive-heading h5 {
    font-size: 14px;
    line-height: 1.35;
}

@media (max-width: 768px) {
    /* ensure h1 stays largest on small screens */
    h1.wp-block-heading.responsive-heading,
    .responsive-heading h1 {
        font-size: 35px;
        line-height: 1.08;
    }

    h2.wp-block-heading.responsive-heading,
    .responsive-heading h2 {
        font-size: 28px;
    }

    h3.wp-block-heading.responsive-heading,
    .responsive-heading h3 {
        font-size: 20px;
    }

    h4.wp-block-heading.responsive-heading,
    .responsive-heading h4 {
        font-size: 16px;
    }

    h5.wp-block-heading.responsive-heading,
    .responsive-heading h5 {
        font-size: 13px;
    }
}

/* -------------------------------------------------
   Text-Wrapper: `.text-block`
   - Verwende die Klasse `.text-block` an allen Text-Containern (z.B. im Template)
   - Inhalte bleiben zentriert und werden auf 800px beschränkt
   - Fullwidth/alignwide/alignfull bleiben unberührt
------------------------------------------------- */

/* Text-Wrapper: `.text-block` (duplicate declaration harmonized above) */
/* use the first `.text-block` definition near the top of the file */

/* Ensure WordPress paragraph blocks with the class `text-block` are constrained
   This covers cases where the class is applied to the block wrapper (.wp-block-paragraph)
   or directly to the <p> element. */
.wp-block-paragraph.text-block,
.wp-block-paragraph.text-block > p,
.text-block > p,
p.text-block,
.entry-content p.text-block {
    display: block;
    max-width: 800px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

/* Strong fallback: ensure any paragraph with class text-block is constrained
   even if other stylesheets (editor, plugin) try to override it. */
.entry-content p.text-block.has-text-align-center,
.entry-content p.text-block,
.has-text-align-center.text-block,
.wp-block-paragraph.text-block > p,
p.text-block {
    max-width: 800px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Convenience-Selectoren (kein Duplikat von Layout-Regeln) */
@media (max-width: 900px) {
    .text-block {
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
    }
}

@media (max-width: 900px) {
    .text-block-left {
        max-width: 100%;
        padding-left: 16px;
        padding-right: 16px;
        margin-left: 0;
        margin-right: 0;
    }
}

/* -------------------------------------------------
   Globales Zentrieren des Contents
   Diese Regel zentriert Text in allen Haupt-Content-Bereichen.
   Falls einzelne Komponenten anders ausgerichtet werden sollen,
   kann das mit spezifischeren Selektoren überschrieben werden.
------------------------------------------------- */
/* Remove global text centering to keep natural text alignment.
   Layout centering is handled by `.site-shell` and `.container`.
*/

@media (max-width: 700px) {
    .site-header-inner.container {
        padding-left: 16px;
        padding-right: 16px;
    }
    .header-contact {
        margin-right: 8px;
    }
}

/* Keep header fixed over content, full viewport width. */
.site-header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    z-index: 1200;
    background: transparent !important;
    background-color: transparent !important;
}

/* Prevent overlap with the WordPress admin bar when logged in. */
body.admin-bar .site-header {
    top: 32px;
}

@media (max-width: 782px) {
    body.admin-bar .site-header {
        top: 46px;
    }
}