/* Backend-only controls and translated content share the approved visual system. */
.language-switcher summary { text-transform: uppercase; }
.language-switcher .nav-panel { width: 145px; }
.language-switcher a[aria-current="true"] { font-weight: 750; background: #f3f3f3; }
.footer-legal button { border: 0; background: none; padding: 0; color: inherit; font: inherit; cursor: pointer; }
.footer-legal button:hover { text-decoration: underline; text-underline-offset: 4px; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.field-error { display: block; color: #94331e; font-size: 14px; line-height: 1.5; margin-top: 6px; font-weight: 500; }
#contact-form [aria-invalid="true"] { border-color: #94331e; }
.form-notice { padding: 18px 22px; margin-bottom: 24px; font-size: var(--type-body); line-height: 1.7; }
.form-notice.success { background: var(--accent-green); }
.form-notice.error { background: #fff0eb; border-left: 3px solid var(--accent-orange); }
.form-notice ul { margin: 10px 0 0; padding-left: 22px; }
.form-notice a { text-decoration: underline; text-underline-offset: 3px; }
.contact-page-form #contact-form { position: relative; }
.error-page { padding-block: 90px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 70px; align-items: center; min-height: 60vh; }
.error-page h1 { font: 600 var(--type-page-title)/1.03 var(--display); text-transform: uppercase; margin-block: 20px 26px; }
.error-page p { font-size: var(--type-body); line-height: var(--leading-body); }
.error-page .section-label, .error-page .error-reference { font-size: var(--type-small); }
.error-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 30px; }
.error-reference { margin-top: 24px; }
.error-number { font: 600 120px/1 var(--display); color: var(--accent-blue); }
.error-art svg { width: 100%; stroke: var(--ink); stroke-width: 2; }
.error-art .error-wire { stroke: var(--accent-blue); }
.error-art .error-accent { stroke: var(--accent-orange); }
.error-art p { font-size: 14px; }
:lang(en) .service-page h1, :lang(de) .service-page h1 { hyphens: auto; overflow-wrap: anywhere; }
:lang(de) .hero h1 { font-size: clamp(68px, 8vw, 127px); }
:lang(de) .service-heading h3 { hyphens: auto; }
@media (max-width: 800px) {
  :lang(de) .hero h1 { font-size: 12vw; }
}
@media (max-width: 540px) {
  :lang(de) .hero h1 { font-size: 14.3vw; }
}
@media (min-width: 1101px) and (max-width: 1400px) {
  .full-nav { gap: 12px; }
  .full-nav .nav-contact { padding-inline: 17px; }
}
@media (max-width: 1100px) {
  .language-switcher .nav-panel { width: auto; }
}
@media (max-width: 800px) {
  .error-page { grid-template-columns: 1fr; gap: 35px; padding-block: 50px; }
  .error-art { max-width: 420px; }
}
