/* ════════════════════════════════════════
   Thö Bulizongs — styles.css
   Muuta tätä tiedostoa → muutos näkyy kaikilla sivuilla
════════════════════════════════════════ */

/* ════════════════════════════════════
   Thö Bulizongs — Yhteinen tyylitiedosto
════════════════════════════════════ */

:root {
      --black: #000000;
      --white: #ffffff;
      --off-white: #f7f5f2;
      --accent: #ffffff;
      --accent-light: #e0e0e0;
      --grey: #2e2e2e;
      --grey-mid: #555;
      --grey-light: #999;
      --card-bg: #252525;
    }

    
    

    body {
      padding-top: 0;
      background: var(--black);
      color: var(--white);
      font-family: 'DM Sans', sans-serif;
      font-weight: 400;
      overflow-x: hidden;
    }


/* ════════════════════════════════════════
   VÄRISYSTEEMI — tummat vs vaaleat osiot
   Lisää section-dark luokka tummille osioille HTML:ssä
   → kaikki tekstit siinä osiossa muuttuvat automaattisesti valkoisiksi
════════════════════════════════════════ */

.section-dark { background: var(--black); }

.section-dark .section-label  { color: rgba(255,255,255,0.45); }
.section-dark .section-title  { color: var(--white); }
.section-dark .section-divider { background: var(--white); }
.section-dark p               { color: rgba(255,255,255,0.7); }
.section-dark h3              { color: var(--white); }
.section-dark .event-info h3  { color: var(--white); }
.section-dark .event-info p   { color: var(--grey-light); }
.section-dark .video-info h3  { color: var(--white); }
.section-dark .video-info p   { color: var(--grey-light); }

/* Vaaleat osiot — musta teksti */
.section-light,
#about, #settilista-preview, #uutiset, #palautteet, #yhteydenotto {
  background: var(--off-white);
  color: var(--black);
}

.section-light .section-title,
#about .section-title,
#settilista-preview .section-title,
#uutiset .section-title,
#palautteet .section-title,
#yhteydenotto .section-title { color: var(--black); }

.section-light p,
#about p, #uutiset p, #palautteet p, #yhteydenotto p { color: #444; }

