/* ---------- Lab Life: a single reading column ---------- */
.hero .container,.container.prose{width:min(46rem,92vw)}   /* title aligned with the reading column */

/* Activity timetable: frequency on the left, description on the right */
.activities{list-style:none;padding:0;margin:1.6rem 0 2rem;border-bottom:1px solid var(--line)}
.activities > li{
  display:grid;grid-template-columns:7.5rem 1fr;gap:1.2rem;
  padding:1.05rem 0;border-top:1px solid var(--line);
}
.activities .freq{
  margin:.15rem 0 0;font-size:.95rem;font-family:var(--serif);font-style:italic;color:var(--muted);
}
.activities > li > p:last-child{margin:0}

@media (max-width:640px){
  .activities > li{grid-template-columns:1fr;gap:.2rem}
}

/* Policy and Activities read as one document: no second section break */
#activities{padding-top:0}

/* A week in the lab (_includes/lab-week.html).
   Wide screens: a time axis plus five day columns; every column shares the
   same rows (a 1.9rem header, then 33 rows of 15 minutes from 09:00, the last holding the 17:00 line),
   so events line up by time. Hour lines are a background on each column. */
.week{
  --slot:.9rem;
  display:grid;grid-template-columns:2.6rem repeat(5,1fr);gap:0 .4rem;
  margin:1.4rem 0 2.2rem;font-size:.8rem;line-height:1.3;
}
.week-axis,.week-day{
  display:grid;grid-template-rows:1.9rem repeat(33,var(--slot));
}
.week-day{
  border-top:3px solid var(--logo-navy);
  background:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px calc(var(--slot) * 4)) 0 1.9rem / 100% calc(100% - 1.9rem) no-repeat;
}
.week-day h4{grid-row:1;margin:0;padding-top:.3rem;font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--logo-navy)}
.week-axis span{margin-top:-.5em;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}
.week-event{
  grid-column:1;margin:1px 0;padding:.2rem .35rem;overflow:hidden;
  background:var(--bg-soft);border-left:2px solid var(--logo-navy);
}
.week-time{display:none}
/* 30 minutes or less: one line, the short label from the data file */
.week-short{display:flex;align-items:center;padding:0 .35rem}
.week-label{font-weight:600;color:var(--logo-navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week-short:has(.week-label) .week-kind,.week-short:has(.week-label) .week-topic{display:none}
.week-kind{display:block;font-weight:600;color:var(--logo-navy)}
.week-topic{display:block;color:var(--ink)}
.week-none{grid-row:2/6;margin:.3rem 0 0;font-style:italic;color:var(--muted)}

@media (max-width:640px){
  .week{display:block;font-size:.86rem}
  .week-axis{display:none}
  .week-day{display:grid;grid-template-columns:3rem 1fr;grid-template-rows:none;gap:0 .8rem;padding:.5rem 0 1rem;background:none}
  .week-day h4{grid-row:auto;padding:0}
  .week-event,.week-short{grid-row:auto !important;font-size:inherit;line-height:inherit;grid-column:2;margin:0 0 .5rem;padding:0;background:none;border:none}
  .week-short{display:block}
  .week-label{display:none}
  .week-short .week-kind,.week-short .week-topic{display:block !important}
  .week-time{display:block;color:var(--muted);font-size:.8rem}
  .week-none{grid-row:auto;margin:0}
}

/* Photos: a wide photo on top, then two side by side */
.photos{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.6rem 0 2.2rem}
.photos figure{margin:0}
.photos figure.wide{grid-column:1 / -1}
.photos img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}
.photos figure.wide img{aspect-ratio:auto}
.photos figcaption{margin-top:.35rem;font-size:.85rem;color:var(--muted)}
@media (max-width:640px){
  .photos{grid-template-columns:1fr}
}
