/*
Theme Name: ORODU IT
Theme URI: https://orodu-it.de
Author: ORODU IT
Description: Block-Theme für orodu-it.de – IT-Betreuung, lokale KI und Samstagsseminare. Selbstgehostete Schriften, keine externen CDNs.
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: orodu-it
Tags: block-theme, full-site-editing, business, one-column
*/

/* ============================================================
   Schriften – lokal ausgeliefert, KEIN Google-CDN.
   Dateien nach assets/fonts/ hochladen (siehe INSTALL.md).
   Fällt sauber auf Systemschriften zurück, wenn sie fehlen.
   ============================================================ */
@font-face{font-family:'Archivo';src:url('assets/fonts/archivo-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Archivo';src:url('assets/fonts/archivo-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Archivo';src:url('assets/fonts/archivo-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('assets/fonts/plex-sans-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('assets/fonts/plex-sans-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Sans';src:url('assets/fonts/plex-sans-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('assets/fonts/plex-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('assets/fonts/plex-mono-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}

:root{
  --o-navy-900:#151A26;
  --o-navy-800:#1F2433;
  --o-navy-700:#2C3245;
  --o-navy-600:#3B4256;
  --o-teal:#6FB7C4;
  --o-teal-deep:#2C6E79;
  --o-teal-light:#A9D8DF;
  --o-paper:#F4F6F7;
  --o-white:#FFFFFF;
  --o-ink:#1B2030;
  --o-muted:#5C6472;
  --o-line:rgba(255,255,255,.14);
  --o-line-dark:rgba(27,32,48,.14);
  --o-display:'Archivo',system-ui,-apple-system,sans-serif;
  --o-body:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --o-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;
}

/* ---------- Grundlagen ---------- */
body{font-family:var(--o-body);color:var(--o-ink);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--o-display);font-weight:700;letter-spacing:-.022em;line-height:1.1}
a{color:inherit}
:focus-visible{outline:2.5px solid var(--o-teal);outline-offset:3px;border-radius:3px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.o-eyebrow{font-family:var(--o-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--o-teal-deep);font-weight:500}
.o-on-dark .o-eyebrow,.o-sec--navy .o-eyebrow,.o-sec--navy800 .o-eyebrow{color:var(--o-teal)}
.o-mono{font-family:var(--o-mono)}
.o-muted{color:var(--o-muted)}

/* Platzhalter-Markierung. Vor dem Livegang alle .o-ph entfernen! */
.o-ph{background:rgba(111,183,196,.16);border-bottom:1px dashed var(--o-teal-deep);padding:0 3px}

/* ---------- Sektionen ---------- */
.o-sec{padding-block:92px}
.o-sec--paper{background:var(--o-paper)}
.o-sec--navy{background:var(--o-navy-900);color:var(--o-white)}
.o-sec--navy800{background:var(--o-navy-800);color:var(--o-white)}
.o-sec--teal{background:var(--o-teal-light);color:var(--o-navy-900)}
.o-sec--navy h1,.o-sec--navy h2,.o-sec--navy h3,
.o-sec--navy800 h1,.o-sec--navy800 h2,.o-sec--navy800 h3{color:var(--o-white)}
@media(max-width:960px){.o-sec{padding-block:66px}}

/* ---------- Buttons ---------- */
.wp-block-button.o-btn--primary .wp-block-button__link,
.o-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--o-body);font-weight:600;font-size:16px;padding:14px 24px;border-radius:6px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease}
.o-btn:hover{transform:translateY(-1px)}
.o-btn--primary{background:var(--o-teal);color:var(--o-navy-900)}
.o-btn--primary:hover{background:var(--o-teal-light);color:var(--o-navy-900)}
.o-btn--ghost{border-color:var(--o-line);color:var(--o-white)}
.o-btn--ghost:hover{border-color:var(--o-teal);color:var(--o-white)}
.o-btn--dark{background:var(--o-navy-800);color:var(--o-white)}
.o-btn--dark:hover{background:var(--o-navy-700);color:var(--o-white)}
.o-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}

/* ---------- Kopfzeile ---------- */
.o-header{position:sticky;top:0;z-index:50;background:var(--o-navy-900);border-bottom:1px solid var(--o-line)}
.o-header .wp-block-site-title a{font-family:var(--o-display);font-weight:600;font-size:21px;letter-spacing:.13em;color:var(--o-white);text-decoration:none}
.o-logo{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--o-white)}
.o-logo-mark{width:34px;height:34px;border-radius:7px;background:var(--o-teal);display:grid;place-items:center;flex:none}
.o-logo-txt{font-family:var(--o-display);font-weight:600;font-size:21px;letter-spacing:.13em}
.o-logo-txt span{color:var(--o-teal);font-weight:500}
.o-header .wp-block-navigation{font-size:15.5px;font-weight:500}
.o-header .wp-block-navigation a{color:rgba(255,255,255,.82);text-decoration:none}
.o-header .wp-block-navigation a:hover{color:var(--o-teal)}
.o-header .wp-block-navigation .current-menu-item a{color:var(--o-teal)}
.o-hphone{font-family:var(--o-mono);font-size:14.5px;color:var(--o-teal-light);text-decoration:none}
@media(max-width:900px){.o-hphone{display:none}}

/* ---------- Hero ---------- */
.o-hero{background:var(--o-navy-900);color:var(--o-white);padding-block:76px 88px;position:relative;overflow:hidden}
.o-hero::after{content:"";position:absolute;right:-160px;top:-160px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(111,183,196,.13),transparent 68%);pointer-events:none}
.o-hero>.wp-block-group{position:relative;z-index:1}
.o-hero h1{font-size:clamp(38px,5vw,62px);color:var(--o-white);margin:18px 0 22px}
.o-hero h1 em{font-style:normal;color:var(--o-teal)}
.o-hero-sub{font-size:19.5px;color:rgba(255,255,255,.76);max-width:52ch}
.o-hero-note{margin-top:22px;font-size:14.5px;color:rgba(255,255,255,.5);font-family:var(--o-mono)}

/* ---------- Verfügbarkeits-Panel ---------- */
.o-status{background:var(--o-navy-800);border:1px solid var(--o-line);border-radius:12px;padding:24px}
.o-status-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--o-line)}
.o-status-title{font-family:var(--o-mono);font-size:12.5px;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.o-live{display:flex;align-items:center;gap:7px;font-family:var(--o-mono);font-size:12.5px;color:var(--o-teal)}
.o-dot{width:7px;height:7px;border-radius:50%;background:var(--o-teal);animation:o-pulse 2.4s ease-in-out infinite}
@keyframes o-pulse{0%,100%{opacity:1}50%{opacity:.28}}
.o-srow{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.o-srow:last-child{border-bottom:0;padding-bottom:0}
.o-slabel{font-size:15px;color:rgba(255,255,255,.66)}
.o-sval{font-family:var(--o-mono);font-size:15px;color:var(--o-white);font-weight:500;text-align:right}
.o-sval--ok{color:var(--o-teal)}

/* ---------- KI-Karten ---------- */
.o-card{background:var(--o-white);border:1px solid var(--o-line-dark);border-radius:12px;padding:30px 28px 32px;height:100%}
.o-card h3{font-size:21px;margin:0 0 12px}
.o-card p{color:var(--o-muted);font-size:16px}
.o-num{font-family:var(--o-mono);font-size:12.5px;color:var(--o-teal-deep);letter-spacing:.1em;margin-bottom:18px;display:block}
.o-ticks{list-style:none;padding:0;margin:18px 0 0;font-size:15.5px;color:var(--o-muted)}
.o-ticks li{padding-left:20px;position:relative;margin-bottom:7px}
.o-ticks li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:2px;background:var(--o-teal)}
.o-rule{margin-top:52px;border-top:2px solid var(--o-navy-800);padding-top:26px}
.o-rule p{font-size:17px;max-width:58ch}

/* ---------- Zielgruppen-Umschalter ---------- */
.o-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:38px}
.o-tab{font-family:var(--o-body);font-size:15.5px;font-weight:500;padding:11px 20px;border-radius:999px;border:1.5px solid var(--o-line-dark);background:transparent;color:var(--o-muted);cursor:pointer;transition:all .16s ease}
.o-tab:hover{border-color:var(--o-navy-600);color:var(--o-ink)}
.o-tab[aria-selected="true"]{background:var(--o-navy-800);border-color:var(--o-navy-800);color:var(--o-white)}
.o-aud-lead{font-size:19px;margin-bottom:34px;max-width:60ch}
.o-svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.o-svc{border:1px solid var(--o-line-dark);border-radius:12px;padding:26px 26px 28px;background:var(--o-white)}
.o-svc h3{font-size:19px;margin:0 0 9px}
.o-svc p{color:var(--o-muted);font-size:16px;margin:0}
.o-svc-tag{font-family:var(--o-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--o-teal-deep);display:block;margin-bottom:12px}
@media(max-width:960px){.o-svc-grid{grid-template-columns:1fr}}