.section-light h3,
#about h3, #yhteydenotto h3 { color: var(--black); }

    /* HERO */
    #hero {
      min-height: 82svh;
      background: var(--black);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 5rem 2rem 4rem;
      position: relative;
      overflow: hidden;
      width: 100%;
      box-sizing: border-box;
    }

    #hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 40px,
        rgba(255,255,255,0.015) 40px,
        rgba(255,255,255,0.015) 41px
      );
    }

    .hero-content { position: relative; z-index: 2; }

    .hero-logo {
      font-family: 'Playfair Display', serif;
      font-size: clamp(4rem, 13vw, 10rem);
      font-weight: 900;
      font-style: italic;
      color: var(--white);
      line-height: 0.9;
      text-shadow: 3px 3px 0px #000, 5px 5px 0px rgba(0,0,0,0.4), 8px 8px 20px rgba(0,0,0,0.6);
      letter-spacing: -0.01em;
      opacity: 0;
      animation: fadeUp 0.7s 0.2s forwards;
    }

    .hero-logo-sub {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 6vw, 4.5rem);
      font-weight: 700;
      font-style: italic;
      color: var(--white);
      text-shadow: 2px 2px 0px #000, 4px 4px 12px rgba(0,0,0,0.5);
      opacity: 0;
      animation: fadeUp 0.7s 0.35s forwards;
      margin-bottom: 2rem;
    }

    .hero-tagline {
      font-size: clamp(1rem, 2.5vw, 1.2rem);
      color: rgba(255,255,255,0.75);
      margin-bottom: 1.2rem;
      opacity: 0;
      animation: fadeUp 0.7s 0.55s forwards;
      font-weight: 300;
    }

    .hero-btns {
      display: flex;
      gap: 1rem;
      justify-content: center;
      flex-wrap: wrap;
      opacity: 0;
      animation: fadeUp 0.7s 0.8s forwards;
    }

    .btn-primary {
      background: var(--white);
      color: var(--black);
      padding: 0.85rem 2rem;
      border: none;
      border-radius: 4px;
      font-family: 'DM Sans', sans-serif;
      font-size: 0.9rem;
      font-weight: 500;
      cursor: pointer;
      text-decoration: none;
      transition: background 0.2s, transform 0.15s;
      display: inline-block;
    }

    .btn-primary:hover { background: var(--accent-light); transform: translateY(-2px); }

    .btn-secondary {
      background: transparent;
      color: rgba(255,255,255,0.75);
      padding: 0.85rem 2rem;
      border: 1px solid rgba(255,255,255,0.25);
      border-radius: 4px;
      font-family: 'DM Sans', sans-serif;
      font-size: 0.9rem;
      cursor: pointer;
      text-decoration: none;
      transition: border-color 0.2s, color 0.2s, transform 0.15s;
      display: inline-block;
    }

    .btn-secondary:hover { border-color: rgba(255,255,255,0.6); color: var(--white); transform: translateY(-2px); }

    /* SECTIONS */
    
    

    .section-label {
      font-size: 0.72rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 0.5rem;
      font-weight: 500;
    }

    .section-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.8rem, 4vw, 2.8rem);
      font-weight: 900;
      line-height: 1.15;
      margin-bottom: 0.8rem;
      color: var(--white);
    }

    /* Vaaleat osiot — otsikko mustaksi */
    #about .section-title,
    #settilista-preview .section-title,
    #uutiset .section-title,
    #palautteet .section-title,
    #yhteydenotto .section-title { color: var(--black) !important; }

    .section-divider {
      width: 48px;
      height: 3px;
      background: var(--black);
      border-radius: 2px;
      margin-bottom: 2.5rem;
    }

    /* ABOUT */
    #about { background: var(--off-white); }

    .about-grid {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 5rem;
      align-items: center;
    }

    .about-text p { color: #444; line-height: 1.8; margin-bottom: 1.1rem; font-size: 1rem; }

    .about-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }

    .stat-box {
      background: var(--white);
      border: 1px solid #e0ddd8;
      padding: 1.4rem;
      border-radius: 6px;
      text-align: center;
      transition: box-shadow 0.2s;
    }

    .stat-box:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.07); }

    .stat-number {
      font-family: 'Playfair Display', serif;
      font-size: 2.2rem;
      font-weight: 900;
      color: var(--black);
      line-height: 1;
    }

    .stat-label { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--grey-light); margin-top: 0.3rem; }

    /* BAND PHOTO */
    .band-photo-wrap {
      position: relative;
      border-radius: 8px;
      overflow: hidden;
      aspect-ratio: 4/3;
      background: #e0ddd8;
    }

    .band-photo-wrap img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .band-photo-placeholder {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      background: #e8e5e0;
      text-align: center;
      position: absolute;
      inset: 0;
    }

    /* SETTILISTA PREVIEW */
    #settilista-preview { background: var(--white); }

    .setlist-preview-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem;
      margin-bottom: 2rem;
    }

    .setlist-genre-block h3 {
      font-size: 0.72rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--accent);
      font-weight: 500;
      margin-bottom: 0.8rem;
      padding-bottom: 0.5rem;
      border-bottom: 1px solid #e0ddd8;
    }

    .setlist-genre-block ul { list-style: none; }

    .setlist-genre-block li {
      font-size: 0.88rem;
      color: #444;
      padding: 0.3rem 0;
      border-bottom: 1px solid #f0ede8;
      line-height: 1.4;
    }

    .setlist-genre-block li:last-child { border-bottom: none; }

    .setlist-genre-block li span {
      display: block;
      font-size: 0.75rem;
      color: var(--grey-light);
    }

    /* KEIKKAKALENTERI */
    /* KEIKKAKALENTERI - tumma osio, tekstit valkoisina */
    #keikkakalenteri { background: var(--black); }

    .events-list { display: flex; flex-direction: column; gap: 2px; }

    .event-item {
      display: grid;
      grid-template-columns: 80px 1fr auto;
      align-items: center;
      gap: 1.5rem;
      padding: 1.2rem 1.5rem;
      background: #111;
      border-radius: 4px;
      border-left: 3px solid transparent;
      transition: border-color 0.2s, background 0.2s;
    }

    .event-item:hover { border-left-color: var(--white); background: #1a1a1a; }

    .event-date { text-align: center; }
    .event-date .day { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 900; color: var(--white); line-height: 1; }
    .event-date .month { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--grey-light); }

    .event-info h3 { font-size: 1rem; font-weight: 500; color: var(--white); margin-bottom: 0.2rem; }

    .event-tag {
      font-size: 0.68rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 0.25rem 0.7rem;
      border: 1px solid rgba(255,255,255,0.15);
      border-radius: 20px;
      color: rgba(255,255,255,0.45);
      white-space: nowrap;
    }

    /* MUSIIKKI - tumma osio, tekstit valkoisina */
    /* REELS SLIDER */
    #musiikki { background: var(--black); }

    .music-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.2rem;
    }

    @media (max-width: 768px) {
      .music-grid { grid-template-columns: 1fr; }
    }

    .video-card {
      background: #111;
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 6px;
      overflow: hidden;
      transition: box-shadow 0.2s, transform 0.2s;
    }

    .video-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.4); transform: translateY(-3px); }

    .video-placeholder {
      aspect-ratio: 16/9;
      background: #1a1a1a;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
    }

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

    .play-icon {
      width: 52px; height: 52px;
      background: var(--white);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--black);
      font-size: 1rem;
      padding-left: 3px;
    }

    .video-info { padding: 1rem 1.2rem; }
    .video-info h3 { font-weight: 500; font-size: 0.95rem; margin-bottom: 0.2rem; color: var(--white); }
    .video-info p { font-size: 0.8rem; color: var(--grey-light); }

    .reels-wrapper {
      position: relative;
    }

    .reels-track {
      display: flex;
      gap: 1rem;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding-bottom: 1rem;
    }

    .reels-track::-webkit-scrollbar { display: none; }

    .reel-card {
      flex: 0 0 280px;
      scroll-snap-align: start;
      position: relative;
      border-radius: 12px;
      overflow: hidden;
      background: var(--card-bg);
      aspect-ratio: 9/16;
      cursor: pointer;
    }

    .reel-card iframe {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: none;
      pointer-events: none;
    }

    .reel-placeholder {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      background: linear-gradient(160deg, #2a2a2a 0%, #1a1a1a 100%);
      gap: 1rem;
    }

    .reel-play {
      width: 60px; height: 60px;
      background: var(--accent);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      font-size: 1.3rem;
      padding-left: 4px;
      transition: transform 0.2s, background 0.2s;
    }

    .reel-card:hover .reel-play {
      transform: scale(1.1);
      background: var(--accent-light);
    }

    .reel-info {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      padding: 1.5rem 1rem 1rem;
      background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, transparent 100%);
      color: var(--white);
    }

    .reel-info h3 { font-size: 0.9rem; font-weight: 500; margin-bottom: 0.2rem; }
    .reel-info p { font-size: 0.75rem; color: rgba(255,255,255,0.55); }

    .reel-placeholder-label {
      font-size: 0.75rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.3);
      text-align: center;
      padding: 0 1rem;
    }

    .reels-nav {
      display: flex;
      justify-content: flex-end;
      gap: 0.5rem;
      margin-top: 1rem;
    }

    .reels-btn {
      width: 38px; height: 38px;
      border: 1px solid rgba(255,255,255,0.2);
      border-radius: 50%;
      background: transparent;
      color: var(--white);
      cursor: pointer;
      font-size: 1rem;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: border-color 0.2s, background 0.2s;
    }

    .reels-btn:hover { border-color: var(--accent); background: rgba(192,57,43,0.15); }

    /* UUTISET */
    #uutiset { background: var(--off-white); }

    .uutiset-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem;
      margin-bottom: 2rem;
    }

    .uutinen-card {
      background: var(--white);
      border: 1px solid #e0ddd8;
      border-radius: 6px;
      overflow: hidden;
      transition: box-shadow 0.2s, transform 0.2s;
      cursor: pointer;
      text-decoration: none;
      color: inherit;
      display: block;
    }

    .uutinen-card:hover {
      box-shadow: 0 8px 24px rgba(0,0,0,0.09);
      transform: translateY(-3px);
    }

    .uutinen-kuva {
      aspect-ratio: 16/9;
      background: #e8e5e0;
      overflow: hidden;
    }

    .uutinen-kuva img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .uutinen-kuva-placeholder {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #e8e5e0;
      color: #bbb;
      font-size: 2rem;
    }

    .uutinen-

    .uutinen-body { padding: 1.5rem 1.8rem 1.8rem; }

    .uutinen-pvm {
      font-family: 'DM Sans', sans-serif;
      font-size: 0.72rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 0.4rem;
      font-weight: 500;
    }

    .uutinen-otsikko {
      font-family: 'Playfair Display', serif;
      font-size: 1rem;
      font-weight: 700;
      color: var(--black);
      margin-bottom: 0.4rem;
      line-height: 1.3;
    }

    .uutinen-excerpt {
      font-family: 'DM Sans', sans-serif;
      font-size: 0.82rem;
      font-weight: 300;
      color: var(--grey-light);
      line-height: 1.6;
    }

    .uutiset-loading {
      text-align: center;
      padding: 3rem;
      color: var(--grey-light);
      font-size: 0.9rem;
      grid-column: 1/-1;
    }

    @media (max-width: 768px) {
      .uutiset-grid { grid-template-columns: 1fr; }
    }

    /* INSTAGRAM */
    /* PALAUTTEET */
    #palautteet { background: var(--white); }

    .palautteet-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem;
    }

    .palaute-card {
      background: var(--off-white);
      border: 1px solid #e0ddd8;
      border-radius: 8px;
      padding: 1.8rem;
      position: relative;
    }

    .palaute-lainaus {
      font-size: 2.5rem;
      font-family: 'Playfair Display', serif;
      color: var(--black);
      line-height: 1;
      margin-bottom: 0.5rem;
      opacity: 0.15;
    }

    .palaute-teksti {
      font-size: 0.97rem;
      line-height: 1.75;
      color: #444;
      margin-bottom: 1.2rem;
      font-style: italic;
    }

    .palaute-nimi {
      font-family: 'Playfair Display', serif;
      font-size: 0.95rem;
      font-weight: 700;
      color: var(--black);
    }

    .palaute-tilaisuus {
      font-size: 0.75rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--grey-light);
      margin-top: 0.2rem;
    }

    .palautteet-loading {
      text-align: center;
      padding: 3rem;
      color: var(--grey-light);
      grid-column: 1/-1;
    }

    @media (max-width: 768px) {
      .palautteet-grid { grid-template-columns: 1fr; }
    }

    /* YHTEYDENOTTO */
    #yhteydenotto { background: var(--off-white); }

    .contact-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 5rem; align-items: start; }

    .contact-info h3 { font-family: 'Playfair Display', serif; font-size: 1.2rem; font-weight: 700; margin-bottom: 0.8rem; }

    .contact-info p { color: #555; line-height: 1.75; margin-bottom: 1.8rem; font-size: 0.95rem; }

    .contact-detail { display: flex; align-items: center; gap: 0.8rem; margin-bottom: 0.8rem; color: #444; font-size: 0.9rem; }

    .contact-icon { font-size: 1rem; width: 28px; text-align: center; }

    .contact-form { display: flex; flex-direction: column; gap: 0.9rem; }

    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }

    .form-group { display: flex; flex-direction: column; gap: 0.35rem; }

    .form-group label { font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--grey-mid); font-weight: 500; }

    .form-group input,
    .form-group select,
    .form-group textarea {
      background: var(--white);
      border: 1px solid #ddd;
      color: var(--black);
      padding: 0.7rem 0.9rem;
      font-family: 'DM Sans', sans-serif;
      font-size: 0.95rem;
      border-radius: 4px;
      outline: none;
      transition: border-color 0.2s, box-shadow 0.2s;
    }

    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(192,57,43,0.1);
    }

    .form-group textarea { resize: vertical; min-height: 110px; }

    /* FOOTER */
    

    .footer-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1.6rem;
      font-weight: 900;
      font-style: italic;
      color: var(--white);
      text-shadow: 2px 2px 0 #000, 4px 4px 10px rgba(0,0,0,0.5);
      margin-bottom: 0.5rem;
    }

    

    

    

    

    

    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 1; transform: translateY(0); }
    }

    @media (max-width: 768px) {
      .about-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      .contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      .event-item { grid-template-columns: 65px 1fr; }
      .event-tag { display: none; }
      .instagram-grid { grid-template-columns: repeat(2, 1fr); }
      .form-row { grid-template-columns: 1fr; }
      #hero { padding: 4rem 1.5rem 3rem; min-height: auto; }
      .hero-logo { margin-top: 1rem; }
      html, 
    }

    /* NAV */
    nav#main-nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      padding: 1rem 2.5rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: var(--black);
    }

    .nav-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem; font-weight: 900; font-style: italic;
      color: var(--white); text-decoration: none;
      text-shadow: 2px 2px 0px #000, 3px 3px 6px rgba(0,0,0,0.5);
      letter-spacing: 0.04em;
    }

    .nav-links { display: flex; gap: 1.8rem; list-style: none; align-items: center; }

    .nav-links a {
      color: rgba(255,255,255,0.65);
      text-decoration: none;
      font-size: 0.85rem;
      letter-spacing: 0.08em;
      transition: color 0.2s;
    }

    .nav-links a:hover { color: var(--white); }

    .nav-cta {
      background: var(--white) !important;
      color: var(--black) !important;
      padding: 0.45rem 1.1rem;
      border-radius: 4px;
    }

    .nav-cta:hover { background: var(--accent-light) !important; }

    .nav-hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 4px;
    }

    .nav-hamburger span {
      display: block;
      width: 24px; height: 2px;
      background: var(--white);
      border-radius: 2px;
    }

    @media (max-width: 768px) {
      nav#main-nav { padding: 1rem 1.2rem; }
      .nav-hamburger { display: flex; }
      .nav-links {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: var(--black);
        flex-direction: column;
        padding: 1rem 1.5rem 1.5rem;
        gap: 1rem;
        border-top: 1px solid rgba(255,255,255,0.08);
      }
      .nav-links.open { display: flex; }
    }

    
    
    

    /* PAGE HEADER */
    .page-header {
      background: var(--black);
      padding: 4rem 2rem 3rem;
      text-align: center;
    }

    .page-header p { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 0.6rem; }

    .page-header h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 5vw, 3.5rem);
      font-weight: 900; font-style: italic;
      color: var(--white);
      text-shadow: 2px 2px 0 #000, 4px 4px 12px rgba(0,0,0,0.4);
    }

    /* SECTIONS */
    section { padding: 5rem 2rem; }
    .container { max-width: 1060px; margin: 0 auto; }

    

    

    

    /* HISTORIA */
    #historia { background: var(--off-white); }

    .historia-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 5rem;
      align-items: start;
    }

    .historia-kuva {
      border-radius: 8px;
      overflow: hidden;
      aspect-ratio: 4/3;
      background: #e0ddd8;
      position: relative;
    }

    .historia-kuva img {
      width: 100%; height: 100%;
      object-fit: cover; display: block;
    }

    .historia-kuva-placeholder {
      position: absolute; inset: 0;
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      background: #e8e5e0; color: #aaa;
      font-size: 0.82rem; letter-spacing: 0.1em;
      text-transform: uppercase; text-align: center; gap: 0.8rem;
    }

    .historia-kuva-placeholder svg { opacity: 0.3; }

    .historia-teksti p {
      color: #444; line-height: 1.85;
      margin-bottom: 1.1rem; font-size: 1rem;
    }

    /* JÄSENET */
    #jasenet { background: var(--white); }

    .jasenet-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2rem;
    }

    .jasen-card {
      text-align: center;
    }

    .jasen-kuva {
      width: 100%;
      aspect-ratio: 1;
      border-radius: 8px;
      overflow: hidden;
      background: #e8e5e0;
      margin-bottom: 1rem;
      position: relative;
    }

    .jasen-kuva img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: top;
    }

    .jasen-kuva-placeholder {
      position: absolute; inset: 0;
      display: flex; align-items: center;
      justify-content: center;
      background: linear-gradient(145deg, #e8e5e0, #d8d5d0);
      font-size: 3rem; color: #bbb;
    }

    .jasen-nimi {
      font-family: 'Playfair Display', serif;
      font-size: 1.05rem; font-weight: 700;
      color: var(--black); margin-bottom: 0.25rem;
    }

    .jasen-soitin {
      font-size: 0.8rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--accent);
      font-weight: 500;
    }

    /* FOOTER */
    
    
    .footer-tagline { color: rgba(255,255,255,0.35); font-size: 0.82rem; letter-spacing: 0.1em; margin-bottom: 1.5rem; }
    
    
    
    

    
    .btn-primary:hover { background: var(--accent-light); transform: translateY(-2px); }

    @media (max-width: 768px) {
      .historia-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      .jasenet-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
    }

    @media (max-width: 480px) {
      .jasenet-grid { grid-template-columns: repeat(2, 1fr); }
    }

    /* NAV */
    nav#main-nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      padding: 1rem 2.5rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: var(--black);
    }

    .nav-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem; font-weight: 900; font-style: italic;
      color: var(--white); text-decoration: none;
      text-shadow: 2px 2px 0px #000, 3px 3px 6px rgba(0,0,0,0.5);
      letter-spacing: 0.04em;
    }

    .nav-links { display: flex; gap: 1.8rem; list-style: none; align-items: center; }

    .nav-links a {
      color: rgba(255,255,255,0.65);
      text-decoration: none;
      font-size: 0.85rem;
      letter-spacing: 0.08em;
      transition: color 0.2s;
    }

    .nav-links a:hover { color: var(--white); }

    .nav-cta {
      background: var(--white) !important;
      color: var(--black) !important;
      padding: 0.45rem 1.1rem;
      border-radius: 4px;
    }

    .nav-cta:hover { background: var(--accent-light) !important; }

    .nav-hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 4px;
    }

    .nav-hamburger span {
      display: block;
      width: 24px; height: 2px;
      background: var(--white);
      border-radius: 2px;
    }

    @media (max-width: 768px) {
      nav#main-nav { padding: 1rem 1.2rem; }
      .nav-hamburger { display: flex; }
      .nav-links {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: var(--black);
        flex-direction: column;
        padding: 1rem 1.5rem 1.5rem;
        gap: 1rem;
        border-top: 1px solid rgba(255,255,255,0.08);
      }
      .nav-links.open { display: flex; }
    }

    
    
    

    .page-header {
      background: var(--black);
      padding: 4rem 2rem 3rem;
      text-align: center;
    }

    .page-header p { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 0.6rem; }

    .page-header h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 5vw, 3.5rem);
      font-weight: 900; font-style: italic;
      color: var(--white);
      text-shadow: 2px 2px 0 #000;
    }

    /* TABS */
    .tab-bar {
      background: var(--white);
      border-bottom: 1px solid #e0ddd8;
      padding: 0 2rem;
      display: flex;
      position: sticky;
      top: 58px;
      z-index: 90;
    }

    .tab-btn {
      padding: 1rem 1.8rem;
      font-size: 0.85rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--grey-mid);
      cursor: pointer;
      border: none;
      border-bottom: 2px solid transparent;
      background: none;
      font-family: 'DM Sans', sans-serif;
      transition: color 0.2s, border-color 0.2s;
      white-space: nowrap;
    }

    .tab-btn:hover { color: var(--black); }
    .tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: 500; }

    /* CONTENT */
    .tab-content { display: none; }
    .tab-content.active { display: block; }

    
    

    
    
    

    /* EVENTS */
    .events-list { display: flex; flex-direction: column; gap: 2px; }

    .event-item {
      display: grid;
      grid-template-columns: 80px 1fr auto;
      align-items: center;
      gap: 1.5rem;
      padding: 1.2rem 1.5rem;
      background: var(--white);
      border: 1px solid #e8e5e0;
      border-radius: 4px;
      border-left: 3px solid transparent;
      transition: border-color 0.2s, box-shadow 0.2s;
    }

    .event-item:hover { border-left-color: var(--accent); box-shadow: 0 2px 12px rgba(0,0,0,0.06); }

    .event-item.mennyt { opacity: 0.6; }
    .event-item.mennyt:hover { opacity: 0.85; }

    .event-date { text-align: center; }
    .event-date .day { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 900; color: var(--black); line-height: 1; }
    .event-date .month { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--grey-light); }
    .event-date .year { font-size: 0.65rem; color: var(--grey-light); margin-top: 1px; }
    .event-info p { font-size: 0.82rem; color: var(--grey-light); }

    .event-tag {
      font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase;
      padding: 0.25rem 0.7rem;
      border: 1px solid #ddd;
      border-radius: 20px; color: var(--grey-mid);
      white-space: nowrap;
    }

    .empty-state {
      text-align: center; padding: 3rem;
      color: var(--grey-light); font-style: italic; font-size: 0.9rem;
    }

    .loading { text-align: center; padding: 3rem; color: var(--grey-light); font-size: 0.9rem; }

    /* VUOSIOTSIKKO */
    .year-heading {
      font-family: 'Playfair Display', serif;
      font-size: 1.1rem; font-weight: 700;
      color: var(--grey-mid);
      margin: 2rem 0 0.8rem;
      padding-bottom: 0.5rem;
      border-bottom: 1px solid #e0ddd8;
    }

    .year-heading:first-child { margin-top: 0; }

    footer { background: var(--black); padding: 2.5rem 2rem; text-align: center; }
    
    
    .footer-links { display: flex; justify-content: center; gap: 1.8rem; margin-bottom: 1.8rem; flex-wrap: wrap; }
    .footer-links a { color: rgba(255,255,255,0.4); text-decoration: none; font-size: 0.8rem; letter-spacing: 0.08em; transition: color 0.2s; }
    .footer-links a:hover { color: rgba(255,255,255,0.85); }
    .footer-copy { font-size: 0.72rem; color: rgba(255,255,255,0.18); }

    @media (max-width: 600px) {
      .event-item { grid-template-columns: 65px 1fr; }
      .event-tag { display: none; }
    }

    /* NAV */
    nav#main-nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      padding: 1rem 2.5rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: var(--black);
    }

    .nav-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem; font-weight: 900; font-style: italic;
      color: var(--white); text-decoration: none;
      text-shadow: 2px 2px 0px #000, 3px 3px 6px rgba(0,0,0,0.5);
      letter-spacing: 0.04em;
    }

    .nav-links { display: flex; gap: 1.8rem; list-style: none; align-items: center; }

    .nav-links a {
      color: rgba(255,255,255,0.65);
      text-decoration: none;
      font-size: 0.85rem;
      letter-spacing: 0.08em;
      transition: color 0.2s;
    }

    .nav-links a:hover { color: var(--white); }

    .nav-cta {
      background: var(--white) !important;
      color: var(--black) !important;
      padding: 0.45rem 1.1rem;
      border-radius: 4px;
    }

    .nav-cta:hover { background: var(--accent-light) !important; }

    .nav-hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 4px;
    }

    .nav-hamburger span {
      display: block;
      width: 24px; height: 2px;
      background: var(--white);
      border-radius: 2px;
    }

    @media (max-width: 768px) {
      nav#main-nav { padding: 1rem 1.2rem; }
      .nav-hamburger { display: flex; }
      .nav-links {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: var(--black);
        flex-direction: column;
        padding: 1rem 1.5rem 1.5rem;
        gap: 1rem;
        border-top: 1px solid rgba(255,255,255,0.08);
      }
      .nav-links.open { display: flex; }
    }

    
    

    

    /* PAGE HEADER */
    .page-header {
      background: var(--black);
      padding: 4rem 2rem 3rem;
      text-align: center;
    }

    .page-header p {
      font-size: 0.72rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.4);
      margin-bottom: 0.6rem;
    }

    .page-header h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 5vw, 3.5rem);
      font-weight: 900;
      font-style: italic;
      color: var(--white);
      text-shadow: 2px 2px 0 #000, 4px 4px 12px rgba(0,0,0,0.4);
      margin-bottom: 0.8rem;
    }

    .page-header .sub {
      color: rgba(255,255,255,0.5);
      font-size: 0.95rem;
      letter-spacing: 0.05em;
    }

    /* FILTER TABS */
    .filter-bar {
      background: var(--white);
      border-bottom: 1px solid #e0ddd8;
      padding: 0 2rem;
      display: flex;
      gap: 0;
      overflow-x: auto;
      position: sticky;
      top: 58px;
      z-index: 90;
    }

    .filter-tab {
      padding: 1rem 1.4rem;
      font-size: 0.82rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--grey-mid);
      cursor: pointer;
      border-bottom: 2px solid transparent;
      white-space: nowrap;
      transition: color 0.2s, border-color 0.2s;
      background: none;
      border-top: none;
      border-left: none;
      border-right: none;
      font-family: 'DM Sans', sans-serif;
    }

    .filter-tab:hover { color: var(--black); }
    .filter-tab.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: 500; }

    /* CONTENT */
    main { max-width: 900px; margin: 0 auto; padding: 3rem 2rem 5rem; }

    .genre-

    .genre-section.hidden { display: none; }

    .genre-header {
      display: flex;
      align-items: center;
      gap: 1rem;
      margin-bottom: 1.2rem;
    }

    .genre-icon { font-size: 1.4rem; }

    .genre-title {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem;
      font-weight: 700;
      color: var(--black);
    }

    .genre-count {
      font-size: 0.72rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--grey-light);
      margin-left: auto;
    }

    .song-list { border: 1px solid #e8e5e0; border-radius: 6px; overflow: hidden; }

    .song-row {
      display: grid;
      grid-template-columns: 36px 1fr auto;
      align-items: center;
      gap: 1rem;
      padding: 0.9rem 1.2rem;
      border-bottom: 1px solid #f0ede8;
      transition: background 0.15s;
    }

    .song-row:last-child { border-bottom: none; }
    .song-row:hover { background: #faf8f5; }

    .song-num {
      font-size: 0.78rem;
      color: var(--grey-light);
      text-align: center;
      font-weight: 500;
    }

    .song-info .title {
      font-size: 0.95rem;
      font-weight: 500;
      color: var(--black);
      margin-bottom: 0.15rem;
    }

    .song-info .artist {
      font-size: 0.8rem;
      color: var(--grey-light);
    }

    .song-year {
      font-size: 0.75rem;
      color: #bbb;
      white-space: nowrap;
    }

    /* FOOTER */
    

    

    .footer-back {
      color: rgba(255,255,255,0.4);
      font-size: 0.82rem;
      text-decoration: none;
      transition: color 0.2s;
    }

    .footer-back:hover { color: rgba(255,255,255,0.85); }

    @media (max-width: 600px) {
      .song-row { grid-template-columns: 28px 1fr; }
      .song-year { display: none; }
    }

    /* NAV */
    nav#main-nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      padding: 1rem 2.5rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: var(--black);
    }

    .nav-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem; font-weight: 900; font-style: italic;
      color: var(--white); text-decoration: none;
      text-shadow: 2px 2px 0px #000, 3px 3px 6px rgba(0,0,0,0.5);
      letter-spacing: 0.04em;
    }

    .nav-links { display: flex; gap: 1.8rem; list-style: none; align-items: center; }

    .nav-links a {
      color: rgba(255,255,255,0.65);
      text-decoration: none;
      font-size: 0.85rem;
      letter-spacing: 0.08em;
      transition: color 0.2s;
    }

    .nav-links a:hover { color: var(--white); }

    .nav-cta {
      background: var(--white) !important;
      color: var(--black) !important;
      padding: 0.45rem 1.1rem;
      border-radius: 4px;
    }

    .nav-cta:hover { background: var(--accent-light) !important; }

    .nav-hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 4px;
    }

    .nav-hamburger span {
      display: block;
      width: 24px; height: 2px;
      background: var(--white);
      border-radius: 2px;
    }

    @media (max-width: 768px) {
      nav#main-nav { padding: 1rem 1.2rem; }
      .nav-hamburger { display: flex; }
      .nav-links {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: var(--black);
        flex-direction: column;
        padding: 1rem 1.5rem 1.5rem;
        gap: 1rem;
        border-top: 1px solid rgba(255,255,255,0.08);
      }
      .nav-links.open { display: flex; }
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    

    .page-header {
      background: var(--black);
      padding: 4rem 2rem 3rem;
      text-align: center;
    }

    .page-header p { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 0.6rem; }

    .page-header h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 5vw, 3.5rem);
      font-weight: 900; font-style: italic;
      color: var(--white);
      text-shadow: 2px 2px 0 #000;
    }

    main { max-width: 900px; margin: 0 auto; padding: 3rem 2rem 5rem; }

    /* LISTA */
    .uutiset-lista { display: flex; flex-direction: column; gap: 2rem; }

    .uutinen-full {
      background: var(--white);
      border: 1px solid #e0ddd8;
      border-radius: 6px;
      overflow: hidden;
    }

    .uutinen-full-kuva {
      aspect-ratio: 16/6;
      background: #e8e5e0;
      overflow: hidden;
    }

    .uutinen-full-kuva img { width: 100%; height: 100%; object-fit: cover; }

    .uutinen-full-

    .uutinen-pvm {
      font-family: 'DM Sans', sans-serif;
      font-size: 0.72rem; letter-spacing: 0.1em;
      text-transform: uppercase; color: var(--accent);
      margin-bottom: 0.5rem; font-weight: 500;
    }

    .uutinen-otsikko {
      font-family: 'Playfair Display', serif;
      font-size: 1.6rem; font-weight: 900;
      margin-bottom: 1rem; line-height: 1.2;
    }

    .uutinen-teksti {
      font-family: 'DM Sans', sans-serif;
      color: #444; line-height: 1.8; font-size: 0.97rem;
    }

    .uutinen-teksti p { margin-bottom: 1rem; }
    .uutinen-teksti h2 { font-family: 'Playfair Display', serif; font-size: 1.2rem; margin: 1.5rem 0 0.5rem; }
    .uutinen-teksti strong { font-weight: 500; }

    .loading {
      text-align: center; padding: 4rem;
      color: var(--grey-light); font-size: 0.9rem;
    }

    
    
    .footer-back { color: rgba(255,255,255,0.4); font-size: 0.82rem; text-decoration: none; transition: color 0.2s; }
    .footer-back:hover { color: rgba(255,255,255,0.85); }

    @media (max-width: 600px) {
    }

    /* NAV */
    nav#main-nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      padding: 1rem 2.5rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: var(--black);
    }

    .nav-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem; font-weight: 900; font-style: italic;
      color: var(--white); text-decoration: none;
      text-shadow: 2px 2px 0px #000, 3px 3px 6px rgba(0,0,0,0.5);
      letter-spacing: 0.04em;
    }

    .nav-links { display: flex; gap: 1.8rem; list-style: none; align-items: center; }

    .nav-links a {
      color: rgba(255,255,255,0.65);
      text-decoration: none;
      font-size: 0.85rem;
      letter-spacing: 0.08em;
      transition: color 0.2s;
    }

    .nav-links a:hover { color: var(--white); }

    .nav-cta {
      background: var(--white) !important;
      color: var(--black) !important;
      padding: 0.45rem 1.1rem;
      border-radius: 4px;
    }

    .nav-cta:hover { background: var(--accent-light) !important; }

    .nav-hamburger {
      display: none;
      flex-direction: column;
      gap: 5px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 4px;
    }

    .nav-hamburger span {
      display: block;
      width: 24px; height: 2px;
      background: var(--white);
      border-radius: 2px;
    }

    @media (max-width: 768px) {
      nav#main-nav { padding: 1rem 1.2rem; }
      .nav-hamburger { display: flex; }
      .nav-links {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: var(--black);
        flex-direction: column;
        padding: 1rem 1.5rem 1.5rem;
        gap: 1rem;
        border-top: 1px solid rgba(255,255,255,0.08);
      }
      .nav-links.open { display: flex; }
    }

