/*
Theme Name:        Diemelsturm
Theme URI:         https://github.com/janbagti/Diemelsturm
Author:            Jan Bastke
Description:       Dunkles, minimalistisches Brutalismus-Theme im Stil der ModulWrapping-Website. Harte Kanten, Rasterflächen, Akzentfarbe (Standard #DFFF00) und lokal eingebundene Schriften (Archivo Black / Space Grotesk). Liefert nur das Design — alle Inhalte werden weiterhin in WordPress gepflegt (Seiten, Beiträge, Menüs, Widgets, Customizer). Enthält Block-Stile und Block-Vorlagen für Abschnitte, Kennzahlen, Feature-Raster, Vergleich und Laufband.
Version:           1.0.0
Requires at least: 6.2
Tested up to:      7.1
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       diemelsturm
Tags:              dark, one-column, two-columns, right-sidebar, custom-logo, custom-menu, custom-colors, editor-style, featured-images, block-styles, block-patterns, wide-blocks, sticky-post, threaded-comments, translation-ready
*/

/* ============================================================
   Tokens
   ============================================================ */

:root {
    --c-bg:        #000000;
    --c-bg-alt:    #0a0a0a;
    --c-surface:   #121212;
    --c-border:    #1f1f1f;
    --c-text:      #f4f4f4;
    --c-muted:     #8a8a8a;
    --c-accent:    #DFFF00;
    --c-on-accent: #000000;
    --c-danger:    #ff4d4d;

    --f-display: 'Archivo Black', 'Space Grotesk', system-ui, sans-serif;
    --f-body:    'Space Grotesk', system-ui, -apple-system, sans-serif;

    --container: 1280px;
    --content:   760px;
    --gutter:    clamp(1.25rem, 4vw, 4rem);
    --header-h:  92px;
}

/* ============================================================
   Basis
   ============================================================ */

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

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
    margin: 0;
    font-family: var(--f-body);
    font-size: 1.05rem;
    background: var(--c-bg);
    color: var(--c-text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

a { color: var(--c-accent); text-decoration: none; transition: color .15s ease; }
a:hover, a:focus { color: var(--c-text); }
.entry-content a:not(.wp-block-button__link):not(.btn) {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

img, video, iframe, embed, object { max-width: 100%; }
img { height: auto; display: block; }

:focus-visible {
    outline: 2px solid var(--c-accent);
    outline-offset: 3px;
}

::selection { background: var(--c-accent); color: var(--c-on-accent); }

p { margin: 0 0 1.5rem; }

hr, .wp-block-separator {
    border: 0;
    border-top: 1px solid var(--c-border);
    margin: 3rem auto;
}
.wp-block-separator.is-style-wide { max-width: var(--container); }
.wp-block-separator.has-background, .wp-block-separator.has-text-color { border-top-width: 2px; }

/* ============================================================
   Typografie
   ============================================================ */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--f-display);
    font-weight: 400;
    text-transform: uppercase;
    margin: 0 0 1rem;
    color: inherit;
}

h1 { font-size: clamp(2.5rem, 7vw, 6rem); line-height: .95; letter-spacing: -0.02em; }
h2 { font-size: clamp(2rem, 5vw, 4rem); line-height: 1; letter-spacing: -0.02em; }
h3 { font-size: clamp(1.15rem, 1.6vw, 1.4rem); letter-spacing: .05em; line-height: 1.2; margin-bottom: .75rem; }
h4 { font-size: 1.05rem; letter-spacing: .05em; margin-bottom: .5rem; }
h5, h6 { font-size: .9rem; letter-spacing: .12em; }

.entry-content h2 { margin-top: 4rem; }
.entry-content h3 { margin-top: 2.5rem; }
.entry-content > :first-child { margin-top: 0; }

.h-accent, .has-accent-color, mark {
    color: var(--c-accent);
}
mark { background: transparent; }

strong, b { font-weight: 700; }

blockquote, .wp-block-quote {
    margin: 2.5rem auto;
    padding: 0 0 0 1.5rem;
    border-left: 3px solid var(--c-accent);
    font-size: 1.25rem;
}
blockquote p:last-of-type { margin-bottom: .75rem; }
blockquote cite, .wp-block-quote cite, .wp-block-pullquote cite {
    display: block;
    font-style: normal;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .15em;
    color: var(--c-muted);
}

.wp-block-pullquote {
    border: 0;
    border-top: 2px solid var(--c-accent);
    border-bottom: 2px solid var(--c-accent);
    padding: 3rem 1rem;
    text-align: center;
}
.wp-block-pullquote blockquote { border: 0; padding: 0; margin: 0; }
.wp-block-pullquote p {
    font-family: var(--f-display);
    text-transform: uppercase;
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    line-height: 1.1;
}

code, kbd, pre, samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .92em;
}
code { background: var(--c-surface); padding: .15em .4em; border: 1px solid var(--c-border); }
pre, .wp-block-code {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    padding: 1.5rem;
    overflow-x: auto;
    color: var(--c-text);
}
pre code { background: none; border: 0; padding: 0; }

ul, ol { padding-left: 1.4rem; margin: 0 0 1.5rem; }
li { margin-bottom: .35rem; }
.entry-content ul li::marker { color: var(--c-accent); }
.entry-content ol li::marker { color: var(--c-accent); font-family: var(--f-display); }

dl dt { font-family: var(--f-display); text-transform: uppercase; letter-spacing: .05em; }
dl dd { margin: 0 0 1rem; color: var(--c-muted); }

