/* Responsive corrections verified against the published UTH website. */
header > div:first-child { max-width: 1600px; }
header nav[aria-label="Hauptnavigation"] { min-width: 0; gap: 16px; }
header nav[aria-label="Hauptnavigation"] > ul { gap: clamp(10px, 1vw, 18px); }
header nav[aria-label="Hauptnavigation"] a {
  font-size: clamp(10px, .75vw, 12px);
  letter-spacing: .08em !important;
  white-space: nowrap;
}
header nav[aria-label="Hauptnavigation"] > div { gap: 12px; flex-shrink: 0; }
header nav[aria-label="Hauptnavigation"] > div > a { padding-left: 14px; padding-right: 14px; }
header nav[aria-label="Hauptnavigation"] button { flex-shrink: 0; }
header > div:first-child > form { max-width: 180px; min-width: 80px; }
@media (min-width: 1280px) and (max-width: 1599px) {
  header > div:first-child > form { max-width: 120px; min-width: 80px; }
}
@media (max-width: 1279px) {
  header nav[aria-label="Hauptnavigation"], header > div:first-child > form { display: none; }
  header > div:first-child > div.lg\:hidden { display: flex; }
  header > .lg\:hidden, #mobile-menu { display: block; }
}
html[data-route="home"] #root h1 {
  font-size: clamp(36px, 6.5vw, 86px);
  line-height: 1.06;
  max-width: 100%;
}
section#home { height: auto; min-height: 100svh; padding-top: clamp(112px, 12vh, 144px); padding-bottom: 64px; }
#root h1, #root h2, #root h3, #root h4 { overflow-wrap: break-word; hyphens: auto; }
#root .grid > *, footer .grid > * { min-width: 0; }
@media (min-width: 768px) and (max-width: 1023px) {
  #root h2.md\:text-5xl { font-size: 38px; }
  #root .grid.md\:grid-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
footer .grid { gap: 40px; }
footer p, footer a, footer h4 { overflow-wrap: anywhere; }
@media (max-width: 767px) {
  footer .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; }
}
@media (max-width: 479px) {
  footer .grid { grid-template-columns: minmax(0, 1fr); }
  footer .col-span-2 { grid-column: auto; }
  footer { padding-top: 56px !important; padding-bottom: 64px !important; }
  footer h4 { margin-bottom: 16px !important; }
}
#mobile-menu nav { min-height: 0; overscroll-behavior: contain; }
#uth-cookie-settings { position: static !important; display: block; margin: 24px auto 0; }
@media (max-height: 500px) {
  #mobile-menu > div > div:first-child { padding: 12px 24px; }
  #mobile-menu nav { padding-top: 16px; padding-bottom: 16px; }
  #mobile-menu nav > .mb-12 { margin-bottom: 16px; }
  #mobile-menu nav > .grid > :is(a,button) { flex-direction: row; padding: 10px; gap: 8px; }
  #mobile-menu nav > .grid > :is(a,button) > div { width: 30px; height: 30px; }
}
@media (max-width: 767px) {
  #root input:not([type="checkbox"]):not([type="radio"]), #root textarea, #root select { font-size: 16px; }
}
@media (max-width: 1023px) {
  body:has(input:focus,textarea:focus,select:focus) .uth-mobile-dock { display: none; }
  footer { padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px)) !important; }
}
@media (max-width: 479px) {
  section#contact .flex.gap-4.mb-8.border-b { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
  section#contact .flex.gap-4.mb-8.border-b > :is(a,button) { text-align: center; }
}
:where([id="booking"], [id="contact"], [id="portfolio"]) { scroll-margin-top: 100px; }
