:root {
	--acaa-leaf: #86bc42;
	--acaa-leaf-accent: #93c23d;
	--acaa-navy: #0d1721;
	--acaa-slate: #242c42;
	--acaa-paper: #f7f5e7;
	/* Pulled directly from the live site's compiled CSS (edugate theme, "Dynamic Styling" block). */
	--acaa-teal: #105b63;
	--acaa-gold: #ffde8d;
	--acaa-icon-accent: #cdde47;
}

body {
	font-family: "Roboto", -apple-system, "Segoe UI", sans-serif;
}

h1, h2, h3, h4, h5, h6,
.site-title,
.entry-title {
	font-family: "Sorts Mill Goudy", Georgia, serif;
}

blockquote,
.testimonial {
	font-family: "Crimson Text", Georgia, serif;
	font-style: italic;
}

.button,
.wp-block-button__link {
	font-family: "Questrial", "Roboto", sans-serif;
	letter-spacing: 0.02em;
}

/* ===== Top bar =====
   Colors (bg/text/link/hover) are set via GP's real Customizer options
   (Appearance > Customize > Colors > Top Bar) in setup/fix-gp-colors.php —
   NOT here. This file only holds what the Customizer can't do: layout,
   icon spacing, the language-switcher list, current-language emphasis. */

/* Widgets render as sibling <aside> elements; push the first (contact info)
   left and cluster the rest (social, language switcher) together on the
   right, matching the live site's topbar-left / topbar-right split. */
.inside-top-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
}

.inside-top-bar > *:first-child {
	margin-right: auto;
}

.top-bar-contact,
.top-bar-social {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem;
	font-size: 0.85rem;
}

.top-bar-contact a,
.top-bar-contact span {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
}

.top-bar-contact svg {
	color: var(--acaa-icon-accent);
	flex-shrink: 0;
}

.top-bar-social a {
	display: inline-flex;
	color: #ffffff;
}

.top-bar-social a:hover {
	color: var(--acaa-gold);
}

.widget_polylang ul {
	display: flex;
	gap: 0.9rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.85rem;
}

.widget_polylang a {
	color: #ffffff;
	text-decoration: none;
}

.widget_polylang a:hover {
	color: var(--acaa-gold);
}

