/* ==========================================================================
   Shared section header (eyebrow + heading), reused by every Program
   detail-page section below.
   ========================================================================== */
[class*="__eyebrow"] {
	display: inline-block;
	/* #C99638 (brand gold) is only 2.66:1 on white — fails WCAG AA (needs 4.5:1
	   at this size). This darker shade holds the same hue at 5:1+. Sections on
	   navy/dark backgrounds restore the brighter brand gold below, where it
	   already has plenty of contrast. */
	color: #8a6215;
	font-family: "Inter", sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	margin-bottom: 0.6rem;
}

.program-journey [class*="__eyebrow"],
.program-apply-cta [class*="__eyebrow"] {
	color: #C99638;
}

[class*="__header"] h2 {
	font-family: "Montserrat", sans-serif;
	color: #001844;
	font-weight: 700;
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
	line-height: 1.2;
	margin: 0 0 0.5rem;
}

/* ==========================================================================
   Program card grid (shared by both shortcodes + the archive + related)
   ========================================================================== */
.program-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: 1280px;
	margin: 0 auto;
}

.program-cards--cols-1 { grid-template-columns: repeat(1, 1fr); }
.program-cards--cols-2 { grid-template-columns: repeat(2, 1fr); }
.program-cards--cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 991px) {
	.program-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 599px) {
	.program-cards { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Compact card: image + title + link only
   ========================================================================== */
.program-card-compact {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 2px;
	outline: 1px solid rgba(0, 45, 114, 0.08);
	outline-offset: -1px;
	box-shadow: 0 2px 14px rgba(0, 24, 68, 0.05);
	overflow: hidden;
}

.program-card-compact__media {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #e5e7eb;
	overflow: hidden;
}

.program-card-compact__media img,
.program-card-compact__media-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #d9dde3;
	transition: transform 0.4s var(--exegypt-ease-out, ease);
}

.program-card-compact:hover .program-card-compact__media img {
	transform: scale(1.04);
}

.program-card-compact__body {
	padding: 20px 24px 24px;
}

.program-card-compact__title {
	font-family: "Montserrat", sans-serif;
	color: #001844;
	font-weight: 700;
	font-size: 1.25rem;
	margin: 0 0 12px;
}

.program-card-compact__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #002D72;
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}

.program-card-compact__link svg {
	width: 16px;
	height: 16px;
	transition: transform 0.25s var(--exegypt-ease-out, ease);
}

.program-card-compact__link:hover svg {
	transform: translateX(3px);
}

/* ==========================================================================
   Detailed card: full-width horizontal row (image left, content right).
   Forces the shared .program-cards grid to a single column regardless of
   the shortcode's `columns` attribute — a row layout can't sit side by side.
   ========================================================================== */
.program-cards.program-cards--detailed {
	grid-template-columns: 1fr;
	gap: 24px;
}

@media (max-width: 991px) {
	.program-cards.program-cards--detailed { grid-template-columns: 1fr; }
}

.program-card-detailed {
	display: flex;
	background: #fff;
	border-radius: 2px;
	outline: 1px solid rgba(0, 45, 114, 0.10);
	outline-offset: -1px;
	box-shadow: 0 4px 24px rgba(0, 24, 68, 0.06);
	overflow: hidden;
}

.program-card-detailed__media {
	position: relative;
	flex: 0 0 33%;
	min-height: 280px;
	background: #e5e7eb;
	overflow: hidden;
}

.program-card-detailed__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(0, 8, 20, 0) 0%, rgba(0, 16, 32, 0.20) 100%);
	pointer-events: none;
}

.program-card-detailed__media img,
.program-card-detailed__media-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #d9dde3;
}

.program-card-detailed__badge {
	position: absolute;
	z-index: 2;
	top: 20px;
	left: 20px;
	background: rgba(201, 150, 56, 0.9);
	color: #fff;
	font-family: "Inter", sans-serif;
	font-weight: 700;
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	padding: 5px 12px;
	border-radius: 999px;
}

