/* Shared presentation for the localized public website. */
.localized-information { overflow-wrap: anywhere; }
.localized-transition .connect-card { min-width: 0; }
.localized-transition .connect-card h1 { font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.3; }
.localized-transition .public-language-picker { margin-block: .5rem 1.5rem; }
.localized-transition .public-language-options a { font-size: .875rem; }
.localized-business .hours bdi { display: inline-block; max-width: 100%; }
.public-language-picker { padding-block: .5rem; }
.public-language-picker > summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  width: fit-content;
  max-width: 100%;
  margin-inline-start: auto;
  padding: .65rem .9rem;
  border: 1px solid #e3c5b8;
  border-radius: 1rem;
  background: #fff;
  color: #34231e;
  cursor: pointer;
  list-style: none;
  font-size: .875rem;
}
.public-language-picker > summary::-webkit-details-marker { display: none; }
.language-label { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.language-globe { flex: 0 0 auto; }
.header-inner > nav { margin-inline-start: auto; }
.localized-information .header-inner > .public-language-picker {
  position: relative; width: auto; max-width: 100%; margin: 0; padding: 0; flex: 0 1 auto;
}
.header-inner > .public-language-picker > summary {
  flex-wrap: nowrap; min-height: 44px; border-color: transparent;
  background: transparent; padding: .55rem .65rem; gap: .5rem;
}
.header-inner > .public-language-picker > summary:hover,
.header-inner > .public-language-picker[open] > summary { background: #ffe0da; }
.header-inner > .public-language-picker > summary bdi {
  max-width: 10rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.header-inner > .public-language-picker > .public-language-options {
  position: absolute; inset-inline-end: 0; top: 100%; z-index: 30;
  width: min(36rem, calc(100vw - 3rem)); max-height: min(28rem, 65vh);
  display: grid; gap: .35rem; margin: .5rem 0 0; padding: .6rem;
  box-shadow: 0 12px 36px #34231e1a;
}
@media (max-width: 70rem) {
  .header-inner > nav { margin-inline-start: 0; }
  .localized-information .header-inner > .public-language-picker { margin-inline-start: auto; }
}
@media (max-width: 30rem) {
  .localized-information .header-inner { gap: .5rem; }
  .localized-information .header-inner > .public-language-picker { flex: 1 1 0%; min-width: 0; }
  .header-inner > .public-language-picker > summary { max-width: 100%; box-sizing: border-box; }
  .header-inner > .public-language-picker > summary bdi { min-width: 0; }
  .header-inner > .public-language-picker > summary bdi { max-width: 6rem; }
  .header-inner > .public-language-picker > .public-language-options { grid-template-columns: minmax(0, 1fr); }
}
.public-language-picker > summary bdi { font-weight: 700; }
.public-language-picker[open] .language-chevron { transform: rotate(180deg); }
.public-language-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  gap: .4rem;
  max-height: 24rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  margin-block: .65rem;
  padding: .4rem;
  border: 1px solid #e3c5b8;
  border-radius: 1.25rem;
  background: #fff;
}
.public-language-options a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .65rem .5rem;
  border-radius: .75rem;
  text-decoration: none;
  color: #34231e;
}
.public-language-options a[aria-current="true"] { background: #ffe0da; font-weight: 700; }
.public-language-options a:hover { background: #fff3e4; }
.public-language-picker summary:focus-visible,
.public-language-options a:focus-visible { outline: 3px solid #34231e; outline-offset: 2px; }
.localized-business header,
.localized-business footer { flex-wrap: wrap; }
.localized-business header > a { max-width: 100%; }
.localized-business .public-language-picker { width: 100%; }
.localized-business .public-language-options a { text-decoration: none; }
.localized-business h1 { font-size: clamp(1.75rem,5vw,3rem); line-height: 1.2; }
.localized-business h2 { font-size: 1.375rem; line-height: 1.3; }
.localized-business .hours { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
@media (max-width: 30rem) {
  .localized-business .hours { grid-template-columns: minmax(0,1fr); gap: .25rem; }
  .localized-business .hours dd { margin-block-end: .75rem; }
}
/* Prefer whole Korean words; very narrow/zoomed layouts may still wrap. */
.localized-information:lang(ko) { word-break: keep-all; }
.localized-information .container { width: min(calc(100% - 48px), 76rem); }
.localized-information .header-inner > * { min-width: 0; max-width: 100%; }
.localized-information nav a { min-width: 0; max-width: 100%; }
.localized-information h1,
.localized-information h2 { letter-spacing: normal; }
/* Bengali vowel signs need more vertical room than the Latin hero type. */
.localized-information:lang(bn) h1,
.localized-information:lang(bn) h2 { line-height: 1.35; }
/* Southern Indic marks need room above/below wrapped heading lines. Match
   each heading's inherited language so embedded German originals stay intact. */
.localized-information h1:lang(te),
.localized-information h2:lang(te),
.localized-information h1:lang(ta),
.localized-information h2:lang(ta) { line-height: 1.5; }
.localized-information .skip-link { left: auto; inset-inline-start: 1rem; }
.localized-information a[href="mailto:support@happeti.de"]:not(.button) {
  direction: ltr;
  unicode-bidi: isolate;
}
.localized-information .business-section .actions .button { margin-top: 0; }
.localized-information .business-model { min-width: 0; }
.localized-information .business-model-top {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
}
.localized-information .business-model-top > * { min-width: 0; }
.localized-information .business-mascot { max-width: 100%; height: auto; }
.localized-information .knowledge-card ol {
  padding-left: 0;
  padding-inline-start: 1.3rem;
}
@media (max-width: 48rem) {
  .localized-information .business-section .actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
  }
  .localized-information .business-section .actions .text-link {
    padding-block: .5rem;
    text-align: center;
  }
}
