/* =========================================================================
   CATALYST ADVISORY — COMPONENTS
   ========================================================================= */

/* -------------------------------------------------------------------------
   Buttons
   ---------------------------------------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.85em 1.6em;
	border-radius: var(--ca-radius-sm);
	font-weight: 600;
	font-size: var(--ca-step--1);
	line-height: 1.2;
	text-decoration: none;
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: background-color 0.2s var(--ca-ease), color 0.2s var(--ca-ease), border-color 0.2s var(--ca-ease), transform 0.2s var(--ca-ease);
}
.btn:active { transform: translateY(1px); }

.btn-primary { background: var(--ca-accent); color: var(--ca-primary); border-color: var(--ca-accent); }
.btn-primary:hover { background: #E08E0B; border-color: #E08E0B; color: var(--ca-primary); }

.btn-secondary { background: transparent; color: var(--ca-white); border-color: rgba(255,255,255,0.55); }
.btn-secondary:hover { background: rgba(255,255,255,0.12); color: var(--ca-white); border-color: var(--ca-white); }

.section:not(.section--dark) .btn-secondary,
.site-header .btn-secondary {
	color: var(--ca-primary);
	border-color: var(--ca-primary);
}
.section:not(.section--dark) .btn-secondary:hover { background: var(--ca-primary); color: var(--ca-white); }

.btn--sm { padding: 0.6em 1.2em; font-size: var(--ca-step--1); }
.btn--block { width: 100%; justify-content: center; }
.btn--header { display: none; }

.link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-weight: 600;
	font-size: var(--ca-step--1);
	color: var(--ca-blue);
	text-decoration: none;
}
.link-arrow .icon { transition: transform 0.2s var(--ca-ease); }
.link-arrow:hover .icon { transform: translateX(3px); }

/* -------------------------------------------------------------------------
   Icons
   ---------------------------------------------------------------------- */
.icon { flex-shrink: 0; }

/* -------------------------------------------------------------------------
   Top contact bar
   ---------------------------------------------------------------------- */
.topbar {
	background: var(--ca-primary);
	color: rgba(255,255,255,0.85);
	font-size: var(--ca-step--1);
	display: none;
}
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 0.55rem; }
.topbar__contact { display: flex; align-items: center; gap: 1.5rem; }
.topbar__contact li { display: flex; align-items: center; gap: 0.45em; }
.topbar__contact a { color: inherit; text-decoration: none; display: flex; align-items: center; gap: 0.45em; }
.topbar__contact a:hover { color: var(--ca-sky); }
.topbar__hours { color: rgba(255,255,255,0.65); }

/* -------------------------------------------------------------------------
   Header & primary navigation
   ---------------------------------------------------------------------- */
.site-header {
	background: var(--ca-white);
	border-bottom: 1px solid var(--ca-border);
	z-index: 100;
}
.site-header--sticky { position: sticky; top: 0; }
.site-header--sticky.is-scrolled { box-shadow: 0 6px 20px -12px rgba(16,42,67,0.25); }

.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 0.9rem; }

.site-branding { display: flex; flex-direction: column; }
.site-branding__link { display: inline-flex; align-items: center; }
.site-branding__link--text { font-weight: 800; font-size: var(--ca-step-2); color: var(--ca-primary); text-decoration: none; letter-spacing: -0.01em; }
.site-branding__logo { height: 40px; width: auto; }
.site-branding__tagline { margin: 0.1rem 0 0; font-size: var(--ca-step--1); color: var(--ca-muted); }

.nav-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	background: none;
	border: 1.5px solid var(--ca-border);
	border-radius: var(--ca-radius-sm);
	padding: 0.5em 0.85em;
	color: var(--ca-primary);
	font-weight: 600;
	font-size: var(--ca-step--1);
}
.nav-toggle__icon--close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__icon--open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__icon--close { display: inline-flex; }