.program-card-detailed__index {
	position: absolute;
	z-index: 2;
	left: 20px;
	bottom: 20px;
	color: rgba(255, 255, 255, 0.4);
	font-family: "Inter", sans-serif;
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.program-card-detailed__body {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
	padding: 40px;
	flex: 1 1 auto;
	min-width: 0;
}

.program-card-detailed__eyebrow-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.program-card-detailed__eyebrow {
	display: inline-block;
	background: rgba(0, 45, 114, 0.08);
	color: #002D72;
	font-family: "Inter", sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: 4px 12px;
	border-radius: 999px;
}

.program-card-detailed__title {
	font-family: "Montserrat", sans-serif;
	color: #001844;
	font-weight: 700;
	font-size: 1.75rem;
	line-height: 1.25;
	margin: 0 0 8px;
}

.program-card-detailed__audience {
	font-family: "Inter", sans-serif;
	color: #667085;
	font-size: 0.78rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin-bottom: 16px;
}

.program-card-detailed__description {
	font-family: "Inter", sans-serif;
	color: #475467;
	font-size: 0.94rem;
	line-height: 1.6;
	margin: 0;
}

.program-card-detailed__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 24px;
}

.program-card-detailed__stat {
	padding-left: 12px;
	border-left: 2px solid #C99638;
}

.program-card-detailed__stat-value {
	display: block;
	font-family: "Montserrat", sans-serif;
	color: #001844;
	font-weight: 700;
	font-size: 1rem;
}

.program-card-detailed__stat-label {
	display: block;
	font-family: "Inter", sans-serif;
	color: #667085;
	font-size: 0.7rem;
	margin-top: 2px;
}

.program-card-detailed__cta {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: #002D72;
	color: #fff;
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	padding: 14px 24px;
	border-radius: 2px;
	transition: background 0.2s ease;
}

.program-card-detailed__cta:hover {
	background: #001844;
	color: #fff;
}

.program-card-detailed__cta svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 767px) {
	.program-card-detailed {
		flex-direction: column;
	}

	.program-card-detailed__media {
		flex: none;
		width: 100%;
		aspect-ratio: 16 / 10;
		min-height: 0;
	}

	.program-card-detailed__body {
		padding: 24px;
	}

	.program-card-detailed__title {
		font-size: 1.35rem;
		line-height: 1.2;
	}

	.program-card-detailed__audience {
		font-size: 0.72rem;
		margin-bottom: 12px;
	}

	.program-card-detailed__description {
		font-size: 0.88rem;
	}

	.program-card-detailed__stats {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
		margin-top: 18px;
	}

	.program-card-detailed__stat-value {
		font-size: 0.92rem;
	}

	.program-card-detailed__stat-label {
		font-size: 0.66rem;
	}

	.program-card-detailed__cta {
		font-size: 0.85rem;
		padding: 12px 20px;
	}
}

@media (max-width: 480px) {
	.program-card-detailed__title {
		font-size: 1.2rem;
	}
}

/* ==========================================================================
   "Program at a Glance" floating box on the single template
   ========================================================================== */
.program-glance {
	position: relative;
	z-index: 2;
	max-width: 1280px;
	margin: 0 auto;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 10px 40px rgba(0, 16, 32, 0.18);
}

/* Only overlap the hero on tablet/desktop, where the hero's bottom padding
   is tall enough to absorb the pull-up without cutting into its text. On
   mobile the hero's padding is too short for that, so the card just sits
   flush below it instead of overlapping. */
@media (min-width: 601px) {
	.program-glance { margin-top: -3.5rem; }
}

.program-glance__eyebrow {
	display: block;
	padding: 20px 24px 0;
	color: #C99638;
	font-family: "Inter", sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.14em;
}

.program-glance__list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin: 0;
	padding: 12px 24px 24px;
}

.program-glance__row dt {
	font-family: "Inter", sans-serif;
	/* #7c8494 was 3.76:1 on white, short of the 4.5:1 AA needs at this size. */
	color: #5c6474;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 0 0 4px;
}

.program-glance__row dd {
	font-family: "Montserrat", sans-serif;
	color: #001844;
	font-weight: 700;
	font-size: 1.05rem;
	margin: 0;
}

