/*! KCAU Team Profiles — cards and profile pop-up. Override the variables in your theme to re-brand. */
.kcau-team, .kcau-team-modal, .kcau-team-single {
	--kcau-team-navy: #192C57;
	--kcau-team-navy-2: #3D5580;
	--kcau-team-gold: #CBAE2D;          /* rings and accents */
	--kcau-team-gold-text: #7D6B18;     /* gold text on white (WCAG AA ≥ 4.5:1) */
	--kcau-team-text: #0D1A2E;
	--kcau-team-muted: #566B8F;
	--kcau-team-line: #E8ECF3;
	--kcau-team-card-bg: #fff;
	--kcau-team-font: 'futura-pt', sans-serif;  /* Futura PT (Adobe Fonts kit, family "futura-pt") */
	--kcau-team-radius: 8px;
	--kcau-team-focus: 0 0 0 3px #fff, 0 0 0 5px var(--kcau-team-navy-2);
}

/* ── Grid: desktop (d), tablet ≤1024 (t), mobile ≤767 (m) */
.kcau-team-grid { display: grid; gap: 24px; align-items: stretch; }
.kcau-team-grid--d1 { grid-template-columns: minmax(0, 1fr); }
.kcau-team-grid--d2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kcau-team-grid--d3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kcau-team-grid--d4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
	.kcau-team-grid--t1 { grid-template-columns: minmax(0, 1fr); }
	.kcau-team-grid--t2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kcau-team-grid--t3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.kcau-team-grid--t4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.kcau-team-grid { gap: 18px; }
	.kcau-team-grid--m1 { grid-template-columns: minmax(0, 1fr); }
	.kcau-team-grid--m2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kcau-team-grid--m3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.kcau-team-grid--m4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ── Card */
