/* Überarbeitung: persönliche Ansprache, Reflow, Tastatur und Einwilligung. */
.hero h1 { max-width: 17ch; }
.hero__copy, .anniversary, .grid > *, .layout > * { min-width: 0; }
.anniversary .anniv__txt { color: #fff; font-size: 1.6rem; letter-spacing: normal; }
.anniversary__list { display: grid; gap: 14px; list-style: none; padding: 24px 0 0; margin: 24px 0 0; border-top: 1px solid #4b577f; }
.anniversary__list li { display: flex; gap: 10px; align-items: start; color: #fff; }
.anniversary__list .icon { width: 20px; height: 20px; color: var(--accent); margin-top: 4px; }
.anniversary__note { border-top: 1px solid #4b577f; padding-top: 20px; margin: 24px 0 0; font-size: .8rem; color: #c9cfe9; }
.btn { min-height: 44px; white-space: normal; text-align: center; overflow-wrap: anywhere; }
.link-arrow { min-height: 44px; white-space: normal; }
.topbar a, .footer__bottom a, .footer__settings, .nav__sub a, .jump a { min-height: 44px; display: inline-flex; align-items: center; }
.nav__sub a { display: flex; }
.contact-list a { overflow-wrap: anywhere; }
.contact-card :focus-visible { outline-color: var(--accent); }
.field input, .field textarea { border-color: #7983a2; }
.field input:focus-visible, .field textarea:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
.footer__settings { background: none; border: 0; padding: 0; color: #dfe3f3; font: inherit; text-align: left; cursor: pointer; }
.footer__settings:hover { color: var(--accent); }
.privacy-dialog { width: min(620px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: clamp(22px, 4vw, 36px); border: 1px solid var(--line); border-radius: 18px; color: var(--text); background: #fff; overflow: hidden; box-shadow: var(--shadow-lg); }
.privacy-dialog[open] { display: flex; flex-direction: column; }
.privacy-dialog::backdrop { background: rgb(18 26 61 / .65); }
.privacy-dialog h2 { flex: none; margin: 0 0 16px; font-size: 1.6rem; }
.privacy-dialog p { max-width: 55ch; }
.privacy-dialog__body { flex: 1 1 auto; min-height: 0; padding: 3px; overflow-y: auto; overscroll-behavior: contain; }
.privacy-dialog__body p:first-child { margin-top: 0; }
.privacy-dialog__body p:last-child { margin-bottom: 0; }
.privacy-dialog__actions { flex: none; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.privacy-dialog__actions .btn { flex: 1 1 190px; border-color: var(--brand); color: var(--brand); background: #fff; }
.privacy-dialog__actions .btn:hover { color: #fff; background: var(--brand); }
.privacy-dialog__links { flex: none; margin: 12px 0 0; display: flex; gap: 4px 12px; flex-wrap: wrap; }
.privacy-dialog__links a { min-height: 44px; display: inline-flex; align-items: center; }
.form__status { margin: 0; color: var(--muted); }
button:disabled { cursor: wait; opacity: .8; }
@media (min-width: 768px) and (max-width: 1079.98px) { .topbar__claim { max-width: 38ch; } .topbar__inner { gap: 12px; } .topbar__links { gap: 12px; } }
@media (max-width: 1079.98px) { .nav { max-height: calc(100dvh - var(--header-h) - 44px); } }
@media (max-width: 599.98px) {
  .hero h1 { max-width: 18ch; font-size: clamp(1.9rem, 7.8vw, 2.45rem); }
  .hero__actions .btn { flex: 1 1 145px; }
  .section { padding: 48px 0; }
  .section__head { margin-bottom: 28px; }
  .anniversary__list { padding-top: 20px; }
  .anniversary__note { margin-top: 20px; }
  .more { grid-template-columns: 1fr; }
  .nowrap { white-space: normal; }
  .form-card, .address-card { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
@media (forced-colors: active) { :focus-visible { outline: 3px solid Highlight; } .btn, .privacy-dialog { border: 1px solid ButtonText; } }
@media print { .privacy-dialog { display: none !important; } }
/* Navigation bleibt auch ohne JavaScript benutzbar. */
html:not(.js) .header__inner { flex-wrap: wrap; }
html:not(.js) .nav { display: flex; position: static; width: 100%; max-height: none; overflow: visible; }
html:not(.js) .nav-toggle, html:not(.js) .nav__sub-toggle { display: none; }
html:not(.js) .nav__sub { display: block; position: static; min-width: 0; box-shadow: none; }
