/* Molekularium · Zugangs- und Textseiten (Passwortabfragen, Kontakt, Impressum, Datenschutz)
   Ergänzt site.css. Gleiche Farben, Schrift und Abstände wie die Startseite. */

.zugang { max-width: 640px; padding: 72px 0 120px; display: flex; flex-direction: column; gap: 28px; }
.zugang .meta { font-size: 14px; color: var(--muted); }
.zugang h1 { font-size: 56px; line-height: 1.02; letter-spacing: -0.03em; font-weight: 500; }
.zugang .unter { font-size: 20px; line-height: 1.45; font-weight: 300; }
.zugang form { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.zugang label { font-size: 14px; color: var(--muted); }
.zugang input[type="password"] {
  width: 100%; padding: 18px 20px; font: inherit; font-size: 18px; color: var(--fg);
  background: var(--bg2); border: 1px solid var(--line); border-radius: 14px; outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.zugang input[type="password"]:focus { border-color: var(--fg); box-shadow: 0 0 0 3px rgba(240, 180, 41, .35); }
.zugang button.kapsel { width: 100%; border: 0; font: inherit; font-weight: 500; font-size: 17px; cursor: pointer; }
.zugang .fehler { min-height: 1.4em; font-size: 15px; color: #B4231F; }
[data-theme="dark"] .zugang .fehler { color: #FF9A94; }
.zugang .hinweis { font-size: 15px; line-height: 1.55; font-weight: 300; color: var(--muted); }
.zugang .hinweis.kasten { padding: 16px 20px; border: 1px solid var(--line); border-radius: 14px; }
.zugang .abmelden { align-self: flex-start; min-height: 44px; display: inline-flex; align-items: center; font-size: 15px; color: var(--muted); text-decoration: none; }
.zugang .abmelden:hover { color: var(--fg); text-decoration: underline; }
.zugang .liste a { grid-template-columns: minmax(0, 1fr) 24px; }
.zugang .liste svg { color: var(--muted); }

/* Textseiten */
.text { max-width: 760px; padding: 72px 0 120px; display: flex; flex-direction: column; gap: 20px; }
.text h1 { font-size: 56px; line-height: 1.02; letter-spacing: -0.03em; font-weight: 500; }
.text .stand { font-size: 14px; color: var(--muted); }
.text h2 { font-size: 22px; font-weight: 500; letter-spacing: -0.015em; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.text p, .text li { font-size: 17px; line-height: 1.6; font-weight: 300; }
.text ul { margin: 0; padding-left: 22px; }
.text a { text-decoration: underline; text-underline-offset: 4px; }
.text .kasten { padding: 18px 22px; border: 1px solid var(--line); border-radius: 14px; }
.text .kasten p { margin: 0; }
.text .mail { align-self: flex-start; margin-top: 8px; }

@media (max-width: 760px) {
  .zugang, .text { padding: 48px 0 80px; }
  .zugang h1, .text h1 { font-size: 40px; }
}

/* Kurze Seiten: Kopfbereich füllt den Bildschirm, der Fuß bleibt unten */
.kopf:has(.zugang), .kopf:has(.text) { min-height: calc(100vh - 90px); }