.site-nav__list { display: flex; align-items: center; gap: 0.25rem; }
.site-nav__list .menu-item { position: relative; }
.site-nav__list > .menu-item > a {
	display: inline-flex;
	align-items: center;
	padding: 0.7em 0.8em;
	color: var(--ca-primary);
	font-weight: 600;
	font-size: var(--ca-step--1);
	text-decoration: none;
	border-radius: var(--ca-radius-sm);
}
.site-nav__list > .menu-item > a:hover,
.site-nav__list > .menu-item.current-menu-item > a { color: var(--ca-blue); background: var(--ca-surface-alt); }

.submenu-toggle {
	background: none;
	border: 0;
	color: inherit;
	display: inline-flex;
	align-items: center;
	padding: 0.4em;
	margin-left: -0.3em;
	cursor: pointer;
}
.submenu-toggle .icon { transition: transform 0.2s var(--ca-ease); }
.submenu-toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }

.sub-menu {
	display: none;
	flex-direction: column;
	min-width: 240px;
	background: var(--ca-white);
	border: 1px solid var(--ca-border);
	border-radius: var(--ca-radius-md);
	box-shadow: 0 16px 32px -16px rgba(16,42,67,0.28);
	padding: 0.5rem;
}
.has-dropdown.is-open > .sub-menu,
.has-dropdown > .submenu-toggle[aria-expanded="true"] ~ .sub-menu { display: flex; }

.sub-menu .menu-item a {
	display: block;
	padding: 0.6em 0.75em;
	border-radius: var(--ca-radius-sm);
	color: var(--ca-text);
	font-size: var(--ca-step--1);
	text-decoration: none;
}
.sub-menu .menu-item a:hover { background: var(--ca-surface-alt); color: var(--ca-blue); }

.site-nav__actions { display: flex; align-items: center; gap: 0.75rem; margin-left: 0.5rem; }
.site-nav__search { display: inline-flex; padding: 0.5em; color: var(--ca-primary); }

/* -------------------------------------------------------------------------
   Hero
   ---------------------------------------------------------------------- */
.hero {
	position: relative;
	background: var(--ca-primary);
	overflow: hidden;
}
.hero__inner {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: center;
	gap: clamp(2rem, 1.5rem + 2vw, 4rem);
	padding-block: clamp(3rem, 2.4rem + 3vw, 6rem);
}
.hero__eyebrow { color: var(--ca-sky); font-weight: 600; font-size: var(--ca-step--1); margin-bottom: 1rem; }
.hero__title { color: var(--ca-white); font-size: var(--ca-step-5); max-width: 15ch; }
.hero__lede { color: rgba(255,255,255,0.78); font-size: var(--ca-step-1); max-width: 46ch; margin-top: 1rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: 2rem; }

.hero__visual {
	position: relative;
	aspect-ratio: 4 / 3.1;
	border-radius: var(--ca-radius-lg);
	overflow: hidden;
	background: linear-gradient(160deg, var(--ca-blue) 0%, var(--ca-primary) 78%);
	border: 1px solid rgba(255,255,255,0.14);
}
.hero__visual img { width: 100%; height: 100%; object-fit: cover; }
.hero__visual-mark { position: absolute; inset: 0; opacity: 0.9; }

