/*
Theme Name: Therapy Coach
Author: WPEverest
Author URI: https://wpeverest.com/
Description: Therapy Coach is a calm, modern WordPress block theme built for therapists, counselors, and life coaches. Powered by Full Site Editing and seamlessly integrated with the AllCoach plugin, it gives you everything needed to present your practice with warmth and clarity — showcase your programs and credentials, offer free discovery calls, accept bookings and session appointments, and guide clients through structured activities. With a soothing color palette, elegant Playfair Display and Work Sans typography, ready-made block patterns, and multiple color variations, Therapy Coach helps independent practitioners and wellness studios launch a professional, trustworthy online presence that grows with them.
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 7.2
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: therapy-coach
Tags: blog, portfolio, full-site-editing, block-patterns, block-styles, custom-colors, custom-menu, custom-logo, editor-style, featured-images, flexible-header, one-column, two-columns, three-columns, threaded-comments, translation-ready, wide-blocks
*/

html,
body,
.wp-block-post-author__avatar,
.wp-block-social-links,
.wp-block-post-excerpt__excerpt,
.wp-block-separator {
	margin: 0;
	padding: 0;
}

html,
body {
	overflow-x: hidden;
}

/* Hero pattern */
.hero-image-wrap {
	position: relative;
}

.hero-stat-card {
	position: absolute;
	bottom: 20px;
	left: 20px;
	z-index: 2;
	white-space: nowrap;
}

.hero-avatars {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
}

.hero-avatars .wp-block-image {
	flex-shrink: 0;
	margin: 0;
}

.hero-avatars .wp-block-image:not(:last-child) {
	margin-left: -8px;
}

.hero-avatars .wp-block-image img {
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--cream);
	object-fit: cover;
	display: block;
}

.hero-coach-img {
	margin: 0 !important;
}

.hero-coach-img img {
	border-radius: 16px;
	width: 100%;
	height: auto;
	object-fit: cover;
	display: block;
}

.hero-stat-icon {
	background: color-mix(in oklab, var(--wp--preset--color--primary) 12%, transparent);
	border-radius: 8px;
	padding: 8px;
	line-height: 1;
	display: flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.no-margin-top {
	margin-top: 0 !important;
}

.service-icon {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 44px;
}

.service-icon-img {
	display: block !important;
	width: fit-content !important;
	height: auto !important;
	margin: 0 !important;
}


.service-icon-img img {
	width: 24px;
	height: 24px;
	display: block;
	filter: brightness(0) saturate(100%) invert(53%) sepia(35%) saturate(650%) hue-rotate(334deg) brightness(88%);
}

.cred-check-icon {
	width: 15px !important;
	height: 15px;
	flex-shrink: 0;
	margin: 0 !important;
}

.cred-check-icon img {
	width: 15px;
	height: 15px;
	display: block;
	filter: brightness(0) saturate(100%) invert(53%) sepia(35%) saturate(650%) hue-rotate(334deg) brightness(88%);
}

/* Logo icon — white inside primary circle */
.logo-icon img {
	filter: brightness(0) invert(1);
}

/* Trust badge dot */
.badge-dot {
	width: 6px;
	flex: 0 0 auto;
}

/* Credentials icon badge */
.cred-icon {
	display: inline-flex;
	width: -moz-fit-content;
	width: fit-content;
}

/* Inline SVG icon wrapper */
.tc-svg-icon {
	display: flex;
	color: var(--wp--preset--color--primary);
}

.tc-svg-icon svg {
	width: 24px;
	height: 24px;
}

/* How It Works step card + watermark number */
.step-card {
	position: relative;
	overflow: hidden;
}

.step-num {
	position: absolute !important;
	top: -16px;
	left: -8px;
	right: auto;
	margin: 0 !important;
	pointer-events: none;
}

/* Hero badge icon — sizes the image and colorizes the default sparkle SVG to primary */
.hero-badge-icon {
	width: 16px !important;
	height: 16px;
	flex-shrink: 0;
	margin: 0 !important;
}

.hero-badge-icon img {
	width: 16px;
	height: 16px;
	display: block;
	filter: brightness(0) saturate(100%) invert(53%) sepia(35%) saturate(650%) hue-rotate(334deg) brightness(88%);
}

/* Client Results before/after label with leading dot */
.result-label {
	display: flex;
	align-items: center;
	gap: 8px;
}

.result-label::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	flex-shrink: 0;
}

/* Program curriculum — scrollable modules column (scrollbar hidden) */
.program-scroll {
	max-height: 620px;
	overflow-y: auto;
	-ms-overflow-style: none; /* IE & old Edge */
	scrollbar-width: none; /* Firefox */
}

.program-scroll::-webkit-scrollbar {
	display: none; /* Chrome, Safari, Edge */
}

.program-scroll .week-label {
	white-space: nowrap;
	min-width: 56px;
}

/* Equal-height cards inside columns (e.g. About – Credentials) */
.about-card {
	height: 100%;
}

/* Box sizing
--------------------------------------------- */
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
html {
	font-smooth: antialiased;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: antialiased;
 }

body {
	font-smooth: auto;
	font-smooth: inherit;
	-webkit-font-smoothing: inherit;
}

.wp-site-blocks > .wp-block-group  {
	margin-block-start: 0;
}

.wp-block-columns{
	margin-block-start: 0;
	margin-block-end: 0;
}