.widget_polylang .current-lang a {
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ===== Header / main nav =====
   Colors (nav/subnav bg/text/hover/current, uppercase transform) are set
   via GP's real Customizer options in setup/fix-gp-colors.php. This file
   only adds what the Customizer doesn't cover: the drop shadow, logo max
   width, the hover/active underline, and the dropdown's lowercase-style
   (capitalize) text — GP has no separate transform setting for submenus. */
.site-header {
	box-shadow: 3px 0 7px rgba(0, 0, 0, 0.15);
}

.site-header .inside-header {
	padding-top: 10px;
	padding-bottom: 10px;
}

.site-logo img {
	max-width: 150px;
}

.main-navigation .main-nav ul li a {
	border-bottom: 3px solid transparent;
}

.main-navigation .main-nav ul li[class*="current-menu-"] > a,
.main-navigation .main-nav ul li:hover > a {
	border-bottom-color: var(--acaa-leaf);
}

.main-navigation ul ul {
	min-width: 240px;
	border-bottom: 3px solid var(--acaa-leaf);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.main-navigation ul ul li a {
	text-transform: capitalize;
}

/* ===== Footer =====
   Colors (widget bg/text/link/hover, widget title, copyright bar) are set
   via GP's real Customizer options in setup/fix-gp-footer-colors.php,
   matching the live site's teal + leaf-green heading treatment. This file
   only adds the contact-row icon spacing GP has no setting for. */
.acaa-footer-contact p {
	display: flex;
	align-items: flex-start;
	gap: 0.3em;
	margin: 0 0 0.9rem;
}

/* Page-title hero banner (see ib_hero() in setup/build-interior-pages.php):
   pull it flush against the header. GP's "separate-containers" layout adds
   20px site-main margin + 40px (30px on mobile) inside-article padding
   above entry-content; cancel exactly that so the hero photo isn't floating
   in a white gap, matching the live site's banner sitting flush under nav. */
.entry-content > .wp-block-cover:first-child {
	margin-top: -60px;
}

@media (max-width: 768px) {
	.entry-content > .wp-block-cover:first-child {
		margin-top: -50px;
	}
}

/* Staff directory grid (see ib_staff_card() in build-interior-pages.php):
   root cause found via CDP's CSS.getMatchedStylesForNode — GeneratePress's
   own theme CSS has `.site-main .wp-block-group__inner-container { padding:
   40px }`, meant to pad a page's outermost content group. It cascades into
   EVERY nested wp:group though, including these small per-staff-member
   card wrappers (each ~165px wide in the 4-column grid): 80px of padding
   (40px each side) eaten from a 165px column left only ~85px for the
   photo — exactly the ~90px-with-lots-of-whitespace symptom reported,
   including emails word-wrapping mid-string. Zero the padding back out
   for staff cards specifically, rather than touching the site-wide rule
   (which other, larger top-level groups rely on). GP's own rule is
   `.site-main .wp-block-group__inner-container` — same specificity as a
   plain `.acaa-staff-card .wp-block-group__inner-container` override, so
   the extra `.site-main` ancestor is included here too, to win outright
   rather than depend on source order. */
.site-main .acaa-staff-card .wp-block-group__inner-container {
	padding: 0;
}

.acaa-staff-card figure.aligncenter img {
	width: 100%;
	height: auto;
}

/* Interior-page sibling nav (matches the live site's per-section sidebar list). */
.acaa-sibling-nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.acaa-sibling-nav li {
	padding: 0.5rem 0;
	border-bottom: 1px solid #e2ded0;
}

.acaa-sibling-nav a {
	color: var(--acaa-slate);
}

.acaa-sibling-nav strong {
	color: var(--acaa-leaf);
}

/* Photo carousel (see assets/js/carousel.js and ad_carousel() in
   build-admissions-page.php) — plain HTML/CSS/JS slider, no plugin/GB Pro,
   same approach as the sticky-nav problem. */
.acaa-carousel {
	position: relative;
	max-width: 900px;
	margin: 0 auto 1.5rem;
}

.acaa-carousel-viewport {
	overflow: hidden;
	border-radius: 6px;
}

.acaa-carousel-track {
	display: flex;
	transition: transform 0.4s ease;
}

.acaa-carousel-slide {
	flex: 0 0 100%;
}

.acaa-carousel-slide img {
	width: 100%;
	aspect-ratio: 5 / 3;
	object-fit: cover;
	display: block;
}

.acaa-carousel-prev,
.acaa-carousel-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(13, 23, 33, 0.55);
	color: #fff;
	border: none;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 1.2rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.acaa-carousel-prev:hover,
.acaa-carousel-next:hover {
	background: rgba(13, 23, 33, 0.8);
}

.acaa-carousel-prev {
	left: 0.75rem;
}

.acaa-carousel-next {
	right: 0.75rem;
}

.acaa-carousel-dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem;
	margin-top: 0.85rem;
}

.acaa-carousel-dot {
	width: 9px;
	height: 9px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: #d9d5c5;
	cursor: pointer;
}

.acaa-carousel-dot.is-active {
	background: var(--acaa-leaf);
}

/* Homepage hero carousel — same .acaa-carousel component as the Admissions
   gallery above, styled as a full-bleed photo+overlay slider (replaces the
   live site's Slider Revolution) instead of a bordered photo strip. */
.acaa-hero-carousel {
	max-width: none;
	margin: 0;
}

.acaa-hero-carousel .acaa-carousel-viewport {
	border-radius: 0;
}

.acaa-hero-slide {
	height: 520px;
	background-size: cover;
	background-position: center;
	background-color: var(--acaa-navy);
}

.acaa-hero-slide-overlay {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(13, 23, 33, 0.55);
	padding: 2rem;
}

.acaa-hero-slide-content {
	max-width: 640px;
	text-align: center;
}

.acaa-hero-slide-content .wp-block-heading {
	margin: 0 0 0.75rem;
}

.acaa-hero-carousel .acaa-carousel-prev {
	left: 1.5rem;
}

.acaa-hero-carousel .acaa-carousel-next {
	right: 1.5rem;
}

.acaa-hero-carousel .acaa-carousel-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 1rem;
	margin-top: 0;
}

@media (max-width: 768px) {
	.acaa-hero-slide {
		height: 420px;
	}
}

/* Section headings render ALL-CAPS on live (its "center-title" class) —
   local built them in normal Title Case. Scoped to h2s inside page content
   so it doesn't touch the site title, nav, or the hero h1 (which already
   sets its own uppercase transform inline, see ib_hero()). */
.entry-content h2.wp-block-heading {
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

/* CTA banner pattern */
.acaa-cta-banner .wp-block-button__link {
	font-family: "Questrial", "Roboto", sans-serif;
}
