@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/housing/fonts/plex-sans-400.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/housing/fonts/plex-sans-500.woff2') format('woff2');
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/housing/fonts/ibm-plex-mono/ibm-plex-mono-400.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}

.mccombs-guide {
  scroll-padding-top: 24px;
  background: var(--pd-ink);
  color: var(--pd-bone);
}
.mccombs-guide *,
.mccombs-guide *::before,
.mccombs-guide *::after {
  box-sizing: border-box;
}
.mccombs-guide body {
  margin: 0;
  font: 400 17px/1.7 var(--pd-font-body);
  -webkit-font-smoothing: antialiased;
}
.mccombs-guide a {
  color: inherit;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}
.mccombs-guide a:hover {
  color: var(--pd-accent-text);
}
.mccombs-guide a:focus-visible,
.mccombs-guide [tabindex]:focus-visible {
  outline: 2px solid var(--pd-focus);
  outline-offset: 5px;
}
.mccombs-guide strong,
.mccombs-guide h1,
.mccombs-guide h2,
.mccombs-guide h3 {
  font-weight: 500;
}
.mccombs-guide p {
  margin: 0 0 20px;
}
.mccombs-guide svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  flex: 0 0 auto;
}
.mccombs-guide .mccombs-masthead,
.mccombs-guide main,
.mccombs-guide .mccombs-footer {
  width: min(100% - var(--pd-gutter) * 2, 1328px);
  margin-inline: auto;
}
.mccombs-guide .mccombs-skip {
  position: fixed;
  z-index: 10;
  top: 12px;
  left: var(--pd-gutter);
  padding: 10px 16px;
  background: var(--pd-bone);
  color: var(--pd-paper);
  transform: translateY(-160%);
}
.mccombs-guide .mccombs-skip:focus {
  transform: translateY(0);
}
.mccombs-guide .mccombs-masthead {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px 40px;
  padding-block: 16px;
  border-bottom: 1px solid var(--pd-rule);
}
.mccombs-guide .mccombs-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  min-height: 44px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -.04em;
  text-decoration: none;
  flex-shrink: 0;
}
.mccombs-guide .brand-mark {
  width: 25px;
  height: 25px;
  stroke-width: 1.2;
}
.mccombs-guide .mccombs-brand-dot {
  color: var(--pd-signal);
}
.mccombs-guide .mccombs-brand-section {
  margin-left: 8px;
  color: var(--pd-ash);
  font-weight: 400;
}
.mccombs-guide .mccombs-masthead nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 26px;
  font-size: 12px;
}
.mccombs-guide .mccombs-masthead nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
.mccombs-guide .mccombs-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  align-items: center;
  gap: 48px;
  padding: 53px 0 49px;
}
.mccombs-guide .mccombs-path {
  margin-bottom: 20px;
  color: var(--pd-accent-text);
  font-size: 11px;
  letter-spacing: .035em;
}
.mccombs-guide h1 {
  margin: 0 0 23px;
  font-size: clamp(42px, 5.5vw, 76px);
  line-height: 1.03;
  letter-spacing: -.055em;
}
.mccombs-guide .mccombs-dek {
  max-width: 45ch;
  margin-bottom: 22px;
  font-size: 20px;
  line-height: 1.5;
}
.mccombs-guide .mccombs-checked {
  margin: 0;
  color: var(--pd-ash);
  font-size: 12px;
}
.mccombs-guide .mccombs-checked time {
  white-space: nowrap;
}
.mccombs-guide .mccombs-next-date {
  border-block: 1px solid var(--pd-rule-strong);
  padding: 21px 0 19px;
}
.mccombs-guide .mccombs-next-date h2 {
  margin: 0 0 16px;
  color: var(--pd-ash);
  font-size: 12px;
  line-height: 1.5;
}
.mccombs-guide .mccombs-next-date p {
  margin: 0 0 20px;
}
.mccombs-guide .mccombs-next-date time {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.mccombs-guide .mccombs-next-date strong {
  font-size: 38px;
  line-height: 1.2;
  letter-spacing: -.045em;
}
.mccombs-guide .mccombs-next-date time span {
  font-size: 13px;
}
.mccombs-guide .mccombs-application-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding-block: 10px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  border-top: 1px solid var(--pd-rule);
}
.mccombs-guide .mccombs-deadline-source {
  display: inline-block;
  padding-block: 5px;
  font-size: 11px;
  color: var(--pd-ash);
}
.mccombs-guide .mccombs-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: start;
  gap: 64px;
  padding-bottom: 76px;
}
.mccombs-guide .mccombs-contents {
  position: sticky;
  top: 24px;
  min-width: 0;
}
.mccombs-guide .mccombs-contents h2 {
  margin: 0 0 16px;
  font: 400 10px/1.5 var(--pd-font-instrument);
  color: var(--pd-ash);
  text-transform: uppercase;
  letter-spacing: .035em;
}
.mccombs-guide .mccombs-contents ol {
  padding: 0;
  margin: 0;
  list-style: none;
}
.mccombs-guide .mccombs-contents a {
  display: flex;
  align-items: baseline;
  gap: 12px;
  min-height: 46px;
  padding-block: 12px;
  border-bottom: 1px solid var(--pd-rule);
  font-size: 13px;
  line-height: 1.5;
  text-decoration: none;
}
.mccombs-guide .mccombs-contents a span {
  color: var(--pd-ash);
  font: 400 10px/1.5 var(--pd-font-instrument);
}
.mccombs-guide .mccombs-reading {
  min-width: 0;
  max-width: 770px;
}
.mccombs-guide .mccombs-opening {
  margin: 0 0 34px;
  max-width: 65ch;
  font-size: 18px;
  line-height: 1.7;
}
.mccombs-guide .mccombs-reading > section {
  padding-top: 32px;
  margin-top: 34px;
  border-top: 1px solid var(--pd-rule);
  scroll-margin-top: 24px;
}
.mccombs-guide .mccombs-reading h2 {
  margin: 0 0 22px;
  font-size: 34px;
  line-height: 1.2;
  letter-spacing: -.04em;
}
.mccombs-guide .mccombs-reading h3 {
  font-size: 19px;
  line-height: 1.4;
  letter-spacing: -.02em;
}
.mccombs-guide .mccombs-terms {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  margin-block: 26px 20px;
}
.mccombs-guide .mccombs-terms section {
  min-width: 0;
  padding-top: 16px;
  border-top: 1px solid var(--pd-rule-strong);
}
.mccombs-guide .mccombs-terms h3 {
  margin: 0 0 18px;
}
.mccombs-guide .mccombs-terms dl {
  margin: 0;
}
.mccombs-guide .mccombs-terms dl > div {
  display: grid;
  grid-template-columns: 75px minmax(0, 1fr);
  gap: 12px;
  padding-bottom: 13px;
  font-size: 14px;
  line-height: 1.6;
}
.mccombs-guide .mccombs-terms dt {
  color: var(--pd-ash);
}
.mccombs-guide .mccombs-terms dd {
  margin: 0;
}
.mccombs-guide .mccombs-note {
  color: var(--pd-ash);
  font-size: 13px;
  line-height: 1.75;
}
.mccombs-guide .mccombs-source {
  margin: 24px 0 0;
  color: var(--pd-ash);
  font-size: 12px;
  line-height: 1.9;
}
.mccombs-guide .mccombs-course-list {
  margin: 26px 0 23px;
  border-top: 1px solid var(--pd-rule-strong);
}
.mccombs-guide .mccombs-course-list > div {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 24px;
  padding-block: 17px;
  border-bottom: 1px solid var(--pd-rule);
}
.mccombs-guide .mccombs-course-list dt {
  font-size: 15px;
  font-weight: 500;
}
.mccombs-guide .mccombs-course-list dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
}
.mccombs-guide .mccombs-university-rules {
  margin-top: 29px;
  padding: 23px 26px;
  background: var(--pd-carbon);
  border-left: 2px solid var(--pd-rule-strong);
}
.mccombs-guide .mccombs-university-rules h3 {
  margin: 0 0 12px;
}
.mccombs-guide .mccombs-university-rules p {
  margin-bottom: 12px;
  font-size: 15px;
  line-height: 1.7;
}
.mccombs-guide .mccombs-university-rules > a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  font-size: 13px;
}
.mccombs-guide .mccombs-difference {
  margin-top: 25px;
  padding-left: 23px;
  border-left: 2px solid var(--pd-signal);
}
.mccombs-guide .mccombs-difference h3 {
  margin: 0 0 10px;
}
.mccombs-guide .mccombs-difference p {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
}
.mccombs-guide .mccombs-steps {
  padding-left: 24px;
  margin: 0 0 27px;
}
.mccombs-guide .mccombs-steps li {
  padding-left: 8px;
  margin-bottom: 20px;
}
.mccombs-guide .mccombs-steps li::marker {
  color: var(--pd-accent-text);
  font-size: 14px;
}
.mccombs-guide .mccombs-related {
  padding-top: 31px;
  margin-top: 38px;
  border-top: 1px solid var(--pd-rule-strong);
}
.mccombs-guide .mccombs-related h2 {
  font-size: 25px;
  margin-bottom: 15px;
}
.mccombs-guide .mccombs-related p {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 28px;
  margin: 0;
}
.mccombs-guide .mccombs-related a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  font-size: 14px;
}
.mccombs-guide .mccombs-footer {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 30px;
  padding-block: 25px 32px;
  border-top: 1px solid var(--pd-rule);
  font-size: 12px;
}
.mccombs-guide .mccombs-footer > a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
}
.mccombs-guide .mccombs-footer p {
  margin: 0;
  color: var(--pd-ash);
}

