/* Shared typography scale across every route, including legal pages. */
:root {
  --title-size: clamp(1.875rem, 1.2rem + 2.8vw, 3.5rem);
  --section-title-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.5rem);
  --small-title-size: clamp(1.125rem, 1rem + .6vw, 1.5rem);
}

/* Einheitlicher Lesesatz auf Desktop und Mobilgeräten. */
body p:not(.eyebrow),
body .legal-content li {
  text-align: justify !important;
  text-align-last: left;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 7 3 3;
  -webkit-hyphenate-limit-before: 3;
  -webkit-hyphenate-limit-after: 3;
  text-wrap: pretty;
  overflow-wrap: break-word;
  word-break: normal;
}

body h1,
body h2,
body h3,
body h4 {
  text-align: left;
}

body .subpage-band > h2,
body .subpage-band > p {
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
}
.gallery-tile[data-full$="Fruehling_Sina_sina_009.webp"],
.gallery-tile[data-full$="Sommer_Sina_sina_020.webp"],
.gallery-tile[data-full$="Fruehling_Sina_sina_029.webp"] {
  position: relative;
  container-type: size;
}
.gallery-page .gallery-tile[data-full$="Fruehling_Sina_sina_009.webp"] img,
.gallery-page .gallery-tile[data-full$="Sommer_Sina_sina_020.webp"] img,
.gallery-page .gallery-tile[data-full$="Fruehling_Sina_sina_029.webp"] img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100cqh;
  height: 100cqw;
  max-width: none;
  transform: translate(-50%, -50%) rotate(270deg);
  object-fit: cover;
}
.gallery-dialog img.rotate-quarter-left {
  width: min(80vw, 80vh);
  height: min(80vw, 80vh);
  max-height: none;
  object-fit: contain;
  transform: rotate(270deg);
}
.team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.beverage-menu .drinks-grid details { container-type: inline-size; }
.beverage-menu .drinks-grid details > summary {
  font-size: clamp(.75rem, 3.35cqi, 1.125rem);
  white-space: nowrap;
  line-height: 1.4;
  padding: .85rem .65rem;
  min-height: 44px;
  letter-spacing: 0;
}
@media (max-width: 920px) {
  .team-grid { grid-template-columns: minmax(0, 1fr); }
}
body h1, body h2, body h3, body h4 {
  min-width: 0;
  max-width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  -webkit-hyphens: manual;
  hyphens: manual;
  text-wrap: balance;
  letter-spacing: -.02em !important;
}
body h1 { font-size: var(--title-size) !important; line-height: 1.15 !important; }
body h2 { font-size: var(--section-title-size) !important; line-height: 1.2 !important; }
body h3 { font-size: var(--small-title-size) !important; line-height: 1.3 !important; }
body h4 { font-size: 1rem !important; line-height: 1.4 !important; }
body .legal-heading .legal-title-part { white-space: nowrap; }
.legal-mobile-break { display: none; }
footer > div:last-child > a.back-to-top {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 0;
  flex-shrink: 0;
  line-height: 1;
}
footer .back-to-top span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  transform: none;
}
footer .back-to-top svg { display: block; width: 24px; height: 24px; margin: 0; }
.legal-heading, .legal-content, .hero-content, .event-hero-copy,
.subpage-hero, .gallery-page-hero { min-width: 0; box-sizing: border-box; }
.legal-content a { overflow-wrap: anywhere; }
.beverage-menu .menu-list:not(.wine-list), .beverage-menu .wine-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: 1fr;
}
.beverage-menu .menu-list > div:not(.wine-group),
.beverage-menu .wine-group > .wine-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 8rem;
  align-items: start;
  gap: 1rem;
  padding: 1rem 0;
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  border-bottom: 1px dotted #b6cbd0;
  box-sizing: border-box;
}
.beverage-menu .menu-list > .wine-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: 1fr;
  gap: 0;
  padding: 0; margin: 0; border: 0;
}
.beverage-menu .wine-group > .wine-entry > span { min-width: 0; overflow-wrap: anywhere; }
.beverage-menu .menu-list strong {
  font-size: 1rem; line-height: 1.5; white-space: nowrap;
  width: 100%; text-align: right; overflow: visible;
}
/* Keep containers shrinkable without concealing overflowing content. */
main, section, article, .service-grid > *, .reservation-form-grid > * {
  min-width: 0;
}
.reservation-form-grid input,
.reservation-form-grid textarea,
.reservation-form-grid select {
  font-size: 1rem;
  max-width: 100%;
  box-sizing: border-box;
}
body .legal-content h2 { font-size: var(--small-title-size) !important; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media (max-width: 700px) {
  .legal-mobile-break { display: block; }
  body .legal-heading h1.legal-title-long {
    font-size: clamp(1.05rem, 5.2vw, 2rem) !important;
    text-wrap: initial;
  }
  footer > div:last-child { flex-wrap: wrap; justify-content: center; }
  footer > div:last-child > a { min-height: 44px; display: inline-flex; align-items: center; }
  .back-to-top { min-width: 44px; min-height: 44px; }
  .legal-heading > p:not(.eyebrow), .hero-copy, .subpage-hero > p:not(.eyebrow),
  .gallery-page-hero > p:not(.eyebrow), .service-grid p, .legal-content {
    font-size: 1rem; line-height: 1.55;
  }
  .beverage-menu .menu-list > div:not(.wine-group),
  .beverage-menu .wine-group > .wine-entry {
    grid-template-columns: minmax(0, 1fr) 7rem;
    gap: .75rem; padding: .875rem 0;
  }
  .beverage-menu .menu-list strong { font-size: .9375rem; }
}

/* Aktuelle Tagesmenüs aus der geschützten Menüverwaltung. */
.today-menu {
  padding: clamp(3.5rem, 8vw, 7rem) clamp(1.25rem, 8vw, 8.5rem);
  background: #faf5ec;
}
.today-menu > h2 { margin: 0; }
.today-menu-date { margin: .75rem 0 2rem; color: #68574c; text-transform: capitalize; }
.today-menu-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.today-menu-grid article { min-width: 0; padding: clamp(1.25rem, 3vw, 2rem); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.today-menu-grid h3 { margin: 0 0 .65rem; }
.today-menu-grid p { margin: 0 0 1rem; overflow-wrap: anywhere; }
.today-menu-grid small { display: block; font-size: .9rem; font-weight: 700; color: #087d91; }
.today-menu-loading,.today-menu-fallback { grid-column: 1 / -1; margin: 0; padding: 1.25rem; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.today-menu-note { margin: 1.25rem 0 0; font-weight: 600; }
.today-menu-fallback a { font-weight: 800; }
@media (max-width: 700px) {
  .today-menu-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Category introductions share one top anchor, independent of hero height. */
.subpage > .subpage-hero,
.subpage > .event-hero > .event-hero-copy {
  box-sizing: border-box;
  justify-content: flex-start;
  padding-top: clamp(2rem, 6vw, 5rem);
  transform: none;
}
.subpage > .subpage-hero > * {
  transform: none;
}
.subpage > .subpage-hero > .eyebrow,
.subpage > .event-hero > .event-hero-copy > .eyebrow {
  margin-top: 0;
  font-size: .78rem;
  line-height: 1.4;
  flex-shrink: 0;
}
@media (max-width: 700px) {
  .subpage > .subpage-hero,
  .subpage > .event-hero > .event-hero-copy {
    padding-top: 2rem;
  }
}

/* Startseite: derselbe obere Textanker wie auf den Kategorieseiten. */
.home main > .hero {
  box-sizing: border-box;
  align-items: flex-start;
  padding-top: clamp(2rem, 6vw, 5rem);
}
.home .hero > .hero-content {
  transform: none;
  margin-top: 0;
}
.home .hero-content > .eyebrow {
  margin-top: 0;
  font-size: .78rem;
  line-height: 1.4;
}
@media (max-width: 700px) {
  .home main > .hero { padding-top: 2rem; }
}
