/* FeriquellewhiteHouse project overrides: legal UI, local assets, mobile navigation, accessibility */
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { overflow-x: hidden; }
img { max-width: 100%; height: auto; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid #A67882;
  outline-offset: 3px;
}
#cafe-einblick .image-wrapper { overflow: hidden; }
#cafe-einblick .image-wrapper img { width: 100%; height: 100%; object-fit: cover; display: block; }
#standort .google-map { position: relative; overflow: hidden; min-height: 430px; }
#standort .google-map > img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; display: block; }
.location-card {
  position: absolute; left: 24px; bottom: 24px; max-width: min(420px, calc(100% - 48px));
  padding: 18px 22px; background: rgba(248, 252, 251, .94); color: #002c23;
  border-radius: 18px; box-shadow: 0 12px 35px rgba(0,0,0,.16); display: grid; gap: 5px;
  font-family: Arial, Helvetica, sans-serif;
}
.location-card strong { font-size: 1.05rem; }
.location-card span { font-size: .95rem; line-height: 1.4; }
.site-legal-block {
  width: 100%; margin: 2rem auto 1.35rem; padding: 1.5rem;
  border: 1px solid rgba(255,255,255,.22); border-radius: 18px;
  background: rgba(255,255,255,.06); color: inherit;
  font-family: Arial, Helvetica, sans-serif;
}
.site-legal-block .legal-title { margin: 0 0 1rem; font-size: 1.05rem; font-weight: 700; color: inherit; }
.legal-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1.4rem; }
.legal-info-grid p { margin: 0; font-size: .88rem; line-height: 1.55; color: inherit; overflow-wrap: anywhere; }
.footer-legal-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem 1.25rem; margin: 0 auto 1.5rem; }
.footer-legal-links a { color: inherit !important; text-decoration: none !important; font-family: Arial, Helvetica, sans-serif; }
.footer-legal-links a:hover, .footer-legal-links a:focus { text-decoration: underline !important; text-underline-offset: 3px; }
.legal-page { min-height: 70vh; background: #f8fcfb; color: #17342e; padding: 5rem 0; }
.legal-page .legal-container { width: min(100% - 40px, 1080px); margin: 0 auto; }
.legal-page h1 { color: #A67882; margin: 0 0 1.5rem; }
.legal-page h2 { color: #004d3f; margin: 2.2rem 0 .8rem; font-size: 1.55rem; }
.legal-page h3 { color: #004d3f; margin: 1.5rem 0 .6rem; font-size: 1.2rem; }
.legal-page p, .legal-page li { font-family: Arial, Helvetica, sans-serif; font-size: 1rem; line-height: 1.75; }
.legal-page ul { padding-left: 1.4rem; }
.legal-page a { color: #6f4c54; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.legal-note { padding: 1rem 1.2rem; border-left: 4px solid #A67882; background: #fff; border-radius: 0 12px 12px 0; }
body.nav-open { overflow: hidden; }
@media (max-width: 991.98px) {
  #site-header .navbar { min-height: 68px; }
  #site-header .content-wrap { display: flex; align-items: center; justify-content: space-between; width: 100%; }
  #site-header .navbar-brand { max-width: calc(100% - 64px); min-height: 68px; display: flex; align-items: center; }
  #site-header .navbar-caption { font-size: clamp(1rem, 4.3vw, 1.35rem) !important; line-height: 1.15 !important; }
  #site-header .navbar-toggler { display: flex !important; align-items: center; justify-content: center; flex: 0 0 50px; z-index: 1055; }
  #site-header .navbar-collapse { width: 100%; flex-basis: 100%; padding: .75rem 0 1.25rem; }
  #site-header .navbar-collapse.show { display: block !important; }
  #site-header .navbar-nav { width: 100%; gap: .25rem; }
  #site-header .nav-item, #site-header .nav-link { width: 100%; }
  #site-header .nav-link { justify-content: center; padding: .75rem 1rem !important; }
  #site-header .navbar-buttons { display: flex; justify-content: center; width: 100%; padding-top: .65rem; }
  #site-header .navbar-buttons .btn { max-width: calc(100vw - 40px); white-space: normal; }
  .legal-info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  #standort .google-map, #standort .google-map > img { min-height: 360px; }
  .location-card { left: 14px; right: 14px; bottom: 14px; max-width: none; padding: 14px 16px; }
  .site-legal-block { padding: 1.1rem; border-radius: 14px; }
  .legal-page { padding: 3.5rem 0; }
  .legal-page .legal-container { width: min(100% - 28px, 1080px); }
}
