:root { color-scheme: light; --facts-glow: #2d5a2712; }
.house-facts > span { border-radius: 3px; }
.nav { margin-left: auto; }
.theme-toggle { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--ink); }
.theme-toggle:hover { background: var(--soft); border-color: var(--green); }
.theme-toggle svg { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 1.6; }
.theme-toggle .sun-icon { display: none; }
[data-theme="dark"] .theme-toggle .sun-icon { display: block; }
[data-theme="dark"] .theme-toggle .moon-icon { display: none; }

@media screen {
  :root[data-theme="dark"] {
    color-scheme: dark;
    --paper: #151c18; --white: #1d2720; --ink: #e6ece1;
    --muted: #b9c5b6; --green: #b0d28e; --green-hover: #c1dfa4;
    --line: #3b4b3f; --sand: #19231d; --soft: #253328; --accent: #3b5134;
    --facts-glow: #b0d28e14;
  }
  [data-theme="dark"] .site-header { background: #151c18f5; }
  [data-theme="dark"] .site-header .brand img { content: url("brand/goodbau-logo-white.svg"); }
  [data-theme="dark"] .house-project,
  [data-theme="dark"] [data-section="kontakt"] form,
  [data-theme="dark"] .gallery-thumb,
  [data-theme="dark"] .project-jump a { background: #1d2720; border-color: var(--line); }
  [data-theme="dark"] [data-section="hausbau"] { background-image: url("graphics/floor-plan.svg"), radial-gradient(ellipse at 100% 10%, #253328, transparent 65%); }
  [data-theme="dark"] [data-section="ablauf"] { background-color: #1c2920; background-image: url("graphics/house-elevation.svg"), linear-gradient(90deg, transparent 47px, #c0d8ad06 48px), linear-gradient(transparent 47px, #c0d8ad06 48px); }
  [data-theme="dark"] [data-section="kontakt"] { background-color: #19231d; background-image: url("graphics/floor-plan.svg"), radial-gradient(ellipse at 0% 100%, #293d2c, transparent 65%); }
  [data-theme="dark"] .btn { background: var(--green); color: #162010; border-color: var(--green); }
  [data-theme="dark"] .btn:hover { background: var(--green-hover); border-color: var(--green-hover); }
  [data-theme="dark"] .btn.secondary { background: transparent; color: var(--green); border-color: #76896b; }
  [data-theme="dark"] .btn.secondary:hover { background: var(--soft); }
  [data-theme="dark"] .hero .btn { background: #e4ecd9; color: #23391c; border-color: #e4ecd9; }
  [data-theme="dark"] .hero .btn.secondary { background: #16201966; color: #fff; border-color: #ffffff80; }
  [data-theme="dark"] .hero .btn:hover { background: #cbdcbc; }
  [data-theme="dark"] .hero .btn.secondary:hover { background: #ffffff20; }
  [data-theme="dark"] input, [data-theme="dark"] select, [data-theme="dark"] textarea,
  [data-theme="dark"] .field.model-field select { background: #151e18; color: var(--ink); border-color: #76896b; }
  [data-theme="dark"] input::placeholder, [data-theme="dark"] textarea::placeholder { color: #a8b5a4; opacity: 1; }
  [data-theme="dark"] input:hover, [data-theme="dark"] select:hover, [data-theme="dark"] textarea:hover { border-color: var(--green); }
  [data-theme="dark"] .step, [data-theme="dark"] .floor-tabs,
  [data-theme="dark"] .rooms-table tfoot th, [data-theme="dark"] .rooms-table tfoot td { border-color: var(--line); }
  [data-theme="dark"] .gallery-thumb[aria-current="true"] { background: var(--soft); border-color: var(--green); }
  [data-theme="dark"] .floor-tabs button[aria-selected="true"] { border-color: var(--green); }
  [data-theme="dark"] .floor-plan > a, [data-theme="dark"] .viewer-stage { background: #28322b; }
  [data-theme="dark"] .image-enlarge { background: #243329f5; color: #e6ece1; }
  [data-theme="dark"] .viewer-close { border-color: #76896b; }
  [data-theme="dark"] .site-footer { background: #111a14; }
  [data-theme="dark"] :focus-visible { outline-color: #edc592; }
  [data-theme="dark"] .skip { background: var(--paper); color: var(--ink); }
}

@media (prefers-reduced-motion: no-preference) {
  .theme-toggle, .gallery-thumb, .project-jump a, .floor-tabs button { transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease; }
  dialog[open] { animation: dialog-appear 180ms ease-out; }
  @keyframes dialog-appear { from { opacity: .8; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 1100px) and (min-width: 801px) {
  .header-inner { gap: 16px; }
  .brand img { width: 155px; }
  .nav { gap: 14px; }
  .nav > a:not(.btn) { font-size: 13px; }
  .nav .btn { padding-inline: 16px; }
}
@media (max-width: 900px) and (min-width: 801px) {
  .header-inner { padding-inline: 24px; gap: 12px; }
  .brand img { width: 135px; }
  .nav { gap: 12px; }
}
@media (max-width: 800px) {
  .site-header .brand { margin-right: auto; }
  .theme-toggle { order: 1; }
  .menu-toggle { order: 2; }
  .nav { order: 3; margin-left: 0; }
}
@media (max-width: 420px) {
  .header-inner { gap: 8px; }
  .site-header .brand img { width: 128px; }
  .menu-toggle { padding-inline: 9px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; }
}
@media print {
  .theme-toggle { display: none; }
  .site-header .brand img { content: url("brand/goodbau-logo.svg"); }
}

/* Motion never controls baseline content visibility. */
.hero-image { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  a, button { transition: color 190ms ease, background-color 190ms ease, border-color 190ms ease; }
}
@media print {
  .hero-image img { transform: none !important; }
  main [style] { opacity: 1 !important; transform: none !important; }
}

@media screen and (max-width: 800px) {
  html:not(.nav-ready) .header-inner { height: auto; flex-wrap: wrap; padding-block: 14px; }
  html:not(.nav-ready) .nav { display: flex; position: static; width: 100%; flex-wrap: wrap; }
  html:not(.nav-ready) .menu-toggle { display: none; }
}
