body{
  min-height:100vh;
  display:grid;
  justify-items:center;
  align-items:start;
  max-width:100%;
  overflow-x:hidden;
  padding:24px;
  text-align:center;
}

.page-shell{
  width:min(680px, 100%);
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--s2);
}

.agenda-card{
  width:100%;
  min-width:0;
  padding:24px;
  overflow:hidden;
  background:var(--card);
  border:1px solid var(--border);
  box-shadow:0 10px 30px rgba(0,0,0,.05);
}

.banner{
  display:block;
  width:min(34rem, 100%);
  margin:0 auto;
}

.page-header{
  max-width:37rem;
  margin:0 auto;
  text-align:center;
}

.page-header h1{
  margin:24px 0 7px;
  color:var(--accent);
  font-variant:small-caps;
  font-size:clamp(2rem, 6vw, 2.7rem);
  font-weight:500;
  line-height:1.08;
}

.agenda-date{
  margin:0 auto 8px;
  color:var(--crest-red);
  font-size:1.08rem;
  font-weight:600;
  line-height:1.3;
}

.agenda-intro{
  max-width:35rem;
  margin:0 auto 22px;
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.5;
}

.agenda-sections{
  display:grid;
  gap:9px;
  text-align:left;
}

.agenda-section{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--border);
  background:#fff;
  scroll-margin-top:16px;
}

.agenda-section summary{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  min-height:52px;
  align-items:center;
  padding:13px 44px 13px 15px;
  color:var(--accent);
  cursor:pointer;
  list-style:none;
  font-size:1.15rem;
  font-weight:600;
  line-height:1.25;
}

.agenda-section summary::-webkit-details-marker{ display:none; }

.agenda-section summary::after{
  content:"+";
  position:absolute;
  right:16px;
  top:50%;
  font-size:1.35rem;
  font-weight:400;
  transform:translateY(-53%);
}

.agenda-section[open] summary::after{ content:"−"; }

.agenda-time,
.agenda-status{
  color:var(--crest-red);
  font-size:.92rem;
  font-weight:600;
  white-space:nowrap;
}

.agenda-status{
  color:var(--muted);
  font-weight:500;
}

.agenda-body{
  padding:0 15px 16px;
}

.agenda-body-text{
  margin:0 0 12px;
  font-size:1.05rem;
  line-height:1.5;
}

.agenda-body-text-after{
  margin:12px 0 0;
}

.attire-note{
  margin:13px 0 0;
  padding:10px 12px;
  border-left:2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  background:#fcfaf7;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.45;
}

.agenda-section:target{
  border-color:var(--accent);
  box-shadow:0 0 0 2px rgba(138,107,79,.08);
}

.agenda-location-slot{
  min-width:0;
}

.agenda-location-card{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 96px;
  grid-template-rows:auto auto;
  min-width:0;
  overflow:hidden;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text);
}

.agenda-location-copy{
  grid-column:1;
  grid-row:1;
  display:block;
  min-width:0;
  padding:12px 8px 4px 14px;
}

.agenda-location-name{
  display:block;
  font-size:1.2rem;
  font-weight:600;
  line-height:1.2;
}

.agenda-location-address{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.25;
}

.agenda-location-actions{
  grid-column:1;
  grid-row:2;
  display:flex;
  flex-wrap:wrap;
  gap:6px 16px;
  align-items:center;
  padding:5px 8px 12px 14px;
}

.agenda-details-link{
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  background:var(--crest-red);
  color:#fff;
  font-size:.92rem;
  line-height:1.2;
  text-decoration:none;
  box-shadow:0 2px 6px rgba(143,38,56,.18);
}

.agenda-details-link:hover{ background:#7e2030; }

.agenda-directions-link{
  display:inline-block;
  color:var(--crest-red);
  font-size:.98rem;
  text-decoration:none;
  border-bottom:1px solid color-mix(in srgb, var(--crest-red) 45%, transparent);
}

.agenda-location-media{
  grid-column:2;
  grid-row:1 / -1;
  align-self:stretch;
  width:96px;
  min-height:100%;
}

.agenda-location-image{
  display:block;
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
  filter:saturate(.72) sepia(.07) brightness(1.03);
}

@media(max-width:700px){
  body{ padding:10px; }
  .agenda-card{ padding:14px; }
  .banner{ max-height:82px; }
  .page-header h1{ margin:12px 0 6px; font-size:1.85rem; }
  .agenda-date{ margin-bottom:6px; font-size:1rem; }
  .agenda-intro{ margin-bottom:16px; font-size:1rem; line-height:1.4; }
  .agenda-section summary{
    gap:8px;
    padding:12px 40px 12px 13px;
    font-size:1.08rem;
  }
  .agenda-time,
  .agenda-status{ font-size:.84rem; }
  .agenda-body{ padding:0 13px 14px; }
}

@media(max-width:420px){
  .agenda-location-card{ grid-template-columns:minmax(0, 1fr) 80px; }
  .agenda-location-media{ width:80px; }
  .agenda-location-copy{ padding-left:12px; }
  .agenda-location-actions{ padding-left:12px; }
}

@media(max-width:390px){
  .agenda-section summary{
    grid-template-columns:1fr;
    gap:3px;
  }
  .agenda-time,
  .agenda-status{ white-space:normal; }
}
