/* Office Yamane concert roles: one distinctive color reserved for hosted concerts.
 * Standard artist appearances have no visible role label or special background.
 */
:root {
  --oy-role-host: #20546b;
  --oy-role-host-deep: #173e51;
  --oy-role-host-soft: #ecf4f7;
  --oy-role-host-border: #b8d5df;
}
.oy-concert-row[data-oy-group="yamane"] > .oy-concert-row__link {
  background: var(--oy-role-host-soft);
  border-left: 4px solid var(--oy-role-host);
  padding-left: 13px;
  padding-right: 9px;
}
.oy-concert-row[data-oy-group="yamane"] .oy-concert-row__main > strong,
.oy-concert-row[data-oy-group="yamane"] time {
  color: var(--oy-role-host-deep);
}
.oy-concert-row[data-oy-group="yamane"] a.oy-concert-row__link:hover {
  background: #dcebf1;
}
.oy-role-badge.is-yamane,
.home .oy-home-event__meta .oy-role-badge.is-yamane {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--oy-role-host);
  border-radius: 3px;
  background: var(--oy-role-host);
  color: #fff;
  font-weight: 700;
  letter-spacing: .02em;
  padding: 5px 10px;
  line-height: 1.4;
}
.oy-role-badge.is-production,
.home .oy-home-event__meta .oy-role-badge.is-production {
  display: inline-flex;
  align-items: center;
  border: 1px solid #c9ced1;
  border-radius: 3px;
  background: #fff;
  color: #6b7378;
  font-size: .68rem;
  font-weight: 500;
  line-height: 1.35;
  padding: 3px 7px;
}
/* Production cooperation has a quieter presence than ordinary events. */
.oy-concert-row[data-oy-group="production"] > .oy-concert-row__link {
  background: transparent;
  border-left: 2px solid #d7dbde;
  padding-left: 15px;
  padding-right: 9px;
}
.oy-concert-row[data-oy-group="production"] a.oy-concert-row__link:hover {
  background: #fafafa;
}
.home .oy-home-event[data-oy-group="production"] {
  background: transparent;
  border-left: 2px solid #d7dbde;
  padding-left: 11px;
}
.home a.oy-home-event[data-oy-group="production"]:hover {
  background: #fafafa;
}
/* Match the same visual hierarchy on the homepage's short upcoming list. */
.home .oy-home-event[data-oy-group="yamane"] {
  margin: 0 -11px;
  padding-left: 11px;
  padding-right: 11px;
  border-left: 4px solid var(--oy-role-host);
  background: var(--oy-role-host-soft);
}
.home .oy-home-event[data-oy-group="yamane"] .oy-home-event__main > strong {
  color: var(--oy-role-host-deep);
}
.home a.oy-home-event[data-oy-group="yamane"]:hover {
  opacity: 1;
  background: #dcebf1;
}
/* The filter itself reinforces the host color; "All" stays neutral. */
.oy-concert-tabs [data-oy-filter="yamane"].is-active {
  border-color: var(--oy-role-host);
  background: var(--oy-role-host);
  color: #fff;
}
/* Calendar: hosted dates clearly differentiated even without relying on text alone. */
.oy-calendar-day [data-oy-group="yamane"] {
  border-left: 4px solid var(--oy-role-host);
  background: #e4f0f4;
  color: var(--oy-role-host-deep);
  box-shadow: inset 0 0 0 1px var(--oy-role-host-border);
}
.oy-calendar-day a[data-oy-group="yamane"]:hover {
  background: #d4e8ef;
  box-shadow: inset 0 0 0 1px var(--oy-role-host);
}
.oy-calendar-day [data-oy-group="yamane"] strong {
  color: var(--oy-role-host-deep);
  font-weight: 700;
}
.oy-calendar-day [data-oy-group="yamane"] strong::after,
.oy-past-concerts .oy-calendar-day .oy-calendar-host-badge {
  border: 1px solid var(--oy-role-host);
  border-radius: 3px;
  background: var(--oy-role-host);
  color: #fff;
  font-weight: 700;
}
.oy-calendar-day [data-oy-group="yamane"] strong::after {
  margin-left: 5px;
  padding: 2px 4px;
  content: "主催";
  font-size: .62rem;
  line-height: 1.3;
  white-space: nowrap;
}
.oy-past-concerts .oy-calendar-day [data-oy-group="yamane"] strong::after {
  content:none;
  display:none;
}
.oy-calendar-day [data-oy-group="production"] {
  border-left: 2px solid #d7dbde;
  background: #fff;
  color: #222;
  box-shadow: inset 0 0 0 1px #eceeef;
}
.oy-calendar-day a[data-oy-group="production"]:hover {
  background: #fafafa;
}
.oy-calendar-day [data-oy-group="production"] strong::after,
.oy-calendar-production-badge {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 4px;
  border: 1px solid #d2d6d9;
  border-radius: 3px;
  background: #fff;
  color: #71787d;
  font-size: .58rem;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;
  vertical-align: middle;
}
.oy-calendar-day [data-oy-group="production"] strong::after { content: "制作"; }
.oy-past-concerts .oy-calendar-day [data-oy-group="production"] strong::after {
  content:none;
  display:none;
}
.oy-calendar-production-badge {
  display:table;
  width:auto;
  margin:4px auto 0;
}
.oy-calendar-legend {opacity:1;color:#425964;font-size:.76rem;}
.oy-calendar-legend i {background:var(--oy-role-host);width:4px;}
@media (max-width:767px) {
  .oy-concert-row[data-oy-group="yamane"] > .oy-concert-row__link {
    padding-left: 9px;
    padding-right: 5px;
  }
  .oy-role-badge.is-yamane,
  .home .oy-home-event__meta .oy-role-badge.is-yamane {font-size:.72rem;padding:5px 8px;}
  .oy-calendar-day [data-oy-group="yamane"] strong::after {
    font-size: 9px;
    padding: 1px 3px;
    margin-left: 2px;
  }
  .oy-past-concerts .oy-calendar-day .oy-calendar-host-badge,
  .oy-calendar-production-badge {font-size:9px;line-height:1.25;}
  .oy-role-badge.is-production,
  .home .oy-home-event__meta .oy-role-badge.is-production {
    font-size: .64rem;
    padding: 2px 6px;
  }
  .oy-calendar-day [data-oy-group="production"] strong::after,
  .oy-calendar-production-badge {
    font-size: 9px;
    padding: 1px 3px;
    margin-left: 2px;
  }
}
@media (prefers-reduced-motion:reduce) {
  .oy-concert-row__link, .oy-calendar-day a {transition:none;}
}
