/* Topic page: a restrained conference directory. */
.topic-page { --topic-ink: #142c48; --topic-muted: #5f7182; --topic-line: #ccd7df; --topic-blue: #1a5d90; --topic-accent: #eb6548; color: var(--topic-ink); padding-top: 72px; }
.topic-page__intro { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(42px, 9vw, 150px); align-items: end; padding: 0 0 62px; border-bottom: 2px solid var(--topic-ink); }
.topic-page__eyebrow, .topic-directory__header > p { margin: 0; color: var(--topic-blue); font: 700 10px/1.3 "Montserrat", sans-serif; letter-spacing: 1.2px; text-transform: uppercase; }
.topic-page__intro h2 { margin: 15px 0 18px; color: var(--topic-ink); font: 500 clamp(42px, 5.2vw, 64px)/.98 "Oswald", sans-serif; letter-spacing: -.5px; text-transform: uppercase; }
.topic-page__intro > div > p:last-child { max-width: 660px; margin: 0; color: var(--topic-muted); font: 400 16px/1.8 "Montserrat", sans-serif; }
.topic-page__deadline { padding: 0 0 5px 24px; border-left: 3px solid var(--topic-accent); }
.topic-page__deadline p { margin: 0; color: #607281; font: 700 9px/1.35 "Montserrat", sans-serif; letter-spacing: 1px; text-transform: uppercase; }
.topic-page__deadline time { display: block; margin: 9px 0 19px; color: var(--topic-ink); font: 600 24px/1.1 "Oswald", sans-serif; letter-spacing: .1px; text-transform: uppercase; }
.topic-page__deadline a { display: inline-flex; gap: 14px; align-items: center; color: var(--topic-blue); border-bottom: 1px solid currentColor; font: 700 10px/1.4 "Montserrat", sans-serif; letter-spacing: .55px; text-decoration: none; text-transform: uppercase; }
.topic-page__deadline a:hover { color: var(--topic-accent); }
.topic-directory { padding: 62px 0 18px; }
.topic-directory__header { display: flex; justify-content: space-between; gap: 30px; align-items: baseline; padding-bottom: 26px; border-bottom: 1px solid var(--topic-line); }
.topic-directory__header h2 { margin: 0; color: var(--topic-ink); font: 500 34px/1 "Oswald", sans-serif; letter-spacing: .1px; text-transform: uppercase; }
.topic-directory__groups { border-top: 0; }
.topic-group { padding: 38px 0 42px; border-bottom: 1px solid var(--topic-line); }
.topic-group h3 { margin: 0 0 23px; color: var(--topic-ink); font: 500 30px/1.05 "Oswald", sans-serif; letter-spacing: .1px; text-transform: uppercase; }
.topic-group dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; }
.topic-group dl div { padding-top: 13px; border-top: 3px solid #dfe7ec; }
.topic-group dt { color: #214d74; font: 600 15px/1.35 "Montserrat", sans-serif; }
.topic-group dd { margin: 8px 0 0; color: var(--topic-muted); font: 400 12px/1.65 "Montserrat", sans-serif; }
@media (max-width: 820px) { .topic-page { padding-top: 56px; } .topic-page__intro { grid-template-columns: 1fr; gap: 34px; } .topic-page__deadline { max-width: 310px; } .topic-group dl { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .topic-page { padding-top: 44px; } .topic-page__intro { padding-bottom: 46px; } .topic-page__intro h2 { font-size: 46px; } .topic-directory { padding-top: 48px; } .topic-directory__header { align-items: start; flex-direction: column; gap: 11px; } .topic-group { padding: 30px 0 34px; } .topic-group h3 { margin-bottom: 20px; font-size: 25px; } .topic-group dl { grid-template-columns: 1fr; gap: 17px; } }
