/*
 * Golf physical therapy page (replacement for /golf-physical-therapy/) and the strength after 50 page, which reuses its
 * parts. Loaded only on pages whose sections carry the gp-page class (rpt_is_golf_pt_page() in functions.php), after
 * sections.css, whose shared rules (container, hero, section heads, primary button) it builds on.
 * From design/Golf PT Leawood.html and design/Strength After 50 Leawood.html. Markup: scripts/build-divi5-golf-pt.py and
 * scripts/build-divi5-strength-50.py. Tokens come from style.css (--rpt-*).
 * Stacks at 980px and 600px as in the concept.
 */

/* ---- Base typography inside the page's own markup (Divi's defaults for h3, lists and tables are reset here) ---- */
.gp-page .et_pb_text h3,
.gp-page .et_pb_code h3 {
	margin: 0;
	padding: 0;
	font-family: var(--font-heading);
	font-size: clamp(22px, 2.2vw, 28px);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.01em;
	text-wrap: balance;
	color: var(--rpt-slate);
}

.gp-page .et_pb_text ul,
.gp-page .et_pb_text ol,
.gp-page .et_pb_code ul,
.gp-page .et_pb_code ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gp-page .et_pb_text li,
.gp-page .et_pb_code li {
	padding: 0;
}

.gp-page a {
	color: var(--rpt-copper-deep);
	text-underline-offset: 3px;
}

.gp-page a:hover {
	color: var(--rpt-copper-hover);
}

.gp-page .et_pb_text p.rpt-micro {
	margin: 14px 0 0;
	font-size: 15px;
	line-height: 23px;
	color: var(--rpt-slate-muted);
}

/* ---- Breadcrumb (top of the hero) ---- */
.gp-hero .gp-crumbs {
	margin: 0 0 28px;
	font-size: 15px;
	color: var(--rpt-slate-muted);
}

.gp-hero .gp-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.gp-hero .gp-crumbs li + li::before {
	content: "/";
	margin-right: 6px;
	color: var(--rpt-line-strong);
}

.gp-hero .gp-crumbs a {
	color: var(--rpt-slate-muted);
	text-decoration: none;
}

.gp-hero .gp-crumbs a:hover {
	color: var(--rpt-copper-deep);
	text-decoration: underline;
}

/* ---- Hero: photo (homepage hero image rules in sections.css). The golf photo is portrait, so the landscape crop sits
   near the top to keep the golfer's head and the clinic wall in frame. ---- */
.et_pb_section.gp-hero {
	padding-top: 40px !important;
}

.gp-hero .rpt-hero-row.et_pb_row {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
}

.gp-hero .rpt-hero-media img {
	object-position: 50% 8%;
}

/* ---- Trust strip: statement left, club pills right ---- */
.et_pb_section.gp-trust {
	padding-top: 48px !important;
	padding-bottom: 48px !important;
}

.gp-trust .gp-trust__in {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 24px 40px;
}

.gp-trust .et_pb_text .gp-trust__in p.gp-trust__line {
	flex: 1 1 0;
	min-width: min(100%, 320px);
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(24px, 2.2vw, 30px);
	font-weight: 500;
	line-height: 1.22;
	letter-spacing: -0.01em;
	color: var(--rpt-white);
}

.gp-trust .et_pb_text .gp-trust__in ul.gp-trust__clubs {
	flex: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
}

.gp-trust .et_pb_text .gp-trust__in ul.gp-trust__clubs li {
	padding: 6px 18px;
	border: 1px solid rgba(232, 184, 150, 0.45);   /* --rpt-peach at 45% */
	border-radius: var(--rpt-radius-sm);
	font-family: var(--font-heading);
	font-size: 17px;
	line-height: 1.4;
	white-space: nowrap;
	color: var(--rpt-peach);
}

/* ---- Problem cards ---- */
.gp-page .gp-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

/* Column component (unboxed, 2px top rule) in place of a row of identical rounded cards. */
.gp-page .gp-card {
	display: flex;
	flex-direction: column;
	gap: var(--rpt-space-2);
	min-width: 0;
	padding-top: var(--rpt-space-4);
	border-top: 2px solid var(--rpt-line-strong);
	transition: border-color var(--rpt-dur-fast) ease;
}

.gp-page .gp-card:hover {
	border-top-color: var(--rpt-slate);
}

.gp-page .et_pb_text .gp-card p {
	flex: 1;
	margin: 0;
	font-size: 18px;
}