table, .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 2rem;
    font-size: .98rem;
}
th, td { border: 1px solid var(--c-border); padding: .85rem 1rem; text-align: left; }
th {
    font-family: var(--f-display);
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .8rem;
    color: var(--c-accent);
    background: var(--c-bg-alt);
}
.wp-block-table.is-style-stripes { border-bottom: 0; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--c-surface); }
.wp-block-table thead { border-bottom: 2px solid var(--c-accent); }
.wp-block-table figcaption, figcaption, .wp-element-caption {
    color: var(--c-muted);
    font-size: .85rem;
    margin-top: .75rem;
    text-align: left;
}

/* ============================================================
   Hilfsklassen
   ============================================================ */

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}
.screen-reader-text:focus {
    background: var(--c-accent);
    color: var(--c-on-accent);
    clip: auto !important;
    clip-path: none;
    display: block;
    font-family: var(--f-display);
    height: auto;
    left: 1rem;
    padding: 1rem 1.5rem;
    text-transform: uppercase;
    top: 1rem;
    width: auto;
    z-index: 100000;
}

.container {
    max-width: var(--container);
    margin-left: auto;
    margin-right: auto;
}

.eyebrow {
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--c-muted);
    margin: 0 0 2rem;
    border-left: 3px solid var(--c-accent);
    padding-left: .85rem;
    line-height: 1.4;
}

.section-number {
    font-family: var(--f-display);
    font-size: .8rem;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--c-accent);
    margin: 0 0 1rem;
}

.lead {
    font-size: clamp(1.05rem, 1.3vw, 1.25rem);
    color: var(--c-muted);
    max-width: 38em;
}

/* ============================================================
   Buttons
   ============================================================ */

.btn,
.wp-block-button__link,
.wp-element-button,
button[type="submit"],
input[type="submit"],
input[type="button"],
input[type="reset"] {
    display: inline-block;
    padding: 1.1rem 2rem;
    font-family: var(--f-display);
    font-size: .95rem;
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .1em;
    text-decoration: none;
    text-align: center;
    background: var(--c-accent);
    color: var(--c-on-accent);
    border: 2px solid var(--c-accent);
    border-radius: 0;
    box-shadow: 6px 6px 0 var(--c-text);
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover, .btn:focus,
.wp-block-button__link:hover, .wp-block-button__link:focus,
.wp-element-button:hover, .wp-element-button:focus,
button[type="submit"]:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover {
    transform: translate(-2px, -2px);
    box-shadow: 8px 8px 0 var(--c-text);
    color: var(--c-on-accent);
}

/* Umrandet / Ghost */
.btn-ghost,
.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button__link.is-style-outline {
    background: transparent;
    color: var(--c-text);
    border: 2px solid var(--c-text);
    box-shadow: none;
}
.btn-ghost:hover, .btn-ghost:focus,
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus {
    background: transparent;
    color: var(--c-accent);
    border-color: var(--c-accent);
    box-shadow: none;
}

/* Flach (ohne Schatten) */
.wp-block-button.is-style-flach > .wp-block-button__link { box-shadow: none; }
.wp-block-button.is-style-flach > .wp-block-button__link:hover { box-shadow: none; }

/* Text-Link mit Pfeil */
.wp-block-button.is-style-pfeil > .wp-block-button__link {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    color: var(--c-text);
    padding-left: 0;
    padding-right: 0;
}
.wp-block-button.is-style-pfeil > .wp-block-button__link::after { content: ' →'; }
.wp-block-button.is-style-pfeil > .wp-block-button__link:hover { color: var(--c-accent); transform: none; }

.wp-block-buttons { gap: 1rem; margin-bottom: 2rem; }

.hero-cta { display: flex; gap: 1rem; flex-wrap: wrap; }

/* ============================================================
   Formulare (generisch — greift auch bei CF7, Ninja Forms, WPForms …)
   ============================================================ */

label {
    display: block;
    font-family: var(--f-display);
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .15em;
    color: var(--c-muted);
    margin-bottom: .5rem;
}
label input[type="checkbox"], label input[type="radio"] { margin-right: .5rem; }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="time"],
select,
textarea {
    width: 100%;
    background: var(--c-surface);
    color: var(--c-text);
    border: 1px solid var(--c-border);
    border-radius: 0;
    padding: .85rem 1rem;
    font-family: var(--f-body);
    font-size: 1rem;
    line-height: 1.4;
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
}
select {
    background-image: linear-gradient(45deg, transparent 50%, var(--c-accent) 50%), linear-gradient(135deg, var(--c-accent) 50%, transparent 50%);
    background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%;
    background-size: 6px 6px;
    background-repeat: no-repeat;
    padding-right: 2.5rem;
}
textarea { min-height: 140px; resize: vertical; }
input:focus, select:focus, textarea:focus {
    outline: 2px solid var(--c-accent);
    outline-offset: -1px;
    border-color: var(--c-accent);
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--c-accent); }
::placeholder { color: var(--c-muted); opacity: 1; }

fieldset { border: 1px solid var(--c-border); padding: 1.5rem; margin: 0 0 1.5rem; }
legend { font-family: var(--f-display); text-transform: uppercase; letter-spacing: .1em; padding: 0 .5rem; }

