:is(.page-civil-redesign, .page-degree-redesign) {
  background: #f7f4ee;
  color: #17223b;
}

:is(.page-civil-redesign, .page-degree-redesign) header.site {
  position: relative;
  background: #07162f;
}

:is(.page-civil-redesign, .page-degree-redesign) header.site::before { background: none; }

.civil-course-v2,
.civil-course-v2 * { box-sizing: border-box; }

.civil-course-v2 {
  --civil-navy: #081a38;
  --civil-navy-2: #10284f;
  --civil-ink: #17223b;
  --civil-muted: #5e6878;
  --civil-paper: #f7f4ee;
  --civil-card: #fffdf9;
  --civil-line: #d9d4ca;
  --civil-accent: #e46631;
  /* #e46631 is a GRAPHIC accent — rules, bars, hovers — and it was also being
     used for the uppercase kickers, which are 11-12px text. It measures
     2.73:1 on the cream card and 3.36:1 on white, so those labels failed the
     4.5:1 floor everywhere they appeared. The design system already carries
     the measured text step for exactly this (`--ice-color-text-accent`,
     terracotta-800 in light), plus an on-brand step for the same ink over a
     navy field. Text takes those; the graphics keep the brighter hue. */
  --civil-accent-text: var(--ice-color-text-accent);
  --civil-accent-text-on-navy: var(--ice-color-text-accent-on-brand);
  --civil-width: 72rem;
  overflow: clip;
  background: var(--civil-paper);
  color: var(--civil-ink);
  font-family: var(--ice-font-primary, Arial, sans-serif);
}

