/* Shared locale controls extend the existing HACOLD design system. */
html[data-locale] { hyphens: manual; }
html[data-locale="de"] { hyphens: auto; }
html[data-locale] h1, html[data-locale] h2, html[data-locale] h3 { overflow-wrap: anywhere; hyphens: manual; }
html[data-locale] .brand { white-space: nowrap; hyphens: none; }
.review-banner { display: flex; justify-content: center; align-items: baseline; gap: 1rem; flex-wrap: wrap; padding: .55rem 1.25rem; background: #e0e8e2; color: #203c35; font-size: .73rem; line-height: 1.5; border-bottom: 1px solid #bdccc2; }
.review-banner strong { font-weight: 750; }
.language-switcher { position: relative; margin-inline: .5rem .85rem; flex: 0 0 auto; align-self: center; color: var(--color-ink); font-size: .8125rem; line-height: 1.4; }
.language-switcher summary { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 2.75rem; padding: .5rem .35rem; cursor: pointer; list-style: none; border: 0; background: transparent; font-weight: 600; letter-spacing: .04em; }
.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher svg { flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.language-switcher__globe { width: 1.25rem; height: 1.25rem; }
.language-switcher__chevron { width: .625rem; height: .625rem; transition: transform 160ms ease; }
.language-switcher summary:hover,.language-switcher[open] summary { color: var(--color-signal); }
.language-switcher[open] .language-switcher__chevron { transform: rotate(180deg); }
.language-switcher nav { position: absolute; inset-block-start: calc(100% + .6rem); inset-inline-end: -.35rem; z-index: 100; width: 14rem; max-width: calc(100vw - 2rem); padding: .5rem 1rem .65rem; background: var(--color-paper); border: 1px solid var(--color-line); border-top: 2px solid var(--color-signal); box-shadow: 0 .5rem 1.25rem #1424240d; }
.language-switcher__heading { display: block; padding: .65rem .25rem .7rem; color: var(--color-ink-soft); font-size: .6875rem; font-weight: 550; letter-spacing: .08em; text-transform: uppercase; }
.language-switcher a { display: flex; align-items: center; gap: .75rem; min-height: 3rem; padding: .65rem .25rem; border-top: 1px solid var(--color-line); color: var(--color-ink); text-decoration: none; white-space: nowrap; font-size: .875rem; }
.language-switcher__code { flex: 0 0 1.4rem; color: var(--color-muted); font-size: .625rem; font-weight: 550; letter-spacing: .06em; }
.language-switcher__name { flex: 1; }
.language-switcher__check { width: 1rem; height: 1rem; }
.language-switcher a:hover { color: var(--color-signal); background: var(--color-canvas); }
.language-switcher a[aria-current] { color: var(--color-signal); font-weight: 650; }
.language-switcher a[aria-current] .language-switcher__code { color: var(--color-signal); }
.language-switcher :focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.site-footer__bottom { flex-wrap: wrap; gap: .8rem 1.5rem; }
.site-footer__directory, .site-footer__directory > nav, .site-footer__directory a { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.site-footer__directory > nav { grid-template-columns: minmax(0,1fr); }
.site-footer__directory a { width: auto; justify-self: start; }
html[data-locale] main article { min-width: 0; max-width: 100%; }
html[data-locale] main .button { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
html[data-locale] .related-grid a { width: auto; min-width: 0; max-width: 100%; align-self: flex-start; white-space: normal; overflow-wrap: anywhere; }
html[data-locale] .related-grid article > :is(p,h3,span) { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
html[data-locale] .related-grid a > span[aria-hidden] { flex-shrink: 0; }
.site-map-main { padding-block: clamp(3rem,6vw,6rem); background: #f2f0ea; }
.site-map-intro { max-width: 46rem; margin-bottom: clamp(2rem,4vw,4rem); }
.site-map-intro h1 { font-size: clamp(2.4rem,5vw,4.7rem); line-height: 1.08; letter-spacing: -.035em; margin-block: .75rem 1.35rem; }
.site-map-intro > p:last-child { max-width: 40rem; color: #4a5e56; font-size: 1.1rem; line-height: 1.65; }
.site-map-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2.5rem 3.5rem; align-items: start; }
.site-map-group { min-width: 0; border-top: 1px solid #9fafa4; padding-top: 1rem; }
.site-map-group__heading { display: flex; gap: 1rem; justify-content: space-between; align-items: start; margin-bottom: .7rem; }
.site-map-group h2 { font-size: 1.25rem; line-height: 1.35; margin: 0; font-weight: 650; }
.site-map-group__heading > span { color: #697e72; font-variant-numeric: tabular-nums; font-size: .8rem; }
.site-map-group ul { list-style: none; padding: 0; margin: 0; }
.site-map-group:nth-child(5) { grid-column: 1 / -1; }
.site-map-group:nth-child(5) ul { columns: 2; column-gap: 3.5rem; }
.site-map-group li { break-inside: avoid; }
.site-map-group li + li { border-top: 1px solid #cdd5cb; }
.site-map-group a { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: .9rem 0; color: #284c40; text-decoration: none; line-height: 1.5; overflow-wrap: anywhere; }
.site-map-group a:hover { color: #8a4b35; }
.site-map-group a > span { flex: none; opacity: .65; }
@media(max-width:68rem) { .language-switcher { order: 1; margin-inline: auto .6rem; } .site-header__inner.container { padding-inline-end: .75rem; } .site-header__inner > .nav-panel { order: 2; } .language-switcher nav { inset-inline-end: 0; } }
@media(min-width:68.01rem) and (max-width:80rem) { .site-header__inner.container { padding-inline-start: 1.5rem; gap: 1rem; } .primary-nav { gap: clamp(.75rem,1.1vw,1rem); } .nav-panel { gap: 1rem; } .language-switcher { margin-inline: .6rem; } }
@media(min-width:68.01rem) and (max-width:80rem) { .site-footer__directory { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:48rem) { .site-map-grid { grid-template-columns: 1fr; gap: 2rem; } .site-map-group:nth-child(5) ul { columns: 1; } .site-map-intro > p:last-child { font-size: 1rem; } .review-banner { justify-content: flex-start; gap: .15rem .7rem; padding-inline: 1rem; } }
@media(max-width:24rem) { .language-switcher { margin-inline: .1rem 0; } .language-switcher summary { gap: .35rem; padding-inline: .2rem; } .site-header__inner.container { padding-inline-start: 1rem; gap: .75rem; } }
@media(prefers-reduced-motion:reduce) { .language-switcher__chevron { transition: none; } }
