/* True Health block styles. Used on the site and inside the WordPress editor. */

body {
	font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
	color: #1B2B33;
	font-size: 17px;
	line-height: 1.6;
}

/* ---------- Sections ---------- */
.th-sec {
	padding: clamp(56px, 9vw, 96px) 24px;
	margin-top: 0;
	margin-bottom: 0;
}
.th-sec > * { max-width: 1152px; margin-left: auto; margin-right: auto; }
.th-sec > .wp-block { max-width: 1152px; }
.th-sec.th-narrow > *,
.th-sec.th-narrow > .wp-block { max-width: 852px; }
.wp-block.th-sec { max-width: none; }
.th-hero { padding-top: clamp(40px, 7vw, 88px); }
.th-sec--white { background: #FFFFFF; }
.th-sec--green { background: #E9F2E3; }
.th-sec--navy { background: #1E455A; color: #FFFFFF; }
.th-center, .th-center-text { text-align: center; }
.th-left { text-align: left; }

/* Reset vertical spacing inside sections; keep horizontal centering. */
.th-sec :where(p, h1, h2, h3, ul, figure, details, .wp-block-buttons, .wp-block-columns, .wp-block-group) {
	margin-top: 0;
}

/* ---------- Type ---------- */
.th-sec h1, .th-sec h2, .th-sec h3 {
	font-family: Lora, Georgia, serif; color: #1E455A; font-weight: 600; line-height: 1.12;
	margin-bottom: 16px;
}
.th-sec h2 { font-size: clamp(30px, 5.5vw, 44px); margin-bottom: clamp(24px, 4vw, 40px); }
.th-sec h2.th-title-lg { font-size: clamp(32px, 6vw, 48px); }
.th-sec h3 {
	font-family: Inter, system-ui, sans-serif; font-size: 20px; line-height: 1.3; margin-bottom: 8px;
}
.th-sec h3.th-serif { font-family: Lora, Georgia, serif; font-size: 26px; }
.th-sec h1.th-display {
	font-size: clamp(40px, 8vw, 68px); line-height: 1.04; letter-spacing: -0.02em; margin-bottom: 24px;
}
/* Balance headline lines so one word is never left alone. */
.th-sec h1, .th-sec h2 { text-wrap: balance; }
/* Never split a word across lines in headlines; size the big headline to its column instead. */
.th-sec h1, .th-sec h2, .th-sec h3,
.th-sec h1.wp-block-heading, .th-sec h2.wp-block-heading, .th-sec h3.wp-block-heading {
	overflow-wrap: normal !important; word-break: normal !important; hyphens: manual !important;
}
.th-hero .wp-block-column { container-type: inline-size; }
.th-hero h1.th-display { font-size: clamp(36px, 12.5cqi, 68px); }
.th-sec h3 a { color: inherit; text-decoration: none; }
.th-sec h3 a:hover { text-decoration: underline; }
.th-sec--navy h1, .th-sec--navy h2, .th-sec--navy h3 { color: #FFFFFF; }
.th-sec p { margin-bottom: 16px; }
.th-eyebrow {
	font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 600; color: #3F7E22;
}
.th-sec p.th-eyebrow { margin-bottom: 12px; }
.th-sec p.th-lead { font-size: 20px; color: #3A4B53; max-width: 560px; margin-bottom: 32px; }
.th-center p.th-lead, .th-narrow p.th-lead { margin-left: auto; margin-right: auto; }
.th-sec--navy p.th-lead { color: #D6E2E8; }
.th-hero p.th-lead { margin-left: 0; }
.th-muted { color: #4A5B63; }
.th-sec p.th-gap-top { margin-top: 28px; }
.th-hours { line-height: 1.75; }

/* ---------- Columns ---------- */
.th-sec .wp-block-columns { gap: 28px; margin-bottom: 0; }
.th-hero .wp-block-columns, .th-sec > .wp-block-columns.are-vertically-aligned-center { gap: clamp(32px, 5vw, 64px); }
.th-sec .wp-block-column > :last-child { margin-bottom: 0; }
.th-features .wp-block-column { text-align: center; }
.th-sec h2 + .wp-block-columns, .th-sec p + .wp-block-columns { margin-top: 0; }
.th-sec .wp-block-columns + p { margin-top: 32px; }

/* ---------- Cards ---------- */
.th-card {
	background: #FFFFFF; border: 1px solid #E3E7E1; border-radius: 24px; padding: 30px;
}
.th-cards-soft .th-card { background: #F6F7F2; border: 0; }
/* Whole card is tappable for service cards and form downloads. */
.th-card--media, .th-card--file { position: relative; transition: box-shadow .2s, transform .2s; }
.th-card--media h3 a::after, .th-card--file h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 24px; }
.th-card--media:hover, .th-card--file:hover { box-shadow: 0 10px 30px rgba(18, 48, 63, 0.10); transform: translateY(-2px); }
.th-card.th-card--media { padding: 0; overflow: hidden; }
.th-card__body { padding: 26px 28px 30px; }
.th-card__body > :last-child { margin-bottom: 0; }
.th-card.th-card--navy { background: #1E455A; color: #FFFFFF; border: 0; padding: clamp(28px, 4vw, 40px); }
/* (navy card text colors are set after the quote styles below) */
.th-sec p.th-step {
	font-family: Lora, Georgia, serif; font-size: 42px; font-weight: 700; color: #479029; line-height: 1; margin-bottom: 12px;
}
.th-sec p.th-quote { font-family: Lora, Georgia, serif; font-size: 21px; line-height: 1.45; color: #1E455A; margin-bottom: 14px; }
.th-sec p.th-quote--lg { font-size: 26px; }
.th-sec p.th-cite { font-size: 15px; color: #4A5B63; }
.th-sec .th-card--navy p.th-eyebrow { color: #9ED67E; }
.th-sec .th-card--navy p.th-quote { color: #FFFFFF; }
.th-sec .th-card--navy p.th-cite { color: #D6E2E8; }
.th-review { display: flex; flex-direction: column; }
.th-review p.th-quote { flex-grow: 1; }
.th-stars { display: flex; gap: 2px; margin-bottom: 14px; }
.th-icon {
	width: 64px; height: 64px; border-radius: 50%; background: #E9F2E3;
	display: inline-flex; align-items: center; justify-content: center; margin-bottom: 18px;
}
.th-icon--sq { width: 56px; height: 56px; border-radius: 16px; margin-bottom: 16px; }

/* ---------- Photos ---------- */
.th-sec figure.th-photo, .th-photo { margin: 0; }
.th-photo img { display: block; width: 100%; object-fit: cover; border-radius: 28px; }
.th-photo--tall img { height: clamp(300px, 80vw, 560px); }
.th-photo--portrait img { height: clamp(380px, 110vw, 560px); object-position: center 22%; }
.th-photo--xl img { height: clamp(380px, 110vw, 620px); }
.th-photo--wide img { height: clamp(260px, 60vw, 440px); }
.th-photo--card img { height: 220px; border-radius: 0; }
.th-pos-top img { object-position: center top; }
.th-pos-chiro img { object-position: 60% 40%; }

/* ---------- Buttons ---------- */
.th-sec .wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-bottom: 0; }
.th-sec .wp-block-buttons > .wp-block-button { margin: 0; flex: 0 0 auto; width: auto; max-width: none; }
.th-sec .wp-block-buttons.th-center-btns { justify-content: center; }
.th-sec .wp-block-button .wp-block-button__link {
	background: #1E455A !important; color: #FFFFFF !important; border: 2px solid #1E455A !important;
	padding: 14px 26px !important; border-radius: 999px !important;
	font-family: Inter, system-ui, sans-serif; font-weight: 600; font-size: 17px; line-height: 1.3; text-decoration: none;
}
.th-sec .wp-block-button .wp-block-button__link:hover { background: #12303F !important; border-color: #12303F !important; }
.th-sec .wp-block-button.is-style-outline .wp-block-button__link { background: transparent !important; color: #1E455A !important; }
.th-sec .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #1E455A !important; color: #FFFFFF !important; }
.th-sec--navy .wp-block-button.is-style-outline .wp-block-button__link { color: #FFFFFF !important; border-color: #FFFFFF !important; }
.th-sec--navy .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #FFFFFF !important; color: #1E455A !important; }
.th-sec .wp-block-button.th-btn--green .wp-block-button__link { background: #71BF44 !important; border-color: #71BF44 !important; color: #12303F !important; }
.th-sec .wp-block-button.th-btn--green .wp-block-button__link:hover { background: #5FA836 !important; border-color: #5FA836 !important; }
.th-sec .wp-block-button.th-pill .wp-block-button__link {
	background: #FFFFFF !important; color: #1E455A !important; border: 1px solid #D5DDD3 !important; padding: 12px 22px !important;
}
.th-sec .wp-block-button.th-pill .wp-block-button__link:hover { border-color: #1E455A !important; }

/* ---------- Tiles (lists) ---------- */
.th-sec ul.th-tiles {
	list-style: none; padding: 0; margin-bottom: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px;
}
.th-sec p + ul.th-tiles { margin-top: 24px; }
.th-tiles li { background: #F6F7F2; border-radius: 22px; padding: 24px 26px; font-weight: 600; color: #1E455A; margin: 0; }
.th-tiles--navy li { background: #1E455A; padding: 0; }
.th-tiles--navy li a { display: block; padding: 24px 26px; color: #FFFFFF; text-decoration: none; }
.th-tiles--navy li a:hover { text-decoration: underline; }

/* ---------- FAQ ---------- */
.th-sec details.th-faq {
	background: #FFFFFF; border: 1px solid #E3E7E1; border-radius: 18px; padding: 0; margin-bottom: 14px;
}
.th-faq summary { font-weight: 600; font-size: 19px; color: #1E455A; cursor: pointer; padding: 20px 26px; min-height: 48px; }
.th-sec .th-faq p { margin-top: 0; margin-bottom: 12px; padding: 0 26px; color: #3A4B53; }
.th-sec .th-faq p:last-child { margin-bottom: 0; padding-bottom: 22px; }

/* ---------- Tablets: four-card rows become 2 x 2 ---------- */
@media (min-width: 782px) and (max-width: 1100px) {
	.th-sec .wp-block-columns.th-cards-soft { flex-wrap: wrap !important; }
	.th-sec .wp-block-columns.th-cards-soft > .wp-block-column { flex: 0 0 calc(50% - 14px) !important; }
}

/* ---------- Phones ---------- */
@media (max-width: 781px) {
	.th-sec .wp-block-columns { gap: 24px; }
	.th-hero .wp-block-columns { gap: 36px; }
}
