*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; color:#111418; background:#fff; line-height:1.6; font-size:17px;
  font-family:"Charter","Iowan Old Style","Source Serif Pro",Georgia,"Times New Roman",serif;
}
a{ color:#14385c; }
a.term-link{ font-weight:700; text-decoration-thickness:1px; text-underline-offset:2px; }
p,li{ text-align:justify; }

.topnav{ border-bottom:1px solid #d1d4d8; background:#fff; position:sticky; top:0; z-index:5; }
.topnav .inner{ max-width:900px; margin:0 auto; padding:12px 28px; display:flex; align-items:baseline; gap:18px; }
.topnav .brand{ font-weight:700; color:#111418; text-decoration:none; font-size:1rem; }
.topnav .brand span{ color:#5a626c; font-weight:400; }
.topnav nav{ margin-left:auto; display:flex; gap:18px; font-size:.92rem; }
.topnav nav a{ text-decoration:none; color:#2c3138; }
.topnav nav a:hover{ color:#14385c; }

.wrap{ max-width:900px; margin:0 auto; padding:34px 28px 80px; }
.hero{ border-bottom:2px solid #111418; padding-bottom:18px; margin-bottom:8px; }
.hitlogo{ display:block; height:60px; width:auto; margin:0 0 16px; }
.eyebrow{ font-variant:small-caps; letter-spacing:.1em; color:#14385c; font-weight:700; font-size:.8rem; margin:0 0 6px; text-align:left; }
.hero h1{ font-size:2rem; margin:0 0 8px; line-height:1.2; font-weight:700; }
.hero .heb{ direction:rtl; text-align:left; color:#2c3138; font-size:1.05rem; margin:0 0 12px; }
.hero .sub{ color:#2c3138; font-style:italic; font-size:1.1rem; margin:0 0 12px; text-align:left; }
.meta{ display:flex; flex-wrap:wrap; gap:8px 18px; font-size:.9rem; color:#2c3138; text-align:left; }
.meta span{ display:inline-block; }
.meta b{ color:#111418; }

h2{ font-size:1.22rem; color:#14385c; font-weight:700; margin:32px 0 12px; padding-bottom:6px; border-bottom:1px solid #d1d4d8; }
p{ margin:0 0 12px; }
ul.clean{ margin:6px 0 14px; padding-left:1.2em; }
ul.clean li{ margin:0 0 7px; }

.layers{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:8px; margin-top:10px; }
.layer{ border:1px solid #d1d4d8; border-left:4px solid #14385c; border-radius:0 8px 8px 0; padding:10px 14px; background:#fff; }
.layer .nm{ font-weight:700; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.86rem; color:#14385c; display:block; margin-bottom:2px; }
.layer .ds{ color:#2c3138; font-size:.9rem; }
.layer.l1{ border-left-color:#1f6f54; } .layer.l1 .nm{ color:#1f6f54; }
.layer.l2{ border-left-color:#0b6b8a; } .layer.l2 .nm{ color:#0b6b8a; }
.layer.l3{ border-left-color:#7a3e9d; } .layer.l3 .nm{ color:#7a3e9d; }
.layer.l4{ border-left-color:#b5530b; } .layer.l4 .nm{ color:#b5530b; }
.layer.l5{ border-left-color:#9d2b4e; } .layer.l5 .nm{ color:#9d2b4e; }
.layer.l6{ border-left-color:#3a4b9d; } .layer.l6 .nm{ color:#3a4b9d; }

.ocards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:8px; margin-top:10px; }
.ocard{ display:flex; align-items:center; gap:9px; border:1px solid #d1d4d8; border-radius:8px; padding:8px 12px; background:#fff; font-size:.9rem; text-align:left; }
.ocard:hover{ border-color:#14385c; }
.ocard .n{ flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:#14385c; color:#fff; font-weight:700; font-size:.74rem; display:flex; align-items:center; justify-content:center; font-family:ui-monospace,Menlo,Consolas,monospace; }
.ocard .ot{ color:#2c3138; text-align:left; }

.prereqs,.weeks,.gtab{ border-collapse:collapse; width:100%; font-size:.95rem; margin-top:8px; }
.prereqs th,.weeks th,.gtab th{ text-align:left; font-variant:small-caps; letter-spacing:.05em; color:#5a626c; font-weight:700; font-size:.8rem; border-bottom:1.5px solid #111418; padding:7px 10px; }
.prereqs td,.weeks td,.gtab td{ padding:9px 10px; border-top:1px solid #e6e8eb; vertical-align:top; }
.prereqs td.subj{ white-space:nowrap; font-weight:700; }
.prereqs td.top{ color:#2c3138; font-size:.9rem; }
.prereqs td.lk a{ white-space:nowrap; text-decoration:none; font-weight:700; }
.prereqs td.lk a+a{ margin-left:14px; }

.weeks tr.part td{ background:#f7f8fa; color:#14385c; font-variant:small-caps; letter-spacing:.06em; font-weight:700; font-size:.85rem; }
.weeks td.weekcell{ padding:13px 14px 15px; }
.weeks .weeknum{ display:inline-block; font-family:ui-monospace,Menlo,Consolas,monospace; font-weight:700; color:#fff; background:#14385c; border-radius:4px; padding:2px 9px; font-size:.78rem; margin-bottom:4px; }
.weeks .weektopic b{ display:block; }
.weeks .lp{ display:block; margin-top:6px; line-height:1.35; color:#2c3138; }
.weeks .lp i{ display:block; font-style:normal; font-variant:small-caps; letter-spacing:.05em; font-weight:700; font-size:.8rem; color:#14385c; margin:0 0 1px; }
.weeks .lp.pr i{ color:#2f6f4f; }
.weeks .lp.tl{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.78rem; }
.weeks .lp.tl i{ color:#5a626c; }
.weeks .weekrule{ border-top:1px solid #d1d4d8; margin:10px 0; }
.weeks .weekdetail{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:8px 14px; margin:10px 0; }
.weeks .weekdetail .dblock{ border-left:3px solid #d1d4d8; padding:4px 0 4px 10px; color:#2c3138; font-size:.88rem; line-height:1.38; }
.weeks .weekdetail .dblock b{ display:block; color:#14385c; font-variant:small-caps; letter-spacing:.05em; font-size:.73rem; margin-bottom:2px; }
.weeks .weeklinks{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:8px 14px; align-items:flex-start; }
.weeks .weeklinks .linkgroup{ display:block; padding:7px 9px; border:1px solid #e6e8eb; border-radius:6px; background:#fff; }
.weeks .weeklinks .linkgroup b{ display:block; color:#14385c; font-variant:small-caps; letter-spacing:.05em; font-size:.72rem; margin:0 0 3px; }
.weeks .weeklinks a{ display:block; text-decoration:none; font-weight:700; line-height:1.25; margin:0 0 4px; }
.weeks .weeklinks a:last-child{ margin-bottom:0; }
.weeks .weekstudy{ color:#2c3138; font-size:.86rem; line-height:1.4; }
.weeks .weekstudy .study-block{ display:block; margin:0 0 7px; }
.weeks .weekstudy .study-block i{ display:block; font-style:normal; font-variant:small-caps; letter-spacing:.05em; font-weight:700; font-size:.76rem; color:#14385c; margin:0 0 1px; }
.weeks .weekstudy a{ text-decoration:none; font-weight:700; }
.weeks .weekstudy a:hover{ text-decoration:underline; }

.gtab td.pct{ font-family:ui-monospace,Menlo,Consolas,monospace; font-weight:700; text-align:right; color:#14385c; white-space:nowrap; }
.gtab tr.sum td{ border-top:1.5px solid #111418; font-weight:700; }

.refgrid{ display:grid; gap:12px; margin-top:8px; }
.refcard{ border:1px solid #d1d4d8; border-radius:8px; padding:0; overflow:hidden; display:flex; }
.refcard .kind{ flex:0 0 84px; background:#f7f8fa; border-right:1px solid #d1d4d8; display:flex; align-items:center; justify-content:center; text-align:center; font-variant:small-caps; letter-spacing:.06em; font-weight:700; font-size:.72rem; color:#14385c; padding:6px; }
.refcard .body{ padding:11px 16px; }
.refcard .body a{ font-weight:700; text-decoration:none; }
.refcard .body a:hover{ text-decoration:underline; }
.refcard .by{ color:#5a626c; font-size:.84rem; }
.refcard .note{ color:#2c3138; font-size:.92rem; margin:5px 0 0; }

footer{ margin-top:46px; padding-top:16px; border-top:1px solid #d1d4d8; color:#5a626c; font-size:.84rem; text-align:center; }

@media (max-width:680px){
  body{ font-size:16px; }
  .wrap{ padding:24px 18px 64px; }
  .topnav .inner{ padding:10px 18px; align-items:flex-start; flex-direction:column; gap:6px; }
  .topnav nav{ margin-left:0; gap:12px; flex-wrap:wrap; }
  .hero h1{ font-size:1.65rem; }
  .weeks{ font-size:.88rem; }
  .weeks td.weekcell{ padding:12px 10px 14px; }
  .weeks .weeklinks{ display:block; }
  .weeks .weeklinks a{ display:block; margin:0 0 6px; }
  .refcard{ flex-direction:column; }
  .refcard .kind{ flex-basis:auto; border-right:0; border-bottom:1px solid #d1d4d8; }
}
