/**
 * Author-BIO Elementor widget — author / team hero (scoped; does not affect Personal widget).
 *
 * @package Personal_Team_Elementor
 * @since 1.1.0
 * @since 1.2.16 — Small screens: centered photo column; larger image; contain (no hard crop) vs fixed cover box.
 */

/* stylelint-disable selector-class-pattern -- Elementor widget type uses author_bio */

.elementor-widget-author_bio {
	width: 100%;
}

.elementor-widget-author_bio .pte-author-bio {
	--pte-ab-navy: #0a3161;
	--pte-ab-red: #b31942;
	--pte-ab-teal: #28c1df;
	display: block;
	font-family: inherit;
	color: inherit;
	box-sizing: border-box;
}

.elementor-widget-author_bio .pte-author-bio *,
.elementor-widget-author_bio .pte-author-bio *::before,
.elementor-widget-author_bio .pte-author-bio *::after {
	box-sizing: border-box;
}

.elementor-widget-author_bio .pte-author-bio__accent {
	height: 4px;
	background: linear-gradient(90deg, var(--pte-ab-teal) 0%, var(--pte-ab-navy) 60%);
}

.elementor-widget-author_bio .pte-author-bio__hero {
	background: var(--pte-ab-navy);
	padding: 2.25rem 2.5rem 0;
	position: relative;
	overflow: hidden;
}

.elementor-widget-author_bio .pte-author-bio__hero::before {
	content: '';
	position: absolute;
	top: -90px;
	right: -90px;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: var(--pte-ab-red);
	opacity: 0.1;
	pointer-events: none;
}

.elementor-widget-author_bio .pte-author-bio__breadcrumb {
	margin-bottom: 1.75rem;
	position: relative;
	z-index: 1;
}

/* Typography lives on text nodes so Elementor Style > Breadcrumb and theme `a` rules both apply consistently. */
.elementor-widget-author_bio .pte-author-bio__breadcrumb-link,
.elementor-widget-author_bio .pte-author-bio__breadcrumb-parent,
.elementor-widget-author_bio .pte-author-bio__breadcrumb-current {
	font-size: 11px;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.elementor-widget-author_bio .pte-author-bio__breadcrumb-link {
	color: rgba(255, 255, 255, 0.6);
	text-decoration: none;
}

.elementor-widget-author_bio .pte-author-bio__breadcrumb-link:hover {
	color: #fff;
}

.elementor-widget-author_bio .pte-author-bio__breadcrumb-parent {
	color: rgba(255, 255, 255, 0.6);
}

.elementor-widget-author_bio .pte-author-bio__breadcrumb-current {
	color: rgba(255, 255, 255, 0.85);
}

.elementor-widget-author_bio .pte-author-bio__inner {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2.25rem;
	align-items: flex-end;
	position: relative;
	z-index: 1;
}

/* Photo: dimensions & border are primarily from Elementor Style > Photo; these are fallbacks before kit CSS generates. */
.elementor-widget-author_bio .pte-author-bio__photo-col img,
.elementor-widget-author_bio .pte-author-bio__photo {
	display: block;
	max-width: 100%;
	width: 155px;
	height: 180px;
	object-fit: cover;
	object-position: top center;
	border-radius: 8px 8px 0 0;
	border: 3px solid rgba(255, 255, 255, 0.14);
	border-bottom: none;
}

.elementor-widget-author_bio .pte-author-bio__photo-col--no-border img,
.elementor-widget-author_bio .pte-author-bio__photo-col--no-border .pte-author-bio__photo {
	border: none !important;
}

.elementor-widget-author_bio .pte-author-bio__text {
	padding-bottom: 2rem;
}

.elementor-widget-author_bio .pte-author-bio__tag {
	display: inline-block;
	background: var(--pte-ab-red);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 3px;
	margin-bottom: 0.75rem;
}

.elementor-widget-author_bio .pte-author-bio__name {
	font-family: inherit;
	font-size: clamp(2rem, 4vw, 2.875rem);
	font-weight: 700;
	color: #fff;
	line-height: 1.05;
	margin: 0 0 0.35rem;
}

.elementor-widget-author_bio .pte-author-bio__role {
	font-family: inherit;
	font-size: 15px;
	color: rgba(255, 255, 255, 0.58);
	margin: 0 0 1.25rem;
	line-height: 1.45;
}

.elementor-widget-author_bio .pte-author-bio__role a {
	color: rgba(255, 255, 255, 0.75);
	text-decoration: none;
}

.elementor-widget-author_bio .pte-author-bio__role a:hover {
	text-decoration: underline;
}

.elementor-widget-author_bio .pte-author-bio__stats {
	display: flex;
	gap: 2.25rem;
	flex-wrap: wrap;
}

.elementor-widget-author_bio .pte-author-bio__stat-num {
	font-family: inherit;
	font-size: 26px;
	font-weight: 600;
	color: #fff;
	line-height: 1;
}

.elementor-widget-author_bio .pte-author-bio__stat-label {
	font-size: 10px;
	color: rgba(255, 255, 255, 0.38);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-top: 3px;
}

@media (max-width: 680px) {
	.elementor-widget-author_bio .pte-author-bio__hero {
		padding: 1.5rem 1.25rem 0;
	}

	.elementor-widget-author_bio .pte-author-bio__inner {
		grid-template-columns: 1fr;
		align-items: start;
	}

	/* Center the headshot; let it grow; show full image (Elementor often inlines width/height + cover). */
	.elementor-widget-author_bio .pte-author-bio__photo-col {
		display: flex;
		justify-content: center;
		width: 100%;
	}

	.elementor-widget-author_bio .pte-author-bio__photo-col img,
	.elementor-widget-author_bio .pte-author-bio__photo {
		width: min(240px, 88vw) !important;
		height: auto !important;
		max-height: none;
		aspect-ratio: auto;
		object-fit: contain !important;
		object-position: center center !important;
		border-radius: 8px;
		border: 3px solid rgba(255, 255, 255, 0.14);
	}

	.elementor-widget-author_bio .pte-author-bio__photo-col--no-border img,
	.elementor-widget-author_bio .pte-author-bio__photo-col--no-border .pte-author-bio__photo {
		border: none !important;
	}

	.elementor-widget-author_bio .pte-author-bio__name {
		font-size: 2rem;
	}
}