@media (max-width: 1000px) {
  .mccombs-guide .mccombs-layout {
    grid-template-columns: 185px minmax(0, 1fr);
    gap: 34px;
  }
  .mccombs-guide .mccombs-hero {
    grid-template-columns: minmax(0, 1fr) 250px;
    gap: 30px;
  }
  .mccombs-guide .mccombs-terms {
    gap: 20px;
  }
  .mccombs-guide .mccombs-terms dl > div {
    display: block;
  }
  .mccombs-guide .mccombs-terms dt {
    margin-bottom: 2px;
    font-size: 12px;
  }
  .mccombs-guide .mccombs-course-list > div {
    grid-template-columns: 115px minmax(0, 1fr);
    gap: 20px;
  }
}
@media (max-width: 760px) {
  .mccombs-guide .mccombs-masthead {
    flex-wrap: wrap;
    gap: 0 24px;
    padding-block: 12px 10px;
  }
  .mccombs-guide .mccombs-masthead nav {
    width: 100%;
    justify-content: space-between;
    gap: 0 18px;
  }
  .mccombs-guide .mccombs-hero {
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 26px;
    padding-block: 35px;
  }
  .mccombs-guide .mccombs-dek {
    font-size: 17px;
  }
  .mccombs-guide .mccombs-next-date strong {
    font-size: 32px;
  }
  .mccombs-guide .mccombs-layout {
    display: block;
  }
  .mccombs-guide .mccombs-contents {
    position: static;
    margin-bottom: 32px;
  }
  .mccombs-guide .mccombs-contents h2 {
    margin-bottom: 8px;
  }
  .mccombs-guide .mccombs-contents ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 24px;
  }
  .mccombs-guide .mccombs-reading {
    max-width: none;
  }
  .mccombs-guide .mccombs-terms dl > div {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
  }
  .mccombs-guide .mccombs-terms dt {
    margin: 0;
    font-size: 14px;
  }
}
@media (max-width: 550px) {
  .mccombs-guide body {
    font-size: 16px;
    line-height: 1.75;
  }
  .mccombs-guide .mccombs-brand {
    font-size: 13px;
  }
  .mccombs-guide .brand-mark {
    width: 23px;
    height: 23px;
  }
  .mccombs-guide .mccombs-masthead nav {
    font-size: 11px;
  }
  .mccombs-guide .mccombs-hero {
    display: block;
    padding: 30px 0 32px;
  }
  .mccombs-guide .mccombs-path {
    margin-bottom: 19px;
  }
  .mccombs-guide h1 {
    font-size: clamp(35px, 10vw, 48px);
    line-height: 1.07;
    margin-bottom: 21px;
  }
  .mccombs-guide .mccombs-dek {
    max-width: 31ch;
    font-size: 17px;
    line-height: 1.6;
    margin-bottom: 17px;
  }
  .mccombs-guide .mccombs-next-date {
    margin-top: 29px;
    padding: 18px 0 13px;
  }
  .mccombs-guide .mccombs-next-date h2 {
    margin-bottom: 11px;
  }
  .mccombs-guide .mccombs-next-date p {
    margin-bottom: 14px;
  }
  .mccombs-guide .mccombs-next-date time {
    gap: 4px;
  }
  .mccombs-guide .mccombs-next-date strong {
    font-size: 33px;
  }
  .mccombs-guide .mccombs-deadline-source {
    font-size: 12px;
  }
  .mccombs-guide .mccombs-contents {
    margin-bottom: 29px;
  }
  .mccombs-guide .mccombs-contents ol {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .mccombs-guide .mccombs-contents a {
    min-height: 44px;
    padding-block: 11px;
    font-size: 13px;
  }
  .mccombs-guide .mccombs-opening {
    font-size: 17px;
    line-height: 1.75;
    margin-bottom: 28px;
  }
  .mccombs-guide .mccombs-reading > section {
    padding-top: 28px;
    margin-top: 28px;
  }
  .mccombs-guide .mccombs-reading h2 {
    font-size: 28px;
    line-height: 1.2;
    margin-bottom: 20px;
  }
  .mccombs-guide .mccombs-terms {
    grid-template-columns: 1fr;
    gap: 21px;
    margin-top: 23px;
  }
  .mccombs-guide .mccombs-terms h3 {
    margin-bottom: 15px;
  }
  .mccombs-guide .mccombs-terms dl > div {
    grid-template-columns: 78px minmax(0, 1fr);
  }
  .mccombs-guide .mccombs-course-list > div {
    grid-template-columns: 1fr;
    gap: 6px;
    padding-block: 16px;
  }
  .mccombs-guide .mccombs-university-rules {
    padding: 20px;
  }
  .mccombs-guide .mccombs-university-rules h3,
  .mccombs-guide .mccombs-difference h3 {
    font-size: 18px;
  }
  .mccombs-guide .mccombs-difference {
    padding-left: 18px;
  }
  .mccombs-guide .mccombs-difference p {
    font-size: 15px;
  }
  .mccombs-guide .mccombs-steps {
    padding-left: 21px;
  }
  .mccombs-guide .mccombs-steps li {
    padding-left: 5px;
  }
  .mccombs-guide .mccombs-related h2 {
    font-size: 24px;
  }
  .mccombs-guide .mccombs-related p {
    display: block;
  }
  .mccombs-guide .mccombs-related a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-block: 10px;
  }
  .mccombs-guide .mccombs-layout {
    padding-bottom: 43px;
  }
  .mccombs-guide .mccombs-footer {
    display: block;
    padding-block: 18px 24px;
  }
  .mccombs-guide .mccombs-footer p {
    margin-block: 8px;
    max-width: 42ch;
    line-height: 1.8;
  }
}
@media print {
  .mccombs-guide {
    background: var(--pd-paper);
  }
  .mccombs-guide body {
    font-size: 10pt;
    line-height: 1.5;
  }
  .mccombs-guide .mccombs-masthead,
  .mccombs-guide .mccombs-contents,
  .mccombs-guide .mccombs-skip,
  .mccombs-guide .mccombs-related,
  .mccombs-guide .mccombs-footer > a {
    display: none;
  }
  .mccombs-guide main,
  .mccombs-guide .mccombs-footer {
    width: 100%;
    margin: 0;
  }
  .mccombs-guide .mccombs-hero {
    display: block;
    padding: 0 0 15pt;
  }
  .mccombs-guide h1 {
    font-size: 30pt;
    line-height: 1.05;
  }
  .mccombs-guide .mccombs-dek {
    font-size: 12pt;
    max-width: none;
  }
  .mccombs-guide .mccombs-checked {
    font-size: 9pt;
  }
  .mccombs-guide .mccombs-next-date {
    margin-top: 15pt;
    padding-block: 10pt;
    break-inside: avoid;
  }
  .mccombs-guide .mccombs-next-date strong {
    font-size: 22pt;
  }
  .mccombs-guide .mccombs-layout {
    display: block;
    padding-bottom: 20pt;
  }
  .mccombs-guide .mccombs-reading {
    max-width: none;
  }
  .mccombs-guide .mccombs-opening {
    font-size: 11pt;
  }
  .mccombs-guide .mccombs-reading > section {
    padding-top: 16pt;
    margin-top: 16pt;
  }
  .mccombs-guide .mccombs-reading h2 {
    font-size: 19pt;
    break-after: avoid;
    margin-bottom: 12pt;
  }
  .mccombs-guide .mccombs-reading h3 {
    font-size: 12pt;
    break-after: avoid;
  }
  .mccombs-guide .mccombs-terms {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    break-inside: avoid;
  }
  .mccombs-guide .mccombs-terms dl > div {
    display: grid;
    grid-template-columns: 60pt minmax(0, 1fr);
    font-size: 10pt;
  }
  .mccombs-guide .mccombs-terms dt {
    font-size: 10pt;
  }
  .mccombs-guide .mccombs-course-list > div {
    grid-template-columns: 95pt minmax(0, 1fr);
    break-inside: avoid;
  }
  .mccombs-guide .mccombs-course-list :is(dt, dd),
  .mccombs-guide .mccombs-university-rules p,
  .mccombs-guide .mccombs-difference p {
    font-size: 10pt;
  }
  .mccombs-guide .mccombs-university-rules {
    background: transparent;
    padding: 12pt 15pt;
    break-inside: avoid;
  }
  .mccombs-guide .mccombs-difference {
    break-inside: avoid;
  }
  .mccombs-guide .mccombs-note {
    font-size: 9pt;
  }
  .mccombs-guide .mccombs-source {
    font-size: 8pt;
  }
  .mccombs-guide .mccombs-source a::after {
    content: ' (' attr(href) ')';
    overflow-wrap: anywhere;
    font-size: 7pt;
  }
  .mccombs-guide .mccombs-footer {
    font-size: 8pt;
  }
}
