/* Bauvision theme switch: dark (default) / light (original design).
   Everything dark is scoped to html[data-theme="dark"], so light mode stays untouched. */

/* ---------- Visibility helpers ---------- */
html:not([data-theme="dark"]) .only-dark { display: none !important; }
html[data-theme="dark"] .only-light { display: none !important; }
.page-hex { display: none; }

/* ---------- Theme switch (both themes) ---------- */
.theme-toggle {
  position: relative; flex-shrink: 0;
  width: 64px; height: 32px; padding: 0 9px;
  border-radius: 999px;
  border: 1px solid rgba(42,124,135,0.22);
  background: rgba(42,124,135,0.07);
  display: inline-flex; align-items: center; justify-content: space-between;
  cursor: pointer;
  transition: background .3s, border-color .3s, box-shadow .3s;
}
.theme-toggle:hover { border-color: rgba(42,124,135,0.45); box-shadow: 0 0 0 4px rgba(42,124,135,0.08); }
.theme-toggle:focus-visible { outline: 2px solid #2a7c87; outline-offset: 3px; }
.theme-toggle .tt-ico { position: relative; z-index: 1; width: 14px; height: 14px; display: block; color: #6f8f9c; transition: color .3s; }
.theme-toggle .tt-knob {
  position: absolute; top: 3px; left: 3px;
  width: 24px; height: 24px; border-radius: 50%;
  background: #2a7c87;
  box-shadow: 0 2px 8px rgba(42,124,135,0.35);
  transition: transform .4s cubic-bezier(.2,.8,.2,1), background .3s, box-shadow .3s;
}
.theme-toggle .tt-sun { color: #fff; }
.theme-toggle--desk { margin-left: -8px; margin-right: -6px; }
.theme-toggle--mob { display: none; margin-left: auto; margin-right: 14px; }
@media (max-width: 900px) { .theme-toggle--mob { display: inline-flex; width: 58px; height: 30px; padding: 0 8px; } .theme-toggle--mob .tt-knob { width: 22px; height: 22px; } }
html[data-theme="dark"] .theme-toggle { border-color: rgba(212,160,23,0.3); background: rgba(255,255,255,0.04); }
html[data-theme="dark"] .theme-toggle:hover { border-color: rgba(212,160,23,0.6); box-shadow: 0 0 0 4px rgba(212,160,23,0.08); }
html[data-theme="dark"] .theme-toggle:focus-visible { outline-color: #d4a017; }
html[data-theme="dark"] .theme-toggle .tt-knob { transform: translateX(32px); background: #d4a017; box-shadow: 0 2px 10px rgba(212,160,23,0.45); }
html[data-theme="dark"] .theme-toggle--mob .tt-knob { transform: translateX(28px); }
html[data-theme="dark"] .theme-toggle .tt-sun { color: rgba(232,237,242,0.5); }
html[data-theme="dark"] .theme-toggle .tt-moon { color: #000; }

/* ---------- Menu chevrons (dark) ---------- */
.dchev { width: 14px; height: 16px; flex-shrink: 0; display: inline-block; overflow: visible; transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.nav-dropdown-menu a:hover .dchev, .mobile-sub a:hover .dchev { transform: translateX(4px); }
.mobile-sub .dchev { width: 16px; height: 18px; }

/* ================= DARK THEME ================= */
html[data-theme="dark"] {
  color-scheme: dark;
  --gold: #d4a017;
  --gold-light: #e8b93a;
  --teal: #d4a017;
  --teal-light: #e8b93a;
  --teal-dark: #8a6a0f;
  --dark: #000000;
  --dark2: #0d1117;
  --dark3: #161b22;
  --bg-alt: #0a0d12;
  --text: #e8edf2;
  --text-muted: #9aa7b4;
  --card-bg: #11161d;
  --border: rgba(212,160,23,0.18);
}
html[data-theme="dark"] body { background: #0a0d12; color: var(--text); }

/* Honeycomb page layer */
html[data-theme="dark"] .page-hex {
  display: block;
  position: absolute; left: 0; right: 0; top: 0; height: 0;
  z-index: 1; pointer-events: none;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='69.28'%3E%3Cpath d='M0,34.64 L20,0 L60,0 L80,34.64 L60,69.28 L20,69.28 Z M80,34.64 L120,34.64' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='69.28'%3E%3Cpath d='M0,34.64 L20,0 L60,0 L80,34.64 L60,69.28 L20,69.28 Z M80,34.64 L120,34.64' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E");
  -webkit-mask-size: 120px 69.28px; mask-size: 120px 69.28px;
  animation: bvHexBreath 7s ease-in-out infinite;
}
@keyframes bvHexBreath { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { html[data-theme="dark"] .page-hex { animation: none; } }
/* lift section content above the honeycomb (zero specificity, so own positioning rules win) */
:where(html[data-theme="dark"] body > :not(nav, .nav-mobile, .hero, .page-hex, .cookie-banner, .lb, .cursor, .cursor-ring, script, style)) > * { position: relative; z-index: 2; }

/* Cursor */
html[data-theme="dark"] .cursor { background: var(--gold); box-shadow: 0 0 0 1.5px rgba(0,0,0,0.6), 0 0 10px rgba(212,160,23,0.5); }
html[data-theme="dark"] .cursor-ring { border-color: rgba(212,160,23,0.7); }

/* Nav */
html[data-theme="dark"] nav:not(.breadcrumb), html[data-theme="dark"] nav.scrolled {
  background: rgba(8,10,14,0.55);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  box-shadow: none;
}
html[data-theme="dark"] nav.scrolled { background: rgba(8,10,14,0.8); box-shadow: 0 6px 30px rgba(0,0,0,0.4); }
html[data-theme="dark"] .nav-logo-text { color: var(--gold); }
html[data-theme="dark"] .nav-links a { color: rgba(232,237,242,0.78); }
html[data-theme="dark"] .nav-links a:hover, html[data-theme="dark"] .nav-links a.active { color: var(--gold); }
html[data-theme="dark"] .nav-links a::after { background: var(--gold); }
html[data-theme="dark"] .nav-cta { background: var(--gold); color: #000 !important; font-weight: 600 !important; }
html[data-theme="dark"] .nav-cta:hover { background: var(--gold-light) !important; }
html[data-theme="dark"] .nav-dropdown-menu { background: rgba(13,17,23,0.85); border-color: rgba(212,160,23,0.2); box-shadow: 0 16px 48px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.05); }
html[data-theme="dark"] .nav-dropdown-menu a { color: var(--text); }
html[data-theme="dark"] .nav-dropdown-menu a:hover { background: rgba(212,160,23,0.08); color: var(--gold); }
html[data-theme="dark"] .nav-hamburger span { background: var(--gold); }
html[data-theme="dark"] .nav-mobile { background: rgba(8,10,14,0.97); }
html[data-theme="dark"] .nav-mobile-inner a, html[data-theme="dark"] .nav-mobile-inner .mobile-toggle { color: var(--text); border-bottom-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .nav-mobile-inner a:hover, html[data-theme="dark"] .nav-mobile-inner .mobile-toggle:hover { color: var(--gold); }
html[data-theme="dark"] .nav-mobile-inner .mobile-cta { background: var(--gold); color: #000 !important; box-shadow: 0 14px 36px rgba(212,160,23,0.25); }
html[data-theme="dark"] .nav-mobile-inner .mobile-cta:hover { background: var(--gold-light) !important; }
html[data-theme="dark"] .mobile-sub a { color: var(--text-muted) !important; }
@media (max-width: 900px) { html[data-theme="dark"] nav:not(.breadcrumb) { background: rgba(8,10,14,0.8) !important; } }

/* Common section parts */
html[data-theme="dark"] .section-tag { color: var(--gold); }
html[data-theme="dark"] .section-tag::before { background: var(--gold); }
html[data-theme="dark"] .section-title { color: #fff; }
html[data-theme="dark"] .breadcrumb a { color: var(--gold); }
html[data-theme="dark"] .breadcrumb span { color: rgba(154,167,180,0.7); }
html[data-theme="dark"] section[style*="background:#fff"],
html[data-theme="dark"] section[style*="background: #fff"] { background: transparent !important; }

/* Buttons */
html[data-theme="dark"] .btn-primary { background: var(--gold); color: #000; font-weight: 600; }
html[data-theme="dark"] .btn-primary:hover { background: var(--gold-light); color: #000 !important; box-shadow: 0 12px 40px rgba(212,160,23,0.35); animation: none; }
html[data-theme="dark"] .btn-secondary { background: transparent; border: 1.5px solid var(--gold); color: var(--gold); }
html[data-theme="dark"] .btn-secondary:hover { background: rgba(212,160,23,0.1); border-color: var(--gold-light); color: var(--gold-light); }
html[data-theme="dark"] .btn-white { background: var(--gold); color: #000; }
html[data-theme="dark"] .btn-white:hover { background: var(--gold-light); box-shadow: 0 12px 40px rgba(212,160,23,0.3); }

/* Page hero (subpages) */
html[data-theme="dark"] :not(.hero) > #hero-canvas { filter: invert(1) hue-rotate(180deg) brightness(0.85); }
html[data-theme="dark"] .page-hero { background: linear-gradient(135deg, #05070a 0%, #0d1117 55%, #0a0d12 100%); }
html[data-theme="dark"] .page-hero::before { background-image: radial-gradient(circle, rgba(212,160,23,0.10) 1px, transparent 1px); }
html[data-theme="dark"] .page-hero::after { background: radial-gradient(circle, rgba(212,160,23,0.08) 0%, transparent 65%); }
html[data-theme="dark"] .page-hero h1 { color: #fff; }
html[data-theme="dark"] .accent, html[data-theme="dark"] .page-hero h1 .accent {
  background: linear-gradient(135deg, #f0c24a, #d4a017 55%, #b8860b);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
html[data-theme="dark"] .hero-tag { background: rgba(255,255,255,0.04); border-color: rgba(212,160,23,0.25); color: var(--text); }

/* Service detail pages */
html[data-theme="dark"] .check-list li, html[data-theme="dark"] .service-list li { border-bottom-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .service-icon-large { background: #11161d; border: 1px solid rgba(255,255,255,0.06); }
html[data-theme="dark"] .service-icon-large::before { background-image: radial-gradient(circle, rgba(212,160,23,0.12) 1px, transparent 1px); }
html[data-theme="dark"] .feature-card { background: #11161d; border-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .feature-card:hover { border-color: rgba(212,160,23,0.4); box-shadow: 0 12px 36px rgba(0,0,0,0.5); }
html[data-theme="dark"] .feature-title { color: #fff; }
html[data-theme="dark"] .cta-band { background: linear-gradient(135deg, #11161d, #0d1117); border-top: 1px solid rgba(212,160,23,0.15); border-bottom: 1px solid rgba(212,160,23,0.15); }
html[data-theme="dark"] .cta-band h2 { color: #fff; }
html[data-theme="dark"] .cta-band p { color: var(--text-muted); }
html[data-theme="dark"] .service-nav { background: #0d1117; border-bottom-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .service-nav-link { background: #11161d; border-color: rgba(255,255,255,0.08); color: var(--text-muted); }
html[data-theme="dark"] .service-nav-link:hover, html[data-theme="dark"] .service-nav-link.active { border-color: var(--gold); color: var(--gold); background: rgba(212,160,23,0.06); }

/* Leistungen overview */
html[data-theme="dark"] .service-section { border-bottom-color: rgba(255,255,255,0.05); }
html[data-theme="dark"] .service-section:nth-child(even) { background: #0d1117; }
html[data-theme="dark"] .service-visual { background: linear-gradient(135deg, #11161d, #0d1117); }
html[data-theme="dark"] .service-visual-badge { background: #161b22; border-color: rgba(255,255,255,0.08); color: var(--text); box-shadow: 0 8px 30px rgba(0,0,0,0.5); }
html[data-theme="dark"] .service-num { color: var(--gold); }
html[data-theme="dark"] .regions { background: #0a0d12; }
html[data-theme="dark"] .region-card { background: #11161d; border-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .region-card:hover { border-color: rgba(212,160,23,0.4); box-shadow: 0 8px 24px rgba(0,0,0,0.45); }
html[data-theme="dark"] .region-card-name { color: #fff; }
html[data-theme="dark"] .provision-logo-card { box-shadow: 0 12px 36px rgba(0,0,0,0.45); }

/* Über uns */
html[data-theme="dark"] .story, html[data-theme="dark"] .team { background: #0a0d12; }
html[data-theme="dark"] .values { background: #0d1117; }
html[data-theme="dark"] .story-text p strong { color: #fff; }
html[data-theme="dark"] .story-card, html[data-theme="dark"] .team-card { background: #11161d; border-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .story-card::before { background: radial-gradient(circle, rgba(212,160,23,0.1) 0%, transparent 70%); }
html[data-theme="dark"] .story-stat { background: #0d1117; border-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .story-stat-num { background: none; -webkit-text-fill-color: var(--gold); color: var(--gold); }
html[data-theme="dark"] .value-card { background: #11161d; border-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .value-card:hover, html[data-theme="dark"] .team-card:hover { border-color: rgba(212,160,23,0.4); box-shadow: 0 16px 48px rgba(0,0,0,0.5); }
html[data-theme="dark"] .value-title, html[data-theme="dark"] .team-name { color: #fff; }
html[data-theme="dark"] .team-card::after { background: radial-gradient(circle at top right, rgba(212,160,23,0.07) 0%, transparent 60%); }
html[data-theme="dark"] .promise { background: linear-gradient(135deg, #11161d, #0d1117); border-top: 1px solid rgba(212,160,23,0.15); border-bottom: 1px solid rgba(212,160,23,0.15); }
html[data-theme="dark"] .promise-item-icon svg { stroke: var(--gold); }

/* Kontakt */
html[data-theme="dark"] .contact-section, html[data-theme="dark"] .map-section { background: #0a0d12; }
html[data-theme="dark"] .contact-item { border-bottom-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .contact-item-icon { background: rgba(212,160,23,0.08); }
html[data-theme="dark"] .contact-item-icon svg { stroke: var(--gold); }
html[data-theme="dark"] .contact-item-value { color: #fff; }
html[data-theme="dark"] .hours-tag { background: rgba(212,160,23,0.08); }
html[data-theme="dark"] .google-btn { background: #11161d; border-color: rgba(255,255,255,0.1); color: var(--text); }
html[data-theme="dark"] .google-btn:hover { border-color: var(--gold); box-shadow: 0 4px 20px rgba(0,0,0,0.4); }
html[data-theme="dark"] .contact-form-wrap { background: #11161d; border-color: rgba(255,255,255,0.07); }
html[data-theme="dark"] #form-success { background: rgba(212,160,23,0.08); }

/* Forms */
html[data-theme="dark"] .contact-form { background: #11161d; border-color: rgba(255,255,255,0.07); box-shadow: 0 12px 48px rgba(0,0,0,0.5); }
html[data-theme="dark"] .form-group input, html[data-theme="dark"] .form-group select, html[data-theme="dark"] .form-group textarea { background: #0a0d12; border-color: rgba(255,255,255,0.1); color: var(--text); }
html[data-theme="dark"] .form-group input::placeholder, html[data-theme="dark"] .form-group textarea::placeholder { color: rgba(154,167,180,0.6); }
html[data-theme="dark"] .form-group input:focus, html[data-theme="dark"] .form-group select:focus, html[data-theme="dark"] .form-group textarea:focus { border-color: var(--gold); background: rgba(212,160,23,0.04); }
html[data-theme="dark"] .form-group select option { background: #11161d; color: var(--text); }
html[data-theme="dark"] .form-submit { background: var(--gold); color: #000; font-weight: 600; }
html[data-theme="dark"] .form-submit:hover { background: var(--gold-light); box-shadow: 0 12px 40px rgba(212,160,23,0.35); }

/* Maps */
html[data-theme="dark"] .map-placeholder { background: #0d1117 !important; }
html[data-theme="dark"] .map-placeholder button { background: var(--gold) !important; color: #000 !important; }
html[data-theme="dark"] .map-consent-btn { background: var(--gold); color: #000; }
html[data-theme="dark"] .map-consent-btn:hover { background: var(--gold-light); }
html[data-theme="dark"] .map-wrap, html[data-theme="dark"] .footer-map { border-color: rgba(255,255,255,0.08); background: #0d1117; }
html[data-theme="dark"] .footer-map .map-consent { background: linear-gradient(135deg, #11161d 0%, #0d1117 100%); }
html[data-theme="dark"] .footer-map .map-consent strong { color: #fff; }
html[data-theme="dark"] .footer-map .map-consent button { background: var(--gold); color: #000; }
html[data-theme="dark"] .footer-map .map-consent button:hover { background: var(--gold-light); box-shadow: 0 8px 20px rgba(212,160,23,0.3); }

/* Legal pages */
html[data-theme="dark"] .page-wrap h1, html[data-theme="dark"] .page-wrap h2, html[data-theme="dark"] .page-wrap h3 { color: #fff; }
html[data-theme="dark"] .info-block, html[data-theme="dark"] .toc { background: #11161d; border-color: rgba(255,255,255,0.07); }
html[data-theme="dark"] .placeholder-note { color: var(--gold-light); }

/* Footer */
html[data-theme="dark"] footer { background: #05070a; border-top-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .footer-brand-name { color: var(--gold); }
html[data-theme="dark"] .footer-links a:hover, html[data-theme="dark"] .footer-legal a:hover { color: var(--gold); }
html[data-theme="dark"] .footer-bottom { border-top-color: rgba(255,255,255,0.06); }
html[data-theme="dark"] .footer-brand-desc a { color: var(--gold) !important; border-bottom-color: rgba(212,160,23,0.35) !important; }

/* Cookie banner */
html[data-theme="dark"] .cookie-banner { background: #11161d; border-color: rgba(255,255,255,0.08); box-shadow: 0 24px 60px rgba(0,0,0,0.6); }
html[data-theme="dark"] .cookie-text a { color: var(--gold); border-bottom-color: rgba(212,160,23,0.35); }
html[data-theme="dark"] .cookie-btn-reject { color: var(--text-muted); border-color: rgba(255,255,255,0.15); }
html[data-theme="dark"] .cookie-btn-reject:hover { border-color: var(--gold); color: var(--gold); background: rgba(212,160,23,0.05); }
html[data-theme="dark"] .cookie-btn-accept { background: var(--gold); color: #000; }
html[data-theme="dark"] .cookie-btn-accept:hover { background: var(--gold-light); box-shadow: 0 12px 28px rgba(212,160,23,0.3); }

/* Legal pages: breadcrumb is a <nav> and inherits the fixed nav bar styles; keep it inline in dark mode */
html[data-theme="dark"] nav.breadcrumb {
  position: static; padding: 0; z-index: auto;
  background: none; border: 0; box-shadow: none;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  justify-content: flex-start;
}