.program-glance__row--audience {
	grid-column: 1 / -1;
}

@media (max-width: 991px) {
	.program-glance__list { grid-template-columns: repeat(2, 1fr); }
}

/* Below 480px even a 2-column stat grid forces long values to wrap into a
   ragged 3-line block and leaves the audience row's second column empty —
   stack every row full-width instead and use dividers to keep the list
   scannable without the grid's cross-column height coupling. */
@media (max-width: 480px) {
	.program-glance__list {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 4px 20px 20px;
	}

	.program-glance__eyebrow {
		padding: 18px 20px 0;
	}

	.program-glance__row {
		grid-column: 1 / -1;
		padding: 12px 0;
		border-bottom: 1px solid rgba(0, 45, 114, 0.08);
	}

	.program-glance__row:last-child {
		border-bottom: none;
		padding-bottom: 0;
	}

	.program-glance__row dd {
		font-size: 1rem;
	}
}

/* ==========================================================================
   Overview
   ========================================================================== */
.program-overview {
	max-width: 1280px;
	margin: 0 auto;
	padding: 4rem 1.5rem;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: start;
}

.program-overview__title {
	font-family: "Montserrat", sans-serif;
	color: #001844;
	font-weight: 700;
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
	margin: 0 0 1rem;
}

.program-overview__content {
	font-family: "Inter", sans-serif;
	color: #43495a;
	font-size: 1rem;
	line-height: 1.75;
}

.program-overview__aside {
	background: #f7f8fa;
	border-radius: 2px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.program-overview__aside h3 {
	font-family: "Montserrat", sans-serif;
	color: #001844;
	font-weight: 700;
	font-size: 1rem;
	margin: 0 0 12px;
}

@media (max-width: 991px) {
	.program-overview { grid-template-columns: 1fr; }
}

@media (max-width: 599px) {
	.program-overview {
		padding: 2.75rem 1.25rem;
		gap: 32px;
	}
}

/* ==========================================================================
   Checklists (Eligibility, Required Documents)
   ========================================================================== */
.program-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.program-checklist li {
	position: relative;
	padding-left: 26px;
	font-family: "Inter", sans-serif;
	color: #43495a;
	font-size: 0.9rem;
	line-height: 1.5;
}

.program-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.15em;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #002D72;
}

.program-checklist li::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 0.45em;
	width: 6px;
	height: 3px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg);
}

.program-checklist--columns {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 1.5rem;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px 40px;
}

@media (max-width: 599px) {
	.program-checklist--columns {
		grid-template-columns: 1fr;
		padding: 0 1.25rem;
		gap: 10px;
	}
}

.program-destinations-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px 16px;
}

.program-destinations-list li {
	font-family: "Inter", sans-serif;
	color: #43495a;
	font-size: 0.88rem;
	padding: 6px 0;
	border-bottom: 1px solid rgba(0, 45, 114, 0.08);
}

@media (max-width: 480px) {
	.program-destinations-list {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Benefits grid
   ========================================================================== */
.program-benefits {
	max-width: 1280px;
	margin: 0 auto;
	padding: 1rem 1.5rem 4rem;
	text-align: center;
}

.program-benefits__header {
	max-width: 640px;
	margin: 0 auto 2.5rem;
}

.program-benefits__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	text-align: left;
}

.program-benefits__card {
	background: #fff;
	border-radius: 2px;
	outline: 1px solid rgba(0, 45, 114, 0.08);
	outline-offset: -1px;
	box-shadow: 0 2px 14px rgba(0, 24, 68, 0.05);
	padding: 28px;
}

.program-benefits__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 2px;
	background: #002D72;
	color: #fff;
	margin-bottom: 16px;
}

.program-benefits__icon svg {
	width: 22px;
	height: 22px;
}

.program-benefits__card h3 {
	font-family: "Montserrat", sans-serif;
	color: #001844;
	font-weight: 700;
	font-size: 1.05rem;
	margin: 0 0 8px;
}