.civil-course-v2 :is(h1, h2, h3, p, figure, dl, dd) { margin: 0; }
.civil-course-v2 :is(ul, ol) { margin: 0; padding: 0; }
.civil-course-v2 a { color: inherit; }
.civil-course-v2 img { display: block; width: 100%; height: 100%; object-fit: cover; }
.civil-course-v2 h1 { font-size: clamp(2.8rem, 5vw, 5rem); line-height: .98; letter-spacing: -.045em; }
.civil-course-v2 h2 { max-width: 16ch; font-size: clamp(2.2rem, 4vw, 3.9rem); line-height: 1.02; letter-spacing: -.035em; }
.civil-course-v2 h3 { font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.12; }
.civil-course-v2 p { line-height: 1.65; }
:is(.page-civil-redesign, .page-degree-redesign) .sticky-cta { display: none !important; }
.civil-course-v2 :is(#fit, #learn, #years, #practice, #careers, #admissions, #questions) { scroll-margin-top: 6rem; }

.civil-section { width: min(calc(100% - 2.5rem), var(--civil-width)); margin-inline: auto; padding-block: clamp(4rem, 7vw, 6.5rem); }
.civil-section__intro { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.civil-section__intro--wide { max-width: 58rem; }
.civil-section__intro > p:last-child { max-width: 43rem; margin-top: 1rem; color: var(--civil-muted); font-size: 1.05rem; }
.civil-section__intro--light { color: #fff; }
.civil-section__intro--light > p:last-child { color: #b9c5d8; }
/* On the navy fields the dark text step would disappear, so those kickers
   take the on-brand accent instead. */
:is(.civil-hero,.civil-years,.civil-admissions__panel,.civil-fit__grid,.civil-final) .civil-kicker { color: var(--civil-accent-text-on-navy); }
.civil-kicker { margin-bottom: .8rem !important; color: var(--civil-accent-text); font-size: .75rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.civil-card-label { color: var(--civil-muted); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.civil-media { position: relative; overflow: hidden; background: #d9dde2; }
.civil-media picture { display: block; width: 100%; height: 100%; }
.civil-media img { object-position: var(--civil-focus); }
.civil-media figcaption { position: absolute; inset: auto .75rem .75rem; max-width: 28rem; padding: .65rem .75rem; background: rgb(5 18 42 / 82%); color: #fff; font-size: .76rem; line-height: 1.4; backdrop-filter: blur(8px); }

.civil-hero { padding: 0 !important; background: var(--civil-navy); color: #fff; }
.civil-hero :is(h1, h2, h3),
.civil-years :is(h1, h2, h3),
.civil-admissions :is(h1, h2, h3),
.civil-final :is(h1, h2, h3) { color: #fff !important; }
.civil-hero__inner { position: relative; isolation: isolate; width: 100%; min-height: 40rem; margin-inline: auto; background: #07162f; }
.civil-hero__copy { position: relative; z-index: 2; display: flex; width: min(55%, 44rem); min-height: 40rem; flex-direction: column; justify-content: center; padding: 3rem clamp(2rem, 5vw, 5rem); background: linear-gradient(90deg, #07162f 0%, #07162f 72%, rgb(7 22 47 / 88%) 84%, transparent 100%); }
.civil-breadcrumbs { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: 2.25rem; color: #aebbd0; font-size: .82rem; }
.civil-breadcrumbs a { text-decoration: none; }
.civil-hero h1 { max-width: none; }
.civil-hero h1 span { display: block; white-space: nowrap; }
.civil-hero__lede { max-width: 34rem; margin-top: 1.25rem; color: #d5deec; font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.civil-hero__media { position: absolute; z-index: 0; inset: 0; min-height: 0; background: #07162f; }
.civil-hero__media::after { position: absolute; inset: 0; background: linear-gradient(90deg, #07162f 0%, rgb(7 22 47 / 96%) 31%, rgb(7 22 47 / 48%) 51%, transparent 68%); content: ''; pointer-events: none; }
.civil-hero__media img { object-fit: cover; object-position: right center; }
.civil-hero__media figcaption { display: none; }

.civil-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.75rem; }
.civil-button { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; padding: .8rem 1.15rem; border: 1px solid transparent; font-size: .88rem; font-weight: 800; text-decoration: none; }
.civil-button--primary { background: #d51d3c; color: #fff !important; }
.civil-button--quiet { border-color: #71809a; background: rgb(255 255 255 / 3%); color: #fff !important; }
.civil-button--light { border-color: #c8d2e1; background: #fff; color: var(--civil-navy) !important; }
/* Shares a row with two 3rem buttons, so it takes their height: it was a 23px
   text link wedged between them, which both misaligned the row and put a
   primary contact route under the coarse-pointer floor on a phone. */
.civil-text-link {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  color: #fff !important;
  font-size: .9rem;
  font-weight: 800;
}
.civil-hero__copy > .civil-actions { display: grid; width: min(100%, 29rem); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: 1.5rem; }
.civil-hero__copy > .civil-facts { display: grid; margin-top: 1.4rem; border-block: 1px solid rgb(255 255 255 / 18%); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.civil-facts div { min-width: 0; padding: 1rem .55rem; }
.civil-facts div:first-child { padding-left: 0; }
.civil-facts div:last-child { padding-right: 0; }
.civil-facts div + div { padding-left: 1rem; border-left: 1px solid rgb(255 255 255 / 12%); }
.civil-facts dt { color: #9eadc3; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.civil-facts dd { margin-top: .2rem; color: #fff; font-size: .95rem; font-weight: 800; white-space: nowrap; }

.civil-jump { position: static; border-bottom: 1px solid var(--civil-line); background: #fffdf9; }
.civil-jump > div { display: flex; width: min(calc(100% - 2.5rem), var(--civil-width)); margin-inline: auto; overflow-x: auto; scrollbar-width: none; }
.civil-jump a { flex: 0 0 auto; padding: 1rem 1.1rem; color: #4d5869; font-size: .79rem; font-weight: 800; text-decoration: none; }
.civil-jump a:first-child { padding-left: 0; }
.civil-jump a:hover { color: var(--civil-accent); }

.civil-fit { position: relative; isolation: isolate; padding-block: clamp(2.25rem, 3vw, 3rem) clamp(.75rem, 1vw, 1rem); }
.civil-fit::before { position: absolute; z-index: -1; inset: 0 50%; width: 100vw; transform: translateX(-50%); background: linear-gradient(180deg, #f7f4ee 0%, #f0ebe2 100%); content: ''; }
.civil-fit .civil-section__intro { display: grid; max-width: none; align-items: start; grid-template-columns: minmax(19rem, .8fr) minmax(22rem, 1.2fr); gap: clamp(2rem, 5vw, 4rem); margin-bottom: 1.25rem; }
.civil-fit .civil-section__intro h2 { max-width: 13ch; font-size: clamp(2.5rem, 3.4vw, 3.35rem); }
.civil-fit .civil-section__intro > p:last-child { max-width: 37rem; margin: 1.9rem 0 0; font-size: 1.02rem; }
.civil-fit__grid { display: grid; height: 23rem; overflow: hidden; border: 1px solid #c9c3b8; background: var(--civil-navy); box-shadow: 0 18px 48px rgb(19 31 55 / 13%); grid-template-columns: 1fr 1fr; gap: 0; }
.civil-fit__media { min-height: 0; }
.civil-fit__guidance { display: grid; min-width: 0; min-height: 0; overflow: hidden; grid-template-rows: 1.28fr 1fr; }
.civil-fit__card { display: flex; min-height: 0; overflow: hidden; flex-direction: column; justify-content: flex-start; padding: 1.1rem 1.5rem; border: 0; background: #fffaf5; }
.civil-fit__card--yes { border-bottom: 1px solid #aebeb2; background: #dfe9e1; }
.civil-fit__card--honest { position: relative; background: #10284f; color: #fff; }
/* Hairline, not a 4px slab. The navy field already separates the honest card
   from its sibling; the thick accent edge was doing that job a second time and
   is the side-stripe tell. Owner approved the reduction 2026-08-17. */
.civil-fit__card--honest::before { position: absolute; inset: 0 auto 0 0; width: 1px; background: var(--civil-accent); content: ''; }
.civil-fit__card--honest .civil-card-label { color: #f2a27c; }
.civil-fit__card--honest > p:last-child { color: #e5ebf5; }
.civil-fit__card ul { display: grid; gap: .4rem; margin-top: .7rem; list-style: none; }
.civil-fit__card li { padding-left: 1.25rem; font-size: .92rem; line-height: 1.35; }
.civil-fit__card li::before { position: absolute; margin-left: -1.25rem; color: #46705a; content: '✓'; font-weight: 900; }
.civil-fit__card > p:last-child { margin-top: .7rem; font-size: .94rem; line-height: 1.5; }

.civil-section.civil-learn { padding-top: clamp(1.5rem, 2vw, 2rem); padding-bottom: 1rem; }
.civil-subjects { display: grid; gap: 1rem; }
.civil-subject { display: grid; height: clamp(25rem, 33vw, 29rem); min-height: 0; grid-template-columns: minmax(0, 1.25fr) minmax(19rem, .75fr); background: #fff; }
.civil-subject:nth-child(even) { grid-template-columns: minmax(19rem, .75fr) minmax(0, 1.25fr); }
.civil-subject:nth-child(even) .civil-subject__media { order: 2; }
.civil-subject__media { height: 100%; min-height: 0; }
.civil-subject__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.75rem, 4vw, 3.5rem); }
.civil-subject__copy > span { margin-bottom: .65rem; color: var(--civil-accent-text); font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.civil-subject__copy > p { margin-top: .8rem; color: var(--civil-muted); }
.civil-subject__copy ul { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; list-style: none; }
.civil-subject__copy li { padding: .45rem .65rem; background: #eef0f2; font-size: .76rem; font-weight: 800; }

.civil-years { background: var(--civil-navy); color: #fff; }
.civil-years .civil-section { padding-block: clamp(1.5rem, 2vw, 2rem); }
.civil-years .civil-section__intro { margin-bottom: clamp(1.25rem, 2vw, 1.75rem); }
.civil-years__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.civil-year { overflow: hidden; border: 1px solid #304360; background: #102548; }
.civil-year__media { height: 17rem; }
.civil-year__media figcaption { display: none; }
.civil-year details { border-top: 1px solid #304360; }
.civil-year summary { display: flex; min-height: 6rem; align-items: center; gap: 1rem; padding: 1.2rem; cursor: pointer; list-style: none; }
.civil-year summary::-webkit-details-marker { display: none; }
.civil-year summary > span { color: var(--civil-accent); font-size: .78rem; font-weight: 900; }
.civil-year summary div { display: grid; gap: .2rem; }
.civil-year summary small { color: #aebbd0; }
.civil-year__body { padding: 0 1.2rem 1.4rem 3.1rem; color: #c9d3e2; }
.civil-semester { margin-top: 1rem; }
.civil-semester strong { color: #fff; font-size: .78rem; }
.civil-semester p { margin-top: .25rem; font-size: .85rem; line-height: 1.5; }

.civil-practice__gallery { display: grid; grid-template-columns: 1.35fr .65fr; grid-template-rows: repeat(2, 14rem); gap: .75rem; }
.civil-section.civil-practice { padding-top: 1rem; padding-bottom: clamp(1.5rem, 2vw, 2rem); }
.civil-practice__gallery .civil-media { min-height: 0; }
.civil-practice__lead { grid-row: 1 / 3; }
.civil-labs { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--civil-line); border-top: 0; list-style: none; }
.civil-labs li { padding: 1rem; border-right: 1px solid var(--civil-line); background: #fff; font-size: .82rem; font-weight: 800; }
.civil-labs li:nth-child(3n) { border-right: 0; }
.civil-labs li:nth-child(-n+3) { border-bottom: 1px solid var(--civil-line); }

.civil-careers { display: grid; width: min(calc(100% - 2.5rem), var(--civil-width)); min-height: 22rem; height: auto; overflow: hidden; margin: 0 auto; padding: 0; grid-template-columns: .9fr 1.1fr; background: #ece7de; }
.civil-careers__media { height: auto; min-height: 0; align-self: stretch; }
.civil-careers__media picture { position: absolute; inset: 0; height: 100%; }
.civil-careers__media img { width: 100% !important; height: 100% !important; object-fit: cover; }
.civil-careers__copy { display: flex; min-height: 0; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 3vw, 2.5rem); }
.civil-careers__copy h2 { max-width: 14ch; font-size: clamp(2.25rem, 3vw, 2.65rem); line-height: 1.02; }
.civil-careers__copy > p:not(.civil-kicker) { margin-top: .75rem; color: var(--civil-muted); font-size: .93rem; line-height: 1.5; }
.civil-careers__copy ul { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; list-style: none; }
.civil-careers__copy li { padding: .45rem .6rem; border: 1px solid #cfc7b9; background: #fff; font-size: .72rem; font-weight: 800; }

#admissions.civil-admissions { padding: 1rem 0 0; }
.civil-admissions__panel { display: grid; padding: clamp(2rem, 5vw, 4rem); background: var(--civil-navy-2); color: #fff; grid-template-columns: .85fr 1.15fr; gap: 3rem; }
.civil-admissions__panel > div:first-child > p:last-child { margin-top: 1rem; color: #bdc8d9; }
.civil-admissions__panel dl { display: grid; gap: 0; }
.civil-admissions__panel dl div { padding: 1rem 0; border-bottom: 1px solid #405472; }
.civil-admissions__panel dt { color: #9eadc3; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.civil-admissions__panel dd { margin-top: .35rem; line-height: 1.5; }
.civil-admissions__panel > .civil-actions { grid-column: 1 / -1; margin-top: 0; }

.civil-section.civil-faq { display: grid; padding-block: 1rem; grid-template-columns: .75fr 1.25fr; gap: clamp(2rem, 6vw, 6rem); }
.civil-faq__list { border-top: 1px solid var(--civil-line); }
.civil-faq details { border-bottom: 1px solid var(--civil-line); }
.civil-faq summary { display: flex; min-height: 4.5rem; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; font-weight: 800; list-style: none; }
.civil-faq summary::-webkit-details-marker { display: none; }
.civil-faq summary span { color: var(--civil-accent); font-size: 1.4rem; }
.civil-faq details p { max-width: 46rem; padding: 0 2rem 1.25rem 0; color: var(--civil-muted); }

.civil-final { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(3rem, 6vw, 5rem) max(1.25rem, calc((100vw - var(--civil-width)) / 2)); background: #25101f; color: #fff; }
.civil-final h2 { max-width: 15ch; }
.civil-final .civil-actions { flex: 0 0 auto; margin-top: 0; }

@media (max-width: 63.99rem) {
  .civil-hero__copy { width: 59%; padding: 2.5rem 1.5rem; }
  .civil-facts { grid-template-columns: repeat(2, 1fr); }
  .civil-fit__grid { grid-template-columns: 1fr 1fr; }
  .civil-fit .civil-section__intro { grid-template-columns: 1fr; gap: 1rem; }
  .civil-fit .civil-section__intro > p:last-child { margin-top: 0; }
  .civil-fit__grid { height: auto; }
  .civil-fit__media { min-height: 24rem; }
  .civil-fit__guidance { min-height: 24rem; }
  .civil-subject { grid-template-columns: 1fr 1fr; }
  .civil-subject:nth-child(even) { grid-template-columns: 1fr 1fr; }
  .civil-admissions__panel { grid-template-columns: 1fr; gap: 1.5rem; }
  .civil-admissions__panel > .civil-actions { grid-column: auto; }
}

@media (max-width: 47.99rem) {
  .civil-course-v2 h1 { font-size: clamp(2.45rem, 12vw, 3.35rem); }
  .page-degree-redesign .civil-course-v2 h1 { font-size: clamp(2rem, 10vw, 3rem); }
  .civil-course-v2 h2 { font-size: clamp(2rem, 9.5vw, 2.75rem); }
  .civil-section { width: min(calc(100% - 2rem), var(--civil-width)); padding-block: 3rem; }
  .civil-hero__inner { display: flex; flex-direction: column-reverse; }
  .civil-hero__copy { width: 100%; min-height: 0; }
  .civil-hero__media { position: relative; inset: auto; min-height: 20rem; height: 46vh; max-height: 26rem; }
  .civil-hero__media::after { display: none; }
  .civil-hero__media img { object-fit: cover; object-position: var(--civil-mobile-focus); }
  .civil-hero__media figcaption { display: none; }
  .civil-hero__copy { padding: 2rem 1rem 2.25rem; }
  .civil-breadcrumbs { margin-bottom: 1.35rem; }
  .civil-hero__lede { font-size: 1rem; }
  .civil-actions { align-items: stretch; }
  .civil-actions .civil-button { flex: 1 1 100%; }
  .civil-hero__copy > .civil-actions { width: 100%; grid-template-columns: 1fr; }
  .civil-hero__copy > .civil-facts { margin-top: 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .civil-facts div { padding-block: .75rem; }
  .civil-facts div:nth-child(odd) { padding-left: 0; border-left: 0; }
  .civil-facts div:nth-child(even) { padding-right: 0; }
  .civil-facts div:nth-child(n + 3) { border-top: 1px solid rgb(255 255 255 / 12%); }
  .civil-jump > div { width: calc(100% - 2rem); }
  .civil-fit__grid { grid-template-columns: 1fr; }
  .civil-fit__media { grid-column: auto; min-height: 0; aspect-ratio: 3 / 2; }
  .civil-fit__guidance { min-height: 0; grid-template-rows: auto auto; }
  .civil-fit__card { padding: 1.25rem 1.5rem; }
  .civil-subject,
  .civil-subject:nth-child(even) { display: flex; min-height: 0; flex-direction: column; }
  .civil-subject:nth-child(even) .civil-subject__media { order: 0; }
  .civil-subject__media { min-height: 15rem; height: 50vw; }
  .civil-subject__copy { padding: 1.5rem; }
  .civil-years__grid { grid-template-columns: 1fr; }
  .civil-year__media { height: 11.5rem; }
  .civil-practice__gallery { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 17rem 10rem; }
  .civil-practice__lead { grid-column: 1 / -1; grid-row: auto; }
  .civil-labs { grid-template-columns: 1fr 1fr; }
  .civil-labs li:nth-child(3n) { border-right: 1px solid var(--civil-line); }
  .civil-labs li:nth-child(2n) { border-right: 0; }
  .civil-labs li:nth-child(-n+4) { border-bottom: 1px solid var(--civil-line); }
  .civil-careers { display: flex; width: calc(100% - 2rem); flex-direction: column; }
  .civil-careers { height: auto; margin-bottom: 0; }
  .civil-careers__media { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  .civil-careers__copy { padding: 1.5rem; }
  .civil-admissions__panel { padding: 1.5rem; }
  .civil-section.civil-faq { display: block; }
  .civil-faq .civil-section__intro { margin-bottom: 1.5rem; }
  .civil-final { display: block; padding: 3rem 1rem; }
  .civil-final .civil-actions { margin-top: 1.5rem; }
}

html[data-theme="dark"] body:is(.page-civil-redesign, .page-degree-redesign) {
  background: #17191d;
  color: #edf1f7;
}

html[data-theme="dark"] .civil-course-v2 {
  --civil-ink: #edf1f7;
  --civil-muted: #aeb8c7;
  --civil-paper: #17191d;
  --civil-card: #23262c;
  --civil-line: #3b414a;
  background: var(--civil-paper);
  color: var(--civil-ink);
}

html[data-theme="dark"] .civil-jump {
  border-color: var(--civil-line);
  background: #202329;
}

html[data-theme="dark"] .civil-jump a { color: #c7cfdb; }
html[data-theme="dark"] .civil-media { background: #343941; }
html[data-theme="dark"] .civil-fit::before { background: linear-gradient(180deg, #17191d 0%, #1d2025 100%); }
html[data-theme="dark"] .civil-fit__grid { border-color: #3d434c; box-shadow: 0 18px 48px rgb(0 0 0 / 28%); }
html[data-theme="dark"] .civil-fit__card--yes { border-color: #365846; background: #1d372c; }
html[data-theme="dark"] .civil-fit__card--yes .civil-card-label { color: #abd1b9; }
html[data-theme="dark"] .civil-fit__card--yes li::before { color: #8fc4a2; }
html[data-theme="dark"] .civil-subject { background: #22252b; }
html[data-theme="dark"] .civil-subject__copy li { background: #30343c; }
html[data-theme="dark"] .civil-labs { border-color: var(--civil-line); }
html[data-theme="dark"] .civil-labs li { border-color: var(--civil-line); background: #24272d; }
html[data-theme="dark"] .civil-careers { background: #22252b; }
html[data-theme="dark"] .civil-careers__copy li { border-color: #454b55; background: #30343c; }
html[data-theme="dark"] .civil-faq__list,
html[data-theme="dark"] .civil-faq details { border-color: var(--civil-line); }
