
/* Festival multi-slot expand */
.date-row--festival .date-venue{
  letter-spacing:-.02em;
}
.date-action--toggle{
  appearance:none;
  border:1px solid rgba(23,21,18,.14);
  background:#fff;
  cursor:pointer;
  font:inherit;
  color:inherit;
}
.date-action--toggle[aria-expanded="true"]{
  background:var(--ink,#171512);
  color:#fff;
  border-color:var(--ink,#171512);
}
.festival-slots{
  margin-top:16px;
  padding:14px 16px 12px;
  border-radius:12px;
  background:rgba(23,21,18,.03);
  border:1px solid rgba(23,21,18,.08);
}
.festival-slots[hidden]{
  display:none !important;
}
.festival-slots__label{
  margin:0 0 10px;
  font:800 .68rem/1 Inter,Arial,sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--copper,#b9693e);
}
.festival-slots__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}
.festival-slot{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 16px;
  padding-top:10px;
  border-top:1px solid rgba(23,21,18,.06);
}
.festival-slot:first-child{
  border-top:0;
  padding-top:0;
}
.festival-slot--has-thumb{
  flex-wrap:nowrap;
}
.festival-slot__thumb{
  flex:0 0 44px;
  width:44px;
  height:44px;
  border-radius:10px;
  overflow:hidden;
  background:rgba(23,21,18,.06);
  border:1px solid rgba(23,21,18,.08);
}
.festival-slot__thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
/* Soften the generic placeholder so real venue logos stand out */
.date-thumb--default img,
.festival-slot__thumb--default img{
  object-fit:contain;
  padding:18%;
  opacity:.55;
  background:rgba(23,21,18,.04);
}
.festival-slot__main{
  flex:1 1 auto;
  min-width:0;
}
.festival-slot__venue{
  display:block;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:1.15rem;
  font-weight:700;
  line-height:1.2;
  overflow-wrap:anywhere;
  word-break:normal;
}
.festival-slot__loc,
.festival-slot__notes{
  display:block;
  font-size:.85rem;
  color:var(--muted,#756e64);
  margin-top:2px;
}
.festival-slot__when{
  font-size:.9rem;
  color:var(--ink,#171512);
  font-weight:600;
  white-space:nowrap;
  flex:0 0 auto;
}
.festival-slot__map{
  font-weight:600;
  color:var(--copper,#b9693e);
  border-bottom:1px solid rgba(185,105,62,.35);
  text-decoration:none;
}
.festival-slot__map:hover{
  border-bottom-color:currentColor;
}

/* Mobile: thumb + name on first row, time under name (aligned past thumb) */
@media (max-width: 640px){
  .festival-slots{
    padding:12px 12px 10px;
  }
  .festival-slot,
  .festival-slot--has-thumb{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    grid-template-areas:
      "thumb main"
      ". when";
    column-gap:12px;
    row-gap:4px;
    align-items:start;
    flex-wrap:unset;
  }
  .festival-slot:not(.festival-slot--has-thumb){
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "main"
      "when";
  }
  .festival-slot__thumb{
    grid-area:thumb;
  }
  .festival-slot__main{
    grid-area:main;
    flex:unset;
    min-width:0;
  }
  .festival-slot__venue{
    font-size:1.05rem;
    line-height:1.25;
  }
  .festival-slot__when{
    grid-area:when;
    white-space:normal;
    font-size:.85rem;
    line-height:1.35;
  }
}
