/*
 * Grad Loan Caps - main stylesheet
 * Aesthetic: academic catalogue / almanac. Ruled lines, tabular figures,
 * serif display numbers, warm paper, white surfaces, sparing academic blue.
 *
 * 01 Tokens               08 Article & layout       15 Front page
 * 02 Reset & base         09 Entry content          16 Calculator
 * 03 Accessibility        10 Tables                 17 Tracker & timeline
 * 04 Layout               11 Brand blocks           18 School pages
 * 05 Topbar & header      12 Cards & archive        19 Footer
 * 06 UI primitives        13 Author, related, comm. 20 Utilities & motion
 * 07 Breadcrumbs, byline  14 Forms, search, 404     21 Print
 */

/* ========== 01 Tokens ========== */
:root {
	--gc-ink: #1F2430;
	--gc-ink-2: #4A5060;
	--gc-paper: #F7F6F2;
	--gc-surface: #FFFFFF;
	--gc-accent: #1E4E79;
	--gc-accent-dark: #163A5B;
	--gc-accent-tint: #E6EDF4;
	--gc-rule: #D8D5CC;
	--gc-rule-strong: #B9B5A8;
	--gc-pro: #2F6B4F;
	--gc-pro-tint: #E5F0EA;
	--gc-grad: #9A5B13;
	--gc-grad-tint: #F6ECDD;
	--gc-contested: #8C2F39;
	--gc-contested-tint: #F5E3E5;
	--gc-font-serif: "Source Serif 4", Georgia, serif;
	--gc-font-sans: "Public Sans", system-ui, sans-serif;
	--gc-font-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
	--gc-measure: 68ch;
	--gc-col: 43rem; /* ~68ch of body text, fixed so smaller-type blocks align */
	--gc-wide: 1200px;
	--gc-radius: 3px;
	--gc-gutter: 20px;
	--gc-fs-sm: 0.875rem;
	--gc-fs-xs: 0.75rem;
	--gc-fs-base: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
	--gc-fs-lead: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem);
	--gc-fs-h3: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
	--gc-fs-h2: clamp(1.5rem, 1.3rem + 0.9vw, 1.875rem);
	--gc-fs-h1: clamp(2rem, 1.5rem + 2.2vw, 3rem);
	--gc-fs-display: clamp(2.25rem, 1.55rem + 3.1vw, 3.75rem);
	--gc-space: clamp(2.5rem, 1.8rem + 3vw, 4.5rem);
	--gc-ease: 160ms ease;
}

/* ========== 02 Reset & base ========== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 1.5rem; }
body {
	margin: 0;
	background: var(--gc-paper);
	color: var(--gc-ink);
	font: 400 var(--gc-fs-base)/1.65 var(--gc-font-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
.gc-site { display: flex; flex-direction: column; min-height: 100vh; overflow-x: clip; }
.gc-main { flex: 1 0 auto; }
img, svg, video, iframe { max-width: 100%; height: auto; }
img { display: block; }
svg { display: inline-block; vertical-align: middle; }
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-family: var(--gc-font-serif);
	font-weight: 600;
	line-height: 1.2;
	color: var(--gc-ink);
	text-wrap: balance;
}
h1 { font-size: var(--gc-fs-h1); letter-spacing: -0.01em; }
h2 { font-size: var(--gc-fs-h2); }
h3 { font-size: var(--gc-fs-h3); }
h4 { font-size: 1.0625rem; }
h5, h6 { font-size: 1rem; }
p, ul, ol, dl, figure, blockquote, pre, table { margin: 0 0 1.25rem; }
a { color: var(--gc-accent); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--gc-accent-dark); text-decoration-thickness: 2px; }
strong, b { font-weight: 600; }
small { font-size: var(--gc-fs-sm); }
hr { border: 0; border-top: 1px solid var(--gc-rule); margin: 2.5rem 0; }
time, .gc-num { font-variant-numeric: tabular-nums lining-nums; }
code, kbd, samp, pre { font-family: var(--gc-font-mono); font-size: 0.875em; }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
::selection { background: var(--gc-accent-tint); color: var(--gc-ink); }

/* ========== 03 Accessibility ========== */
:focus-visible { outline: 2px solid var(--gc-accent); outline-offset: 2px; }
:focus:not(:focus-visible) { outline: none; }
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.screen-reader-text:focus {
	clip: auto !important; clip-path: none; height: auto; width: auto; margin: 0;
	z-index: 100000; top: 0.5rem; left: 0.5rem; padding: 0.75rem 1rem;
	background: var(--gc-surface); color: var(--gc-ink); font-weight: 600;
}
.gc-skip {
	position: absolute; top: 0.5rem; left: 0.5rem; z-index: 1000;
	padding: 0.625rem 1rem; background: var(--gc-ink); color: var(--gc-paper);
	font-weight: 600; text-decoration: none; border-radius: var(--gc-radius);
	transform: translateY(-200%);
}
.gc-skip:focus { transform: none; color: var(--gc-paper); }

/* ========== 04 Layout ========== */
.gc-container { width: 100%; max-width: calc(var(--gc-wide) + 2 * var(--gc-gutter)); margin-inline: auto; padding-inline: var(--gc-gutter); }
.gc-narrow { max-width: var(--gc-measure); margin-inline: auto; }
.gc-section { padding-block: var(--gc-space) 0; }
.gc-section:last-child { padding-bottom: var(--gc-space); }
.gc-section__head {
	display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
	gap: 0.25rem 1.5rem; margin-bottom: 1.5rem; padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--gc-ink);
}
.gc-section__head h2 { margin: 0; }
.gc-section__head a { font-size: var(--gc-fs-sm); font-weight: 600; text-decoration: none; }
.gc-section__head a:hover { text-decoration: underline; }
.gc-section__head p { flex-basis: 100%; margin: 0; color: var(--gc-ink-2); font-size: var(--gc-fs-sm); }

/* ========== 05 Topbar & header ========== */
.gc-topbar { background: var(--gc-ink); color: #E9E7E0; font-size: var(--gc-fs-xs); letter-spacing: 0.01em; }
.gc-topbar .gc-container { padding-block: 0.5rem; }
.gc-topbar__status { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; }
.gc-topbar__status .gc-dot { margin-right: 0.125rem; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.85); }
.gc-topbar a { color: #FFFFFF; font-weight: 600; }
.gc-topbar a:hover { color: #FFFFFF; }

.gc-header { position: relative; z-index: 50; background: var(--gc-paper); border-bottom: 1px solid var(--gc-rule); }
.gc-header__inner { display: flex; align-items: center; gap: 0.75rem 1.5rem; min-height: 4.25rem; padding-block: 0.625rem; }
.gc-brand { display: inline-flex; flex-wrap: wrap; align-items: center; column-gap: 0.625rem; color: var(--gc-ink); text-decoration: none; margin-right: auto; min-width: 0; }
.gc-brand:hover { color: var(--gc-ink); }
.gc-brand__mark { width: 40px; height: 24px; flex: none; color: var(--gc-ink); }
.gc-brand__name { white-space: nowrap; font-family: var(--gc-font-serif); font-weight: 700; font-size: 1.25rem; line-height: 1.1; letter-spacing: -0.005em; }
.gc-brand { flex-wrap: nowrap; column-gap: 0.75rem; }
.gc-brand__icon { width: 40px; height: 40px; flex: none; display: block; }
.gc-brand__text { display: flex; flex-direction: column; gap: 0.1875rem; min-width: 0; }
.gc-brand__tag { white-space: nowrap; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gc-ink-2); line-height: 1.3; }

.gc-nav-toggle, .gc-search-toggle {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	width: 2.75rem; height: 2.75rem; padding: 0; background: transparent;
	border: 1px solid var(--gc-rule); border-radius: var(--gc-radius); color: var(--gc-ink); cursor: pointer;
}
.gc-nav-toggle:hover, .gc-search-toggle:hover, .gc-search-toggle[aria-expanded="true"] { border-color: var(--gc-ink); }
.gc-search-toggle svg { width: 1.125rem; height: 1.125rem; }
.gc-nav-toggle { flex-direction: column; gap: 4px; order: 3; }
.gc-nav-toggle__bar { display: block; width: 18px; height: 2px; background: currentColor; transition: transform var(--gc-ease), opacity var(--gc-ease); }
.gc-nav-open .gc-nav-toggle__bar:nth-child(1), .gc-nav-toggle[aria-expanded="true"] .gc-nav-toggle__bar:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.gc-nav-open .gc-nav-toggle__bar:nth-child(2), .gc-nav-toggle[aria-expanded="true"] .gc-nav-toggle__bar:nth-child(2) { opacity: 0; }
.gc-nav-open .gc-nav-toggle__bar:nth-child(3), .gc-nav-toggle[aria-expanded="true"] .gc-nav-toggle__bar:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.gc-search-toggle { order: 2; }
.gc-header__cta { order: 1; }

.gc-nav ul { list-style: none; margin: 0; padding: 0; }
.gc-nav a { display: block; color: var(--gc-ink); text-decoration: none; font-weight: 500; }
.gc-nav a:hover, .gc-nav .current-menu-item > a, .gc-nav .current-menu-ancestor > a, .gc-nav [aria-current] { color: var(--gc-accent); }

/* Mobile drop panel (<960px) */
@media (max-width: 959.98px) {
	.gc-nav {
		display: none; position: absolute; top: 100%; left: 0; right: 0;
		background: var(--gc-surface); border-bottom: 1px solid var(--gc-rule-strong);
		max-height: calc(100vh - 6rem); overflow-y: auto; overscroll-behavior: contain;
	}
	.gc-nav-open .gc-nav { display: block; animation: gc-drop 180ms ease-out; }
	.gc-nav__list { max-width: calc(var(--gc-wide) + 2 * var(--gc-gutter)); margin-inline: auto; padding: 0.5rem var(--gc-gutter) 1.25rem; }
	.gc-nav__list > li { border-bottom: 1px solid var(--gc-rule); }
	.gc-nav__list a { padding: 0.8125rem 0; font-size: 1.0625rem; }
	.gc-nav .sub-menu { padding: 0 0 0.625rem 1rem; border-left: 1px solid var(--gc-rule); margin-bottom: 0.5rem; }
	.gc-nav .sub-menu a { padding: 0.375rem 0; font-size: 0.9375rem; color: var(--gc-ink-2); }
}
@keyframes gc-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (max-width: 599.98px) {
	.gc-header .gc-header__cta { display: none; }
	.gc-brand__name { font-size: 1.125rem; }
	.gc-brand__icon { width: 36px; height: 36px; }
}
@media (max-width: 379.98px) { .gc-brand__tag { display: none; } }

/* Desktop nav (>=960px) */
@media (min-width: 960px) and (max-width: 1099.98px) {
	.gc-header .gc-header__cta, .gc-brand__tag { display: none; }
	.gc-nav__list { column-gap: 1rem !important; }
	.gc-nav__list > li > a { font-size: 0.875rem !important; }
}
@media (min-width: 960px) {
	.gc-nav-toggle { display: none; }
	.gc-brand { margin-right: 0; }
	.gc-nav { margin-left: auto; order: 0; }
	.gc-header__cta { order: 1; }
	.gc-search-toggle { order: 2; }
	.gc-nav__list { display: flex; gap: 0.25rem 1.375rem; }
	.gc-nav__list > li { position: relative; }
	.gc-nav__list > li > a { padding: 0.5rem 0; font-size: 0.9375rem; white-space: nowrap; border-bottom: 2px solid transparent; }
	.gc-nav__list > li > a:hover, .gc-nav__list > .current-menu-item > a, .gc-nav__list > .current-menu-ancestor > a { border-bottom-color: var(--gc-accent); }
	.gc-nav .sub-menu {
		position: absolute; top: 100%; left: -1rem; min-width: 15rem; padding: 0.5rem 0;
		background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 2px solid var(--gc-ink);
		visibility: hidden; opacity: 0; transform: translateY(4px); transition: opacity var(--gc-ease), transform var(--gc-ease), visibility var(--gc-ease);
	}
	.gc-nav li:hover > .sub-menu, .gc-nav li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: none; }
	.gc-nav .sub-menu a { padding: 0.4375rem 1rem; font-size: 0.875rem; }
	.gc-nav .sub-menu a:hover { background: var(--gc-paper); }
}