/* Plugin-Formulare: Fehlermeldungen & Bestätigungen */
.wpcf7-not-valid-tip, .nf-error-msg, .wpforms-error, .gfield_validation_message {
    color: var(--c-danger) !important;
    font-size: .85rem;
}
.wpcf7 form .wpcf7-response-output,
.nf-response-msg,
.wpforms-confirmation-container-full,
.gform_confirmation_message {
    color: var(--c-text);
    background: var(--c-surface);
    border: 0 !important;
    border-left: 3px solid var(--c-accent) !important;
    padding: 1rem 1.25rem;
    margin: 1.5rem 0 0;
}
.nf-form-cont .nf-field-element input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.nf-form-cont .nf-field-element textarea,
.nf-form-cont .nf-field-element select {
    background: var(--c-surface) !important;
    color: var(--c-text) !important;
    border: 1px solid var(--c-border) !important;
    border-radius: 0 !important;
}
.nf-form-cont .ninja-forms-req-symbol { color: var(--c-accent) !important; }

/* Suchformular */
.search-form { display: flex; gap: 0; max-width: 560px; }
.search-form label { flex: 1; margin: 0; }
.search-form .search-field { border-right: 0; }
.search-form .search-submit { box-shadow: none; padding: .85rem 1.25rem; }
.search-form .search-submit:hover { box-shadow: none; transform: none; }

/* ============================================================
   Header
   ============================================================ */

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(10, 10, 10, .85);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--c-border);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

.site-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.25rem var(--gutter);
    max-width: calc(var(--container) + 2 * var(--gutter));
    margin: 0 auto;
    position: relative;
}
.header-full .site-header-inner { max-width: none; }

.site-branding {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
    color: var(--c-text);
}
.site-branding:hover { color: var(--c-text); }

.custom-logo-link { display: inline-flex; flex-shrink: 0; }
.custom-logo {
    width: auto;
    max-height: 52px;
    object-fit: contain;
}

.site-title-wrap {
    display: flex;
    flex-direction: column;
    line-height: 1;
    font-family: var(--f-display);
    letter-spacing: .02em;
}
.site-title {
    font-size: .82rem;
    color: var(--c-text);
    text-transform: uppercase;
    margin: 0;
    line-height: 1;
}
.site-description {
    font-size: .65rem;
    color: var(--c-muted);
    margin: .25rem 0 0;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.site-title-wrap a { color: inherit; }

/* Navigation */
.main-navigation { display: flex; align-items: center; gap: 2rem; }

.main-navigation ul { list-style: none; margin: 0; padding: 0; }

.main-navigation .menu {
    display: flex;
    align-items: center;
    gap: 2rem;
    font-size: .9rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.main-navigation li { position: relative; margin: 0; }
.main-navigation a {
    color: var(--c-text);
    display: inline-block;
    padding: .35rem 0;
}
.main-navigation a:hover,
.main-navigation a:focus,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a,
.main-navigation .current-page-ancestor > a {
    color: var(--c-accent);
}

/* Untermenüs */
.main-navigation .sub-menu {
    position: absolute;
    top: 100%;
    left: -1.25rem;
    min-width: 240px;
    background: var(--c-bg);
    border: 1px solid var(--c-border);
    border-top: 2px solid var(--c-accent);
    padding: .5rem 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s;
    z-index: 10;
}
.main-navigation .sub-menu .sub-menu { top: -.5rem; left: 100%; }
.main-navigation li:hover > .sub-menu,
.main-navigation li:focus-within > .sub-menu,
.main-navigation li.is-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: none;
}
.main-navigation .sub-menu a {
    display: block;
    padding: .65rem 1.25rem;
    font-size: .8rem;
}
.main-navigation .menu-item-has-children > a::after,
.main-navigation .page_item_has_children > a::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-left: .5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
}
.sub-menu-toggle { display: none; }

/* Header-Button (Customizer) */
.main-navigation a.header-cta,
.main-navigation a.header-cta:hover,
.main-navigation a.header-cta:focus { color: var(--c-on-accent); padding: .75rem 1.25rem; }
.header-cta.btn { padding: .75rem 1.25rem; font-size: .8rem; box-shadow: 4px 4px 0 var(--c-text); }
.header-cta.btn:hover { box-shadow: 6px 6px 0 var(--c-text); }

.nav-toggle {
    display: none;
    background: transparent;
    border: 1px solid var(--c-border);
    width: 44px;
    height: 44px;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    padding: 0;
    flex-shrink: 0;
}
.nav-toggle span {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--c-text);
    transition: transform .2s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================================
   Hero (Startseite, per Customizer)
   ============================================================ */

.hero {
    padding: clamp(3rem, 8vw, 7rem) var(--gutter) 0;
    border-bottom: 1px solid var(--c-border);
    position: relative;
    background: var(--c-bg);
    overflow: hidden;
}
.hero-grid {
    max-width: var(--container);
    margin: 0 auto;
    position: relative;
    padding-bottom: clamp(3rem, 6vw, 5rem);
    min-height: clamp(420px, 60vh, 720px);
    display: flex;
    align-items: center;
}
.hero-text { position: relative; z-index: 2; max-width: 38rem; }
.hero-text h1 { margin-bottom: 2rem; }
.hero-text .lead { margin-bottom: 2.5rem; text-shadow: 0 2px 20px rgba(0, 0, 0, .9); }

.hero-visual {
    position: absolute;
    top: 50%;
    right: -8%;
    width: 85%;
    transform: translateY(-50%) scale(1.2);
    transform-origin: center right;
    z-index: 1;
    pointer-events: none;
}
.hero-visual img { width: 100%; opacity: .85; }

