.home-curriculum-gateway {
  position: relative;
  z-index: 2;
  width: min(100%, 1060px);
  margin: 42px auto 0;
}

.home-curriculum-intro {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  align-items: end;
  margin-bottom: 18px;
}

.home-curriculum-intro .section-label {
  margin-bottom: 7px;
}

.home-curriculum-intro h2,
.curriculum-assessment h2,
.curriculum-live h2,
.curriculum-map-header h2,
.curriculum-source-note h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.035em;
}

.home-curriculum-intro h2 {
  font-size: clamp(28px, 3.2vw, 46px);
}

.home-curriculum-intro > p {
  max-width: 410px;
  margin: 0 0 3px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-style: italic;
  line-height: 1.45;
  text-align: right;
}

.curriculum-shortcuts {
  display: grid;
  overflow: hidden;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--ink);
  border-radius: 22px;
  background: rgba(243, 239, 223, 0.72);
  box-shadow: 0 18px 46px rgba(16, 46, 41, 0.08);
}

.curriculum-shortcut {
  display: flex;
  min-width: 0;
  min-height: 86px;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 18px 20px;
  border-right: 1px solid var(--line);
  transition: color 180ms ease, background 180ms ease, padding 180ms ease;
}

.curriculum-shortcut:last-child {
  border-right: 0;
}

.curriculum-shortcut:hover,
.curriculum-shortcut:focus-visible {
  color: var(--paper);
  background: var(--ink);
  padding-left: 25px;
}

.curriculum-shortcut:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: -3px;
}

.curriculum-shortcut > span {
  display: grid;
  min-width: 0;
  gap: 7px;
}

.curriculum-shortcut strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 2.4vw, 34px);
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}

.curriculum-shortcut small {
  overflow: hidden;
  font: 700 9px/1.2 "Courier New", monospace;
  letter-spacing: 0.11em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.curriculum-shortcut b {
  display: grid;
  width: 29px;
  height: 29px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 17px;
  font-weight: 400;
}

.home-hero {
  flex: 0 1 auto;
  padding-top: 54px;
}

.curriculum-page {
  position: relative;
  z-index: 2;
  width: min(100%, 1180px);
  flex: 1;
  margin: 0 auto;
  padding: 54px 0 100px;
}

.curriculum-topline {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
}

.curriculum-topline .back-link {
  margin: 0;
}

.curriculum-switcher {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.curriculum-switcher a {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: color 180ms ease, border-color 180ms ease, background 180ms ease;
}

.curriculum-switcher a:hover,
.curriculum-switcher a:focus-visible,
.curriculum-switcher a.is-current {
  color: var(--paper);
  border-color: var(--ink);
  background: var(--ink);
}

.curriculum-switcher a:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}

/* A course name is a long headline — "Cambridge International A-Level
   Physics" — so this hero runs at the smaller display size the deck index
   already used, and aligns to the top rather than the bottom: at that size the
   facts card is the taller of the two columns. */
.curriculum-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
  padding: 36px 0 44px;
  border-bottom: 1px solid var(--ink);
}

.curriculum-hero .eyebrow {
  margin-bottom: 12px;
  font-size: 9px;
  letter-spacing: 0.2em;
}

.curriculum-hero h1 {
  max-width: 560px;
  font-size: clamp(30px, 3.6vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  /* Course names are the one headline here that can run to two lines, and an
     even break reads better than a one-word last line. Browsers without it
     just wrap as usual. */
  text-wrap: balance;
}

.curriculum-hero .intro {
  max-width: 56ch;
  margin-top: 14px;
  font-size: clamp(14px, 1.05vw, 15px);
  line-height: 1.6;
}

.curriculum-facts {
  display: grid;
  overflow: hidden;
  margin: 0;
  border-radius: 18px;
  color: var(--paper);
  background: var(--ink);
}

.curriculum-facts > div {
  display: grid;
  gap: 4px;
  padding: 13px 17px;
  border-bottom: 1px solid rgba(243, 239, 223, 0.18);
}

.curriculum-facts > div:last-child {
  border-bottom: 0;
}

.curriculum-facts dt {
  color: var(--gold);
  font: 700 8px/1 "Courier New", monospace;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.curriculum-facts dd {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12px;
  line-height: 1.55;
}

.curriculum-assessment {
  padding: 78px 0;
  border-bottom: 1px solid var(--line);
}

.curriculum-assessment > header {
  display: grid;
  max-width: 760px;
  gap: 12px;
  margin-bottom: 34px;
}

.curriculum-assessment h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(36px, 5vw, 66px);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 0.98;
}

.curriculum-assessment > header > p:last-child,
.curriculum-assessment-note {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  line-height: 1.55;
}

.curriculum-assessment-routes {
  display: grid;
  overflow: hidden;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--ink);
  border-radius: 24px;
}

.curriculum-assessment-route {
  display: grid;
  min-width: 0;
  gap: 14px;
  align-content: start;
  padding: 26px;
  border-right: 1px solid var(--line);
  background: rgba(243, 239, 223, 0.6);
}

.curriculum-assessment-route:last-child {
  border-right: 0;
}

.curriculum-assessment-route > span,
.curriculum-assessment-route > p,
.curriculum-objectives span {
  font: 700 9px/1.35 "Courier New", monospace;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.curriculum-assessment-route h3,
.curriculum-objectives h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(23px, 2.4vw, 34px);
  font-style: italic;
  font-weight: 400;
  line-height: 1.05;
}

.curriculum-assessment-route ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.curriculum-assessment-route li {
  padding-top: 10px;
  border-top: 1px solid var(--line);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.45;
}

.curriculum-assessment-route > p {
  margin: auto 0 0;
  padding-top: 12px;
  color: var(--red);
}

.curriculum-objectives {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.curriculum-objectives article {
  display: grid;
  gap: 9px;
  padding: 22px;
  border-radius: 18px;
  color: var(--paper);
  background: var(--ink);
}

.curriculum-objectives article > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
}

.curriculum-objectives span {
  color: var(--gold);
}

.curriculum-objectives strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-style: italic;
  font-weight: 400;
}

.curriculum-objectives h3 {
  font-size: 20px;
}

.curriculum-objectives p {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  line-height: 1.45;
}

.curriculum-assessment-note {
  max-width: 760px;
  margin-top: 22px;
}

.curriculum-live {
  padding: 78px 0;
  border-bottom: 1px solid var(--line);
}

.curriculum-live > header {
  display: grid;
  max-width: 690px;
  gap: 12px;
  margin-bottom: 34px;
}

.curriculum-live h2,
.curriculum-map-header h2,
.curriculum-source-note h2 {
  font-size: clamp(36px, 5vw, 66px);
  line-height: 0.98;
}

.curriculum-live header > p:last-child,
.curriculum-map-header > p,
.curriculum-source-note p {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  line-height: 1.55;
}

.curriculum-study-grid {
  display: grid;
  overflow: hidden;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--ink);
  border-radius: 24px;
  background: var(--ink);
}

.curriculum-study-card {
  position: relative;
  display: grid;
  min-height: 232px;
  align-content: start;
  gap: 12px;
  padding: 24px;
  background: rgba(243, 239, 223, 0.6);
  transition: color 180ms ease, background 180ms ease;
}

.curriculum-study-card:hover,
.curriculum-study-card:focus-visible {
  color: var(--ink);
  background: var(--red);
}

.curriculum-study-card:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: -4px;
}

