/* TherapyBuilt Specialty / Services Directory frontend styles.
 * Moved out of class-tb-specialty.php in 0.4.0 so the large component stays maintainable.
 */

.tb-specialty-archive{padding:clamp(48px,8vw,96px) clamp(24px,5vw,64px);background:var(--tb-surface,#fff);}
.tb-specialty-archive__inner{max-width:1100px;margin:0 auto;}
.tb-specialty-archive__intro{
	max-width:100%;
	margin:0 0 clamp(32px,5vw,48px);
	padding:clamp(28px,4vw,40px) clamp(28px,4vw,48px);
	background:color-mix(in srgb,var(--tb-bg,#f6f0ec) 60%,transparent);
	border-radius:12px;
	text-align:left;
}
.tb-specialty-archive__body{font-size:clamp(.9rem,1.4vw,1rem);line-height:1.8;color:var(--tb-text-muted,#5a6a5e);margin:0 0 1.1em;}
.tb-specialty-archive__body:last-child{margin-bottom:0;}
.tb-specialty-archive__grid-heading{font-size:clamp(1.1rem,2vw,1.4rem);font-weight:700;color:var(--tb-text,#2c3e35);letter-spacing:-.02em;margin:0 0 clamp(20px,3vw,32px);}
.tb-specialty-archive__empty{text-align:center;padding:60px 20px;color:var(--tb-text-muted,#5a6a5e);font-size:1rem;line-height:1.6;}
.tb-specialty-archive__inline-cta{margin:1.4em 0 1.1em;}
.tb-specialty-archive__jump-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:99px;font-size:.875rem;font-weight:600;color:var(--tb-primary,#5a7a5e);border:2px solid var(--tb-primary,#5a7a5e);text-decoration:none;transition:all .15s ease;}
.tb-specialty-archive__jump-btn:hover{background:var(--tb-primary,#5a7a5e);color:var(--tb-bg,#faf9f6);}
.tb-specialty-archive__jump-btn svg{transition:transform .2s ease;}
.tb-specialty-archive__jump-btn:hover svg{transform:translateY(2px);}
@media(max-width:600px){.tb-specialty-archive{padding:40px 20px;}.tb-specialty-archive__intro{padding:20px;}}

/* ================================================================
   Services / Directory Page
   ================================================================ */

/* ---- Location + telehealth signal strip ----------------------- */
.tb-dir-location-strip{
	background:var(--tb-primary-light,#d4e5d6);
	border-bottom:1px solid var(--tb-border,#e8e2db);
	padding:10px 0;
}
.tb-dir-location-strip__inner{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:20px;
}
.tb-dir-location-strip__item{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:.78rem;
	font-weight:600;
	color:var(--tb-text-muted,#6b7069);
	text-decoration:none;
}
.tb-dir-location-strip__item--telehealth{
	color:var(--tb-primary,#5a7a5e);
}
.tb-dir-location-strip__item--fees,
.tb-dir-location-strip__item--sliding{
	color:var(--tb-primary,#5a7a5e);
	text-decoration:underline;
	text-decoration-color:transparent;
	transition:text-decoration-color .15s ease;
}
.tb-dir-location-strip__item--fees:hover,
.tb-dir-location-strip__item--sliding:hover{
	text-decoration-color:var(--tb-primary,#5a7a5e);
}

/* ---- Filter bar ------------------------------------------------ */
.tb-dir-filter{
	background:var(--tb-surface,#f6f2ee);
	border-bottom:1px solid var(--tb-border,#e8e2db);
	padding:clamp(20px,3vw,28px) 0;
	position:sticky;
	top:0;
	z-index:10;
}
.tb-dir-filter__inner{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:12px;
}
.tb-dir-filter__prompt{
	font-size:.8rem;
	font-weight:700;
	color:var(--tb-text-muted,#6b7069);
	margin:0;
	white-space:nowrap;
	flex-shrink:0;
}
.tb-dir-filter__pills{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
.tb-dir-filter__pill{
	display:inline-flex;
	align-items:center;
	padding:7px 16px;
	border-radius:99px;
	font-size:.82rem;
	font-weight:600;
	border:2px solid var(--tb-border,#e8e2db);
	background:#fff;
	color:var(--tb-text-muted,#6b7069);
	cursor:pointer;
	transition:all .15s ease;
	white-space:nowrap;
	font-family:var(--tb-font-body,system-ui,sans-serif);
	text-decoration:none;
}
.tb-dir-filter__pill:hover{
	border-color:var(--tb-primary,#5a7a5e);
	color:var(--tb-primary,#5a7a5e);
}
.tb-dir-filter__pill--active{
	background:var(--tb-primary,#5a7a5e);
	border-color:var(--tb-primary,#5a7a5e);
	color:var(--tb-bg,#faf9f6);
}
.tb-dir-filter__pill--team{
	gap:6px;
	border-color:var(--tb-primary-light,#d4e5d6);
	color:var(--tb-primary,#5a7a5e);
	background:var(--tb-primary-light,#d4e5d6);
}
.tb-dir-filter__pill--team:hover{
	background:var(--tb-primary,#5a7a5e);
	border-color:var(--tb-primary,#5a7a5e);
	color:var(--tb-bg,#faf9f6);
}

/* ---- Directory sections --------------------------------------- */
.tb-dir-section{
	padding:clamp(48px,6vw,72px) 0;
}
.tb-dir-section--surface{
	background:var(--tb-surface,#f6f2ee);
}
.tb-dir-section__header{
	margin-bottom:clamp(24px,4vw,36px);
}
.tb-dir-section__title{
	font-size:clamp(1.1rem,2.5vw,1.5rem);
	font-weight:700;
	color:var(--tb-heading,#2a2e2a);
	letter-spacing:-.02em;
	margin:0 0 8px;
}
.tb-dir-section__sub{
	font-size:.9rem;
	line-height:1.65;
	color:var(--tb-text-muted,#6b7069);
	margin:0;
	max-width:600px;
}
.tb-dir-empty{
	text-align:center;
	color:var(--tb-text-muted,#6b7069);
	padding:40px 0;
	font-size:.9rem;
}

/* ---- Specialty groups ----------------------------------------- */
.tb-dir-group{
	margin-bottom:clamp(36px,5vw,56px);
}
.tb-dir-group:last-child{
	margin-bottom:0;
}
.tb-dir-group__header{
	display:flex;
	align-items:baseline;
	flex-wrap:wrap;
	gap:10px 16px;
	margin-bottom:16px;
	padding-bottom:12px;
	border-bottom:1px solid var(--tb-border,#e8e2db);
}
.tb-dir-group__title{
	font-size:clamp(1rem,2vw,1.2rem);
	font-weight:700;
	color:var(--tb-heading,#2a2e2a);
	margin:0;
	letter-spacing:-.01em;
}
.tb-dir-group__meta{
	display:flex;
	align-items:center;
	gap:12px;
	flex-wrap:wrap;
}
.tb-dir-group__count{
	font-size:.78rem;
	font-weight:600;
	color:var(--tb-text-muted,#6b7069);
	background:var(--tb-surface,#f6f2ee);
	padding:2px 10px;
	border-radius:99px;
	border:1px solid var(--tb-border,#e8e2db);
}
.tb-dir-group__telehealth{
	display:inline-flex;
	align-items:center;
	gap:5px;
	font-size:.75rem;
	font-weight:600;
	color:var(--tb-primary,#5a7a5e);
}
.tb-dir-group__prose{
	font-size:.875rem;
	line-height:1.65;
	color:var(--tb-text-muted,#6b7069);
	margin:8px 0 0;
	max-width:640px;
}
.tb-dir-group__pills{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}


/* ---- Specialty mini-cards ------------------------------------- */
.tb-dir-spec-cards{
	list-style:none;
	margin:20px 0 0;
	padding:0;
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
	gap:12px;
}
.tb-dir-spec-card{
	display:flex;
	align-items:stretch;
	background:var(--tb-bg,#fff);
	border:1px solid var(--tb-border,#e8e2db);
	border-radius:12px;
	overflow:hidden;
	transition:box-shadow .18s ease, border-color .18s ease;
}
.tb-dir-spec-card:hover{
	box-shadow:0 4px 16px rgba(0,0,0,.07);
	border-color:var(--tb-primary-light,#8aab8e);
}
.tb-dir-spec-card__body{
	flex:1;
	padding:18px 16px 16px;
}
.tb-dir-spec-card__name{
	font-size:1rem;
	font-weight:700;
	margin:0 0 8px;
	line-height:1.3;
}
.tb-dir-spec-card__name-link{
	color:var(--tb-text,#3d4039);
	text-decoration:none;
}
.tb-dir-spec-card__name-link:hover{
	color:var(--tb-primary,#5a7a5e);
}
.tb-dir-spec-card__desc{
	font-size:.855rem;
	line-height:1.6;
	color:var(--tb-text-muted,#6b7069);
	margin:0 0 12px;
}
.tb-dir-spec-card__meta{
	display:flex;
	align-items:center;
	gap:10px;
	flex-wrap:wrap;
}
.tb-dir-spec-card__count{
	font-size:.75rem;
	font-weight:600;
	color:var(--tb-text-muted,#6b7069);
	background:var(--tb-surface,#f6f2ee);
	border:1px solid var(--tb-border,#e8e2db);
	padding:2px 9px;
	border-radius:99px;
	text-decoration:none;
}
.tb-dir-spec-card__count--link{
	transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.tb-dir-spec-card__count--link:hover{
	background:var(--tb-primary-light,#d4e5d6);
	border-color:var(--tb-primary,#5a7a5e);
	color:var(--tb-primary,#5a7a5e);
}
.tb-dir-spec-card__telehealth{
	display:inline-flex;
	align-items:center;
	gap:4px;
	font-size:.73rem;
	font-weight:600;
	color:var(--tb-primary,#5a7a5e);
}
.tb-dir-spec-card__arrow{
	display:flex;
	align-items:center;
	justify-content:center;
	width:40px;
	flex-shrink:0;
	color:var(--tb-text-muted,#6b7069);
	border-left:1px solid var(--tb-border,#e8e2db);
	text-decoration:none;
	transition:background .15s ease, color .15s ease;
}
.tb-dir-spec-card:hover .tb-dir-spec-card__arrow{
	background:var(--tb-primary-light,#d4e5d6);
	color:var(--tb-primary,#5a7a5e);
}
@media(max-width:600px){
	.tb-dir-spec-cards{grid-template-columns:1fr;}
}
/* ---- Insurance card logo -------------------------------------- */
.tb-dir-spec-card--insurance .tb-dir-spec-card__body{gap:6px;}
.tb-dir-spec-card__insurance-logo{height:32px;display:flex;align-items:center;}
.tb-dir-spec-card__insurance-logo img{max-height:32px;width:auto;display:block;}

/* ---- Directory pills ------------------------------------------ */
.tb-dir-pill{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:9px 18px;
	border-radius:99px;
	font-size:.875rem;
	font-weight:600;
	text-decoration:none;
	color:var(--tb-primary,#5a7a5e);
	background:#fff;
	border:2px solid color-mix(in srgb,var(--tb-primary,#5a7a5e) 25%,transparent);
	transition:background .15s,border-color .15s,color .15s,transform .15s;
}
.tb-dir-pill:hover{
	background:var(--tb-primary,#5a7a5e);
	border-color:var(--tb-primary,#5a7a5e);
	color:#fff;
	transform:translateY(-1px);
	text-decoration:none;
}
.tb-dir-pill__name{font-weight:600;}
.tb-dir-pill__count{
	font-size:.72rem;
	font-weight:700;
	background:color-mix(in srgb,var(--tb-primary,#5a7a5e) 12%,transparent);
	color:var(--tb-primary,#5a7a5e);
	padding:1px 7px;
	border-radius:99px;
	transition:background .15s,color .15s;
}
.tb-dir-pill:hover .tb-dir-pill__count{
	background:rgba(255,255,255,.2);
	color:#fff;
}
.tb-dir-pill--modality{
	color:var(--tb-accent-dark,#8a5438);
	border-color:var(--tb-accent-light,#f0ddd3);
}
.tb-dir-pill--modality:hover{background:var(--tb-accent,#b0714e);border-color:var(--tb-accent,#b0714e);color:var(--tb-bg,#faf9f6);}
.tb-dir-pill--modality .tb-dir-pill__count{background:color-mix(in srgb,#7c3aed 12%,transparent);color:var(--tb-accent-dark,#8a5438);}
.tb-dir-pill--modality:hover .tb-dir-pill__count{background:rgba(255,255,255,.2);color:#fff;}

.tb-dir-pill--population{
	color:#0369a1;
	border-color:color-mix(in srgb,#0369a1 25%,transparent);
}
.tb-dir-pill--population:hover{background:#0369a1;border-color:#0369a1;color:#fff;}
.tb-dir-pill--population .tb-dir-pill__count{background:color-mix(in srgb,#0369a1 12%,transparent);color:#0369a1;}
.tb-dir-pill--population:hover .tb-dir-pill__count{background:rgba(255,255,255,.2);color:#fff;}

.tb-dir-pill--language{
	color:#b45309;
	border-color:color-mix(in srgb,#b45309 25%,transparent);
}
.tb-dir-pill--language:hover{background:#b45309;border-color:#b45309;color:#fff;}
.tb-dir-pill--language .tb-dir-pill__count{background:color-mix(in srgb,#b45309 12%,transparent);color:#b45309;}
.tb-dir-pill--language:hover .tb-dir-pill__count{background:rgba(255,255,255,.2);color:#fff;}

/* ---- Not sure block ------------------------------------------- */
.tb-services-notsure{padding:clamp(32px,5vw,56px) 0;}
.tb-services-notsure__inner{
	background:var(--tb-surface,#f6f2ee);
	border:1px solid var(--tb-border,#e8e2db);
	border-radius:16px;
	padding:clamp(28px,4vw,48px);
	text-align:center;
}
.tb-services-notsure__eyebrow{
	font-size:.72rem;font-weight:700;letter-spacing:.1em;
	text-transform:uppercase;color:var(--tb-primary,#5a7a5e);margin:0 0 10px;
}
.tb-services-notsure__body{
	font-size:clamp(1rem,1.6vw,1.1rem);line-height:1.75;
	color:var(--tb-text,#3d4039);margin:0 0 16px;
	max-width:560px;margin-left:auto;margin-right:auto;
}
.tb-services-notsure__fees-note{
	font-size:.875rem;
	line-height:1.6;
	color:var(--tb-text-muted,#6b7069);
	margin:0 0 24px;
}
.tb-services-notsure__fees-link{
	color:var(--tb-primary,#5a7a5e);
	font-weight:600;
	text-decoration:none;
	white-space:nowrap;
}
.tb-services-notsure__fees-link:hover{
	text-decoration:underline;
}
.tb-services-notsure__avail{
	display:inline-flex;
	align-items:center;
	gap:7px;
	font-size:.8rem;
	font-weight:600;
	color:var(--tb-text-muted,#6b7069);
	margin:0 0 16px;
}
.tb-services-notsure__avail-dot{
	width:8px;
	height:8px;
	border-radius:50%;
	background:var(--tb-primary,#5a7a5e);
	flex-shrink:0;
	display:inline-block;
}

@media(max-width:640px){
	.tb-dir-filter{position:static;}
	.tb-dir-filter__prompt{width:100%;}
	.tb-dir-pill{font-size:.8rem;padding:7px 14px;}
}
@media(prefers-reduced-motion:reduce){
	.tb-dir-filter__pill,.tb-dir-pill{transition:none;}
}