.kcau-team-card {
	position: relative; display: flex; flex-direction: column; align-items: center; text-align: center;
	padding: 30px 22px 28px; background: var(--kcau-team-card-bg); border-radius: var(--kcau-team-radius);
	box-shadow: 0 6px 24px rgba(25, 44, 87, .08); font-family: var(--kcau-team-font); color: var(--kcau-team-text);
	transition: transform .2s ease, box-shadow .2s ease;
}
.kcau-team-card.is-clickable { cursor: pointer; }
.kcau-team-card.is-clickable:hover, .kcau-team-card.is-clickable:focus-within { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(25, 44, 87, .16); }
.kcau-team-card.is-position-only { justify-content: center; }
.kcau-team-media { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; }
.kcau-team-media--card { width: 140px; height: 140px; margin-bottom: 18px; }
.kcau-team-photo { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.kcau-team-initials {
	display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: 50%;
	background: var(--kcau-team-navy); box-shadow: inset 0 0 0 5px var(--kcau-team-gold); color: #fff;
	font-family: var(--kcau-team-font); font-weight: 600; font-size: 44px; letter-spacing: 1px; line-height: 1; user-select: none;
}
.kcau-team-card__name { margin: 0 0 6px; font-family: var(--kcau-team-font); font-size: 21px; font-weight: 400; line-height: 1.3; color: var(--kcau-team-navy); }
.kcau-team-card.is-position-only .kcau-team-card__name { font-size: 18px; font-weight: 600; }
.kcau-team-card__open, .kcau-team-card__open:visited { color: inherit; text-decoration: none; }
.kcau-team-card__open::after { content: ''; position: absolute; inset: 0; z-index: 1; border-radius: var(--kcau-team-radius); }
.kcau-team-card__open:focus { outline: none; }
.kcau-team-card__open:focus-visible::after { box-shadow: var(--kcau-team-focus); }
.kcau-team-card__position { margin: 0 0 10px; font-size: 13.5px; font-weight: 700; line-height: 1.45; letter-spacing: .4px; color: var(--kcau-team-gold-text); }
.kcau-team-card__email { position: relative; z-index: 2; margin: auto 0 0; padding-top: 4px; font-size: 14px; overflow-wrap: anywhere; }
.kcau-team-card__email a { display: inline-block; padding: 6px 0; color: var(--kcau-team-navy-2); text-decoration: underline; text-underline-offset: 2px; }
.kcau-team-card__email a:hover { color: var(--kcau-team-navy); }
.kcau-team-card__email a:focus-visible { outline: none; box-shadow: var(--kcau-team-focus); border-radius: 3px; }
@media (prefers-reduced-motion: reduce) { .kcau-team-card { transition: none; } .kcau-team-card.is-clickable:hover, .kcau-team-card.is-clickable:focus-within { transform: none; } }

/* ── Pop-up */
html.kcau-team-locked, html.kcau-team-locked body { overflow: hidden; }
.kcau-team-modal { position: fixed; inset: 0; z-index: 2147483647; /* max — theme back-to-top buttons often use it too; the modal is appended later, so it wins */ display: flex; align-items: center; justify-content: center; padding: 24px; }
.kcau-team-modal[hidden] { display: none; }
.kcau-team-modal__backdrop { position: absolute; inset: 0; background: rgba(6, 17, 32, .62); }
.kcau-team-modal__panel {
	position: relative; display: flex; flex-direction: column; width: 100%; max-width: 720px; max-height: calc(100vh - 48px);
	background: #fff; border-radius: 12px; box-shadow: 0 24px 60px rgba(6, 17, 32, .35); font-family: var(--kcau-team-font); color: var(--kcau-team-text); outline: none;
}
.kcau-team-modal__bar { flex: 0 0 auto; display: flex; justify-content: flex-end; padding: 10px 10px 0; }
.kcau-team-modal__close {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
	background: var(--kcau-team-line); color: var(--kcau-team-navy); font-size: 28px; line-height: 1; cursor: pointer;
}
.kcau-team-modal__close:hover { background: var(--kcau-team-navy); color: #fff; }
.kcau-team-modal__close:focus-visible { outline: none; box-shadow: var(--kcau-team-focus); }
.kcau-team-modal__body { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 4px 40px 36px; }
@media (max-width: 767px) {
	.kcau-team-modal { padding: 0; }
	.kcau-team-modal__panel { max-width: none; height: 100%; max-height: none; border-radius: 0; }
	.kcau-team-modal__body { padding: 0 20px 32px; }
}

/* ── Profile (pop-up and single page) */
.kcau-team-profile { font-family: var(--kcau-team-font); color: var(--kcau-team-text); font-size: 15.5px; line-height: 1.65; }
.kcau-team-profile__head { display: flex; align-items: center; gap: 24px; padding-bottom: 22px; margin-bottom: 4px; border-bottom: 1px solid var(--kcau-team-line); }
.kcau-team-media--profile { width: 120px; height: 120px; }
.kcau-team-media--profile .kcau-team-initials { font-size: 38px; }
.kcau-team-profile__id { min-width: 0; }
.kcau-team-profile__name { margin: 0 0 4px; font-family: var(--kcau-team-font); font-size: 26px; font-weight: 400; line-height: 1.25; color: var(--kcau-team-navy); }
.kcau-team-profile__position { margin: 0 0 4px; font-weight: 700; font-size: 14.5px; letter-spacing: .3px; color: var(--kcau-team-gold-text); }
.kcau-team-profile__dept { margin: 0 0 6px; color: var(--kcau-team-muted); font-size: 14.5px; }
.kcau-team-profile__contact { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14.5px; }
.kcau-team-profile__contact li { display: inline-flex; align-items: center; gap: 7px; overflow-wrap: anywhere; }
.kcau-team-profile a { color: var(--kcau-team-navy-2); text-decoration: underline; text-underline-offset: 2px; }
.kcau-team-profile a:hover { color: var(--kcau-team-navy); }
.kcau-team-profile a:focus-visible { outline: none; box-shadow: var(--kcau-team-focus); border-radius: 3px; }
.kcau-team-icon { flex: 0 0 auto; fill: var(--kcau-team-gold-text); }
.kcau-team-profile__section { padding-top: 18px; }
.kcau-team-profile__h { margin: 0 0 6px; font-family: var(--kcau-team-font); font-size: 12.5px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--kcau-team-gold-text); }
.kcau-team-profile__section ul { margin: 0; padding-left: 20px; }
.kcau-team-profile__section li { margin: 3px 0; }
.kcau-team-profile__rich p { margin: 0 0 8px; }
.kcau-team-profile__muted { color: var(--kcau-team-muted); }
.kcau-team-profile__links { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 4px; }
a.kcau-team-profile__link {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border: 1px solid var(--kcau-team-line);
	border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; color: var(--kcau-team-navy);
}
a.kcau-team-profile__link:hover { background: var(--kcau-team-navy); color: #fff; border-color: var(--kcau-team-navy); }
a.kcau-team-profile__link:hover .kcau-team-icon { fill: #fff; }
@media (max-width: 767px) {
	.kcau-team-profile__head { flex-direction: column; align-items: center; text-align: center; gap: 14px; }
	.kcau-team-profile__contact { justify-content: center; }
	.kcau-team-profile__name { font-size: 23px; }
}

/* ── Single profile page (no-JS fallback) */
.kcau-team-single__inner { max-width: 820px; margin: 0 auto; padding: 56px 24px 72px; }
.kcau-team-single .kcau-team-profile__name { font-size: 34px; }
.kcau-team .screen-reader-text, .kcau-team-modal .screen-reader-text, .kcau-team-single .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ── Theme-proofing: many themes/page builders style h1–h6, img and a with higher specificity
   (e.g. Elementor ".elementor-kit-N h3"). Repeat the key typography with two-class selectors. */
.kcau-team .kcau-team-media img.kcau-team-photo, .kcau-team-modal .kcau-team-media img.kcau-team-photo, .kcau-team-single .kcau-team-media img.kcau-team-photo {
	width: 100% !important; height: 100% !important; max-width: none; border-radius: 50% !important; object-fit: cover; box-shadow: 0 0 0 5px var(--kcau-team-gold);
}
.kcau-team .kcau-team-card__name, .kcau-team .kcau-team-card__name a {
	font-family: var(--kcau-team-font) !important; font-size: 21px !important; font-weight: 400 !important; line-height: 1.3 !important;
	color: var(--kcau-team-navy) !important; letter-spacing: 0 !important; text-transform: none !important; margin: 0 0 6px;
}
.kcau-team .is-position-only .kcau-team-card__name { font-size: 18px !important; font-weight: 600 !important; }
.kcau-team .kcau-team-card__position { font-family: var(--kcau-team-font) !important; color: var(--kcau-team-gold-text) !important; }
.kcau-team .kcau-team-card__email a { color: var(--kcau-team-navy-2) !important; }
.kcau-team-modal .kcau-team-profile__name, .kcau-team-single .kcau-team-profile__name {
	font-family: var(--kcau-team-font) !important; font-size: 26px !important; font-weight: 400 !important; line-height: 1.25 !important; color: var(--kcau-team-navy) !important; letter-spacing: 0 !important; text-transform: none !important;
}
.kcau-team-single .kcau-team-profile__name { font-size: 34px !important; }
.kcau-team-modal .kcau-team-profile__h, .kcau-team-single .kcau-team-profile__h {
	font-family: var(--kcau-team-font) !important; font-size: 12.5px !important; font-weight: 700 !important; line-height: 1.4 !important;
	letter-spacing: 1.2px !important; text-transform: uppercase !important; color: var(--kcau-team-gold-text) !important; margin: 0 0 6px !important;
}
.kcau-team-modal .kcau-team-profile p, .kcau-team-modal .kcau-team-profile li, .kcau-team-single .kcau-team-profile p, .kcau-team-single .kcau-team-profile li { font-family: var(--kcau-team-font); color: var(--kcau-team-text); }
.kcau-team-modal .kcau-team-profile .kcau-team-profile__position, .kcau-team-single .kcau-team-profile .kcau-team-profile__position { color: var(--kcau-team-gold-text); }
.kcau-team-modal .kcau-team-profile .kcau-team-profile__dept, .kcau-team-modal .kcau-team-profile .kcau-team-profile__muted { color: var(--kcau-team-muted); }
.kcau-team-modal .kcau-team-profile a, .kcau-team-single .kcau-team-profile a { color: var(--kcau-team-navy-2); }
.kcau-team-modal a.kcau-team-profile__link, .kcau-team-single a.kcau-team-profile__link { color: var(--kcau-team-navy); }
.kcau-team-modal a.kcau-team-profile__link:hover, .kcau-team-single a.kcau-team-profile__link:hover { color: #fff; }
@media (max-width: 767px) { .kcau-team-modal .kcau-team-profile__name { font-size: 23px !important; } }
.kcau-team-profile__contact a { display: inline-block; padding: 4px 0; } /* ≥ 24 px targets */