.curriculum-study-card > span {
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.curriculum-study-card strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(24px, 2.5vw, 36px);
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}

.curriculum-study-card small {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.45;
}

.curriculum-study-card b {
  position: absolute;
  right: 20px;
  bottom: 20px;
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 18px;
  font-weight: 400;
}

.curriculum-map {
  padding: 78px 0 0;
}

.curriculum-map-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.7fr);
  gap: 60px;
  align-items: end;
  margin-bottom: 36px;
}

.curriculum-map-header > p {
  max-width: 460px;
  justify-self: end;
}

.curriculum-groups {
  border-top: 1px solid var(--ink);
}

.curriculum-group {
  border-bottom: 1px solid var(--ink);
}

.curriculum-group summary {
  display: grid;
  cursor: pointer;
  grid-template-columns: 74px minmax(0, 1fr) auto 34px;
  gap: 22px;
  align-items: center;
  padding: 28px 4px;
  list-style: none;
  transition: color 180ms ease, padding 180ms ease;
}

.curriculum-group summary::-webkit-details-marker {
  display: none;
}

.curriculum-group summary:hover,
.curriculum-group summary:focus-visible {
  color: var(--red);
  padding-left: 12px;
}

.curriculum-group summary:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}

.curriculum-group-code,
.topic-code {
  font: 700 11px/1 "Courier New", monospace;
  letter-spacing: 0.12em;
}

.curriculum-group summary strong {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(27px, 3.6vw, 48px);
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}

.curriculum-group summary small {
  display: block;
  max-width: 670px;
  margin-top: 8px;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.45;
}

.curriculum-group-count {
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  white-space: nowrap;
}

.curriculum-group-toggle {
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 20px;
  line-height: 1;
  transition: transform 180ms ease;
}

.curriculum-group[open] .curriculum-group-toggle {
  transform: rotate(45deg);
}

.curriculum-topic-list {
  display: grid;
  margin: 0 0 28px 74px;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.curriculum-topic-list li {
  border-bottom: 1px solid var(--line);
}

.curriculum-topic {
  display: grid;
  min-height: 74px;
  grid-template-columns: 64px minmax(0, 1fr) auto 31px;
  gap: 18px;
  align-items: center;
  padding: 15px 4px;
}

.curriculum-topic:not(.curriculum-topic-linked) {
  grid-template-columns: 64px minmax(0, 1fr) auto;
}

.curriculum-topic-linked {
  transition: color 180ms ease, padding 180ms ease;
}

.curriculum-topic-linked:hover,
.curriculum-topic-linked:focus-visible {
  color: var(--red);
  padding-left: 10px;
}

.curriculum-topic-linked:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}

.topic-copy {
  display: grid;
  gap: 5px;
}

.topic-copy strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(18px, 2vw, 25px);
  font-weight: 400;
  line-height: 1.2;
}

.topic-copy small {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12px;
  line-height: 1.4;
}

.topic-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
  align-items: center;
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.topic-meta > span:not(.topic-status) {
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
}

.topic-status {
  padding: 6px 8px;
  border-radius: 999px;
  color: rgba(16, 46, 41, 0.62);
  background: rgba(16, 46, 41, 0.07);
}

.topic-status-live {
  color: var(--paper);
  background: var(--ink);
}

.topic-status-bridge {
  color: var(--ink);
  background: var(--gold);
}

.topic-arrow {
  display: grid;
  width: 29px;
  height: 29px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 16px;
}

.curriculum-source-note {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
  gap: 70px;
  margin-top: 78px;
  padding: 38px;
  border-radius: 28px;
  color: var(--paper);
  background: var(--ink);
}

.curriculum-source-note .section-label {
  color: var(--gold);
}

.curriculum-source-note h2 {
  margin-bottom: 18px;
}

.curriculum-source-links {
  display: grid;
  align-content: start;
}

.curriculum-source-links a {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(243, 239, 223, 0.22);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  line-height: 1.35;
  transition: color 180ms ease, padding 180ms ease;
}

.curriculum-source-links a:first-child {
  border-top: 1px solid rgba(243, 239, 223, 0.22);
}

.curriculum-source-links a:hover,
.curriculum-source-links a:focus-visible {
  color: var(--gold);
  padding-left: 8px;
}

.curriculum-source-links a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

@media (max-width: 980px) {
  .curriculum-assessment-routes,
  .curriculum-objectives {
    grid-template-columns: 1fr;
  }

  .curriculum-assessment-route {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .curriculum-assessment-route:last-child {
    border-bottom: 0;
  }

  .curriculum-study-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

@media (max-width: 820px) {
  .home-curriculum-gateway {
    margin-top: 52px;
  }

  .home-hero {
    padding-top: 56px;
  }

  .curriculum-page {
    padding-top: 44px;
  }

  .curriculum-topline,
  .curriculum-hero,
  .curriculum-map-header,
  .curriculum-source-note {
    grid-template-columns: 1fr;
  }

  .curriculum-topline {
    display: grid;
  }

  .curriculum-switcher {
    justify-content: flex-start;
  }

  .curriculum-hero {
    gap: 32px;
  }

  .curriculum-facts {
    width: min(100%, 620px);
  }

  .curriculum-map-header {
    gap: 20px;
    align-items: start;
  }

  .curriculum-map-header > p {
    justify-self: start;
  }

  .curriculum-source-note {
    gap: 36px;
  }
}

@media (max-width: 720px) {
  .home-curriculum-intro {
    display: grid;
    gap: 12px;
    align-items: start;
  }

  .home-curriculum-intro > p {
    text-align: left;
  }

  .curriculum-shortcuts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-radius: 18px;
  }

  .curriculum-shortcut:nth-child(2) {
    border-right: 0;
  }

  .curriculum-shortcut:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }

  .curriculum-group summary {
    grid-template-columns: 48px minmax(0, 1fr) 31px;
    gap: 14px;
  }

  .curriculum-group-count {
    display: none;
  }

  .curriculum-topic-list {
    margin-left: 0;
  }

  .curriculum-topic,
  .curriculum-topic:not(.curriculum-topic-linked) {
    grid-template-columns: 48px minmax(0, 1fr) 31px;
    gap: 12px;
  }

  .curriculum-topic:not(.curriculum-topic-linked) {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .topic-meta {
    grid-column: 2 / -1;
    justify-content: flex-start;
  }

  .topic-arrow {
    grid-column: 3;
    grid-row: 1;
  }
}

@media (max-width: 560px) {
  .curriculum-study-grid {
    grid-template-columns: 1fr;
  }

  .curriculum-study-card,
  .curriculum-study-card:nth-child(2) {
    min-height: 190px;
  }

  .curriculum-source-note {
    padding: 28px 24px;
  }
}

@media (max-width: 440px) {
  .curriculum-shortcuts {
    grid-template-columns: 1fr;
  }

  .curriculum-shortcut,
  .curriculum-shortcut:nth-child(2) {
    min-height: 72px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .curriculum-shortcut:last-child {
    border-bottom: 0;
  }

  .curriculum-switcher a {
    min-height: 32px;
    padding: 0 10px;
  }
}

/* Exam-board coverage block */
.curriculum-boards {
  display: grid;
  gap: 22px;
}

.curriculum-boards > header {
  max-width: 68ch;
}

.curriculum-boards > header h2 {
  margin: 10px 0 10px;
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.1;
}

.curriculum-boards > header p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
  opacity: 0.8;
}

.curriculum-boards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  border: 1px solid var(--ink);
  border-radius: 18px;
  overflow: hidden;
  background: rgba(243, 239, 223, 0.76);
}