.hero-stats-row {
    max-width: var(--container);
    margin: 0 auto;
    padding-bottom: clamp(3rem, 5vw, 4rem);
    position: relative;
    z-index: 2;
}
.hero-stats {
    display: grid;
    grid-template-columns: repeat(var(--stats-cols, 4), minmax(0, 1fr));
    border: 1px solid var(--c-border);
    background: rgba(0, 0, 0, .6);
}
.stat {
    padding: 1.75rem 1.5rem;
    border: 1px solid var(--c-border);
    margin: -1px 0 0 -1px;
}
.stat-num {
    display: block;
    font-family: var(--f-display);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    color: var(--c-accent);
    line-height: 1;
    margin-bottom: .5rem;
}
.stat-label {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .15em;
    color: var(--c-muted);
}
.hero .ticker { margin: 0 calc(-1 * var(--gutter)); }

/* ============================================================
   Laufband (Ticker)
   ============================================================ */

.ticker, .wp-block-group.is-style-laufband {
    background: var(--c-accent);
    color: var(--c-on-accent);
    overflow: hidden;
    padding: 1rem 0;
}
.ticker-track {
    display: flex;
    gap: 2rem;
    width: max-content;
    white-space: nowrap;
    font-family: var(--f-display);
    font-size: 1.1rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    animation: ds-ticker 28s linear infinite;
}
.ticker-track span { display: inline-block; }
.ticker:hover .ticker-track { animation-play-state: paused; }

/* Laufband als Block-Stil: der erste Absatz läuft durch */
.wp-block-group.is-style-laufband > p,
.wp-block-group.is-style-laufband > .wp-block-group__inner-container > p {
    display: inline-block;
    width: max-content;
    max-width: none !important;
    margin: 0;
    padding-left: 100%;
    white-space: nowrap;
    font-family: var(--f-display);
    font-size: 1.1rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    animation: ds-ticker-single 22s linear infinite;
}

@keyframes ds-ticker {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
@keyframes ds-ticker-single {
    from { transform: translateX(0); }
    to   { transform: translateX(-100%); }
}

/* ============================================================
   Seitenaufbau & Inhalt
   ============================================================ */

.site-main { display: block; }

.page-header,
.entry-header {
    padding: clamp(3.5rem, 8vw, 7rem) var(--gutter) clamp(2.5rem, 5vw, 4rem);
    border-bottom: 1px solid var(--c-border);
}
.page-header-inner,
.entry-header-inner {
    max-width: var(--container);
    margin: 0 auto;
}
.page-title,
.entry-title {
    font-size: clamp(2.2rem, 6vw, 5rem);
    line-height: .95;
    letter-spacing: -0.02em;
    max-width: 18em;
    margin: 0;
    overflow-wrap: anywhere;
    hyphens: auto;
}
.archive-description { color: var(--c-muted); max-width: 60ch; margin-top: 1.5rem; }
.archive-description p:last-child { margin-bottom: 0; }

.entry-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.5rem;
    margin-top: 2rem;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .15em;
    color: var(--c-muted);
}
.entry-meta a { color: var(--c-muted); }
.entry-meta a:hover { color: var(--c-accent); }

.post-thumbnail-hero {
    border-bottom: 1px solid var(--c-border);
    background: var(--c-bg-alt);
}
.post-thumbnail-hero img {
    width: 100%;
    max-height: 70vh;
    object-fit: cover;
}

.content-area {
    padding: clamp(3rem, 7vw, 6rem) var(--gutter);
}
.content-area.no-padding-top { padding-top: 0; }

.has-sidebar .content-wrap {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}

/* Breiten-Logik für Block-Inhalte */
.entry-content > *,
.entry-footer,
.post-navigation,
.comments-area,
.page-links {
    max-width: var(--content);
    margin-left: auto;
    margin-right: auto;
}
.entry-content > .alignwide { max-width: var(--container); }
.entry-content > .alignfull {
    max-width: none;
    width: calc(100% + 2 * var(--gutter));
    margin-left: calc(-1 * var(--gutter));
    margin-right: calc(-1 * var(--gutter));
}
.has-sidebar .entry-content > .alignfull,
.has-sidebar .entry-content > .alignwide {
    width: auto;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}