.hero__stat-chip {
	position: absolute;
	left: clamp(-0.5rem, -1vw, 0.5rem);
	bottom: clamp(-1.5rem, -2vw, -1rem);
	background: var(--ca-white);
	color: var(--ca-primary);
	border-radius: var(--ca-radius-md);
	padding: 1rem 1.25rem;
	box-shadow: 0 20px 40px -18px rgba(16,42,67,0.45);
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.hero__stat-chip strong { display: block; font-size: var(--ca-step-2); line-height: 1; }
.hero__stat-chip span { display: block; font-size: var(--ca-step--1); color: var(--ca-muted); margin-top: 0.25em; }

/* -------------------------------------------------------------------------
   Statistics strip
   ---------------------------------------------------------------------- */
.stats { background: var(--ca-white); border-bottom: 1px solid var(--ca-border); }
.stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.stats__item { text-align: center; padding: clamp(1.75rem, 1.4rem + 1.5vw, 3rem) 1rem; border-left: 1px solid var(--ca-border); }
.stats__item:first-child { border-left: 0; }
.stats__number { display: block; font-size: var(--ca-step-4); font-weight: 800; color: var(--ca-primary); letter-spacing: -0.02em; }
.stats__label { display: block; margin-top: 0.35em; color: var(--ca-muted); font-size: var(--ca-step--1); }

/* -------------------------------------------------------------------------
   Generic card
   ---------------------------------------------------------------------- */
.card {
	background: var(--ca-white);
	border: 1px solid var(--ca-border);
	border-radius: var(--ca-radius-md);
	overflow: hidden;
	transition: border-color 0.2s var(--ca-ease), transform 0.2s var(--ca-ease), box-shadow 0.2s var(--ca-ease);
}
.card:hover { border-color: var(--ca-blue); transform: translateY(-3px); box-shadow: 0 18px 34px -22px rgba(16,42,67,0.35); }

/* Why-choose-us feature cards */
.feature-card { padding: 1.75rem; border-top: 3px solid var(--ca-sky); }
.feature-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border-radius: var(--ca-radius-sm);
	background: var(--ca-surface-alt);
	color: var(--ca-blue);
	margin-bottom: 1rem;
}
.feature-card__title { font-size: var(--ca-step-1); margin-bottom: 0.4em; }
.feature-card__desc { color: var(--ca-muted); margin: 0; font-size: var(--ca-step--1); }

/* Destination card */
.destination-card { display: flex; flex-direction: column; }
.destination-card__media { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--ca-surface-alt); }
.destination-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s var(--ca-ease); }
.card:hover .destination-card__media img { transform: scale(1.05); }
.destination-card__flag { position: absolute; top: 0.85rem; left: 0.85rem; font-size: var(--ca-step-1); background: var(--ca-white); border-radius: 999px; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 14px -6px rgba(16,42,67,0.35); }
.destination-card__body { padding: 1.4rem; display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
.destination-card__title { font-size: var(--ca-step-1); margin: 0; }
.destination-card__desc { color: var(--ca-muted); font-size: var(--ca-step--1); margin: 0; flex: 1; }

/* University card */
.university-card { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.9rem; border-top: 3px solid var(--ca-accent); }
.university-card__logo { width: 56px; height: 56px; border-radius: var(--ca-radius-sm); background: var(--ca-surface-alt); display: flex; align-items: center; justify-content: center; color: var(--ca-primary); font-weight: 800; font-size: var(--ca-step-1); }
.university-card__name { font-size: var(--ca-step-1); margin: 0; }
.university-card__place { color: var(--ca-muted); font-size: var(--ca-step--1); margin: 0; }
.university-card__areas { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.university-card__tag { font-size: var(--ca-step--1); background: var(--ca-surface-alt); color: var(--ca-primary); padding: 0.25em 0.7em; border-radius: 999px; }

/* Service card */
.service-card { padding: 1.75rem; display: flex; flex-direction: column; gap: 0.75rem; border-top: 3px solid var(--ca-blue); }
.service-card__icon { color: var(--ca-blue); }
.service-card__title { font-size: var(--ca-step-1); margin: 0; }
.service-card__desc { color: var(--ca-muted); font-size: var(--ca-step--1); margin: 0; flex: 1; }

/* Testimonial card */
.testimonial-card { padding: 1.75rem; display: flex; flex-direction: column; gap: 1rem; border-top: 3px solid var(--ca-sky); }
.testimonial-card__quote { font-size: var(--ca-step-0); color: var(--ca-text); margin: 0; }
.testimonial-card__person { display: flex; align-items: center; gap: 0.85rem; margin-top: auto; }
.testimonial-card__avatar { width: 48px; height: 48px; border-radius: 999px; object-fit: cover; background: var(--ca-surface-alt); }
.testimonial-card__name { font-weight: 700; color: var(--ca-primary); font-size: var(--ca-step--1); }
.testimonial-card__meta { color: var(--ca-muted); font-size: var(--ca-step--1); margin: 0; }

/* Blog card */
.blog-card__media { display: block; aspect-ratio: 16/10; background: var(--ca-surface-alt); overflow: hidden; }
.blog-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s var(--ca-ease); }
.card:hover .blog-card__image { transform: scale(1.05); }
.blog-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--ca-surface-alt), var(--ca-border)); }
.blog-card__body { padding: 1.4rem; display: flex; flex-direction: column; gap: 0.5rem; }
.blog-card__category { font-size: var(--ca-step--1); font-weight: 700; color: var(--ca-blue); text-decoration: none; }
.blog-card__title { font-size: var(--ca-step-1); margin: 0; }
.blog-card__title a { color: var(--ca-primary); text-decoration: none; }
.blog-card__excerpt { color: var(--ca-muted); font-size: var(--ca-step--1); margin: 0; }

