.hdf-schedule{

  --red:#cc0000;
  --ink:#1e1e1e;
  --text:#3a3a3a;
  --muted:#555;
  --line:#e7e7e7;
  --line-soft:#ededed;
  --head-bg:#f7f7f7;

  width:100%;
  max-width:1200px;
  margin:0 auto;
  color:var(--text);
}
.hdf-schedule *{box-sizing:border-box;}

.hdf-schedule table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}

/* Column widths */
.hdf-schedule .c-date{width:38%;}
.hdf-schedule .c-time{width:28%;}
.hdf-schedule .c-loc {width:34%;}

/* Header row */
.hdf-schedule thead th{
  background:var(--head-bg);
  color:var(--ink);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:18px;
  text-align:center;
  padding:20px 16px;
  border:1px solid var(--line);
}
.hdf-schedule thead th:first-child{border-left:none;}
.hdf-schedule thead th:last-child{border-right:none;}

/* Divider line between each month block */
.hdf-schedule tbody + tbody{border-top:1px solid var(--line);}

/* Cells */
.hdf-schedule td{
  padding:9px 16px;
  vertical-align:top;
  border-left:1px solid var(--line);
  border-right:1px solid var(--line);
  font-size:15px;
  line-height:1.5;
}
.hdf-schedule td.date{border-left:none;}
.hdf-schedule td.loc{border-right:none;}
.hdf-schedule td.time,
.hdf-schedule td.loc{text-align:center;color:var(--muted);}

/* Extra breathing room at the top/bottom of each month block */
.hdf-schedule tbody tr.month-row td{padding-top:24px;padding-bottom:6px;}
.hdf-schedule tbody tr:last-child td{padding-bottom:22px;}

/* Month heading */
.hdf-schedule .month{
  display:inline-block;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--ink);
  font-size:19px;
}

/* Date cell: date part + event part on one aligned line */
.hdf-schedule .date-inner{display:flex;gap:8px;}
.hdf-schedule .day{flex:0 0 108px;color:var(--muted);}
.hdf-schedule .event{flex:1 1 auto;color:var(--text);}

/* Red highlighted links */
.hdf-schedule .link{
  color:var(--red);
  text-decoration:underline;
  text-underline-offset:2px;
}
.hdf-schedule .link:hover{color:#a30000;}

/* ---------------- Responsive: stack into cards on small screens ---------------- */
@media (max-width:720px){
  .hdf-schedule thead{display:none;}
  .hdf-schedule table,
  .hdf-schedule tbody,
  .hdf-schedule tr,
  .hdf-schedule td{display:block;width:100%;}
  .hdf-schedule colgroup{display:none;}

  .hdf-schedule tbody + tbody{border-top:none;}

  .hdf-schedule td{
    border:none;
    padding:1px 0;
    text-align:left;
  }

  .hdf-schedule tr.month-row td{padding:20px 0 8px;}
  .hdf-schedule .month{font-size:20px;}

  .hdf-schedule tr:not(.month-row){
    padding:12px 2px;
    border-bottom:1px solid var(--line-soft);
  }
  .hdf-schedule tbody tr:last-child{border-bottom:none;}

  .hdf-schedule td.date{margin-bottom:5px;}
  .hdf-schedule .date-inner{display:block;}
  .hdf-schedule .day{display:inline;margin-right:6px;font-weight:600;}
  .hdf-schedule .day:empty{display:none;}
  .hdf-schedule .event{display:inline;}

  .hdf-schedule td.time,
  .hdf-schedule td.loc{text-align:left;color:var(--muted);font-size:14px;}
  .hdf-schedule td.time:empty,
  .hdf-schedule td.loc:empty{display:none;}
  .hdf-schedule td.time:not(:empty)::before{content:"Time: ";font-weight:600;color:var(--ink);}
  .hdf-schedule td.loc:not(:empty)::before{content:"Location: ";font-weight:600;color:var(--ink);}
}
