/*
 * Single-post reading system.
 * Loaded only for public posts after the main theme stylesheet.
 */

body.single-post.groo-bombom-site {
	--bombom-article-column: 720px;
	--bombom-article-gap: 32px;
	--bombom-article-sticky-top: 112px;
	padding-bottom: 0;
}

body.single-post.groo-bombom-site :focus-visible {
	outline-color: var(--bombom-teal);
}

body.single-post.groo-bombom-site .bombom-mobile-dock {
	display: none !important;
}

.bombom-single-header {
	padding: 70px 0 42px;
}

.bombom-single-header .bombom-shell {
	max-width: var(--bombom-article-column) !important;
	width: var(--bombom-content);
}

.bombom-single-kicker {
	color: var(--bombom-teal);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	margin: 0 0 18px;
}

.bombom-single-header .wp-block-post-title {
	font-size: clamp(2.35rem, 4vw, 3.6rem);
	line-height: 1.28;
	max-width: none;
	overflow-wrap: anywhere;
}

.bombom-single-header .wp-block-post-date {
	color: var(--bombom-teal);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	letter-spacing: 0.06em;
	margin: 24px 0 0;
	text-transform: none;
}

.bombom-single-featured {
	display: block;
	margin: 0 auto;
	max-width: var(--bombom-article-column) !important;
	width: var(--bombom-content);
}

.bombom-single-featured img {
	display: block;
	height: auto !important;
	object-fit: contain !important;
	object-position: center !important;
	width: 100% !important;
}

.bombom-article-prose > .bombom-single-featured {
	margin: 0 0 72px;
	max-width: 100% !important;
	width: 100%;
}

.bombom-article-layout {
	align-items: start;
	display: grid;
	gap: var(--bombom-article-gap);
	grid-template-columns: minmax(180px, 1fr) minmax(0, var(--bombom-article-column)) minmax(180px, 1fr);
	margin: 0 auto;
	max-width: min(1280px, calc(100% - 32px));
	padding: 0 0 112px;
	width: 100%;
}

.bombom-article-layout.has-no-featured-image {
	padding-top: 72px;
}

.bombom-article-layout.has-no-toc {
	grid-template-columns: minmax(0, var(--bombom-article-column)) minmax(220px, 240px);
	max-width: min(992px, calc(100% - 48px));
}

.bombom-article-layout.has-no-cta {
	grid-template-columns: minmax(180px, 220px) minmax(0, var(--bombom-article-column));
	max-width: min(972px, calc(100% - 48px));
}

.bombom-article-layout.has-no-toc.has-no-cta {
	display: block;
	max-width: var(--bombom-article-column);
}

.bombom-article-layout > *,
.bombom-article-prose,
.bombom-article-prose .wp-block-post-content {
	min-width: 0;
}

.bombom-article-layout .bombom-single-content {
	grid-column: 2;
	margin: 0;
	padding: 0;
	width: auto;
}

.bombom-article-layout.has-no-toc .bombom-single-content {
	grid-column: 1;
}

.bombom-article-layout.has-no-cta .bombom-single-content {
	grid-column: 2;
}

.bombom-article-layout.has-no-toc.has-no-cta .bombom-single-content {
	width: 100%;
}

.bombom-article-toc,
.bombom-article-cta {
	align-self: start;
	left: auto;
	position: sticky;
	right: auto;
	top: var(--bombom-article-sticky-top);
	z-index: 1;
}

body.admin-bar .bombom-article-toc,
body.admin-bar .bombom-article-cta {
	top: calc(var(--bombom-article-sticky-top) + 32px);
}

