
/* Local reset and focus styles */
html{line-height:1.15}body{margin:0;font-weight:400;font-style:normal;letter-spacing:.01em;line-height:1.6;color:var(--color-on-surface);background:var(--color-surface);fill:var(--color-on-surface)}p,li,ul,pre,div,h1,h2,h3,h4,h5,h6,figure,blockquote,figcaption{margin:0;padding:0}button{background-color:transparent}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;color:inherit}a{color:inherit;text-decoration:inherit}pre{white-space:normal}input{padding:2px 4px}img{display:block}details{display:block;margin:0;padding:0}summary::-webkit-details-marker{display:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-primary,#2563eb);outline-offset:2px}[tabindex="-1"]:focus-visible{outline:none}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.navigation-section{background:var(--color-surface)}}

:root {
  --font-family-body: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-family-heading: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; overflow-x: clip; font-family: var(--font-family-body); }
img, svg, video { max-width: 100%; }
img { height: auto; }
a, button, input, textarea, select { font: inherit; }
.skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 99999; padding: .75rem 1rem; background: #0f1720; color: #fff; border-radius: .5rem; transform: translateY(-180%); text-decoration: none; }
.skip-link:focus { transform: translateY(0); }
.site-main { min-width: 0; }
.site-main > section { padding-top: clamp(3.25rem, 6vw, 5.5rem); padding-bottom: clamp(3.25rem, 6vw, 5.5rem); }
.site-main > section + section { margin-top: 0; }
.footer-static { cursor: default; margin: 0; }
.footer-meta { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.2); font-size: .875rem; line-height: 1.6; opacity: .82; }
.form-status { min-height: 1.5em; margin: .75rem 0 0; font-size: .95rem; color: var(--color-primary); font-weight: 600; }
.legal-links-grid { width: 100%; display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.legal-link-card { flex: 1 1 15rem; min-width: 0; padding: 1.25rem; color: inherit; text-decoration: none; }
.legal-link-card h3 { margin-top: 0; }
.legal-link-card p { margin-bottom: 0; color: var(--color-on-surface-secondary); }
input, textarea, select { max-width: 100%; }
textarea { resize: vertical; }
@media (max-width: 767px) {
  .site-main > section { padding-top: 3rem; padding-bottom: 3rem; }
  .site-main h1, .site-main h2, .site-main h3, .legal-page h1, .legal-page h2 { text-align: center; overflow-wrap: anywhere; }
  .site-main h1, .hero-title { font-size: clamp(2rem, 9vw, 2.65rem) !important; line-height: 1.12 !important; }
  .site-main h2, .section-title { font-size: clamp(1.55rem, 7vw, 2rem) !important; line-height: 1.2 !important; }
  .site-main h3 { font-size: clamp(1.1rem, 5.2vw, 1.35rem) !important; }
  .form-row, .kontakt-split-layout, .kontakt-info-layout, .kontakt-contact-grid, .kontakt-full-form { display: flex !important; flex-direction: column !important; width: 100% !important; min-width: 0 !important; }
  .kontakt-form-field, .form-field, .kontakt-form-main, .kontakt-details-sidebar, .kontakt-form-overlap { width: 100% !important; min-width: 0 !important; }
  .kontakt-full-form, .kontakt-quick-form { gap: 1rem !important; }
  .btn, button { max-width: 100%; white-space: normal; }
  .footer-meta { text-align: center; }
  .legal-links-grid { flex-direction: column; }
}
@media (max-width: 479px) {
  .site-main > section { padding-left: 1rem !important; padding-right: 1rem !important; }
  .navigation-bar { padding-left: .9rem !important; padding-right: .9rem !important; }
  .logo-text { font-size: .95rem !important; }
}

/* Tablet navigation: switch before desktop actions can overflow. */
@media (max-width: 1199px) {
  .navigation-bar { padding-left: var(--spacing-lg) !important; padding-right: var(--spacing-lg) !important; }
  .navigation-zone-center, .navigation-actions { display: none !important; }
  .navigation-hamburger { display: flex !important; }
  .navigation-checkbox:checked ~ .navigation-mobile-overlay { display: flex !important; }
}

/* Course cards: allow clean wrapping on tablet widths. */
@media (max-width: 1199px) {
  .kurse-cards-suite { flex-wrap: wrap !important; }
  .kurs-card { flex: 1 1 18rem !important; min-width: 0 !important; }
}
@media (max-width: 991px) {
  .geometric-panel-left, .geometric-panel-right { display: none !important; }
}
@media (max-width: 1199px) {
  .geometric-panel-left, .geometric-panel-right { display: none !important; }
}

/* Final interaction hardening */
.navigation-hamburger, .navigation-close { cursor: pointer; }
a:has(> .btn), a:has(> [class*="navigation-btn"]) { display: inline-flex; max-width: 100%; }
@media (max-width: 767px) {
  a:has(> .btn), a:has(> [class*="navigation-btn"]) { justify-content: center; }
}

/* Final mobile polish: avoid cramped process cards and empty image space. */
@media (max-width: 520px) {
  .home-hero-process {
    flex-direction: column !important;
    align-items: stretch !important;
    max-width: 22rem;
    margin-left: auto;
    margin-right: auto;
  }
  .process-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  .process-card-title { overflow-wrap: normal !important; word-break: normal !important; }
}
@media (max-width: 991px) {
  .mission-image-wrapper { min-height: 0 !important; }
  .mission-img { width: 100% !important; height: auto !important; aspect-ratio: 3 / 2; object-fit: cover; }
}
