/*
Theme Name: School Finder
Template: generatepress
Version: 0.8.0
Text Domain: generatepress-sdir
*/

.sdir-public {
	--sdir-ink: #0F2A43;
	--sdir-muted: #4A5F73;
	--sdir-paper: #F6F8FB;
	--sdir-line: #DCE5EE;
	--sdir-green: #0E7C7B;
	background: var(--sdir-paper);
	color: var(--sdir-ink);
	font-family: "Inter", system-ui, sans-serif;
}

.sdir-public h1,
.sdir-public h2 {
	color: var(--sdir-ink);
	font-family: "Space Grotesk", "Inter", system-ui, sans-serif;
	font-weight: 700;
	letter-spacing: -.035em;
}

.sdir-public h1 {
	font-size: clamp(2.15rem, 4.4vw, 4.15rem);
	line-height: 1.12;
	margin-block: 0 .3em;
}

.sdir-public h2 { font-size: clamp(1.4rem, 2.35vw, 2rem); margin: 0; }
.sdir-public a { color: var(--sdir-green); text-underline-offset: .22em; }
.sdir-public :focus-visible { outline: 3px solid #a45c26; outline-offset: 3px; }

.sdir-shell { width: min(100% - 3rem, 78rem); margin-inline: auto; }
.sdir-header { border-block-end: 1px solid var(--sdir-line); }
.sdir-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; min-height: 4.6rem; }
.sdir-header nav { display: flex; flex-wrap: wrap; gap: .65rem clamp(.9rem, 2.7vw, 2.2rem); font-size: .94rem; }
.sdir-header a, .sdir-footer a { text-decoration: none; }
.sdir-header a:hover, .sdir-footer a:hover { text-decoration: underline; }
.sdir-brand { display: inline-flex; align-items: center; gap: .65rem; font-weight: 750; font-size: 1.15rem; }
.sdir-mark { display: grid; place-items: center; inline-size: 2rem; block-size: 2rem; border-radius: .45rem; background: var(--sdir-green); color: white; }