.entry-content > .alignleft { float: left; margin: .35rem 2rem 1.5rem 0; max-width: 50%; }
.entry-content > .alignright { float: right; margin: .35rem 0 1.5rem 2rem; max-width: 50%; }
.entry-content > .aligncenter { margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin-right: 2rem; }
.alignright { float: right; margin-left: 2rem; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.entry-content::after { content: ''; display: table; clear: both; }

.entry-content { font-size: 1.05rem; }
.entry-content > p:first-child.has-large-font-size,
.entry-content .is-style-lead {
    font-size: 1.25rem;
}

/* Vorlage "Vollbreite / Leinwand": keine Innenabstände,
   Inhalte werden über Abschnitts-Blöcke gestaltet */
.template-canvas .content-area { padding: 0; }
.template-canvas .entry-content > *:not(.alignfull):not(.alignwide) {
    max-width: min(var(--content), calc(100% - 2 * var(--gutter)));
}
.template-canvas .entry-content > .alignwide {
    max-width: min(var(--container), calc(100% - 2 * var(--gutter)));
}
.template-canvas .entry-content > .alignfull {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}
.template-canvas .entry-content > :not(.alignfull):first-child { margin-top: clamp(3rem, 7vw, 6rem); }
.template-canvas .entry-content > :not(.alignfull):last-child { margin-bottom: clamp(3rem, 7vw, 6rem); }

/* Blöcke in Gruppen/Spalten */
.is-layout-constrained > .alignfull { max-width: none; }

/* Medien */
.wp-block-image img, .wp-block-cover, .wp-block-media-text__media img { border-radius: 0; }
.wp-block-image.is-style-rahmen img {
    border: 1px solid var(--c-border);
    box-shadow: 8px 8px 0 var(--c-accent);
}
.wp-block-image.is-style-graustufen img { filter: grayscale(1) contrast(1.1); transition: filter .3s ease; }
.wp-block-image.is-style-graustufen img:hover { filter: none; }
.wp-block-gallery { gap: 1px !important; }

.wp-block-embed iframe { width: 100%; }

.wp-block-cover { padding: clamp(2rem, 6vw, 5rem) var(--gutter); }
.wp-block-cover h1, .wp-block-cover h2 { max-width: 18em; }

/* ============================================================
   Block-Stile (im Editor unter "Stile" wählbar)
   ============================================================ */

/* Gruppe: Abschnitt */
.wp-block-group.is-style-abschnitt,
.wp-block-group.is-style-abschnitt-alt,
.wp-block-group.is-style-abschnitt-akzent {
    padding: clamp(4rem, 9vw, 8rem) var(--gutter);
    border-bottom: 1px solid var(--c-border);
}
.wp-block-group.is-style-abschnitt-alt { background-color: var(--c-bg-alt); }
.wp-block-group.is-style-abschnitt-akzent {
    background-color: var(--c-accent);
    color: var(--c-on-accent);
    border-bottom-color: var(--c-accent);
}
.wp-block-group.is-style-abschnitt-akzent a { color: var(--c-on-accent); }
.wp-block-group.is-style-abschnitt-akzent .wp-block-button__link {
    background: var(--c-on-accent);
    color: var(--c-accent);
    border-color: var(--c-on-accent);
    box-shadow: 6px 6px 0 rgba(0, 0, 0, .35);
}

/* Gruppe: Akzent-Box (gelbe Karte) */
.wp-block-group.is-style-akzent-box,
.wp-block-column.is-style-akzent-box {
    background: var(--c-accent);
    color: var(--c-on-accent);
    padding: 2.5rem;
}
.is-style-akzent-box a { color: var(--c-on-accent); text-decoration: underline; }
.is-style-akzent-box ul { list-style: none; padding: 0; }
.is-style-akzent-box ul li {
    padding: .75rem 0;
    margin: 0;
    border-top: 1px solid rgba(0, 0, 0, .2);
    font-size: .95rem;
}
.is-style-akzent-box ul li:last-child { border-bottom: 1px solid rgba(0, 0, 0, .2); }
.is-style-akzent-box .section-number,
.is-style-akzent-box .is-style-abschnittsnummer { color: var(--c-on-accent); }

/* Gruppe: Karte (dunkle Fläche mit Rahmen) */
.wp-block-group.is-style-karte,
.wp-block-column.is-style-karte {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    padding: 2rem;
}

/* Gruppe: Versetzter Schatten (wie Kontaktbox) */
.wp-block-group.is-style-schattenbox,
.wp-block-column.is-style-schattenbox {
    background: var(--c-bg-alt);
    border: 1px solid var(--c-border);
    padding: clamp(1.5rem, 3vw, 2.5rem);
    box-shadow: -6px -6px 0 var(--c-accent);
    margin-left: 6px;
    margin-top: 6px;
}

/* Spalten: Raster mit durchgehenden Linien */
.wp-block-columns.is-style-raster {
    gap: 0 !important;
    border: 1px solid var(--c-border);
}
.wp-block-columns.is-style-raster > .wp-block-column {
    padding: 2rem;
    border: 1px solid var(--c-border);
    margin: -1px 0 0 -1px !important;
    flex-basis: 0;
    transition: background .2s ease;
}
.wp-block-columns.is-style-raster-flaeche {
    gap: 0 !important;
    border: 1px solid var(--c-border);
}
.wp-block-columns.is-style-raster-flaeche > .wp-block-column {
    padding: 2rem;
    border: 1px solid var(--c-border);
    margin: -1px 0 0 -1px !important;
    background: var(--c-surface);
    transition: background .2s ease;
}
.wp-block-columns.is-style-raster-flaeche > .wp-block-column:hover { background: var(--c-bg-alt); }
.wp-block-columns.is-style-raster > .wp-block-column > :last-child,
.wp-block-columns.is-style-raster-flaeche > .wp-block-column > :last-child { margin-bottom: 0; }
.wp-block-columns.is-style-raster p,
.wp-block-columns.is-style-raster-flaeche p { color: var(--c-muted); font-size: .95rem; }
.wp-block-columns.is-style-raster .has-text-color,
.wp-block-columns.is-style-raster-flaeche .has-text-color { color: inherit; }
.wp-block-columns.is-style-raster > .wp-block-column.has-background p,
.wp-block-columns.is-style-raster-flaeche > .wp-block-column.has-background p,
.wp-block-columns .is-style-akzent-box p { color: inherit; }

/* Überschrift / Absatz: Abschnittsnummer ("01 / Produkt") */
.is-style-abschnittsnummer {
    font-family: var(--f-display) !important;
    font-size: .8rem !important;
    letter-spacing: .25em !important;
    text-transform: uppercase;
    color: var(--c-accent);
    line-height: 1.4 !important;
    margin-bottom: 1rem !important;
    margin-top: 0 !important;
}

/* Absatz: Dachzeile mit Akzentlinie */
p.is-style-dachzeile,
.wp-block-columns[class*="is-style-raster"] p.is-style-dachzeile {
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--c-muted);
    border-left: 3px solid var(--c-accent);
    padding-left: .85rem;
    line-height: 1.4;
}

