/* Agenda */

#agenda{
  background:#f3e9dd;
}

.agenda-section .section-heading{
  margin-bottom:30px;
}

.concert-list{
  display:grid;
  gap:22px;
}

.concert-item{
  scroll-margin-top:110px;
  background:rgba(255,248,241,0.94);
  border:1px solid rgba(45,36,31,0.10);
  border-radius:26px;
  box-shadow:0 16px 30px rgba(47,31,20,0.08);
  overflow:hidden;
  transition:transform 220ms cubic-bezier(.22,1,.36,1), box-shadow 260ms cubic-bezier(.22,1,.36,1), background-color 260ms cubic-bezier(.22,1,.36,1), border-color 240ms cubic-bezier(.22,1,.36,1);
}

.concert-item:hover,
.concert-item:focus-within{
  transform:translateY(-2px);
  box-shadow:0 20px 34px rgba(47,31,20,0.10);
  background:rgba(252,247,242,0.98);
  border-color:rgba(45,36,31,0.14);
}

.concert-summary{
  list-style:none;
  position:relative;
  padding:26px 30px 22px;
  padding-right:228px;
  padding-bottom:52px;
  cursor:pointer;
}

.concert-summary::-webkit-details-marker{display:none;}
.concert-static .concert-summary,
.no-toggle{cursor:default;}
.concert-main{min-width:0;}

.concert-topline{
  display:block;
  margin-bottom:14px;
}

.concert-date{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:0.38em;
  min-width:0;
  font-family:"Cormorant Garamond", serif;
  font-size:1.22rem;
  font-weight:600;
  color:var(--accent);
  line-height:1.08;
}

.concert-date-line{white-space:nowrap;}
.concert-date-line + .concert-date-line::before{
  content:"·";
  display:inline-block;
  margin-right:0.38em;
}

.concert-tag{
  position:absolute;
  top:26px;
  right:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:4px 12px;
  border-radius:999px;
  background:rgba(159,94,71,0.07);
  color:rgba(94,73,62,0.96);
  font-family:"Cormorant Garamond", serif;
  font-size:0.88rem;
  font-weight:600;
  line-height:1.08;
  text-align:center;
  white-space:nowrap;
  max-width:240px;
}

.concert-summary h3{
  margin:0 0 5px 0;
  font-family:"Cormorant Garamond", serif;
  font-size:clamp(1.88rem, 2.08vw, 2.28rem);
  line-height:0.98;
  font-weight:600;
  letter-spacing:-0.03em;
  color:var(--text);
}

.concert-place{
  margin:0;
  color:var(--muted);
  font-family:"Cormorant Garamond", serif;
  font-size:1.24rem;
  line-height:1.1;
}

.concert-program-inline{
  margin:9px 0 0 0;
  color:var(--muted);
  font-size:0.97rem;
  line-height:1.42;
}

.concert-cta-slot{
  position:absolute;
  right:30px;
  bottom:22px;
  width:auto;
  display:flex;
  justify-content:flex-end;
}

.concert-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:auto;
  padding:0;
  border:none;
  border-radius:0;
  background:transparent;
  color:rgba(45,36,31,0.72);
  font-family:"Cormorant Garamond", serif;
  font-size:0;
  line-height:1;
  transition:color 220ms cubic-bezier(.22,1,.36,1), transform 220ms cubic-bezier(.22,1,.36,1), opacity 220ms cubic-bezier(.22,1,.36,1), background-color 220ms cubic-bezier(.22,1,.36,1), border-color 220ms cubic-bezier(.22,1,.36,1), box-shadow 220ms cubic-bezier(.22,1,.36,1);
}

.concert-cta::before{
  content:"...";
  font-size:1.15rem;
  letter-spacing:0.10em;
}

.concert-item:hover .concert-cta,
.concert-item:focus-within .concert-cta{
  color:rgba(45,36,31,0.94);
  transform:translateX(1px);
}
.concert-cta--placeholder{visibility:hidden;pointer-events:none;}

.concert-details{
  display:grid;
  grid-template-rows:0fr;
  padding:0 30px;
  border-top:1px solid rgba(45,36,31,0.08);
  opacity:0;
  transition:grid-template-rows 280ms cubic-bezier(.22,1,.36,1), opacity 220ms ease, padding 280ms cubic-bezier(.22,1,.36,1);
}

.concert-item[open] .concert-details{
  grid-template-rows:1fr;
  padding:0 30px 26px;
  opacity:1;
}

.concert-details-inner{
  min-height:0;
  overflow:hidden;
}