.curriculum-boards-grid article {
  display: grid;
  gap: 8px;
  padding: 20px 22px;
  border-left: 1px solid var(--line);
}

.curriculum-boards-grid article:first-child {
  border-left: 0;
}

.curriculum-boards-grid span {
  color: var(--red);
  font: 700 10px/1 "Courier New", monospace;
  letter-spacing: 0.14em;
}

.curriculum-boards-grid h3 {
  margin: 0;
  font-size: 16px;
  line-height: 1.2;
}

.curriculum-boards-grid p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
  opacity: 0.78;
}

.curriculum-boards-free {
  margin: 0;
  padding: 12px 16px;
  border-left: 4px solid var(--gold);
  background: rgba(224, 169, 63, 0.1);
  font-size: 13px;
  line-height: 1.6;
}

/* Search-facing curriculum pathways. These are deliberately linked from the
   existing syllabus pages so the generated hierarchy is useful navigation,
   not an orphaned collection built only for crawlers. */
.curriculum-search-pathways {
  padding-top: 68px;
}

.curriculum-search-pathways > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
  gap: 46px;
  align-items: end;
  margin-bottom: 24px;
}

.curriculum-search-pathways .section-label {
  color: var(--ink);
}

.curriculum-search-pathways h2 {
  margin: 9px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 4vw, 50px);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1;
}

.curriculum-search-pathways > header > p:last-child {
  max-width: 500px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  line-height: 1.55;
}

.curriculum-search-pathways-grid {
  display: grid;
  overflow: hidden;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1px;
  border: 1px solid var(--ink);
  border-radius: 22px;
  background: var(--ink);
}

.curriculum-search-pathway-card {
  position: relative;
  display: grid;
  min-height: 190px;
  gap: 11px;
  align-content: start;
  padding: 24px 66px 24px 24px;
  background: rgba(243, 239, 223, 0.98);
  transition: color 180ms ease, background 180ms ease;
}

.curriculum-search-pathway-card:hover,
.curriculum-search-pathway-card:focus-visible {
  background: var(--gold);
}

.curriculum-search-pathway-card:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: -4px;
}

.curriculum-search-pathway-card > span {
  color: var(--ink);
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.12em;
}

.curriculum-search-pathway-card strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(24px, 2.8vw, 35px);
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}

.curriculum-search-pathway-card p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
}

.curriculum-search-pathway-card b {
  position: absolute;
  right: 22px;
  bottom: 22px;
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 17px;
  font-weight: 400;
}

@media (max-width: 720px) {
  .curriculum-boards-grid {
    grid-template-columns: 1fr;
  }

  .curriculum-boards-grid article {
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .curriculum-boards-grid article:first-child {
    border-top: 0;
  }

  .curriculum-search-pathways > header {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .curriculum-search-pathways-grid {
    grid-template-columns: 1fr;
  }

  .curriculum-search-pathway-card {
    min-height: 165px;
  }
}

/* Link from a topic map to the syllabus-ordered presentation index */
/* The pair of cards at the foot of a curriculum page: present the syllabus,
   and revise its equations. They used to sit between the exam boards and the
   topic map, which put two calls to action in front of the thing the page is
   actually for. The wrapper owns the spacing so the cards can sit together
   without the gap each one carries for standing alone. */
.curriculum-takeaways {
  display: grid;
  gap: 16px;
  margin-top: 44px;
}

.curriculum-takeaways .curriculum-decks-cta {
  margin-top: 0;
}

.curriculum-decks-cta {
  position: relative;
  display: grid;
  align-content: start;
  gap: 11px;
  margin-top: 44px;
  padding: 26px 78px 26px 26px;
  border: 1px solid var(--ink);
  border-radius: 24px;
  background: rgba(243, 239, 223, 0.6);
  transition: color 180ms ease, background 180ms ease;
}

.curriculum-decks-cta:hover,
.curriculum-decks-cta:focus-visible {
  color: var(--ink);
  background: var(--gold);
}

.curriculum-decks-cta:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: -4px;
}

.curriculum-decks-cta > span {
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.curriculum-decks-cta strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(24px, 2.6vw, 34px);
  font-style: italic;
  font-weight: 400;
  line-height: 1.05;
}

.curriculum-decks-cta p {
  max-width: 68ch;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.5;
}

.curriculum-decks-cta b {
  position: absolute;
  top: 26px;
  right: 26px;
  display: grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 400;
}

/* The syllabus-ordered presentation index itself. Its headline is a sentence
   rather than a course name, so it only needs the wider measure — the size it
   used to set on its own is now what every curriculum hero runs at. */
.curriculum-deck-index .curriculum-hero h1 {
  max-width: 700px;
}

.curriculum-deck-index .curriculum-source-note h2 {
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.05;
}

.deck-index-note {
  margin-top: 34px;
  padding: 16px 20px;
  border-left: 4px solid var(--gold);
  background: rgba(224, 169, 63, 0.1);
}

.deck-index-note p {
  max-width: 76ch;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.6;
}

.deck-index-note strong {
  font-weight: 700;
}

/* The presentation directory follows the same subsection-first rule as the
   curriculum dashboard: choose a course section, then see only its decks. */
.deck-section-picker {
  display: grid;
  gap: 18px;
  margin: 34px 0 24px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--ink);
  border-radius: 20px;
  background: rgba(194, 217, 207, 0.32);
}

.deck-section-picker h2 {
  margin: 7px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(25px, 3.2vw, 39px);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.02;
}

.deck-section-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
  gap: 9px;
}

.deck-section-picker-grid button {
  display: grid;
  min-width: 0;
  min-height: 82px;
  gap: 5px;
  align-content: start;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 13px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.5);
  text-align: left;
  cursor: pointer;
}

.deck-section-picker-grid button:hover,
.deck-section-picker-grid button[aria-pressed="true"] {
  color: var(--paper);
  border-color: var(--ink);
  background: var(--ink);
}

.deck-section-picker-grid button:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 3px;
}

.deck-section-picker-grid span,
.deck-section-picker-grid small {
  color: var(--red);
  font: 700 8px/1.2 "Courier New", monospace;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.deck-section-picker-grid button[aria-pressed="true"] :where(span, small) {
  color: var(--gold);
}

.deck-section-picker-grid strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.08;
}

.deck-index-list {
  margin-top: 40px;
  border-top: 1px solid var(--ink);
}

.deck-group {
  border-bottom: 1px solid var(--ink);
}

.deck-group-header {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 28px 4px 22px;
}

.deck-group-header h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(24px, 3vw, 36px);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
}

.deck-group-header small {
  display: block;
  max-width: 670px;
  margin-top: 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .curriculum-decks-cta {
    padding: 22px 22px 60px;
  }

  .curriculum-decks-cta b {
    top: auto;
    right: 22px;
    bottom: 20px;
  }

  /* .curriculum-group-count is already hidden at this width. */
  .deck-group-header {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
  }
}

/* ---------- searching a syllabus, and planning from it ----------
 *
 * Both syllabus pages are long by nature, and the row a teacher wants is
 * normally known by its words rather than by its number. The filter row sits
 * above the list on both; on the presentation index each row also gains a tick
 * that collects it into a running order.
 *
 * The whole list is still rendered on the server and shipped in the HTML — the
 * filtering only narrows what is already on the page — so both pages read and
 * link exactly the same with JavaScript off.
 */