/* Absatz: Einleitung */
p.is-style-lead { font-size: 1.25rem; line-height: 1.55; }
p.is-style-gedaempft { color: var(--c-muted); }

/* Absatz: Kennzahl ("−70%") */
p.is-style-kennzahl,
.wp-block-columns[class*="is-style-raster"] p.is-style-kennzahl {
    font-family: var(--f-display);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    color: var(--c-accent);
    line-height: 1;
    margin-bottom: .5rem;
}
.is-style-akzent-box p.is-style-kennzahl,
.is-style-abschnitt-akzent p.is-style-kennzahl,
.wp-block-columns .is-style-akzent-box p.is-style-kennzahl { color: var(--c-on-accent); }

/* Überschrift: Riesig */
.wp-block-heading.is-style-riesig {
    font-size: clamp(2.5rem, 7vw, 6rem);
    line-height: .95;
}

/* Listen */
ul.is-style-pfeil-liste,
.wp-block-list.is-style-pfeil-liste {
    list-style: none;
    padding: 0;
    margin-top: 2rem;
}
ul.is-style-pfeil-liste li {
    padding: .9rem 0 .9rem 2rem;
    margin: 0;
    border-bottom: 1px solid var(--c-border);
    position: relative;
}
ul.is-style-pfeil-liste li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--c-accent);
    font-weight: 700;
}

ul.is-style-linien-liste,
ol.is-style-linien-liste {
    list-style: none;
    padding: 0;
}
.is-style-linien-liste li {
    padding: .85rem 0;
    margin: 0;
    border-top: 1px solid currentColor;
}
.is-style-linien-liste li:last-child { border-bottom: 1px solid currentColor; }
.is-style-linien-liste li { border-color: color-mix(in srgb, currentColor 30%, transparent); }

/* Abschnittskopf (Abstand unter Überschriftengruppe) */
.section-header { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

/* ============================================================
   Beitragslisten (Blog / Archiv / Suche)
   ============================================================ */

.posts-grid {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border: 1px solid var(--c-border);
}
.has-sidebar .posts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.post-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--c-border);
    margin: -1px 0 0 -1px;
    background: var(--c-surface);
    transition: background .2s ease;
    min-width: 0;
}
.post-card:hover { background: var(--c-bg-alt); }
.post-card.sticky { box-shadow: inset 0 3px 0 var(--c-accent); }
.post-card-thumb {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-bg);
}
.post-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.post-card:hover .post-card-thumb img { transform: scale(1.03); }
.post-card-body { padding: 2rem; display: flex; flex-direction: column; flex: 1; }
.post-card-meta {
    font-family: var(--f-display);
    font-size: .75rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--c-accent);
    margin-bottom: 1.25rem;
}
.post-card-title { font-size: clamp(1.1rem, 1.5vw, 1.35rem); margin-bottom: 1rem; overflow-wrap: anywhere; }
.post-card-title a { color: var(--c-text); }
.post-card-title a:hover { color: var(--c-accent); }
.post-card-excerpt { color: var(--c-muted); font-size: .95rem; flex: 1; }
.post-card-excerpt p { margin-bottom: 1rem; }
.more-link, .post-card-more {
    font-family: var(--f-display);
    font-size: .8rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--c-text);
    margin-top: auto;
}
.more-link:hover, .post-card-more:hover { color: var(--c-accent); }

/* Pagination */
.pagination, .posts-pagination, .comments-pagination {
    max-width: var(--container);
    margin: 3rem auto 0;
}
.nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
}
.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 48px;
    padding: 0 1rem;
    border: 1px solid var(--c-border);
    margin: 0 -1px 0 0;
    font-family: var(--f-display);
    font-size: .85rem;
    color: var(--c-text);
    text-transform: uppercase;
    letter-spacing: .1em;
}
.pagination .page-numbers.current {
    background: var(--c-accent);
    color: var(--c-on-accent);
    border-color: var(--c-accent);
}
.pagination a.page-numbers:hover { color: var(--c-accent); }

.page-links {
    font-family: var(--f-display);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: .85rem;
    margin-top: 2rem;
}
.page-links > span:not(.page-links-title), .page-links a { display: inline-block; padding: .25rem .6rem; border: 1px solid var(--c-border); }

/* Beitragsnavigation */
.post-navigation { margin-top: 4rem; }
.post-navigation .nav-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--c-border);
}
.post-navigation .nav-previous, .post-navigation .nav-next {
    border: 1px solid var(--c-border);
    margin: -1px 0 0 -1px;
}
.post-navigation .nav-next { text-align: right; grid-column: 2; }
.post-navigation a { display: block; padding: 1.5rem; color: var(--c-text); }
.post-navigation a:hover { background: var(--c-bg-alt); color: var(--c-accent); }
.post-navigation .meta-nav {
    display: block;
    font-size: .75rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--c-accent);
    margin-bottom: .5rem;
}
.post-navigation .post-title { font-family: var(--f-display); text-transform: uppercase; }

.entry-footer {
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--c-border);
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--c-muted);
}
.tags-links a, .cat-links a {
    display: inline-block;
    padding: .25rem .6rem;
    border: 1px solid var(--c-border);
    color: var(--c-text);
    margin: 0 .25rem .5rem 0;
}
.tags-links a:hover, .cat-links a:hover { border-color: var(--c-accent); color: var(--c-accent); }