.program-benefits__card p {
	font-family: "Inter", sans-serif;
	color: #5b6472;
	font-size: 0.88rem;
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 991px) {
	.program-benefits__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 599px) {
	.program-benefits__grid { grid-template-columns: 1fr; }

	.program-benefits {
		padding: 0.5rem 1.25rem 2.75rem;
	}

	.program-benefits__header {
		margin-bottom: 1.75rem;
	}

	.program-benefits__card {
		padding: 22px;
	}
}

/* ==========================================================================
   Journey steps (dark navy band)
   ========================================================================== */
.program-journey {
	background: #001020;
	padding: 4rem 1.5rem;
}

.program-journey__header {
	max-width: 1280px;
	margin: 0 auto 2.5rem;
	text-align: center;
}

.program-journey [class*="__header"] h2,
.program-journey h2 {
	color: #fff;
}

.program-journey__list {
	max-width: 900px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.program-journey__step {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	padding: 18px 20px;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.03);
}

.program-journey__number {
	flex: none;
	font-family: "Montserrat", sans-serif;
	color: #C99638;
	font-weight: 700;
	font-size: 1.1rem;
}

.program-journey__step-body h3 {
	font-family: "Montserrat", sans-serif;
	color: #fff;
	font-weight: 700;
	font-size: 1rem;
	margin: 0 0 4px;
}

.program-journey__step-body p {
	font-family: "Inter", sans-serif;
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.88rem;
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 599px) {
	.program-journey {
		padding: 2.75rem 1.25rem;
	}

	.program-journey__header {
		margin-bottom: 1.75rem;
	}

	.program-journey__step {
		gap: 14px;
		padding: 16px;
	}
}

/* ==========================================================================
   Required Documents
   ========================================================================== */
.program-documents {
	max-width: 1280px;
	margin: 0 auto;
	padding: 4rem 0;
}

.program-documents__header {
	max-width: 1280px;
	margin: 0 auto 2rem;
	padding: 0 1.5rem;
}

@media (max-width: 599px) {
	.program-documents {
		padding: 2.75rem 0;
	}

	.program-documents__header {
		padding: 0 1.25rem;
		margin-bottom: 1.5rem;
	}
}

/* ==========================================================================
   Testimonials / FAQ / Related sections (headers only — cards/accordion
   are styled by testimonials.css and the exegypt-faq plugin's own CSS)
   ========================================================================== */
.program-testimonials,
.program-faq {
	max-width: 1280px;
	margin: 0 auto;
	padding: 4rem 1.5rem;
}

.program-related {
	max-width: 1280px;
	margin: 0 auto;
	padding: 5rem 1.5rem;
}

.program-testimonials__header,
.program-faq__header {
	max-width: 640px;
	margin: 0 auto 2.5rem;
	text-align: center;
}

.program-related__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 2rem;
}

.program-related__view-all {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #002D72;
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	padding: 10px 0;
}

@media (max-width: 599px) {
	.program-testimonials,
	.program-faq {
		padding: 2.75rem 1.25rem;
	}

	.program-related {
		padding: 3rem 1.25rem;
	}

	.program-testimonials__header,
	.program-faq__header {
		margin-bottom: 1.75rem;
	}

	.program-related__header {
		margin-bottom: 1.25rem;
	}
}

.program-related__view-all svg {
	width: 16px;
	height: 16px;
	transition: transform 0.25s ease;
}

.program-related__view-all:hover svg {
	transform: translateX(3px);
}

/* ==========================================================================
   Bottom Apply CTA band
   ========================================================================== */
.program-apply-cta {
	background: linear-gradient(135deg, #001844 0%, #002D72 100%);
	padding: 4rem 1.5rem;
}

@media (max-width: 599px) {
	.program-apply-cta {
		padding: 2.75rem 1.25rem;
	}
}

.program-apply-cta__inner {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}

.program-apply-cta__eyebrow {
	color: #C99638;
}

.program-apply-cta__inner h2 {
	color: #fff;
}

.program-apply-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.5rem;
	background: #C99638;
	color: #001020;
	font-family: "Inter", sans-serif;
	font-weight: 700;
	font-size: 0.95rem;
	text-decoration: none;
	padding: 14px 32px;
	border: none;
	border-radius: 2px;
	cursor: pointer;
	transition: background 0.2s ease;
}