.entry-meta { display: flex; align-items: center; gap: 0.5em; color: var(--ca-muted); font-size: var(--ca-step--1); margin: 0; }
.entry-meta__sep { width: 3px; height: 3px; border-radius: 999px; background: var(--ca-muted); display: inline-block; }

/* Scholarship card */
.scholarship-card { border-top: 3px solid var(--ca-accent); }
.scholarship-card__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.6rem; }
.scholarship-card__title { font-size: var(--ca-step-1); margin: 0; }
.scholarship-card__title a { color: var(--ca-primary); text-decoration: none; }
.scholarship-card__university { color: var(--ca-muted); font-size: var(--ca-step--1); margin: 0; }
.scholarship-card__meta { display: flex; gap: 1.5rem; margin: 0.4rem 0; }
.scholarship-card__meta dt { font-size: var(--ca-step--1); color: var(--ca-muted); margin: 0; }
.scholarship-card__meta dd { font-size: var(--ca-step--1); font-weight: 700; color: var(--ca-primary); margin: 0.15em 0 0; }

/* -------------------------------------------------------------------------
   How it works — timeline
   ---------------------------------------------------------------------- */
.timeline { display: grid; grid-template-columns: repeat(var(--timeline-cols, 5), 1fr); gap: 1.5rem; position: relative; }
.timeline::before { content: ""; position: absolute; top: 26px; left: 5%; right: 5%; height: 2px; background: var(--ca-border); }
.timeline__step { position: relative; text-align: center; }
.timeline__number {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px; height: 52px;
	border-radius: 999px;
	background: var(--ca-primary);
	color: var(--ca-white);
	font-weight: 800;
	font-size: var(--ca-step-0);
	margin-bottom: 1rem;
}
.timeline__title { font-size: var(--ca-step-0); margin-bottom: 0.35em; }
.timeline__desc { color: var(--ca-muted); font-size: var(--ca-step--1); margin: 0; }

/* -------------------------------------------------------------------------
   CTA banner
   ---------------------------------------------------------------------- */
.cta-banner {
	background: linear-gradient(120deg, var(--ca-primary) 0%, var(--ca-blue) 100%);
	border-radius: var(--ca-radius-lg);
	padding: clamp(2.25rem, 1.8rem + 2vw, 4rem);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
	color: var(--ca-white);
}
.cta-banner__title { color: var(--ca-white); margin-bottom: 0.3em; max-width: 26ch; }
.cta-banner__lede { color: rgba(255,255,255,0.8); margin: 0; max-width: 46ch; }
.cta-banner__actions { display: flex; gap: 0.85rem; flex-wrap: wrap; }

/* Scholarship promo */
.promo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 1.6rem + 2vw, 4rem); align-items: center; }
.promo__media { aspect-ratio: 4/3; border-radius: var(--ca-radius-lg); background: linear-gradient(150deg, var(--ca-sky), var(--ca-blue)); }
.promo__benefits { display: grid; gap: 0.6rem; margin: 1.25rem 0 1.5rem; }
.promo__benefit { display: flex; align-items: flex-start; gap: 0.6em; color: var(--ca-text); }
.promo__benefit .icon { color: var(--ca-accent); margin-top: 0.2em; }