/* Keine Ergebnisse / 404 */
.no-results, .error-404 { max-width: var(--container); margin: 0 auto; }
.no-results .page-content, .error-404 .page-content { max-width: 60ch; }
.error-404 .big-code {
    font-family: var(--f-display);
    font-size: clamp(6rem, 22vw, 16rem);
    line-height: .85;
    color: var(--c-accent);
    margin: 0 0 2rem;
}

/* ============================================================
   Sidebar & Widgets
   ============================================================ */

.widget-area .widget {
    border: 1px solid var(--c-border);
    padding: 1.75rem;
    margin-bottom: -1px;
    background: var(--c-bg-alt);
}
.widget-title, .widget .wp-block-heading, .widgettitle {
    font-family: var(--f-display);
    font-size: .8rem;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--c-accent);
    margin-bottom: 1.25rem;
}
.widget ul { list-style: none; padding: 0; margin: 0; }
.widget li { padding: .6rem 0; border-bottom: 1px solid var(--c-border); margin: 0; }
.widget li:last-child { border-bottom: 0; }
.widget li a { color: var(--c-text); }
.widget li a:hover { color: var(--c-accent); }
.widget li .children, .widget li .sub-menu { padding-left: 1rem; margin-top: .6rem; }
.widget select { margin-top: .25rem; }
.widget .wp-block-search__inside-wrapper { gap: 0; }
.wp-block-search__button { box-shadow: none; padding: .85rem 1.25rem; margin-left: 0; }
.wp-block-search__button:hover { box-shadow: none; transform: none; }
.wp-block-search__input { border: 1px solid var(--c-border); }
.wp-block-latest-posts__post-date { display: block; font-size: .75rem; color: var(--c-muted); text-transform: uppercase; letter-spacing: .12em; }
.wp-block-tag-cloud a, .tagcloud a {
    display: inline-block;
    font-size: .8rem !important;
    padding: .25rem .6rem;
    border: 1px solid var(--c-border);
    color: var(--c-text);
    margin: 0 .25rem .5rem 0;
    text-transform: uppercase;
    letter-spacing: .1em;
}
.wp-calendar-table caption { color: var(--c-muted); margin-bottom: .5rem; }

/* ============================================================
   Kommentare
   ============================================================ */

.comments-area { margin-top: 5rem; padding-top: 3rem; border-top: 2px solid var(--c-accent); }
.comments-title, .comment-reply-title { font-size: clamp(1.3rem, 2.5vw, 1.8rem); margin-bottom: 2rem; }
.comment-list { list-style: none; padding: 0; margin: 0 0 3rem; }
.comment-list .children { list-style: none; padding-left: clamp(1rem, 4vw, 3rem); }
.comment-body {
    border: 1px solid var(--c-border);
    padding: 1.5rem;
    margin-bottom: 1rem;
    background: var(--c-bg-alt);
}
.comment-author { display: flex; align-items: center; gap: .75rem; font-family: var(--f-display); text-transform: uppercase; font-size: .9rem; }
.comment-author .avatar { border: 1px solid var(--c-border); }
.comment-author .says { display: none; }
.comment-metadata { font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; margin: .5rem 0 1rem; }
.comment-metadata a { color: var(--c-muted); }
.comment-content { font-size: .98rem; }
.reply a { font-family: var(--f-display); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.bypostauthor > .comment-body { border-left: 3px solid var(--c-accent); }
.comment-form p { margin-bottom: 1.25rem; }
.comment-form-cookies-consent { display: flex; gap: .5rem; align-items: flex-start; }
.comment-form-cookies-consent label { text-transform: none; letter-spacing: 0; font-family: var(--f-body); font-size: .9rem; }
.comment-notes, .logged-in-as { color: var(--c-muted); font-size: .9rem; }

/* ============================================================
   Footer
   ============================================================ */

.site-footer {
    padding: clamp(3rem, 5vw, 5rem) var(--gutter) 2rem;
    background: var(--c-bg-alt);
    border-top: 2px solid var(--c-accent);
    font-size: .92rem;
    color: var(--c-muted);
}
.site-footer a { color: var(--c-muted); }
.site-footer a:hover { color: var(--c-accent); }

.footer-grid {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 2rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--c-border);
}
.footer-grid .widget { border: 0; background: transparent; padding: 0; margin: 0 0 1.5rem; }
.footer-grid .widget li { border: 0; padding: .2rem 0; }
.footer-grid .widget li a { color: var(--c-muted); }
.footer-grid .widget li a:hover { color: var(--c-accent); }
.footer-grid p:last-child { margin-bottom: 0; }

.footer-logo {
    font-family: var(--f-display);
    color: var(--c-text);
    font-size: .9rem;
    line-height: 1.4;
    letter-spacing: .05em;
    text-transform: uppercase;
    margin: 0;
}
.footer-logo .footer-tagline { color: var(--c-muted); letter-spacing: .18em; font-size: .75rem; }
.footer-logo img { max-height: 64px; width: auto; margin-bottom: 1rem; }

.footer-bottom {
    max-width: var(--container);
    margin: 2rem auto 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem 2rem;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .15em;
}
.footer-bottom p { margin: 0; }
.footer-menu { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; padding: 0; }
.footer-menu li { margin: 0; }

