/* ONE SONG singers directory */
.osd-card.is-filter-hidden{display:none;}
.osd-hero{background:linear-gradient(170deg,#fef0f0 0%,var(--os-cream) 80%);padding:120px 0 56px;text-align:center;}
.osd-inner{max-width:1080px;margin:0 auto;padding:0 24px;}
.osd-kicker{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--os-rose);font-weight:700;margin:0 0 16px;}
.osd-title{font-size:32px;font-weight:800;line-height:1.5;color:var(--os-charcoal);margin:0 0 14px;}
.osd-lead{font-size:15.5px;line-height:1.95;color:var(--os-text);max-width:640px;margin:0 auto;}
.osd-section{background:var(--os-cream);padding:40px 0 88px;}
.osd-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 36px;}
.osd-chip{font-size:13.5px;font-weight:600;color:var(--os-charcoal);background:#fff;border:1.5px solid rgba(212,114,143,.3);border-radius:999px;padding:9px 18px;cursor:pointer;transition:all .15s;}
.osd-chip:hover{border-color:var(--os-rose);}
.osd-chip.is-active{background:var(--os-rose);color:#fff;border-color:var(--os-rose);}
.osd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.osd-card{background:#fff;border:1px solid rgba(212,114,143,.16);border-radius:16px;overflow:hidden;box-shadow:0 6px 22px rgba(142,67,96,.06);display:flex;flex-direction:column;}
.osd-thumb{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;background:#faf3f5;}
.osd-noimg{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#faf3f5,#fdecf1);color:var(--os-rose);font-size:34px;}
.osd-body{padding:16px 16px 18px;display:flex;flex-direction:column;flex:1;}
.osd-name{font-size:16px;font-weight:700;color:var(--os-charcoal);margin:0 0 8px;}
.osd-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;}
.osd-tag{font-size:10.5px;font-weight:600;color:var(--os-rose);background:#faf3f5;border:1px solid rgba(212,114,143,.22);border-radius:6px;padding:2px 8px;}
.osd-genre{font-size:12px;color:var(--os-text);line-height:1.6;margin:0 0 12px;}
.osd-actions{margin-top:auto;display:flex;flex-direction:column;gap:8px;}
.osd-sample{font-size:12.5px;font-weight:700;color:var(--os-rose);text-align:center;}
.osd-req{display:block;text-align:center;font-size:13px;font-weight:700;color:#fff;background:var(--os-rose);border-radius:999px;padding:10px;text-decoration:none;}
.osd-req:hover{background:var(--os-rose-deep,#b85575);}
.osd-empty{text-align:center;max-width:560px;margin:0 auto;background:#fff;border-radius:18px;padding:48px 30px;box-shadow:0 6px 22px rgba(142,67,96,.06);}
.osd-empty p{font-size:15px;line-height:1.9;color:var(--os-text);margin:0 0 22px;}
.osd-empty__title{color:var(--os-charcoal);font-size:17px;}
.osd-empty__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:6px;}
.osd-bottom{text-align:center;margin-top:48px;}
.osd-note{text-align:center;font-size:13px;color:var(--os-text);margin-top:28px;}
.osd-bottom__text{font-size:13px;color:var(--os-text);margin:0 0 12px;}
@media(max-width:900px){.osd-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:640px){.osd-hero{padding:100px 0 44px;}.osd-title{font-size:24px;}.osd-grid{grid-template-columns:repeat(2,1fr);gap:12px;}}

/* Accessibility: stable touch targets and keyboard focus */
.osd-chip,
.osd-req,
.osd-empty__actions a,
.osd-bottom a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.osd-chip {
  min-width: 44px;
}

.osd-chip:focus-visible,
.osd-req:focus-visible,
.osd-empty__actions a:focus-visible,
.osd-bottom a:focus-visible {
  outline: 3px solid rgba(212, 114, 143, 0.85);
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  #onesong-singers *,
  #onesong-singers *::before,
  #onesong-singers *::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.001ms !important;
  }
}
