/* ============================================================
   ISLPED — clean institutional conference theme
   Type:  IBM Plex Sans (UI/body/headings) · IBM Plex Mono (meta)
   Aesthetic: white, restrained navy accent, flat, generous space.
   ============================================================ */

:root {
  --bg:        #ffffff;   /* page background */
  --bg-soft:   #f5f7f9;   /* tinted sections / cards */
  --ink:       #18212e;   /* primary text (navy-charcoal) */
  --muted:     #5b6675;   /* secondary text */
  --line:      #e2e6ea;   /* hairline borders */
  --line-soft: #eef1f4;

  --navy:      #1f3a5f;   /* brand / hero / primary buttons */
  --navy-deep: #16293f;   /* footer, hover */
  --link:      #205493;   /* accessible link blue */
  --firm:      #b23b3b;   /* firm deadline emphasis */

  --maxw:        1140px;
  --maxw-narrow: 760px;
  /* side gutter scales down on narrow screens: 16px @320 → 32px @640+ */
  --gutter: clamp(16px, 5vw, 32px);

  --body: "Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --head: "Roboto Slab", Georgia, "Times New Roman", serif;
  --meta: "Alegreya Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --radius: 6px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16.5px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
.wrap--narrow { max-width: var(--maxw-narrow); }

a { color: var(--link); }

h1, h2, h3 {
  font-family: var(--head);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--ink);
}

/* --- shared bits ---------------------------------------------------------- */
.kicker {
  font-family: var(--meta);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--navy);
  margin: 0 0 0.9rem;
}
.kicker--invert { color: rgba(255, 255, 255, 0.65); }

.lede { font-size: 1.22rem; line-height: 1.55; color: var(--ink); }