.gc-search-panel { border-top: 1px solid var(--gc-rule); background: var(--gc-surface); padding-block: 1rem; }
.gc-search-panel[hidden] { display: none; }
.gc-search-panel > * { max-width: calc(var(--gc-wide) + 2 * var(--gc-gutter)); margin-inline: auto; padding-inline: var(--gc-gutter); }

/* ========== 06 UI primitives: labels, kicker, buttons, badges, dots ========== */
/* Shared small-caps label (kickers, panel titles) */
.gc-label,
.gc-kicker, .gc-card__kicker, .gc-answer__label,
.gc-toc__title, .gc-toc > h2, .gc-toc > p:first-child,
.gc-content .gc-changes__title, .gc-changes__title,
.gc-block--sources > h2, .gc-block--sources > h3, .gc-block--sources > p:first-child, .gc-sources__title,
.widget-title, .widgettitle, .gc-article__aside .widget h2, .gc-article__aside .wp-block-heading,
.gc-hero__figure > figcaption, .gc-hero__figure [class*="__caption"], .gc-hero__figure [class*="__head"],
.gc-limits h3, .gc-limits [class*="__label"],
.gc-calc__form legend, .gc-calc__form h2, .gc-calc__form h3,
.gc-calc__result > h2, .gc-calc__result > h3, .gc-calc__label,
.gc-footer h2, .gc-footer h3, .gc-footer .widget-title, .gc-footer__title {
	font-family: var(--gc-font-sans); font-size: var(--gc-fs-xs); font-weight: 700;
	letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.4;
}
.gc-kicker, .gc-card__kicker, .gc-answer__label { margin: 0 0 0.5rem; font-weight: 600; line-height: 1.4; color: var(--gc-accent); }
.gc-kicker a { color: inherit; text-decoration: none; }
.gc-kicker a:hover { text-decoration: underline; }

.gc-btn, .wp-block-button__link, .wp-element-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 2.75rem; padding: 0.625rem 1.25rem; border: 1px solid var(--gc-accent); border-radius: var(--gc-radius);
	background: var(--gc-accent); color: #FFFFFF; font-family: var(--gc-font-sans); font-size: 0.9375rem; font-weight: 600;
	line-height: 1.2; white-space: nowrap; text-decoration: none; cursor: pointer; transition: background-color var(--gc-ease), border-color var(--gc-ease), color var(--gc-ease);
}
.gc-btn:hover, .wp-block-button__link:hover, .wp-element-button:hover { background: var(--gc-accent-dark); border-color: var(--gc-accent-dark); color: #FFFFFF; text-decoration: none; }
.gc-btn--ghost, .is-style-outline > .wp-block-button__link { background: transparent; color: var(--gc-ink); border-color: var(--gc-ink); }
.gc-btn--ghost:hover, .is-style-outline > .wp-block-button__link:hover { background: var(--gc-ink); border-color: var(--gc-ink); color: var(--gc-paper); }
.gc-btn--small { min-height: 2.25rem; padding: 0.4375rem 0.875rem; font-size: 0.8125rem; }
.gc-btn[disabled], .gc-btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; }

.gc-badge {
	display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.1875rem 0.5rem 0.1875rem 0.4375rem;
	border-left: 3px solid var(--gc-ink-2); border-radius: 0 var(--gc-radius) var(--gc-radius) 0; background: var(--gc-paper);
	color: var(--gc-ink); font-family: var(--gc-font-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em;
	text-transform: uppercase; line-height: 1.35; white-space: nowrap; vertical-align: middle;
}
.gc-badge--professional { border-color: var(--gc-pro); background: var(--gc-pro-tint); color: var(--gc-pro); }
.gc-badge--graduate { border-color: var(--gc-grad); background: var(--gc-grad-tint); color: #7E4A0F; }
.gc-badge--contested { border-color: var(--gc-contested); background: var(--gc-contested-tint); color: var(--gc-contested); }
.gc-dot { display: inline-block; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--gc-ink-2); flex: none; vertical-align: middle; }
.gc-dot--professional { background: var(--gc-pro); }
.gc-dot--graduate { background: var(--gc-grad); }
.gc-dot--contested { background: var(--gc-contested); }

/* ========== 07 Breadcrumbs & byline ========== */
.gc-breadcrumbs, .rank-math-breadcrumb { margin-bottom: 1.25rem; font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-breadcrumbs ol, .gc-breadcrumbs ul { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.gc-breadcrumbs li:not(:last-child)::after { content: "/"; margin: 0 0.5rem; color: var(--gc-rule-strong); }
.gc-breadcrumbs a, .rank-math-breadcrumb a { color: var(--gc-ink-2); text-decoration: none; }
.gc-breadcrumbs a:hover, .rank-math-breadcrumb a:hover { color: var(--gc-accent); text-decoration: underline; }
.rank-math-breadcrumb p { margin: 0; }
.rank-math-breadcrumb .separator { margin: 0 0.375rem; color: var(--gc-rule-strong); }
.gc-breadcrumbs [aria-current], .rank-math-breadcrumb .last { color: var(--gc-ink); }

.gc-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.875rem; font-size: var(--gc-fs-sm); color: var(--gc-ink-2); line-height: 1.45; }
.gc-byline__avatar {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--gc-ink); color: var(--gc-paper);
	font-family: var(--gc-font-serif); font-size: 0.9375rem; font-weight: 600; letter-spacing: 0.04em;
}
.gc-byline a { color: var(--gc-ink); font-weight: 600; text-decoration: none; }
.gc-byline a:hover { color: var(--gc-accent); text-decoration: underline; }
.gc-byline > :not(.gc-byline__avatar) { min-width: 0; }
.gc-byline p { margin: 0; }
.gc-byline time { color: var(--gc-ink); }

/* ========== 08 Article & layout ========== */
.gc-article { padding-block: clamp(1.5rem, 1rem + 2vw, 2.75rem) var(--gc-space); }
.gc-article__header { max-width: 52rem; margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--gc-rule); }
.gc-article__title { margin-bottom: 0.875rem; }
.gc-article__dek { margin: 0 0 1.5rem; max-width: 60ch; font-family: var(--gc-font-serif); font-size: var(--gc-fs-lead); line-height: 1.5; color: var(--gc-ink-2); }
.gc-article__thumb, .gc-article .post-thumbnail { margin: 0 0 2rem; }
.gc-article__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.gc-article__aside { min-width: 0; }
@media (min-width: 1100px) {
	.gc-article__layout { grid-template-columns: minmax(0, 1fr) 17rem; grid-template-areas: "content aside"; column-gap: 4rem; }
	.gc-article__layout > .gc-content { grid-area: content; }
	.gc-article__layout > .gc-article__aside { grid-area: aside; }
	.gc-article__aside { position: sticky; top: 1.5rem; align-self: start; max-height: calc(100vh - 3rem); overflow-y: auto; }
	.admin-bar .gc-article__aside { top: calc(32px + 1.5rem); }
}
.gc-toc { margin-bottom: 2rem; font-size: var(--gc-fs-sm); border-top: 2px solid var(--gc-ink); padding-top: 0.75rem; }
.gc-toc[hidden] { display: none; }
.gc-toc__title, .gc-toc > h2, .gc-toc > p:first-child { margin: 0 0 0.625rem; font-weight: 600; color: var(--gc-ink-2); }
.gc-toc ol, .gc-toc ul { list-style: none; margin: 0; padding: 0; }
.gc-toc li { margin: 0; }
.gc-toc li li a { padding-left: 1.75rem; font-size: 0.8125rem; }
.gc-toc a { display: block; padding: 0.3125rem 0 0.3125rem 0.875rem; border-left: 2px solid var(--gc-rule); color: var(--gc-ink-2); text-decoration: none; line-height: 1.4; }
.gc-toc a:hover { color: var(--gc-ink); border-left-color: var(--gc-rule-strong); }
.gc-toc a.is-active, .gc-toc a[aria-current] { color: var(--gc-accent); border-left-color: var(--gc-accent); font-weight: 600; }
.gc-article__footer { margin-top: 3rem; max-width: var(--gc-col); }
.gc-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 2rem; padding: 0; list-style: none; font-size: 0.8125rem; }
.gc-tags a, .gc-article__footer a[rel~="tag"] { display: inline-block; padding: 0.25rem 0.625rem; border: 1px solid var(--gc-rule); border-radius: var(--gc-radius); color: var(--gc-ink-2); text-decoration: none; background: var(--gc-surface); margin: 0 0.25rem 0.375rem 0; }
.gc-tags a:hover, .gc-article__footer a[rel~="tag"]:hover { border-color: var(--gc-accent); color: var(--gc-accent); }
.gc-page { padding-block: clamp(1.5rem, 1rem + 2vw, 2.75rem) var(--gc-space); }