.wp-block-cover{
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Instagram pattern */
.instagram-grid .wp-block-column {
	margin: 0;
}

.instagram-grid .wp-block-image {
	margin: 0;
	overflow: hidden;
	border-radius: 12px;
}

.instagram-grid .wp-block-image img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
}

@media (max-width: 600px) {
	.instagram-grid {
		overflow-x: auto;
		flex-wrap: nowrap !important;
	}
	.instagram-grid .wp-block-column {
		min-width: 150px;
	}
}

/* Blog Journal pattern */
.journal-label-line {
	width: 32px;
	height: 2px;
	background-color: var(--wp--preset--color--primary);
	flex-shrink: 0;
}

.blog-separator {
	background-color: var(--wp--preset--color--rule);
}

.blog-feat-image-wrap {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
}

.blog-feat-image-wrap > .wp-block-image {
	margin: 0;
}

.blog-feat-image-wrap > .wp-block-image img {
	width: 100%;
	height: 360px;
	object-fit: cover;
	display: block;
	border-radius: 0;
}

.blog-feat-category-pill {
	position: absolute !important;
	top: 16px;
	right: 16px;
	z-index: 2;
}

.blog-feat-arrow {
	position: absolute !important;
	bottom: 16px;
	left: 16px;
	z-index: 2;
	width: 40px !important;
	height: 40px !important;
}

.blog-list-item {
	border-top: 1px solid var(--wp--preset--color--rule);
	padding-top: 24px;
	padding-bottom: 24px;
}

.blog-list-item:last-child {
	border-bottom: 1px solid var(--wp--preset--color--rule);
}

.blog-list-num {
	flex-shrink: 0;
	min-width: 32px;
}

.blog-list-content {
	flex: 1 !important;
	min-width: 0;
}

.blog-list-thumb {
	flex-shrink: 0;
	width: 80px;
}

.blog-list-thumb .wp-block-image {
	margin: 0;
}

.blog-list-thumb img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}

/* Get Started CTA pattern */
.cta-images-pair .wp-block-image {
	flex: 1;
	margin: 0;
	overflow: hidden;
	border-radius: 16px;
}

.cta-images-pair .wp-block-image img {
	width: 100%;
	height: 380px;
	object-fit: cover;
	display: block;
}

.cta-right-image .wp-block-image {
	margin: 0;
	overflow: hidden;
	border-radius: 16px;
}

.cta-right-image .wp-block-image img {
	width: 100%;
	height: 380px;
	object-fit: cover;
	display: block;
}

/* Resources hero pattern */
.resources-card {
	overflow: hidden;
}

/* Footer pattern */
.footer-logo-circle img {
	filter: brightness(0) invert(1);
	display: block;
}

.footer-social-icons .wp-social-link {
	border: 1px solid var(--wp--preset--color--rule) !important;
	border-radius: 50% !important;
	background: transparent !important;
	width: 36px !important;
	height: 36px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
}

.footer-social-icons .wp-social-link a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.footer-social-icons .wp-social-link svg {
	width: 15px;
	height: 15px;
	fill: var(--wp--preset--color--paragraph-text);
}

.footer-contact-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.footer-contact-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	flex-shrink: 0;
	margin-top: 6px;
}

/* Navigation active state */
.header-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.header-nav .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"],
.header-nav .wp-block-navigation-item.is-active > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent, var(--wp--preset--color--primary)) !important;
	font-weight: 600 !important;
}

.header-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content *,
.header-nav .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"] *,
.header-nav .wp-block-navigation-item.is-active > .wp-block-navigation-item__content * {
	color: var(--wp--preset--color--accent, var(--wp--preset--color--primary)) !important;
}

@media (max-width: 600px) {
	.site-header .wp-block-buttons {
		display: none;
	}
}

/* FAQ accordion */
.therapy-faq-item > summary {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 16px;
	font-weight: 500;
	color: var(--wp--preset--color--heading-text);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

.therapy-faq-item > summary::-webkit-details-marker {
	display: none;
}

.therapy-faq-item > summary::after {
	content: "+";
	font-size: 20px;
	font-weight: 300;
	flex-shrink: 0;
	color: var(--wp--preset--color--primary);
	transition: transform 0.2s ease;
}

.therapy-faq-item[open] > summary::after {
	transform: rotate(-45deg);
}

/* CTA gradient section */
.wp-block-group.has-background[style*="linear-gradient"] {
	background-attachment: local;
}

/* Skip link */
.skip-link {
	position: absolute;
	top: -9999px;
	right: -9999px;
	z-index: 999999;
	text-decoration: none;
}

.skip-link:focus {
	position: fixed;
	top: 0;
	right: 0;
	display: block;
	background: var(--wp--preset--color--primary, #2563eb);
	color: #fff;
	padding: 0.75rem 1.5rem;
	font-size: 1rem;
	font-weight: 600;
}

/* Focus indicators */
a:focus,
a:focus-visible,
button:focus,
button:focus-visible,
.wp-block-button__link:focus,
.wp-block-button__link:focus-visible,
input:focus,
input:focus-visible,
textarea:focus,
textarea:focus-visible,
select:focus,
select:focus-visible,
[tabindex]:focus,
[tabindex]:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #2563eb);
	outline-offset: 2px;
}

/* Dashboard feature grid — Journaling card spans two rows */
.dashboard-feature {
	grid-row: span 2;
}

@media (max-width: 781px) {
	.dashboard-grid {
		grid-template-columns: 1fr !important;
	}
	.dashboard-feature {
		grid-row: span 1;
	}
}
