/* MGIT Alumni plugin: front-end forms. Uses the theme's colour tokens when present. */

.mgaa-form,
.mgaa-resend { max-width: 640px; }

.mgaa-intro { color: var(--muted, #545b70); }

.mgaa-form fieldset {
	margin: 0 0 32px;
	padding: 0;
	border: 0;
}
.mgaa-form legend {
	width: 100%;
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--line, #dde1ea);
	font-family: var(--font-display, Georgia, serif);
	font-size: 22px;
	font-weight: 600;
	color: var(--navy, #23305e);
}

.mgaa-field { margin-bottom: 20px; }
.mgaa-field label {
	display: block;
	margin-bottom: 4px;
	font-weight: 700;
	color: var(--ink, #1b2033);
}
.mgaa-optional { font-weight: 400; color: var(--muted, #545b70); }
.mgaa-field__hint { margin: 0 0 6px; font-size: 15px; color: var(--muted, #545b70); }

.mgaa-field input[type="text"],
.mgaa-field input[type="email"],
.mgaa-field input[type="tel"],
.mgaa-field input[type="url"],
.mgaa-field input[type="password"],
.mgaa-field select {
	width: 100%;
	min-height: 48px;
	padding: 10px 12px;
	border: 1px solid #9aa1b4;
	border-radius: 4px;
	background: #fff;
	font: inherit;
	color: var(--ink, #1b2033);
}
.mgaa-field input:focus,
.mgaa-field select:focus {
	outline: 3px solid var(--bronze, #8a5c16);
	outline-offset: 1px;
	border-color: var(--navy, #23305e);
}

.mgaa-field.has-error input,
.mgaa-field.has-error select { border: 2px solid #b42318; }
.mgaa-field__error {
	margin: 6px 0 0;
	font-size: 15px;
	font-weight: 600;
	color: #b42318;
}

.mgaa-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}
@media (max-width: 560px) {
	.mgaa-row { grid-template-columns: 1fr; }
}

.mgaa-consent label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-weight: 400;
}
.mgaa-consent input { width: 20px; height: 20px; margin-top: 3px; flex-shrink: 0; }

.mgaa-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.mgaa-button {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 12px 28px;
	border: 2px solid var(--navy, #23305e);
	border-radius: 4px;
	background: var(--navy, #23305e);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.mgaa-button:hover { background: var(--navy-deep, #141c3d); border-color: var(--navy-deep, #141c3d); }
.mgaa-button--secondary { background: transparent; color: var(--navy, #23305e); }
.mgaa-button--secondary:hover { color: #fff; }

.mgaa-msg {
	max-width: 640px;
	margin: 0 0 28px;
	padding: 16px 20px;
	border-left: 4px solid var(--navy, #23305e);
	border-radius: 4px;
	background: var(--mist, #f2f4f8);
}
.mgaa-msg p { margin: 0; }
.mgaa-msg__title { margin-bottom: 4px !important; font-weight: 700; color: var(--ink, #1b2033); }
.mgaa-msg--success { border-left-color: #1a7f37; background: #eef8f0; }
.mgaa-msg--error { border-left-color: #b42318; background: #fdf0ef; }

.mgaa-resend {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--line, #dde1ea);
}
.mgaa-resend summary { cursor: pointer; font-weight: 700; color: var(--navy, #23305e); }
.mgaa-resend form { margin-top: 16px; }

/* ---------- My Account ---------- */
.mgaa-me {
	display: flex;
	gap: 20px;
	align-items: center;
	margin-bottom: 28px;
}
.mgaa-me__photo {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}
.mgaa-me__photo--empty,
.mgaa-card__photo--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--navy, #23305e);
	color: var(--seal, #ffe11a);
	font-family: var(--font-display, Georgia, serif);
	font-size: 32px;
	font-weight: 600;
}
.mgaa-me__name {
	margin: 0;
	font-family: var(--font-display, Georgia, serif);
	font-size: 26px;
	font-weight: 600;
	color: var(--navy, #23305e);
}
.mgaa-me__meta { margin: 2px 0 8px; color: var(--muted, #545b70); }

.mgaa-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.mgaa-chips li {
	padding: 3px 10px;
	border: 1px solid var(--line, #dde1ea);
	border-radius: 999px;
	background: var(--mist, #f2f4f8);
	font-size: 14px;
	font-weight: 600;
	color: var(--navy, #23305e);
}

.mgaa-tabs { margin: 0 0 32px; border-bottom: 1px solid var(--line, #dde1ea); }
.mgaa-tabs ul { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; }
.mgaa-tabs a {
	display: block;
	padding: 12px 14px 10px;
	border-bottom: 3px solid transparent;
	color: var(--ink, #1b2033);
	font-weight: 600;
	text-decoration: none;
}
.mgaa-tabs a:hover { color: var(--navy, #23305e); border-bottom-color: var(--line, #dde1ea); }
.mgaa-tabs a[aria-current="page"] { color: var(--navy, #23305e); border-bottom-color: var(--bronze, #8a5c16); }

.mgaa-form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #9aa1b4;
	border-radius: 4px;
	font: inherit;
}
.mgaa-form input[type="file"] { font: inherit; }
.mgaa-check { display: flex; gap: 10px; align-items: center; margin: 8px 0 0; font-weight: 600; }
.mgaa-check input { width: 20px; height: 20px; }

.mgaa-preview {
	max-width: 640px;
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--line, #dde1ea);
}
.mgaa-preview h2 { font-size: 24px; }
.mgaa-preview__switch { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 20px; }
.mgaa-preview__switch label { font-weight: 700; width: 100%; }
.mgaa-preview__switch select { min-height: 48px; padding: 8px 12px; border: 1px solid #9aa1b4; border-radius: 4px; font: inherit; flex: 1; }
.mgaa-preview__note { color: var(--muted, #545b70); }

.mgaa-card {
	max-width: 640px;
	padding: 24px;
	border: 1px solid var(--line, #dde1ea);
	border-radius: 6px;
	background: #fff;
}
.mgaa-card__head { display: flex; gap: 16px; align-items: center; margin-bottom: 12px; }
.mgaa-card__photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.mgaa-card__photo--empty { font-size: 0; }
.mgaa-card__name { margin: 0; font-family: var(--font-body, sans-serif); font-size: 20px; font-weight: 700; }
.mgaa-card__meta { margin: 0; color: var(--muted, #545b70); }
.mgaa-card__badge {
	display: inline-block;
	margin: 6px 0 0;
	padding: 2px 8px;
	border-radius: 4px;
	background: #fff8d1;
	color: var(--bronze, #8a5c16);
	font-size: 13px;
	font-weight: 700;
}
.mgaa-card__bio { margin: 0 0 12px; }
.mgaa-card__list { margin: 0; }
.mgaa-card__list div {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 12px;
	padding: 8px 0;
	border-top: 1px solid var(--line, #dde1ea);
}
.mgaa-card__list dt { color: var(--muted, #545b70); font-size: 15px; }
.mgaa-card__list dd { margin: 0; word-break: break-word; }
.mgaa-hidden-value { color: #8b91a3; font-style: italic; }
.mgaa-details { max-width: 640px; margin-bottom: 24px; }

@media (max-width: 560px) {
	.mgaa-card__list div { grid-template-columns: 1fr; gap: 2px; }
	.mgaa-me { align-items: flex-start; }
	.mgaa-me__photo { width: 72px; height: 72px; }
}

/* Win over the theme's .prose rules inside page content. */
.mgaa-me img.mgaa-me__photo,
.mgaa-card img.mgaa-card__photo { border-radius: 50%; }
.mgaa-me ul.mgaa-chips { padding-left: 0; margin: 0; }
.mgaa-me .mgaa-chips li { margin: 0; }
nav.mgaa-tabs ul { padding-left: 0; margin: 0; }
nav.mgaa-tabs li { margin: 0; }
.mgaa-card h3.mgaa-card__name { margin: 0; font-size: 20px; }
.mgaa-me p.mgaa-me__name { margin: 0; }

/* ---------- Directory ---------- */
.prose .mgaa-dir-search,
.prose .mgaa-dir-head,
.prose .mgaa-dir-grid,
.prose .mgaa-pager { max-width: none; }
.entry-content.prose:has(.mgaa-dir-search) { max-width: none; }

.mgaa-dir-search {
	padding: 24px;
	margin-bottom: 28px;
	background: var(--mist, #f2f4f8);
	border: 1px solid var(--line, #dde1ea);
	border-radius: 6px;
}
.mgaa-dir-search__main,
.mgaa-dir-search__more {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1.5fr;
	gap: 0 16px;
}
.mgaa-dir-search__more { grid-template-columns: repeat(4, 1fr); margin-top: 16px; }
.mgaa-dir-search .mgaa-field { margin-bottom: 16px; }
.mgaa-dir-search input[type="search"],
.mgaa-dir-search input[type="text"],
.mgaa-dir-search select {
	width: 100%;
	min-height: 48px;
	padding: 10px 12px;
	border: 1px solid #9aa1b4;
	border-radius: 4px;
	background: #fff;
	font: inherit;
}
.mgaa-dir-more summary { cursor: pointer; font-weight: 700; color: var(--navy, #23305e); margin-bottom: 4px; }
.mgaa-dir-more .mgaa-check { grid-column: 1 / -1; margin-bottom: 8px; }

.mgaa-actions { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin-top: 8px; }
.mgaa-link { font-weight: 700; }

.mgaa-dir-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: baseline; margin-bottom: 16px; }
.mgaa-dir-count { margin: 0; font-weight: 700; font-size: 18px; color: var(--navy, #23305e); }
.mgaa-dir-sort { margin: 0; color: var(--muted, #545b70); }

ul.mgaa-dir-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
ul.mgaa-dir-grid li.mgaa-person { margin: 0; }
.mgaa-person__link {
	display: flex;
	gap: 14px;
	height: 100%;
	padding: 16px;
	border: 1px solid var(--line, #dde1ea);
	border-radius: 6px;
	background: #fff;
	color: var(--ink, #1b2033);
	text-decoration: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.mgaa-person__link:hover { border-color: var(--navy, #23305e); box-shadow: 0 6px 16px rgba(20, 28, 61, 0.08); color: var(--ink, #1b2033); }
.mgaa-person img.mgaa-person__photo,
.mgaa-person__photo { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.mgaa-person__photo--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--navy, #23305e);
	color: var(--seal, #ffe11a);
	font-family: var(--font-display, Georgia, serif);
	font-size: 24px;
	font-weight: 600;
}
.mgaa-person__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mgaa-person__name { font-weight: 700; font-size: 17px; color: var(--navy, #23305e); }
.mgaa-person__meta { color: var(--bronze, #8a5c16); font-size: 14px; font-weight: 700; }
.mgaa-person__line { font-size: 15px; color: var(--muted, #545b70); overflow-wrap: anywhere; }
.mgaa-person .mgaa-card__badge { align-self: flex-start; }

.mgaa-pager { display: flex; gap: 16px; align-items: center; justify-content: center; margin-top: 28px; }

@media (max-width: 980px) {
	.mgaa-dir-search__main,
	.mgaa-dir-search__more { grid-template-columns: 1fr 1fr; }
	ul.mgaa-dir-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.mgaa-dir-search { padding: 16px; }
	.mgaa-dir-search__main,
	.mgaa-dir-search__more { grid-template-columns: 1fr; }
	ul.mgaa-dir-grid { grid-template-columns: 1fr; }
}

/* ---------- Homepage sections ---------- */
.mgaa-stats {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 24px;
	margin: 32px 0 0;
}
.mgaa-stats div { padding-top: 16px; border-top: 3px solid var(--navy, #23305e); }
.mgaa-stats dt { color: var(--muted, #545b70); font-weight: 600; }
.mgaa-stats dd {
	margin: 4px 0 0;
	font-family: var(--font-display, Georgia, serif);
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 600;
	color: var(--navy, #23305e);
}
@media (max-width: 960px) { .mgaa-stats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .mgaa-stats { grid-template-columns: 1fr 1fr; } }

.mgaa-home-search__form {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr auto;
	gap: 16px;
	align-items: end;
}
.mgaa-home-search__form .mgaa-field { margin: 0; }
.mgaa-home-search__form input,
.mgaa-home-search__form select {
	width: 100%;
	min-height: 48px;
	padding: 10px 12px;
	border: 1px solid #9aa1b4;
	border-radius: 4px;
	background: #fff;
	font: inherit;
}
@media (max-width: 860px) { .mgaa-home-search__form { grid-template-columns: 1fr; } }
.entry-content ul.mgaa-dir-grid { padding-left: 0; margin: 0; }
.entry-content ul.mgaa-dir-grid > li { margin: 0; }

/* ---------- Events ---------- */
.entry-content.prose:has(.mgaa-events) { max-width: none; }
.entry-content ul.mgaa-event-grid,
ul.mgaa-event-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.entry-content ul.mgaa-event-grid > li { margin: 0; }
.mgaa-event__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--line, #dde1ea);
	border-radius: 6px;
	background: #fff;
	color: var(--ink, #1b2033);
	text-decoration: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.mgaa-event__link:hover { border-color: var(--navy, #23305e); box-shadow: 0 8px 20px rgba(20, 28, 61, 0.1); color: var(--ink, #1b2033); }
.mgaa-event__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--navy-deep, #141c3d), var(--navy, #23305e));
}
.mgaa-event__media img { width: 100%; height: 100%; object-fit: cover; }
.mgaa-event__date {
	position: absolute;
	left: 14px;
	bottom: 14px;
	padding: 6px 10px;
	background: var(--seal, #ffe11a);
	color: var(--navy-deep, #141c3d);
	border-radius: 4px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}
.mgaa-event__date span { display: block; font-family: var(--font-display, Georgia, serif); font-size: 24px; }
.mgaa-event__body { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 18px; }
.mgaa-event__status { align-self: flex-start; padding: 2px 8px; border-radius: 4px; background: #fdf0ef; color: #b42318; font-size: 13px; font-weight: 700; }
.mgaa-event__title { font-size: 19px; font-weight: 700; color: var(--navy, #23305e); line-height: 1.3; }
.mgaa-event__line { color: var(--muted, #545b70); font-size: 15px; }
.mgaa-event__tags { margin-top: 6px; color: var(--bronze, #8a5c16); font-size: 14px; font-weight: 700; }
@media (max-width: 980px) { ul.mgaa-event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { ul.mgaa-event-grid { grid-template-columns: 1fr; } }

.mgaa-filter-links { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin: -12px 0 24px; color: var(--muted, #545b70); }
.mgaa-filter-links a { font-weight: 600; }
.mgaa-filter-links a[aria-current] { color: var(--navy, #23305e); text-decoration: none; border-bottom: 2px solid var(--bronze, #8a5c16); }

.mgaa-event-facts { max-width: 720px; margin: 0 0 16px; }
.mgaa-event-facts div { display: grid; grid-template-columns: 140px 1fr; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line, #dde1ea); }
.mgaa-event-facts div:last-child { border-bottom: 1px solid var(--line, #dde1ea); }
.mgaa-event-facts dt { color: var(--muted, #545b70); }
.mgaa-event-facts dd { margin: 0; font-weight: 600; }
@media (max-width: 560px) { .mgaa-event-facts div { grid-template-columns: 1fr; gap: 2px; } }

.mgaa-rsvp {
	max-width: 720px;
	margin-top: 40px;
	padding: 24px;
	border: 1px solid var(--line, #dde1ea);
	border-left: 4px solid var(--seal, #ffe11a);
	border-radius: 6px;
	background: var(--mist, #f2f4f8);
}
.mgaa-rsvp h2 { margin-top: 0; }
.mgaa-rsvp__form { display: flex; flex-wrap: wrap; gap: 10px; }
.mgaa-rsvp__form .mgaa-button[disabled] { opacity: 0.45; cursor: not-allowed; }
.mgaa-online { word-break: break-all; }

.mgaa-subhead { font-size: 22px; margin-top: 8px; }
.entry-content ul.mgaa-myevents { padding: 0; list-style: none; max-width: 720px; }
.mgaa-myevents li { display: grid; gap: 2px; padding: 12px 0; border-top: 1px solid var(--line, #dde1ea); margin: 0; }
.mgaa-myevents a { font-weight: 700; }
.mgaa-myevents span { color: var(--muted, #545b70); font-size: 15px; }
.mgaa-myevents__resp { color: var(--bronze, #8a5c16) !important; font-weight: 700; }

/* ---------- Achievements and distinguished alumni ---------- */
.entry-content.prose:has(.mgaa-achievements),
.entry-content.prose:has(.mgaa-dist-wrap) { max-width: none; }
.mgaa-section-title { font-family: var(--font-display, Georgia, serif); font-size: clamp(24px, 3vw, 32px); font-weight: 600; color: var(--navy, #23305e); margin: 0 0 12px; }
.mgaa-head-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.mgaa-dist-wrap { margin-bottom: 48px; }

.entry-content ul.mgaa-ach-grid,
ul.mgaa-ach-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.entry-content ul.mgaa-ach-grid > li { margin: 0; }
.mgaa-ach__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--line, #dde1ea);
	border-top: 3px solid var(--seal, #ffe11a);
	border-radius: 6px;
	background: #fff;
	color: var(--ink, #1b2033);
	text-decoration: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.mgaa-ach__link:hover { box-shadow: 0 8px 20px rgba(20, 28, 61, 0.1); color: var(--ink, #1b2033); }
.mgaa-ach__media { display: block; aspect-ratio: 16 / 9; background: var(--mist, #f2f4f8); }
.mgaa-ach__media img { width: 100%; height: 100%; object-fit: cover; }
.mgaa-ach__body { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 18px; }
.mgaa-ach__type { color: var(--bronze, #8a5c16); font-size: 13px; font-weight: 700; }
.mgaa-ach__title { font-size: 18px; font-weight: 700; line-height: 1.35; color: var(--navy, #23305e); }
.mgaa-ach__who { font-size: 15px; color: var(--ink, #1b2033); font-weight: 600; }
.mgaa-ach__when { font-size: 14px; color: var(--muted, #545b70); }

.entry-content ul.mgaa-dist-grid,
ul.mgaa-dist-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}
.entry-content ul.mgaa-dist-grid > li { margin: 0; }
.mgaa-dist__link { display: flex; flex-direction: column; gap: 4px; color: var(--ink, #1b2033); text-decoration: none; }
.mgaa-dist__photo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	margin-bottom: 10px;
	overflow: hidden;
	border-radius: 6px;
	background: var(--navy, #23305e);
	color: var(--seal, #ffe11a);
	font-family: var(--font-display, Georgia, serif);
	font-size: 48px;
}
.mgaa-dist__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.mgaa-dist__link:hover img { transform: scale(1.04); }
.mgaa-dist__name { font-size: 18px; font-weight: 700; color: var(--navy, #23305e); }
.mgaa-dist__meta { color: var(--bronze, #8a5c16); font-weight: 700; font-size: 14px; }
.mgaa-dist__role { color: var(--muted, #545b70); font-size: 15px; }

@media (max-width: 980px) {
	ul.mgaa-ach-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	ul.mgaa-dist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	ul.mgaa-ach-grid { grid-template-columns: 1fr; }
}
.mgaa-form input[type="month"] { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #9aa1b4; border-radius: 4px; font: inherit; }

/* ---------- Careers ---------- */
.entry-content.prose:has(.mgaa-jobs) { max-width: none; }
.entry-content ul.mgaa-job-grid,
ul.mgaa-job-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.entry-content ul.mgaa-job-grid > li { margin: 0; }
.mgaa-job__link {
	display: flex;
	flex-direction: column;
	gap: 3px;
	height: 100%;
	padding: 18px;
	border: 1px solid var(--line, #dde1ea);
	border-left: 4px solid var(--navy, #23305e);
	border-radius: 6px;
	background: #fff;
	color: var(--ink, #1b2033);
	text-decoration: none;
	transition: box-shadow 0.15s, border-color 0.15s;
}
.mgaa-job__link:hover { border-left-color: var(--seal, #ffe11a); box-shadow: 0 8px 20px rgba(20, 28, 61, 0.1); color: var(--ink, #1b2033); }
.mgaa-job__type { color: var(--bronze, #8a5c16); font-size: 13px; font-weight: 700; }
.mgaa-job__title { font-size: 18px; font-weight: 700; color: var(--navy, #23305e); line-height: 1.3; }
.mgaa-job__company { font-weight: 600; }
.mgaa-job__line { color: var(--muted, #545b70); font-size: 15px; }
.mgaa-job__date { margin-top: auto; padding-top: 8px; font-size: 14px; font-weight: 700; }
.mgaa-jobs .mgaa-dir-count { margin: 0 0 16px; }
.mgaa-form input[type="date"] { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #9aa1b4; border-radius: 4px; font: inherit; }
@media (max-width: 980px) { ul.mgaa-job-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { ul.mgaa-job-grid { grid-template-columns: 1fr; } }

/* ---------- Gallery ---------- */
.entry-content.prose:has(.mgaa-gallery),
.entry-content.prose:has(.mgaa-photo-grid) { max-width: none; }
.entry-content ul.mgaa-album-grid,
ul.mgaa-album-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.entry-content ul.mgaa-album-grid > li { margin: 0; }
.mgaa-album__link { display: flex; flex-direction: column; gap: 4px; color: var(--ink, #1b2033); text-decoration: none; }
.mgaa-album__cover {
	display: block;
	aspect-ratio: 4 / 3;
	margin-bottom: 8px;
	overflow: hidden;
	border-radius: 6px;
	background: linear-gradient(135deg, var(--navy-deep, #141c3d), var(--navy, #23305e));
}
.mgaa-album__cover img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; transition: transform 0.5s; }
.mgaa-album__link:hover img { transform: scale(1.05); }
.mgaa-album__title { font-weight: 700; font-size: 17px; color: var(--navy, #23305e); }
.mgaa-album__meta { font-size: 14px; color: var(--muted, #545b70); }

.entry-content ul.mgaa-photo-grid,
ul.mgaa-photo-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 8px;
	margin: 24px 0;
	padding: 0;
	list-style: none;
}
.entry-content ul.mgaa-photo-grid > li { margin: 0; }
.mgaa-photo-grid a { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 4px; }
.mgaa-photo-grid img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; transition: transform 0.4s; }
.mgaa-photo-grid a:hover img { transform: scale(1.05); }
.mgaa-video { max-width: 860px; margin: 24px 0; }
.mgaa-video iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }

.mgaa-lb {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(8, 11, 26, 0.94);
}
.mgaa-lb[hidden] { display: none; }
.mgaa-lb__figure { margin: 0; max-width: 90vw; max-height: 84vh; text-align: center; }
.mgaa-lb__figure img { max-width: 90vw; max-height: 78vh; width: auto; height: auto; margin: 0 auto; border-radius: 4px; }
.mgaa-lb__figure figcaption { margin-top: 10px; color: #d6dbea; }
.mgaa-lb button {
	position: absolute;
	width: 52px;
	height: 52px;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 50%;
	background: rgba(20, 28, 61, 0.7);
	color: #fff;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}
.mgaa-lb button:focus-visible { outline: 3px solid var(--seal, #ffe11a); outline-offset: 2px; }
.mgaa-lb__close { top: 20px; right: 20px; }
.mgaa-lb__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.mgaa-lb__next { right: 20px; top: 50%; transform: translateY(-50%); }
.mgaa-lb__count { position: absolute; bottom: 14px; left: 0; right: 0; margin: 0; text-align: center; color: #b9c0d6; font-size: 14px; }
@media (max-width: 980px) { ul.mgaa-album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .mgaa-lb__prev, .mgaa-lb__next { top: auto; bottom: 50px; transform: none; } }

/* ---------- Surveys ---------- */
.mgaa-survey { max-width: 720px; }
.mgaa-q { margin: 0 0 24px; padding: 18px 20px; border: 1px solid var(--line, #dde1ea); border-radius: 6px; background: #fff; }
.mgaa-q legend { padding: 0 6px; font-weight: 700; color: var(--navy, #23305e); font-family: var(--font-body, sans-serif); font-size: 17px; border: 0; width: auto; margin: 0; }
.mgaa-q.has-error { border: 2px solid #b42318; }
.mgaa-q .mgaa-check { margin: 10px 0 0; font-weight: 400; }
.mgaa-q textarea { width: 100%; margin-top: 8px; padding: 10px 12px; border: 1px solid #9aa1b4; border-radius: 4px; font: inherit; }
.mgaa-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.mgaa-rating label { position: relative; }
.mgaa-rating input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.mgaa-rating label span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 1px solid #9aa1b4;
	border-radius: 50%;
	font-weight: 700;
	cursor: pointer;
}
.mgaa-rating input:checked + span { background: var(--navy, #23305e); border-color: var(--navy, #23305e); color: #fff; }
.mgaa-rating input:focus-visible + span { outline: 3px solid var(--bronze, #8a5c16); outline-offset: 2px; }

/* ---------- Homepage: latest members and gallery strip ---------- */
ul.mgaa-members {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
	gap: 20px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.mgaa-members a { display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center; color: var(--ink, #1b2033); text-decoration: none; }
.mgaa-members img {
	width: 80px;
	height: 80px;
	margin-bottom: 8px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid #fff;
	box-shadow: 0 0 0 2px var(--line, #dde1ea);
	transition: box-shadow 0.2s, transform 0.2s;
}
.mgaa-members a:hover img { box-shadow: 0 0 0 3px var(--seal, #ffe11a); transform: translateY(-3px); }
.mgaa-members__name { font-weight: 700; font-size: 14px; line-height: 1.3; color: var(--navy, #23305e); }
.mgaa-members__meta { font-size: 12px; color: var(--muted, #545b70); }

ul.mgaa-strip {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.mgaa-strip a { position: relative; display: block; aspect-ratio: 1; overflow: hidden; border-radius: 4px; }
.mgaa-strip img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.mgaa-strip a:hover img { transform: scale(1.06); }
.mgaa-strip__label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 24px 12px 10px;
	background: linear-gradient(transparent, rgba(11, 16, 42, 0.85));
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	opacity: 0;
	transition: opacity 0.2s;
}
.mgaa-strip a:hover .mgaa-strip__label,
.mgaa-strip a:focus-visible .mgaa-strip__label { opacity: 1; }
@media (max-width: 760px) {
	ul.mgaa-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mgaa-members img { width: 68px; height: 68px; }
	ul.mgaa-members { grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); }
}

/* ---------- Homepage: where our alumni are ---------- */
.mgaa-map {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 24px;
	margin-top: 24px;
}
.mgaa-map__canvas {
	min-height: 440px;
	border-radius: 8px;
	border: 1px solid #d5d9e4;
	background: #dfe7f1;
	z-index: 0;
}
.mgaa-map__side h3 { margin: 0 0 8px; font-size: 16px; color: var(--navy, #23305e); }
.mgaa-map__list { margin: 0 0 20px; padding: 0; list-style: none; }
.mgaa-map__list li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 6px 0;
	border-bottom: 1px solid #e3e6ee;
	font-size: 15px;
}
.mgaa-map__list strong { color: var(--navy, #23305e); }
.mgaa-map__note { font-size: 13px; color: var(--muted, #545b70); margin: 0; }
.mgaa-map .leaflet-tooltip { font-weight: 600; }
@media (max-width: 860px) {
	.mgaa-map { grid-template-columns: 1fr; }
	.mgaa-map__canvas { min-height: 340px; }
}
