/*
Theme Name: True Health Family Chiropractic
Theme URI: https://www.truehealthct.com/
Author: True Health Family Chiropractic
Description: Custom theme for True Health Family Chiropractic in Stratford, CT. Gentle family, pregnancy and pediatric chiropractic.
Version: 1.2.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: truehealth
*/

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: #F6F7F2;
	color: #1B2B33;
	font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: 17px;
	line-height: 1.6;
}
img { max-width: 100%; height: auto; }
a { color: #1E455A; }
a:hover { color: #12303F; }
summary { cursor: pointer; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: 8px; left: 8px; z-index: 100; width: auto; height: auto; clip: auto;
	background: #FFFFFF; padding: 12px 18px; border-radius: 8px; font-weight: 600;
}

/* ---------- Top bar ---------- */
.th-topbar { background: #12303F; color: #E8EEF1; font-size: 14px; }
.th-topbar__inner {
	max-width: 1200px; margin: 0 auto; padding: 0 24px;
	display: flex; flex-wrap: wrap; gap: 0 24px; justify-content: space-between;
}
.th-topbar a { color: #E8EEF1; display: inline-block; padding: 10px 0; }
.th-topbar a.th-topbar__phone { color: #FFFFFF; text-decoration: none; font-weight: 600; }

/* ---------- Header ---------- */
.th-header { background: #FFFFFF; border-bottom: 1px solid #E3E7E1; }
.th-header__inner {
	max-width: 1200px; margin: 0 auto; padding: 18px 24px;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
}
.th-logo { display: flex; align-items: center; text-decoration: none; }
.th-logo img { height: 60px; width: auto; display: block; }
.th-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 22px; font-size: 15px; font-weight: 500; }
.th-nav a { text-decoration: none; padding: 10px 0; }
.th-nav a.is-active { color: #3F7E22; }
.th-nav a.th-nav__book,
.th-nav a.th-nav__book:hover {
	background: #71BF44; color: #12303F; padding: 12px 22px; border-radius: 999px; font-weight: 600;
}
.th-nav-toggle {
	display: none; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 12px; border: 1px solid #D5DDD3;
	background: #FFFFFF; color: #1E455A; cursor: pointer;
}
.th-nav-mobile { display: none; }
.th-nav-mobile__inner { max-width: 1200px; margin: 0 auto; padding: 4px 24px 20px; }
.th-nav-mobile a {
	display: block; padding: 14px 4px; border-bottom: 1px solid #E3E7E1;
	text-decoration: none; font-weight: 500; font-size: 17px;
}
.th-nav-mobile a.is-active { color: #3F7E22; }
.th-nav-mobile a.th-nav-mobile__book {
	margin-top: 14px; text-align: center; background: #1E455A; color: #FFFFFF;
	padding: 14px 20px; border-radius: 999px; font-weight: 600; border-bottom: 0;
}

/* ---------- Footer ---------- */
.th-footer { background: #12303F; color: #C9D6DC; font-size: 15px; }
.th-footer__inner {
	max-width: 1200px; margin: 0 auto; padding: 56px 24px;
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 32px;
}
.th-footer a { color: #FFFFFF; }
.th-footer__name { margin: 0 0 6px; font-family: Lora, Georgia, serif; font-size: 24px; color: #FFFFFF; }
.th-footer__line { margin: 0; }
.th-footer__line + .th-footer__line { margin-top: 2px; }
.th-footer__nav { display: flex; flex-wrap: wrap; gap: 0 24px; }
.th-footer__nav a { display: inline-block; padding: 10px 0; }
.th-footer__line a { display: inline-block; padding: 8px 0; }
.th-social { display: flex; gap: 12px; }
.th-social a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid #6E8A97; color: #FFFFFF;
}
.th-icpa { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.th-icpa__logo { background: #FFFFFF; border-radius: 14px; padding: 6px; display: flex; }
.th-icpa__logo img { width: 68px; height: 68px; display: block; }
.th-icpa__text { font-size: 14px; line-height: 1.4; }
.th-footer__legal {
	max-width: 1200px; margin: 0 auto; padding: 0 24px 32px; font-size: 13px; color: #9FB3BD;
}

/* Footer columns: details | links | social + ICPA */
.th-footer__inner {
	display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
	grid-template-areas: "brand nav social" "brand nav icpa"; align-items: start; gap: 20px 48px;
}
.th-footer__inner > div:first-child { grid-area: brand; }
.th-footer__nav { grid-area: nav; flex-direction: column; }
.th-social { grid-area: social; justify-self: end; }
.th-icpa { grid-area: icpa; justify-self: end; }
@media (max-width: 781px) {
	.th-footer__inner { grid-template-columns: minmax(0, 1fr); grid-template-areas: "brand" "nav" "social" "icpa"; gap: 20px; }
	.th-footer__nav { flex-direction: row; }
	.th-social, .th-icpa { justify-self: start; }
}

/* ---------- Sticky mobile booking bar ---------- */
.th-mobile-cta {
	display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
	background: #FFFFFF; border-top: 1px solid #E3E7E1; padding: 10px 16px; gap: 10px;
	box-shadow: 0 -4px 16px rgba(18, 48, 63, 0.08);
}
.th-mobile-cta__book {
	flex: 1 1 auto; text-align: center; text-decoration: none; background: #71BF44; color: #12303F;
	padding: 14px 16px; border-radius: 999px; font-weight: 600;
}
.th-mobile-cta__call {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 52px; text-decoration: none; border: 2px solid #1E455A; color: #1E455A; border-radius: 999px;
}

/* ---------- Standard pages, blog posts and archives ---------- */
.th-content { max-width: 820px; margin: 0 auto; padding: clamp(48px, 8vw, 88px) 24px clamp(56px, 9vw, 96px); }
.th-content h1, .th-content h2, .th-content h3 {
	font-family: Lora, Georgia, serif; color: #1E455A; line-height: 1.15; font-weight: 600;
}
.th-content h1 { font-size: clamp(34px, 6vw, 52px); margin: 0 0 24px; }
.th-content h2 { font-size: clamp(26px, 4.5vw, 34px); margin: 40px 0 14px; }
.th-content h3 { font-size: 22px; margin: 32px 0 10px; }
.th-content img { border-radius: 16px; }
.th-content blockquote {
	margin: 24px 0; padding: 4px 0 4px 20px; border-left: 3px solid #71BF44;
	font-family: Lora, Georgia, serif; font-size: 20px; color: #1E455A;
}
.th-meta { color: #4A5B63; font-size: 15px; margin: -12px 0 28px; }
.th-post-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.th-post-card {
	background: #FFFFFF; border: 1px solid #E3E7E1; border-radius: 22px; padding: 28px;
}
.th-post-card h2 { margin: 0 0 8px; font-size: 26px; }
.th-post-card h2 a { text-decoration: none; }
.th-post-card p { margin: 0; color: #3A4B53; }
.th-pagination { margin-top: 36px; display: flex; gap: 12px; flex-wrap: wrap; }
.th-pagination a, .th-pagination span {
	padding: 10px 16px; border-radius: 999px; border: 1px solid #D5DDD3; text-decoration: none; background: #FFFFFF;
}
.th-btn {
	display: inline-block; text-decoration: none; background: #1E455A; color: #FFFFFF !important;
	padding: 16px 28px; border-radius: 999px; font-weight: 600;
}
.alignleft { float: left; margin: 0 24px 16px 0; }
.alignright { float: right; margin: 0 0 16px 24px; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text { font-size: 14px; color: #4A5B63; }

/* ---------- Tablets and phones: menu button instead of the full menu ---------- */
@media (max-width: 1100px) {
	.th-nav { display: none; }
	.th-nav-toggle { display: inline-flex; }
	.th-nav-mobile.is-open { display: block; }
}

/* ---------- Phones and small tablets ---------- */
@media (max-width: 900px) {
	.th-mobile-cta { display: flex; }
	.th-logo img { height: 46px; }
	body { padding-bottom: 78px; }
	.alignleft, .alignright { float: none; margin: 0 0 16px; }
}