/* ========== 09 Entry content ========== */
.gc-content { min-width: 0; font-size: var(--gc-fs-base); line-height: 1.65; }
.gc-content > * { max-width: var(--gc-col); margin-inline: auto; }
.gc-article__layout .gc-content > * { margin-inline: 0; }
.gc-content > :first-child { margin-top: 0; }
.gc-content > .gc-block--gap, .gc-content > .gc-table-wrap { max-width: var(--gc-col); }
.gc-content > .alignwide, .gc-content > .wp-block-table, .gc-content > .tablepress-wrap,
.gc-content > .gc-calc, .gc-content > .gc-block--calculator, .gc-content > .gc-block--professions, .gc-content > .gc-prof-grid, .gc-content > .gc-card-grid,
.gc-content > .wp-block-columns, .gc-content > .wp-block-group.alignwide { max-width: var(--gc-wide); }
.gc-content > .alignfull { max-width: none; width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.gc-article__layout .gc-content > .alignfull { width: auto; margin-inline: 0; }
.gc-content h2 { margin: 2.75rem 0 1rem; padding-top: 1.25rem; border-top: 1px solid var(--gc-rule); }
.gc-content h3 { margin: 2rem 0 0.625rem; }
.gc-content h4 { margin: 1.75rem 0 0.5rem; font-family: var(--gc-font-sans); font-weight: 700; font-size: 1rem; }
.gc-content h2 + h3 { margin-top: 1rem; }
.gc-content p { hyphens: manual; }
.gc-content > p:first-of-type:not([class]) { font-size: 1.0625em; }
.gc-content ul, .gc-content ol { padding-left: 1.375rem; }
.gc-content li { margin-bottom: 0.4375rem; padding-left: 0.25rem; }
.gc-content li > ul, .gc-content li > ol { margin: 0.4375rem 0 0; }
.gc-content ul > li::marker { color: var(--gc-accent); }
.gc-content ol > li::marker { font-family: var(--gc-font-serif); font-weight: 600; color: var(--gc-ink-2); font-variant-numeric: tabular-nums; }
.gc-content dt { font-weight: 600; }
.gc-content dd { margin: 0 0 0.75rem; }
.gc-content a { overflow-wrap: anywhere; }
.gc-content blockquote, .wp-block-quote {
	margin: 2rem 0; padding: 0.25rem 0 0.25rem 1.5rem; border-left: 2px solid var(--gc-ink);
	font-family: var(--gc-font-serif); font-size: 1.1875rem; line-height: 1.55; color: var(--gc-ink);
}
.gc-content blockquote p:last-of-type { margin-bottom: 0.5rem; }
.gc-content blockquote cite, .wp-block-quote cite { display: block; font-family: var(--gc-font-sans); font-style: normal; font-size: var(--gc-fs-sm); color: var(--gc-ink-2); }
.gc-content figure { margin: 2rem 0; }
.gc-content figcaption, .wp-element-caption, .wp-caption-text, .wp-block-image figcaption {
	margin-top: 0.625rem; padding-top: 0.5rem; border-top: 1px solid var(--gc-rule);
	font-size: 0.8125rem; line-height: 1.5; color: var(--gc-ink-2); text-align: left;
}
.wp-block-image img { height: auto; border-radius: 0; }
.wp-block-image.aligncenter, .aligncenter { margin-inline: auto; text-align: center; }
.alignleft { float: left; margin: 0.375rem 1.5rem 1rem 0; max-width: 50%; }
.alignright { float: right; margin: 0.375rem 0 1rem 1.5rem; max-width: 50%; }
@media (max-width: 599.98px) { .alignleft, .alignright { float: none; margin: 1.5rem 0; max-width: 100%; } }
.wp-caption { max-width: 100%; }
.gc-content :not(pre) > code {
	padding: 0.1em 0.35em; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-radius: var(--gc-radius);
	font-size: 0.85em; overflow-wrap: anywhere;
}
.gc-content pre, .wp-block-code {
	padding: 1rem 1.25rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-left: 3px solid var(--gc-ink);
	border-radius: 0; overflow-x: auto; line-height: 1.55; white-space: pre;
}
.gc-content pre code { padding: 0; border: 0; background: none; font-size: inherit; }
.gc-content hr, .wp-block-separator { border: 0; border-top: 1px solid var(--gc-rule); margin: 2.75rem auto; height: 0; background: none; opacity: 1; }
.gc-article__layout .gc-content hr { margin-inline: 0; }
.wp-block-separator.is-style-wide { max-width: none; border-top-color: var(--gc-rule-strong); }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.75rem 0; }
.wp-block-buttons .wp-block-button { margin: 0; }
.wp-block-button .wp-block-button__link { border-radius: var(--gc-radius); }
.wp-block-columns { display: flex; flex-wrap: wrap; gap: 2rem; margin-bottom: 1.75rem; }
.wp-block-column { flex: 1 1 16rem; min-width: 0; }
.wp-block-embed { margin: 2rem 0; }
.wp-block-group.has-background, .gc-content .has-background { padding: 1.25rem 1.5rem; }

/* FAQ accordion: core/details */
.wp-block-details, .gc-content details {
	margin: 0; padding: 0; border-top: 1px solid var(--gc-rule); background: transparent;
}
.gc-content details:last-of-type { border-bottom: 1px solid var(--gc-rule); margin-bottom: 1.75rem; }
.wp-block-details summary, .gc-content details summary {
	position: relative; display: block; padding: 1rem 2.5rem 1rem 0; cursor: pointer; list-style: none;
	font-family: var(--gc-font-serif); font-size: 1.125rem; font-weight: 600; line-height: 1.35; color: var(--gc-ink);
}
.gc-content details summary::-webkit-details-marker { display: none; }
.gc-content details summary::after {
	content: "+"; position: absolute; right: 0.25rem; top: 0.875rem; width: 1.5rem; height: 1.5rem;
	display: flex; align-items: center; justify-content: center; border: 1px solid var(--gc-rule-strong); border-radius: var(--gc-radius);
	font-family: var(--gc-font-sans); font-size: 1rem; font-weight: 500; line-height: 1; color: var(--gc-accent); background: var(--gc-surface);
}
.gc-content details[open] > summary::after { content: "\2212"; background: var(--gc-accent); border-color: var(--gc-accent); color: #FFFFFF; }
.gc-content details summary:hover { color: var(--gc-accent); }
.gc-content details > :not(summary) { margin-top: 0; padding-right: 2.5rem; color: var(--gc-ink-2); }
.gc-content details > :last-child { margin-bottom: 1.25rem; }

/* ========== 10 Tables ========== */
.gc-table-wrap, .tablepress-wrap {
	max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 1.75rem;
	border-top: 2px solid var(--gc-ink); background: var(--gc-surface);
}
.gc-table-wrap:focus-visible { outline-offset: 0; }
.gc-table, .gc-content table, .wp-block-table table, .tablepress {
	width: 100%; border-collapse: collapse; border-spacing: 0; background: var(--gc-surface); margin: 0;
	font-size: 0.9375rem; line-height: 1.45; font-variant-numeric: tabular-nums lining-nums;
}
.wp-block-table { margin: 2rem 0; overflow-x: auto; }
.wp-block-table > table { border-top: 2px solid var(--gc-ink); }
.gc-table-wrap > table, .gc-table-wrap .wp-block-table > table { border-top: 0; }
.gc-table th, .gc-table td, .gc-content table th, .gc-content table td, .wp-block-table th, .wp-block-table td, .tablepress th, .tablepress td {
	padding: 0.6875rem 0.875rem; border: 0; border-bottom: 1px solid var(--gc-rule); text-align: left; vertical-align: top;
}
.gc-table thead th, .gc-content table thead th, .wp-block-table thead th, .tablepress thead th, .tablepress tfoot th {
	background: var(--gc-paper); color: var(--gc-ink-2); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em;
	text-transform: uppercase; vertical-align: bottom; white-space: nowrap; border-bottom: 1px solid var(--gc-rule-strong);
}
.gc-table tbody th, .gc-content table tbody th { font-weight: 600; }
.gc-table tfoot td, .gc-table tfoot th, .gc-content table tfoot td, .gc-content table tfoot th, .wp-block-table tfoot td {
	border-top: 1px solid var(--gc-ink); border-bottom: 0; font-weight: 700; background: var(--gc-surface);
}
.wp-block-table thead { border-bottom: 0; }
.wp-block-table tfoot { border-top: 0; }
.gc-table--num td.is-num, .gc-table--num th.is-num, .gc-table td.is-num, .gc-content td.is-num, .has-text-align-right { text-align: right; white-space: nowrap; }
.gc-table--num td:not(:first-child), .gc-table--num th:not(:first-child) { text-align: right; white-space: nowrap; }
.gc-table--num td.gc-gap__bar { text-align: left; }
.gc-table--num td:first-child, .gc-table--num th:first-child { white-space: nowrap; }
.gc-table caption, .gc-content table caption { caption-side: top; padding: 0.75rem 0.875rem; text-align: left; font-size: var(--gc-fs-sm); color: var(--gc-ink-2); }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--gc-paper); }
.wp-block-table.is-style-stripes { border-bottom: 0; }
.wp-block-table figcaption { padding-inline: 0; }
@media (max-width: 699.98px) {
	.gc-table th, .gc-table td, .gc-content table th, .gc-content table td, .tablepress th, .tablepress td { padding: 0.625rem 0.6875rem; }
	.gc-table-wrap th:first-child, .gc-table-wrap td:first-child { position: sticky; left: 0; z-index: 1; background: var(--gc-surface); box-shadow: 1px 0 0 var(--gc-rule); }
	.gc-table-wrap thead th:first-child { background: var(--gc-paper); }
}

/* ========== 11 Brand blocks ========== */
.gc-block { margin: 2rem 0; font-size: 0.9375rem; line-height: 1.55; }
.gc-block > :last-child { margin-bottom: 0; }

