/* Hotel Haller – Basis-Styles
   Die Gestaltung der einzelnen Bereiche steht direkt im HTML (style="…").
   Schriften liegen auf dem eigenen Server (keine Verbindung zu Google Fonts). */

@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/manrope-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/manrope-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/manrope-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/manrope-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Newsreader'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/newsreader-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Newsreader'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/newsreader-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Newsreader'; font-style: italic; font-weight: 400; font-display: swap; src: url('../fonts/newsreader-latin-400-italic.woff2') format('woff2'); }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: #F3F0E8; color: #1E2622; font-family: 'Manrope', system-ui, sans-serif; }
img { max-width: 100%; }

a { color: #2E4A3B; }
a:hover { color: #1C3026; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #8A4A2C; outline-offset: 2px;
}
input:focus, select:focus, textarea:focus { border-color: #2E4A3B !important; }

/* Anker unter dem fixierten Kopfbereich nicht verdecken */
section[id], footer[id] { scroll-margin-top: 96px; }

[hidden] { display: none !important; }
#kontakt-erfolg:not([hidden]) { display: flex; }

button[disabled] { opacity: 0.6; cursor: wait !important; }

#buchung-widget iframe, #karte iframe { display: block; width: 100%; border: 0; }
#karte iframe { height: 100%; }

/* Auf dem Handy scrollt der Kopfbereich mit, statt Platz zu belegen */
@media (max-width: 700px) {
  header { position: static !important; }
  section[id], footer[id] { scroll-margin-top: 16px; }
  #karte { height: 360px !important; }
}
