/* =========================================================
   Kinderlieder zum Mitsingen – modernes, responsives CSS
   Farbwelt und Grundcharakter der bisherigen Seite (Blau/Gelb,
   Regenbogen-Schriftzug, runde Karten) bleiben erhalten,
   das Layout ist aber komplett responsiv (Flexbox/Grid statt
   fester Pixel-Positionen).
   ========================================================= */

:root {
  --blau-dunkel:   #0000cc;
  --blau:          #0000ff;
  --blau-text:     #000099;
  --blau-mittel:   #3333aa;
  --gelb-kopf:     #f5df00;
  --gelb-karte:    #ffff99;
  --gelb-zitat:    #fffdb9;
  --weiss:         #ffffff;
  --schatten:      0 4px 16px rgba(60, 50, 0, 0.18);
  --radius:        16px;
  --max-width:     1080px;
  --font-head:     'Baloo 2', 'Comic Sans MS', system-ui, sans-serif;
  --font-body:     'Nunito', Arial, Helvetica, sans-serif;

  /* Handgezeichnete SVG-Icons (als Maske eingefärbt über currentColor) */
  --icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7'/%3E%3Cpath d='M5 10v9a1 1 0 0 0 1 1h4v-6h4v6h4a1 1 0 0 0 1-1v-9'/%3E%3C/svg%3E");
  --icon-idea: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 21h4'/%3E%3Cpath d='M12 3a6 6 0 0 0-4 10.5c.6.6 1 1.4 1 2.5h6c0-1.1.4-1.9 1-2.5A6 6 0 0 0 12 3z'/%3E%3C/svg%3E");
  --icon-note: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7' cy='18' r='3'/%3E%3Ccircle cx='17' cy='16' r='3'/%3E%3Cpath d='M10 18V4l10-2v14'/%3E%3C/svg%3E");
  --icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='1' stroke-linejoin='round'%3E%3Cpolygon points='12 2 15 9 22 9.5 16.5 14 18 21 12 17.5 6 21 7.5 14 2 9.5 9 9'/%3E%3C/svg%3E");
  --icon-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12'/%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3Cpath d='M5 21h14'/%3E%3C/svg%3E");
  --icon-gamepad: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='11' rx='4'/%3E%3Cpath d='M7 10v4'/%3E%3Cpath d='M5 12h4'/%3E%3Ccircle cx='16' cy='10.5' r='1'/%3E%3Ccircle cx='18.5' cy='13' r='1'/%3E%3C/svg%3E");
  --icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E");
  --icon-back: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 14l-5-5 5-5'/%3E%3Cpath d='M4 9h10a6 6 0 0 1 0 12h-3'/%3E%3C/svg%3E");
  --icon-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6l7-3z'/%3E%3C/svg%3E");
  --icon-doc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z'/%3E%3Cpath d='M14 3v6h6'/%3E%3Cpath d='M9 13h6'/%3E%3Cpath d='M9 17h6'/%3E%3C/svg%3E");
  --icon-arrow-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v14'/%3E%3Cpath d='M6 12l6 6 6-6'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; font-size: 108%; }

body {
  margin: 0;
  padding: 16px;
  background: linear-gradient(180deg, #fef9e0 0%, #eef4ff 60%, #eef4ff 100%);
  font-family: var(--font-body);
  color: var(--blau-text);
  line-height: 1.55;
}

.page {
  max-width: var(--max-width);
  margin: 0 auto;
}

a { color: var(--blau); }
a:hover { color: #009900; }

/* ---------- Kopfbereich ---------- */

.site-header {
  background: var(--gelb-kopf);
  border: 4px solid var(--blau);
  border-radius: var(--radius);
  box-shadow: var(--schatten);
  padding: 16px 24px;
}

.brand-row {
  display: flex;
  align-items: center;
  gap: 40px;
}

.brand-logo {
  flex-shrink: 0;
  width: 140px;
  height: auto;
  margin-left: 6px;
}

.site-title {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  justify-content: space-between;
  margin: 0;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: clamp(2.2rem, 8vw, 5.2rem);
  line-height: 1.05;
}

.sub-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 10px;
}

.brand-sub {
  margin: 0;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: clamp(0.8rem, 2vw, 1rem);
  color: var(--blau-mittel);
}

@media (min-width: 601px) {
  .site-title { padding-right: 76px; }
}

/* Regenbogen-Buchstaben – ein kleines Augenzwinkern aus dem alten Design */
.rainbow span:nth-child(1)  { color: #000088; }
.rainbow span:nth-child(2)  { color: #dd0000; }
.rainbow span:nth-child(3)  { color: #008800; }
.rainbow span:nth-child(4)  { color: #770011; }
.rainbow span:nth-child(5)  { color: #aa00aa; }
.rainbow span:nth-child(6)  { color: #33bb33; }
.rainbow span:nth-child(7)  { color: #aa9900; }
.rainbow span:nth-child(8)  { color: #ff5555; }
.rainbow span:nth-child(9)  { color: #5555ff; }
.rainbow span:nth-child(10) { color: #882222; }
.rainbow span:nth-child(11) { color: #22aa22; }
.rainbow span:nth-child(12) { color: #995599; }

/* Farbcodierung "Weihnachtslieder" – wie im ursprünglichen Design */
.weihnachten-title span:nth-child(1)  { color: #000088; }
.weihnachten-title span:nth-child(2)  { color: #dd0000; }
.weihnachten-title span:nth-child(3)  { color: #008800; }
.weihnachten-title span:nth-child(4)  { color: #770011; }
.weihnachten-title span:nth-child(5)  { color: #aa00aa; }
.weihnachten-title span:nth-child(6)  { color: #33bb33; }
.weihnachten-title span:nth-child(7)  { color: #000088; }
.weihnachten-title span:nth-child(8)  { color: #dd0000; }
.weihnachten-title span:nth-child(9)  { color: #008800; }
.weihnachten-title span:nth-child(10) { color: #770011; }
.weihnachten-title span:nth-child(11) { color: #aa9900; }
.weihnachten-title span:nth-child(12) { color: #ff5555; }
.weihnachten-title span:nth-child(13) { color: #5555ff; }
.weihnachten-title span:nth-child(14) { color: #882222; }
.weihnachten-title span:nth-child(15) { color: #22dd22; }
.weihnachten-title span:nth-child(16) { color: #995599; }

/* Weihnachtslieder-Überschrift steht zentriert, nicht auf die volle Breite verteilt.
   16 Buchstaben sind länger als "Kinderlieder", daher eigene (kleinere, fluide)
   Schriftgröße und ein sanfter, breitenabhängiger Buchstabenabstand, damit die
   Zeile auch auf schmalen Handy-Panels nicht überläuft. */
.weihnachten-title.site-title {
  display: block;
  text-align: center;
  flex: 1 1 auto;
  padding: 0 12px;
  font-size: clamp(1.45rem, 6.2vw, 5.2rem);
  letter-spacing: clamp(0px, 0.35vw, 7px);
  white-space: nowrap;
}

/* ---------- Navigation ---------- */

.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 46px;
  height: 46px;
  border: 2px solid #ddddff;
  background: linear-gradient(180deg, #5555ff, #0000aa);
  border-radius: 12px;
  box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease;
}

.nav-toggle:hover,
.nav-toggle:focus-visible {
  background: linear-gradient(180deg, #00cc00, #009900);
}

.nav-toggle .bar {
  display: block;
  width: 24px;
  height: 3px;
  border-radius: 2px;
  background: var(--weiss);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.nav-toggle[aria-expanded="true"] .bar:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .bar:nth-child(2) {
  opacity: 0;
}
.nav-toggle[aria-expanded="true"] .bar:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

.main-nav {
  background: var(--gelb-karte);
  border: 4px solid var(--blau);
  border-radius: var(--radius);
  box-shadow: var(--schatten);
  margin-top: 14px;
  padding: 10px;
}

.main-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.main-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  color: var(--weiss);
  font-weight: 700;
  font-size: 0.95rem;
  text-align: center;
  padding: 10px 18px;
  border-radius: 10px;
  border: 2px solid #ddddff;
  background: linear-gradient(180deg, #5555ff, #0000aa);
  box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
  transition: background 0.15s ease, transform 0.1s ease;
}

.main-nav a:hover,
.main-nav a:focus-visible {
  background: linear-gradient(180deg, #00cc00, #009900);
  transform: translateY(-1px);
}

.main-nav a[aria-current="page"] {
  background: linear-gradient(180deg, #ffb800, #ff8a00);
  color: #3a2200;
  border-color: #ffe6a8;
}

/* ---------- Layout ---------- */

.layout {
  display: flex;
  gap: 24px;
  margin-top: 20px;
  align-items: flex-start;
}

.content {
  flex: 1 1 640px;
  min-width: 0;
  background: var(--gelb-karte);
  border: 4px solid var(--blau);
  border-radius: var(--radius);
  box-shadow: var(--schatten);
  padding: clamp(18px, 4vw, 36px);
}

.content h2 {
  margin-top: 0;
  color: var(--blau-mittel);
  font-family: var(--font-head);
  font-size: clamp(1.4rem, 3vw, 2rem);
}

.content h3 {
  color: var(--blau-mittel);
  font-family: var(--font-head);
  font-size: clamp(1.1rem, 2.4vw, 1.4rem);
  margin: 26px 0 8px;
}

.content h4 {
  color: var(--blau-mittel);
  font-size: clamp(1rem, 2vw, 1.1rem);
  margin: 18px 0 4px;
}

.legal-page p {
  font-size: 0.95rem;
}

.side {
  flex: 0 0 260px;
}

.side-card {
  background: var(--gelb-karte);
  border: 4px solid var(--blau);
  border-radius: var(--radius);
  box-shadow: var(--schatten);
  padding: 16px;
  margin-bottom: 18px;
}

.side-card h3 {
  margin: 0 0 10px;
  font-size: 1rem;
  color: var(--blau-mittel);
}

.side-card a { display: flex; align-items: center; gap: 8px; margin: 6px 0; font-size: 0.9rem; }

.side-card.partner-card a { display: block; margin: 0 0 14px; }
.side-card.partner-card a:last-child { margin-bottom: 0; }
.side-card.partner-card a::before { content: none; display: none; }
.partner-card .partner-image { width: 100%; height: auto; border-radius: 8px; display: block; border: 2px solid var(--blau); }

/* ---------- Thematische SVG-Icons für Menü, Seitenboxen & Zurück-Link ---------- */

.main-nav a::before,
.side-card a::before,
.song-list-side::before,
.back-link::before,
.jump-link::before {
  content: "";
  flex-shrink: 0;
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.main-nav a[href*="index.html"]::before,   .side-card a[href*="index.html"]::before   { -webkit-mask-image: var(--icon-home);     mask-image: var(--icon-home); }
.main-nav a[href*="idee.html"]::before,    .side-card a[href*="idee.html"]::before    { -webkit-mask-image: var(--icon-idea);     mask-image: var(--icon-idea); }
.main-nav a[href*="kinderlieder.html"]::before, .side-card a[href*="kinderlieder.html"]::before { -webkit-mask-image: var(--icon-note); mask-image: var(--icon-note); }
.main-nav a[href*="weihnachtslieder"]::before,  .side-card a[href*="weihnachtslieder"]::before  { -webkit-mask-image: var(--icon-star); mask-image: var(--icon-star); }
.main-nav a[href*="kindersoftware.html"]::before, .side-card a[href*="kindersoftware.html"]::before { -webkit-mask-image: var(--icon-download); mask-image: var(--icon-download); }
.main-nav a[href*="colimem.html"]::before, .side-card a[href*="colimem.html"]::before  { -webkit-mask-image: var(--icon-gamepad);  mask-image: var(--icon-gamepad); }
.main-nav a[href*="kontakt.html"]::before, .side-card a[href*="kontakt.html"]::before  { -webkit-mask-image: var(--icon-mail);     mask-image: var(--icon-mail); }
.side-card a[href*="datenschutz.html"]::before { -webkit-mask-image: var(--icon-shield); mask-image: var(--icon-shield); }
.side-card a[href*="agb.html"]::before         { -webkit-mask-image: var(--icon-doc);    mask-image: var(--icon-doc); }
.song-list-side::before { -webkit-mask-image: var(--icon-note); mask-image: var(--icon-note); }

.song-list-side[aria-current="page"] {
  font-weight: 700;
  color: var(--blau-mittel);
}

.back-link::before { -webkit-mask-image: var(--icon-back); mask-image: var(--icon-back); }

.jump-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.jump-link::before {
  width: 1em;
  height: 1em;
  -webkit-mask-image: var(--icon-arrow-down);
  mask-image: var(--icon-arrow-down);
}

/* ---------- Zitat / Hinweis-Box ---------- */

.quote-box {
  background: var(--gelb-zitat);
  border: 1px solid var(--blau);
  border-radius: 12px;
  box-shadow: var(--schatten);
  padding: 18px 22px;
  margin: 18px 0;
}

.quote-box p:first-child { margin-top: 0; }
.quote-box .quelle { font-size: 0.85rem; color: var(--blau-mittel); margin-bottom: 0; }

/* ---------- Bilder-Galerie (Startseite) ---------- */

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin: 18px 0;
}

.gallery a {
  display: block;
}

.gallery a:nth-child(10) {
  display: none;
}

.gallery img {
  width: 82%;
  height: auto;
  margin: 0 auto;
  border-radius: 10px;
  border: 2px solid var(--blau);
  display: block;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.gallery a:hover img {
  transform: scale(1.04);
  box-shadow: var(--schatten);
}

/* ---------- Liedliste ---------- */

.song-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 20px;
}

.song-list li {
  border-bottom: 1px dashed #b7b7e6;
  padding: 6px 0;
}

.song-list a { font-weight: 600; text-decoration: none; }
.song-list a:hover { text-decoration: underline; }

.song-list a::before {
  content: "\1F3B5";
  display: inline-block;
  margin-right: 8px;
  font-size: 0.9em;
}

/* ---------- Liedseiten ---------- */

.video-wrap {
  position: relative;
  width: 100%;
  max-width: 480px;
  aspect-ratio: 16 / 9;
  margin: 0 auto 20px;
  border-radius: 12px;
  overflow: hidden;
  border: 2px solid var(--blau);
  box-shadow: var(--schatten);
}

.video-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.song-text {
  font-size: 1.05rem;
  max-width: 620px;
  margin: 0 auto 20px;
}

.song-photo {
  display: block;
  max-width: 220px;
  width: 100%;
  height: auto;
  margin: 0 auto 20px;
  border-radius: 10px;
  border: 2px solid var(--blau);
}

.song-photo.no-border {
  border: none;
}

.song-photo-lg {
  max-width: 420px;
}

/* ---------- Lightbox (Notenbilder) ---------- */

.lightbox-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 20, 0.85);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 32px;
  z-index: 1000;
  cursor: zoom-out;
}

.lightbox-overlay img {
  max-width: 90vw;
  max-height: 82vh;
  width: auto;
  height: auto;
  border-radius: 10px;
  border: 1px solid #0000ff;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
  cursor: default;
}

.lightbox-caption {
  margin: 0;
  color: #fff;
  font-family: var(--font-body);
  font-size: 1rem;
  text-align: center;
  max-width: 90vw;
}

.lightbox-close {
  position: absolute;
  top: 16px;
  right: 22px;
  background: none;
  border: none;
  color: #fff;
  font-size: 2.4rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px 10px;
}

.lightbox-close:hover,
.lightbox-close:focus-visible {
  color: #ffcc00;
}

.cta-box {
  text-align: center;
  margin: 24px auto;
  max-width: 480px;
}

.cta-box p { font-size: 0.95rem; }

.download-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--weiss);
  font-weight: 700;
  background: linear-gradient(180deg, #5555ff, #0000aa);
  border: 2px solid #ddddff;
  border-radius: 12px;
  padding: 10px 20px;
  box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
}

.download-btn:hover { background: linear-gradient(180deg, #00cc00, #009900); color: var(--weiss); }
.download-hint { font-size: 0.8rem; color: var(--blau-mittel); margin-top: 6px; }

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  font-weight: 700;
}

/* ---------- Footer ---------- */

.site-footer {
  margin-top: 28px;
  padding: 18px 22px;
  text-align: center;
  font-size: 0.8rem;
  color: var(--blau-mittel);
}

.site-footer a { color: var(--blau-mittel); margin: 0 8px; }

/* ---------- Kontaktseite ---------- */

.kontakt-block {
  max-width: 460px;
  margin: 0 auto;
  text-align: center;
}

.kontakt-block h3 {
  color: var(--blau);
  margin-bottom: 2px;
}

.kontakt-block address { font-style: normal; }

/* =========================================================
   Responsiv: Tablet
   ========================================================= */
@media (max-width: 860px) {
  .layout { flex-direction: column; }
  .side { flex: 1 1 auto; width: 100%; }
  .side-cards { display: flex; gap: 14px; flex-wrap: wrap; }
  .side-card { flex: 1 1 220px; }
  .gallery { grid-template-columns: repeat(3, 1fr); }
}

/* =========================================================
   Responsiv: Mobile
   ========================================================= */
@media (max-width: 600px) {
  body { padding: 8px; }

  .site-header { padding: 12px 14px; }
  .brand-row { gap: 16px; }
  .brand-logo { display: none; }
  .site-title { padding-right: 16px; }

  .nav-toggle { display: flex; }
  .sub-row { margin-top: 8px; }

  .main-nav { display: none; }
  .main-nav.open { display: block; }
  .main-nav ul { flex-direction: column; }
  .main-nav a { padding: 12px; }

  .content { padding: 16px; }

  .gallery { grid-template-columns: repeat(2, 1fr); }
  .gallery a:nth-child(10) { display: block; }

  .song-list { grid-template-columns: 1fr; }

  .video-wrap { max-width: 100%; }
}