/* Status bar */
.gc-block--status { padding: 1rem 1.25rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-left: 4px solid var(--gc-ink-2); }
.gc-status--professional { border-left-color: var(--gc-pro); }
.gc-status--graduate { border-left-color: var(--gc-grad); }
.gc-status--contested { border-left-color: var(--gc-contested); }
.gc-status__head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.375rem 0.75rem; margin-bottom: 0.625rem; }
.gc-status__date { font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-status__date time { color: var(--gc-ink); font-weight: 600; }
.gc-status__program { margin: 0 0 0.375rem; font-family: var(--gc-font-serif); font-size: 1.1875rem; font-weight: 600; line-height: 1.3; }
.gc-status__note { color: var(--gc-ink-2); }
.gc-status__note p { margin: 0 0 0.5rem; }
.gc-status__source { margin: 0.625rem 0 0; padding-top: 0.625rem; border-top: 1px dotted var(--gc-rule-strong); font-size: 0.8125rem; color: var(--gc-ink-2); }

/* Gap table */
.gc-block--gap { margin: 2.25rem 0; }
.gc-block--gap .gc-gap__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.75rem; margin: 0 0 0.75rem; font-family: var(--gc-font-serif); font-size: 1.375rem; font-weight: 600; color: var(--gc-ink); border: 0; padding: 0; }
.gc-gap__title span { font-family: var(--gc-font-sans); font-size: var(--gc-fs-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gc-ink-2); }
.gc-block--gap > .gc-table, .gc-block--gap > table { border-top: 2px solid var(--gc-ink); }
.gc-block--gap .gc-table td:last-child:not(.gc-gap__bar), .gc-gap__gap { color: var(--gc-contested); font-weight: 600; }
.gc-gap__bar { width: 24%; min-width: 6rem; vertical-align: middle !important; }
.gc-gap__bar span { position: relative; display: block; height: 0.5rem; background: var(--gc-contested-tint); box-shadow: inset 0 0 0 1px rgba(140, 47, 57, 0.25); }
.gc-gap__bar span::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: var(--gc-covered, 0%); background: var(--gc-accent); }
.gc-gap__note { margin: 0.75rem 0 0; font-size: 0.8125rem; color: var(--gc-ink-2); }

/* Options in order */
.gc-options { list-style: none; padding: 0 !important; counter-reset: none; }
.gc-options__item { position: relative; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: 1rem; margin: 0 !important; padding: 0 0 1.5rem !important; }
.gc-options__item::marker { content: none; }
.gc-options__item:not(:last-child)::before { content: ""; position: absolute; left: calc(1.25rem - 0.5px); top: 2.5rem; bottom: 0; border-left: 1px solid var(--gc-rule-strong); }
.gc-options__step {
	display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem;
	background: var(--gc-surface); border: 1px solid var(--gc-ink); border-radius: var(--gc-radius);
	font-family: var(--gc-font-serif); font-size: 1.125rem; font-weight: 600; font-variant-numeric: lining-nums tabular-nums;
}
.gc-options__item:first-child .gc-options__step { background: var(--gc-ink); color: var(--gc-paper); }
.gc-options__item h3 { margin: 0.3125rem 0 0.25rem !important; padding: 0; border: 0; font-size: 1.125rem; }
.gc-options__item p { margin: 0; color: var(--gc-ink-2); }

/* What changed log */
.gc-block--changes { padding: 1.25rem 1.25rem 0.5rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 2px solid var(--gc-ink); }
.gc-content .gc-changes__title, .gc-changes__title { margin: 0 0 0.5rem; padding: 0; border: 0; color: var(--gc-ink-2); }
.gc-changes__list { list-style: none; margin: 0; padding: 0 !important; }
.gc-changes__list li { display: grid; grid-template-columns: 6.75rem minmax(0, 1fr); gap: 0.25rem 1rem; margin: 0 !important; padding: 0.6875rem 0 !important; border-top: 1px solid var(--gc-rule); }
.gc-changes__list li:first-child { border-top: 0; }
.gc-changes__list li::marker { content: none; }
.gc-changes__date { font-family: var(--gc-font-mono); font-size: 0.8125rem; color: var(--gc-ink-2); padding-top: 0.125rem; }
@media (max-width: 479.98px) { .gc-changes__list li { grid-template-columns: minmax(0, 1fr); } }

/* Disclosure bar */
.gc-block--disclosure, .gc-disclosure {
	margin: 0 0 1.75rem; padding: 0.625rem 0.875rem; background: transparent; border-block: 1px solid var(--gc-rule);
	font-size: 0.8125rem; line-height: 1.5; color: var(--gc-ink-2);
}
.gc-block--disclosure p, .gc-disclosure p { margin: 0; }
.gc-block--disclosure strong, .gc-disclosure strong { color: var(--gc-ink); font-weight: 600; }
.gc-block--disclosure a, .gc-disclosure a { color: var(--gc-ink-2); }

/* Short answer */
.gc-block--answer { padding: 1.125rem 1.25rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-left: 3px solid var(--gc-accent); font-size: 1.0625rem; line-height: 1.6; }
.gc-block--answer p:not(.gc-answer__label):not(:last-child) { margin-bottom: 0.625rem; }
.gc-answer__label { margin-bottom: 0.375rem; }

/* Sources box */
.gc-block--sources { padding: 1rem 1.25rem; background: transparent; border: 1px solid var(--gc-rule-strong); font-size: 0.875rem; }
.gc-block--sources > h2, .gc-block--sources > h3, .gc-block--sources > p:first-child, .gc-sources__title { margin: 0 0 0.5rem !important; padding: 0 !important; border: 0 !important; color: var(--gc-ink-2); }
.gc-block--sources ul, .gc-block--sources ol { margin: 0; padding-left: 1.125rem; }
.gc-block--sources li { margin-bottom: 0.3125rem; }
.gc-block--sources a { overflow-wrap: anywhere; }

/* Notice (calculator noscript, empty states) */
.gc-notice { padding: 0.75rem 1rem; background: var(--gc-accent-tint); border-left: 3px solid var(--gc-accent); font-size: var(--gc-fs-sm); }
.gc-notice--warn { background: var(--gc-grad-tint); border-left-color: var(--gc-grad); }

/* ========== 12 Cards, archive, pagination ========== */
.gc-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr)); gap: 1.25rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.gc-card {
	position: relative; display: flex; flex-direction: column; min-width: 0; padding: 1.25rem 1.25rem 1.125rem;
	background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 3px solid var(--gc-rule); border-radius: 0;
	transition: border-color var(--gc-ease);
}
.gc-card:hover, .gc-card:focus-within { border-top-color: var(--gc-accent); }
.gc-card__kicker { margin-bottom: 0.5rem; }
.gc-card__title { margin: 0 0 0.5rem; font-size: 1.1875rem; line-height: 1.3; }
.gc-card__title a { color: var(--gc-ink); text-decoration: none; }
.gc-card__title a::after { content: ""; position: absolute; inset: 0; }
.gc-card__title a:hover { color: var(--gc-accent); }
.gc-card__title a:focus-visible { outline: none; }
.gc-card__title a:focus-visible::after { outline: 2px solid var(--gc-accent); outline-offset: 2px; }
.gc-card__excerpt { margin: 0 0 1rem; font-size: 0.9375rem; line-height: 1.55; color: var(--gc-ink-2); }
.gc-card__meta { margin: auto 0 0; padding-top: 0.625rem; border-top: 1px solid var(--gc-rule); font-size: var(--gc-fs-xs); color: var(--gc-ink-2); }
.gc-card__kicker a, .gc-card__meta a { position: relative; z-index: 1; }

.gc-archive { padding-block: clamp(1.5rem, 1rem + 2vw, 2.75rem) var(--gc-space); }
.gc-archive__header { margin-bottom: 2rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--gc-ink); }
.gc-archive__title { margin: 0 0 0.5rem; }
.gc-archive__header .archive-description, .gc-archive__description, .gc-archive__header p { max-width: var(--gc-measure); color: var(--gc-ink-2); margin: 0; }
.gc-archive__header .archive-description p { margin: 0 0 0.5rem; }

.gc-pagination, .navigation.pagination, .comments-pagination { margin: 2.5rem 0 0; font-size: 0.9375rem; }
.gc-pagination ul, .gc-pagination .nav-links, .pagination .nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.375rem; margin: 0; padding: 0; list-style: none; }
.gc-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 0.75rem;
	border: 1px solid var(--gc-rule); border-radius: var(--gc-radius); background: var(--gc-surface); color: var(--gc-ink);
	text-decoration: none; font-variant-numeric: tabular-nums;
}
.gc-pagination a.page-numbers:hover { border-color: var(--gc-ink); }
.gc-pagination .page-numbers.current { background: var(--gc-ink); border-color: var(--gc-ink); color: var(--gc-paper); font-weight: 600; }
.gc-pagination .page-numbers.dots { border-color: transparent; background: transparent; }

/* ========== 13 Author box, related, comments ========== */
.gc-author-box { display: flex; gap: 1rem 1.25rem; margin: 2.5rem 0; padding: 1.25rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 2px solid var(--gc-ink); font-size: 0.9375rem; }
.gc-author-box .gc-byline__avatar, .gc-author-box__avatar, .gc-author-box img { flex: none; width: 3.5rem; height: 3.5rem; border-radius: 50%; font-size: 1.125rem; }
.gc-author-box__avatar { display: inline-flex; align-items: center; justify-content: center; background: var(--gc-ink); color: var(--gc-paper); font-family: var(--gc-font-serif); font-weight: 600; }
.gc-author-box h2, .gc-author-box h3, .gc-author-box__name { margin: 0 0 0.375rem; padding: 0; border: 0; font-size: 1.125rem; }
.gc-author-box p { margin: 0 0 0.5rem; color: var(--gc-ink-2); }
.gc-author-box > div { min-width: 0; }
@media (max-width: 479.98px) { .gc-author-box { flex-direction: column; } }

.gc-related { margin-top: 3rem; }
.gc-related > h2, .gc-related__title { margin: 0 0 1.25rem; padding-bottom: 0.625rem; border-bottom: 1px solid var(--gc-ink); font-size: 1.375rem; }
.gc-related .gc-card-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }

.comments-area, .gc-comments { margin-top: 3rem; max-width: var(--gc-measure); }
.comments-title, .gc-comments__title, .comment-reply-title { font-size: 1.375rem; padding-bottom: 0.625rem; border-bottom: 1px solid var(--gc-ink); }
.comment-list, .comment-list .children { list-style: none; margin: 0; padding: 0; }
.comment-list .children { padding-left: clamp(1rem, 4vw, 2rem); border-left: 1px solid var(--gc-rule); }
.comment-body { padding: 1.25rem 0; border-bottom: 1px solid var(--gc-rule); font-size: 0.9375rem; }
.comment-meta, .comment-metadata { font-size: 0.8125rem; color: var(--gc-ink-2); }
.comment-author { display: flex; align-items: center; gap: 0.625rem; font-weight: 600; color: var(--gc-ink); }
.comment-author .avatar { border-radius: 50%; width: 2.25rem; height: 2.25rem; }
.comment-author .says { display: none; }
.comment-metadata { margin: 0.25rem 0 0.75rem; }
.comment-metadata a { color: var(--gc-ink-2); text-decoration: none; }
.comment-content { margin-top: 0.5rem; }
.reply a, .comment-reply-link { font-size: 0.8125rem; font-weight: 600; }
.comment-respond { margin-top: 2.5rem; }
.comment-form > p { margin-bottom: 1rem; }
.comment-form-cookies-consent { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.875rem; }
.comment-notes, .logged-in-as { font-size: 0.875rem; color: var(--gc-ink-2); }