.details-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(420px, 0.98fr);
  gap:22px 42px;
  align-items:start;
}
.details-grid > .detail-column{min-width:0;}
.details-grid > .detail-column:only-child{grid-column:1 / -1;max-width:760px;}
.detail-column h4{margin:18px 0 12px 0;font-family:"Cormorant Garamond", serif;font-size:1.3rem;line-height:1.05;font-weight:700;letter-spacing:0.01em;color:var(--accent);}
.detail-item{margin:0;}
.detail-item--program{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.34rem;margin:0 0 0.68rem 0;font-family:"Cormorant Garamond", serif;font-size:1.12rem;line-height:1.24;color:rgba(94,73,62,0.92);}
.detail-program-composer{font-weight:600;color:var(--text);}
.detail-program-sep{font-family:"Inter Tight", system-ui, sans-serif;font-size:0.68em;color:rgba(94,73,62,0.52);}
.detail-program-work{font-weight:500;}
.detail-program-work--mobile{display:none;}
.detail-item--info{margin:0 0 0.7rem 0;color:rgba(94,73,62,0.95);font-family:"Cormorant Garamond", serif;font-size:1.16rem;font-weight:500;line-height:1.22;letter-spacing:0.003em;max-width:none;}
.detail-column--info{max-width:40rem;}
.detail-link{margin:1.1rem 0 0 0;}
.detail-link a{color:var(--accent);font-size:1.16rem;}
.section-cta{margin-top:28px;}
.agenda-more-link{color:var(--accent);font-size:1.18rem;}

@media (max-width:1100px){
  .concert-summary{padding-right:218px;}
  .concert-tag{max-width:220px;}
  .details-grid{grid-template-columns:1fr;gap:20px;}
  .details-grid > .detail-column:only-child{max-width:none;}
}

@media (max-width:900px){
  .concert-summary{padding:24px 22px 46px;padding-right:22px;}
  .concert-topline{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;}
  .concert-date{display:block;font-size:1.12rem;}
  .concert-date-line{display:block;white-space:normal;}
  .concert-date-line + .concert-date-line::before{display:none;content:none;}
  .concert-tag{position:static;justify-self:flex-end;align-self:flex-start;max-width:170px;min-height:30px;padding:5px 11px;font-size:0.84rem;text-align:center;white-space:normal;}
  .concert-cta-slot{right:22px;bottom:18px;}
  .concert-cta::before{font-size:1.05rem;}
  .concert-summary h3{font-size:clamp(1.84rem, 4vw, 2.18rem);}
  .concert-place{font-size:1.18rem;}
  .concert-item[open] .concert-details{padding:0 22px 22px;}
  .detail-item--info{font-size:1.08rem;line-height:1.2;max-width:none;}
  .agenda-more-link{font-size:1.12rem;}
}

@media (max-width:760px){
  .concert-list{gap:18px;}
  .concert-summary{padding:22px 18px 42px;}
  .concert-topline{gap:10px;}
  .concert-date{font-size:1rem;line-height:1.12;}
  .concert-tag{max-width:156px;font-size:0.78rem;padding:4px 10px;}
  .concert-summary h3{font-size:clamp(1.56rem, 7vw, 1.9rem);line-height:0.98;font-weight:600;letter-spacing:-0.03em;}
  .concert-place{font-size:1.08rem;}
  .concert-program-inline{margin-top:10px;font-size:0.98rem;line-height:1.42;}
  .concert-cta-slot{right:18px;bottom:18px;}
  .concert-cta{
    width:2.55rem;
    min-height:2rem;
    border:1px solid rgba(93,77,67,0.12);
    border-radius:999px;
    background:rgba(255,255,255,0.42);
    color:#826d63;
    box-shadow:0 8px 18px rgba(63,42,28,0.03);
  }
  .concert-cta::before{font-size:1rem;letter-spacing:0.08em;}
  .concert-item:hover .concert-cta,
  .concert-item:focus-within .concert-cta{
    color:#5f4b43;
    transform:translateY(-1px);
  }
  .concert-item[open] .concert-details{padding:18px 18px 20px;}
  .detail-program-work--mobile{display:none;}
  .detail-column h4{font-size:1.28rem;margin-top:0;}
  .detail-item--program{font-size:1.06rem;line-height:1.28;}
  .detail-item--info{font-size:0.97rem;line-height:1.44;}
  .detail-link a{font-size:1.14rem;}
  .detail-program-work--mobile{display:inline;}
  .detail-program-work--mobile::before{content:"·"; display:inline-block; margin:0 0.34rem 0 0.34rem; font-family:"Inter Tight", system-ui, sans-serif; font-size:0.68em; color:rgba(94,73,62,0.52); vertical-align:baseline;}
  .detail-program-work--mobile + .detail-program-work{display:none;}
}
