/* StudioCMS Starter-Theme
   Anpassen: Studio → Design → CSS. Die Farben und Maße oben in :root reichen
   für eine erste Markenanpassung. */

:root {
  --brand: #2563eb;
  --brand-dark: #1d4ed8;
  --brand-soft: #eff6ff;
  --ink: #0f172a;
  --text: #334155;
  --muted: #64748b;
  --line: #e2e8f0;
  --bg: #ffffff;
  --bg-alt: #f8fafc;
  --surface: #ffffff;          /* Karten, Felder, Menüs */
  --on-brand: #ffffff;         /* Schrift auf Markenfarbe */
  --header-bg: #13264d;        /* üst menü arka planı: lacivert */
  --header-ink: #ffffff;       /* üst menü: logo, aktif link, menü ikonu */
  --header-text: rgba(255, 255, 255, .82); /* üst menü linkleri */
  --header-hover: rgba(255, 255, 255, .10); /* üst menü üzerine gelme zemini */
  --header-line: rgba(255, 255, 255, .14); /* üst menü ayırıcı çizgileri */
  --header-focus: #ffffff;     /* üst menü klavye odağı */
  --error-bg: #fef2f2;
  --error-text: #991b1b;
  --dark: #0f172a;
  --radius: 14px;
  --radius-sm: 8px;
  --shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .06);
  --container: 1160px;
  --narrow: 760px;
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-head: var(--font);
}

/* Dunkelmodus: gilt nur, wenn die Seite data-theme="dark" trägt (Umschalter, Studio → Design).
   Ein Design setzt dieselben Variablen, um den Dunkelmodus anzupassen. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --brand: #60a5fa;
  --brand-dark: #93c5fd;
  --brand-soft: rgba(96, 165, 250, .14);
  --ink: #f1f5f9;
  --text: #cbd5e1;
  --muted: #94a3b8;
  --line: #2a3649;
  --bg: #0b1220;
  --bg-alt: #111a2c;
  --surface: #131c2f;
  --on-brand: #0b1220;
  --header-bg: rgba(11, 18, 32, .94);
  --header-ink: var(--ink);
  --header-text: var(--text);
  --header-hover: var(--bg-alt);
  --header-line: var(--line);
  --header-focus: var(--brand);
  --error-bg: #3b1219;
  --error-text: #fecaca;
  --dark: #060a14;
  --shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35);
}

/* --- Basis --------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font: 1.0625rem/1.65 var(--font); color: var(--text); background: var(--bg); }
img, svg, video { max-width: 100%; height: auto; }
svg { vertical-align: middle; flex-shrink: 0; }
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 { font-family: var(--font-head); color: var(--ink); line-height: 1.2; margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: clamp(2rem, 4.5vw, 3.1rem); font-weight: 750; }
h2 { font-size: clamp(1.55rem, 3vw, 2.2rem); font-weight: 700; }
h3 { font-size: 1.2rem; font-weight: 650; }
p { margin: 0 0 1em; }
.accent { color: var(--brand); }
.muted { color: var(--muted); }
.lead { font-size: 1.2rem; color: var(--muted); max-width: 44em; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 16px; top: 16px; z-index: 100; background: var(--surface); color: var(--ink); padding: 8px 14px; border-radius: 8px; }
.container { width: 100%; max-width: calc(var(--container) + 48px); margin: 0 auto; padding: 0 24px; }
.narrow { max-width: calc(var(--narrow) + 48px); }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* --- Buttons ------------------------------------------------------------- */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border-radius: 999px; border: 1.5px solid transparent;
  font: 600 1rem/1.2 var(--font); cursor: pointer; text-decoration: none !important; transition: background .15s, color .15s, border-color .15s; }