/* ========== 14 Forms, search, widgets, 404 ========== */
label { display: inline-block; margin-bottom: 0.375rem; font-size: 0.875rem; font-weight: 600; color: var(--gc-ink); }
input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="number"], input[type="tel"], input[type="password"], select, textarea {
	display: block; width: 100%; min-height: 2.75rem; padding: 0.5625rem 0.75rem; border: 1px solid var(--gc-rule-strong);
	border-radius: var(--gc-radius); background: var(--gc-surface); color: var(--gc-ink); font-size: 1rem; line-height: 1.4;
	transition: border-color var(--gc-ease), box-shadow var(--gc-ease);
}
input[type="number"] { font-variant-numeric: tabular-nums; }
textarea { min-height: 8rem; resize: vertical; }
select {
	appearance: none; padding-right: 2.25rem; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231F2430' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 0.75rem center; background-size: 0.75rem;
}
input:hover, select:hover, textarea:hover { border-color: var(--gc-ink-2); }
input:focus, select:focus, textarea:focus { border-color: var(--gc-accent); box-shadow: 0 0 0 3px var(--gc-accent-tint); outline: none; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--gc-accent); outline-offset: 1px; }
input[type="checkbox"], input[type="radio"] { width: 1.125rem; height: 1.125rem; margin: 0.1875rem 0 0; accent-color: var(--gc-accent); flex: none; }
::placeholder { color: #767A85; opacity: 1; }
button, input[type="submit"] { cursor: pointer; }
input[type="submit"], .comment-form .submit, .search-submit {
	min-height: 2.75rem; padding: 0.625rem 1.25rem; border: 1px solid var(--gc-accent); border-radius: var(--gc-radius);
	background: var(--gc-accent); color: #FFFFFF; font-weight: 600; font-size: 0.9375rem;
}
input[type="submit"]:hover, .search-submit:hover { background: var(--gc-accent-dark); }

.search-form, .gc-search-form, .gc-searchform { display: flex; gap: 0.5rem; max-width: 40rem; margin: 0; }
.search-form label, .gc-search-form label { flex: 1 1 auto; margin: 0; min-width: 0; }
.search-form .search-field, .gc-search-form input[type="search"] { margin: 0; }
.search-form .search-submit, .gc-search-form button { flex: none; }
.wp-block-search__inside-wrapper { display: flex; gap: 0.5rem; }
.wp-block-search__button { margin: 0; }

.gc-404, .error404 .gc-main .gc-narrow { padding-block: var(--gc-space); }
.gc-404__code { margin: 0 0 0.5rem; font-family: var(--gc-font-serif); font-size: clamp(4rem, 3rem + 6vw, 7.5rem); font-weight: 600; line-height: 1; color: var(--gc-rule-strong); font-variant-numeric: lining-nums; }
.gc-404 .search-form { margin: 1.5rem 0 2rem; }
.gc-404 ul { padding-left: 1.25rem; }

.widget, .gc-article__aside .wp-block-group { margin: 0 0 2rem; font-size: 0.9375rem; }
.widget-title, .widgettitle, .gc-article__aside .widget h2, .gc-article__aside .wp-block-heading { margin: 0 0 0.75rem; padding: 0.625rem 0 0; border-top: 2px solid var(--gc-ink); color: var(--gc-ink-2); }
.widget ul, .wp-block-latest-posts, .wp-block-categories-list { list-style: none; margin: 0; padding: 0; }
.widget li, .wp-block-latest-posts li { padding: 0.4375rem 0; border-bottom: 1px solid var(--gc-rule); line-height: 1.4; }
.widget li a, .wp-block-latest-posts a { color: var(--gc-ink); text-decoration: none; }
.widget li a:hover, .wp-block-latest-posts a:hover { color: var(--gc-accent); text-decoration: underline; }
.widget select { margin-top: 0.25rem; }

/* ========== 15 Front page ========== */
.gc-hero { padding-block: clamp(2rem, 1.25rem + 3.5vw, 4.5rem); border-bottom: 1px solid var(--gc-rule); }
.gc-hero > .gc-container, .gc-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { .gc-hero > .gc-container, .gc-hero__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 4rem; } }
.gc-hero h1, .gc-hero__title { margin: 0 0 1.125rem; font-size: var(--gc-fs-display); font-weight: 600; line-height: 1.08; letter-spacing: -0.018em; }
.gc-hero__lead, .gc-hero__text, .gc-hero p.lead { margin: 0 0 1.75rem; max-width: 36rem; font-size: var(--gc-fs-lead); line-height: 1.55; color: var(--gc-ink-2); }
.gc-hero__actions, .gc-hero__buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.gc-hero__figure {
	margin: 0; padding: 1.5rem 1.5rem 1.25rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 2px solid var(--gc-ink);
	font-variant-numeric: tabular-nums lining-nums;
}
.gc-hero__figure > figcaption, .gc-hero__figure [class*="__caption"], .gc-hero__figure [class*="__head"] { margin: 0 0 1rem; padding: 0; border: 0; font-weight: 600; color: var(--gc-ink-2); }
.gc-hero__figure [class*="__row"] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0.375rem 1rem; padding: 0.875rem 0; border-top: 1px solid var(--gc-rule); }
.gc-hero__figure [class*="__row"]:first-of-type { border-top: 0; padding-top: 0.25rem; }
.gc-hero__figure [class*="__label"] { font-size: 0.875rem; color: var(--gc-ink-2); }
.gc-hero__figure [class*="__value"], .gc-hero__figure [class*="__amount"] { font-family: var(--gc-font-serif); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); font-weight: 600; line-height: 1.1; text-align: right; }
.gc-hero__figure [class*="__bar"] { grid-column: 1 / -1; position: relative; display: block; height: 0.625rem; background: var(--gc-paper); box-shadow: inset 0 0 0 1px var(--gc-rule); }
.gc-hero__figure [class*="__bar"] > span, .gc-hero__figure [class*="__fill"] { display: block; height: 100%; width: var(--gc-w, 100%); background: var(--gc-ink); }
.gc-hero__figure [class*="--limit"] [class*="__bar"] > span, .gc-hero__figure [class*="--federal"] [class*="__bar"] > span { background: var(--gc-accent); }
.gc-hero__figure [class*="--gap"] [class*="__value"], .gc-hero__figure [class*="--gap"] [class*="__amount"] { color: var(--gc-contested); }
.gc-hero__figure [class*="--gap"] [class*="__bar"] > span { background: var(--gc-contested); }
.gc-hero__figure [class*="__row"][class*="--gap"] { border-top: 1px solid var(--gc-ink); }
.gc-hero__figure [class*="__note"], .gc-hero__figure > p:last-child { margin: 0.875rem 0 0; font-size: var(--gc-fs-xs); color: var(--gc-ink-2); }

/* Markup: section.gc-limits > .gc-container > h2.__title + .__grid > .__panel + p.__note */
.gc-limits { padding-block: var(--gc-space) 0; }
.gc-limits__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
@media (min-width: 720px) { .gc-limits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gc-limits__panel {
	position: relative; padding: 1.5rem 1.5rem 1.25rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 3px solid var(--gc-ink);
	font-variant-numeric: tabular-nums lining-nums; min-width: 0;
}
.gc-limits__panel--graduate { border-top-color: var(--gc-grad); }
.gc-limits__panel--professional { border-top-color: var(--gc-pro); }
.gc-limits h3, .gc-limits [class*="__label"] { margin: 0 0 0.75rem; color: var(--gc-ink-2); }
.gc-limits [class*="__num"], .gc-limits [class*="__value"], .gc-limits [class*="__amount"] { display: block; font-family: var(--gc-font-serif); font-size: clamp(2.25rem, 1.6rem + 2.8vw, 3.5rem); font-weight: 600; line-height: 1; letter-spacing: -0.02em; color: var(--gc-ink); }
.gc-limits [class*="__unit"], .gc-limits [class*="__per"] { font-family: var(--gc-font-sans); font-size: 0.9375rem; font-weight: 500; letter-spacing: 0; color: var(--gc-ink-2); }
.gc-limits [class*="__total"], .gc-limits [class*="__aggregate"] { display: block; margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--gc-rule); font-size: 0.9375rem; color: var(--gc-ink-2); }
.gc-limits [class*="__total"] strong, .gc-limits [class*="__aggregate"] strong { font-family: var(--gc-font-serif); font-size: 1.25rem; color: var(--gc-ink); }
.gc-limits p { margin: 0.5rem 0 0; font-size: 0.875rem; color: var(--gc-ink-2); }
.gc-limits .gc-limits__note { margin: 1rem 0 0; max-width: var(--gc-measure); font-size: var(--gc-fs-sm); color: var(--gc-ink-2); }

