/**
 * Variant CSS: team--departments-grouped
 *
 * Team organised by function: each department gets a label + headcount header
 * above a row of compact member cards (square avatar, name, role). Different
 * from a seniority two-tier or a flat grid — it maps the org by area so a
 * visitor knows exactly who to reach. Department headers carry a hairline rule;
 * text stays --ink, the rule and meta lean on --accent. Portraits swapped by
 * the photo system. Part of the `team` role.
 */

body.aibt-universal .universal-team--departments-grouped {
	padding-block: calc(clamp(3rem, 7vw, 5rem) * var(--density, 1));
}

/* Intro. */
body.aibt-universal .universal-team--departments-grouped .universal-team__intro {
	margin-bottom: clamp(2rem, 5vw, 3.4rem);
}

body.aibt-universal .universal-team--departments-grouped .universal-team__kicker {
	font-family: var(--font-body) !important;
	font-size: var(--text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-widest) !important;
	text-transform: uppercase !important;
	color: var(--accent) !important;
	margin: 0 0 var(--space-sm) 0 !important;
}

body.aibt-universal .universal-team--departments-grouped .universal-team__headline {
	font-family: var(--font-display) !important;
	color: var(--ink) !important;
	margin: 0 0 var(--space-md) 0 !important;
}

body.aibt-universal .universal-team--departments-grouped .universal-team__headline em {
	color: var(--accent) !important;
	font-style: italic;
}

body.aibt-universal .universal-team--departments-grouped .universal-team__deck {
	font-family: var(--font-body) !important;
	font-size: var(--text-lg) !important;
	line-height: var(--leading-relaxed) !important;
	color: var(--ink) !important;
	opacity: 0.78;
	margin: 0 !important;
}

/* Department block. */
body.aibt-universal .universal-team--departments-grouped .universal-team__dept {
	margin-top: clamp(2rem, 4.5vw, 3.2rem);
}

body.aibt-universal .universal-team--departments-grouped .universal-team__dept:first-of-type {
	margin-top: 0;
}

/* Department header — label + headcount on a hairline rule. */
body.aibt-universal .universal-team--departments-grouped .universal-team__dept-head {
	gap: var(--space-md) !important;
	align-items: baseline !important;
	padding-bottom: var(--space-sm);
	margin-bottom: clamp(1.4rem, 2.6vw, 2rem);
	border-bottom: 1px solid color-mix(in srgb, var(--ink) 14%, transparent);
}

body.aibt-universal .universal-team--departments-grouped .universal-team__dept-label {
	font-family: var(--font-display) !important;
	font-size: clamp(1.15rem, 2.4vw, 1.5rem) !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.01em !important;
	color: var(--ink) !important;
	margin: 0 !important;
}

body.aibt-universal .universal-team--departments-grouped .universal-team__dept-meta {
	font-family: var(--font-body) !important;
	font-size: var(--text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-wide) !important;
	text-transform: uppercase !important;
	color: var(--accent) !important;
	margin: 0 !important;
}

/* Member row. */
body.aibt-universal .universal-team--departments-grouped .universal-team__dept-row {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(1.2rem, 2.4vw, 2rem);
}

/* Reset core columns flex so the grid drives layout. */
body.aibt-universal .universal-team--departments-grouped .universal-team__dept-row > .wp-block-column {
	flex-basis: auto !important;
	margin: 0 !important;
}

body.aibt-universal .universal-team--departments-grouped .universal-team__avatar {
	margin: 0 0 var(--space-sm) 0 !important;
	border-radius: var(--decor-radius);
	overflow: hidden;
}

body.aibt-universal .universal-team--departments-grouped .universal-team__avatar img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: transform var(--duration-fast, 0.18s) var(--ease-default, ease);
}

body.aibt-universal .universal-team--departments-grouped .universal-team__member:hover .universal-team__avatar img {
	transform: scale(1.04);
}

body.aibt-universal .universal-team--departments-grouped .universal-team__name {
	font-family: var(--font-display) !important;
	font-size: clamp(0.98rem, 1.9vw, 1.1rem) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	color: var(--ink) !important;
	margin: 0 0 var(--space-xs, 0.25rem) 0 !important;
}

body.aibt-universal .universal-team--departments-grouped .universal-team__role {
	font-family: var(--font-body) !important;
	font-size: var(--text-sm) !important;
	color: var(--ink) !important;
	opacity: 0.66;
	margin: 0 !important;
}

/* Cap wide uppercase tracking on small screens so the kicker never crowds itself (A5). */
@media (max-width: 640px) {
	body.aibt-universal .universal-team--departments-grouped .universal-team__kicker {
		letter-spacing: 0 !important;
	}
}

/* Tablet — 2 columns per department. */
@media (max-width: 781px) {
	body.aibt-universal .universal-team--departments-grouped .universal-team__dept-row {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Mobile — 2 tight columns, allow header to wrap. */
@media (max-width: 480px) {
	body.aibt-universal .universal-team--departments-grouped .universal-team__dept-head {
		flex-wrap: wrap !important;
		gap: 0.3rem var(--space-sm) !important;
	}
	body.aibt-universal .universal-team--departments-grouped .universal-team__dept-row {
		gap: 1.1rem;
	}
}
