/* ============================================================
   fidaris.at — Seiten-Stylesheet (ergänzt fidaris.css / DS-SSOT)
   Quelle: V6 Synthese <style>-Kopf + Muster-Klassen (BAUAUFTRAG §3.1).
   Kein neuer Farbwert außerhalb der dokumentierten V6-Seiten-Tokens.
   ============================================================ */

/* ── Seiten-Tokens (wortgleich aus V6, inkl. Dark-Overrides) ── */
:root {
  --fid-section-y: clamp(64px, 7vw, 88px);
  --fid-container: 1180px;
  --fid-inverse-bg: #0F4C5C;
  --fid-inverse-text: #FFFFFF;
  --fid-inverse-muted: #C9DCE1;
  --fid-inverse-soft: #BFD6DC;
  --fid-inverse-eyebrow: #E8B48C;
  --fid-inverse-positive: #8FD0B9;
  --fid-inverse-border: rgba(255,255,255,0.16);
  --fid-inverse-panel: rgba(0,0,0,0.22);
}
[data-theme="dark"] {
  --fid-inverse-bg: #0D3D4B;
  --fid-inverse-panel: rgba(0,0,0,0.30);
}

p { text-wrap: pretty; }
summary::-webkit-details-marker { display: none; }
summary { list-style: none; }
details[open] .faq-chev { transform: rotate(180deg); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ── Hover-Regeln (aus den Prototyp-Hover-Attributen konsolidiert, §3.1) ── */

/* Footer-/Fließtext-Navigationslink */
.flink { font-size: var(--fs-14); color: var(--fid-text-2); text-decoration: none; }
.flink:hover { color: var(--fid-primary); }

/* Buttons auf Inverse-Flächen (Hero, ProofProtocol, CTA-Karten) */
.inv-btn {
  min-height: 48px; display: inline-flex; align-items: center; padding: 0 24px;
  border-radius: var(--r-m); font-size: var(--fs-16); font-weight: 600;
  background: #fff; color: var(--fid-inverse-bg); text-decoration: none;
}
.inv-btn:hover { background: var(--fid-inverse-muted); }
.inv-btn-outline {
  min-height: 48px; display: inline-flex; align-items: center; padding: 0 22px;
  border-radius: var(--r-m); font-size: var(--fs-16); font-weight: 600;
  color: var(--fid-inverse-text); border: 1px solid rgba(255,255,255,0.4); text-decoration: none;
}
.inv-btn-outline:hover { border-color: #fff; }

/* Verlinkte Karte (Solutions) */
.card-link { display: block; text-decoration: none; color: var(--fid-text); padding: 28px; transition: border-color var(--t); }
.card-link:hover { border-color: var(--fid-primary-2); }

/* ── AudienceSwitch (Segmented-Pill „Praxen | Kliniken") ── */
.aud-switch {
  display: flex; align-items: center; gap: 2px; border: 1px solid var(--fid-border-strong);
  border-radius: 999px; padding: 3px; background: var(--fid-surface);
}
.aud-switch .aud-seg {
  display: inline-flex; align-items: center; min-height: 26px; padding: 0 12px;
  border-radius: 999px; font-size: var(--fs-13); font-weight: 600; text-decoration: none;
}
.aud-switch .aud-active { background: var(--fid-btn-primary-bg); color: var(--fid-on-primary); }
.aud-switch a.aud-seg { color: var(--fid-text-2); }
.aud-switch a.aud-seg:hover { color: var(--fid-primary); }

/* ── SiteHeader ── */
.site-header { position: sticky; top: 0; z-index: 100; background: var(--fid-card); border-bottom: 1px solid var(--fid-border); }
.header-inner {
  max-width: var(--fid-container); margin: 0 auto; padding: 0 24px;
  display: flex; align-items: center; gap: 8px; min-height: 64px;
}
.header-left { display: flex; align-items: center; gap: 16px; margin-right: auto; }
.brand { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; }
.brand-word { font-size: 20px; font-weight: 600; letter-spacing: -0.01em; color: var(--fid-text); line-height: 1; }
.brand-word small { font-weight: 500; color: var(--fid-text-2); font-size: inherit; }
.brand-word .brand-dot { color: var(--fid-accent); } /* K4 „Paraphe": Kupfer-Schlusspunkt */
.nav-desktop { display: flex; align-items: center; gap: 2px; }
.nav-desktop .is-active { color: var(--fid-primary); }
.header-cta .cta-short { display: none; }
.menu-btn { display: none; }
.nav-mobile { display: none; flex-direction: column; gap: 2px; padding: 6px 16px 16px; border-top: 1px solid var(--fid-border); background: var(--fid-card); }
.nav-mobile .btn { justify-content: flex-start; }
.nav-mobile .is-active { color: var(--fid-primary); }
.nav-mobile-aud { display: flex; align-items: center; gap: 12px; padding: 10px 12px 8px; }
.nav-mobile-aud > span { font-size: var(--fs-13); font-weight: 600; color: var(--fid-text-2); }

/* Theme-Toggle: dunkel → Sonne, hell → Mond (wie Prototyp) */
.js-theme-toggle .icon-sun { display: none; }
.js-theme-toggle .icon-moon { display: block; }
[data-theme="dark"] .js-theme-toggle .icon-sun { display: block; }
[data-theme="dark"] .js-theme-toggle .icon-moon { display: none; }

/* Menü-Button: Burger ↔ Schließen */
.js-menu-toggle .icon-close { display: none; }
.site-header.menu-open .js-menu-toggle .icon-burger { display: none; }
.site-header.menu-open .js-menu-toggle .icon-close { display: block; }
.site-header.menu-open .nav-mobile { display: flex; }

/* ── Responsive (Breakpoints 900 / 760 wie V6) ── */
@media (max-width: 900px) {
  .v6-hero { grid-template-columns: 1fr !important; gap: 40px !important; }
  .v6-split { grid-template-columns: 1fr !important; }
  .aud-switch-hd { display: none !important; }
  .nav-desktop { display: none; }
  .menu-btn { display: inline-flex; }
  .header-cta .cta-long { display: none; }
  .header-cta .cta-short { display: inline; }
}
@media (max-width: 760px) {
  .v6-cell { border-right: none !important; border-bottom: 1px solid var(--fid-border); }
  .v6-cell:last-child { border-bottom: none; }
  .kond-row { grid-template-columns: 1fr !important; }
  .kond-row-price { text-align: left !important; border-left: none !important; padding-left: 0 !important; }
}

/* Fieldset-Shrink-Quirk (Chrome: min-width:min-content) — sonst Überlauf <400px */
fieldset { min-width: 0; }
.v6-split > *, .v6-hero > * { min-width: 0; }

/* ── Formular-Fehlerzustände (mailto-Formular, fidaris.js) ── */
.field-error[hidden] { display: none; }
.form-note { display: none; margin-top: 10px; }
.form-note.is-visible { display: flex; }

/* ── Rechtstext-Seiten (Muster 4d): ruhig, ohne Inverse, druckbar ── */
.legal-main { max-width: 720px; margin: 0 auto; padding: var(--fid-section-y) 24px; }
.legal-main h1 { font-size: clamp(28px, 4vw, 34px); letter-spacing: -0.015em; margin: 0 0 6px; }
.legal-stand { font-size: var(--fs-13); color: var(--fid-text-2); margin: 0 0 28px; }
.legal-main h2 { font-size: var(--fs-18); margin: 28px 0 6px; }
.legal-main p, .legal-main ul { font-size: var(--fs-16); line-height: 1.65; color: var(--fid-text-2); margin: 0 0 10px; }

@media print {
  .site-header, .site-footer, .skip-link { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
  .legal-main { max-width: none; padding: 0; }
  .legal-main p, .legal-main ul { color: #000; }
  a { color: #000; text-decoration: none; }
}