.btn {
  display: inline-block;
  font-family: var(--body);
  font-size: 0.98rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-decoration: none;
  padding: 0.72em 1.45em;
  border: 1px solid var(--navy);
  border-radius: var(--radius);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.btn--solid { background: var(--navy); color: #fff; border-color: var(--navy); }
.btn--solid:hover { background: var(--navy-deep); border-color: var(--navy-deep); }
.btn--ghost { background: transparent; color: var(--navy); }
.btn--ghost:hover { background: var(--navy); color: #fff; }
.btn--block {
  display: block; text-align: center; margin-top: 1.5rem;
  background: var(--navy); color: #fff; border-color: var(--navy);
}
.btn--block:hover { background: var(--navy-deep); border-color: var(--navy-deep); }

.textlink {
  font-family: var(--body);
  font-size: 0.98rem;
  font-weight: 500;
  color: var(--link);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
}
.textlink:hover { color: var(--navy-deep); }

/* --- header (transparent overlay banner, ISCA-style) ---------------------- */
.site-head {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  background: rgba(22, 41, 63, 0.45);          /* translucent navy over hero */
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  transition: background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
/* opaque once the user scrolls past the hero, or on hover */
.site-head:hover,
.site-head--scrolled {
  background: var(--navy-deep);
  border-bottom-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 1px 12px rgba(0, 0, 0, 0.18);
}
/* interior pages have no hero — keep the banner solid so text stays legible */
body.no-hero .site-head { background: var(--navy-deep); }

.site-head__inner { display: flex; align-items: center; justify-content: space-between; height: 66px; }

.brand { display: flex; align-items: baseline; gap: 0.5rem; text-decoration: none; color: #fff; }
.brand__mark {
  font-family: var(--head); font-weight: 700;
  font-size: 1.3rem; letter-spacing: 0.01em; color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}
.brand__year { font-family: var(--meta); font-size: 0.85rem; color: rgba(255, 255, 255, 0.75); }

.site-nav ul { display: flex; align-items: center; gap: 1.7rem; list-style: none; margin: 0; padding: 0; }
.site-nav a {
  font-size: 0.92rem; font-weight: 500; text-decoration: none;
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
  transition: color .2s ease;
}
.site-nav a:hover { color: #fff; }
.site-nav__cta a {
  border: 1px solid rgba(255, 255, 255, 0.55); border-radius: var(--radius);
  padding: 0.5em 1em; color: #fff;
  transition: background .2s ease, border-color .2s ease;
}
.site-nav__cta a:hover { background: #fff; color: var(--navy); border-color: #fff; }

.nav-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 6px; }
.nav-toggle span { width: 24px; height: 2px; background: #fff; transition: .2s; }

/* --- dropdown menu (ISCA-style "Attend" tab) ------------------------------ */
.has-dropdown { position: relative; }
.dropdown-toggle {
  display: inline-flex; align-items: center; gap: 0.35em;
  font-family: inherit; font-size: 0.92rem; font-weight: 500;
  color: rgba(255, 255, 255, 0.88); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
  background: none; border: 0; padding: 0; cursor: pointer;
  transition: color .2s ease;
}
.dropdown-toggle:hover,
.dropdown-toggle[aria-expanded="true"] { color: #fff; }
.dropdown-caret {
  width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent;
  border-top: 5px solid currentColor; transition: transform .2s ease;
}
.dropdown-toggle[aria-expanded="true"] .dropdown-caret { transform: rotate(180deg); }

.site-nav ul.dropdown {
  display: block;                              /* beat `.site-nav ul` flex → stack items */
  position: absolute; top: 100%; left: 0; width: max-content; min-width: 0;
  margin: 0; padding: 6px; list-style: none;
  background: var(--navy-deep);
  border: 1px solid rgba(255, 255, 255, 0.12); border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.dropdown-toggle[aria-expanded="true"] + .dropdown {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.dropdown li { padding: 0; }
.dropdown a {
  display: block; padding: 0.55em 0.85em; border-radius: calc(var(--radius) - 2px);
  font-size: 0.9rem; white-space: nowrap; text-shadow: none;
  color: rgba(255, 255, 255, 0.82);
}
.dropdown a:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
.dropdown-divider {
  height: 0; margin: 6px 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

/* the banner is fixed/overlaid; push non-hero pages clear of it */
body.no-hero main { padding-top: 66px; }

/* --- hero ----------------------------------------------------------------- */
.hero { position: relative; color: #fff; background: var(--navy-deep); overflow: hidden; }

/* rotating Chicago skyline backdrop (crossfade slideshow) */
.hero__slides { position: absolute; inset: 0; z-index: 0; }
.hero__slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0;
  animation: heroFade 32s infinite;
}
.hero__slide:nth-child(1) { animation-delay:  0s; opacity: 1; }
.hero__slide:nth-child(2) { animation-delay:  8s; }
.hero__slide:nth-child(3) { animation-delay: 16s; }
.hero__slide:nth-child(4) { animation-delay: 24s; }
@keyframes heroFade {
  0%    { opacity: 0; }
  3%    { opacity: 1; }
  25%   { opacity: 1; }
  28%   { opacity: 0; }
  100%  { opacity: 0; }
}
/* dark scrim so the white headline/nav stay legible over photos */
.hero__scrim {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(13,24,38,0.55) 0%, rgba(13,24,38,0.38) 45%, rgba(13,24,38,0.72) 100%);
}
@media (prefers-reduced-motion: reduce) {
  .hero__slide { animation: none; }
  .hero__slide:not(:nth-child(1)) { opacity: 0; }
}
.hero__inner { position: relative; z-index: 2; padding: 132px var(--gutter) 92px; text-align: center; }
.hero__title {
  font-size: clamp(2.1rem, 4.8vw, 3.4rem);
  font-weight: 600;
  line-height: 1.12;
  margin: 0 auto 1.4rem;
  max-width: 22ch;
  color: #fff;
}
.hero__title em { font-style: normal; color: #9db9dd; }
.hero__meta {
  font-family: var(--meta); font-size: 1.08rem; color: rgba(255, 255, 255, 0.88);
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 0.5rem 0.9rem; margin: 0;
}
.hero__edition { color: #fff; font-weight: 500; }
.hero__sep { color: rgba(255, 255, 255, 0.4); }
.hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.9rem; }
.hero .btn--solid { background: #fff; color: var(--navy); border-color: #fff; }
.hero .btn--solid:hover { background: #e8eef6; border-color: #e8eef6; }
.hero .btn--ghost { color: #fff; border-color: rgba(255, 255, 255, 0.55); }
.hero .btn--ghost:hover { background: #fff; color: var(--navy); }

/* --- home ------------------------------------------------------------------ */
/* Only set vertical padding — using the `padding` shorthand here would reset
   the horizontal gutter that `.wrap` provides, leaving text flush to the
   screen edge on narrow viewports. */
.home { padding-top: 60px; padding-bottom: 8px; }

/* top band: intro (left) + upcoming dates (right) */
.home-top {
  display: grid;
  grid-template-columns: 1.6fr minmax(300px, 1fr);
  gap: 56px;
  align-items: start;
  padding-bottom: 56px;
  border-bottom: 1px solid var(--line);
}
.home-intro .kicker { margin-bottom: 0.5rem; }
.home-intro h2 { font-size: 1.8rem; margin: 0 0 1.1rem; }
.home-intro .lede { color: var(--ink); margin: 0 0 1rem; }
.home-intro p { color: var(--muted); }

/* quick links — sits under the intro, parallel with the dates card */
.home-links { margin-top: 1.8rem; }
.home-links .kicker { margin-bottom: 0.9rem; }
.home-links__groups { margin: 0; }
.home-links__group {
  display: grid; grid-template-columns: 180px 1fr; gap: 1rem;
  padding: 0.7rem 0; border-top: 1px solid var(--line-soft);
}
.home-links__group:first-child { border-top: 0; padding-top: 0; }
.home-links__group dt {
  font-family: var(--meta); font-size: 0.8rem; font-weight: 600;
  color: var(--muted); padding-top: 2px;
}
.home-links__group dd {
  margin: 0; display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.4rem 0.7rem;
}
.home-links__sep { color: var(--line); user-select: none; }

.home-dates {
  background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 26px 26px 24px;
  position: sticky; top: 90px;
}
.home-dates .kicker { margin-bottom: 1rem; }

/* stacked sections below the top band */
.home-section { padding: 52px 0; border-top: 1px solid var(--line); }
.home-top + .home-section { border-top: 0; }
.home-section__head { margin-bottom: 1.6rem; }
.home-section__head .kicker { margin-bottom: 0.5rem; }
.home-section__head h2 { font-size: 1.6rem; margin: 0; }
.home-section > p { color: var(--muted); max-width: 70ch; }
.home-section > p.lede { color: var(--ink); }
.home-section__links { display: flex; flex-wrap: wrap; gap: 1.4rem; margin-top: 1.1rem; }

/* awards / winners */
.home-section--awards,
.home-top + .home-section--awards {
  margin-left: calc(-1 * var(--gutter));
  margin-right: calc(-1 * var(--gutter));
  padding: 2.2rem var(--gutter);
  background: var(--bg-soft);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.home-section--awards + .home-section { border-top: 0; }
.awards {
  list-style: none; margin: 1.5rem 0 0; padding: 0;
  display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.award-card {
  background: var(--bg);
  border: 1px solid var(--line);
  border-top: 3px solid var(--navy);
  border-radius: var(--radius);
  padding: 1.15rem 1.2rem;
}
.award-card__label {
  font-family: var(--meta);
  font-size: 0.76rem; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--navy); font-weight: 700; margin: 0 0 0.55rem;
}
.award-card__title { font-size: 1.05rem; line-height: 1.35; margin: 0 0 0.35rem; color: var(--ink); }
.award-card__people { margin: 0; font-size: 0.92rem; color: var(--muted); }
.award-card__tba { margin: 0; font-size: 0.92rem; font-style: italic; color: var(--muted); }

/* news / announcements */
.news { list-style: none; margin: 0; padding: 0; }
.news__item {
  display: grid; grid-template-columns: 150px 1fr; gap: 1rem;
  padding: 1.05rem 0; border-top: 1px solid var(--line-soft);
}
.news__item:first-child { border-top: 0; padding-top: 0; }
.news__date { font-family: var(--meta); font-size: 0.8rem; color: var(--muted); padding-top: 2px; }
.news__text { margin: 0; color: var(--ink); }
.news__text a { color: var(--link); }

/* keynotes */
.keynotes { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; gap: 1.6rem; }
.keynote {
  display: grid; grid-template-columns: 160px 1fr; gap: 1.4rem;
  padding: 1.4rem 0; border-top: 1px solid var(--line-soft);
}
.keynote:first-child { border-top: 0; padding-top: 0; }
.keynote__photo {
  aspect-ratio: 3 / 4; background: var(--bg-soft); border: 1px dashed var(--line);
  border-radius: var(--radius); display: grid; place-items: center; overflow: hidden;
}
.keynote__photo:has(img) { border-style: solid; border-color: var(--line-soft); }
.keynote__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; display: block; }
.keynote__placeholder {
  font-family: var(--meta); font-size: 0.8rem; color: var(--muted);
  text-align: center; padding: 0 0.5rem;
}
.keynote__body .kicker { margin-bottom: 0.35rem; }
.keynote__name { font-size: 1.2rem; margin: 0 0 0.2rem; }
.keynote__role { margin: 0 0 0.1rem; font-family: var(--meta); font-size: 0.9rem; font-style: italic; line-height: 1.4; color: var(--muted); }
.keynote__affil { margin: 0 0 0.7rem; font-family: var(--meta); color: var(--muted); }
.keynote__title { font-size: 1rem; margin: 0 0 0.6rem; color: var(--ink); }
.keynote__abstract { margin: 0 0 0.9rem; color: var(--muted); max-width: 70ch; }
.keynote__more { margin: 0 0 0.2rem; }
.keynote__more > summary {
  cursor: pointer; display: inline-flex; align-items: center; gap: 0.35rem;
  font-family: var(--meta); font-size: 0.82rem; font-weight: 600;
  letter-spacing: 0.03em; color: var(--navy); list-style: none; width: max-content;
}
.keynote__more > summary::-webkit-details-marker { display: none; }
.keynote__more > summary::after {
  content: "▸"; font-size: 0.7rem; transition: transform 0.15s ease;
}
.keynote__more[open] > summary::after { transform: rotate(90deg); }
.keynote__more > summary:hover { text-decoration: underline; }
.keynote__more .keynote__abstract { margin: 0.6rem 0 0; }
.keynote__bio { margin: 0; color: var(--muted); max-width: 70ch; font-size: 0.94rem; }
.keynote__bio strong { color: var(--ink); font-weight: 600; }

/* upcoming-dates box (right column) */
.dates__list { margin: 0; }
.dates__row { padding: 0.65rem 0; border-top: 1px solid var(--line); }
.dates__row:first-child { border-top: 0; padding-top: 0; }
.dates__row dt { font-size: 0.85rem; color: var(--muted); margin-bottom: 0.12rem; }
.dates__row dd { margin: 0; font-family: var(--meta); font-size: 0.88rem; color: var(--ink); }
.dates__row dd s { color: var(--muted); opacity: 0.7; }
.dates__row--firm dd { color: var(--firm); font-weight: 600; }

/* per-row relative countdown badge */
.dates__rel {
  display: inline-block; margin-left: 0.5rem; padding: 0.05rem 0.45rem;
  font-family: var(--meta); font-size: 0.7rem; line-height: 1.5;
  color: var(--muted); background: var(--bg-soft);
  border: 1px solid var(--line); border-radius: 999px; white-space: nowrap;
}
.dates__row--firm .dates__rel { color: var(--firm); border-color: var(--firm); }
.dates__row--past { opacity: 0.55; }
.dates__row--past .dates__rel { color: var(--muted); }

.dates__note {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.85rem;
  padding: 0.4rem 0.6rem;
  background: var(--line-soft);
  border-left: 3px solid var(--navy);
  border-radius: var(--radius);
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--muted);
}
.dates__note-tag {
  flex: none;
  font-family: var(--meta);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--navy);
  padding: 0.14rem 0.34rem;
  border-radius: 4px;
}
.dates__note strong { color: var(--ink); font-weight: 600; }

/* headline countdown to next deadline */
.dates__countdown {
  margin-bottom: 1.1rem; padding: 0.9rem 1rem;
  background: var(--bg-soft); border: 1px solid var(--line);
  border-radius: var(--radius);
}
.dates__countdown-label {
  margin: 0 0 0.55rem; font-family: var(--meta);
  font-size: 0.78rem; color: var(--muted);
}
.dates__countdown-clock { display: flex; gap: 0.55rem; }
.dates__unit {
  display: flex; flex-direction: column; align-items: center;
  flex: 1; min-width: 0;
}
.dates__unit b {
  font-family: var(--meta); font-size: 1.35rem; font-weight: 700;
  color: var(--ink); font-variant-numeric: tabular-nums; line-height: 1.1;
}
.dates__unit small {
  font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--muted); margin-top: 0.15rem;
}

/* --- interior pages ------------------------------------------------------- */
.page { padding: 0 0 80px; }

/* photo banner with the title overlaid, ISCA-style (mirrors the home hero) */
.page-hero {
  position: relative; color: #fff;
  background-color: var(--navy-deep);
  background-size: cover; background-position: center;
  overflow: hidden;
}
.page-hero__scrim {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(13,24,38,0.55) 0%, rgba(13,24,38,0.45) 50%, rgba(13,24,38,0.72) 100%);
}
.page-hero__inner { position: relative; z-index: 2; padding: 120px var(--gutter) 56px; text-align: center; }
.page-hero__title {
  font-size: clamp(1.9rem, 3.8vw, 2.9rem); font-weight: 600; line-height: 1.12;
  margin: 0; color: #fff;
}
.page-hero__lede {
  font-family: var(--meta); font-size: 1.12rem; color: rgba(255, 255, 255, 0.9);
  margin: 1rem auto 0; max-width: 60ch;
}
.page__body { padding-top: 52px; }

.prose { font-size: 1.02rem; }
.prose h2 { font-size: 1.45rem; margin: 2.4rem 0 0.8rem; }
.prose h3 { font-size: 1.14rem; margin: 1.8rem 0 0.5rem; font-weight: 600; }
.prose p, .prose li { color: var(--ink); }
.prose a { color: var(--link); text-decoration: underline; text-underline-offset: 3px; }
.prose a.btn { text-decoration: none; }
.prose a.btn--solid { color: #fff; }
.prose a.btn--ghost { color: var(--navy); }
.prose a.btn--ghost:hover { color: #fff; }
.prose ul { padding-left: 1.2rem; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.4rem 0; }

.map-embed {
  margin: 1.6rem 0;
  max-width: 560px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.map-embed iframe { display: block; width: 100%; height: 320px; border: 0; }

/* demo-only notice (e.g. unpublished pages shown for preview) */
.demo-note {
  margin: 0 0 1.6rem;
  padding: 0.9rem 1.1rem;
  border: 1px solid #e0b65c;
  border-left: 4px solid #d9952a;
  border-radius: var(--radius);
  background: #fdf6e7;
  color: #6b4e16;
  font-size: 0.95rem;
}
.demo-note p { margin: 0; color: inherit; }
.demo-note code { background: rgba(0, 0, 0, 0.06); padding: 0.05em 0.35em; border-radius: 3px; }

/* call-for-papers collapsible sub-tracks */
.subtrack {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin: 0.6rem 0;
  background: var(--bg);
}
.subtrack + .subtrack { margin-top: 0.5rem; }
.subtrack > summary {
  list-style: none;
  cursor: pointer;
  padding: 0.85rem 1.1rem;
  font-weight: 600;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 0.6rem;
  border-radius: var(--radius);
}
.subtrack > summary::-webkit-details-marker { display: none; }
.subtrack > summary::before {
  content: "";
  flex: 0 0 auto;
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid var(--navy);
  border-bottom: 2px solid var(--navy);
  transform: rotate(-45deg);
  transition: transform .15s ease;
}
.subtrack[open] > summary::before { transform: rotate(45deg); }
.subtrack > summary:hover { color: var(--navy); background: var(--bg-soft); }
.subtrack[open] > summary { border-bottom: 1px solid var(--line); border-radius: var(--radius) var(--radius) 0 0; }
.subtrack > p {
  margin: 0;
  padding: 0.9rem 1.1rem 1rem;
  color: var(--muted);
}

/* call-for-papers submission panel */
.submit-card {
  margin: 1.4rem 0 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--bg-soft);
  overflow: hidden;
}
.submit-card__body { padding: 1.5rem 1.6rem 1.4rem; }
.submit-card__lead {
  margin: 0 0 1.1rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--ink);
}
.submit-card__facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}
.submit-card__facts li {
  position: relative;
  padding-left: 1.1rem;
  color: var(--muted);
}
.submit-card__facts li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--navy);
}
.submit-card__facts strong {
  display: inline-block;
  min-width: 6rem;
  color: var(--ink);
}
.submit-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  padding: 1.2rem 1.6rem;
  border-top: 1px solid var(--line);
  background: var(--bg);
}
.submit-card__actions .btn { text-decoration: none; }
.submit-card__actions .btn--solid { color: #fff; }
.submit-card__actions .btn--ghost { color: var(--navy); }
.submit-card__actions .btn--ghost:hover { color: #fff; }
@media (max-width: 560px) {
  .submit-card__actions .btn { flex: 1 1 100%; text-align: center; }
}

/* technical program committee */
.tpc-lead { margin: 1.8rem 0 2.4rem; }
.tpc-lead__head {
  font-family: var(--meta);
  font-size: 0.85rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--navy); font-weight: 700; margin: 0 0 0.7rem;
}
.tpc-track {
  margin: 2rem 0;
  padding-top: 1.6rem;
  border-top: 1px solid var(--line);
}
.tpc-track__name {
  font-family: var(--head);
  font-size: 1.12rem;
  color: var(--ink);
  margin: 0;
}
.tpc-track__label {
  font-family: var(--meta);
  font-size: 0.72rem; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--muted); font-weight: 600;
  margin: 1.1rem 0 0.5rem;
}
.tpc-track__tba { margin: 0.7rem 0 0; color: var(--muted); font-style: italic; font-size: 0.92rem; }
.tpc-people {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.5rem 1.4rem;
}
.tpc-people li {
  padding: 0.45rem 0.7rem;
  border-left: 2px solid var(--line);
  border-radius: 0 4px 4px 0;
}
.tpc-people .tpc-name { display: block; font-size: 0.92rem; color: var(--ink); }
.tpc-people .affil { display: block; font-size: 0.78rem; color: var(--muted); margin-top: 0.05rem; }
/* co-chairs — accented */
.tpc-people--lead li, .tpc-people--chairs li {
  border-left-color: var(--navy);
  background: #f4f7fb;
}
.tpc-people--lead .tpc-name, .tpc-people--chairs .tpc-name {
  font-weight: 600; color: var(--navy);
}

/* committee */
.committee-role { margin: 1.8rem 0; }
.committee-role h3 {
  font-family: var(--meta);
  font-size: 0.85rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--navy); font-weight: 700;
}
.committee-role ul { list-style: none; padding: 0; margin: 0.6rem 0 0; }
.committee-role li { padding: 0.4rem 0; border-bottom: 1px solid var(--line-soft); }
.committee-role .affil { color: var(--muted); font-size: 0.92rem; }

/* --- program / schedule --------------------------------------------------- */
.schedule {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  margin: 1.8rem 0;
}
.schedule-day {
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 3px rgba(24, 33, 46, 0.05);
}
.schedule-day__head {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  margin: 0;
  padding: 0.85rem 1.15rem;
  background: var(--navy);
  color: #fff;
}
.schedule-day__n { font-family: var(--head); font-size: 1.02rem; font-weight: 600; }
.schedule-day__wd {
  font-family: var(--meta);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  opacity: 0.72;
}
.schedule-day__date {
  margin-left: auto;
  font-family: var(--meta);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  opacity: 0.88;
}

.schedule-rows { list-style: none; margin: 0; padding: 0.35rem 0; }
.schedule-row {
  display: flex;
  gap: 0.95rem;
  align-items: baseline;
  padding: 0.5rem 1.15rem;
  border-left: 3px solid transparent;
}
.schedule-row__time {
  flex: none;
  width: 3.1rem;
  font-family: var(--meta);
  font-size: 0.8rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}
.schedule-row__item { font-size: 0.92rem; line-height: 1.35; color: var(--ink); }
.schedule-row__item em {
  display: block;
  font-style: normal;
  font-size: 0.78rem;
  color: var(--muted);
  margin-top: 0.05rem;
}

/* keynotes — accented and emphasized */
.schedule-row.is-keynote { background: #f4f7fb; border-left-color: var(--navy); }
.schedule-row.is-keynote .schedule-row__time { color: var(--navy); }
.schedule-row.is-keynote .schedule-row__item { font-weight: 600; color: var(--navy); }

/* technical sessions, panels & poster — accented program content */
.schedule-row.is-session { background: #eef4f8; border-left-color: #3a7ca5; }
.schedule-row.is-session .schedule-row__time { color: #2c6280; }
.schedule-row.is-session .schedule-row__item { font-weight: 600; color: #20425a; }

/* featured social items (banquet, awards) */
.schedule-row.is-feature { background: #faf6f0; border-left-color: #c08a3e; }
.schedule-row.is-feature .schedule-row__item { font-weight: 600; }

/* breaks & meals — de-emphasized */
.schedule-row.is-break .schedule-row__item,
.schedule-row.is-meal .schedule-row__item { color: var(--muted); }

/* end-of-day markers */
.schedule-row.is-end .schedule-row__time,
.schedule-row.is-end .schedule-row__item {
  font-size: 0.74rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
}

/* --- rate / pricing table ------------------------------------------------- */
.rate-card {
  border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; box-shadow: 0 1px 2px rgba(24, 33, 46, 0.04);
  margin: 1.2rem 0 1rem;
}
.rate-table { width: 100%; border-collapse: collapse; font-size: 0.96rem; }
.rate-table th, .rate-table td { padding: 0.85rem 1.1rem; text-align: right; }
.rate-table thead th {
  background: var(--navy); color: #fff; font-family: var(--meta);
  font-weight: 600; font-size: 0.78rem; letter-spacing: 0.06em;
  text-transform: uppercase; white-space: nowrap; vertical-align: top;
}
.rate-table .rate-when {
  display: block; margin-top: 3px;
  font-size: 0.7rem; font-weight: 400; letter-spacing: 0.02em;
  text-transform: none; color: rgba(255, 255, 255, 0.62);
}
.rate-table th.rate-cat { text-align: left; }
.rate-table tbody th {
  text-align: left; font-weight: 500; color: var(--ink);
  font-family: var(--body);
}
.rate-table tbody tr { border-top: 1px solid var(--line-soft); }
.rate-table tbody tr:first-child { border-top: 0; }
.rate-table tbody tr:nth-child(even) { background: #fafbfc; }

/* sub-category banding rows */
.rate-table tbody tr.rate-group { background: var(--bg-soft); border-top: 1px solid var(--line); }
.rate-table tbody tr.rate-group th {
  text-align: left; font-family: var(--meta);
  font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 700; color: var(--navy); padding: 0.6rem 1.1rem;
}
.rate-table td { font-variant-numeric: tabular-nums; color: var(--ink); }
.rate-table .rate-na { color: var(--muted); }

/* gently distinguish the early-bird column */
.rate-table tbody td.rate-best {
  background: rgba(31, 58, 95, 0.045);
  box-shadow: inset 1px 0 0 var(--line-soft), inset -1px 0 0 var(--line-soft);
}
.rate-table tbody tr:nth-child(even) td.rate-best { background: rgba(31, 58, 95, 0.07); }

.rate-table tfoot td {
  text-align: left; font-size: 0.86rem; color: var(--muted);
  background: var(--bg-soft); border-top: 1px solid var(--line);
}

@media (max-width: 600px) {
  .rate-card { overflow-x: auto; }
  .rate-table { min-width: 480px; }
  .rate-table th, .rate-table td { padding: 0.7rem 0.8rem; }
}

/* --- footer --------------------------------------------------------------- */
.site-foot { background: var(--navy-deep); color: rgba(255, 255, 255, 0.78); margin-top: 64px; }
.site-foot .wrap { padding-top: 56px; padding-bottom: 28px; }
.site-foot__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; padding-bottom: 36px; }
.brand__mark--foot { color: #fff; font-size: 1.4rem; font-weight: 700; display: block; margin-bottom: 0.6rem; }
.site-foot p { margin: 0.3rem 0; max-width: 44ch; }
.site-foot__meta { font-family: var(--meta); font-size: 0.82rem; color: rgba(255, 255, 255, 0.5); }
.site-foot .kicker { color: rgba(255, 255, 255, 0.5); }
.sponsor-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-bottom: 0.5rem; }
.sponsor { color: #fff; text-decoration: none; font-size: 0.92rem; }
.sponsor img {
  display: block; height: 34px; width: auto;
  background: #fff; padding: 6px 10px; border-radius: 6px;
  box-sizing: content-box;
}
.site-foot__bar {
  border-top: 1px solid rgba(255, 255, 255, 0.14); padding-top: 18px;
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;
  font-family: var(--meta); font-size: 0.76rem; color: rgba(255, 255, 255, 0.5);
}

/* --- responsive ----------------------------------------------------------- */
@media (max-width: 880px) {
  .home-top { grid-template-columns: 1fr; gap: 8px 0; padding-bottom: 44px; }
  .home-dates { position: static; margin-top: 8px; }
  .home-links__group { grid-template-columns: 1fr; gap: 0.35rem; }
  .site-foot__grid { grid-template-columns: 1fr; gap: 32px; }

  .nav-toggle { display: flex; }
  .site-nav {
    position: absolute; top: 66px; left: 0; right: 0;
    background: var(--navy-deep); border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    max-height: 0; overflow: hidden; transition: max-height .25s ease;
  }
  .site-nav.open { max-height: 460px; }
  .site-nav ul { flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--gutter) 20px; }
  .site-nav li { padding: 0.7rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
  .site-nav__cta a { display: inline-block; }

  /* dropdown collapses into an inline accordion on mobile */
  .has-dropdown { padding: 0; }
  .dropdown-toggle {
    width: 100%; justify-content: space-between;
    padding: 0.7rem 0; font-size: 1rem;
  }
  .site-nav ul.dropdown {
    position: static; min-width: 0; opacity: 1; visibility: hidden;
    transform: none; background: none; border: 0; box-shadow: none;
    padding: 0; max-height: 0; overflow: hidden;
    transition: max-height .25s ease;
  }
  .dropdown-toggle[aria-expanded="true"] + .dropdown { visibility: visible; max-height: 320px; }
  .dropdown li { border-bottom: 0; }
  .dropdown a { padding: 0.55em 0 0.55em 1rem; }
}

@media (max-width: 520px) {
  .news__item { grid-template-columns: 1fr; gap: 0.2rem; }
  .keynote { grid-template-columns: 1fr; gap: 0.9rem; }
  .keynote__photo { max-width: 160px; }
}