.gp-page .et_pb_text .gp-card p.gp-more {
	flex: none;
}

.gp-page .gp-card .gp-go {
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.gp-page .gp-card .gp-go::after {
	content: " \2192";
}

.gp-page .et_pb_text p.gp-note {
	max-width: 80ch;
	margin: 28px 0 0;
	font-size: 15px;
	color: var(--rpt-slate-muted);
}

.gp-page .gp-note a {
	color: var(--rpt-slate-muted);
}

/* ---- Two-column rows (approach, local) ---- */
.gp-page .gp-split.et_pb_row,
.gp-page .gp-local.et_pb_row {
	display: grid;
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}

.gp-page .gp-split.et_pb_row {
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.gp-page .gp-local.et_pb_row {
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
}

.gp-page .gp-split.et_pb_row::before,
.gp-page .gp-split.et_pb_row::after,
.gp-page .gp-local.et_pb_row::before,
.gp-page .gp-local.et_pb_row::after {
	display: none !important;
}

.gp-page .gp-split .et_pb_heading,
.gp-page .gp-local .et_pb_heading {
	margin-bottom: 20px !important;
}

.gp-page .gp-split .et_pb_text p.rpt-intro {
	margin-top: 0;
}

.gp-page .gp-callout {
	margin-top: 28px;
	padding: 22px 24px;
	border-radius: var(--rpt-radius-lg);
	background: var(--rpt-cream);
	font-size: 16px;
}

.gp-page .gp-callout strong {
	color: var(--rpt-slate);
}

/* Feature list */
.gp-page .gp-feat {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 20px;
	padding: 22px 0;
	border-top: 1px solid var(--rpt-line-strong);
}

.gp-page .gp-feat:last-child {
	border-bottom: 1px solid var(--rpt-line-strong);
}

.gp-page .et_pb_text .gp-feat p.k {
	margin: 0;
	padding-top: 4px;
	font-size: 15px;
	font-weight: 700;
	color: var(--rpt-copper-deep);
}

.gp-page .gp-feat > div {
	display: grid;
	gap: 6px;
}

.gp-page .et_pb_text .gp-feat p {
	margin: 0;
	font-size: 16.5px;
}

/* ---- Stats (strength after 50): two figures with their source ---- */
.gp-page .gp-stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.gp-page .gp-stat {
	display: grid;
	gap: 6px;
	align-content: start;
	padding-top: var(--rpt-space-4);
	border-top: 2px solid var(--rpt-line-strong);
}

.gp-page .et_pb_text .gp-stat p {
	margin: 0;
	font-size: 16.5px;
}

.gp-page .et_pb_text .gp-stat p.v {
	font-family: var(--font-heading);
	font-size: clamp(36px, 4vw, 48px);
	line-height: 1;
	color: var(--rpt-slate);
}

.gp-page .et_pb_text .gp-stat p.src {
	font-size: 15px;
	color: var(--rpt-slate-muted);
}

/* ---- Comparison table (strength after 50). Scrolls inside its wrapper on narrow phones, never the page. ---- */
.gp-page .gp-compare-wrap {
	overflow-x: auto;
	border: 1px solid var(--rpt-line);
	border-radius: var(--rpt-radius-lg);
	background: var(--rpt-white);
}

.gp-page table.gp-compare {
	width: 100%;
	min-width: 560px;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 16.5px;
	line-height: 1.45;
}

.gp-page .gp-compare th,
.gp-page .gp-compare td {
	padding: 16px 20px;
	border: 0;
	border-top: 1px solid var(--rpt-line);
	text-align: left;
	vertical-align: top;
	color: var(--rpt-slate-body);
}

.gp-page .gp-compare thead th,
.gp-page .gp-compare thead td {
	border-top: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--rpt-slate-muted);
}

.gp-page .gp-compare tbody th {
	width: 26%;
	font-weight: 700;
	color: var(--rpt-slate);
}

.gp-page .gp-compare .us {
	background: var(--rpt-cream);
	font-weight: 600;
	color: var(--rpt-slate);
}

.gp-page .gp-compare thead th.us {
	color: var(--rpt-copper-deep);
}

/* ---- Steps ---- */
.gp-page .gp-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.gp-page .gp-steps li {
	display: grid;
	gap: 10px;
	align-content: start;
	padding: 28px;
	border: 1px solid var(--rpt-line);
	border-radius: var(--rpt-radius-lg);
	background: var(--rpt-white);
}

.gp-page .gp-steps li.is-first {
	border-color: var(--rpt-slate);
	background: var(--rpt-slate);
	color: var(--rpt-text-dark);
}

.gp-page .et_pb_text .gp-steps li.is-first h3 {
	color: var(--rpt-white);
}

.gp-page .et_pb_text .gp-steps li.is-first p {
	color: var(--rpt-text-dark);
}

.gp-page .et_pb_text .gp-steps p.n {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 44px;
	line-height: 1;
	color: var(--rpt-copper);
}

.gp-page .et_pb_text .gp-steps p.meta {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--rpt-slate-muted);
}