.curriculum-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 16px 28px;
  align-items: end;
  margin-bottom: 18px;
}

.curriculum-search {
  display: grid;
  min-width: 260px;
  flex: 1;
  gap: 8px;
}

.curriculum-search input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  color: var(--ink);
  font: 400 15px/1.3 Georgia, "Times New Roman", serif;
}

.curriculum-search input:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

.curriculum-lenses {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.curriculum-lens {
  padding: 10px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.5);
  color: var(--ink);
  font: 700 10px/1 "Courier New", monospace;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    color 180ms ease,
    border-color 180ms ease,
    background 180ms ease;
}

.curriculum-lens:hover,
.curriculum-lens:focus-visible {
  border-color: var(--ink);
  background: rgba(224, 169, 63, 0.24);
}

.curriculum-lens[data-current="true"] {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--paper);
}

.curriculum-filter-count {
  margin: 0 0 10px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  font-style: italic;
  line-height: 1.5;
}

.curriculum-filter-clear {
  padding: 0;
  border: 0;
  border-bottom: 1.5px solid var(--red);
  background: none;
  color: var(--red);
  font: inherit;
  font-style: normal;
  cursor: pointer;
}

.curriculum-filter-clear:hover,
.curriculum-filter-clear:focus-visible {
  border-bottom-color: var(--ink);
  color: var(--ink);
}

.curriculum-empty {
  margin: 28px 0 0;
  padding: 22px;
  border: 1px dashed var(--line);
  border-radius: 18px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  line-height: 1.6;
}

/* How much of a group is really covered, drawn rather than only counted, so a
   scan down the map shows where the coverage thins out. */
.curriculum-group-count {
  display: grid;
  justify-items: end;
  gap: 6px;
}

.curriculum-group-meter {
  position: relative;
  overflow: hidden;
  width: 78px;
  height: 4px;
  border-radius: 999px;
  background: rgba(16, 46, 41, 0.16);
}

.curriculum-group-meter i {
  position: absolute;
  background: var(--ink);
  inset: 0;
  transform-origin: left center;
}

.curriculum-group-share {
  opacity: 0.6;
}

/* ---------- the running order ---------- */

.deck-row {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(0, 1fr) 46px;
  gap: 6px;
  transition: background 180ms ease;
}

.deck-row[data-picked="true"] {
  background: rgba(224, 169, 63, 0.16);
}

.deck-pick {
  display: grid;
  width: 34px;
  height: 34px;
  justify-self: center;
  border: 1.5px solid var(--line);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.6);
  color: var(--ink);
  font: 700 16px/1 "Courier New", monospace;
  place-items: center;
  cursor: pointer;
  transition:
    color 180ms ease,
    border-color 180ms ease,
    background 180ms ease;
}

.deck-pick:hover,
.deck-pick:focus-visible {
  border-color: var(--ink);
  background: var(--gold);
}

.deck-pick[data-picked="true"] {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--paper);
}

.deck-pick-empty {
  display: block;
  width: 34px;
  justify-self: center;
}

.running-order {
  margin-top: 30px;
  padding: 24px 26px;
  border: 1.5px solid var(--ink);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.5);
}

.running-order header h2 {
  margin: 6px 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 2.6vw, 30px);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

.running-order header p {
  max-width: 62ch;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.55;
}

.running-order-list {
  display: grid;
  margin: 18px 0;
  padding: 0;
  gap: 2px;
  list-style: none;
}

.running-order-list li {
  display: grid;
  align-items: center;
  grid-template-columns: 30px minmax(0, 1fr) 30px;
  gap: 12px;
  border-bottom: 1px solid var(--line);
}

.running-order-list li:last-child {
  border-bottom: 0;
}

.running-order-number {
  font: 700 11px/1 "Courier New", monospace;
  letter-spacing: 0.1em;
  opacity: 0.6;
}

.running-order-link {
  display: grid;
  align-items: baseline;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
  padding: 11px 0;
  transition:
    color 180ms ease,
    padding 180ms ease;
}

.running-order-link strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.25;
}

.running-order-link:hover,
.running-order-link:focus-visible {
  padding-left: 8px;
  color: var(--red);
}

.running-order-drop {
  width: 26px;
  height: 26px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: none;
  color: var(--ink);
  font: 400 15px/1 "Courier New", monospace;
  cursor: pointer;
}

.running-order-drop:hover,
.running-order-drop:focus-visible {
  border-color: var(--red);
  color: var(--red);
}

.running-order-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.running-order-start {
  padding: 11px 20px;
  border: 1.5px solid var(--ink);
  border-radius: 999px;
  background: var(--ink);
  color: var(--paper);
  font: 700 10px/1 "Courier New", monospace;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  transition: background 180ms ease;
}

.running-order-start:hover,
.running-order-start:focus-visible {
  background: var(--red);
}

@media (max-width: 900px) {
  .curriculum-filter {
    align-items: stretch;
  }

  .running-order-link {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 10px;
  }
}

@media (max-width: 720px) {
  .deck-row {
    grid-template-columns: minmax(0, 1fr) 38px;
  }

  .deck-pick,
  .deck-pick-empty {
    width: 30px;
  }

  .deck-pick {
    height: 30px;
  }
}

/* On paper the plan is the point: the filter row and the tick column are
   controls, and a printed running order should carry neither. */
@media print {
  .curriculum-filter,
  .curriculum-filter-count,
  .running-order-actions,
  .running-order-drop,
  .deck-pick,
  .deck-pick-empty {
    display: none;
  }

  .deck-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .running-order {
    break-inside: avoid;
  }
}

/* ---------- IGCSE presentation studio ----------
 *
 * This layer is deliberately scoped to the IGCSE index. The other curriculum
 * presentation pages retain their compact syllabus planner, while Cambridge
 * 0625 gains a visual course overview and a lesson-launch preview. Nothing is
 * sticky and nothing owns a vertical scrollbar: the page always follows the
 * browser's natural document scroll.
 */

.curriculum-page-igcse.curriculum-deck-index .curriculum-hero {
  position: relative;
  padding: clamp(26px, 4vw, 48px);
  border: 1px solid var(--ink);
  border-radius: 30px;
  background:
    radial-gradient(circle at 88% 16%, rgba(224, 169, 63, 0.25), transparent 25%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.62), rgba(201, 222, 210, 0.46));
  box-shadow: 0 24px 60px rgba(16, 46, 41, 0.09);
}

.igcse-presentation-studio {
  display: grid;
  gap: 20px;
  margin: 38px 0 24px;
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid var(--ink);
  border-radius: 28px;
  background:
    linear-gradient(rgba(16, 46, 41, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 46, 41, 0.035) 1px, transparent 1px),
    rgba(248, 245, 232, 0.92);
  background-size: 30px 30px;
  box-shadow: 0 18px 46px rgba(16, 46, 41, 0.08);
}

.igcse-studio-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
}

.igcse-studio-heading h2,
.igcse-coverage-figure figcaption strong,
.igcse-group-figure figcaption strong {
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.035em;
}

.igcse-studio-heading h2 {
  margin: 7px 0 10px;
  font-size: clamp(27px, 3.4vw, 43px);
  line-height: 1.02;
}

.igcse-studio-heading p:last-child {
  max-width: 70ch;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.55;
}

.igcse-studio-key {
  display: grid;
  gap: 8px;
  min-width: 190px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.55);
  font: 700 9px/1.25 "Courier New", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.igcse-studio-key span {
  display: flex;
  gap: 9px;
  align-items: center;
}