/* ════════════════════════════════════════
   MOBIILIKORJAUKSET — kaikki sivut
════════════════════════════════════════ */

@media (max-width: 768px) {

  /* Settilista-preview etusivulla */
  .setlist-preview-grid { grid-template-columns: 1fr !important; }

  /* Jäsenet 2 saraketta mobiilissa */
  .jasenet-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Uutiset 1 sarake */
  .uutiset-grid { grid-template-columns: 1fr !important; }

  /* Palautteet 1 sarake */
  .palautteet-grid { grid-template-columns: 1fr !important; }

  /* Videot 1 sarake */
  .music-grid { grid-template-columns: 1fr !important; }

  /* Reels — pienemmät kortit mobiilissa */
  .reel-card { flex: 0 0 220px; }

  /* Hero padding pienempi */
  #hero { padding: 4rem 1.5rem 3rem; }

  /* Section padding pienempi */
  section { padding: 3rem 1.2rem; }

  /* Lomakkeen rivit yhdeksi */
  .form-row { grid-template-columns: 1fr !important; }

  /* Keikkarivit ilman tagia */
  .event-item { grid-template-columns: 65px 1fr !important; }
  .event-tag { display: none; }

  /* Historia-grid */
  .historia-grid { grid-template-columns: 1fr !important; gap: 2rem; }

  /* Page header pienempi */
  .page-header { padding: 3rem 1.5rem 2rem; }

  /* Footer linkit pienemmällä välillä */
  .footer-links { gap: 1rem; }

  /* Container täyteen leveyteen */
  .container { padding: 0 0.5rem; }
}