.gp-page .et_pb_text .gp-steps li.is-first p.n,
.gp-page .et_pb_text .gp-steps li.is-first p.meta {
	color: var(--rpt-peach);
}

.gp-page .et_pb_text .gp-steps p {
	margin: 0;
	font-size: 16px;
}
.gp-page .gp-steps-cta {
	margin-top: 32px;
}

.gp-page .gp-steps-cta .et_pb_column {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 22px;
}

.gp-page .gp-steps-cta .et_pb_text p.rpt-micro {
	margin: 0;
}

/* ---- Local area and visit card ---- */
.gp-page .gp-prose {
	display: grid;
	gap: 18px;
	max-width: 68ch;
}

.gp-page .et_pb_text .gp-prose p {
	margin: 0;
}

.gp-page .gp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}

.gp-page .et_pb_text .gp-chips li {
	padding: 6px 14px;
	border: 1px solid var(--rpt-line-strong);
	border-radius: var(--rpt-radius-sm);
	background: var(--rpt-white);
	font-size: 15px;
	color: var(--rpt-slate);
}

.gp-page .gp-visit {
	display: grid;
	gap: 16px;
	padding: 28px;
	border: 1px solid var(--rpt-line);
	border-radius: var(--rpt-radius-lg);
	background: var(--rpt-white);
}

.gp-page .et_pb_text .gp-visit p.rpt-eyebrow {
	margin: 0;
}

.gp-page .gp-visit address {
	font-style: normal;
	font-size: 18px;
	line-height: 1.5;
	color: var(--rpt-slate);
}

.gp-page .gp-visit table.ct-hours {
	width: auto;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 15.5px;
}

.gp-page .gp-visit .ct-hours th,
.gp-page .gp-visit .ct-hours td {
	padding: 3px 18px 3px 0;
	border: 0;
	text-align: left;
	vertical-align: top;
}

.gp-page .gp-visit .ct-hours th {
	font-weight: 700;
	color: var(--rpt-slate);
}

.gp-page .et_pb_text .gp-visit p.gp-micro {
	margin: 0;
	font-size: 15px;
	color: var(--rpt-slate-muted);
}

.gp-page .et_pb_text .gp-visit p.gp-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin: 0;
	font-size: 15.5px;
	font-weight: 700;
}

/* ---- Doctors ---- */
.gp-page .gp-docs,
.gp-page .gp-quotes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.gp-page .gp-doc {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 20px;
	align-items: start;
	padding: 26px;
	border: 1px solid var(--rpt-line);
	border-radius: var(--rpt-radius-lg);
	background: var(--rpt-white);
}

.gp-page .gp-doc figure {
	margin: 0;
}

.gp-page .gp-doc img {
	display: block;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
}

.gp-page .gp-doc > div {
	display: grid;
	gap: 6px;
	min-width: 0;
}

.gp-page .et_pb_text .gp-doc p {
	margin: 0;
	font-size: 15.5px;
}

.gp-page .et_pb_text .gp-doc p.cred {
	font-size: 15px;
	font-weight: 700;
	color: var(--rpt-copper-deep);
}

/* ---- Quotes ---- */
.gp-page .gp-quote {
	display: grid;
	gap: 18px;
	margin: 0;
	padding: 30px;
	border: 1px solid var(--rpt-line);
	border-radius: var(--rpt-radius-lg);
	background: var(--rpt-white);
}

.gp-page .gp-quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
}

.gp-page .et_pb_text .gp-quote blockquote p {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 19px;
	line-height: 1.5;
	color: var(--rpt-slate);
}

.gp-page .gp-quote figcaption {
	font-size: 15px;
}

.gp-page .gp-quote figcaption b {
	display: block;
	color: var(--rpt-slate);
}