/* ============================================================
   Farbpalette (Editor-Klassen)
   ============================================================ */

.has-akzent-color         { color: var(--c-accent) !important; }
.has-akzent-background-color { background-color: var(--c-accent) !important; color: var(--c-on-accent); }
.has-schwarz-color        { color: var(--c-bg) !important; }
.has-schwarz-background-color { background-color: var(--c-bg) !important; }
.has-flaeche-color        { color: var(--c-bg-alt) !important; }
.has-flaeche-background-color { background-color: var(--c-bg-alt) !important; }
.has-karte-color          { color: var(--c-surface) !important; }
.has-karte-background-color { background-color: var(--c-surface) !important; }
.has-linie-color          { color: var(--c-border) !important; }
.has-linie-background-color { background-color: var(--c-border) !important; }
.has-text-color.has-hell-color, .has-hell-color { color: var(--c-text) !important; }
.has-hell-background-color { background-color: var(--c-text) !important; color: var(--c-bg); }
.has-gedaempft-color      { color: var(--c-muted) !important; }
.has-gedaempft-background-color { background-color: var(--c-muted) !important; }

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 1100px) {
    .posts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .has-sidebar .content-wrap { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
    .nav-toggle { display: inline-flex; }
    .main-navigation {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 1.5rem;
        background: var(--c-bg);
        padding: 1.5rem var(--gutter) 2rem;
        border-bottom: 1px solid var(--c-border);
        max-height: calc(100vh - var(--header-h));
        overflow-y: auto;
    }
    .main-navigation.is-open { display: flex; }
    .main-navigation .menu { flex-direction: column; align-items: stretch; gap: 0; }
    .main-navigation .menu > li { border-bottom: 1px solid var(--c-border); }
    .main-navigation a { padding: .9rem 0; }
    .main-navigation .menu-item-has-children,
    .main-navigation .page_item_has_children { display: flex; flex-wrap: wrap; align-items: center; }
    .main-navigation .menu-item-has-children > a,
    .main-navigation .page_item_has_children > a { flex: 1; }
    .main-navigation .menu-item-has-children > a::after,
    .main-navigation .page_item_has_children > a::after { display: none; }
    .sub-menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        background: transparent;
        border: 1px solid var(--c-border);
        color: var(--c-text);
        cursor: pointer;
        padding: 0;
    }
    .sub-menu-toggle::before {
        content: '';
        width: 8px;
        height: 8px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: translateY(-2px) rotate(45deg);
        transition: transform .2s ease;
    }
    .sub-menu-toggle[aria-expanded="true"]::before { transform: translateY(2px) rotate(-135deg); }
    .main-navigation .sub-menu,
    .main-navigation .sub-menu .sub-menu {
        position: static;
        flex-basis: 100%;
        min-width: 0;
        border: 0;
        border-left: 2px solid var(--c-accent);
        padding: 0 0 .75rem 1rem;
        margin-bottom: .5rem;
        opacity: 1;
        visibility: visible;
        transform: none;
        display: none;
        background: transparent;
    }
    .main-navigation li:hover > .sub-menu,
    .main-navigation li:focus-within > .sub-menu { display: none; }
    .main-navigation li.is-open > .sub-menu { display: block; }
    .main-navigation .sub-menu a { padding: .6rem 0; }
    .header-cta.btn { align-self: flex-start; }

    .hero-grid { min-height: auto; flex-direction: column; align-items: flex-start; }
    .hero-text { max-width: 100%; }
    .hero-visual {
        position: relative;
        top: auto;
        right: auto;
        width: 110%;
        margin: 2rem 0 0 -5%;
        transform: scale(1.1);
        transform-origin: center;
    }
    .hero-visual img { opacity: 1; }

    .footer-grid { grid-template-columns: 1fr 1fr; }
    .hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .wp-block-columns.is-style-raster,
    .wp-block-columns.is-style-raster-flaeche { flex-wrap: wrap !important; }
    .wp-block-columns.is-style-raster > .wp-block-column,
    .wp-block-columns.is-style-raster-flaeche > .wp-block-column { flex-basis: 50% !important; }
}

@media (max-width: 781px) {
    .wp-block-columns.is-style-raster:not(.is-not-stacked-on-mobile) > .wp-block-column,
    .wp-block-columns.is-style-raster-flaeche:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 50% !important; }
}

@media (max-width: 600px) {
    .posts-grid, .has-sidebar .posts-grid { grid-template-columns: 1fr; }
    .post-navigation .nav-links { grid-template-columns: 1fr; }
    .post-navigation .nav-next { grid-column: auto; }
    .entry-content > .alignleft, .entry-content > .alignright { float: none; max-width: 100%; margin: 0 0 1.5rem; }
}

@media (max-width: 560px) {
    .site-title { font-size: .7rem; }
    .site-description { font-size: .55rem; }
    .custom-logo { max-height: 40px; }

    .footer-grid { grid-template-columns: 1fr; }
    .footer-bottom { flex-direction: column; }

    .wp-block-columns.is-style-raster:not(.is-not-stacked-on-mobile) > .wp-block-column,
    .wp-block-columns.is-style-raster-flaeche:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }

    .hero-cta { flex-direction: column; align-items: stretch; }
    .hero-cta .btn, .wp-block-buttons.is-vertical .wp-block-button__link { text-align: center; }
}

/* Vorlage "Breiter Inhalt" */
.template-wide .entry-content > *:not(.alignfull),
.template-wide .entry-footer,
.template-wide .comments-area { max-width: var(--container); }
