/**
 * AM2027 — schedule page.
 * A day-grouped session list. The time column is fixed so start times align
 * down the page; below 700px it stacks above the session body.
 */

/* Top padding trimmed to match the other interior pages: it was sized to
   sit above this page's own heading, which now lives in the sub banner. */
.schedule{padding:clamp(18px,2vw,26px) 28px clamp(56px,8vw,88px)}

.sched-head h1{margin:0;font-size:calc((clamp(26px,3.4vw,34px)) * var(--fs,1));font-weight:700;letter-spacing:-.015em}
.sched-head .u{width:56px;height:2px;background:var(--teal);margin:14px 0 0}
.sched-intro{margin:20px 0 0;font-size:calc((15.5px) * var(--fs,1));line-height:1.6;color:var(--slate); }
.sched-empty{margin:32px 0 0;font-size:calc((15px) * var(--fs,1));color:var(--slate)}

.sched-day{margin:44px 0 0}
.sched-day-title{
  margin:0 0 4px;padding:0 0 12px;
  font-size:calc((14px) * var(--fs,1));font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);
  border-bottom:1px solid var(--line);
}

.sched-list{list-style:none;margin:0;padding:0}
.sched-item{
  display:grid;grid-template-columns:170px 1fr;gap:20px;
  padding:18px 12px;border-bottom:1px solid var(--line-soft);
  transition:background .2s;
}
.sched-item:hover{background:var(--wash)}


.sched-time{
  font-size:calc((13.5px) * var(--fs,1));font-weight:700;color:var(--navy);
  letter-spacing:.02em;white-space:nowrap;padding-top:2px;
}
.sched-dash{margin:0 4px;color:var(--slate);font-weight:500}

.sched-title{margin:0;font-size:calc((17px) * var(--fs,1));font-weight:700;line-height:1.35;letter-spacing:-.005em}

.sched-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:9px 0 0}
.sched-meta span{font-size:calc((12px) * var(--fs,1));font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.sched-type{padding:4px 9px;border-radius:3px;background:var(--card-blue);color:var(--navy-2)}
.sched-type--keynote{background:var(--card-lilac);color:var(--purple)}
.sched-type--breakout{background:var(--card-mint);color:var(--teal-dark)}
.sched-type--meal,
.sched-type--networking{background:var(--line-soft);color:var(--slate)}
/* Green because every other hue on this row is taken: lilac is Keynote, mint
   Breakouts, blue the default, grey Meals and Networking, and the warm
   #FDF0E4 below is the Ticketed pill. 6.0:1 contrast. */
.sched-type--industry{background:#EAF3E4;color:#37652B}
.sched-pill{padding:4px 9px;border-radius:3px;background:#FDF0E4;color:#A8541B}
.sched-track,
.sched-room,
.sched-cme{font-weight:600!important;letter-spacing:.04em!important;text-transform:none!important;
  font-size:calc((13px!important) * var(--fs,1));color:var(--slate)}
.sched-track::before,
.sched-room::before,
.sched-cme::before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;
  background:var(--slate);opacity:.5;margin-right:8px;vertical-align:middle}
/* The separator dot assumes something sits before it. A session with no type
   -- untagged rows in the imported spreadsheet -- starts with its room, and
   the dot then led the line. */
.sched-meta > :first-child::before{display:none}

.sched-speakers{margin:9px 0 0;font-size:calc((14px) * var(--fs,1));line-height:1.5;color:var(--navy)}
.sched-speakers a{color:var(--teal);font-weight:600}
.sched-speakers a:hover{text-decoration:underline;text-underline-offset:2px}
.sched-desc{margin:8px 0 0;font-size:calc((14.5px) * var(--fs,1));line-height:1.55;color:var(--slate);max-width:72ch}

@media(max-width:700px){
  .sched-item{grid-template-columns:1fr;gap:6px;padding:16px 10px}
  .sched-time{padding-top:0;color:var(--teal)}
}

/* ---------- day navigation ---------- */
.sched-nav{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:14px 20px;margin:30px 0 0;
}
.sched-tabs{display:flex;flex-wrap:wrap;gap:8px}
.sched-tab{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 15px;border:1px solid var(--line);border-radius:6px;
  background:#fff;color:var(--slate);cursor:pointer;
  font-size:calc((12.5px) * var(--fs,1));font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  transition:background .18s,border-color .18s,color .18s;
}
.sched-tab:hover{border-color:#9CC3CC;color:var(--teal);background:var(--wash)}
.sched-tab:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.sched-tab-abbr{color:var(--navy)}
.sched-tab-dot{opacity:.45}
.sched-tab.is-active{
  background:var(--teal);border-color:var(--teal);color:#fff;
}
.sched-tab.is-active .sched-tab-abbr{color:#fff}
.sched-tab.is-active .sched-tab-dot{opacity:.6}

.sched-range{margin:0;font-size:calc((14px) * var(--fs,1));font-weight:600;color:var(--slate)}

/* With tabs live the panel heading is redundant with the active button, but it
   stays as the accessible name for the panel. */
.sched-day[role="tabpanel"]{margin-top:26px}
.sched-day[role="tabpanel"]:focus-visible{outline:2px solid var(--teal);outline-offset:4px}

@media(max-width:700px){
  .sched-nav{margin:22px 0 0}
  .sched-tab{padding:9px 12px;font-size:calc((12px) * var(--fs,1));gap:6px}
  .sched-range{order:-1;width:100%}
}