/* ---------- Seminar-Band Startseite ---------- */
.o-sem-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:44px}
.o-sem-card{background:rgba(255,255,255,.62);border:1px solid rgba(21,26,38,.16);border-radius:12px;padding:28px 26px 30px}
.o-sem-card span.o-svc-tag{color:var(--o-teal-deep)}
.o-sem-card h3{font-size:21px;margin:0 0 10px}
.o-sem-card p{font-size:16px;color:rgba(21,26,38,.72);margin:0}
.o-sem-top{border-bottom:2px solid var(--o-navy-800);padding-bottom:44px}
.o-sec--teal .o-eyebrow{color:var(--o-teal-deep)}
.o-sem-foot{margin-top:40px;display:flex;gap:28px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.o-sem-next{font-family:var(--o-mono);font-size:15px;color:rgba(21,26,38,.72)}
@media(max-width:960px){.o-sem-cards{grid-template-columns:1fr}}

/* ---------- Ablauf-Schritte ---------- */
.o-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--o-line)}
.o-step{padding:34px 30px 34px 0;border-right:1px solid var(--o-line)}
.o-step:last-child{border-right:0}
.o-step:not(:first-child){padding-left:30px}
.o-step-n{font-family:var(--o-mono);font-size:13px;color:var(--o-teal);letter-spacing:.12em;margin-bottom:14px;display:block}
.o-step h3{font-size:20px;color:var(--o-white);margin:0 0 10px}
.o-step p{color:rgba(255,255,255,.68);font-size:16px;margin:0}
@media(max-width:960px){.o-steps{grid-template-columns:1fr}.o-step{border-right:0;border-bottom:1px solid var(--o-line);padding:28px 0}.o-step:not(:first-child){padding-left:0}}

