/* Easypure Clean – Basis-Styles. Schriften lokal eingebunden (SIL Open Font License), keine Verbindung zu Google. */
@font-face { font-family: 'Atkinson Hyperlegible'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/atkinson-hyperlegible-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Atkinson Hyperlegible'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/atkinson-hyperlegible-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/bricolage-grotesque-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/bricolage-grotesque-latin-800-normal.woff2') format('woff2'); }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 90px; }
body { margin: 0; background: #F4F1EA; color: #14261F; font-family: 'Atkinson Hyperlegible', 'Segoe UI', system-ui, sans-serif; font-size: 17px; line-height: 1.55; -webkit-text-size-adjust: 100%; }
h1, h2, h3, h4 { font-family: 'Bricolage Grotesque', 'Trebuchet MS', sans-serif; line-height: 1.1; letter-spacing: -0.01em; }
a { color: #1D4B3C; }
a:hover { color: #0F2E24; }
button, input, textarea { font-family: inherit; font-size: inherit; }
img, svg { max-width: 100%; }

a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #E6B450; outline-offset: 3px; border-radius: 6px; }
.skip { position: absolute; left: -9999px; top: 8px; background: #14261F; color: #FFFFFF; padding: 10px 16px; border-radius: 8px; z-index: 100; }
.skip:focus { left: 8px; color: #FFFFFF; }

/* Saisonkalender */
.mbtn { min-width: 64px; min-height: 44px; padding: 8px 14px; border-radius: 12px; border: 2px solid #14261F; background: #FFFFFF; color: #14261F; font-weight: 700; cursor: pointer; }
.mbtn[aria-pressed="true"] { background: #1D4B3C; color: #FFFFFF; border-color: #1D4B3C; }
.mpanel[hidden], .fehler[hidden] { display: none !important; }

/* FAQ */
details summary { list-style: none; }
details summary::-webkit-details-marker { display: none; }
details .plus { font-size: 26px; color: #1D4B3C; line-height: 1; transition: transform 0.2s ease; }
details[open] .plus { transform: rotate(45deg); }

/* Anfrageformular */
.fs { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.fs legend { font-family: 'Bricolage Grotesque', 'Trebuchet MS', sans-serif; font-size: 22px; font-weight: 800; margin-bottom: 10px; padding: 0; }
.hint { margin: 0; color: #4A5A53; }
.grp { display: flex; flex-direction: column; gap: 8px; padding: 14px 0; border-top: 1px solid #E6E0D2; }
.grp-t { font-weight: 700; color: #1D4B3C; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; display: inline-flex; }
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip span { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 15px; border-radius: 999px; border: 2px solid #B8B2A3; background: #FFFFFF; color: #14261F; font-weight: 700; cursor: pointer; }
.chip input:checked + span { background: #1D4B3C; border-color: #1D4B3C; color: #FFFFFF; }
.chip input:focus-visible + span { outline: 3px solid #E6B450; outline-offset: 2px; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.fld { display: flex; flex-direction: column; gap: 6px; }
.fld label { font-weight: 700; }
.fld input, .fld textarea { min-height: 50px; padding: 10px 14px; border: 2px solid #B8B2A3; border-radius: 12px; background: #FFFFFF; color: #14261F; width: 100%; }
.fld textarea { resize: vertical; }
.fld input:focus, .fld textarea:focus { outline: 3px solid #E6B450; outline-offset: 1px; border-color: #1D4B3C; }
.check { display: flex; gap: 10px; align-items: center; min-height: 44px; cursor: pointer; }
.check input { width: 22px; height: 22px; accent-color: #1D4B3C; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fehler { margin: 0; padding: 12px 16px; background: #F6D6CF; color: #7F1D12; border-radius: 12px; font-weight: 700; }
.btn-submit { align-self: flex-start; background: #1D4B3C; color: #FFFFFF; border: 0; border-radius: 999px; padding: 16px 28px; min-height: 54px; font-weight: 700; font-size: 17px; cursor: pointer; }
.btn-submit:hover { background: #163B2F; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* Handy: kompakter Kopfbereich + Aktionsleiste unten */
.mobilebar { display: none; }
@media (max-width: 640px) {
  header { position: static !important; }
  header nav a:last-child { display: none !important; }
  header nav { gap: 0 18px !important; }
  .mobilebar { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); background: #F4F1EA; border-top: 1px solid #DAD5C8; }
  .mobilebar a { display: flex; align-items: center; justify-content: center; min-height: 50px; border-radius: 999px; font-weight: 700; text-decoration: none; }
  .mobilebar .call { border: 2px solid #1D4B3C; color: #1D4B3C; background: #FFFFFF; }
  .mobilebar .req { background: #1D4B3C; color: #FFFFFF; }
  body { padding-bottom: 78px; }
}
