/* Grundschule Theme: Stil "Campus" (sachlich, flaechig, grosses Aufklappmenue).
   Angelehnt an den Aufbau und die Typografie moderner Hochschul-Websites. Keine fremden Logos, Schriften oder Farben.
   Aktiv, wenn die Einstellung grundschuleDesignStil auf "campus" steht (Standard). Alles ist unter .stil-campus eingegrenzt. */

/* Hilfsbausteine, die in beiden Stilen vorhanden sind, aber nur im Stil Campus sichtbar werden */
.kopfleiste, .sub-kopf { display: none; }

.stil-campus {
  /* Univers wird nur genutzt, wenn sie auf dem Geraet installiert ist (nicht eingebettet, keine Lizenzfrage). Sonst Helvetica/Arial. */
  font-family: "Univers", "Univers LT Std", "Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;
  --radius: 2px; --rand: #cfcfcf; --text: #1a1a1a;
  line-height: 1.55;
}
.stil-campus h1, .stil-campus h2, .stil-campus h3 { color: #111; font-weight: 700; letter-spacing: -.01em; }
.stil-campus h1 { font-size: clamp(1.9rem, 5.5vw, 2.8rem); line-height: 1.12; margin: 0 0 1.25rem; }
.stil-campus .content h2 { font-size: clamp(1.45rem, 4vw, 1.95rem); margin-top: 2.5rem; }
.stil-campus .content h2::before { content: ""; display: block; width: 3rem; height: 4px; margin-bottom: .6rem; background: var(--akzent); }
.stil-campus .content h3 { font-size: 1.3rem; }
.stil-campus a { text-decoration-thickness: 1px; }
.stil-campus .content > * { max-width: 44rem; }

/* Kopfleiste (Schnellzugriff) */
.stil-campus .kopfleiste { display: block; background: #f1f1f1; border-bottom: 1px solid #dcdcdc; font-size: .85rem; }
.kopf-inner { padding-top: 0; padding-bottom: 0; }
.kopfleiste ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.25rem; justify-content: flex-end; }
.kopfleiste li { margin: 0; }
.kopfleiste a { display: inline-block; padding: .55rem 0; color: #1a1a1a; text-decoration: none; }
.kopfleiste a:hover { text-decoration: underline; }

/* Kopf, Logo links, Menue als Leiste unter dem Logo */
.stil-campus .site-header { background: #fff; border-bottom: 1px solid #d9d9d9; }
.stil-campus .header-inner { position: relative; justify-content: flex-start; gap: 0; padding-top: 1rem; padding-bottom: 0; }
.stil-campus .logo { flex: 0 1 38rem; max-width: 38rem; text-align: left; }
.stil-campus .logo img { margin: 0; }
.stil-campus .nav-toggle { border-radius: 0; margin: .75rem 0; }
.stil-campus .nav a { border-radius: 0; }
.stil-campus .nav > li { border-left-width: 4px; }

/* Aufgeraeumte Bereichs- und Kartenoptik */
.stil-campus .bereich { padding: 0; margin: 0 0 .75rem; background: none; border: 0; border-radius: 0; color: var(--primaer); font-size: .8rem; text-transform: uppercase; letter-spacing: .09em; }
.stil-campus .breadcrumb { font-size: .85rem; color: #555; }
.stil-campus .karte-link, .stil-campus .partner-link, .stil-campus .album-link {
  border: 0; border-top: 4px solid var(--akzent); border-radius: 0; background: #f5f5f5; padding: 1.1rem 1.25rem; box-shadow: none;
}
.stil-campus .karte-link:hover, .stil-campus .partner-link:hover, .stil-campus .album-link:hover { background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.14); }
.stil-campus .karte-link:hover .karte-titel, .stil-campus .album-link:hover .album-titel, .stil-campus .partner-link:hover .partner-name { text-decoration: underline; }
.stil-campus .karte-datum { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: #555; }
.stil-campus .karte-titel, .stil-campus .partner-name, .stil-campus .album-titel { color: #111; font-size: 1.2rem; }
.stil-campus .news-eintrag { border-left-width: 4px; }
.stil-campus .faq-eintrag, .stil-campus .download-eintrag { border-radius: 0; border-width: 0 0 0 4px; border-left: 4px solid var(--akzent); background: #f5f5f5; }
.stil-campus .album-bild, .stil-campus .galerie a, .stil-campus img { border-radius: 0; }
.stil-campus .termin-tabelle thead th { background: #1a1a1a; }
.stil-campus .news-strip { background: #f1f1f1; border-top: 0; border-bottom: 1px solid #dcdcdc; }
.stil-campus .news-title { text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; color: #111; }
.stil-campus .partner-banner, .stil-campus .pb-link, .stil-campus .lightbox, .stil-campus .lightbox button { border-radius: 0; }

/* Fussbereich mit Spalten */
.footer-spalten { display: grid; gap: 1.5rem 2rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.footer-titel { margin: 0 0 .5rem; font-weight: 700; }
.footer-liste { list-style: none; margin: 0; padding: 0; }
.footer-liste li { margin: 0; }
.nach-oben { margin: 1.5rem 0 0; text-align: right; }
.stil-campus .site-footer { background: #262626; border-top: 6px solid var(--akzent); margin-top: 3rem; }
.stil-campus .footer-titel { font-size: .8rem; text-transform: uppercase; letter-spacing: .09em; color: #d6d6d6; }
.stil-campus .site-footer a { text-decoration: none; }
.stil-campus .site-footer a:hover { text-decoration: underline; }

/* Desktop: Menue linksbuendig mit grossem Aufklappfeld ueber die volle Inhaltsbreite */
@media (min-width: 56rem) {
  .stil-campus .site-nav { flex: 1 1 100%; margin-top: .9rem; border-top: 1px solid #d9d9d9; }
  .stil-campus .nav { justify-content: flex-start; gap: 0; }
  .stil-campus .nav > li { position: static; border: 0; border-bottom: 4px solid transparent; border-radius: 0; }
  .stil-campus .nav > li:hover, .stil-campus .nav > li:focus-within, .stil-campus .nav > li.active { border-bottom-color: var(--akzent); }
  .stil-campus .nav > li > a { padding: .95rem 1.1rem; background: none; color: #111; font-size: 1.05rem; }
  .stil-campus .nav > li > a:hover, .stil-campus .nav .active > a, .stil-campus .nav a[aria-current="page"] { background: none; color: var(--primaer); }
  .stil-campus .sub {
    left: 0; right: 0; width: auto; min-width: 0; padding: 1.5rem 1.25rem 1.75rem;
    background: #fff; border: 0; border-top: 4px solid var(--akzent); border-radius: 0; box-shadow: 0 14px 28px rgba(0,0,0,.18);
    columns: 3 14rem; column-gap: 2rem;
  }
  .stil-campus .sub li { break-inside: avoid; margin: 0; }
  .stil-campus .sub a { padding: .4rem 0; min-height: 2.5rem; color: #111; font-weight: 400; background: none; }
  .stil-campus .sub a:hover { color: var(--primaer); text-decoration: underline; background: none; }
  .stil-campus .sub .sub-kopf { display: block; column-span: all; margin: 0 0 .75rem; }
  .stil-campus .sub .sub-kopf a { font-size: 1.25rem; font-weight: 700; color: var(--primaer); }
  .stil-campus .sub-partner { right: 0; max-width: none; columns: auto; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); }
  .stil-campus .nav .sub-partner a.sub-logo-link { padding: .5rem; border-radius: 0; }
}

/* Hoher Kontrast bleibt vorrangig */
html.a11y-kontrast .stil-campus h1, html.a11y-kontrast .stil-campus h2, html.a11y-kontrast .stil-campus h3 { color: #fff; }
html.a11y-kontrast .stil-campus .kopfleiste, html.a11y-kontrast .stil-campus .news-strip { background: #000; border-color: #fff; }
html.a11y-kontrast .stil-campus .kopfleiste a, html.a11y-kontrast .stil-campus .nav > li > a, html.a11y-kontrast .stil-campus .sub a,
html.a11y-kontrast .stil-campus .sub .sub-kopf a { color: #FFE600; background: none; }
html.a11y-kontrast .stil-campus .sub { background: #000; border-top-color: #FFE600; }
html.a11y-kontrast .stil-campus .karte-link, html.a11y-kontrast .stil-campus .partner-link, html.a11y-kontrast .stil-campus .album-link,
html.a11y-kontrast .stil-campus .faq-eintrag, html.a11y-kontrast .stil-campus .download-eintrag { background: #000; color: #fff; border-top-color: #FFE600; }
html.a11y-kontrast .stil-campus .karte-titel, html.a11y-kontrast .stil-campus .partner-name, html.a11y-kontrast .stil-campus .album-titel,
html.a11y-kontrast .stil-campus .karte-datum, html.a11y-kontrast .stil-campus .news-title, html.a11y-kontrast .stil-campus .bereich { color: #FFE600; }
html.a11y-kontrast .stil-campus .site-footer { background: #000; border-top-color: #FFE600; }
html.a11y-kontrast .stil-campus .footer-titel { color: #fff; }
html.a11y-kontrast .stil-campus .termin-tabelle thead th { background: #FFE600; color: #000; }

/* Dritte Menuebene im grossen Aufklappfeld: Ebene 2 als fette Spaltenueberschrift, Ebene 3 darunter */
@media (min-width: 56rem) {
  .stil-campus .sub > li.sub-mit-ebene3 > a { font-weight: 700; }
  .stil-campus .sub-3 { padding-left: 0; margin: 0 0 .75rem; }
  .stil-campus .sub-3 a { font-size: .95rem; min-height: 2.25rem; padding: .25rem 0; }
}

/* Menue-Schrift auch im Stil Campus (hoehere Spezifitaet noetig) */
.stil-campus .nav > li > a { font-weight: var(--menue-staerke, 500); font-size: max(.8rem, calc(1.05rem * var(--menue-skala, 1))); }
.stil-campus .sub a { font-weight: var(--unter-staerke, 400); font-size: max(.8rem, calc(1rem * var(--menue-skala, 1))); }
@media (min-width: 56rem) {
  .stil-campus .sub > li.sub-mit-ebene3 > a { font-weight: var(--ebene2-staerke, 600); }
  .stil-campus .sub .sub-kopf a { font-weight: var(--ebene2-staerke, 600); font-size: max(1rem, calc(1.25rem * var(--menue-skala, 1))); }
  .stil-campus .sub-3 a { font-weight: var(--unter-staerke, 400); }
}