/* -------------------------------------------------------------------------
   Accordion (FAQ)
   ---------------------------------------------------------------------- */
.accordion { border-top: 1px solid var(--ca-border); }
.accordion__item { border-bottom: 1px solid var(--ca-border); }
.accordion__trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	background: none;
	border: 0;
	padding: 1.25rem 0;
	text-align: left;
	font-size: var(--ca-step-0);
	font-weight: 700;
	color: var(--ca-primary);
	cursor: pointer;
}
.accordion__trigger .icon { flex-shrink: 0; transition: transform 0.2s var(--ca-ease); color: var(--ca-blue); }
.accordion__trigger[aria-expanded="true"] .icon { transform: rotate(180deg); }
.accordion__panel { overflow: hidden; max-height: 0; transition: max-height 0.3s var(--ca-ease); }
.accordion__panel-inner { padding-bottom: 1.25rem; color: var(--ca-muted); }

/* -------------------------------------------------------------------------
   Breadcrumbs
   ---------------------------------------------------------------------- */
.breadcrumbs { font-size: var(--ca-step--1); margin-bottom: 0.75rem; }
.breadcrumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4em; }
.breadcrumbs__item:not(:last-child)::after { content: "/"; margin-left: 0.4em; color: rgba(255,255,255,0.4); }
.breadcrumbs a { color: rgba(255,255,255,0.75); text-decoration: none; }
.breadcrumbs a:hover { color: var(--ca-white); }
.breadcrumbs__item--current { color: rgba(255,255,255,0.55); }

/* -------------------------------------------------------------------------
   Forms
   ---------------------------------------------------------------------- */