.igcse-studio-key i {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  border: 1px solid var(--ink);
  border-radius: 50%;
  background: var(--red);
}

.igcse-studio-key i[data-kind="chapter"] {
  background: var(--gold);
}

.igcse-studio-key i[data-kind="none"] {
  background: transparent;
}

.igcse-studio-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.78fr) minmax(420px, 1.22fr);
  gap: 16px;
}

.igcse-coverage-figure,
.igcse-group-figure {
  min-width: 0;
  margin: 0;
  padding: 20px;
  border: 1px solid var(--ink);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.62);
}

.igcse-coverage-figure figcaption,
.igcse-group-figure figcaption {
  display: grid;
  gap: 7px;
  margin-bottom: 18px;
}

.igcse-coverage-figure figcaption strong,
.igcse-group-figure figcaption strong {
  font-size: clamp(20px, 2.1vw, 27px);
  line-height: 1.08;
}

.igcse-coverage-visual {
  display: grid;
  grid-template-columns: 142px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
}

.igcse-coverage-ring {
  position: relative;
  display: grid;
  width: 142px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid var(--ink);
  border-radius: 50%;
}

.igcse-coverage-ring::before {
  position: absolute;
  border: 1px solid rgba(16, 46, 41, 0.26);
  border-radius: 50%;
  background: var(--paper);
  content: "";
  inset: 17px;
}

.igcse-coverage-ring span {
  position: relative;
  display: grid;
  justify-items: center;
  color: var(--ink);
  font: 700 11px/1 "Courier New", monospace;
  letter-spacing: 0.08em;
}

.igcse-coverage-ring strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 37px;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.05em;
}

.igcse-coverage-totals {
  display: grid;
  margin: 0;
}

.igcse-coverage-totals div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}

.igcse-coverage-totals div:last-child {
  border-bottom: 0;
}