.btn-sm { padding: 8px 16px; font-size: 0.9375rem; }
.btn-primary { background: var(--brand); color: var(--on-brand); }
.btn-primary:hover { background: var(--brand-dark); }
.btn-outline { border-color: var(--line); color: var(--ink); background: var(--surface); }
.btn-outline:hover { border-color: var(--ink); }
.btn-light { background: #fff; color: #0f172a; }
.btn-light:hover { background: #eff6ff; }
.btn-ghost-light { border-color: rgba(255,255,255,.35); color: #fff; }
.btn-ghost-light:hover { border-color: #fff; }
.link-btn { background: none; border: 0; padding: 0; color: inherit; font: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.link-btn:hover { text-decoration: underline; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }

/* --- Header -------------------------------------------------------------- */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--header-bg); backdrop-filter: blur(8px); border-bottom: 1px solid var(--header-line); }
.hdr { display: flex; align-items: center; gap: 24px; min-height: 72px; }
.hdr-logo { font-weight: 800; font-size: 1.2rem; color: var(--header-ink); text-decoration: none !important; }
.hdr-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.hdr-nav > a, .has-sub > a { display: inline-flex; align-items: center; gap: 4px; padding: 8px 12px; border-radius: 8px; color: var(--header-text); font-weight: 550; text-decoration: none; }
.hdr-nav > a:hover, .hdr-nav > a.is-active, .hdr-nav > .has-sub > a:hover, .hdr-nav > .has-sub > a.is-active { color: var(--header-ink); background: var(--header-hover); }
.sub a:hover, .sub a.is-active { color: var(--ink); background: var(--bg-alt); }
.has-sub { position: relative; }
.has-sub .sub { position: absolute; top: 100%; left: 0; min-width: 240px; padding: 8px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); box-shadow: var(--shadow); display: none; }
.has-sub:hover > .sub, .has-sub:focus-within > .sub { display: block; }
.sub .has-sub > a { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 6px; color: var(--text); text-decoration: none; }
.sub .has-sub > a:hover { background: var(--bg-alt); }
.sub .has-sub > .sub { top: -9px; left: 100%; margin-left: 2px; }
.sub a { display: block; padding: 8px 12px; border-radius: 6px; color: var(--text); text-decoration: none; }
.sub a:hover { background: var(--bg-alt); }
.sub a:has(.sub-text) { display: flex; align-items: flex-start; gap: 12px; }
.sub .sub-icon { flex: none; display: inline-flex; margin-top: 2px; color: var(--brand); }
.sub .sub-text { display: flex; flex-direction: column; gap: 2px; }
.sub .sub-title { font-weight: 600; }
.sub .sub-desc { font-size: .85em; color: var(--muted, var(--text)); opacity: .75; }
.sub .sub-all { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 12px; font-weight: 600; color: var(--brand); }
.hdr-actions { display: flex; align-items: center; gap: 8px; }
.hdr-burger { display: none; background: none; border: 0; padding: 8px; color: var(--header-ink); cursor: pointer; }
.hdr-menu { display: grid; gap: 2px; padding-bottom: 16px; }
.hdr-menu[hidden] { display: none; }
.hdr-menu a { padding: 10px 4px; color: var(--header-ink); font-weight: 550; border-bottom: 1px solid var(--header-line); }
.hdr-menu .hdr-menu-sub { padding-left: 20px; font-weight: 450; color: var(--header-text); }
.hdr-menu .hdr-menu-l2 { padding-left: 38px; }
.hdr-menu .hdr-menu-l3 { padding-left: 56px; }
.hdr-menu .hdr-menu-l4 { padding-left: 74px; }
.hdr-menu .btn { margin-top: 12px; justify-content: center; border-bottom: 0; }
.hdr-menu .btn-primary { color: var(--on-brand); }
.hdr-logo:focus-visible, .hdr-nav > a:focus-visible, .hdr-nav > .has-sub > a:focus-visible, .lang-switch a:focus-visible, .hdr-burger:focus-visible, .hdr-menu a:focus-visible { outline-color: var(--header-focus); }
@media (max-width: 960px) {
  .hdr-nav, .hdr-cta { display: none; }
  .hdr-burger { display: inline-flex; }
  .hdr-actions { margin-left: auto; }
}

/* --- Abschnitte ------------------------------------------------------------ */
.sec { padding: 80px 0; }
.sec-alt { background: var(--bg-alt); }
.sec-head { margin-bottom: 36px; max-width: 46em; }
.sec-head.row-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; max-width: none; }
.eyebrow { display: inline-block; margin-bottom: 12px; font-size: 0.875rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--brand); }
.crumbs { padding-top: 20px; font-size: 0.875rem; }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; color: var(--muted); }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--line); }
.crumbs a { color: var(--muted); }
/* Startseiten-Hero: farbiger Verlauf (Violett, Pink, Blau, Türkis), Verlaufstitel und -button */
.hero { padding: 110px 0 90px;
  background:
    radial-gradient(38rem 24rem at 10% 15%, rgba(124, 58, 237, .20), transparent 70%),
    radial-gradient(34rem 22rem at 90% 5%, rgba(236, 72, 153, .18), transparent 70%),
    radial-gradient(42rem 26rem at 75% 105%, rgba(37, 99, 235, .20), transparent 70%),
    radial-gradient(30rem 20rem at 15% 100%, rgba(20, 184, 166, .16), transparent 70%),
    linear-gradient(135deg, #f5f3ff, #eff6ff 50%, #fdf2f8); }
.hero h1 { width: fit-content; margin-left: auto; margin-right: auto;
  background: linear-gradient(90deg, #2563eb, #7c3aed 50%, #db2777); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero .btn-primary { background: linear-gradient(90deg, #2563eb, #7c3aed); color: #fff; box-shadow: 0 8px 24px rgba(124, 58, 237, .30); }
.hero .btn-primary:hover { background: linear-gradient(90deg, #1d4ed8, #6d28d9); }
:root[data-theme="dark"] .hero {
  background:
    radial-gradient(38rem 24rem at 10% 15%, rgba(139, 92, 246, .30), transparent 70%),
    radial-gradient(34rem 22rem at 90% 5%, rgba(236, 72, 153, .24), transparent 70%),
    radial-gradient(42rem 26rem at 75% 105%, rgba(59, 130, 246, .28), transparent 70%),
    radial-gradient(30rem 20rem at 15% 100%, rgba(20, 184, 166, .20), transparent 70%),
    var(--bg); }
:root[data-theme="dark"] .hero h1 { background-image: linear-gradient(90deg, #60a5fa, #a78bfa 50%, #f472b6); }
.hero-inner { max-width: 880px; margin-left: auto; margin-right: auto; text-align: center; }
.hero-inner .lead { margin-left: auto; margin-right: auto; color: var(--text); }
.hero-inner .actions { justify-content: center; }
.pagehero { padding: 48px 0 32px; }
.split { display: grid; grid-template-columns: 1.2fr .8fr; gap: 56px; align-items: start; }
.split-faq { grid-template-columns: .8fr 1.2fr; }
@media (max-width: 900px) { .split, .split-faq { grid-template-columns: 1fr; gap: 32px; } .sec { padding: 56px 0; } }

/* --- Raster & Karten ------------------------------------------------------- */
.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; }
.sec-alt .card { border-color: transparent; box-shadow: var(--shadow); }
.card p:last-child { margin-bottom: 0; }
.card-icon { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 12px; background: var(--brand-soft); color: var(--brand); margin-bottom: 16px; }
.card-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-weight: 600; color: var(--ink); }
.card-link:hover { border-color: var(--brand); text-decoration: none; }
.svc-card { display: flex; flex-direction: column; color: var(--text); text-decoration: none !important; transition: transform .15s, box-shadow .15s; }
.svc-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.svc-card .num { font-weight: 700; color: var(--brand); margin-bottom: 12px; }
.svc-card .more { margin-top: auto; padding-top: 12px; color: var(--brand); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.tags span, .tag { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--brand-soft); color: var(--brand-dark); font-size: 0.8125rem; font-weight: 600; }

/* --- Schritte, nummerierte Zeilen, Zitate ---------------------------------- */
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; counter-reset: step; }
.step { position: relative; padding: 24px; background: var(--surface); border-radius: var(--radius); border: 1px solid var(--line); }
.step-num { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 50%; background: var(--brand); color: var(--on-brand); font-weight: 700; margin-bottom: 14px; }
.numbered { display: grid; gap: 16px; }
.numbered-row { display: grid; grid-template-columns: 64px 1fr; gap: 16px; padding: 24px 0; border-top: 1px solid var(--line); }
.numbered-row .num { font-size: 1.6rem; font-weight: 750; color: var(--brand); }
.quote { margin: 0; padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.quote blockquote { margin: 0 0 16px; font-size: 1.05rem; color: var(--ink); }
.quote figcaption { color: var(--muted); font-size: 0.9375rem; }
.quote figcaption strong { color: var(--ink); }

/* --- FAQ ---------------------------------------------------------------- */
.faq-list { display: grid; gap: 12px; }
.faq-item { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 0 20px; }
.faq-item summary { cursor: pointer; list-style: none; padding: 18px 28px 18px 0; font-weight: 600; color: var(--ink); position: relative; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; right: 0; top: 14px; font-size: 1.4rem; color: var(--brand); }
.faq-item[open] summary::after { content: "–"; }
.faq-item p { margin: 0 0 18px; }

/* --- Blog --------------------------------------------------------------- */
.post-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; color: var(--text); text-decoration: none !important; transition: transform .15s, box-shadow .15s; }
.post-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.post-card-media { aspect-ratio: 3 / 2; background: var(--bg-alt); overflow: hidden; }
.post-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-card-body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.post-card-meta { display: flex; align-items: center; gap: 10px; font-size: 0.875rem; color: var(--muted); margin-bottom: 10px; }
.post-card h3 { margin-bottom: 8px; }
.post-card .more { margin-top: auto; color: var(--brand); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: 550 0.875rem var(--font); cursor: pointer; }
.chip.is-on { background: var(--ink); border-color: var(--ink); color: var(--bg); }
.post-head { padding: 40px 0 24px; }
.post-meta { color: var(--muted); font-size: 0.9375rem; }
.post-hero img { display: block; width: 100%; border-radius: var(--radius); }
.post-body { padding-top: 40px; }
/* Zusatzangaben: eigene Felder einer Seite (Studio → Einstellungen → Eigene Felder) */
.extra-fields { display: grid; gap: 14px; margin: 32px 0 0; padding: 22px 0 0; border-top: 1px solid var(--line); }
.extra-fields > div { display: grid; grid-template-columns: minmax(120px, 30%) 1fr; gap: 6px 22px; }
.extra-fields dt { font-weight: 600; color: var(--muted); }
.extra-fields dd { margin: 0; }
@media (max-width: 600px) { .extra-fields > div { grid-template-columns: 1fr; } }
.summary { padding: 20px 24px; margin-bottom: 32px; background: var(--brand-soft); border-radius: var(--radius-sm); }
.summary p { margin: 6px 0 0; }
.refs { display: grid; gap: 10px; margin: 40px 0; }
.ref { display: flex; flex-direction: column; padding: 14px 18px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); font-weight: 600; }
.ref small { font-weight: 400; color: var(--muted); font-size: 0.9375rem; }
.inline-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 20px 24px; margin: 32px 0; border: 1px solid var(--line); border-radius: var(--radius-sm); font-weight: 600; color: var(--ink); }
.share { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.9375rem; }
.share-btn { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer; }
.share-btn:hover { border-color: var(--ink); }

/* --- Fließtext ------------------------------------------------------------ */
.prose { font-size: 1.06rem; }
.prose h2 { margin-top: 1.8em; }
.prose h3 { margin-top: 1.5em; }
.prose ul, .prose ol { padding-left: 1.3em; margin: 0 0 1em; }
.prose li { margin: .3em 0; }
.prose img { border-radius: var(--radius-sm); }
.prose blockquote { margin: 1.5em 0; padding-left: 20px; border-left: 3px solid var(--brand); color: var(--ink); }
.prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .95rem; }
.prose th, .prose td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.prose code { background: var(--bg-alt); padding: 2px 6px; border-radius: 4px; font-size: .9em; }

/* --- Leistung -------------------------------------------------------------- */
.svc-hero { padding-top: 40px; }
.lead-block p { font-size: 1.12rem; color: var(--muted); }
.scope { padding: 28px; background: var(--bg-alt); border-radius: var(--radius); }
.scope ul { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 10px; }
.scope li { display: flex; gap: 10px; align-items: flex-start; }
.scope li svg { color: var(--brand); margin-top: 5px; }

/* --- Abschluss-Band -------------------------------------------------------- */
.cta-band { background: var(--dark); color: #cbd5e1; }
.cta-band h2 { color: #fff; }
.cta-band .eyebrow { color: #93c5fd; }
.cta-inner { max-width: 820px; text-align: center; }
.cta-inner .actions { justify-content: center; }

/* --- Formulare ------------------------------------------------------------- */
.form { display: grid; gap: 16px; }
.field { display: grid; gap: 6px; font-weight: 600; font-size: 0.9375rem; color: var(--ink); }
.field input, .field textarea, .field select { width: 100%; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: var(--radius-sm); font: 1rem var(--font); color: var(--ink); background: var(--surface); }
.field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 0.9375rem; }
.check input { margin-top: 5px; }
.form-status { padding: 12px 16px; border-radius: var(--radius-sm); background: var(--brand-soft); color: var(--brand-dark); font-weight: 600; }
.form-status.is-error { background: var(--error-bg); color: var(--error-text); }
.form-card { padding: 32px; }
.contact-lines { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 14px; }
.contact-lines li { display: flex; gap: 12px; align-items: center; }
.contact-lines svg { color: var(--brand); }

/* --- Fehlerseiten ---------------------------------------------------------- */
.error-page { padding: 120px 0; text-align: center; }
.error-code { display: block; font-size: 5rem; font-weight: 800; color: var(--brand-soft); -webkit-text-stroke: 2px var(--brand); line-height: 1; margin-bottom: 16px; }
.error-page .lead { margin-left: auto; margin-right: auto; }
.error-page .actions { justify-content: center; }

/* --- Footer --------------------------------------------------------------- */
.site-footer { background: var(--dark); color: #94a3b8; padding-top: 64px; font-size: 0.9375rem; }
.site-footer a { color: #cbd5e1; }
.ftr-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 40px; padding-bottom: 48px; }
.ftr-logo { font-weight: 800; font-size: 1.15rem; color: #fff !important; display: inline-block; margin-bottom: 12px; }
.ftr-contact { display: grid; gap: 8px; }
.ftr-contact a, .ftr-contact span { display: inline-flex; align-items: center; gap: 8px; }
.ftr-col { display: grid; gap: 10px; align-content: start; }
.ftr-head { color: #fff; font-weight: 650; margin-bottom: 4px; }
.ftr-bottom { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; align-items: center; padding-top: 20px; padding-bottom: 28px; border-top: 1px solid rgba(255,255,255,.1); }
@media (max-width: 900px) { .ftr-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ftr-grid { grid-template-columns: 1fr; } }

/* --- Cookie-Banner --------------------------------------------------------- */
.cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 90; display: flex; justify-content: center; }
.cookie[hidden] { display: none; }
.cookie-card { width: 100%; max-width: 640px; background: var(--surface); color: var(--text); border-radius: var(--radius); box-shadow: 0 20px 60px rgba(15,23,42,.25); padding: 24px 28px; font-size: 0.9375rem; }
.cookie-card h2 { font-size: 1.15rem; }
.cookie-details { display: grid; gap: 10px; margin: 12px 0; }
.cookie-row { display: flex; gap: 10px; align-items: flex-start; }
.cookie-row input { margin-top: 5px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; margin-top: 16px; }

/* --- Eingebettete Inhalte (erst nach Einwilligung) ------------------------ */
.embed-consent { padding: 32px; border: 1px dashed var(--line); border-radius: var(--radius); text-align: center; color: var(--muted); }
.embed-consent .embed-note { margin: 0 auto 14px; max-width: 560px; }
.embed-consent .embed-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.embed-consent.embed-loaded { padding: 0; border: 0; }
.embed-consent.embed-loaded iframe { display: block; width: 100%; border: 0; border-radius: var(--radius); background: #fff; }
.embed-consent.embed-blocked { font-size: .9rem; }
.cookie-services { color: var(--muted); }
.consent-service { margin: 0 0 18px; }
.consent-service h4 { margin: 0 0 4px; }

/* --- Abschnitts-Baukasten (Landingpage / Standardseite) ------------------- */
.block { padding: 64px 0; }
.block-hero { padding: 96px 0; background: var(--bg-alt); }
.hero-tag { display: inline-block; margin-bottom: 12px; color: var(--brand); font-weight: 650; }
.hero-title { max-width: 18em; }
.hero-text { font-size: 1.2rem; color: var(--muted); max-width: 40em; }
.hero-media img { margin-top: 32px; border-radius: var(--radius); }
.rich-block { font-size: 1.06rem; }
.faq-item + .faq-item { margin-top: 12px; }

/* Editor "+": columns and question/answer blocks inside page text */
.cms-cols { display: grid; gap: 28px; margin: 1.6em 0; }
.cms-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-cols-1 { grid-template-columns: minmax(0, 1fr); }
.cms-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cms-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1000px) { .cms-cols-4, .cms-cols-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .cms-cols-2, .cms-cols-3, .cms-cols-4, .cms-cols-5 { grid-template-columns: 1fr; } }
.prose details { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 0 20px; margin: 10px 0; }
.prose details summary { cursor: pointer; padding: 14px 0; font-weight: 600; color: var(--ink); }
.prose details[open] summary { border-bottom: 1px solid var(--line); margin-bottom: 12px; }

/* language switcher (header) */
.lang-switch { display: inline-flex; align-items: center; gap: 2px; margin-right: 6px; }
.lang-switch a { padding: 5px 8px; border-radius: 6px; font-size: 0.75rem; font-weight: 700; letter-spacing: .04em; color: var(--header-text); text-decoration: none; }
.lang-switch a:hover { background: var(--header-hover); color: var(--header-ink); }
.lang-switch a.is-current { background: var(--header-hover); color: var(--header-ink); cursor: default; }

/* --- Zugänglichkeit -------------------------------------------------------- */
:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.field input:focus-visible, .field textarea:focus-visible, .field select:focus-visible { outline: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .svc-card:hover, .post-card:hover { transform: none; }
}

/* --- Barrierefreiheits-Leiste (Besucher-Einstellungen; Attribute am <html>, gesetzt von theme/static/theme/a11y.js) ---- */
html[data-a11y-font="1"] { font-size: 112.5%; }
html[data-a11y-font="2"] { font-size: 125%; }
html[data-a11y-font="3"] { font-size: 150%; }
html[data-a11y-readable] { --font: Verdana, Tahoma, "Trebuchet MS", sans-serif; --font-head: var(--font); }
html[data-a11y-spacing] body, html[data-a11y-spacing] p, html[data-a11y-spacing] li { line-height: 1.9; letter-spacing: .03em; word-spacing: .08em; }
html[data-a11y-links] a:not(.btn) { text-decoration: underline !important; text-underline-offset: .15em; }
html[data-a11y-motion="off"] { scroll-behavior: auto; }
html[data-a11y-motion="off"] *, html[data-a11y-motion="off"] *::before, html[data-a11y-motion="off"] *::after {
  transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
html[data-a11y-motion="off"] .svc-card:hover, html[data-a11y-motion="off"] .post-card:hover { transform: none; }
/* hoher Kontrast: schwarz auf weiß invertiert, gelbe Links; überstimmt den Dunkelmodus */
:root[data-a11y-contrast] {
  color-scheme: dark;
  --brand: #ffe14d; --brand-dark: #fff08a; --brand-soft: #1a1a1a;
  --ink: #ffffff; --text: #ffffff; --muted: #ffffff; --line: #ffffff;
  --bg: #000000; --bg-alt: #000000; --surface: #000000; --dark: #000000;
  --on-brand: #000000; --header-bg: #000000;
  --error-bg: #000000; --error-text: #ffb3b3; --shadow: none;
}
:root[data-a11y-contrast] .hero { background: none; }
:root[data-a11y-contrast] .hero h1 { background: none; color: var(--ink); }
:root[data-a11y-contrast] .hero .btn-primary { background: var(--brand); color: var(--on-brand); box-shadow: none; }
