*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --blue: #0089cf;
  --red: #ee3124;
  --blue-light: #e6f3fb;
  --text: #2d3436;
  --text-light: #636e72;
  --white: #ffffff;
  --radius: 10px;
}

body {
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  color: var(--text);
  background: #fdfefe;
  line-height: 1.6;
}

/* ---------- Hero ---------- */
.hero {
  text-align: center;
  padding: 2rem 1.5rem;
  border-bottom: 1px solid #e0e0e0;
}

.hero img {
  max-width: 220px;
  height: auto;
}

/* ---------- Content ---------- */
.content {
  max-width: 680px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem;
}

/* ---------- Cards (Startseite) ---------- */
.content--narrow { max-width: 600px; }

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.25rem;
}

.card {
  background: var(--white);
  border: 1px solid #e0e0e0;
  border-radius: var(--radius);
  padding: 1.5rem;
}

.card h2 {
  font-size: 1rem;
  margin-bottom: .5rem;
  color: var(--blue);
}

.card ul { list-style: none; padding: 0; color: var(--text-light); font-size: .95rem; }
.card ul li { padding: .15rem 0; }
.card a { color: var(--blue); text-decoration: none; }
.card a:hover { text-decoration: underline; }

/* ---------- Sprechzeiten ---------- */
.hours-table {
  width: 100%;
  border-collapse: collapse;
}

.hours-table td,
.hours-table th {
  padding: .35rem 0;
  font-size: .95rem;
  color: var(--text-light);
  border-bottom: 1px solid #f0f0f0;
  text-align: left;
}

.hours-table td:first-child,
.hours-table th { font-weight: 600; color: var(--text); }
.hours-table tr:last-child td,
.hours-table tr:last-child th { border-bottom: none; }

/* ---------- Hinweis-Banner ---------- */
.notice {
  background: var(--blue-light);
  border-left: 3px solid var(--red);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 1rem 1.25rem;
  margin-top: 1.5rem;
  text-align: center;
  font-size: .9rem;
}

/* ---------- Typografie (Unterseiten) ---------- */
h1 {
  font-size: 1.4rem;
  color: var(--blue);
  margin-bottom: 1.5rem;
}

h2 {
  font-size: 1.1rem;
  color: var(--blue);
  margin-top: 2rem;
  margin-bottom: .75rem;
}

h3 {
  font-size: 1rem;
  color: var(--text);
  margin-top: 1.25rem;
  margin-bottom: .5rem;
}

p {
  margin-bottom: .75rem;
  color: var(--text-light);
  font-size: .95rem;
}

ul {
  margin: .5rem 0 .75rem 1.25rem;
  color: var(--text-light);
  font-size: .95rem;
}

ul li { margin-bottom: .3rem; }

a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }

.back {
  display: inline-block;
  margin-bottom: 1.5rem;
  font-size: .9rem;
}

/* ---------- Hervorhebung (DSE) ---------- */
.emphasis {
  background: var(--blue-light);
  border-left: 3px solid var(--red);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 1rem 1.25rem;
  margin: 1rem 0;
  font-size: .9rem;
  color: var(--text);
}

/* ---------- Footer ---------- */
footer {
  text-align: center;
  padding: 1.5rem;
  font-size: .8rem;
  color: var(--text-light);
}

footer a { color: var(--blue); text-decoration: none; }
address { font-style: normal; }