/* TherapyBuilt About page. */
/* ================================================================
   About page — Section 1: Approach + Photo
   ================================================================ */

.tb-about-page__approach-grid {
	display: grid;
	gap: clamp(32px,5vw,72px);
	align-items: start;
}

.tb-about-page__approach-grid--has-photo {
	grid-template-columns: 3fr 2fr;
}

/* "OUR APPROACH" eyebrow label */
.tb-about-page__col-eyebrow {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--tb-primary,#5a7a5e);
	margin-bottom: 20px;
}

/* Approach paragraphs */
.tb-about-page__approach-col p {
	font-size: clamp(.95rem,1.4vw,1.05rem);
	line-height: 1.85;
	color: var(--tb-text-muted,#5a6a5e);
	max-width: 62ch;
}

.tb-about-page__approach-col p + p {
	margin-top: 1.25em;
}

/* Credentials — fine print below approach, separated by a hairline */
.tb-about-page__credentials {
	font-size: .78rem !important;
	line-height: 1.7 !important;
	color: var(--tb-text-muted,#5a6a5e);
	border-top: 1px solid var(--tb-border,#e5e7eb);
	padding-top: clamp(16px,2vw,20px);
	margin-top: clamp(28px,3vw,40px) !important;
	max-width: none !important;
}

/* Photo — sticky so it stays in view while scrolling long approach text */
.tb-about-page__photo-wrap {
	position: sticky;
	top: clamp(24px,4vw,48px);
}

.tb-about-page__photo {
	width: 100%;
	border-radius: 16px;
	object-fit: cover;
	aspect-ratio: 4/5;
	display: block;
}


/* ================================================================
   About page — Section 2: Founder statement
   ================================================================ */

.tb-about-page__quote-section {
	padding-top: clamp(18px,3vw,34px);
	padding-bottom: clamp(42px,6vw,70px);
}

.tb-about-page__quote-wrap {
	max-width: 860px;
	margin: 0 auto;
}

.tb-about-page__quote {
	position: relative;
	margin: 0;
	padding: clamp(30px,5vw,52px) clamp(28px,5.5vw,62px);
	border: 1px solid color-mix(in srgb,var(--tb-primary,#5a7a5e) 16%,#e9eee9);
	border-radius: var(--tb-radius-lg,18px);
	background: color-mix(in srgb,var(--tb-primary-light,#d4e5d6) 12%,#fff);
	box-shadow: 0 16px 42px rgba(36,55,43,.055);
	overflow: hidden;
}

.tb-about-page__quote-mark {
	position: absolute;
	/* Keep the decorative quote visually attached to the statement rather than
	   floating against the top border of the card. */
	top: clamp(76px,7vw,94px);
	left: clamp(18px,3vw,32px);
	font-family: Georgia,serif;
	font-size: clamp(5.6rem,10vw,7.6rem);
	line-height: 1;
	color: var(--tb-primary,#5a7a5e);
	opacity: .06;
	pointer-events: none;
}

.tb-about-page__quote-eyebrow {
	position: relative;
	display: block;
	margin-bottom: 14px;
	font-size: .72rem;
	font-weight: 720;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--tb-primary,#5a7a5e);
}

.tb-about-page__quote-text {
	position: relative;
	font-size: clamp(1.12rem,2.1vw,1.42rem) !important;
	line-height: 1.68 !important;
	color: var(--tb-text,#2c3e35);
	font-style: italic;
	margin: 0 0 24px !important;
	max-width: 70ch !important;
}

.tb-about-page__quote-attr {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 10px;
	font-style: normal;
	line-height: 1.45;
}

.tb-about-page__quote-attr strong {
	font-size: .92rem;
	color: var(--tb-text,#2c3e35);
}

.tb-about-page__quote-attr span {
	font-size: .8rem;
	font-weight: 650;
	color: var(--tb-primary,#5a7a5e);
}


/* ================================================================
   Responsive
   ================================================================ */

@media (max-width: 760px) {

	/* Stack columns; photo moves above text on mobile */
	.tb-about-page__approach-grid--has-photo {
		grid-template-columns: 1fr;
	}
	.tb-about-page__photo-wrap {
		position: static;
		order: -1;
	}
	.tb-about-page__photo {
		aspect-ratio: 16/9;
	}
}

/* Practice approvals, credentials, and affiliations */
.tb-practice-credentials {
	padding-block: clamp(54px,7vw,88px);
}

.tb-practice-credentials__intro {
	max-width: 720px;
	margin-bottom: clamp(26px,4vw,42px);
}

.tb-practice-credentials__eyebrow {
	margin: 0 0 10px;
	font-size: .72rem;
	font-weight: 720;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--tb-primary,#5a7a5e);
}

.tb-practice-credentials__intro h2 {
	margin: 0;
	font-size: clamp(2rem,4vw,3rem);
	color: var(--tb-text,#26362d);
}

.tb-practice-credentials__intro > p:last-child {
	margin: 14px 0 0;
	color: var(--tb-text-muted,#647168);
	line-height: 1.7;
}

.tb-practice-credentials__grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 18px;
}

.tb-practice-credential {
	display: flex;
	gap: 16px;
	min-height: 100%;
	padding: 22px;
	border: 1px solid color-mix(in srgb,var(--tb-primary,#5a7a5e) 14%,#e7ece8);
	border-radius: var(--tb-radius-lg,18px);
	background: #fff;
	box-shadow: 0 10px 30px rgba(36,55,43,.055);
}

.tb-practice-credential__logo {
	flex: 0 0 62px;
	width: 62px;
	height: 62px;
	object-fit: contain;
	border-radius: 10px;
	background: #fff;
}

.tb-practice-credential__body {
	min-width: 0;
}

.tb-practice-credential__type {
	margin: 0 0 6px;
	font-size: .68rem;
	font-weight: 720;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--tb-primary,#5a7a5e);
}

.tb-practice-credential h3 {
	margin: 0;
	font-size: 1.08rem;
	line-height: 1.35;
	color: var(--tb-text,#26362d);
}

.tb-practice-credential__organization {
	margin: 6px 0 0;
	font-size: .86rem;
	font-weight: 650;
	color: var(--tb-text-muted,#647168);
}

.tb-practice-credential__description {
	margin: 11px 0 0;
	font-size: .88rem;
	line-height: 1.62;
	color: var(--tb-text-muted,#647168);
}

.tb-practice-credential__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 13px;
}

.tb-practice-credential__meta span {
	padding: 4px 7px;
	border-radius: 999px;
	background: color-mix(in srgb,var(--tb-primary-light,#d4e5d6) 35%,#fff);
	font-size: .68rem;
	font-weight: 650;
	color: var(--tb-primary-dark,#3f5941);
}

.tb-practice-credential__verify {
	display: inline-flex;
	gap: 5px;
	margin-top: 14px;
	font-size: .82rem;
	font-weight: 680;
	color: var(--tb-primary-dark,#3f5941);
}

/* One approval should look like a featured trust statement, not an incomplete grid. */
.tb-practice-credentials--single {
	padding-bottom: clamp(34px,5vw,58px);
}

.tb-practice-credentials--single .tb-practice-credentials__intro,
.tb-practice-credentials--pair .tb-practice-credentials__intro {
	max-width: 860px;
	margin-inline: auto;
}

.tb-practice-credentials--single .tb-practice-credentials__grid {
	grid-template-columns: minmax(0,860px);
	justify-content: center;
}

.tb-practice-credentials--single .tb-practice-credential {
	padding: clamp(26px,4vw,38px);
	gap: clamp(22px,3.5vw,38px);
	align-items: center;
	border-color: color-mix(in srgb,var(--tb-primary,#5a7a5e) 22%,#e7ece8);
	box-shadow: 0 18px 48px rgba(36,55,43,.08);
}

.tb-practice-credentials--single .tb-practice-credential--has-logo {
	display: grid;
	grid-template-columns: minmax(96px,120px) minmax(0,1fr);
}

.tb-practice-credentials--single .tb-practice-credential__logo {
	width: 100%;
	height: auto;
	max-width: 110px;
	aspect-ratio: 1;
	padding: 10px;
	border: 1px solid color-mix(in srgb,var(--tb-primary,#5a7a5e) 12%,#edf1ee);
	border-radius: 16px;
}

.tb-practice-credentials--single .tb-practice-credential__type {
	font-size: .72rem;
	margin-bottom: 7px;
}

.tb-practice-credentials--single .tb-practice-credential h3 {
	font-size: clamp(1.28rem,2.2vw,1.6rem);
}

.tb-practice-credentials--single .tb-practice-credential__organization {
	font-size: .96rem;
	line-height: 1.5;
}

.tb-practice-credentials--single .tb-practice-credential__description {
	max-width: 62ch;
	font-size: 1rem;
	line-height: 1.72;
}

.tb-practice-credentials--single .tb-practice-credential__meta span {
	padding: 5px 9px;
	font-size: .72rem;
}

.tb-practice-credentials--pair .tb-practice-credentials__grid {
	grid-template-columns: repeat(2,minmax(0,1fr));
	max-width: 960px;
	margin-inline: auto;
}

/* Keep the founder quote visually connected to the trust section. */
.tb-practice-credentials + .tb-about-page__quote-section {
	padding-top: clamp(20px,3vw,38px);
}

.tb-practice-credentials--single + .tb-about-page__quote-section {
	padding-top: clamp(12px,2vw,26px);
}

/* A solo-practice CTA should connect the founder story to the actual clinician. */
.tb-about-page__team-section--single {
	padding-block: clamp(44px,6vw,72px);
	border-top: 0;
}

.tb-about-page__solo-clinician {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(24px,4vw,46px);
	align-items: center;
	max-width: 940px;
	margin-inline: auto;
	padding: clamp(26px,4.5vw,46px);
	border: 1px solid color-mix(in srgb,var(--tb-primary,#5a7a5e) 14%,#e9eee9);
	border-radius: var(--tb-radius-lg,18px);
	background: color-mix(in srgb,var(--tb-primary-light,#d4e5d6) 7%,#fff);
	box-shadow: 0 14px 38px rgba(36,55,43,.05);
}

.tb-about-page__solo-clinician--has-photo {
	grid-template-columns: minmax(180px,230px) minmax(0,1fr);
}

.tb-about-page__solo-photo-link {
	display: block;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 12px 30px rgba(36,55,43,.12);
}

.tb-about-page__solo-photo {
	display: block;
	width: 100%;
	aspect-ratio: 4/5;
	object-fit: cover;
}

.tb-about-page__solo-content {
	min-width: 0;
}

.tb-about-page__solo-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: .72rem;
	font-weight: 720;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--tb-primary,#5a7a5e);
}

.tb-about-page__solo-content h2 {
	margin: 0;
	font-size: clamp(1.75rem,3.5vw,2.55rem);
	line-height: 1.15;
	color: var(--tb-text,#26362d);
}

.tb-about-page__solo-role {
	margin: 9px 0 0;
	font-size: .94rem;
	font-weight: 680;
	color: var(--tb-primary-dark,#3f5941);
}

.tb-about-page__solo-body {
	max-width: 62ch;
	margin: 18px 0 0;
	font-size: 1rem;
	line-height: 1.72;
	color: var(--tb-text-muted,#647168);
}

.tb-about-page__solo-availability {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: 18px;
	font-size: .78rem;
	font-weight: 700;
	color: var(--tb-primary-dark,#3f5941);
}

.tb-about-page__solo-availability > span {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--tb-primary,#5a7a5e);
}

.tb-about-page__solo-availability--warn > span,
.tb-about-page__solo-availability--almost-full > span {
	background: #d79b31;
}

.tb-about-page__solo-availability--muted > span,
.tb-about-page__solo-availability--not-accepting > span,
.tb-about-page__solo-availability--on-leave > span {
	background: #8a948d;
}

.tb-about-page__solo-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

@media (max-width:900px) {
	.tb-practice-credentials__grid {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}

	.tb-practice-credentials--single .tb-practice-credentials__grid {
		grid-template-columns: minmax(0,760px);
	}
}

@media (max-width:620px) {
	.tb-practice-credentials__grid,
	.tb-practice-credentials--pair .tb-practice-credentials__grid {
		grid-template-columns: 1fr;
	}

	.tb-practice-credential,
	.tb-practice-credentials--single .tb-practice-credential {
		padding: 18px;
	}

	.tb-practice-credentials--single .tb-practice-credential--has-logo {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.tb-practice-credentials--single .tb-practice-credential__logo {
		max-width: 82px;
	}

	.tb-about-page__quote {
		padding: 28px 22px;
	}

	.tb-about-page__solo-clinician--has-photo {
		grid-template-columns: 1fr;
	}

	.tb-about-page__solo-photo-link {
		max-width: 220px;
	}

	.tb-about-page__solo-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.tb-about-page__solo-actions .tb-btn {
		justify-content: center;
		width: 100%;
	}
}

/* ================================================================
   rc97 — Automatic About-page polish
   ================================================================ */

/* Logos and brand illustrations should read as intentional artwork rather
   than a photograph that happened to be cropped into a portrait frame. */
.tb-about-page__photo-wrap--brand-art {
	position: static;
	align-self: start;
}

.tb-about-page__photo--brand-art {
	aspect-ratio: 1 / 1;
	object-fit: contain;
	padding: clamp(22px,4vw,46px);
	border: 1px solid color-mix(in srgb,var(--tb-primary,#5a7a5e) 10%,#edf0ed);
	background: color-mix(in srgb,var(--tb-primary-light,#d4e5d6) 5%,#fff);
}

/* Multi-clinician About pages now preview the actual people instead of
   leaving a large text-only CTA in the middle of the page. */
.tb-about-page__team-section:not(.tb-about-page__team-section--single) {
	padding-top: clamp(50px,6vw,72px);
	padding-bottom: clamp(34px,4.5vw,52px);
}

.tb-about-page__team-intro {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
}

.tb-about-page__team-preview {
	--tb-smart-gap: clamp(16px,2.5vw,24px);
	--tb-smart-single-width: 320px;
	margin-top: clamp(28px,4vw,42px);
}

.tb-about-page__team-preview.tb-smart-layout--max-3 > .tb-about-page__team-card {
	max-width: 300px;
}

.tb-about-page__team-card {
	overflow: hidden;
	border: 1px solid color-mix(in srgb,var(--tb-primary,#5a7a5e) 14%,#e9eee9);
	border-radius: var(--tb-radius-lg,18px);
	background: #fff;
	box-shadow: 0 12px 34px rgba(36,55,43,.055);
}

.tb-about-page__team-card-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.tb-about-page__team-photo-wrap {
	overflow: hidden;
	background: var(--tb-surface,#f6f0ec);
}

.tb-about-page__team-photo {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	/* object-position is supplied automatically from the clinician image shape. */
	transition: transform .2s ease;
}

.tb-about-page__team-card-link:hover .tb-about-page__team-photo,
.tb-about-page__team-card-link:focus-visible .tb-about-page__team-photo {
	transform: scale(1.025);
}

.tb-about-page__team-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	padding: 18px 18px 20px;
	text-align: center;
}

.tb-about-page__team-card-body h3 {
	margin: 0;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--tb-text,#26362d);
}

.tb-about-page__team-card-body p {
	margin: 7px 0 0;
	font-size: .82rem;
	line-height: 1.45;
	color: var(--tb-text-muted,#647168);
}

.tb-about-page__team-card-body > span {
	margin-top: auto;
	padding-top: 14px;
	font-size: .78rem;
	font-weight: 700;
	color: var(--tb-primary-dark,#3f5941);
}

.tb-about-page__team-cta {
	justify-content: center;
	margin-top: clamp(16px,2.2vw,24px);
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* The old text-only About CTA used a visual separator. Once clinician cards
   are present, that rule creates an unnecessary gap and makes the action feel
   detached from the people above it. */
.tb-about-page__team-section:not(.tb-about-page__team-section--single) hr,
.tb-about-page__team-cta::before,
.tb-about-page__team-cta::after {
	display: none !important;
	content: none !important;
}

@media (max-width: 760px) {
	.tb-about-page__photo--brand-art {
		aspect-ratio: 1 / 1 !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tb-about-page__team-photo { transition: none; }
}