.bombom-article-toc {
	border-left: 1px solid var(--bombom-line);
	grid-column: 1;
	max-height: calc(100vh - 136px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 4px 14px 4px 18px;
	scrollbar-color: var(--bombom-line-strong) transparent;
	scrollbar-width: thin;
	width: 100%;
}

body.admin-bar .bombom-article-toc {
	max-height: calc(100vh - 168px);
}

.bombom-article-toc .bombom-aside-label {
	color: var(--bombom-teal);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin: 0 0 20px;
}

.bombom-article-toc ol,
.bombom-article-toc-mobile ol {
	columns: auto;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bombom-article-toc li + li,
.bombom-article-toc-mobile li + li {
	margin-top: 4px;
}

.bombom-article-toc a,
.bombom-article-toc-mobile a {
	border-left: 2px solid transparent;
	color: var(--bombom-muted);
	display: block;
	font-size: 13px;
	line-height: 1.55;
	padding: 7px 8px;
	text-decoration: none;
}

.bombom-article-toc a:hover,
.bombom-article-toc-mobile a:hover {
	color: var(--bombom-teal);
}

.bombom-article-toc a[aria-current="location"],
.bombom-article-toc-mobile a[aria-current="location"] {
	background: var(--bombom-mint);
	border-left-color: var(--bombom-lime);
	color: var(--bombom-teal);
	font-weight: 700;
}

.bombom-article-toc a:focus-visible,
.bombom-article-toc-mobile a:focus-visible {
	outline-offset: -2px;
}

.bombom-article-toc-mobile {
	display: none;
}

.bombom-article-prose {
	font-size: 18px;
	line-height: 1.9;
	word-break: keep-all;
}

.bombom-article-prose > * + * {
	margin-block-start: 0;
}

.bombom-article-prose .bombom-article-render-host {
	margin: 0;
	max-width: 100%;
	width: 100%;
}

.bombom-article-prose .wp-block-post-content > * {
	max-width: 100%;
}

.bombom-article-prose .wp-block-post-content > * + * {
	margin-block-start: 1.4em;
}

.bombom-article-prose .wp-block-post-content > :first-child {
	margin-block-start: 0;
}

.bombom-article-prose .wp-block-post-content p {
	line-height: 1.9;
	overflow-wrap: break-word;
}

.bombom-article-prose .wp-block-post-content h2 {
	font-size: clamp(2rem, 3.2vw, 2.7rem);
	line-height: 1.35;
	margin: 2.35em 0 0;
	overflow-wrap: anywhere;
	scroll-margin-top: 132px;
}

.bombom-article-prose .wp-block-post-content h2 + * {
	margin-block-start: 1.05em;
}

.bombom-article-prose .wp-block-post-content h3 {
	font-family: var(--bombom-body);
	font-size: 1.42rem;
	font-weight: 700;
	line-height: 1.5;
	margin: 2em 0 0;
	overflow-wrap: anywhere;
	scroll-margin-top: 132px;
}

body.admin-bar .bombom-article-prose .wp-block-post-content h2,
body.admin-bar .bombom-article-prose .wp-block-post-content h3 {
	scroll-margin-top: 164px;
}

.bombom-article-prose .wp-block-post-content h4 {
	font-family: var(--bombom-body);
	font-size: 1.14rem;
	font-weight: 700;
	line-height: 1.55;
	margin: 1.8em 0 0;
}

.bombom-article-prose .wp-block-post-content ul,
.bombom-article-prose .wp-block-post-content ol {
	margin: 1.35em 0;
	padding-left: 1.45em;
}

.bombom-article-prose .wp-block-post-content li {
	line-height: 1.8;
	padding-left: 0.15em;
}

.bombom-article-prose .wp-block-post-content li + li {
	margin-top: 0.62em;
}

.bombom-article-prose .wp-block-post-content li::marker {
	color: var(--bombom-teal);
	font-weight: 700;
}

.bombom-article-prose .wp-block-post-content a:not(.wp-block-button__link) {
	color: var(--bombom-teal);
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
}

.bombom-article-prose .wp-block-post-content blockquote {
	background: var(--bombom-mint);
	border: 0;
	border-left: 4px solid var(--bombom-lime);
	color: var(--bombom-teal);
	margin: 2em 0;
	padding: 24px 28px;
}

.bombom-article-prose .wp-block-post-content blockquote > :first-child {
	margin-top: 0;
}

.bombom-article-prose .wp-block-post-content blockquote > :last-child {
	margin-bottom: 0;
}

.bombom-article-prose .wp-block-post-content blockquote cite {
	color: var(--bombom-muted);
	display: block;
	font-size: 0.82rem;
	font-style: normal;
	margin-top: 12px;
}

.bombom-article-prose .wp-block-post-content figure,
.bombom-article-prose .wp-block-post-content img,
.bombom-article-prose .wp-block-post-content video,
.bombom-article-prose .wp-block-post-content iframe {
	max-width: 100%;
}

.bombom-article-prose .wp-block-post-content figure {
	margin-inline: 0;
}

.bombom-article-prose .wp-block-post-content img,
.bombom-article-prose .wp-block-post-content video {
	display: block;
	height: auto;
}

.bombom-article-prose .wp-block-post-content figcaption {
	color: var(--bombom-muted);
	font-size: 0.8rem;
	line-height: 1.65;
	margin-top: 10px;
	text-align: center;
}

.bombom-article-prose .wp-block-post-content pre {
	background: var(--bombom-deep);
	color: var(--bombom-white);
	font-size: 0.84rem;
	line-height: 1.65;
	max-width: 100%;
	overflow-x: auto;
	padding: 20px;
	white-space: pre;
}

.bombom-article-prose .wp-block-post-content :not(pre) > code {
	background: rgba(40, 96, 88, 0.1);
	border-radius: 3px;
	font-size: 0.9em;
	padding: 0.12em 0.35em;
}

.bombom-article-prose .wp-block-post-content hr {
	border: 0;
	border-top: 1px solid var(--bombom-line);
	margin: 3em 0;
}

.bombom-article-prose .wp-block-post-content details:not(.bombom-article-toc-mobile) {
	border-block: 1px solid var(--bombom-line);
	padding: 16px 0;
}

.bombom-article-prose .wp-block-post-content details:not(.bombom-article-toc-mobile) summary {
	cursor: pointer;
	font-weight: 700;
}

.bombom-article-prose .wp-block-post-content .alignwide,
.bombom-article-prose .wp-block-post-content .alignfull {
	margin-inline: 0;
	max-width: 100%;
	width: 100%;
}

.bombom-article-prose .wp-block-table,
.bombom-article-prose .bombom-table-scroll {
	display: block;
	margin: 2.15em 0;
	max-width: 100%;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
}

.bombom-article-prose .wp-block-post-content > table {
	display: block;
	margin: 2.15em 0;
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	width: 100%;
	-webkit-overflow-scrolling: touch;
}

.bombom-article-prose .wp-block-table table,
.bombom-article-prose .bombom-table-scroll table {
	background: var(--bombom-white);
	border: 1px solid var(--bombom-line);
	border-collapse: collapse;
	display: table;
	font-size: 14px;
	line-height: 1.65;
	margin: 0;
	min-width: 100%;
	width: 100%;
}

.bombom-article-prose table caption {
	color: var(--bombom-muted);
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1.55;
	padding: 0 0 10px;
	text-align: left;
}

.bombom-article-prose table th {
	background: var(--bombom-deep);
	border: 1px solid var(--bombom-deep);
	color: var(--bombom-white);
	font-weight: 700;
	padding: 13px 15px;
	text-align: left;
	vertical-align: middle;
}

.bombom-article-prose table td {
	border: 1px solid var(--bombom-line);
	color: var(--bombom-ink);
	padding: 13px 15px;
	vertical-align: top;
}

.bombom-article-prose table tbody tr:nth-child(even) td {
	background: var(--bombom-mint);
}

.bombom-article-prose .wp-block-table.is-overflowing,
.bombom-article-prose .bombom-table-scroll.is-overflowing {
	box-shadow: inset -10px 0 12px -14px var(--bombom-deep);
	cursor: ew-resize;
}

.bombom-article-prose .wp-block-table:focus-visible,
.bombom-article-prose .bombom-table-scroll:focus-visible {
	outline-offset: 3px;
}

.groo-medical-disclaimer,
.bombom-article-disclaimer {
	background: var(--bombom-mint);
	border-left: 3px solid var(--bombom-lime);
	color: var(--bombom-teal);
	font-size: 14px;
	line-height: 1.75;
	margin: 54px 0 0;
	padding: 22px 24px;
}

.bombom-article-cta {
	background: var(--bombom-deep);
	color: rgba(255, 255, 255, 0.8);
	grid-column: 3;
	padding: 28px 24px 24px;
	width: 100%;
}

.bombom-article-layout.has-no-toc .bombom-article-cta {
	grid-column: 2;
}

.bombom-article-cta .bombom-aside-label {
	color: var(--bombom-lime);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin: 0 0 16px;
}

.bombom-article-cta h2 {
	color: var(--bombom-white);
	font-size: clamp(1.55rem, 2.1vw, 1.95rem);
	line-height: 1.38;
	margin: 0;
}

.bombom-article-cta > p:not(.bombom-aside-label) {
	color: rgba(255, 255, 255, 0.76);
	font-size: 13px;
	line-height: 1.72;
	margin: 15px 0 0;
}

.bombom-article-cta-actions {
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	display: grid;
	gap: 12px;
	margin-top: 22px;
	padding-top: 18px;
}

.bombom-article-cta-phone {
	align-items: flex-start;
	border: 0;
	display: flex;
	flex-direction: column;
	font-size: 12px;
	gap: 2px;
	margin: 0;
	padding: 0;
	text-decoration: none;
}

.bombom-article-cta-phone span {
	color: rgba(255, 255, 255, 0.66);
}

.bombom-article-cta-phone strong {
	color: var(--bombom-white);
	font-size: 1.15rem;
}

.bombom-article-cta-button {
	align-items: center;
	background: var(--bombom-lime);
	color: var(--bombom-deep) !important;
	display: flex;
	font-size: 13px;
	font-weight: 700;
	justify-content: space-between;
	margin: 0;
	min-height: 46px;
	padding: 12px 14px;
	text-decoration: none;
}

.bombom-article-cta a:focus-visible {
	outline-color: var(--bombom-lime) !important;
	outline-offset: 4px;
}

.bombom-article-cta-button:hover {
	background: var(--bombom-white);
	color: var(--bombom-deep) !important;
}

.bombom-article-footer {
	border-top: 1px solid var(--bombom-line-strong);
	margin-top: 62px;
	padding-top: 24px;
}

.bombom-article-index-link {
	color: var(--bombom-teal);
	display: inline-flex;
	font-size: 14px;
	font-weight: 700;
	gap: 10px;
	text-decoration: none;
}

.bombom-article-adjacent {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 28px;
}

.bombom-article-nav-link {
	border: 1px solid var(--bombom-line);
	display: flex;
	flex-direction: column;
	gap: 7px;
	min-height: 112px;
	padding: 18px;
	text-decoration: none;
}

.bombom-article-nav-link span {
	color: var(--bombom-teal);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.bombom-article-nav-link strong {
	display: -webkit-box;
	font-size: 15px;
	line-height: 1.55;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.bombom-article-nav-link:hover {
	background: var(--bombom-mint);
	border-color: var(--bombom-teal);
}

@media (max-width: 1279.98px) {
	.bombom-article-layout,
	.bombom-article-layout.has-no-toc,
	.bombom-article-layout.has-no-cta {
		display: flex;
		flex-direction: column;
		gap: 0;
		max-width: var(--bombom-article-column);
		padding: 0 0 100px;
		width: var(--bombom-content);
	}

	.bombom-article-layout.has-no-featured-image {
		padding-top: 58px;
	}

	.bombom-article-prose > .bombom-single-featured {
		margin-bottom: 58px;
	}

	.bombom-article-layout > *,
	.bombom-article-layout .bombom-single-content,
	.bombom-article-prose .wp-block-post-content {
		max-width: 100%;
		width: 100%;
	}

	.bombom-article-toc-desktop {
		display: none;
	}

	.bombom-article-toc-mobile {
		background: var(--bombom-mint);
		border-left: 3px solid var(--bombom-lime);
		display: block;
		margin: 0 0 42px;
		padding: 0;
	}

	.bombom-article-toc-mobile summary {
		align-items: center;
		cursor: pointer;
		display: flex;
		font-size: 15px;
		font-weight: 700;
		justify-content: space-between;
		min-height: 56px;
		padding: 14px 18px;
	}

	.bombom-article-toc-mobile summary small {
		color: var(--bombom-teal);
		font-size: 11px;
		font-weight: 700;
	}

	.bombom-article-toc-mobile nav {
		border-top: 1px solid var(--bombom-line);
		padding: 8px 10px 14px;
	}

	.bombom-article-toc-mobile a {
		font-size: 14px;
		min-height: 44px;
		padding: 11px 10px;
	}

	.bombom-article-layout .bombom-single-content {
		margin: 0;
		padding: 0;
	}

	.bombom-article-cta,
	.bombom-article-layout.has-no-toc .bombom-article-cta {
		margin-top: 54px;
		max-width: 100%;
		position: static;
		width: 100%;
	}

	.bombom-article-cta h2 br {
		display: none;
	}
}

@media (max-width: 720px) {
	body.single-post.groo-bombom-site {
		padding-bottom: 0;
	}

	.bombom-single-header {
		padding: 46px 0 28px;
	}

	.bombom-single-kicker {
		margin-bottom: 14px;
	}

	.bombom-single-header .wp-block-post-title {
		font-size: clamp(2rem, 9.2vw, 2.55rem);
		line-height: 1.32;
	}

	.bombom-single-header .wp-block-post-date {
		font-size: 12px;
		margin-top: 18px;
	}

	.bombom-article-layout,
	.bombom-article-layout.has-no-toc,
	.bombom-article-layout.has-no-cta {
		padding: 0 0 76px;
	}

	.bombom-article-layout.has-no-featured-image {
		padding-top: 38px;
	}

	.bombom-article-prose > .bombom-single-featured {
		margin-bottom: 38px;
	}

	.bombom-article-prose {
		font-size: 17px;
		line-height: 1.88;
	}

	.bombom-article-toc-mobile {
		margin-bottom: 34px;
	}

	.bombom-article-prose .wp-block-post-content h2 {
		font-size: clamp(1.72rem, 8vw, 2.15rem);
		margin-top: 2.15em;
		scroll-margin-top: 96px;
	}

	.bombom-article-prose .wp-block-post-content h3 {
		font-size: 1.28rem;
		scroll-margin-top: 96px;
	}

	body.admin-bar .bombom-article-prose .wp-block-post-content h2,
	body.admin-bar .bombom-article-prose .wp-block-post-content h3 {
		scroll-margin-top: 136px;
	}

	.bombom-article-prose .wp-block-post-content blockquote {
		padding: 20px 18px;
	}

	.bombom-article-prose .wp-block-table table,
	.bombom-article-prose .bombom-table-scroll table {
		font-size: 13px;
		min-width: 560px;
	}

	.bombom-article-prose table th,
	.bombom-article-prose table td {
		padding: 11px 12px;
	}

	.groo-medical-disclaimer,
	.bombom-article-disclaimer {
		font-size: 13px;
		margin-top: 44px;
		padding: 19px 18px;
	}

	.bombom-article-footer {
		margin-top: 48px;
	}

	.bombom-article-adjacent {
		grid-template-columns: minmax(0, 1fr);
	}

	.bombom-article-nav-link {
		min-height: 0;
	}

	.bombom-article-cta {
		margin-top: 44px;
		padding: 26px 22px 22px;
	}

	.bombom-article-cta h2 {
		font-size: 1.75rem;
	}
}

@media (max-width: 390px) {
	.bombom-single-header .wp-block-post-title {
		font-size: 2rem;
	}

	.bombom-article-prose {
		font-size: 16.5px;
	}

	.bombom-article-toc-mobile summary {
		padding-inline: 16px;
	}

	.bombom-article-cta {
		padding-inline: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bombom-article-toc a,
	.bombom-article-toc-mobile a,
	.bombom-article-cta a,
	.bombom-article-footer a {
		scroll-behavior: auto;
		transition: none;
	}
}