/* ---- FAQ accordion (native details/summary: works without JavaScript) ---- */
.gp-page .gp-faq {
	max-width: 860px;
	font-family: var(--font-body);
	font-size: 18px;
	line-height: 1.6;
	color: var(--rpt-slate-body);
}

.gp-page .gp-faq details {
	border-top: 1px solid var(--rpt-line-strong);
}

.gp-page .gp-faq details:last-child {
	border-bottom: 1px solid var(--rpt-line-strong);
}

.gp-page .gp-faq summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	min-height: var(--rpt-tap-min, 48px);
	padding: 22px 0;
	list-style: none;
	cursor: pointer;
	font-family: var(--font-heading);
	font-size: clamp(19px, 1.8vw, 22px);
	color: var(--rpt-slate);
}

.gp-page .gp-faq summary::-webkit-details-marker {
	display: none;
}

.gp-page .gp-faq summary::after {
	content: "+";
	display: grid;
	flex: none;
	place-items: center;
	width: 32px;
	height: 32px;
	border: 1px solid var(--rpt-line-strong);
	border-radius: 50%;
	font-family: var(--font-body);
	font-size: 20px;
	color: var(--rpt-copper-deep);
}

.gp-page .gp-faq details[open] summary::after {
	content: "\2013";
}

.gp-page .gp-faq summary:focus-visible {
	outline: 3px solid var(--rpt-slate);
	outline-offset: 2px;
	border-radius: 4px;
}

.gp-page .gp-faq .a {
	display: grid;
	gap: 12px;
	max-width: 70ch;
	padding: 0 52px 24px 0;
}

.gp-page .gp-faq .a p {
	margin: 0;
	padding: 0;
}

/* Related links under the FAQ */
.gp-page .gp-related {
	margin: 22px 0 0;
	font-family: var(--font-body);
	font-size: 15px;
	color: var(--rpt-slate-muted);
}

.gp-page .gp-related a {
	color: var(--rpt-slate-muted);
}

/* ---- Tablet ---- */
@media (max-width: 980px) {
	.gp-trust .et_pb_text .gp-trust__in ul.gp-trust__clubs {
		flex: 1 1 100%;
	}

	.gp-hero .rpt-hero-row.et_pb_row,
	.gp-page .gp-split.et_pb_row,
	.gp-page .gp-local.et_pb_row {
		grid-template-columns: minmax(0, 1fr);
	}

	.gp-page .gp-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gp-page .gp-steps,
	.gp-page .gp-docs,
	.gp-page .gp-quotes {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---- Phone ---- */
@media (max-width: 820px) {
	.et_pb_section.gp-hero {
		padding-top: 24px !important;
	}

	.gp-hero .gp-crumbs {
		margin-bottom: 20px;
	}

	.gp-page .gp-steps-cta .et_pb_column {
		display: block;
	}

	.gp-page .gp-steps-cta .et_pb_text p.rpt-micro {
		margin-top: 12px;
	}
}

@media (max-width: 600px) {
	.gp-page .gp-grid,
	.gp-page .gp-stats {
		grid-template-columns: minmax(0, 1fr);
	}

	.gp-page .gp-feat {
		grid-template-columns: minmax(0, 1fr);
		gap: 6px;
	}

	/* Comparison table stacks: one block per row, each answer labelled, RobertsPT always visible. */
	.gp-page table.gp-compare {
		min-width: 0;
	}

	.gp-page .gp-compare thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}

	.gp-page .gp-compare tr,
	.gp-page .gp-compare th,
	.gp-page .gp-compare td {
		display: block;
		width: auto;
	}

	.gp-page .gp-compare tbody tr + tr {
		border-top: 1px solid var(--rpt-line);
	}

	.gp-page .gp-compare tbody th {
		width: auto;
		padding: 18px 20px 6px;
		border-top: 0;
	}

	.gp-page .gp-compare td {
		padding: 6px 20px;
		border-top: 0;
	}

	.gp-page .gp-compare td.us {
		margin: 6px 12px 14px;
		padding: 10px 12px;
		border-radius: var(--rpt-radius-sm);
	}

	.gp-page .gp-compare td::before {
		content: attr(data-label);
		display: block;
		font-size: 14px;
		font-weight: 700;
		color: var(--rpt-slate-muted);
	}

	.gp-page .gp-compare td.us::before {
		color: var(--rpt-copper-deep);
	}

	.gp-page .gp-doc {
		grid-template-columns: minmax(0, 1fr);
	}

	.gp-page .gp-faq .a {
		padding-right: 0;
	}
}