.igcse-coverage-totals dt {
  font: 700 9px/1.3 "Courier New", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.igcse-coverage-totals dd {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-style: italic;
}

.igcse-coverage-caveat {
  display: block;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  color: rgba(16, 46, 41, 0.72);
  font: 700 8px/1.45 "Courier New", monospace;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.igcse-group-chart {
  display: grid;
  gap: 6px;
}

.igcse-group-bar {
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr) 92px;
  gap: 7px 16px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.igcse-group-bar:hover,
.igcse-group-bar:focus-visible,
.igcse-group-bar[data-current="true"] {
  border-color: var(--ink);
  background: rgba(224, 169, 63, 0.18);
}

.igcse-group-bar:hover {
  transform: translateX(4px);
}

.igcse-group-bar:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

.igcse-group-bar-label {
  display: grid;
  min-width: 0;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: baseline;
}

.igcse-group-bar-label b,
.igcse-group-bar-label strong,
.igcse-group-bar small {
  font: 700 10px/1.2 "Courier New", monospace;
  letter-spacing: 0.07em;
}

.igcse-group-bar-label span {
  overflow: hidden;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.igcse-group-bar small {
  grid-column: 2;
  justify-self: end;
  color: rgba(16, 46, 41, 0.65);
  font-size: 8px;
  text-transform: uppercase;
}

.igcse-group-bar-track {
  position: relative;
  overflow: hidden;
  width: 92px;
  height: 7px;
  border: 1px solid rgba(16, 46, 41, 0.28);
  border-radius: 999px;
  background: rgba(16, 46, 41, 0.08);
}

.igcse-group-bar-track i {
  position: absolute;
  display: flex;
  border-radius: inherit;
  inset: 0;
  transform-origin: left center;
}

.igcse-group-bar-track b {
  min-width: 0;
  flex-basis: 0;
  background: var(--red);
}

.igcse-group-bar-track b[data-kind="chapter"] {
  background: var(--gold);
}

.igcse-group-bar-track b[data-kind="none"] {
  background: repeating-linear-gradient(
    135deg,
    rgba(16, 46, 41, 0.25) 0 3px,
    transparent 3px 6px
  );
}

.igcse-show-all {
  margin-top: 14px;
  padding: 0 0 3px;
  border: 0;
  border-bottom: 1px solid var(--red);
  background: none;
  color: var(--red);
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
}

.igcse-show-all:hover,
.igcse-show-all:focus-visible {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

.igcse-practice-note {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  padding: 14px 17px;
  border: 1px solid rgba(16, 46, 41, 0.3);
  border-radius: 16px;
  background: rgba(224, 169, 63, 0.16);
}

.igcse-practice-note > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid var(--ink);
  border-radius: 50%;
  color: var(--red);
  font: 700 15px/1 "Courier New", monospace;
}

.igcse-practice-note p {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  line-height: 1.5;
}

.igcse-practice-note strong {
  display: block;
  margin-bottom: 2px;
  font: 700 9px/1.2 "Courier New", monospace;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.igcse-plan-pulse {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 14px 18px;
  border-radius: 16px;
  color: var(--paper);
  background: var(--ink);
}

.igcse-plan-pulse-icon {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(243, 239, 223, 0.6);
  border-radius: 50%;
  color: var(--gold);
  font: 400 21px/1 "Courier New", monospace;
}

.igcse-plan-pulse p {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  line-height: 1.45;
}

.igcse-plan-pulse strong {
  display: block;
  margin-bottom: 2px;
  color: var(--gold);
  font-family: "Courier New", monospace;
  font-size: 10px;
  font-style: normal;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.running-order-header-enhanced {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: end;
}

.running-order-time {
  display: grid;
  min-width: 170px;
  justify-items: end;
  gap: 4px;
}

.running-order-time > span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  font-style: italic;
}

.running-order-time small {
  font: 700 8px/1 "Courier New", monospace;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.running-order-time progress {
  width: 170px;
  height: 7px;
  margin-top: 6px;
  border: 0;
  border-radius: 99px;
  accent-color: var(--red);
}

.deck-row-igcse {
  grid-template-columns: minmax(0, 1fr) auto 46px;
  gap: 10px;
}

.deck-preview-toggle {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.58);
  color: var(--ink);
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  cursor: pointer;
}

.deck-preview-toggle:hover,
.deck-preview-toggle:focus-visible,
.deck-preview-toggle[data-open="true"] {
  border-color: var(--ink);
  background: var(--gold);
}

.deck-preview-toggle:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

.curriculum-topic-selector {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.igcse-deck-preview {
  display: grid;
  gap: 20px;
  margin: 0 0 16px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--ink);
  border-left: 6px solid var(--red);
  border-radius: 0 20px 20px 0;
  background:
    radial-gradient(circle at 92% 12%, rgba(224, 169, 63, 0.22), transparent 28%),
    rgba(255, 255, 255, 0.7);
}

.igcse-deck-preview > header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: start;
}

.igcse-deck-preview h3 {
  margin: 7px 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(24px, 3vw, 34px);
  font-style: italic;
  font-weight: 400;
  line-height: 1.04;
}

.igcse-deck-preview h3 span {
  margin-right: 5px;
  color: var(--red);
  font-family: "Courier New", monospace;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.igcse-deck-preview header p:last-child {
  max-width: 68ch;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  line-height: 1.5;
}

.igcse-preview-duration {
  display: grid;
  min-width: 74px;
  min-height: 74px;
  place-items: center;
  border: 1px solid var(--ink);
  border-radius: 50%;
  color: var(--paper);
  background: var(--ink);
  font: 700 11px/1 "Courier New", monospace;
  letter-spacing: 0.06em;
}

.igcse-preview-duration[data-multi="true"] {
  min-width: 0;
  min-height: 0;
  padding: 12px 16px;
  border-radius: 999px;
  white-space: nowrap;
}

.igcse-rhythm-figure {
  margin: 0;
}

.igcse-rhythm-figure figcaption {
  margin-bottom: 9px;
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.igcse-rhythm-track {
  display: flex;
  min-height: 72px;
  gap: 3px;
}

.igcse-rhythm-track > span {
  display: grid;
  min-width: 55px;
  align-content: center;
  justify-items: center;
  padding: 8px 4px;
  border: 1px solid rgba(16, 46, 41, 0.35);
  background: rgba(201, 222, 210, 0.74);
  text-align: center;
}

.igcse-rhythm-track > span:nth-child(2n) {
  background: rgba(224, 169, 63, 0.3);
}

.igcse-rhythm-track > span:first-child {
  border-radius: 12px 0 0 12px;
}

.igcse-rhythm-track > span:last-child {
  border-radius: 0 12px 12px 0;
}

.igcse-rhythm-track strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-weight: 400;
}

.igcse-rhythm-track small {
  margin-top: 4px;
  font: 700 9px/1 "Courier New", monospace;
}

.igcse-multi-sequence {
  display: grid;
  gap: 12px;
}

.igcse-multi-sequence-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
}

.igcse-multi-sequence h4 {
  margin: 0;
  font: 700 10px/1.2 "Courier New", monospace;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.igcse-multi-sequence-heading > span {
  color: var(--red);
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.igcse-multi-sequence ol {
  display: grid;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--ink);
  list-style: none;
}

.igcse-multi-sequence li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 30px;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}

.igcse-multi-sequence li > span:first-child {
  font: 700 10px/1 "Courier New", monospace;
  letter-spacing: 0.1em;
  opacity: 0.62;
}

.igcse-multi-sequence li > span:last-child {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 11px;
}

.igcse-multi-sequence a {
  display: grid;
  gap: 3px;
  padding: 12px 0;
  transition: color 180ms ease, padding 180ms ease;
}

.igcse-multi-sequence a:hover,
.igcse-multi-sequence a:focus-visible {
  padding-left: 7px;
  color: var(--red);
}

.igcse-multi-sequence a:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

.igcse-multi-sequence strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  font-weight: 400;
}

.igcse-multi-sequence small,
.running-order-sequence-count {
  display: block;
  margin-top: 3px;
  color: rgba(16, 46, 41, 0.64);
  font: 700 8px/1.2 "Courier New", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.igcse-preview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

@media (max-width: 940px) {
  .igcse-studio-grid {
    grid-template-columns: 1fr;
  }

  .igcse-coverage-visual {
    grid-template-columns: 150px minmax(0, 1fr);
  }
}

@media (max-width: 720px) {
  .curriculum-deck-index .curriculum-hero {
    padding: 24px;
    border-radius: 22px;
  }

  .igcse-studio-heading,
  .running-order-header-enhanced {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .igcse-studio-key {
    min-width: 0;
  }

  .running-order-time {
    width: 100%;
    justify-items: start;
  }

  .running-order-time progress {
    width: min(100%, 320px);
  }

  .deck-row-igcse {
    grid-template-columns: minmax(0, 1fr) 42px;
    padding-bottom: 10px;
  }

  .deck-row-igcse > .curriculum-topic {
    grid-column: 1 / -1;
  }

  .deck-row-igcse .deck-preview-toggle {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
    margin-left: 48px;
  }

  .deck-row-igcse .deck-pick,
  .deck-row-igcse .deck-pick-empty {
    grid-column: 2;
    grid-row: 2;
  }

  .igcse-rhythm-track {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .igcse-rhythm-track > span,
  .igcse-rhythm-track > span:first-child,
  .igcse-rhythm-track > span:last-child {
    min-height: 62px;
    border-radius: 10px;
  }
}

@media (max-width: 520px) {
  .igcse-presentation-studio {
    padding: 16px;
    border-radius: 20px;
  }

  .igcse-coverage-figure,
  .igcse-group-figure {
    padding: 16px;
  }

  .igcse-coverage-visual {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .igcse-coverage-totals {
    width: 100%;
  }

  .igcse-group-bar {
    grid-template-columns: 1fr;
  }

  .igcse-group-bar-track {
    width: 100%;
  }

  .igcse-group-bar small {
    grid-column: 1;
    justify-self: start;
  }

  .igcse-deck-preview > header {
    display: grid;
  }

  .igcse-preview-duration {
    min-width: 0;
    width: 70px;
  }

  .igcse-preview-duration[data-multi="true"] {
    width: fit-content;
    white-space: normal;
  }

  .igcse-rhythm-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .igcse-group-bar,
  .deck-preview-toggle,
  .igcse-multi-sequence a {
    transition: none;
  }

  .igcse-group-bar:hover {
    transform: none;
  }
}

@media print {
  .curriculum-deck-index .curriculum-topline,
  .curriculum-deck-index .curriculum-hero,
  .curriculum-deck-index .deck-index-note,
  .curriculum-deck-index .igcse-presentation-studio,
  .curriculum-deck-index .curriculum-filter,
  .curriculum-deck-index .curriculum-filter-count,
  .curriculum-deck-index .deck-index-list,
  .curriculum-deck-index .curriculum-source-note {
    display: none !important;
  }

  .curriculum-deck-index .running-order {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
  }

  .curriculum-deck-index .running-order-time {
    color: #000;
  }
}

/* ---------- IGCSE editable PowerPoint library ---------- */

.igcse-powerpoint-library {
  scroll-margin-top: 24px;
  display: grid;
  gap: 24px;
  margin: 32px 0;
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid var(--ink);
  border-radius: 28px;
  overflow: visible;
  background:
    radial-gradient(circle at 96% 4%, rgba(244, 90, 61, 0.16), transparent 27%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.78), rgba(225, 238, 227, 0.72));
  box-shadow: 0 20px 52px rgba(16, 46, 41, 0.09);
}

.igcse-powerpoint-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(250px, 0.65fr);
  gap: clamp(24px, 4vw, 54px);
  align-items: end;
}

.igcse-powerpoint-heading h2 {
  max-width: 720px;
  margin: 8px 0 12px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 4vw, 52px);
  font-style: italic;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.04em;
}

.igcse-powerpoint-heading > div > p:last-child {
  max-width: 68ch;
  margin: 0;
  color: rgba(16, 46, 41, 0.82);
  font-size: 15px;
  line-height: 1.65;
}

.igcse-powerpoint-promises {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 16px 18px;
  border: 1px solid rgba(16, 46, 41, 0.3);
  border-radius: 16px;
  background: rgba(248, 245, 232, 0.72);
  list-style: none;
}

.igcse-powerpoint-promises li {
  position: relative;
  padding-left: 18px;
  font: 700 10px/1.45 "Courier New", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.igcse-powerpoint-promises li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #a73122;
  font-weight: 900;
}

.igcse-powerpoint-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.igcse-powerpoint-card {
  --ppt-accent: #efb22d;
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 18px;
  border: 1px solid rgba(16, 46, 41, 0.42);
  border-top: 5px solid var(--ppt-accent);
  border-radius: 17px;
  background: rgba(255, 253, 245, 0.88);
  box-shadow: 0 10px 24px rgba(16, 46, 41, 0.06);
}

.igcse-powerpoint-card-2 { --ppt-accent: #e66d38; }
.igcse-powerpoint-card-3 { --ppt-accent: #2ba6a6; }
.igcse-powerpoint-card-4 { --ppt-accent: #7157c8; }
.igcse-powerpoint-card-5 { --ppt-accent: #cb4c66; }
.igcse-powerpoint-card-6 { --ppt-accent: #3b72b6; }

.igcse-powerpoint-card-topline {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 14px;
  color: rgba(16, 46, 41, 0.68);
  font: 700 9px/1.3 "Courier New", monospace;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.igcse-powerpoint-card h3 {
  margin: 22px 0 7px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(24px, 2.2vw, 32px);
  font-style: italic;
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.03em;
}

.igcse-powerpoint-joke {
  min-height: 3.2em;
  margin: 0;
  color: #9c3023;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-style: italic;
  line-height: 1.55;
}

.igcse-powerpoint-description {
  margin: 13px 0 18px;
  color: rgba(16, 46, 41, 0.8);
  font-size: 13px;
  line-height: 1.55;
}

.igcse-powerpoint-facts {
  display: grid;
  grid-template-columns: 0.7fr 1.2fr 1.2fr;
  gap: 7px;
  margin: auto 0 0;
}

.igcse-powerpoint-facts div {
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(16, 46, 41, 0.2);
  border-radius: 9px;
  background: rgba(232, 240, 229, 0.54);
}

.igcse-powerpoint-facts dt {
  margin-bottom: 4px;
  color: rgba(16, 46, 41, 0.62);
  font: 700 8px/1.25 "Courier New", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.igcse-powerpoint-facts dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
}

.igcse-powerpoint-group-title {
  margin: 11px 0;
  color: rgba(16, 46, 41, 0.66);
  font: 700 9px/1.35 "Courier New", monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.igcse-powerpoint-download {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border: 1px solid var(--ink);
  border-radius: 11px;
  color: #f8f5e8;
  background: var(--ink);
  font: 700 10px/1.25 "Courier New", monospace;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 140ms ease, background-color 140ms ease, transform 140ms ease;
}

.igcse-powerpoint-download:hover {
  color: var(--ink);
  background: var(--ppt-accent);
  transform: translateY(-2px);
}

.igcse-powerpoint-download:focus-visible {
  outline: 3px solid #f05a3d;
  outline-offset: 3px;
}

.igcse-powerpoint-note {
  max-width: 92ch;
  margin: 0;
  padding-top: 15px;
  border-top: 1px solid rgba(16, 46, 41, 0.28);
  color: rgba(16, 46, 41, 0.7);
  font-size: 12px;
  line-height: 1.55;
}

@media (max-width: 1060px) {
  .igcse-powerpoint-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .igcse-powerpoint-library {
    padding: 18px;
    border-radius: 21px;
  }

  .igcse-powerpoint-heading,
  .igcse-powerpoint-grid {
    grid-template-columns: 1fr;
  }

  .igcse-powerpoint-heading {
    align-items: start;
  }

  .igcse-powerpoint-promises {
    width: 100%;
  }

  .igcse-powerpoint-joke {
    min-height: 0;
  }
}

@media (max-width: 420px) {
  .igcse-powerpoint-card {
    padding: 15px;
  }

  .igcse-powerpoint-facts {
    grid-template-columns: 0.7fr 1fr;
  }

  .igcse-powerpoint-facts div:last-child {
    grid-column: 1 / -1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .igcse-powerpoint-download {
    transition: none;
  }

  .igcse-powerpoint-download:hover {
    transform: none;
  }
}

/* ---------- IGCSE 0625 complete PowerPoint course ----------
 * Native details/summary elements keep 29 subsections compact without a
 * client-side accordion or a nested scrollbar. The document remains the only
 * vertical scroll owner on desktop, touch screens, and print.
 */

.igcse-full-course,
.igcse-quick-start-library {
  display: grid;
  gap: 22px;
  min-width: 0;
  overflow: visible;
}

.igcse-full-course-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, 0.8fr);
  gap: clamp(26px, 4vw, 58px);
  align-items: end;
}

.igcse-full-course-heading h2 {
  max-width: 820px;
  margin: 8px 0 13px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4.7vw, 62px);
  font-style: italic;
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.045em;
}

.igcse-full-course-heading > div > p:last-child {
  max-width: 72ch;
  margin: 0;
  color: rgba(16, 46, 41, 0.8);
  font-size: 15px;
  line-height: 1.65;
}

.igcse-full-course-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border: 1px solid rgba(16, 46, 41, 0.35);
  border-radius: 18px;
  overflow: hidden;
  background: rgba(16, 46, 41, 0.96);
  color: #f8f5e8;
}

.igcse-full-course-summary div {
  min-width: 0;
  padding: 16px;
}

.igcse-full-course-summary div:nth-child(even) {
  border-left: 1px solid rgba(248, 245, 232, 0.2);
}

.igcse-full-course-summary div:nth-child(n + 3) {
  border-top: 1px solid rgba(248, 245, 232, 0.2);
}

.igcse-full-course-summary dt {
  color: #e8af32;
  font: 700 8px/1.25 "Courier New", monospace;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.igcse-full-course-summary dd {
  margin: 6px 0 3px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 2.5vw, 32px);
  font-style: italic;
  line-height: 1;
}

.igcse-full-course-summary small {
  display: block;
  margin-top: 3px;
  color: rgba(248, 245, 232, 0.72);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 10px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.35;
}

.igcse-teaching-route {
  display: grid;
  grid-template-columns: minmax(210px, 0.45fr) minmax(0, 1.55fr);
  gap: 24px;
  align-items: end;
  padding: 18px;
  border: 1px solid rgba(16, 46, 41, 0.3);
  border-radius: 16px;
  background: rgba(248, 245, 232, 0.72);
}

.igcse-teaching-route h3 {
  margin: 5px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.05;
}

.igcse-teaching-route ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.igcse-teaching-route li {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 7px;
  align-items: start;
  padding: 8px;
  border-radius: 8px;
  background: rgba(201, 222, 210, 0.52);
}

.igcse-teaching-route li span {
  color: #a73122;
  font: 700 9px/1.35 "Courier New", monospace;
  letter-spacing: 0.08em;
}

.igcse-teaching-route li strong {
  font-size: 10px;
  line-height: 1.35;
}

.igcse-full-course-groups {
  display: grid;
  gap: 10px;
  overflow: visible;
}

.igcse-full-course-group {
  --course-accent: #e8af32;
  border: 1px solid rgba(16, 46, 41, 0.38);
  border-left: 5px solid var(--course-accent);
  border-radius: 14px;
  overflow: visible;
  background: rgba(255, 253, 245, 0.88);
}

.igcse-full-course-group-2 { --course-accent: #e66d38; }
.igcse-full-course-group-3 { --course-accent: #2b9b9b; }
.igcse-full-course-group-4 { --course-accent: #7157c8; }
.igcse-full-course-group-5 { --course-accent: #c84b65; }
.igcse-full-course-group-6 { --course-accent: #3b72b6; }

.igcse-full-course-group > summary {
  display: grid;
  min-height: 76px;
  grid-template-columns: 42px minmax(0, 1fr) auto 18px;
  gap: 14px;
  align-items: center;
  padding: 13px 17px;
  cursor: pointer;
  list-style: none;
  transition: background-color 150ms ease;
}

.igcse-full-course-group > summary::-webkit-details-marker {
  display: none;
}

.igcse-full-course-group > summary::after {
  content: "+";
  color: #a73122;
  font: 700 18px/1 "Courier New", monospace;
  text-align: center;
}

.igcse-full-course-group[open] > summary::after {
  content: "−";
}

.igcse-full-course-group > summary:hover {
  background: rgba(201, 222, 210, 0.38);
}

.igcse-full-course-group > summary:focus-visible {
  border-radius: 9px;
  outline: 3px solid #f05a3d;
  outline-offset: 3px;
}

.igcse-full-course-group-number {
  color: #a73122;
  font: 700 11px/1 "Courier New", monospace;
  letter-spacing: 0.1em;
}

.igcse-full-course-group-name {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.igcse-full-course-group-name strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(20px, 2.3vw, 30px);
  font-style: italic;
  font-weight: 400;
  line-height: 1.05;
}

.igcse-full-course-group-name small {
  color: rgba(16, 46, 41, 0.7);
  font-size: 11px;
  line-height: 1.4;
}

.igcse-full-course-group-count {
  padding: 7px 9px;
  border: 1px solid rgba(16, 46, 41, 0.26);
  border-radius: 999px;
  font: 700 9px/1 "Courier New", monospace;
  letter-spacing: 0.06em;
  white-space: nowrap;
  text-transform: uppercase;
}

.igcse-full-course-deck-list {
  margin: 0;
  padding: 0 14px 14px;
  border-top: 1px solid rgba(16, 46, 41, 0.22);
  list-style: none;
}

.igcse-full-course-deck {
  display: grid;
  grid-template-columns: minmax(200px, 0.8fr) minmax(330px, 1.35fr) minmax(230px, 0.85fr);
  gap: 16px;
  align-items: center;
  min-width: 0;
  padding: 13px 3px;
}

.igcse-full-course-deck + .igcse-full-course-deck {
  border-top: 1px solid rgba(16, 46, 41, 0.18);
}

.igcse-full-course-deck-title {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  min-width: 0;
}

.igcse-full-course-deck-title > span {
  color: #a73122;
  font: 700 10px/1.35 "Courier New", monospace;
  letter-spacing: 0.06em;
}

.igcse-full-course-deck-title h4 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.2;
}

.igcse-full-course-deck-title > small {
  grid-column: 2;
  color: rgba(16, 46, 41, 0.66);
  font: 700 8px/1.35 "Courier New", monospace;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.igcse-full-course-features {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.igcse-full-course-features li {
  padding: 5px 7px;
  border: 1px solid rgba(16, 46, 41, 0.22);
  border-radius: 999px;
  background: rgba(201, 222, 210, 0.44);
  font: 700 8px/1.2 "Courier New", monospace;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.igcse-full-course-deck-action {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(120px, auto);
  gap: 10px;
  align-items: center;
}

.igcse-full-course-deck-action dl {
  display: flex;
  gap: 13px;
  margin: 0;
}

.igcse-full-course-deck-action dt {
  margin-bottom: 2px;
  color: rgba(16, 46, 41, 0.7);
  font: 700 7px/1.2 "Courier New", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.igcse-full-course-deck-action dd {
  margin: 0;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
}

.igcse-full-course-download {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 11px;
  border: 1px solid var(--ink);
  border-radius: 9px;
  color: #f8f5e8;
  background: var(--ink);
  font: 700 9px/1.2 "Courier New", monospace;
  letter-spacing: 0.045em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 140ms ease, background-color 140ms ease;
}

.igcse-full-course-download:hover {
  color: #f8f5e8;
  background: var(--ink);
  box-shadow: inset 0 -4px 0 var(--course-accent);
  text-decoration: underline;
  text-decoration-color: #f8f5e8;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.igcse-full-course-download:focus-visible {
  outline: 3px solid #f05a3d;
  outline-offset: 3px;
}

.igcse-full-course-bundles {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(16, 46, 41, 0.3);
  border-radius: 12px;
}

.igcse-full-course-bundles strong,
.igcse-full-course-bundles a {
  font: 700 9px/1.3 "Courier New", monospace;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.igcse-full-course-bundles a:focus-visible {
  outline: 3px solid #f05a3d;
  outline-offset: 3px;
}

.igcse-quick-start-library {
  margin-top: 10px;
  padding-top: 28px;
  border-top: 1px solid rgba(16, 46, 41, 0.3);
}

@media (max-width: 1060px) {
  .igcse-full-course-heading {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.75fr);
  }

  .igcse-full-course-deck {
    grid-template-columns: minmax(190px, 0.8fr) minmax(0, 1.2fr);
  }

  .igcse-full-course-deck-action {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .igcse-full-course-heading,
  .igcse-teaching-route {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .igcse-teaching-route ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .igcse-full-course-group > summary {
    grid-template-columns: 34px minmax(0, 1fr) 18px;
  }

  .igcse-full-course-group-count {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
  }

  .igcse-full-course-group > summary::after {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  .igcse-full-course-deck {
    grid-template-columns: 1fr;
  }

  .igcse-full-course-deck-action {
    grid-column: 1;
  }
}

@media (max-width: 480px) {
  .igcse-full-course-summary,
  .igcse-teaching-route ol,
  .igcse-full-course-deck-action {
    grid-template-columns: 1fr;
  }

  .igcse-full-course-summary div:nth-child(even) {
    border-left: 0;
  }

  .igcse-full-course-summary div + div {
    border-top: 1px solid rgba(248, 245, 232, 0.2);
  }

  .igcse-full-course-group > summary {
    padding: 12px;
  }

  .igcse-full-course-deck-list {
    padding: 0 10px 10px;
  }

  .igcse-full-course-deck-action dl {
    justify-content: space-between;
  }
}

@media (prefers-reduced-motion: reduce) {
  .igcse-full-course-group > summary,
  .igcse-full-course-download {
    transition: none;
  }
}

@media print {
  .igcse-full-course-heading,
  .igcse-teaching-route {
    display: block;
  }

  .igcse-full-course-summary,
  .igcse-teaching-route ol {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    color: #000;
    background: #fff;
  }

  .igcse-full-course-group {
    break-inside: auto;
    border: 1px solid #000;
    background: #fff;
  }

  .igcse-full-course-group > summary::after,
  .igcse-full-course-group-count,
  .igcse-quick-start-library {
    display: none !important;
  }

  .igcse-full-course-group > .igcse-full-course-deck-list {
    display: block !important;
  }

  .igcse-full-course-deck {
    display: grid;
    grid-template-columns: minmax(150px, 0.8fr) minmax(260px, 1.2fr) minmax(170px, 0.8fr);
    break-inside: avoid;
  }

  .igcse-full-course-download {
    min-height: 0;
    padding: 0;
    border: 0;
    color: #000;
    background: none;
    text-decoration: underline;
  }
}

@media print {
  .curriculum-deck-index .igcse-powerpoint-library {
    display: block !important;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
  }

  .igcse-powerpoint-heading {
    display: block;
    margin-bottom: 18pt;
  }

  .igcse-powerpoint-promises,
  .igcse-powerpoint-grid {
    display: block;
  }

  .igcse-powerpoint-promises {
    margin: 10pt 0;
  }

  .igcse-powerpoint-card {
    break-inside: avoid;
    margin: 0 0 12pt;
    border: 1px solid #000;
    background: #fff;
    box-shadow: none;
  }

  .igcse-powerpoint-download {
    min-height: 0;
    padding: 0;
    border: 0;
    color: #000;
    background: none;
    text-decoration: underline;
  }
}