.gc-prof-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--gc-rule); border-left: 1px solid var(--gc-rule); }
@media (min-width: 600px) { .gc-prof-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .gc-prof-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.gc-prof-grid > li { display: flex; margin: 0; padding: 0; }
.gc-prof-tile {
	position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 0.25rem; width: 100%; min-width: 0;
	padding: 1rem 0.875rem 0.875rem; background: var(--gc-surface); border-right: 1px solid var(--gc-rule); border-bottom: 1px solid var(--gc-rule);
	color: var(--gc-ink); text-decoration: none; transition: background-color var(--gc-ease), box-shadow var(--gc-ease);
	box-shadow: inset 0 3px 0 var(--gc-rule-strong);
}
.gc-prof-tile--professional { box-shadow: inset 0 3px 0 var(--gc-pro); }
.gc-prof-tile--graduate { box-shadow: inset 0 3px 0 var(--gc-grad); }
.gc-prof-tile--contested { box-shadow: inset 0 3px 0 var(--gc-contested); }
.gc-prof-tile:hover { background: var(--gc-paper); color: var(--gc-ink); }
.gc-prof-tile:hover .gc-prof-tile__name { color: var(--gc-accent); text-decoration: underline; text-underline-offset: 0.18em; }
.gc-prof-tile:focus-visible { outline-offset: -2px; z-index: 1; }
.gc-prof-tile__code { font-family: var(--gc-font-serif); font-size: clamp(1.5rem, 1.25rem + 0.9vw, 1.875rem); font-weight: 600; line-height: 1.05; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.gc-prof-tile__name { font-size: 0.875rem; font-weight: 500; line-height: 1.3; }
.gc-prof-tile__limit { margin-top: auto; padding-top: 0.5rem; font-size: 0.8125rem; color: var(--gc-ink-2); font-variant-numeric: tabular-nums lining-nums; }
.gc-prof-tile .gc-badge { margin-top: 0.375rem; font-size: 0.625rem; }
.gc-prof-legend, .gc-prof-grid + p { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: 0.875rem 0 0; font-size: 0.8125rem; color: var(--gc-ink-2); }

.gc-changes-feed { margin: 0; padding: 0; list-style: none; background: var(--gc-surface); border: 1px solid var(--gc-rule); }
.gc-changes-feed ul, .gc-changes-feed ol { margin: 0; padding: 0; list-style: none; }
.gc-changes-feed li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 0.25rem 1.25rem; align-items: baseline; margin: 0; padding: 0.875rem 1.25rem; border-top: 1px solid var(--gc-rule); }
.gc-changes-feed li:first-child { border-top: 0; }
.gc-changes-feed time { font-family: var(--gc-font-mono); font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-changes-feed a { color: var(--gc-ink); font-weight: 600; text-decoration: none; }
.gc-changes-feed a:hover { color: var(--gc-accent); text-decoration: underline; }
.gc-changes-feed p { margin: 0.125rem 0 0; font-size: 0.875rem; color: var(--gc-ink-2); }
.gc-changes-feed .gc-badge { margin-right: 0.5rem; }
@media (max-width: 559.98px) { .gc-changes-feed li { grid-template-columns: minmax(0, 1fr); padding-inline: 1rem; } }

.gc-calc-teaser { padding-block: var(--gc-space); margin-top: var(--gc-space); background: var(--gc-surface); border-block: 1px solid var(--gc-rule); }
.gc-calc-teaser .gc-calc__result { background: var(--gc-paper); }
.gc-calc-teaser + .gc-section { padding-top: var(--gc-space); }
.gc-calc-teaser + .gc-band { margin-top: 0; }

.gc-latest .gc-card-grid { margin-bottom: 0; }

/* Markup: section.gc-trust > .gc-container > h2.__title + .__grid > .__col */
.gc-trust__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem 2.5rem; }
@media (min-width: 760px) { .gc-trust__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gc-trust__col { padding-top: 1rem; border-top: 2px solid var(--gc-ink); min-width: 0; }
.gc-trust h3 { margin: 0 0 0.5rem; font-size: 1.25rem; }
.gc-trust p { margin: 0 0 0.75rem; font-size: 0.9375rem; color: var(--gc-ink-2); }
.gc-trust a { font-size: 0.9375rem; font-weight: 600; }
.gc-trust ul { margin: 0; padding: 0; list-style: none; font-size: 0.9375rem; }
.gc-trust li { padding: 0.25rem 0; }

.gc-band { margin-top: var(--gc-space); padding-block: clamp(2rem, 1.5rem + 2vw, 3rem); background: var(--gc-accent-tint); border-top: 1px solid #C9D6E3; }
.gc-band > .gc-container, .gc-band__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem 3rem; align-items: center; }
@media (min-width: 860px) { .gc-band > .gc-container, .gc-band__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.gc-band h2 { margin: 0 0 0.375rem; font-size: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem); }
.gc-band p { margin: 0; color: var(--gc-ink-2); }
.gc-main > .gc-band:last-child { margin-bottom: 0; }

/* Subscribe form (band + footer) */
.gc-subscribe { min-width: 0; }
.gc-subscribe form, form.gc-subscribe { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gc-subscribe label { flex-basis: 100%; margin-bottom: 0; }
.gc-subscribe input[type="email"], .gc-subscribe input[type="text"] { flex: 1 1 12rem; width: auto; min-width: 0; }
.gc-subscribe button, .gc-subscribe input[type="submit"], .gc-subscribe .gc-btn { flex: none; }
.gc-subscribe p, .gc-subscribe small, .gc-subscribe__note { flex-basis: 100%; margin: 0.25rem 0 0; font-size: var(--gc-fs-xs); color: var(--gc-ink-2); }
.gc-subscribe h2, .gc-subscribe h3, .gc-subscribe__title { flex-basis: 100%; margin: 0 0 0.25rem; font-size: 1.125rem; }

/* ========== 16 Calculator ========== */
.gc-calc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 2rem 0; font-size: 0.9375rem; }
@media (min-width: 900px) { .gc-calc { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 2.5rem; align-items: start; } }
.gc-calc__form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin: 0; padding: 1.25rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 2px solid var(--gc-ink); }
@media (min-width: 480px) and (max-width: 899.98px) { .gc-calc__form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gc-calc__form > *, .gc-calc__field { min-width: 0; margin: 0; }
.gc-calc__form fieldset { border: 0; padding: 0; margin: 0; }
.gc-calc__form legend, .gc-calc__form h2, .gc-calc__form h3 { grid-column: 1 / -1; margin: 0; padding: 0; border: 0; color: var(--gc-ink-2); }
.gc-calc__form label { display: block; }
.gc-calc__form .gc-calc__check, .gc-calc__form label:has(> input[type="checkbox"]) { grid-column: 1 / -1; display: flex; gap: 0.625rem; align-items: flex-start; font-weight: 500; line-height: 1.45; }
.gc-calc__form small, .gc-calc__hint { display: block; margin-top: 0.25rem; font-size: var(--gc-fs-xs); font-weight: 400; color: var(--gc-ink-2); }
.gc-calc__form button, .gc-calc__form [type="submit"], .gc-calc__actions { grid-column: 1 / -1; }
.gc-calc__result { min-width: 0; padding: 1.25rem 1.25rem 1.5rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 2px solid var(--gc-contested); font-variant-numeric: tabular-nums lining-nums; }
.gc-calc__result > h2, .gc-calc__result > h3, .gc-calc__label { margin: 0 0 0.25rem; padding: 0; border: 0; color: var(--gc-ink-2); }
.gc-calc__total { display: block; margin: 0 0 0.5rem; font-family: var(--gc-font-serif); font-size: clamp(2.75rem, 2rem + 3.5vw, 4.5rem); font-weight: 600; line-height: 1; letter-spacing: -0.025em; color: var(--gc-contested); }
/* Zero-gap state: JS toggles .gc-calc--no-gap on the root; .is-zero / [data-zero] kept as aliases. */
.gc-calc__total.is-zero, .gc-calc__total[data-zero], .gc-calc--no-gap .gc-calc__total { color: var(--gc-pro); }
.gc-calc--no-gap .gc-calc__result { border-top-color: var(--gc-pro); }
.gc-calc__summary { margin: 0 0 1.25rem; font-size: 1rem; color: var(--gc-ink); }
.gc-calc__bar { display: flex; width: 100%; height: 1.25rem; margin: 1.25rem 0 0.625rem; overflow: hidden; background: var(--gc-paper); box-shadow: inset 0 0 0 1px var(--gc-rule); }
.gc-calc__bar > span { display: block; height: 100%; min-width: 0; transition: width 300ms ease; }
.gc-calc__bar-covered { background: var(--gc-accent); }
.gc-calc__bar-scholar { background: var(--gc-pro); }
.gc-calc__bar-gap { background: var(--gc-contested); }
.gc-calc__legend { display: flex; flex-wrap: wrap; gap: 0.375rem 1.25rem; margin: 0 0 1.25rem; padding: 0; list-style: none; font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-calc__legend li { display: inline-flex; align-items: center; gap: 0.375rem; margin: 0; }
.gc-calc__legend li::before, .gc-calc__swatch { content: ""; display: inline-block; width: 0.75rem; height: 0.75rem; background: var(--gc-ink-2); }
.gc-calc__legend [class*="covered"]::before, .gc-calc__swatch--covered { background: var(--gc-accent); }
.gc-calc__legend [class*="scholar"]::before, .gc-calc__swatch--scholar { background: var(--gc-pro); }
.gc-calc__legend [class*="gap"]::before, .gc-calc__swatch--gap { background: var(--gc-contested); }
.gc-calc__result .gc-table { margin: 0 0 1.25rem; border-top: 1px solid var(--gc-ink); font-size: 0.875rem; }
.gc-calc__result .gc-table-wrap { margin-bottom: 1.25rem; }
.gc-calc__result .gc-table-wrap .gc-table { margin: 0; border-top: 0; }
.gc-calc__note { margin: 0 0 1rem; padding: 0.75rem 1rem; background: var(--gc-paper); border-left: 3px solid var(--gc-ink-2); font-size: 0.875rem; color: var(--gc-ink-2); }
.gc-calc__legacy, .gc-calc__legacy-note { margin: 0 0 1rem; padding: 0.75rem 1rem; background: var(--gc-grad-tint); border-left: 3px solid var(--gc-grad); font-size: 0.875rem; }
.gc-calc__note:empty, .gc-calc__note[hidden], .gc-calc__legacy[hidden], .gc-calc__legacy-note[hidden] { display: none; }
.gc-calc__next, .gc-calc__steps { margin: 0; padding: 1rem 0 0; border-top: 1px solid var(--gc-rule); list-style: none; font-size: 0.9375rem; }
.gc-calc__next li, .gc-calc__steps li { padding: 0.25rem 0; }
.gc-calc__next a::after, .gc-calc__steps a::after { content: " \2192"; }
.gc-calc__illustrative, .gc-calc__disclaimer { margin: 0.75rem 0 0; font-size: var(--gc-fs-xs); color: var(--gc-ink-2); }
.gc-calc noscript, .gc-calc__noscript { display: block; grid-column: 1 / -1; padding: 0.75rem 1rem; background: var(--gc-accent-tint); border-left: 3px solid var(--gc-accent); font-size: var(--gc-fs-sm); }

/* ========== 17 Tracker & timeline ========== */
.gc-tracker { padding-block: clamp(1.5rem, 1rem + 2vw, 2.75rem) var(--gc-space); }
.gc-tracker__intro { max-width: var(--gc-measure); margin-bottom: 2rem; }
.gc-tracker__intro p { font-size: var(--gc-fs-lead); color: var(--gc-ink-2); line-height: 1.55; }
.gc-filter, .gc-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 1rem; }
.gc-filter input[type="search"], .gc-filter input[type="text"], .gc-filters input[type="search"], .gc-filters input[type="text"] { flex: 1 1 16rem; width: auto; max-width: 24rem; }
.gc-filter label, .gc-filters label { margin: 0; }
.gc-filter__group, .gc-filter [role="group"] { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.gc-filter button, button.gc-filter, .gc-filters button {
	display: inline-flex; align-items: center; gap: 0.375rem; min-height: 2.25rem; padding: 0.375rem 0.75rem;
	border: 1px solid var(--gc-rule-strong); border-radius: var(--gc-radius); background: var(--gc-surface); color: var(--gc-ink);
	font-size: 0.8125rem; font-weight: 600; cursor: pointer;
}
.gc-filter button:hover, button.gc-filter:hover, .gc-filters button:hover { border-color: var(--gc-ink); }
.gc-filter button[aria-pressed="true"], .gc-filter button.is-active, button.gc-filter[aria-pressed="true"], button.gc-filter.is-active, .gc-filters button[aria-pressed="true"], .gc-filters button.is-active { background: var(--gc-ink); border-color: var(--gc-ink); color: var(--gc-paper); }
.gc-filter__count, .gc-tracker__count { margin: 0 0 0.75rem; font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-tracker .gc-table td { vertical-align: middle; }
.gc-tracker .gc-table td:first-child { font-weight: 600; }
.gc-tracker tr[hidden] { display: none; }
.gc-cip, .gc-tracker code, .gc-mono { font-family: var(--gc-font-mono); font-size: 0.8125rem; color: var(--gc-ink-2); background: none; border: 0; padding: 0; white-space: nowrap; }

.gc-timeline { position: relative; margin: 1.5rem 0 2rem; padding: 0 0 0 1.75rem !important; list-style: none; }
.gc-timeline::before { content: ""; position: absolute; left: 0.3125rem; top: 0.5rem; bottom: 0.5rem; border-left: 1px solid var(--gc-rule-strong); }
.gc-timeline > li { position: relative; margin: 0 0 1.5rem !important; padding: 0 !important; max-width: var(--gc-measure); }
.gc-timeline > li::marker { content: none; }
.gc-timeline > li::before { content: ""; position: absolute; left: -1.75rem; top: 0.4375rem; width: 0.6875rem; height: 0.6875rem; background: var(--gc-paper); border: 2px solid var(--gc-ink); border-radius: 50%; }
.gc-timeline > li.is-active::before, .gc-timeline > li[class*="--contested"]::before { border-color: var(--gc-contested); background: var(--gc-contested); }
.gc-timeline > li[class*="--professional"]::before, .gc-timeline > li[class*="--injunction"]::before { border-color: var(--gc-pro); }
.gc-timeline time, .gc-timeline__date { display: block; font-family: var(--gc-font-mono); font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-timeline h3, .gc-timeline__title, .gc-timeline strong { display: block; margin: 0.125rem 0 0.25rem; padding: 0; border: 0; font-family: var(--gc-font-serif); font-size: 1.125rem; font-weight: 600; line-height: 1.35; }
.gc-timeline p { margin: 0; font-size: 0.9375rem; color: var(--gc-ink-2); }
.gc-timeline .gc-badge { margin-top: 0.375rem; }

/* ========== 18 Single school page ========== */
.gc-school__header { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; }
.gc-school__header h1 { flex-basis: 100%; }
.gc-facts, .gc-key-facts, .gc-school dl, .single-gc_school .gc-article__header + * dl:first-of-type {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 0; margin: 0 0 2rem; padding: 0;
	background: var(--gc-surface); border: 1px solid var(--gc-rule); border-top: 2px solid var(--gc-ink); font-variant-numeric: tabular-nums lining-nums;
}
.gc-facts > div, .gc-key-facts > div, .gc-school dl > div { padding: 1rem 1.125rem; border-right: 1px solid var(--gc-rule); border-bottom: 1px solid var(--gc-rule); margin: 0 -1px -1px 0; min-width: 0; }
.gc-facts dt, .gc-key-facts dt, .gc-school dt { margin: 0 0 0.375rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gc-ink-2); }
.gc-facts dd, .gc-key-facts dd, .gc-school dd { margin: 0; font-family: var(--gc-font-serif); font-size: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem); font-weight: 600; line-height: 1.15; color: var(--gc-ink); }
.gc-facts dd small, .gc-key-facts dd small { display: block; font-family: var(--gc-font-sans); font-size: var(--gc-fs-xs); font-weight: 400; color: var(--gc-ink-2); margin-top: 0.25rem; }
.gc-facts [class*="--gap"] dd, .gc-facts dd.is-gap, .gc-key-facts dd.is-gap { color: var(--gc-contested); }
.gc-school__others, .gc-school__sources { margin-top: 2.5rem; }
.gc-school__sources { font-size: 0.8125rem; color: var(--gc-ink-2); padding-top: 0.75rem; border-top: 1px solid var(--gc-rule); }

/* ========== 19 Footer ========== */
.gc-footer { margin-top: auto; background: var(--gc-ink); color: #E9E7E0; font-size: 0.9375rem; }
.gc-main + .gc-footer { margin-top: 0; }
.gc-footer a { color: #FFFFFF; text-decoration: none; }
.gc-footer a:hover { color: #FFFFFF; text-decoration: underline; }
.gc-footer :focus-visible { outline-color: #9DC0E2; }
.gc-footer__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.25rem; padding-block: clamp(2.5rem, 2rem + 2vw, 3.75rem); }
@media (min-width: 640px) { .gc-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .gc-footer__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.8fr) minmax(0, 0.8fr) minmax(0, 1.3fr); gap: 3rem; } }
.gc-footer__grid > * { min-width: 0; }
.gc-footer .gc-brand { color: #FFFFFF; margin-bottom: 1rem; }
.gc-footer .gc-brand__mark { color: #FFFFFF; }
.gc-footer .gc-brand__mark [stroke="#1E4E79"] { stroke: #8FB6DC; } /* assets/img/mark.svg variant */
.gc-footer .gc-mark__limit, .gc-footer .gc-brand__mark .gc-mark__limit { fill: #8FB6DC; } /* inline gradcaps_mark_svg() */
.gc-footer .gc-brand__tag { color: #B9BCC6; }
.gc-footer p { margin: 0 0 0.75rem; color: #C9CBD2; line-height: 1.55; }
.gc-footer h2, .gc-footer h3, .gc-footer .widget-title, .gc-footer__title { margin: 0 0 0.875rem; padding: 0 0 0.625rem; border: 0; border-bottom: 1px solid rgba(247, 246, 242, 0.18); color: #B9BCC6; }
.gc-footer ul { margin: 0; padding: 0; list-style: none; }
.gc-footer li { margin: 0; padding: 0.3125rem 0; border: 0; }
.gc-footer .widget li { border: 0; }
.gc-footer .gc-subscribe { padding: 1.25rem; border: 1px solid rgba(247, 246, 242, 0.2); }
.gc-footer .gc-subscribe h2, .gc-footer .gc-subscribe h3 { border: 0; padding: 0; margin-bottom: 0.5rem; font-family: var(--gc-font-serif); font-size: 1.125rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: #FFFFFF; }
.gc-footer .gc-subscribe label { color: #E9E7E0; }
.gc-footer .gc-subscribe p, .gc-footer .gc-subscribe small, .gc-footer .gc-subscribe__note { color: #B9BCC6; }
.gc-footer input[type="email"], .gc-footer input[type="text"] { background: #2A303D; border-color: #4A5060; color: #FFFFFF; }
.gc-footer input::placeholder { color: #9A9EA9; }
.gc-footer input:focus { box-shadow: 0 0 0 3px rgba(143, 182, 220, 0.3); border-color: #8FB6DC; }
.gc-footer .gc-btn, .gc-footer button[type="submit"], .gc-footer input[type="submit"] { background: var(--gc-paper); border-color: var(--gc-paper); color: var(--gc-ink); }
.gc-footer .gc-btn:hover, .gc-footer button[type="submit"]:hover { background: #FFFFFF; color: var(--gc-ink); text-decoration: none; }
.gc-footer__legal { padding-block: 1.25rem 1.75rem; border-top: 1px solid rgba(247, 246, 242, 0.16); font-size: 0.8125rem; color: #B9BCC6; }
.gc-footer__legal > .gc-container, .gc-footer__legal-inner { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.75rem 2rem; }
.gc-footer__legal ul { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.gc-footer__legal li { padding: 0; }
.gc-footer__legal a { color: #E9E7E0; }
.gc-footer__legal p { margin: 0; color: #B9BCC6; font-size: 0.8125rem; }
.gc-footer__note { flex-basis: 100%; max-width: 72ch; }

/* ========== 19b Integration: markup hooks from templates & JS ========== */
/* Logo mark (inline gradcaps_mark_svg(): limit marker is a filled rect) */
.gc-mark__limit { fill: var(--gc-accent); }
.gc-brand--logo { display: inline-flex; align-items: center; }
.gc-brand--logo img, .gc-brand--logo .custom-logo { display: block; width: auto; max-height: 3rem; }
.gc-footer .gc-brand--logo img { max-height: 2.5rem; }

/* Archive-type pages (index, archive, search, schools): top/bottom rhythm */
.gc-main > .gc-container > .gc-archive__header:first-child { margin-top: clamp(1.5rem, 1rem + 2vw, 2.75rem); }
.gc-main > .gc-container:has(> .gc-archive__header) { padding-bottom: var(--gc-space); }
.gc-empty { padding-block: 1rem 2rem; color: var(--gc-ink-2); }
.gc-empty .search-form, .gc-empty .gc-searchform { margin-top: 1rem; }
.gc-404__links li { padding: 0.25rem 0; }

/* Article media, updated line, page links */
.gc-article__media { margin: 0 0 2rem; max-width: 52rem; }
.gc-article__media img { width: 100%; height: auto; }
.gc-article__media figcaption { margin-top: 0.625rem; padding-top: 0.5rem; border-top: 1px solid var(--gc-rule); font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-article__updated { margin: 0; font-size: var(--gc-fs-sm); color: var(--gc-ink-2); }
.gc-article__updated time { color: var(--gc-ink); font-weight: 600; }
.gc-page-links { display: flex; flex-wrap: wrap; gap: 0.375rem; margin: 2rem 0; font-size: 0.9375rem; }
.gc-page-links a, .gc-page-links > .post-page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; height: 2.25rem; padding: 0 0.625rem; border: 1px solid var(--gc-rule); border-radius: var(--gc-radius); background: var(--gc-surface); text-decoration: none; font-variant-numeric: tabular-nums; }
.gc-page-links .current { background: var(--gc-ink); border-color: var(--gc-ink); color: var(--gc-paper); }

/* Templates whose content sits under a left-aligned header: align content left too */
.gc-calc-page .gc-content > *, .gc-tracker .gc-content > *, .gc-method .gc-content > *, .gc-front-content .gc-content > * { margin-inline: 0; }
.gc-calc-page__intro { margin-bottom: 1.5rem; }
.gc-method > h2 { margin: 0 0 1rem; padding-top: 1.25rem; border-top: 1px solid var(--gc-ink); }
.gc-method .gc-content { max-width: var(--gc-col); font-size: 0.9375rem; }
.gc-method .gc-content li { color: var(--gc-ink-2); }

/* Profession page intro (status bar + calculator CTA) */
.gc-profession-intro { margin: 0 0 2rem; max-width: 52rem; }
.gc-profession-intro .gc-block--status { margin: 0 0 1rem; }
.gc-profession-intro__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; margin: 0; }
.gc-profession-intro__limits { font-size: var(--gc-fs-sm); color: var(--gc-ink-2); font-variant-numeric: tabular-nums lining-nums; }

/* Cards with a thumbnail */
.gc-card__media { display: block; margin: -1.25rem -1.25rem 1rem; border-bottom: 1px solid var(--gc-rule); background: var(--gc-paper); }
.gc-card__media img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

/* Disclosure, sources, options */
.gc-disclosure__label { margin-right: 0.375rem; }
.gc-disclosure__link { white-space: nowrap; }
.gc-sources__checked { margin: 0.75rem 0 0 !important; padding-top: 0.5rem; border-top: 1px dotted var(--gc-rule-strong); font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-content .gc-options__title, .gc-options__title { margin: 2rem 0 1rem; }

/* Search form */
.gc-searchform__input { flex: 1 1 auto; min-width: 0; margin: 0; }
.gc-searchform__submit { flex: none; }

/* Comments */
.gc-comments__note, .gc-comments__closed { font-size: 0.875rem; color: var(--gc-ink-2); }

/* Front page: limits section */
.gc-limits__title { margin: 0 0 1.5rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--gc-ink); }
.gc-limits__label { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.gc-limits__label .gc-badge { letter-spacing: 0.08em; }
.gc-limits .gc-limits__annual { margin: 0; color: var(--gc-ink-2); }
.gc-limits__annual .gc-limits__num { display: inline; }
.gc-limits .gc-limits__examples { margin-top: 0.75rem; }

/* Front page: ledger figure */
.gc-ledger { margin: 0; }
.gc-ledger dd { margin: 0; }

/* Front page: status-change feed */
.gc-changes-feed__list { margin: 0; padding: 0; list-style: none; }
.gc-changes-feed__text .gc-dot { margin: -0.125rem 0.5rem 0 0; }
.gc-changes-feed__updated { display: block; margin-top: 0.125rem; font-size: var(--gc-fs-xs); color: var(--gc-ink-2); font-variant-numeric: tabular-nums lining-nums; }

.gc-trust__title { margin: 0 0 1.5rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--gc-ink); }

/* Hero: the text column must not inherit the lead-paragraph rule */
.gc-hero__inner > .gc-hero__text { margin: 0; max-width: none; font-size: inherit; color: inherit; }
.gc-hero__actions { margin: 0; }

/* Subscribe band + forms (footer box: div.gc-subscribe > p.__title + form.__form) */
.gc-band__text { min-width: 0; }
.gc-band__title { margin: 0 0 0.375rem; }
.gc-band__lead { max-width: 36rem; }
.gc-band__form { min-width: 0; }
.gc-subscribe__form { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; }
.gc-subscribe__input { flex: 1 1 12rem; width: auto; min-width: 0; margin: 0; }
.gc-subscribe__button { flex: none; }
.gc-subscribe .gc-subscribe__title { margin: 0 0 0.625rem; font-family: var(--gc-font-serif); font-size: 1.125rem; font-weight: 600; line-height: 1.3; color: var(--gc-ink); }
.gc-footer .gc-subscribe .gc-subscribe__title { color: #FFFFFF; }
.gc-subscribe--home, .gc-subscribe--tracker { max-width: 32rem; }

/* Footer: legal row lives inside the container; widget row */
.gc-footer__legal { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.75rem 2rem; }
.gc-footer__widgets { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 2rem 3rem; padding-block: 0 2.5rem; }
.gc-footer__widget-col { min-width: 0; }

/* Calculator */
.gc-calc__field--program { grid-column: 1 / -1; }
.gc-calc__field--legacy { grid-column: 1 / -1; display: flex; gap: 0.625rem; align-items: flex-start; }
.gc-calc__field--legacy label { display: inline; margin: 0; font-weight: 500; line-height: 1.45; }
.gc-calc:not(.gc-calc--ready) .gc-calc__bar > span { transition: none; }
.gc-calc__totals { margin: 0 0 1.25rem; border-top: 1px solid var(--gc-ink); font-variant-numeric: tabular-nums lining-nums; }
.gc-calc__totals-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px solid var(--gc-rule); }
.gc-calc__totals dt { font-size: 0.875rem; font-weight: 400; color: var(--gc-ink-2); }
.gc-calc__totals dd { margin: 0; font-family: var(--gc-font-serif); font-size: 1.125rem; font-weight: 600; text-align: right; white-space: nowrap; }
.gc-calc__totals-row--gap dt { font-weight: 600; color: var(--gc-ink); }
.gc-calc__totals-row--gap dd { color: var(--gc-contested); }
.gc-calc--no-gap .gc-calc__totals-row--gap dd { color: var(--gc-pro); }
.gc-calc__table tr.is-legacy th, .gc-calc__table tr.is-legacy td { background: var(--gc-grad-tint); }
.gc-calc__table tbody td:last-child { font-weight: 600; }
.gc-calc__next-title { margin: 0 0 0.375rem; font-size: var(--gc-fs-xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gc-ink-2); }
.gc-calc__next-list { margin: 0; padding: 0; list-style: none; }
.gc-calc__more { margin: 0.5rem 0 0; }
.gc-calc--compact .gc-calc__totals { margin-bottom: 1rem; }

/* Tracker */
.gc-tracker__source { margin: 0.75rem 0 0; font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-filter__label { flex-basis: 100%; }
.gc-filter__input { margin: 0; }
.gc-filter__buttons { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.gc-filter__num { padding: 0 0.3125rem; border-radius: var(--gc-radius); background: var(--gc-paper); color: var(--gc-ink-2); font-size: 0.75rem; font-variant-numeric: tabular-nums lining-nums; }
.gc-filter__btn[aria-pressed="true"] .gc-filter__num { background: rgba(255, 255, 255, 0.16); color: var(--gc-paper); }
.gc-filter__btn[aria-pressed="true"] .gc-dot { box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.85); }
.gc-filter .gc-filter__count { flex-basis: 100%; margin: 0.25rem 0 0; }
.gc-filter__empty { margin: 0 0 1.5rem; padding: 0.75rem 1rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); font-size: var(--gc-fs-sm); color: var(--gc-ink-2); }
.gc-tracker__table.gc-table--num tbody th { white-space: normal; }
.gc-tracker__table.gc-table--num td:not(.is-num), .gc-tracker__table.gc-table--num thead th:not(.is-num),
.gc-school-table.gc-table--num td:not(.is-num), .gc-school-table.gc-table--num thead th:not(.is-num) { text-align: left; }
.gc-tracker__table tbody th > a { font-weight: 600; }
.gc-tracker__code { display: block; font-size: 0.8125rem; font-weight: 400; color: var(--gc-ink-2); }
.gc-tracker__note { display: block; max-width: 22rem; margin-top: 0.25rem; font-size: var(--gc-fs-xs); font-weight: 400; line-height: 1.45; color: var(--gc-ink-2); }
@media (min-width: 700px) { .gc-tracker__table.gc-table--num tbody th { min-width: 13rem; } }
.gc-tracker__verify { margin-left: 0.25rem; font-family: var(--gc-font-sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gc-grad); }
.gc-tracker__legend { margin: 0 0 2rem; max-width: var(--gc-measure); font-size: 0.8125rem; color: var(--gc-ink-2); }

/* Timeline */
.gc-timeline > li[class*="--graduate"]::before { border-color: var(--gc-grad); }
.gc-timeline__body { min-width: 0; }
.gc-timeline-section > h2 { margin: 0 0 0.5rem; padding-top: 1.25rem; border-top: 1px solid var(--gc-ink); }

/* Schools archive filter + table */
.gc-school-filter { align-items: flex-end; margin-bottom: 1.5rem; }
.gc-school-filter select { flex: 0 1 16rem; width: auto; }
.gc-school-filter input[type="text"] { flex: 0 0 5rem; width: 5rem; text-transform: uppercase; }
.gc-school-table .gc-badge { margin-left: 0.25rem; }
.gc-school-table tbody td:last-child { color: var(--gc-contested); font-weight: 600; }
.gc-school__missing { padding: 0.75rem 1rem; background: var(--gc-surface); border: 1px solid var(--gc-rule); font-size: var(--gc-fs-sm); color: var(--gc-ink-2); }
.gc-school__source { font-size: 0.8125rem; color: var(--gc-ink-2); }
.gc-school__profession-link { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* TOC items built by main.js */
.gc-toc__list { margin: 0; padding: 0; list-style: none; }
.gc-toc__item--h3 > .gc-toc__link { padding-left: 1.75rem; font-size: 0.8125rem; }

/* ========== 20 Utilities & motion ========== */
@media (max-width: 599.98px) {
	:root { --gc-gutter: 16px; }
	.gc-block--status, .gc-block--answer, .gc-block--sources, .gc-block--changes, .gc-calc__form, .gc-calc__result, .gc-hero__figure { padding-inline: 1rem; }
	.gc-content blockquote { padding-left: 1rem; }
	.gc-content details > :not(summary) { padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* ========== 21 Print ========== */
@media print {
	@page { margin: 18mm 16mm; }
	:root { --gc-paper: #FFFFFF; }
	body { background: #FFFFFF; color: #000000; font-size: 11pt; line-height: 1.5; }
	.gc-topbar, .gc-header, .gc-nav, .gc-nav-toggle, .gc-search-toggle, .gc-search-panel, .gc-footer, .gc-article__aside, .gc-toc,
	.gc-skip, .gc-related, .comments-area, .gc-comments, .gc-band, .gc-subscribe, .gc-pagination, .post-navigation, .gc-header__cta,
	.gc-calc__form, .wp-block-buttons, .gc-btn, .gc-filter, .gc-filters, .widget { display: none !important; }
	.gc-container { max-width: none; padding: 0; }
	.gc-article__layout { display: block; }
	.gc-content > * { max-width: none; }
	.gc-content a[href^="http"]::after, .gc-content a[href^="/"]::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #444444; overflow-wrap: anywhere; }
	.gc-content a[href^="#"]::after { content: ""; }
	a { color: #000000; text-decoration: underline; }
	h1, h2, h3, h4 { break-after: avoid; page-break-after: avoid; }
	table, figure, .gc-block, blockquote, pre, tr, img { break-inside: avoid; page-break-inside: avoid; }
	.gc-table-wrap, .wp-block-table { overflow: visible; border-top: 1px solid #000000; }
	.gc-table-wrap th:first-child, .gc-table-wrap td:first-child { position: static; box-shadow: none; }
	.gc-content details > * { display: block !important; }
	.gc-content details summary::after { display: none; }
	.gc-block, .gc-card, .gc-calc__result { background: #FFFFFF !important; }
	.gc-calc__bar, .gc-gap__bar span, .gc-badge, .gc-dot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