.sdir-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .83fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.sdir-hero-copy > p:not(.sdir-kicker) { max-inline-size: 34rem; font-size: 1.1rem; color: #C9D8E6; line-height: 1.65; }
.sdir-kicker { color: var(--sdir-green); font-weight: 700; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; margin-block: 0 .9rem; }
.sdir-public input[type="search"], .sdir-public input[type="number"], .sdir-public select {
	display: block; width: 100%; min-width: 0; min-height: 2.85rem; padding: .55rem .65rem;
	border: 1px solid #C5D2DF; border-radius: .45rem; background: #fff; color: var(--sdir-ink);
}
.sdir-public label { font-weight: 650; font-size: .87rem; }
.sdir-public label > :is(input:not([type="checkbox"]), select) { margin-block-start: .3rem; }
.sdir-public button, .sdir-public button:hover, .sdir-public button:focus { background: var(--sdir-green); color: white; border-radius: .45rem; font-weight: 700; }
.sdir-public button:hover { background: #0A5B5A; }
.sdir-section { padding-block: 1.3rem 2.6rem; }
.sdir-cities, .sdir-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1rem; margin-block-start: 1rem; }
.sdir-section-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.sdir-card, .sdir-profile { background: #fff; padding: 1.4rem; border: 1px solid var(--sdir-line); border-radius: .8rem; }
.sdir-card h3 { font-size: 1.25rem; line-height: 1.3; margin-block: 0 .65rem; }
.sdir-card h3 a { color: var(--sdir-ink); text-decoration: none; }
.sdir-card h3 a:hover { text-decoration: underline; }
.sdir-card p:not(.sdir-kicker) { color: var(--sdir-muted); }
.sdir-card-link { font-size: .9rem; font-weight: 700; }
.sdir-card-image { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: .5rem; margin-block-end: 1rem; }
.sdir-footer { border-block-start: 1px solid var(--sdir-line); margin-block-start: 2rem; }
.sdir-directory { padding-block: clamp(2rem, 5vw, 4rem); }
.sdir-directory h1 { font-size: clamp(1.95rem, 3.5vw, 3rem); }
.sdir-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1rem; margin-block: 1.5rem 2.5rem; padding: 1.25rem; background: #EAF0F6; border: 1px solid var(--sdir-line); border-radius: .75rem; }
.sdir-facilities, .sdir-actions { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.sdir-facilities { min-inline-size: 0; }
.sdir-public .paging-navigation { margin-block: 1.5rem; }
.sdir-back { display: inline-block; margin-block-end: 1rem; }
.sdir-profile { padding: clamp(1.5rem, 4vw, 3rem); }
.sdir-profile h1 { max-inline-size: 21ch; }
.sdir-profile > img { border-radius: .7rem; margin-block-end: 1.5rem; }
.sdir-details { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .75rem; margin: 1rem 0 0; }
.sdir-details > div { padding: .85rem 1rem; background: var(--sdir-paper); border-radius: .45rem; }
.sdir-details dt { font-weight: 700; }
.sdir-details dd { margin: 0; }

@media (max-width: 740px) {
	.sdir-shell { width: calc(100% - 2rem); }
	.sdir-hero { grid-template-columns: 1fr; }
	.sdir-header-inner { flex-wrap: wrap; padding-block: .85rem; }
}


.sdir-public [hidden] { display: none !important; }
.sdir-compare-notice:not(:empty) { padding-block: .65rem; }
.sdir-public .sdir-compare-toggle { margin-inline-start: .65rem; padding: .38rem .7rem; border: 1px solid var(--sdir-green); background: white; color: var(--sdir-green); font-size: .88rem; }
.sdir-public .sdir-compare-toggle[aria-pressed="true"] { color: white; background: var(--sdir-green); }
.sdir-map-panel, .sdir-claim { margin-block: 1.5rem; }
.sdir-map { height: clamp(17rem, 48vw, 28rem); border-radius: .75rem; isolation: isolate; }
.sdir-table-scroll { overflow-x: auto; margin-block-start: 1.5rem; }
.sdir-compare-table { width: 100%; background: white; }
.sdir-compare-table th, .sdir-compare-table td { min-width: 9rem; padding: .8rem; text-align: start; vertical-align: top; }
.sdir-compare-table thead { background: #EAF0F6; }
.sdir-claim summary { cursor: pointer; font-weight: 700; }
.sdir-claim textarea { display: block; max-width: 36rem; margin-block: .5rem; }

.sdir-header { background: #fffefa; }
.sdir-header-inner { min-height: 5rem; }
.sdir-header nav { align-items: center; }
.sdir-mark { inline-size: 2.4rem; block-size: 2.4rem; border-radius: .65rem; }
.sdir-book-icon { display: block; width: 1.25rem; height: .9rem; border: 1.5px solid; border-radius: .18rem; background: linear-gradient(to right, transparent 46%, currentColor 46% 54%, transparent 54%); }
.sdir-nav-compare, .sdir-public .sdir-compare-toggle, .sdir-card-link { display: inline-flex; align-items: center; gap: .5rem; }
.sdir-nav-compare { padding: .45rem .8rem; border: 1px solid var(--sdir-line); border-radius: .55rem; font-weight: 700; }
.sdir-nav-compare [data-sdir-count]:empty { display: none; }
.sdir-nav-compare [data-sdir-count] { font-variant-numeric: tabular-nums; }
.sdir-card { display: flex; flex-direction: column; }
.sdir-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-block-start: auto; padding-block-start: .85rem; border-block-start: 1px solid var(--sdir-line); }
.sdir-card-link, .sdir-public .sdir-compare-toggle { padding: .5rem .7rem; margin-inline-start: 0; border-radius: .45rem; }
.sdir-card-link { background: #E3F4F1; text-decoration: none; }
.sdir-card-link:hover { text-decoration: underline; }
.sdir-compare-icon { display: inline-block; width: 1rem; height: .8rem; border: 1.5px solid; border-radius: .16rem; background: linear-gradient(to right, transparent 45%, currentColor 45% 55%, transparent 55%); }
.sdir-compare-added, [aria-pressed="true"] .sdir-compare-add { display: none; }
[aria-pressed="true"] .sdir-compare-added { display: inline; }
[aria-pressed="true"] .sdir-compare-icon { width: .47rem; height: .8rem; border-width: 0 2px 2px 0; border-radius: 0; background: none; transform: rotate(45deg); margin-inline: .2rem; }
.sdir-reviews { margin-block-start: 2rem; border-block-start: 1px solid var(--sdir-line); padding-block-start: 1.5rem; }
.sdir-review { padding: 1rem; border: 1px solid var(--sdir-line); border-radius: .6rem; margin-block: 1rem; }
.sdir-review h3 { font-size: 1.2rem; margin: 0; }
.sdir-review-score { color: var(--sdir-green); font-weight: 700; }
.sdir-review .sdir-details { margin-block: .8rem; }
.sdir-review-reply { padding: .75rem 1rem; background: var(--sdir-paper); margin-block: .75rem; }
.sdir-review-reply p { margin: .25rem 0 0; }
.sdir-review-form { margin-block: .7rem; }
.sdir-review-form textarea { display: block; margin-block: .3rem; width: 100%; max-width: 42rem; }
.sdir-review-ratings { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); gap: .65rem; margin-block-end: .8rem; }
.sdir-review-write summary, .sdir-review summary { cursor: pointer; font-weight: 700; }

.sdir-community-submit { padding: 1rem 1.2rem; border: 1px solid var(--sdir-line); border-radius: .6rem; background: white; }
.sdir-community-submit summary { cursor: pointer; font-weight: 700; }
.sdir-community-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1rem; margin-block-start: 1rem; }
.sdir-community-form input:not([type="hidden"]), .sdir-community-form textarea { display: block; width: 100%; margin-block-start: .3rem; }
.sdir-community-wide { grid-column: 1 / -1; }
.sdir-community-actions, .sdir-community-vote { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; margin-block: .75rem; }
.sdir-community-vote button:disabled { opacity: .7; }

.sdir-brand { flex: none; letter-spacing: -.035em; }
.sdir-mark { inline-size: 2.5rem; block-size: 2.5rem; background: linear-gradient(150deg, #2b6049, #173c2e); }
.sdir-header nav { gap: .25rem; }
.sdir-header nav > a { display: inline-flex; align-items: center; gap: .42rem; padding: .48rem .62rem; border-radius: .5rem; font-size: .88rem; font-weight: 650; }
.sdir-header nav > a:hover, .sdir-header nav > a[aria-current="page"] { background: #E3F4F1; text-decoration: none; }
.sdir-header nav > .sdir-nav-compare { margin-inline-start: .35rem; }
.sdir-icon { inline-size: 1.15rem; block-size: 1.15rem; flex: none; }
.sdir-dashboard-points { display: inline-flex; align-items: center; gap: .48rem; border-radius: 2rem; background: #E3F4F1; padding: .4rem .8rem; margin-block: .35rem .8rem; font-weight: 700; }
.sdir-dashboard .sdir-card { padding: 1.3rem; }
.sdir-dashboard .sdir-card h2 { display: flex; align-items: center; gap: .65rem; margin-block-end: .85rem; font-size: 1.22rem; letter-spacing: -.02em; }
.sdir-dashboard .sdir-card > a { margin-block-start: auto; font-weight: 700; font-size: .9rem; }
.sdir-dashboard-icon { display: grid; place-items: center; inline-size: 2.35rem; block-size: 2.35rem; border-radius: .55rem; color: #0A5B5A; background: #E3F4F1; }
.sdir-dashboard .sdir-card:nth-child(2) .sdir-dashboard-icon { color: #6c4827; background: #f6e9d4; }
.sdir-dashboard .sdir-card:nth-child(3) .sdir-dashboard-icon { color: #44597c; background: #e9eef8; }

@media (max-width: 1000px) {
	.sdir-header .sdir-header-inner { flex-wrap: wrap; gap: .55rem 1rem; padding-block: .65rem; }
}
@media (max-width: 540px) {
	.sdir-header nav { inline-size: 100%; }
	.sdir-header nav > a { padding-inline: .45rem; min-block-size: 2.5rem; }
}

.sdir-community-submit { max-inline-size: 65rem; }
.sdir-community-form { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.sdir-community-form > label { min-inline-size: 0; }
.sdir-public .sdir-community-form :is(input:not([type="hidden"]), select, textarea) {
	box-sizing: border-box;
	inline-size: 100%;
	max-inline-size: 100%;
	min-block-size: 2.85rem;
	padding: .55rem .65rem;
	border: 1px solid #C5D2DF;
	border-radius: .45rem;
	background: #fff;
	color: var(--sdir-ink);
	font: inherit;
}
.sdir-community-form textarea { resize: vertical; }
.sdir-community-form small { display: block; margin-block-start: .3rem; color: var(--sdir-muted); font-weight: 400; }
.sdir-community-form > p { margin-block: 0; }
.sdir-book-photo { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 4 / 3; object-fit: contain; background: #EEF2F6; border-radius: .55rem; margin-block-end: 1rem; }
.sdir-profile .sdir-book-photo { max-inline-size: 30rem; }
@media (max-width: 850px) { .sdir-community-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .sdir-community-form { grid-template-columns: minmax(0, 1fr); } }

.sdir-policy-links { display: flex; flex-wrap: wrap; gap: .6rem 1rem; font-size: .875rem; }

.sdir-study #bbpress-forums {
	max-inline-size: 60rem;
	margin-block-start: 1.35rem;
	font-size: .95rem;
}
.sdir-study #bbpress-forums :is(.bbp-topic-form, .bbp-reply-form) {
	margin-block-start: 1.5rem;
	padding: clamp(1rem, 3vw, 2rem);
	border: 1px solid var(--sdir-line);
	border-radius: .85rem;
	background: #fff;
}
.sdir-study #bbpress-forums :is(.bbp-topic-form, .bbp-reply-form) fieldset.bbp-form {
	min-inline-size: 0;
	padding: 0;
	margin: 0;
	border: 0;
}
.sdir-study #bbpress-forums fieldset.bbp-form legend {
	padding: 0;
	margin-block-end: .9rem;
	color: var(--sdir-ink);
	font-size: clamp(1.12rem, 2.4vw, 1.45rem);
	font-weight: 750;
}
.sdir-study #bbpress-forums fieldset.bbp-form p { margin-block: 0 1rem; }
.sdir-study #bbpress-forums fieldset.bbp-form label { color: var(--sdir-ink); }
.sdir-study #bbpress-forums fieldset.bbp-form :is(input[type="text"], select) {
	box-sizing: border-box;
	inline-size: 100%;
	max-inline-size: 100%;
	min-block-size: 2.8rem;
	height: auto;
	margin-block-start: .3rem;
	padding: .55rem .75rem;
	border: 1px solid #C5D2DF;
	border-radius: .45rem;
	background: #fff;
	color: var(--sdir-ink);
	font: inherit;
	line-height: 1.35;
}
.sdir-study #bbpress-forums fieldset.bbp-form :is(#bbp_stick_topic, #bbp_topic_status, #bbp_forum_id) { max-inline-size: 17rem; }
.sdir-study #bbpress-forums .wp-editor-container {
	overflow: hidden;
	border: 1px solid #C5D2DF;
	border-radius: .55rem;
}
.sdir-study #bbpress-forums .quicktags-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem;
	padding: .45rem;
	background: #F0F4F8;
	border-block-end: 1px solid var(--sdir-line);
}
.sdir-study #bbpress-forums .quicktags-toolbar input { margin: 0; min-block-size: 2rem; }
.sdir-study #bbpress-forums div.bbp-the-content-wrapper textarea.bbp-the-content {
	box-sizing: border-box;
	min-block-size: 10rem;
	height: 11rem;
	padding: .75rem;
	border: 0;
	background: #fff;
	color: var(--sdir-ink);
	font: inherit;
	resize: vertical;
}
.sdir-study #bbpress-forums textarea:focus-visible { outline-offset: -3px; }
.sdir-study #bbpress-forums .bbp-submit-wrapper {
	float: none;
	display: flex;
	justify-content: flex-end;
	padding-block-start: 1rem;
	border-block-start: 1px solid var(--sdir-line);
}
.sdir-study #bbpress-forums div.bbp-template-notice {
	border-radius: .45rem;
	padding: .5rem .7rem;
}
@media (max-width: 540px) {
	.sdir-study #bbpress-forums fieldset.bbp-form :is(#bbp_stick_topic, #bbp_topic_status, #bbp_forum_id) { max-inline-size: none; }
	.sdir-study #bbpress-forums .bbp-submit-wrapper button { inline-size: 100%; }
}

.sdir-policy { max-inline-size: 56rem; }
.sdir-policy-heading { padding-block-end: 1.25rem; margin-block-end: 1.4rem; border-block-end: 1px solid var(--sdir-line); }
.sdir-policy-heading h1 { margin: 0; max-inline-size: none; }
.sdir-policy-content { max-inline-size: 70ch; line-height: 1.75; overflow-wrap: anywhere; }
.sdir-policy-content h2 { margin-block: 1.65rem .45rem; font-size: clamp(1.2rem, 2.5vw, 1.55rem); line-height: 1.3; }
.sdir-policy-content > :last-child { margin-block-end: 0; }
.sdir-policy-links [aria-current="page"] { font-weight: 700; text-decoration: underline; }

@font-face {
	font-family: Inter;
	src: url("assets/fonts/inter.woff2") format("woff2");
	font-weight: 100 900;
	font-display: swap;
}
@font-face {
	font-family: "Space Grotesk";
	src: url("assets/fonts/space-grotesk.woff2") format("woff2");
	font-weight: 300 700;
	font-display: swap;
}
.sdir-public {
	--sdir-amber: #F4A62A;
	--sdir-mint: #E3F4F1;
}
.sdir-shell { width: min(100% - 3rem, 75rem); }
.sdir-header, .sdir-footer, .sdir-hero-band { background: var(--sdir-ink); }
.sdir-header, .sdir-footer { border-color: #314B64; }
.sdir-header .sdir-brand, .sdir-footer .sdir-brand { color: white; font-family: "Space Grotesk", Inter, sans-serif; font-size: 1.25rem; }
.sdir-mark { background: var(--sdir-amber); color: var(--sdir-ink); }
.sdir-header nav > a, .sdir-footer a { color: #D7E5F1; }
.sdir-header nav > a:hover, .sdir-header nav > a[aria-current="page"] { background: #294760; color: white; }
.sdir-header .sdir-nav-compare { border-color: #57718A; }
.sdir-footer .sdir-header-inner { flex-wrap: wrap; }
.sdir-footer [aria-current="page"], .sdir-footer .sdir-header-inner > a:last-child { color: var(--sdir-amber); }
.sdir-public .sdir-action-primary, .sdir-search-panel button {
	display: inline-flex; align-items: center; justify-content: center; min-block-size: 3rem; padding: .65rem 1.05rem;
	background: var(--sdir-amber); color: var(--sdir-ink); border-radius: .7rem; font-weight: 700; text-decoration: none;
}
.sdir-public .sdir-action-primary:hover, .sdir-search-panel button:hover { background: #FFD07C; color: var(--sdir-ink); }
.sdir-header .sdir-header-dashboard { min-block-size: 2.7rem; font-size: .875rem; }
.sdir-hero-band { padding-block: clamp(2rem, 5vw, 4rem) 6.5rem; }
.sdir-hero h1 { max-inline-size: 15ch; font-size: clamp(2.3rem, 5vw, 3.5rem); color: white; }
.sdir-hero .sdir-kicker { color: var(--sdir-amber); }
.sdir-hero-actions, .sdir-shortcuts { display: flex; flex-wrap: wrap; gap: .75rem; }
.sdir-public .sdir-action-secondary {
	display: inline-flex; align-items: center; min-block-size: 3rem; padding: .5rem 1rem; border: 1px solid #66829B;
	border-radius: 2rem; color: white; text-decoration: none; font-weight: 650;
}
.sdir-action-secondary:hover { background: #294760; }
.sdir-hero-preview { inline-size: min(100%, 26rem); justify-self: center; }
.sdir-hero-preview .sdir-card { padding: clamp(1.25rem, 3vw, 2rem); }
.sdir-search-panel { position: relative; margin-block: -3rem 1.6rem; }
.sdir-home-search {
	display: grid; grid-template-columns: 1.2fr .9fr .9fr 1.1fr auto; align-items: end; gap: 1rem;
	padding: clamp(1rem, 3vw, 1.75rem); background: #fff; border: 1px solid var(--sdir-line);
	border-radius: 1rem; box-shadow: 0 12px 32px #0f2a4320; box-sizing: border-box;
}
.sdir-home-search label { min-inline-size: 0; }
.sdir-public :is(input[type="search"], input[type="number"], select) {
	box-sizing: border-box; inline-size: 100%; min-block-size: 3rem; border-radius: .65rem;
}
.sdir-card, .sdir-profile { border-radius: 1rem; }
.sdir-shortcuts { margin-block-start: 1rem; }
.sdir-shortcuts a { padding: .6rem 1rem; border: 1px solid var(--sdir-line); border-radius: 2rem; background: white; text-decoration: none; }
.sdir-shortcuts a:hover, .sdir-learning-link:hover { border-color: var(--sdir-green); }
.sdir-learn .sdir-results { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.sdir-learning-link { text-decoration: none; }
.sdir-learning-link .sdir-dashboard-icon { margin-block-end: .85rem; }
.sdir-learning-link p { margin: 0; }
@media (max-width: 1000px) {
	.sdir-header nav { order: 1; flex-basis: 100%; }
	.sdir-home-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 740px) {
	.sdir-shell { width: calc(100% - 2rem); }
	.sdir-hero { grid-template-columns: 1fr; }
	.sdir-hero-preview { justify-self: start; }
}
@media (max-width: 425px) {
	.sdir-home-search { grid-template-columns: 1fr; }
	.sdir-header nav > a { font-size: .81rem; }
}

.sdir-hero-preview .sdir-kicker { color: var(--sdir-green); }
@media (max-width: 540px) {
	.sdir-header .sdir-header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
	.sdir-header .sdir-brand { font-size: 1rem; gap: .45rem; white-space: normal; }
	.sdir-header .sdir-mark { flex: none; }
	.sdir-header nav { grid-column: 1 / -1; grid-row: 2; }
	.sdir-header .sdir-header-dashboard { padding-inline: .65rem; min-inline-size: 0; }
	.sdir-header-dashboard .sdir-icon { display: none; }
	.sdir-hero-copy, .sdir-hero-preview { min-inline-size: 0; }
}

.sdir-header { border-block-end: 0; }
.sdir-header .sdir-brand { font-size: 1.375rem; }
.sdir-header nav { column-gap: clamp(.65rem, 1.5vw, 1.25rem); }
.sdir-header nav > a { padding-inline: 0; font-size: .9375rem; }
.sdir-header nav > a:hover, .sdir-header nav > a[aria-current="page"] { background: transparent; text-decoration: underline; }
.sdir-header .sdir-nav-compare { border: 0; margin-inline-start: 0; }
.sdir-header .sdir-header-dashboard { padding-inline: 1.5rem; font-size: 1rem; }
.sdir-hero-band { padding-block: clamp(2rem, 4vw, 3rem) 7.5rem; }
.sdir-hero h1 { max-inline-size: 19ch; line-height: 1.05; }
.sdir-hero-copy > p:not(.sdir-kicker) { max-inline-size: 32.5rem; margin-block-end: 1.75rem; }
.sdir-search-panel { margin-block-start: -4.5rem; }
.sdir-home-search { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25rem; }
.sdir-search-panel button { gap: .55rem; }
.sdir-school-preview { padding: 1.5rem; border: 1px solid var(--sdir-line); border-radius: 1rem; background: white; }
.sdir-preview-heading { display: flex; align-items: center; gap: .875rem; }
.sdir-preview-heading .sdir-dashboard-icon { inline-size: 3rem; block-size: 3rem; flex: none; }
.sdir-preview-heading h2 { font: 700 1rem/1.35 Inter, sans-serif; letter-spacing: 0; }
.sdir-preview-heading a { color: var(--sdir-ink); text-decoration: none; }
.sdir-preview-heading a:hover { text-decoration: underline; }
.sdir-preview-heading p, .sdir-preview-rating, .sdir-preview-fee { margin: 0; font-size: .9rem; color: var(--sdir-muted); }
.sdir-preview-rating { display: flex; align-items: center; gap: .35rem; margin-block: 1rem .75rem; }
.sdir-preview-rating svg { color: #A75A00; }
.sdir-preview-tags { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.sdir-preview-tags li { padding: .3rem .75rem; border-radius: 2rem; background: var(--sdir-mint); color: #0A5B5A; font-size: .82rem; font-weight: 650; }
.sdir-preview-fee { border-block-start: 1px solid var(--sdir-line); margin-block-start: 1rem; padding-block-start: .75rem; }
@media (max-width: 1000px) { .sdir-home-search { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .sdir-header .sdir-brand { font-size: 1rem; } .sdir-header .sdir-header-dashboard { padding-inline: .65rem; font-size: .875rem; } }
@media (max-width: 425px) { .sdir-home-search { grid-template-columns: 1fr; } }

/* Shared visual system from the multi-page reference. */
.sdir-public {
	--sdir-ink: #14263A;
	--sdir-green: #0E6B5C;
	--sdir-paper: #F6F8F7;
	--sdir-line: #D6E0DC;
	--sdir-muted: #566774;
	--sdir-amber: #E8A33D;
}
.sdir-shell { width: min(100% - 2.5rem, 70rem); }
.sdir-header, .sdir-footer { background: #fff; border-color: var(--sdir-line); }
.sdir-header { border-block-end: 1px solid var(--sdir-line); }
.sdir-header .sdir-brand, .sdir-footer .sdir-brand, .sdir-header nav > a, .sdir-footer a { color: var(--sdir-ink); }
.sdir-header nav > a { padding: .45rem .6rem; }
.sdir-header nav > a:hover, .sdir-header nav > a[aria-current="page"] { background: var(--sdir-green); color: #fff; text-decoration: none; }
.sdir-header .sdir-header-inner { min-height: 4rem; }
.sdir-footer [aria-current="page"], .sdir-footer .sdir-header-inner > a:last-child { color: var(--sdir-green); }
.sdir-card, .sdir-profile { border-radius: .625rem; }
.sdir-institute-hero { margin-block-start: 2.25rem; padding: clamp(1.125rem, 4vw, 2.75rem); background: var(--sdir-green); color: white; border-radius: 1rem; }
.sdir-institute-hero h1 { font-size: clamp(2rem, 4.6vw, 3.2rem); color: white; }
.sdir-institute-hero > p { color: #D9F0EA; max-inline-size: 60ch; }
.sdir-type-tabs { border: 0; padding: 0; margin: 0 0 .75rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.sdir-type-tabs label { position: relative; cursor: pointer; }
.sdir-type-tabs input { position: absolute; opacity: 0; }
.sdir-type-tabs span { display: block; padding: .4rem .85rem; border: 1px solid #D9F0EA; border-radius: 99px; color: white; }
.sdir-type-tabs input:checked + span { background: white; color: #0A4E43; }
.sdir-type-tabs input:focus-visible + span { outline: 3px solid var(--sdir-amber); outline-offset: 2px; }
.sdir-institute-search-fields { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto; gap: .5rem; padding: .625rem; background: white; border-radius: .75rem; }
.sdir-institute-search-fields label > :is(input:not([type="checkbox"]), select) { margin-block-start: 0; }
.sdir-public .sdir-institute-search-fields button { background: var(--sdir-amber); color: #24190A; }
.sdir-type-grid a.sdir-card { border-inline-start: 5px solid var(--sdir-amber); color: var(--sdir-ink); font-weight: 700; text-decoration: none; }
.sdir-type-grid a.sdir-card:hover { border-color: var(--sdir-green); }
.sdir-profile > .sdir-community-submit { margin-block: 1rem; }
@media (max-width: 820px) {
	.sdir-institute-search-fields { grid-template-columns: 1fr; }
}
.sdir-directory-layout { display: grid; grid-template-columns: 16.25rem minmax(0, 1fr); gap: 1.5rem; margin-block-start: 1.5rem; }
.sdir-directory-layout .sdir-filters { grid-template-columns: minmax(0, 1fr); margin: 0; background: white; }
.sdir-directory-layout .sdir-map-panel { margin-block-start: 0; }
@media (max-width: 820px) { .sdir-directory-layout { grid-template-columns: minmax(0, 1fr); } }

.sdir-shell { width: min(calc(100% - 2.5rem), 67.5rem); }
.sdir-header .sdir-header-inner { display: flex; gap: .75rem; justify-content: space-between; }
.sdir-header .sdir-brand { font: 750 1.125rem/1.3 Inter, system-ui, sans-serif; gap: .6rem; }
.sdir-mark { background: transparent; inline-size: 2.375rem; block-size: 2.375rem; }
.sdir-header nav { flex-basis: auto; gap: .25rem; }
.sdir-header nav > a { padding: .55rem .75rem; font-size: .875rem; font-weight: 550; }
.sdir-institute-hero { background: #226758; margin-block-start: .85rem; padding: 2.75rem 2rem; }
.sdir-institute-hero h1 { font-family: Inter, system-ui, sans-serif; font-size: clamp(2rem, 4.05vw, 3rem); letter-spacing: -.04em; }
.sdir-institute-hero > p { max-inline-size: 72ch; margin-block-end: 1.65rem; }
.sdir-type-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sdir-type-grid a.sdir-card { padding: 1.1rem; min-block-size: 7.5rem; }
.sdir-type-grid a.sdir-card span { color: var(--sdir-muted); font-size: .875rem; font-weight: 400; }
.sdir-public .sdir-archive-subheading { margin-block-start: 1.5rem; }
.sdir-compare-tools { display: flex; justify-content: flex-end; gap: .75rem; padding-block-start: .65rem; }
.sdir-compare-tools a { font-weight: 700; }
@media (max-width: 820px) {
	.sdir-header nav { flex-basis: 100%; }
	.sdir-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sdir-institute-hero { padding: 1.75rem 1.125rem; }
}
@media (max-width: 400px) {
	.sdir-type-grid { grid-template-columns: 1fr; }
	.sdir-type-grid a.sdir-card { min-block-size: 0; }
}

/* Keep the brand and primary navigation aligned on one desktop row. */
.sdir-header .sdir-header-inner {
	flex-wrap: nowrap;
	min-block-size: 4rem;
	padding-block: .375rem;
}
.sdir-header .sdir-brand { white-space: nowrap; }
.sdir-header .sdir-mark { flex: none; }
.sdir-header nav {
	flex: 0 1 auto;
	flex-wrap: nowrap;
	min-inline-size: 0;
	margin-inline-start: auto;
}
.sdir-header nav > a {
	flex: none;
	white-space: nowrap;
	min-block-size: 2.5rem;
	border-radius: .5rem;
}
@media (max-width: 760px) {
	.sdir-header .sdir-header-inner { flex-wrap: wrap; gap: .25rem; }
	.sdir-header nav {
		flex-basis: 100%;
		overflow-x: auto;
		padding: .25rem .2rem;
	}
}

.sdir-community-archive > .sdir-shortcuts { margin-block: 1.5rem 1.25rem; }
.sdir-community-archive > .sdir-community-submit { max-inline-size: none; padding: 1rem 1.25rem; }
.sdir-community-archive > .sdir-community-submit summary { color: var(--sdir-green); }
.sdir-community-archive > .sdir-community-submit[open] summary { padding-block-end: .75rem; border-block-end: 1px solid var(--sdir-line); }

.sdir-course-archive h1 { font-size: clamp(1.85rem, 3.4vw, 2.55rem); }
.sdir-course-archive .sdir-archive-subheading { font-size: 1.4rem; margin-block-start: 2rem; }
.sdir-course-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sdir-course-card { min-inline-size: 0; padding: 1.2rem; }
.sdir-course-card h3 { font-size: 1.1rem; font-weight: 750; line-height: 1.35; margin-block-end: .3rem; }
.sdir-course-card h3 a { overflow-wrap: anywhere; }
.sdir-course-badge { align-self: flex-start; margin-block-end: .55rem; padding: .16rem .5rem; background: #fff1d8; color: #624011; border-radius: .35rem; font-size: .73rem; font-weight: 700; }
.sdir-course-card .sdir-course-provider { margin-block-end: 1rem; font-size: .88rem; }
.sdir-course-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; border-block-start: 1px solid var(--sdir-line); padding-block-start: .7rem; margin-block-start: auto; font-size: .82rem; color: var(--sdir-muted); }
.sdir-course-meta strong { color: var(--sdir-ink); margin-inline-start: auto; }
@media (max-width: 810px) { .sdir-course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .sdir-course-grid { grid-template-columns: minmax(0, 1fr); } }

/* Directory utility bar and Explore navigation. */
.sdir-mega-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 110;
	--sdir-header-navy: #0F2A43;
	--sdir-header-amber: #F4A62A;
	--sdir-header-muted: #4A5F73;
	--sdir-header-ground: #F6F8FB;
}
.admin-bar .sdir-mega-header { inset-block-start: 32px; }
.sdir-utility-row { display: flex; align-items: center; gap: clamp(.65rem, 2vw, 1.5rem); min-block-size: 4.1rem; }
.sdir-global-search { display: flex; flex: 1; min-inline-size: 0; max-inline-size: 36rem; margin-inline: auto; }
.sdir-mega-header .sdir-global-search select { inline-size: 8rem; flex: none; border-start-end-radius: 0; border-end-end-radius: 0; }
.sdir-mega-header .sdir-global-search input { flex: 1; min-inline-size: 0; border-radius: 0; border-inline: 0; }
.sdir-mega-header .sdir-global-search button { display: grid; place-items: center; padding: 0 .85rem; border-start-start-radius: 0; border-end-start-radius: 0; }
.sdir-language { flex: none; font-size: .875rem; color: var(--sdir-header-muted); }
.sdir-mega-header .sdir-account { display: inline-flex; align-items: center; justify-content: center; min-block-size: 3rem; min-inline-size: 3rem; padding-inline: .75rem; border-radius: .6rem; background: #FFF0D8; color: var(--sdir-header-navy); font-weight: 700; white-space: nowrap; }
.sdir-nav-band { border-block-start: 1px solid #DCE5EE; background: var(--sdir-header-ground); }
.sdir-mega-header .sdir-menu-row { position: relative; display: flex; align-items: stretch; gap: 1.25rem; min-block-size: 3rem; margin-inline: auto; }
.sdir-menu-row > a, .sdir-menu-row .sdir-explore-toggle, .sdir-menu-row .sdir-community-menu a {
	display: inline-flex; align-items: center; gap: .4rem; min-block-size: 3rem; padding: .4rem .25rem; border-radius: 0;
	background: transparent; color: var(--sdir-header-navy); font-size: .925rem; font-weight: 650; white-space: nowrap;
}
.sdir-mega-header .sdir-menu-row > a:hover, .sdir-mega-header .sdir-menu-row > a[aria-current="page"],
.sdir-menu-row a[aria-current="page"], .sdir-menu-row .sdir-explore-toggle[aria-expanded="true"] {
	background: transparent; color: var(--sdir-header-navy); box-shadow: inset 0 -3px var(--sdir-header-amber);
}
.sdir-menu-row .sdir-explore-toggle:hover, .sdir-menu-row .sdir-explore-toggle:focus { background: transparent; color: var(--sdir-header-navy); }
.sdir-menu-row .sdir-community-menu { display: flex; gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.sdir-nav-dashboard { margin-inline-start: auto; }
.sdir-mega-header .sdir-drawer-toggle, .sdir-mega-header .sdir-drawer-close { display: none; }
.sdir-explore-panel { position: absolute; z-index: 1; inset-inline: 0; inset-block-start: 100%; overflow-y: auto; max-block-size: 70vh; background: white; border: 1px solid #DCE5EE; border-radius: 0 0 1rem 1rem; box-shadow: 0 14px 36px #0f2a4326; }
.sdir-explore-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; padding: 1.3rem; }
.sdir-explore-heading { display: flex; align-items: center; gap: .45rem; margin-block-end: .35rem; font-weight: 750; color: var(--sdir-header-navy); }
.sdir-explore-heading svg { color: #0A6261; }
.sdir-explore-description { min-block-size: 3em; margin-block-end: .5rem; font-size: .8rem; color: var(--sdir-header-muted); }
.sdir-explore-group ul { margin: 0; padding: 0; list-style: none; }
.sdir-explore-group li a, .sdir-explore-unavailable { display: block; padding-block: .35rem; font-size: .825rem; }
.sdir-explore-unavailable { color: var(--sdir-header-muted); }
.sdir-explore-deadlines { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; padding: .75rem 1.3rem; background: #FFF0D8; color: var(--sdir-header-navy); }
.sdir-explore-deadlines a { padding: .45rem .65rem; border-radius: .45rem; background: var(--sdir-header-amber); color: var(--sdir-header-navy); font-weight: 700; }
.sdir-header-scrolled .sdir-brand { transform: scale(.92); transform-origin: left center; }
[dir="rtl"] .sdir-header-scrolled .sdir-brand { transform-origin: right center; }
.sdir-nav-lock { overflow: hidden; }

@media (max-width: 767px) {
	.admin-bar .sdir-mega-header { inset-block-start: 46px; }
	.sdir-utility-row { flex-wrap: wrap; gap: .45rem .65rem; padding-block: .5rem; }
	.sdir-utility-row .sdir-brand { margin-inline-end: auto; }
	.sdir-global-search { order: 2; flex-basis: 100%; max-inline-size: none; }
	.sdir-mega-header.sdir-menu-enhanced .sdir-drawer-toggle, .sdir-drawer-open .sdir-menu-row .sdir-drawer-close { display: inline-flex; align-items: center; min-block-size: 3rem; }
	.sdir-mega-header.sdir-menu-enhanced:not(.sdir-drawer-open) .sdir-nav-band { display: none; }
	.sdir-drawer-open .sdir-nav-band { position: fixed; inset: 0; padding-block: 1rem; overflow-y: auto; background: white; }
	.sdir-drawer-open .sdir-menu-row, .sdir-drawer-open .sdir-community-menu { display: flex; flex-direction: column; align-items: stretch; gap: .25rem; }
	.sdir-drawer-open .sdir-drawer-close { align-self: flex-end; }
	.sdir-drawer-open .sdir-explore-toggle, .sdir-drawer-open .sdir-menu-row .sdir-community-menu a { inline-size: 100%; }
	.sdir-drawer-open .sdir-nav-dashboard { margin-inline-start: 0; }
	.sdir-explore-panel { position: static; max-block-size: none; box-shadow: none; }
	.sdir-explore-grid { grid-template-columns: 1fr; padding: 1rem; }
	.sdir-explore-description { min-block-size: 0; }
	.sdir-explore-group li a, .sdir-explore-deadlines a { display: flex; align-items: center; min-block-size: 3rem; }
	.sdir-mega-header:not(.sdir-menu-enhanced) .sdir-menu-row { flex-wrap: wrap; }
}
@media (max-width: 395px) {
	.sdir-utility-row .sdir-mark { inline-size: 1.75rem; }
	.sdir-mega-header .sdir-brand { font-size: .96rem; gap: .2rem; }
	.sdir-language { font-size: .75rem; }
}

.sdir-mega-header nav { overflow: visible; }
.sdir-explore { display: flex; }
.sdir-menu-row > a { align-self: stretch; }
.sdir-explore-panel a { white-space: normal; }
.sdir-nav-lock .sdir-mega-header { z-index: 100000; }
@media (max-width: 767px) {
	.sdir-drawer-open .sdir-explore { display: block; }
	.sdir-mega-header .sdir-drawer-toggle, .sdir-mega-header .sdir-drawer-close { padding-inline: .8rem; }
}

/* Keep the utility bar distinct from the homepage search. */
.sdir-mega-header .sdir-utility-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: clamp(.6rem, 2vw, 1.5rem); }
.sdir-mega-header .sdir-global-search { inline-size: min(100%, 36rem); max-inline-size: none; }
.sdir-mega-header .sdir-global-search :is(select, input, button) { min-block-size: 2.65rem; }
.sdir-mega-header .sdir-global-search select { padding-inline-end: .4rem; inline-size: 8.5rem; }
.sdir-mega-header .sdir-account { min-block-size: 2.65rem; }
.sdir-mega-header .sdir-menu-row > a { border-radius: 0; box-shadow: none; }
.sdir-mega-header .sdir-menu-row > a:is(:hover, [aria-current="page"]) { box-shadow: inset 0 -3px var(--sdir-header-amber); }
.sdir-institute-hero { margin-block-start: clamp(1.25rem, 3vw, 2.25rem); padding: clamp(1.25rem, 4vw, 2.5rem); }
.sdir-institute-hero h1 { font-family: "Space Grotesk", Inter, system-ui, sans-serif; font-size: clamp(1.85rem, 4vw, 2.85rem); }
.sdir-institute-hero > p { margin-block-end: 1.3rem; }
.sdir-home-admissions { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem 1.25rem; margin-block: 1rem; padding: .9rem 1.1rem; border: 1px solid #EAD5AC; border-radius: .75rem; background: #FFF7E8; box-sizing: border-box; }
.sdir-public .sdir-home-admissions h2 { font-size: 1.1rem; letter-spacing: 0; }
.sdir-home-admissions ul { display: flex; flex-wrap: wrap; gap: .35rem 1rem; list-style: none; margin: 0; padding: 0; font-size: .84rem; }
.sdir-home-admissions time { color: var(--sdir-muted); margin-inline-start: .3rem; white-space: nowrap; }
.sdir-home-admissions-link { font-size: .85rem; font-weight: 700; }
.sdir-home-courses .sdir-card p { margin: 0; }
@media (max-width: 767px) {
	.sdir-mega-header .sdir-utility-row { grid-template-columns: minmax(0, 1fr) auto auto auto; gap: .45rem; }
	.sdir-mega-header .sdir-utility-row .sdir-brand { margin-inline-end: 0; white-space: normal; min-inline-size: 0; }
	.sdir-mega-header .sdir-global-search { grid-column: 1 / -1; inline-size: 100%; }
	.sdir-mega-header .sdir-global-search :is(select, input, button), .sdir-mega-header .sdir-account { min-block-size: 3rem; }
	.sdir-mega-header .sdir-global-search select { inline-size: clamp(6rem, 25vw, 8rem); }
	.sdir-home-admissions { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 395px) {
	.sdir-mega-header .sdir-language { font-size: .7rem; white-space: nowrap; }
	.sdir-mega-header .sdir-account, .sdir-mega-header .sdir-drawer-toggle { padding-inline: .45rem; font-size: .8rem; }
}
