
/* Local project fixes: accessibility, mobile navigation and legal pages. */
html, body { width: 100%; max-width: 100%; }
body { min-width: 0; }
main, section, article, aside, header, nav, footer, form, div { min-width: 0; }
input, textarea, select, button, img, video, canvas, svg { max-width: 100%; }
h1, h2, h3, h4, h5, h6, p, li, a, span { overflow-wrap: break-word; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
.skip-link {
  position: fixed; top: 0.75rem; left: 0.75rem; z-index: 2200;
  padding: 0.65rem 0.9rem; border-radius: var(--border-radius-sm);
  color: var(--color-on-primary); background: var(--color-primary);
  transform: translateY(-180%); transition: transform 0.15s ease;
}
.skip-link:focus { transform: translateY(0); }
.navigation-mobile-overlay.is-open { display: flex; }
.navigation-menu-pill, .navigation-close-trigger { border: 0; }
.navigation-contact-text { cursor: default; }
.navigation-footer-link.navigation-contact-text { text-decoration: none; }
.form-status {
  margin-top: var(--spacing-md); padding: var(--spacing-md);
  border: 1px solid var(--color-border); border-radius: var(--border-radius-md);
  color: var(--color-on-surface-secondary); background: var(--color-surface-tint);
}
.legal-content {
  width: min(100% - 2rem, 54rem); margin: 0 auto;
  padding: 8rem 0 var(--spacing-4xl); display: flex; gap: 1rem; flex-direction: column;
}
.legal-content h1 { margin: 0 0 0.5rem; font-family: var(--font-family-heading); font-size: var(--font-size-3xl); line-height: 1.15; }
.legal-content h2 { margin: 1.5rem 0 0.15rem; font-family: var(--font-family-heading); font-size: var(--font-size-xl); line-height: 1.3; }
.legal-content h3 { margin: 1rem 0 0.1rem; font-size: var(--font-size-lg); }
.legal-content p, .legal-content li { color: var(--color-on-surface-secondary); line-height: 1.75; }
.legal-content ul, .legal-content ol { margin: 0; padding-left: 1.35rem; display: grid; gap: 0.45rem; }
.legal-content a { color: var(--color-secondary); text-decoration: underline; text-underline-offset: 0.18em; }
.legal-back-link { align-self: flex-start; margin-bottom: 0.75rem; font-weight: 600; }
.legal-meta { font-size: var(--font-size-sm); }
.legal-contact-box { margin-top: 0.5rem; padding: var(--spacing-lg); border: 1px solid var(--color-border); border-radius: var(--border-radius-md); background: var(--color-surface-tint); }
@media (max-width: 767px) {
  .legal-content { width: min(100% - 2rem, 54rem); padding-top: 6.5rem; }
  .navigation-overlay-link { white-space: normal; overflow-wrap: anywhere; }
  .cn-footer-inner { padding-left: var(--spacing-xl); padding-right: var(--spacing-xl); }
  .cn-footer-utility { flex-direction: column; }
  .cn-footer-nav-zone { justify-content: flex-start; gap: var(--spacing-md) var(--spacing-lg); }
  .cn-footer-info-grid { flex-direction: column; }
}
@media (max-width: 390px) {
  .navigation-bar { padding-left: var(--spacing-md); padding-right: var(--spacing-md); }
  .company-logo-brand { font-size: 0.88rem; }
  .company-logo-legal { font-size: 0.5rem; }
  .cn-hero-content, .experience-hero-content { padding-left: var(--spacing-md); padding-right: var(--spacing-md); }
  .kino-hero, .kontakt-hero { padding-left: var(--spacing-md); padding-right: var(--spacing-md); }
  .btn { white-space: normal; }
}