/* ---------- Preise ---------- */
.o-preis{border:1px solid var(--o-line-dark);border-radius:12px;padding:30px 28px;height:100%}
.o-preis--feature{border:1.5px solid var(--o-navy-800);background:var(--o-paper)}
.o-preis h3{font-size:19px;margin:0 0 8px}
.o-amount{font-family:var(--o-display);font-size:34px;font-weight:700;letter-spacing:-.02em;margin:16px 0 6px;display:block}
.o-per{font-size:14.5px;color:var(--o-muted);font-family:var(--o-mono)}
.o-preis p{color:var(--o-muted);font-size:15.5px;margin-top:14px}
.o-ust{margin-top:28px;font-size:14.5px;color:var(--o-muted);border-left:2px solid var(--o-teal);padding-left:16px;max-width:70ch}

/* ---------- Kontakt ---------- */
.o-kmeta{margin-top:32px;display:grid;gap:16px}
.o-kmeta a,.o-kmeta span.o-krow{display:flex;gap:12px;align-items:baseline;text-decoration:none;color:var(--o-white);font-size:16.5px}
.o-kl{font-family:var(--o-mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);min-width:88px}
.o-formbox{background:var(--o-navy-900);border:1px solid var(--o-line);border-radius:12px;padding:30px}
.o-formbox input[type=text],.o-formbox input[type=email],.o-formbox textarea,.o-formbox select{width:100%;background:var(--o-navy-800);border:1px solid var(--o-line);border-radius:6px;padding:12px 14px;color:var(--o-white);font-family:var(--o-body);font-size:16px}
.o-formbox label{display:block;font-size:14px;font-weight:500;color:rgba(255,255,255,.8);margin-bottom:7px}
.o-formbox .wpcf7-list-item{margin:0}
.o-formbox input[type=submit],.o-formbox button[type=submit]{background:var(--o-teal);color:var(--o-navy-900);border:0;border-radius:6px;padding:14px 24px;font-family:var(--o-body);font-weight:600;font-size:16px;width:100%;cursor:pointer}

/* ---------- Fußzeile ---------- */
.o-footer{background:var(--o-navy-900);color:rgba(255,255,255,.6);border-top:1px solid var(--o-line);padding-block:44px;font-size:14.5px}
.o-footer a{text-decoration:none;color:rgba(255,255,255,.7)}
.o-footer a:hover{color:var(--o-teal)}

