[hidden] { display: none !important; }
section { scroll-margin-top: 80px; }
:focus-visible { outline: 3px solid var(--primary); outline-offset: 4px; }
.demo-note { margin-top: 7px; font-size: 11px; color: var(--muted-foreground); }
.replica-notice { font-size: 11px; color: var(--muted-foreground); }
.radio-label { position: relative; }
.accessible-radio { position: absolute; width: 1px; height: 1px; opacity: 0; }
.radio-label:focus-within { outline: 3px solid var(--primary); outline-offset: 2px; }
.carousel-btn:disabled { cursor: default; opacity: .35; }
.info-dialog { margin: auto; border: 1px solid var(--border); border-radius: 24px; padding: 42px; width: min(520px, calc(100% - 32px)); color: var(--foreground); background: var(--surface); box-shadow: var(--shadow-elegant); }
.info-dialog::backdrop { background: #08212b88; backdrop-filter: blur(6px); }
.info-dialog h2 { font-size: 26px; padding-right: 16px; }
.info-dialog p { margin-top: 18px; line-height: 1.8; color: var(--muted-foreground); }
.info-close { position: absolute; top: 14px; right: 18px; border: 0; border-radius: 50%; width: 30px; height: 30px; font-size: 23px; background: var(--secondary); }
.quiz-error { color: var(--accent); margin-top: 12px; font-size: 13px; }
.quiz-done .btn-shimmer { margin-top: 24px; padding: 12px 22px; border-radius: 99px; }
.footer-bottom-inner { flex-wrap: wrap; }
@media (max-width: 639px) {
  .quiz-card-header, .quiz-card-body { padding: 24px 20px; }
  .quiz-card-footer { padding: 20px; flex-wrap: wrap; gap: 10px; }
  .quiz-nav { gap: 8px; }
  .btn-next { padding: 13px 16px; font-size: 13px; }
  .btn-back { padding: 12px; }
  .hero-badge { font-size: 10px; }
  .hero-title { overflow-wrap: break-word; }
  .trustpilot-badge { left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Kapitalwacht identity: preserve the supplied transparent artwork. */
.header-logo img { width: clamp(190px, 20vw, 250px); height: auto; }
.footer-brand img { width: 270px; max-width: 100%; height: auto; }

/* German content and one draft office. */
html[lang="de-DE"] h1, html[lang="de-DE"] h2, html[lang="de-DE"] h3,
html[lang="de-DE"] p, html[lang="de-DE"] .radio-text { hyphens: auto; overflow-wrap: break-word; }
.header-actions, .header-cta { flex-shrink: 0; }
.hero-badge { max-width: 100%; }
.footer-offices { grid-template-columns: 1fr; align-content: start; }
.draft-badge { display: inline-block; margin-top: 12px; padding: 5px 9px; border: 1px solid var(--border); border-radius: 6px; background: var(--primary-soft); color: var(--primary); font-size: 11px; line-height: 1.5; }
.contact-draft { margin-top: 10px; font-size: 14px; color: var(--muted-foreground); line-height: 1.6; }
.draft-note { margin-top: 14px; font-size: 12px; color: var(--muted-foreground); line-height: 1.6; }
#info-copy { white-space: pre-line; }
.info-dialog { max-height: calc(100dvh - 40px); overflow-y: auto; }
@media (min-width: 1024px) { .footer-main { grid-template-columns: 1.3fr 1fr 1fr; } }
@media (min-width: 1024px) and (max-width: 1199px) {
  .header-nav { display: none; }
  .menu-btn { display: flex; }
}
@media (max-width: 639px) {
  .quiz-card-top { gap: 12px; }
  .hero-badge { font-size: 10px; line-height: 1.5; }
  .quiz-card-title { font-size: 1.2rem; }
  .footer-links { flex-wrap: wrap; gap: 16px; }
}

/* Language choices are available in the burger menu at every screen size. */
.menu-btn { display: inline-flex; }
.mobile-nav { max-height: calc(100dvh - 80px); overflow-y: auto; }
.language-menu { max-width: 80rem; margin-inline: auto; padding: 18px 24px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--border); }
.language-label { font-size: 14px; font-weight: 600; color: var(--muted-foreground); }
.language-options { display: flex; gap: 8px; }
.language-option { padding: 10px 16px; min-height: 44px; border: 1px solid var(--border-strong); border-radius: 999px; background: var(--surface); color: var(--foreground); font-size: 14px; font-weight: 600; }
.language-option:hover { background: var(--primary-soft); }
.language-option[aria-pressed="true"] { border-color: var(--accent); background: var(--accent); color: white; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 1200px) {
  .mobile-nav nav { display: none; }
  .language-menu { padding: 18px 40px; border-top: 0; }
  .header-nav { gap: 20px; }
}
