/* Approved Taste concept. Keep WordPress content, navigation and image settings.
 * Shared chrome is consistent across pages; content rules only target the home.
 * Palette: institutional indigo, cool paper, restrained gold. Radius: 4px.
 */
:root {
	--brand: #374982;
	--brand-dark: #2b3a6a;
	--gold: #d4aa45;
}

body.home {
	background-color: #eff8fd;
	background-image: var(--inner-page-background-image, url("../images/home-main-bg.jpg"));
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	background-attachment: fixed;
}
/* Keep the 1200px content alignment, but let the page backdrop reach both edges. */
.site-header { background: transparent; }
/* Reveal the top-aligned page image instead of covering it with a solid strip. */
.site-header .topbar {
	background: rgba(55, 73, 130, .18);
	color: #26365f;
	min-height: 30px;
	line-height: 30px;
	font-weight: 500;
}
.site-header .topbar a { color: #26365f; }
.site-header .topbar a:hover,
.site-header .topbar a:focus-visible { color: #172447; text-decoration: underline; text-underline-offset: 3px; }
.branding { min-height: 108px; gap: 20px; }
.brand-lockup { gap: 18px; }
.brand-lockup__school { width: 385px; }
.brand-lockup__admissions-wrap { width: auto; }
.brand-lockup__name { color: #263868; font: bold clamp(18px, 2vw, 28px)/1.25 "Kaiti SC", KaiTi, STKaiti, serif; white-space: nowrap; text-shadow: 0 1px 2px #fff; }
.brand-lockup__divider { height: 42px; background: #dce3ed; }
.header-search__code { font-family: inherit; font-size: 14px; }
.header-search__code strong { font-size: 23px; }
.site-search { border-color: #c9d3e4; border-radius: 4px; }
.site-search button:hover { background: var(--brand-dark); }

#primary-navigation { background: var(--brand); }
.site-header #primary-navigation,
.site-header #primary-navigation > .shell { height: 54px; }
.site-header #primary-navigation > .shell { width: 100%; }
.site-header #primary-navigation .primary-nav__menu { gap: 0; }
.site-header #primary-navigation .primary-nav__menu > li { flex: 1 1 0; }
.site-header #primary-navigation .primary-nav__menu > li > a {
	height: 54px;
	padding: 0 10px;
	line-height: 54px;
	font-size: 15px;
	white-space: nowrap;
}
#primary-navigation .primary-nav__menu > li::after { display: none; }
.site-header #primary-navigation .sub-menu { top: 100%; }
.site-header #primary-navigation a:hover,
.site-header #primary-navigation a:focus-visible,
.site-header #primary-navigation .current-menu-item > a,
.site-header #primary-navigation .current-menu-ancestor > a {
	background: var(--brand-dark);
	color: #fff;
	box-shadow: none;
}

.home .site-main.home-page--reference {
	width: min(1200px, calc(100% - 40px));
	max-width: 1200px;
	margin-inline: auto;
}
.home-reference-hero { padding: 0; background: #edf3f9; }
.home-reference-hero .hero-slider { min-height: 0; height: auto; aspect-ratio: 1200 / 340; }
.home-reference-hero .hero-slide { height: 100%; min-height: 0; background-size: cover; }
.home-reference-hero .hero-slide__brand-copy { min-height: 0; padding: 28px 38px; }
.home-reference-hero .hero-slide::before {
	display: none;
	background: none;
}
.home-reference-hero .hero-slide__image-link { position: absolute; inset: 0; z-index: 1; }
.home-reference-hero .hero-slide__image-link:focus-visible { outline: 3px solid var(--brand); outline-offset: -5px; }
.home-reference-hero .hero-slider__controls { z-index: 3; }
.home-reference-hero .hero-slide p.hero-slide__headline {
	font-family: inherit;
	font-size: clamp(28px, 3.3vw, 42px);
	font-weight: 750;
	line-height: 1.4;
	letter-spacing: .035em;
	text-shadow: none;
}
.home-reference-hero .hero-slide p.hero-slide__slogan {
	font-family: inherit;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .06em;
	color: #35486d;
}
.home-reference-hero .hero-slide__accent { height: 2px; margin: 16px 0; }
.home-reference-hero .hero-slider__controls { right: 22px; bottom: 15px; margin: 0; }
.home-reference-hero .hero-slider__controls > button {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	background: var(--brand);
	border: 1px solid rgba(255,255,255,.7);
	color: #fff;
	cursor: pointer;
}
.home-reference-hero .hero-slider__controls [data-dots] button { cursor: pointer; background: #d6e0ee; }

.home-middle { padding: 22px 0 28px; background: transparent; }
.home-quick-cards {
	grid-template-columns: repeat(4, minmax(0,1fr));
	gap: 0;
	padding: 8px;
	margin-bottom: 28px;
	background: #fff;
	border: 1px solid #eaf0f6;
	border-radius: 4px;
}
.home-quick-card {
	min-height: 86px;
	gap: 18px;
	padding: 14px 20px;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}
.home-quick-card + .home-quick-card { border-left: 1px solid #e0e6f0; }
.home-quick-card.home-quick-card--featured { background: #edf2fc; border-radius: 4px; }
.home-quick-card .home-quick-card__icon {
	width: 42px;
	height: 46px;
	flex-basis: 42px;
	font-size: 39px;
	color: var(--brand);
	background: none;
	border-radius: 0;
}
.home-quick-card__copy strong { font-size: 19px; }
.home-quick-card__copy small { font-size: 12px; color: #5e6b80; }
.home-quick-card__arrow { font-size: 25px; }
.home-quick-card:hover,
.home-quick-card:focus-visible { background: #edf2fc; box-shadow: none; transform: none; }

.home-middle__columns { grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); gap: 24px; margin-bottom: 32px; }
.home-middle-panel { padding: 24px; border: 0; border-radius: 4px; box-shadow: none; background: #fff; }
.home-middle-heading { min-height: 40px; border-color: #e1e7f0; }
.home-middle-heading h2 { padding: 0 0 12px; font-size: 22px; }
.home-middle-heading h2::before,
.home-middle-news__tabs::before { display: none; }
.home-middle-heading h2::after { left: 0; height: 2px; width: 100%; max-width: 100%; background: var(--gold); }
.home-middle-news__tabs { padding: 0; gap: 28px; }
.home-middle-news__tabs a { color: #465773; font-size: 18px; font-weight: 500; }
.home-middle-news__tabs a[aria-selected="true"] { font-weight: 700; }
.home-middle-news__tabs a[aria-selected="true"]::after { height: 2px; background: var(--gold); }
.home-middle-heading__more { color: #506488; font-size: 13px; }
.home-middle-news__list a { grid-template-columns: 86px minmax(0,1fr) 12px; gap: 14px; min-height: 66px; font-size: 15px; color: #263754; }
.home-middle-news__list time { display: block; color: #63728b; font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.home-middle-news__arrow { color: #6c7d98; font-size: 22px; text-align: right; }
.home-middle-news__list li,
.home-middle-policy__list li,
.home-program-group li { border-color: #edf0f5; }
.home-middle-news__list li:last-child,
.home-middle-policy__list li:last-child { border: 0; }
.home-middle-policy__list a { min-height: 50px; color: #344562; gap: 10px; }
.home-middle-policy__list .dashicons { color: var(--brand); }
.home-middle-policy__list time { color: #63728b; font-size: 11px; }
.home-middle-news__list a:hover,
.home-middle-policy__list a:hover,
.home-program-group li a:hover { color: var(--brand); background: #f1f5fb; }
.home-middle-empty { color: #63728b; }
.home-middle-campus {
	min-height: 108px;
	padding: 18px 52px 18px 22px;
	margin-top: 14px;
	border-radius: 4px;
	background: linear-gradient(90deg, rgba(43,58,106,.94), rgba(43,58,106,.62) 55%, rgba(43,58,106,.06)), var(--campus-image, none) center / cover;
	color: #fff;
}
.home-middle-campus strong { color: #fff; font-family: inherit; font-size: 20px; line-height: 1.5; }
.home-middle-campus > span { right: 16px; background: #fff; color: var(--brand); }
.home-middle-campus:hover { color: #fff; }

.home-middle-programs { padding: 0; background: transparent; }
.home-middle-programs > .home-middle-heading { border: 0; }
.home-middle-programs > .home-middle-heading h2 { padding-bottom: 0; font-size: 27px; }
.home-middle-programs > .home-middle-heading h2::after { display: none; }
.home-middle-heading__intro { margin: 0; color: #53647e; font-size: 14px; }
.home-middle-heading__intro::before { display: inline-block; width: 34px; height: 2px; margin: 0 18px 4px 6px; background: var(--gold); content: ""; }
.home-middle-programs .home-middle-heading__more { margin-bottom: 0; }
.home-middle-programs__grid { gap: 20px; margin-top: 18px; }
.home-program-group { border: 1px solid #e6ecf4; border-radius: 4px; background: #fff; }
.home-program-group .home-program-group__header { display: block; min-height: 0; padding: 0; background: none; color: var(--brand); }
.home-program-group__image { display: block; width: 100%; height: 130px; object-fit: cover; }
.home-program-group .home-program-group__header strong { display: block; padding: 14px 20px 10px; color: var(--brand); font-size: 19px; }
.home-program-group ul { padding: 0 20px 8px; }
.home-program-group li a { min-height: 44px; font-size: 14px; }

footer.official-footer { padding-top: 0; padding-bottom: 24px; background: #f5f7fb; }
.official-footer__partners { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 28px; margin-bottom: 24px; }
.official-footer__partners h2 { margin: 0; font-size: 24px; color: var(--brand); white-space: nowrap; }
.official-footer__partners h2::before { display: none; }
.official-footer__partners h2::after { width: 34px; height: 2px; background: var(--gold); }
.official-footer__partners-image { padding: 12px; border-radius: 4px; background: #fff; }
.official-footer__panel { padding: 22px 28px 28px; }
.official-footer__links { padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.25); }
.official-footer__links strong { font-size: 13px; }
.official-footer__links a { font-size: 12px; }
.official-footer__body { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 30px; }
.official-footer__channels figcaption { font-size: 12px; white-space: normal; }
footer.official-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

.floating-contact { right: 12px; gap: 0; }
.floating-contact .floating-contact__trigger { width: 62px; height: 76px; border: 1px solid #e0e7f1; background: #fff; color: var(--brand); box-shadow: none; }
.floating-contact .floating-contact__trigger img { width: 26px; height: 26px; filter: brightness(0) saturate(100%) invert(27%) sepia(22%) saturate(1493%) hue-rotate(186deg) brightness(94%) contrast(88%); }
.floating-contact .floating-contact__trigger > span { display: block; font-size: 11px; }
.floating-contact .floating-contact__trigger:hover,
.floating-contact .floating-contact__trigger:focus-visible { background: #eaf0fb; color: var(--brand-dark); outline: 2px solid var(--brand); outline-offset: -2px; }

@media (max-width: 1200px) {
	.brand-lockup__school { width: 340px; }
	.brand-lockup__admissions-wrap { width: auto; }
	.brand-lockup__admissions { width: 130px; }
	.header-search { gap: 12px; }
	.header-search__code { font-size: 12px; }
	.header-search__code strong { font-size: 19px; }
	.home-quick-card { gap: 12px; padding: 14px; }
	.home-quick-card__copy strong { font-size: 17px; }
	.floating-contact { right: 0; }
}
@media (max-width: 900px) {
	.site-header #primary-navigation,
	.site-header #primary-navigation > .shell { height: auto; }
	.site-header #primary-navigation .primary-nav__menu > li > a { height: auto; padding: 12px 16px; line-height: 1.5; text-align: left; }
	.site-header #primary-navigation .sub-menu { top: auto; }
	.branding { min-height: 88px; }
	.home-quick-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.home-quick-card:nth-child(3) { border-left: 0; }
	.home-quick-card:nth-child(n+3) { border-top: 1px solid #e0e6f0; }
	.home-middle__columns { grid-template-columns: 1fr; }
	.home-reference-hero .hero-slider { aspect-ratio: 1200 / 340; height: auto; }
	.home-reference-hero .hero-slide__brand-copy { padding: 24px; }
	.home-reference-hero .hero-slide p.hero-slide__headline { font-size: 30px; }
	.official-footer__body { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
	.home .site-main.home-page--reference,
	#primary-navigation,
	.official-footer__shell { width: calc(100% - 28px); }
	.brand-lockup__school { width: 100%; max-width: 100%; }
	.branding { min-height: 78px; }
	.home-reference-hero .hero-slider { height: auto; }
	.home-reference-hero .hero-slide__brand-copy { padding: 22px 18px 40px; }
	.home-reference-hero .hero-slide p.hero-slide__headline { font-size: 27px; }
	.home-reference-hero .hero-slide p.hero-slide__slogan { font-size: 12px; letter-spacing: 0; }
	.home-middle { padding-top: 14px; }
	.home-quick-cards { margin-bottom: 18px; padding: 4px; }
	.home-quick-card { min-height: 82px; padding: 10px; gap: 8px; }
	.home-quick-card .home-quick-card__icon { width: 32px; flex-basis: 32px; font-size: 29px; }
	.home-quick-card__copy strong { font-size: 15px; }
	.home-quick-card__copy small { font-size: 10px; }
	.home-middle-panel { padding: 18px 14px; }
	.home-middle__columns { gap: 18px; margin-bottom: 24px; }
	.home-middle-news__tabs { gap: 16px; }
	.home-middle-news__tabs a { font-size: 15px; }
	.home-middle-heading__more { font-size: 12px; }
	.home-middle-news__list a { min-height: 64px; grid-template-columns: 68px minmax(0,1fr) 10px; gap: 8px; font-size: 14px; }
	.home-middle-news__list time { font-size: 10px; }
	.home-middle-news__list a > span:not(.home-middle-news__arrow) { white-space: normal; overflow-wrap: anywhere; }
	.home-middle-programs { padding: 0; }
	.home-middle-heading__intro { display: none; }
	.home-middle-programs__grid { grid-template-columns: 1fr; }
	.home-program-group__image { height: 150px; }
	.official-footer__partners { grid-template-columns: 1fr; gap: 14px; }
	.official-footer__partners h2 { font-size: 22px; }
	.official-footer__panel { padding: 20px 16px; }
	.official-footer__links { gap: 12px 0; }
	.official-footer__channels { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.floating-contact .floating-contact__trigger { width: 48px; height: 54px; padding: 5px; }
	.floating-contact .floating-contact__trigger img { width: 20px; height: 20px; }
	.floating-contact .floating-contact__trigger > span { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.home-quick-card,
	.home-middle a,
	.site-header #primary-navigation .sub-menu { transition: none; }
}