.program-apply-cta__button:hover {
	background: #b8842c;
	color: #001020;
}

/* ==========================================================================
   Program archive wrapper
   ========================================================================== */
.program-archive {
	max-width: 1280px;
	margin: 0 auto;
	padding: 3rem 1.5rem;
}

/* ==========================================================================
   "Explore Other Programs" related cards: full-bleed image, dark gradient
   overlay, gold badge, title/subtitle/link pinned to the bottom.
   ========================================================================== */
html.has-modal-open {
	overflow: hidden;
}

.program-related-card {
	position: relative;
	aspect-ratio: 2.15 / 1;
	border-radius: 2px;
	overflow: hidden;
	background: #001844;
	display: block;
	text-decoration: none;
}

.program-related-card__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.program-related-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 16, 32, 0) 0%, rgba(0, 16, 32, 0.55) 55%, #001020 100%);
	pointer-events: none;
}

.program-related-card__content {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	gap: 10px;
	padding: 24px;
}

.program-related-card__badge {
	display: inline-block;
	background: rgba(201, 150, 56, 0.15);
	outline: 1px solid rgba(201, 150, 56, 0.4);
	outline-offset: -1px;
	color: #C99638;
	font-family: "Inter", sans-serif;
	font-weight: 700;
	font-size: 0.68rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	padding: 5px 12px;
	border-radius: 999px;
}

.program-related-card__title {
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 1.375rem;
	line-height: 1.3;
	margin: 0;
}

.program-related-card__subtitle {
	color: rgba(255, 255, 255, 0.6);
	font-family: "Inter", sans-serif;
	font-size: 0.72rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin: 0;
}

.program-related-card__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #fff;
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	margin-top: 4px;
}

.program-related-card__link svg {
	width: 16px;
	height: 16px;
	transition: transform 0.25s ease;
}

.program-related-card__link:hover svg {
	transform: translateX(3px);
}

@media (max-width: 599px) {
	.program-related-card {
		aspect-ratio: 16 / 10;
	}

	.program-related-card__title {
		font-size: 1.2rem;
	}

	.program-related-card__subtitle {
		font-size: 0.68rem;
	}
}

/* ==========================================================================
   Apply popup: overlay + dialog, opened/closed by program-apply-modal.js.
   Established from scratch (no prior modal convention in this theme) —
   follows the same navy/gold/Montserrat/Inter language as the rest of the
   Programs templates.
   ========================================================================== */
.program-apply-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.program-apply-modal.is-open {
	display: flex;
}

.program-apply-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 24, 68, 0.55);
}

.program-apply-modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 640px;
	max-height: 90vh;
	overflow-y: auto;
	background: #fff;
	border-radius: 2px;
	box-shadow: 0 23px 76px rgba(0, 24, 68, 0.18);
}

.program-apply-modal__header {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: #fff;
	padding: 20px 24px;
	border-bottom: 1px solid rgba(0, 45, 114, 0.1);
}

.program-apply-modal__header h2 {
	margin: 0;
	color: #001844;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 1.15rem;
	line-height: 1.3;
}

.program-apply-modal__close {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 2px;
	color: #001844;
	cursor: pointer;
	transition: background 0.2s ease;
}

.program-apply-modal__close svg {
	width: 18px;
	height: 18px;
}

.program-apply-modal__close:hover,
.program-apply-modal__close:focus-visible {
	background: rgba(0, 45, 114, 0.08);
	outline: none;
}

.program-apply-modal__body {
	padding: 24px;
}

@media (max-width: 600px) {
	.program-apply-modal {
		padding: 0;
	}

	.program-apply-modal__dialog {
		max-width: none;
		width: 100%;
		height: 100%;
		max-height: 100dvh;
		border-radius: 0;
	}

	.program-apply-modal__header {
		padding: 16px;
	}

	.program-apply-modal__body {
		padding: 16px;
	}
}
