/* ==========================================================================
   WordPress-spezifische Ergänzungen zum Design-System (main.css)
   ========================================================================== */

/* --- Sektions-Optionen der Blöcke --- */
.sec-bg{ background:var(--bg-elev); }
.sec-tight{ padding-top:18px; margin-top:calc(-1 * clamp(58px,7.4vw,112px)); }
.sec-stats + .sec-tight{ margin-top:calc(-1 * clamp(44px,5.4vw,76px)); }
.sec-none{ padding-top:0; }
.sec-stats{ padding-block:clamp(44px,5.4vw,76px); }
.sec-stats.sec-none{ padding-top:0; }
.crumbs .cur{ color:var(--text-2); }
.contact-card .sub{ color:var(--muted); font-size:.85rem; }
.ftr-sub{ margin-top:26px; }
.ftr .addr span{ color:rgba(255,255,255,.45); }

/* Admin-Leiste: Header darunter schieben */
body.admin-bar .hdr{ top:32px; }
body.admin-bar .mobile-nav{ top:calc(var(--nav-h) + 32px); }
@media (max-width:782px){ body.admin-bar .hdr{ top:46px; } body.admin-bar .mobile-nav{ top:calc(var(--nav-h) + 46px); } }

/* --- Freie Texte (Core-Blöcke, Rechtstexte) --- */
.sec-prose + .sec-prose{ padding-top:0; }
.prose > :first-child{ margin-top:0; }
.prose h1{ font-size:clamp(2rem,4.6vw,3.2rem); }
.prose h2{ font-size:clamp(1.6rem,3vw,2.2rem); margin-top:1.6em; }
.prose h3{ font-size:clamp(1.2rem,2vw,1.45rem); margin-top:1.4em; }
.prose h4{ margin-top:1.3em; }
.prose p, .prose li{ color:var(--text-2); }
.prose a{ color:var(--brand-text); text-decoration:underline; text-decoration-color:rgba(46,140,75,.35); text-underline-offset:3px; }
.prose a:hover{ text-decoration-color:currentColor; }
.prose ul, .prose ol{ padding-left:1.3em; margin:0 0 1.15em; }
.prose li{ margin:.3em 0; }
.prose blockquote, .prose .wp-block-quote{ margin:1.4em 0; padding:18px 24px; border-left:3px solid var(--brand); background:var(--bg-elev); border-radius:0 var(--r) var(--r) 0; }
.prose .wp-block-quote p{ margin-bottom:.4em; }
.prose .wp-block-quote cite{ font-size:.85rem; color:var(--muted); font-style:normal; }
.prose table, .prose .wp-block-table table{ width:100%; border-collapse:collapse; font-size:.95rem; margin:0 0 1.4em; }
.prose th, .prose td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
.prose th{ font-family:var(--font-display); font-weight:600; color:var(--text); }
.prose .wp-block-table{ overflow-x:auto; margin:0 0 1.4em; }
.prose hr, .prose .wp-block-separator{ border:0; height:1px; background:var(--line-strong); margin:2.2em 0; }
.prose figure{ margin:1.6em 0; }
.prose figure img{ border-radius:var(--r); }
.prose figcaption{ font-size:.85rem; color:var(--muted); margin-top:8px; }
.prose .wp-block-buttons{ display:flex; flex-wrap:wrap; gap:12px; margin:1.4em 0; }
.prose .wp-block-button__link{ display:inline-flex; align-items:center; gap:9px; padding:13px 22px; border-radius:999px; background:var(--brand); color:#06120A; font-weight:600; text-decoration:none; }
.prose .is-style-outline .wp-block-button__link{ background:transparent; color:var(--text); border:1px solid var(--line-strong); }
.prose .wp-block-embed iframe{ max-width:100%; border-radius:var(--r); }
.prose .aligncenter{ margin-inline:auto; }
.prose .alignleft{ float:left; margin:0 24px 16px 0; }
.prose .alignright{ float:right; margin:0 0 16px 24px; }
.prose::after{ content:""; display:table; clear:both; }

/* --- Formulare (Formular-Plugin im Split-Block oder freien Text) --- */
.formbox{ padding:clamp(24px,3.4vw,36px); }
.split:has(.formbox){ align-items:start; }
.formbox .grid.tight{ gap:0 16px; }
.formbox .field{ margin-bottom:18px; }
.formbox .check{ display:flex; gap:11px; align-items:flex-start; font-size:.88rem; color:var(--muted); }
.formbox .check input{ width:17px; height:17px; margin-top:2px; accent-color:var(--brand); flex:0 0 auto; }
.formbox .check a{ color:var(--brand-text); text-decoration:underline; }
.formbox .wpcf7-list-item{ margin:0; }
.formbox .wpcf7-not-valid-tip{ display:block; margin-top:6px; font-size:.82rem; color:#B42318; }
.formbox .wpcf7-not-valid{ border-color:#E3766B !important; }
.formbox .wpcf7-spinner{ margin-left:12px; }
.formbox label, .prose form label{ display:block; font-size:.85rem; font-weight:500; color:var(--text-2); margin-bottom:7px; }
.formbox input:not([type=checkbox]):not([type=radio]):not([type=submit]), .formbox select, .formbox textarea,
.prose form input:not([type=checkbox]):not([type=radio]):not([type=submit]), .prose form select, .prose form textarea{
  width:100%; padding:13px 16px; border-radius:12px; background:#fff; border:1px solid var(--line-strong); color:var(--text);
  font:inherit; font-size:.97rem; transition:border-color .2s, box-shadow .2s;
}
.formbox textarea, .prose form textarea{ min-height:132px; resize:vertical; }
.formbox input:focus, .formbox select:focus, .formbox textarea:focus, .prose form input:focus, .prose form select:focus, .prose form textarea:focus{
  outline:0; border-color:var(--brand); box-shadow:0 0 0 3px rgba(101,188,123,.25);
}
.formbox button[type=submit], .formbox input[type=submit], .prose form button[type=submit], .prose form input[type=submit]{
  display:inline-flex; align-items:center; gap:9px; padding:14px 24px; border:0; border-radius:999px; background:var(--brand); color:#06120A;
  font:inherit; font-weight:600; cursor:pointer; box-shadow:var(--shadow-brand); transition:transform .25s var(--ease), box-shadow .25s;
}
.formbox button[type=submit]:hover, .prose form button[type=submit]:hover{ transform:translateY(-2px); }
/* Fluent Forms */
.formbox .ff-el-group, .prose .ff-el-group{ margin-bottom:18px; }
.formbox .ff-el-input--label label, .prose .ff-el-input--label label{ margin-bottom:7px; }
.formbox .ff-el-form-check-label, .prose .ff-el-form-check-label{ display:flex; gap:11px; align-items:flex-start; font-size:.88rem; color:var(--muted); }
.formbox .ff-message-success, .prose .ff-message-success{ margin-top:18px; padding:15px 18px; border-radius:12px; background:var(--brand-tint); border:1px solid rgba(101,188,123,.4); }
/* Contact Form 7 */
.formbox .wpcf7-form p, .prose .wpcf7-form p{ margin-bottom:18px; }
.formbox .wpcf7-response-output{ margin:18px 0 0; padding:14px 18px; border-radius:12px; border:1px solid var(--line-strong) !important; }
/* CF7 lädt kein eigenes CSS: Zustände wie im Original-Stylesheet */
.formbox .hidden-fields-container{ display:none; }
.formbox form.init .wpcf7-response-output, .formbox form.resetting .wpcf7-response-output, .formbox form.submitting .wpcf7-response-output{ display:none; }
.formbox form.sent .wpcf7-response-output{ border-color:rgba(101,188,123,.6) !important; background:var(--brand-tint); }
.formbox form.invalid .wpcf7-response-output, .formbox form.unaccepted .wpcf7-response-output, .formbox form.failed .wpcf7-response-output, .formbox form.aborted .wpcf7-response-output, .formbox form.spam .wpcf7-response-output{ border-color:#E3766B !important; background:#FDF3F2; }

/* --- Cookie-Banner (Complianz) an die Marke anpassen --- */
.cmplz-cookiebanner{ --cmplz-cookiebanner-border-radius:16px; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept{ background:var(--brand); border-color:var(--brand); color:#06120A; }

/* --- Editor-Hinweis für leere Blöcke --- */
.cm-empty{ padding:22px; border:1px dashed var(--line-strong); border-radius:var(--r); color:var(--muted); font-size:.9rem; text-align:center; }

/* --- Checkliste --- */
.checklist{ max-width:860px; }
.checklist.cols-2 .flist{ display:grid; grid-template-columns:1fr 1fr; gap:10px 32px; }
@media (max-width:700px){ .checklist.cols-2 .flist{ grid-template-columns:1fr; } }

/* --- Hinweis auf noch nicht migrierten Seiten --- */
.legacy-note{ margin:0 0 28px; padding:12px 16px; border-radius:12px; background:#FFF7E6; border:1px solid #F3D9A4; color:#7A5A12; font-size:.88rem; }

/* --- Sprachumschalter (WPML) --- */
.lang{ display:inline-flex; align-items:center; gap:6px; font-family:var(--font-display); font-size:.78rem; font-weight:600; letter-spacing:.08em; }
.lang a, .lang .cur{ padding:5px 7px; border-radius:8px; color:var(--muted); transition:color .2s, background .2s; }
.lang a:hover{ color:var(--brand-text); background:var(--brand-tint); }
.lang .cur{ color:var(--text); }
.lang a + a::before, .lang .cur + a::before, .lang a + .cur::before{ content:none; }
.hdr-cta .lang{ margin-right:2px; }
@media (max-width:1080px){ .hdr-cta .lang{ display:none; } }
.m-lang{ justify-content:center; margin-top:8px; font-size:.9rem; }

/* Hervorgehobenes Wort im Hero nicht am Bindestrich umbrechen (z. B. „Wi-Fi“) */
.hero h1 .grad{ white-space:nowrap; }