/* ---------- Seminarseite ---------- */
.o-facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--o-line);margin:0}
.o-fact{padding:26px 26px 30px 0;border-right:1px solid var(--o-line)}
.o-fact:not(:first-child){padding-left:26px}
.o-fact:last-child{border-right:0}
.o-fact dt{font-family:var(--o-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:9px}
.o-fact dd{margin:0;font-family:var(--o-display);font-weight:600;font-size:20px;color:var(--o-white);letter-spacing:-.01em}
.o-fact dd small{display:block;font-family:var(--o-body);font-weight:400;font-size:14.5px;color:rgba(255,255,255,.55);letter-spacing:0;margin-top:5px}
@media(max-width:960px){.o-facts{grid-template-columns:1fr 1fr}.o-fact{border-right:0;border-bottom:1px solid var(--o-line);padding:22px 0}.o-fact:not(:first-child){padding-left:0}}

.o-stufe{border:1px solid var(--o-line-dark);border-radius:12px;padding:34px 32px 36px;background:var(--o-white);height:100%}
.o-stufe--two{background:var(--o-navy-800);border-color:var(--o-navy-800);color:var(--o-white)}
.o-stufe h3{font-size:26px;margin:0 0 12px}
.o-stufe--two h3{color:var(--o-white)}
.o-stufe>p{color:var(--o-muted);font-size:17px}
.o-stufe--two>p{color:rgba(255,255,255,.75)}
.o-stufe--two .o-svc-tag{color:var(--o-teal)}
.o-stufe ul{list-style:none;padding:0;margin:24px 0 0;font-size:16px}
.o-stufe li{padding:12px 0 12px 24px;position:relative;border-top:1px solid var(--o-line-dark);color:var(--o-ink)}
.o-stufe--two li{border-top-color:rgba(255,255,255,.13);color:rgba(255,255,255,.86)}
.o-stufe li::before{content:"";position:absolute;left:0;top:20px;width:9px;height:2px;background:var(--o-teal)}
.o-stufe-foot{margin-top:26px;padding-top:20px;border-top:2px solid var(--o-teal);font-family:var(--o-mono);font-size:14.5px;color:var(--o-muted)}
.o-stufe--two .o-stufe-foot{color:rgba(255,255,255,.7)}

.o-timeline{border-top:1px solid var(--o-line-dark)}
.o-slot{display:grid;grid-template-columns:104px 1fr;gap:28px;padding:24px 0;border-bottom:1px solid var(--o-line-dark);align-items:baseline}
.o-slot .o-t{font-family:var(--o-mono);font-size:15px;color:var(--o-teal-deep);font-weight:500}
.o-slot h3{font-size:19.5px;margin:0 0 7px}
.o-slot p{color:var(--o-muted);font-size:16px;max-width:66ch;margin:0}
.o-slot--pause{background:var(--o-paper)}
.o-slot--pause h3{font-weight:500;color:var(--o-muted);font-family:var(--o-body);font-size:16.5px}
@media(max-width:960px){.o-slot{grid-template-columns:1fr;gap:6px}}

.o-dash{list-style:none;padding:0;margin:22px 0 0}
.o-dash li{padding:12px 0 12px 24px;position:relative;border-top:1px solid var(--o-line-dark);font-size:16.5px}
.o-dash li::before{content:"";position:absolute;left:0;top:20px;width:9px;height:2px;background:var(--o-teal)}

.o-nicht{border:1.5px solid var(--o-navy-800);border-radius:12px;padding:34px 34px 36px}
.o-nicht ul{list-style:none;padding:0;margin:20px 0 0}
.o-nicht li{padding:13px 0 13px 30px;position:relative;border-top:1px solid var(--o-line-dark);color:var(--o-muted);font-size:16.5px}
.o-nicht li::before{content:"\2014";position:absolute;left:0;top:13px;color:var(--o-teal-deep)}

.o-termine{width:100%;border-collapse:collapse;margin-top:8px}
.o-termine th{text-align:left;font-family:var(--o-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--o-muted);font-weight:500;padding:0 16px 14px 0;border-bottom:1px solid var(--o-line-dark)}
.o-termine td{padding:20px 16px 20px 0;border-bottom:1px solid var(--o-line-dark);font-size:16.5px;vertical-align:middle}
.o-termine td:first-child{font-family:var(--o-mono);white-space:nowrap}
.o-badge{display:inline-block;font-family:var(--o-mono);font-size:12px;letter-spacing:.06em;padding:5px 11px;border-radius:999px;white-space:nowrap}
.o-badge--frei{background:rgba(111,183,196,.2);color:var(--o-teal-deep)}
.o-badge--wenig{background:rgba(230,168,80,.22);color:#8A5B12}
.o-badge--voll{background:rgba(27,32,48,.09);color:var(--o-muted)}
.o-termine-leer{color:var(--o-muted);font-size:16.5px;border-left:2px solid var(--o-teal);padding-left:16px}
@media(max-width:760px){
  .o-termine thead{display:none}
  .o-termine tr{display:block;border-bottom:1px solid var(--o-line-dark);padding:16px 0}
  .o-termine td{display:block;border:0;padding:3px 0}
}

.o-faq{border-top:1px solid var(--o-line-dark)}
.o-faq details{border-bottom:1px solid var(--o-line-dark)}
.o-faq summary{cursor:pointer;padding:22px 0;font-family:var(--o-display);font-weight:600;font-size:18.5px;letter-spacing:-.01em;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center}
.o-faq summary::-webkit-details-marker{display:none}
.o-faq summary::after{content:"+";font-family:var(--o-mono);font-weight:400;color:var(--o-teal-deep);font-size:22px;flex:none}
.o-faq details[open] summary::after{content:"\2212"}
.o-faq details p{padding:0 0 24px;color:var(--o-muted);font-size:16.5px;max-width:74ch}

/* ---------- Einblenden beim Scrollen ---------- */
.o-reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.o-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.o-reveal{opacity:1;transform:none}}

/* ---------- Inhaltsseiten (Impressum, Datenschutz) ---------- */
.o-page-content{padding-block:72px 92px}
.o-page-content h1{font-size:clamp(32px,4vw,48px);margin-bottom:28px}
.o-page-content h2{font-size:26px;margin:44px 0 14px}
.o-page-content h3{font-size:20px;margin:32px 0 10px}
.o-page-content p,.o-page-content li{max-width:74ch}
.o-page-content ul,.o-page-content ol{padding-left:22px}

/* ---------- Core-Buttons im ORODU-Look ---------- */
.wp-block-button .wp-block-button__link{font-family:var(--o-body);font-weight:600;font-size:16px;padding:14px 24px;border-radius:6px;border:1.5px solid transparent;transition:transform .15s ease,background .15s ease,border-color .15s ease}
.wp-block-button .wp-block-button__link:hover{transform:translateY(-1px)}
.wp-block-button.o-btn--primary .wp-block-button__link{background:var(--o-teal);color:var(--o-navy-900)}
.wp-block-button.o-btn--primary .wp-block-button__link:hover{background:var(--o-teal-light);color:var(--o-navy-900)}
.wp-block-button.o-btn--ghost .wp-block-button__link{background:transparent;border-color:var(--o-line);color:var(--o-white)}
.wp-block-button.o-btn--ghost .wp-block-button__link:hover{border-color:var(--o-teal);color:var(--o-white)}
.wp-block-button.o-btn--dark .wp-block-button__link{background:var(--o-navy-800);color:var(--o-white)}
.wp-block-button.o-btn--dark .wp-block-button__link:hover{background:var(--o-navy-700);color:var(--o-white)}
.wp-block-buttons{gap:14px}

/* Kernblöcke in den Sektionen */
.o-sec--navy .wp-block-list,.o-sec--navy800 .wp-block-list{color:rgba(255,255,255,.8)}
.o-lead{font-size:18.5px;color:var(--o-muted);max-width:62ch}
.o-sec--navy .o-lead,.o-sec--navy800 .o-lead{color:rgba(255,255,255,.72)}
.o-sec--teal .o-lead{color:rgba(21,26,38,.76)}
.o-head{max-width:62ch;margin-bottom:52px}
.o-h2{font-size:clamp(29px,3.4vw,42px);margin:14px 0 18px}
.o-h1{font-size:clamp(36px,4.8vw,58px);margin:18px 0 22px}
.wp-block-details.o-faq-item{border-bottom:1px solid var(--o-line-dark)}

/* ============================================================
   Layout-Absicherung: die Vorlagen bringen ihre Breite selbst
   mit, damit sie nicht von WordPress-Layout-Klassen abhängen.
   ============================================================ */
.o-sec,.o-hero,.o-header,.o-footer,.o-page-content{padding-inline:max(28px,(100% - 1180px) / 2)}
/* WordPress setzt bei "constrained" Layout margin-left/right:auto mit
   !important auf alle Kinder. Das zentriert alles, was schmaler ist als
   die Inhaltsbreite (Kopfzeilen, Hinweiszeilen). Hier wieder linksbündig. */
body .o-hero>*,body .o-sec>*,body .o-header>*,body .o-footer>*,body .o-page-content>*{width:auto;margin-left:0 !important;margin-right:auto !important}

.o-sec p,.o-hero p{margin:0 0 14px}
.o-sec p:last-child,.o-hero p:last-child{margin-bottom:0}
.wp-block-columns{gap:20px}
.o-hero .wp-block-columns{gap:64px}
.wp-block-column>.wp-block-group{height:100%}

/* Ablauf: Rahmen sitzen auf den Spalten, nicht auf den Gruppen */
.o-steps{gap:0}
.o-steps .wp-block-column{padding:34px 30px 34px 0;border-right:1px solid var(--o-line)}
.o-steps .wp-block-column:not(:first-child){padding-left:30px}
.o-steps .wp-block-column:last-child{border-right:0}
.o-step{padding:0;border:0}
@media(max-width:781px){.o-steps .wp-block-column{border-right:0;border-bottom:1px solid var(--o-line);padding:28px 0}.o-steps .wp-block-column:not(:first-child){padding-left:0}}

/* Zeitplan und Bänder */
.o-slot>*{margin:0}
.o-slot-body>*{margin:0 0 7px}
.o-slot-body>*:last-child{margin-bottom:0}
.o-sem-foot>*{margin:0}
.o-sem-cards{gap:22px}
.o-timeline>*{margin:0}

/* Einzelabstände nach den Sammelregeln wiederherstellen */
.o-hero-note{margin:22px 0 0}
.o-hero-sub{margin:0}
.o-eyebrow{margin:0 0 4px}
.o-amount{margin:16px 0 6px}
.o-per{margin:0}
.o-ust{margin:28px 0 0}
.o-aud-lead{margin:0 0 34px}
.o-stufe-foot{margin:26px 0 0}
.o-num{margin:0 0 18px}
.o-step-n{margin:0 0 14px}
.o-svc-tag{margin:0 0 12px}
.o-slot .o-t{margin:0}
.o-rule p{margin:0}

/* Spalten-Ausrichtung: früher über den Block gesetzt, jetzt hier –
   so kann die Blockvalidierung im Editor nicht mehr anschlagen. */
.o-hero .wp-block-columns{align-items:center}
.o-sem-top .wp-block-columns{align-items:flex-end}

/* ============================================================
   Nachträge – Navigation und Inhaltsseiten
   ============================================================ */

/* Die globale Linkfarbe aus theme.json ist für helle Flächen gedacht.
   In Kopf- und Fußzeile muss sie hell sein, sonst verschwinden die
   Links auf dem dunklen Grund. */
body .o-header .wp-block-navigation a,
body .o-header .wp-block-navigation .wp-block-navigation-item__content,
body .o-header .wp-block-navigation a:where(:not(.wp-element-button)){
	color:rgba(255,255,255,.86) !important;
	text-decoration:none;
}
body .o-header .wp-block-navigation a:hover,
body .o-header .wp-block-navigation .wp-block-navigation-item__content:hover,
body .o-header .wp-block-navigation .current-menu-item>a,
body .o-header .wp-block-navigation .current-menu-item>a .wp-block-navigation-item__label{
	color:var(--o-teal) !important;
}
body .o-header .wp-block-navigation .wp-block-navigation-submenu__toggle,
body .o-header .wp-block-navigation .wp-block-navigation__responsive-container-open{
	color:rgba(255,255,255,.86) !important;
}
body .o-footer a,body .o-footer a:where(:not(.wp-element-button)){color:rgba(255,255,255,.72) !important}
body .o-footer a:hover{color:var(--o-teal) !important}

/* Auf Inhaltsseiten (Impressum, Datenschutz) liegen die Absätze eine
   Ebene tiefer im Inhaltsblock – dort greift die Zentrierung von
   WordPress ebenfalls. */
body .o-page-content .entry-content>*,
body .o-page-content .wp-block-post-content>*,
body .o-page-content>.wp-block-post-title{
	margin-left:0 !important;
	margin-right:auto !important;
}