@media (max-width: 480px) {
  /* Jäsenet 2 saraketta myös pienellä */
  .jasenet-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Hero fontti */
  .hero-btns { flex-direction: column; align-items: center; }
  .btn-primary, .btn-secondary { width: 100%; text-align: center; }
}


/* ════════════════════════════════════════
   ALASIVUJEN TEKSTIVÄRIKORJAUKSET
   Vaaleat osiot alasivuilla — musta teksti
════════════════════════════════════════ */

/* Bändi-sivu */
#historia,
#jasenet { color: var(--black); }

#historia .section-title,
#jasenet .section-title { color: var(--black) !important; }

#historia p { color: #444; }

.jasen-nimi { color: var(--black) !important; }

.historia-teksti p { color: #444; }

/* Keikat-sivu — vaaleat osiot */
.tab-bar { color: var(--black); }
.tab-btn { color: var(--grey-mid) !important; }
.tab-btn:hover { color: var(--black) !important; }
.tab-btn.active { color: var(--black) !important; }

#tab-tulevat section,
#tab-menneet section { color: var(--black); }

.event-item.vaalea h3 { color: var(--black) !important; }
.event-item.vaalea p  { color: var(--grey-mid) !important; }

/* Keikat-sivun event-itemit ovat vaalealla taustalla */
#tab-tulevat .event-info h3,
#tab-menneet .event-info h3 { color: var(--black) !important; }

#tab-tulevat .event-info p,
#tab-menneet .event-info p { color: var(--grey-mid) !important; }

#tab-tulevat .event-date .day,
#tab-menneet .event-date .day { color: var(--black) !important; }

.year-heading { color: var(--grey-mid) !important; }

/* Settilista-sivu */
.genre-title { color: var(--black) !important; }
.genre-count { color: var(--grey-light) !important; }
.song-list { color: var(--black); }
.song-info .title { color: var(--black) !important; }
.song-info .artist { color: var(--grey-light) !important; }
.song-year { color: var(--grey-light) !important; }
.song-num { color: var(--grey-light) !important; }
.filter-tab { color: var(--grey-mid) !important; }
.filter-tab.active { color: var(--black) !important; }

/* Uutiset-sivu */
.uutinen-otsikko { color: var(--black) !important; }
.uutinen-teksti { color: #444 !important; }


/* ════════════════════════════════════════
   LOPULLISET VÄRIKORJAUKSET
════════════════════════════════════════ */

/* Etusivu: Tulevat keikat — musta teksti vaalealla taustalla */
#keikkakalenteri .event-item {
  background: #111 !important;
}
#keikkakalenteri .event-info h3 { color: var(--white) !important; }
#keikkakalenteri .event-info p  { color: var(--grey-light) !important; }
#keikkakalenteri .event-date .day { color: var(--white) !important; }
#keikkakalenteri .event-date .month { color: var(--grey-light) !important; }
#keikkakalenteri .event-item:hover { background: #1a1a1a !important; border-left-color: var(--white) !important; }

/* Keikat-sivu: event-itemit vaalealla taustalla */
#tab-tulevat .event-item,
#tab-menneet .event-item {
  background: var(--white) !important;
  border: 1px solid #e0ddd8 !important;
}
#tab-tulevat .event-info h3,
#tab-menneet .event-info h3 { color: var(--black) !important; }
#tab-tulevat .event-info p,
#tab-menneet .event-info p  { color: var(--grey-mid) !important; }
#tab-tulevat .event-date .day,
#tab-menneet .event-date .day { color: var(--black) !important; }
#tab-tulevat .event-item:hover,
#tab-menneet .event-item:hover { background: #f7f5f2 !important; border-left-color: var(--black) !important; }

/* Bändi-sivu: jäsen-soitin */
.jasen-soitin { color: var(--grey-mid) !important; }

/* Settilista-sivu: song-row vaalealla taustalla */
.song-row { background: var(--white) !important; }
.song-row:hover { background: #f7f5f2 !important; }
.song-info .title { color: var(--black) !important; }
.song-info .artist { color: var(--grey-light) !important; }
.song-num { color: var(--grey-light) !important; }
.song-year { color: #bbb !important; }
.genre-title { color: var(--black) !important; }
.genre-count { color: var(--grey-light) !important; }
.song-list { background: var(--white) !important; border: 1px solid #e8e5e0 !important; }


/* YHTEYDENOTTO — form + kuva */
.yhteydenotto-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 3rem;
  align-items: start;
}

.yhteydenotto-kuva {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 3/4;
  background: #e0ddd8;
  top: 2rem;
}

.yhteydenotto-kuva img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.yhteydenotto-kuva-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e8e5e0;
  text-align: center;
}

@media (max-width: 768px) {
  .yhteydenotto-grid {
    grid-template-columns: 1fr;
  }
  .yhteydenotto-kuva {
    aspect-ratio: 16/9;
    top: 0;
    order: -1;
  }
}