.form-row { display: grid; gap: 1.1rem; }
.form-row--2 { grid-template-columns: 1fr 1fr; }
.form-group { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1.1rem; }
.form-group label { font-weight: 600; font-size: var(--ca-step--1); color: var(--ca-primary); }
.form-group .required { color: #C2410C; }
.form-control {
	width: 100%;
	padding: 0.75em 0.9em;
	border: 1.5px solid var(--ca-border);
	border-radius: var(--ca-radius-sm);
	font-family: inherit;
	font-size: var(--ca-step--1);
	color: var(--ca-text);
	background: var(--ca-white);
	transition: border-color 0.2s var(--ca-ease);
}
.form-control:focus { border-color: var(--ca-blue); }
textarea.form-control { resize: vertical; min-height: 120px; }
.form-hint { font-size: var(--ca-step--1); color: var(--ca-muted); }
.form-error { font-size: var(--ca-step--1); color: #C2410C; display: none; }
.form-group.has-error .form-control { border-color: #C2410C; }
.form-group.has-error .form-error { display: block; }
.form-message { padding: 0.9em 1.1em; border-radius: var(--ca-radius-sm); font-size: var(--ca-step--1); margin-bottom: 1.25rem; display: none; }
.form-message.is-visible { display: block; }
.form-message--success { background: #ECFDF5; color: #065F46; border: 1px solid #A7F3D0; }
.form-message--error { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }
.form-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* -------------------------------------------------------------------------
   Search form
   ---------------------------------------------------------------------- */
.search-form { display: flex; gap: 0.6rem; }
.search-form__field { flex: 1; }

/* -------------------------------------------------------------------------
   Pagination
   ---------------------------------------------------------------------- */
.pagination { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2.5rem; }
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 0.6em;
	border: 1.5px solid var(--ca-border);
	border-radius: var(--ca-radius-sm);
	color: var(--ca-primary);
	text-decoration: none;
	font-size: var(--ca-step--1);
	font-weight: 600;
}
.pagination .page-numbers:hover { border-color: var(--ca-blue); color: var(--ca-blue); }
.pagination .page-numbers.current { background: var(--ca-primary); border-color: var(--ca-primary); color: var(--ca-white); }
.pagination .page-numbers.dots { border: 0; }

/* -------------------------------------------------------------------------
   Footer
   ---------------------------------------------------------------------- */
.footer-extras { background: var(--ca-surface-alt); padding-block: clamp(2rem, 1.6rem + 1.5vw, 3rem); }

.site-footer { background: var(--ca-primary); color: rgba(255,255,255,0.72); }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: clamp(2rem, 1.6rem + 2vw, 3.5rem); padding-block: clamp(3rem, 2.4rem + 3vw, 5rem); }
.site-footer__col--brand .site-branding__link--text,
.site-footer__col--brand .site-branding__link { color: var(--ca-white); }
.site-footer__about { margin: 1rem 0 1.25rem; max-width: 34ch; font-size: var(--ca-step--1); }
.site-footer__heading { color: var(--ca-white); font-size: var(--ca-step-0); margin-bottom: 1.1rem; }
.footer-menu, .footer-contact { display: grid; gap: 0.7rem; }
.footer-menu a { color: rgba(255,255,255,0.72); text-decoration: none; font-size: var(--ca-step--1); }
.footer-menu a:hover { color: var(--ca-white); }
.footer-contact li { display: flex; align-items: flex-start; gap: 0.6em; font-size: var(--ca-step--1); }
.footer-contact a { color: rgba(255,255,255,0.72); text-decoration: none; }
.footer-contact a:hover { color: var(--ca-white); }
.footer-contact .icon { color: var(--ca-sky); margin-top: 0.15em; }
.footer-contact .btn { margin-top: 0.5rem; }

/* -------------------------------------------------------------------------
   Single content pages (destinations, universities, services, etc.)
   ---------------------------------------------------------------------- */
.destination-hero-image { width: 100%; border-radius: 0 0 var(--ca-radius-lg) var(--ca-radius-lg); }
.entry-content { margin-bottom: 1.75rem; color: var(--ca-text); }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content h2, .entry-content h3 { margin-top: 1.5em; }
.filter-pills { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 2rem; }
.filter-pills a {
	display: inline-flex;
	align-items: center;
	padding: 0.5em 1.1em;
	border-radius: 999px;
	border: 1.5px solid var(--ca-border);
	color: var(--ca-primary);
	font-size: var(--ca-step--1);
	font-weight: 600;
	text-decoration: none;
}
.filter-pills a:hover,
.filter-pills a.is-active { background: var(--ca-primary); border-color: var(--ca-primary); color: var(--ca-white); }

.university-filter-form {
	grid-template-columns: 2fr 1fr 1fr 1fr auto;
	align-items: end;
	margin-bottom: 2.5rem;
}
.scholarship-filter-form {
	grid-template-columns: 1fr 1fr auto;
	align-items: end;
	margin-bottom: 2.5rem;
}

.site-footer__bar { border-top: 1px solid rgba(255,255,255,0.12); }
.site-footer__bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-block: 1.25rem; font-size: var(--ca-step--1); }
.legal-menu { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.legal-menu a { color: rgba(255,255,255,0.65); text-decoration: none; }
.legal-menu a:hover { color: var(--ca-white); }

/* -------------------------------------------------------------------------
   Social icons
   ---------------------------------------------------------------------- */
.social-list { display: flex; align-items: center; gap: 0.6rem; }
.social-list__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px; height: 34px;
	border-radius: 999px;
	background: rgba(255,255,255,0.1);
	color: currentColor;
}
.social-list__link:hover { background: var(--ca-accent); color: var(--ca-primary); }
.topbar .social-list--compact .social-list__link { width: 28px; height: 28px; background: rgba(255,255,255,0.12); }

/* -------------------------------------------------------------------------
   Widgets
   ---------------------------------------------------------------------- */
.widget { margin-bottom: 2.25rem; }
.widget__title { font-size: var(--ca-step-1); margin-bottom: 0.85rem; }
