/* ==========================================================================
   Blocks — one section per flexible-content layout.
   ========================================================================== */

/* Shared block scaffolding ----------------------------------------------------- */

.block {
	padding-block: var(--section-y);
}

:where(.bg-none) { background: var(--white); }
:where(.bg-soft) { background: var(--softer); }
:where(.bg-cream) { background: var(--cream); }
:where(.bg-teal-tint) { background: var(--teal-tint); }
:where(.bg-orange-tint) { background: var(--orange-tint); }
:where(.bg-teal) { background: var(--teal); color: var(--white); }
:where(.bg-orange) { background: var(--orange); color: var(--black); }

.bg-teal :is(h1, h2, h3, h4, h5, h6, p, li),
.bg-teal .prose {
	color: var(--white);
}

.bg-teal .hl {
	color: var(--orange);
}

.block__head {
	max-width: 50rem;
	margin: 0 auto var(--sp-6);
	text-align: center;
}

.block__eyebrow {
	margin: 0 0 var(--sp-2);
	color: var(--ink);
	font-size: var(--fs-lg);
	font-weight: 400;
}

.block__title {
	margin-bottom: var(--sp-3);
	color: var(--black);
}

.block__sub {
	font-size: var(--fs-lg);
}

.block__more {
	display: flex;
	justify-content: center;
	margin-top: var(--sp-6);
}

/* Hero slider (home) ------------------------------------------------------------ */

.hero-slider__heading {
	margin: 0 0 var(--sp-5);
	font-size: var(--fs-h1);
	font-weight: 600;
	text-align: center;
	color: var(--ink);
}

.slide {
	display: grid;
	align-items: center;
	gap: var(--sp-5);
}

.slide__eyebrow {
	margin-bottom: var(--sp-2);
	color: var(--orange);
	font-size: var(--fs-h3);
	font-weight: 600;
}

.slide__title {
	color: var(--teal);
	font-size: var(--fs-h4);
	font-weight: 700;
}

.slide__note {
	font-weight: 600;
	color: var(--ink);
}

.slide__text .btn {
	margin-top: var(--sp-3);
}

.slide__media img {
	margin-inline: auto;
	width: 100%;
	max-width: 30rem;
}

@media (min-width: 768px) {
	.slide {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-7);
	}
}

/* Hero banner (image background) -------------------------------------------------- */

.hero-banner {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(28rem, 62vw, 40rem);
	padding: calc(var(--header-h) + var(--header-gap) + var(--sp-6)) 0 var(--sp-8);
	color: var(--white);
	background: var(--teal);
	overflow: hidden;
}

.hero-banner__bg,
.hero-banner__bg img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero-banner::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgb(0 0 0 / 0.5) 1%, rgb(0 0 0 / 0) 55%);
}

.hero-banner__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--sp-4);
}

.hero-banner__label {
	margin: 0;
	padding: var(--sp-4);
	color: var(--white);
	font-size: var(--fs-h1);
	font-weight: 700;
	line-height: 1;
	background: rgb(0 119 117 / 0.7);
	border-radius: var(--radius-sm);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.hero-banner--orange .hero-banner__label {
	background: rgb(245 156 0 / 0.7);
}

.hero-banner__title {
	max-width: 40rem;
	margin: 0;
	color: var(--white);
	font-size: var(--fs-h4);
	font-weight: 600;
}

.hero-banner__sub {
	margin: 0;
	color: var(--white);
	font-size: var(--fs-lg);
}

.hero-banner--service {
	min-height: 22rem;
	padding-top: calc(var(--header-h) + var(--header-gap) + var(--sp-6));
}

/* Hero (text + media / form) --------------------------------------------------------- */

.hero-split {
	display: grid;
	align-items: center;
	gap: var(--sp-6);
}

.hero-split__title {
	font-size: var(--fs-h1);
}

.hero-split__media img {
	width: 100%;
	height: auto;
}

.hero-split__extra {
	margin-top: var(--sp-5);
}

@media (min-width: 900px) {
	.hero-split {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-8);
	}

	.hero-split--left .hero-split__text {
		order: 2;
	}
}

/* Intro ---------------------------------------------------------------------------------- */

.intro {
	max-width: 56rem;
}

.intro--center {
	text-align: center;
}

.intro .btn {
	margin-top: var(--sp-4);
}

/* Cards -------------------------------------------------------------------------------------- */

.cards {
	display: grid;
	gap: var(--sp-6) var(--gap);
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.cards.cols-2,
	.cards.cols-3,
	.cards.cols-4,
	.cards.cols-5 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.cards.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cards.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.cards.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.card {
	display: block;
	color: var(--text);
}

.card__title {
	margin-bottom: var(--sp-2);
	color: var(--ink);
	font-size: var(--fs-lg);
	font-weight: 600;
}

.card__text {
	margin: 0;
	font-size: var(--fs-sm);
}

.card__icon {
	width: auto;
	max-width: 4rem;
	max-height: 4rem;
}

.cards.is-collapsed .card.is-extra {
	display: none;
}

/* Icon on top, centred (home benefits) */
.cards--icons .card {
	text-align: center;
	transition: transform var(--ease);
}

.cards--icons .card:hover {
	transform: translateY(-0.5rem);
}

.cards--icons .card__media {
	display: flex;
	justify-content: center;
	margin-bottom: var(--sp-3);
}

.cards--icons .card__title {
	font-weight: 500;
}


/* Icon on the left */
.cards--icons-left .card {
	display: flex;
	gap: var(--sp-4);
	text-align: left;
}

.cards--icons-left .card__media {
	flex: 0 0 4rem;
}

.cards--icons-left .card__title {
	color: var(--teal);
}

/* Icon beside the title */
.cards--icon-title .card {
	padding: var(--sp-5);
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}

.cards--icon-title .card__head {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin-bottom: var(--sp-3);
}

.cards--icon-title .card__title {
	margin: 0;
	color: var(--teal);
}

.cards--icon-title .card__text {
	font-size: var(--fs-base);
}

/* Steps (icon on a background image) */
.cards--steps .card {
	text-align: center;
}

.cards--steps .card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	margin-bottom: var(--sp-4);
	background: center / contain no-repeat;
}

.cards--steps .card__icon {
	max-width: 5rem;
	max-height: 5rem;
}

/* Numbered roadmap */
.cards--numbered .card {
	position: relative;
	padding: var(--sp-5);
	background: var(--white);
	border: 1px solid var(--teal);
	border-radius: var(--radius);
}

.card__step {
	display: block;
	color: var(--muted);
	font-size: var(--fs-sm);
	text-transform: lowercase;
}

.card__num {
	display: block;
	margin-bottom: var(--sp-3);
	color: var(--teal);
	font-size: 3.5rem;
	font-weight: 700;
	line-height: 1;
}

.cards--numbered .card__title {
	font-size: var(--fs-h4);
	color: var(--black);
}

/* Checklist */
.cards--check .card {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-3);
}

.card__check {
	flex: 0 0 auto;
	color: var(--teal);
}

.cards--check .card__title {
	margin: 0;
	font-size: var(--fs-base);
	font-weight: 500;
}

/* Plain boxes */
.cards--plain .card {
	padding: var(--sp-5);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.card--link {
	transition: box-shadow var(--ease), transform var(--ease);
}

.card--link:hover {
	box-shadow: var(--shadow-sm);
	transform: translateY(-2px);
}

.cards--image .card__media img {
	max-width: 100%;
	max-height: none;
	width: 100%;
	border-radius: var(--radius);
}

/* Steps with tabs -------------------------------------------------------------------------------- */

.steps {
	display: grid;
	gap: var(--sp-5);
	align-items: center;
}

.steps__tabs {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}

.steps__tab {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	padding: var(--sp-2) 0;
	color: #5e5e5e;
	text-align: left;
	background: none;
	border: 0;
	border-radius: 0;
}

.steps__num {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: 0 0 4.5rem;
	height: 4.5rem;
	color: var(--muted);
	font-size: var(--fs-sm);
	background: var(--white);
	border: 2px solid var(--line);
	border-radius: var(--radius-sm);
	transition: color var(--ease), border-color var(--ease);
}

.steps__num b {
	font-size: 1.75rem;
	line-height: 1;
}

.steps__label {
	font-size: var(--fs-base);
}

.steps__tab[aria-selected="true"] .steps__num {
	color: var(--orange);
	border-color: var(--orange);
}

.steps__tab[aria-selected="true"] .steps__label {
	color: var(--ink);
	font-size: var(--fs-lg);
	font-weight: 600;
}

.steps__panel img {
	width: 100%;
	border-radius: var(--radius);
}

.steps__text {
	margin: var(--sp-3) 0 0;
}

@media (min-width: 900px) {
	.steps {
		grid-template-columns: minmax(16rem, 1fr) 1.6fr;
		gap: var(--sp-8);
	}
}

/* Image + text --------------------------------------------------------------------------------------- */

.split {
	display: grid;
	align-items: center;
	gap: var(--sp-6);
}

.split__media img {
	width: 100%;
	border-radius: var(--radius);
}

.split__text .btn {
	margin-top: var(--sp-4);
}

.checklist {
	display: grid;
	gap: var(--sp-3);
	margin: var(--sp-4) 0 0;
	padding: 0;
	list-style: none;
}

.checklist li {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-3);
}

.checklist svg {
	flex: 0 0 auto;
	color: var(--teal);
}

@media (min-width: 900px) {
	.split {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-8);
	}

	.split--left .split__media {
		order: -1;
	}
}

/* CTA band --------------------------------------------------------------------------------------------- */

.cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--sp-5);
	text-align: center;
}

.cta__title {
	margin: 0;
	font-size: var(--fs-h3);
	color: var(--black);
}

.cta__sub {
	margin: var(--sp-2) 0 0;
	color: var(--black);
	font-size: var(--fs-base);
}

.cta .btn--lg {
	flex: 0 0 auto;
}

.cta__media img {
	width: 100%;
	max-width: 24rem;
}

@media (min-width: 900px) {
	.cta {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
	}

	.cta:not(.cta--image) {
		justify-content: space-between;
		text-align: left;
	}
}

/* FAQ -------------------------------------------------------------------------------------------------- */

.faq__body > .block__title {
	margin-bottom: var(--sp-5);
	color: var(--teal);
	text-align: center;
}

.faq--image {
	display: grid;
	align-items: center;
	gap: var(--sp-6);
}

.faq__media img {
	width: 100%;
	border-radius: var(--radius);
}

.faq--plain .accordion__item {
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--line);
	border-radius: 0;
	box-shadow: none;
}

.faq--plain .accordion__q {
	font-size: var(--fs-base);
	color: var(--black);
}

.faq--plain .accordion__a {
	background: transparent;
}

@media (min-width: 900px) {
	.faq--image {
		grid-template-columns: 1fr 1.2fr;
		gap: var(--sp-8);
	}
}

/* Logo grid (partners) ------------------------------------------------------------------------------------ */

.logo-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--sp-6) var(--sp-7);
	margin: var(--sp-5) 0 0;
	padding: 0;
	list-style: none;
}

.logo-grid__item {
	flex: 0 1 11rem;
	text-align: center;
}

.logo-grid__item a,
.logo-grid__item > span {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-3);
}

.logo-grid img {
	width: auto;
	max-height: 5rem;
	object-fit: contain;
}

.logo-grid span {
	color: #1e1e1e;
	font-size: var(--fs-base);
	font-weight: 600;
}

/* Team ---------------------------------------------------------------------------------------------------------- */

.team {
	display: grid;
	gap: var(--sp-6) var(--gap);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr));
	margin: var(--sp-5) 0 0;
	padding: 0;
	list-style: none;
}

.team__card {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	width: 100%;
	padding: 0;
	color: inherit;
	text-align: left;
	background: none;
	border: 0;
}

.team__photo {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--teal-50);
	border-radius: var(--radius-lg);
}

.team__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--ease);
}

.team__card:hover .team__photo img {
	transform: scale(1.04);
}

.team__name {
	margin-top: var(--sp-2);
	color: var(--teal);
	font-size: var(--fs-h4);
	font-weight: 600;
	line-height: var(--lh-snug);
}

.team__role {
	color: var(--text);
	font-size: var(--fs-sm);
}

.member {
	padding: var(--sp-6) var(--sp-5) var(--sp-5);
}

.member__head {
	display: flex;
	align-items: center;
	gap: var(--sp-5);
	margin-bottom: var(--sp-5);
}

.member__photo {
	flex: 0 0 7.5rem;
	width: 7.5rem;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--radius-lg);
}

.member__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.member__name {
	margin: 0;
	color: var(--teal);
}

.member__role {
	margin: var(--sp-1) 0 0;
	font-weight: 600;
}

.member__cols {
	display: grid;
	gap: var(--sp-5);
}

.member__cols h4 {
	margin-bottom: var(--sp-2);
	color: var(--teal);
	font-size: var(--fs-lg);
}

@media (min-width: 768px) {
	.member__cols {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Posts / archives ----------------------------------------------------------------------------------------------- */

.archive__head {
	display: flex;
	flex-direction: column;
	gap: var(--sp-4);
	margin-bottom: var(--sp-6);
}

.archive__title,
.archive__kicker {
	margin: 0;
	color: var(--ink);
}

.archive__kicker {
	font-size: var(--fs-base);
	font-weight: 600;
}

.tabs-nav {
	display: inline-flex;
	flex-wrap: wrap;
	gap: var(--sp-3);
	align-self: flex-start;
	padding: var(--sp-2);
	background: var(--teal-tint);
	border-radius: var(--radius-sm);
}

.tabs-nav a {
	padding: var(--sp-2) var(--sp-3);
	color: var(--teal);
	font-size: var(--fs-xs);
	background: rgb(255 255 255 / 0.6);
	border-radius: var(--radius-sm);
}

.tabs-nav a[aria-current="page"] {
	background: var(--white);
	font-weight: 600;
	box-shadow: 0 1px 2px rgb(0 119 117 / 0.4);
}

/* Single post ------------------------------------------------------------------------------------------------------ */

.single-post__grid {
	display: grid;
	gap: var(--sp-6);
}

.single-post__title {
	color: var(--ink);
}

.single-post__image {
	margin-bottom: var(--sp-6);
}

.single-post__image img {
	width: 100%;
	border-radius: var(--radius-lg);
}

.toc {
	align-self: start;
	padding: var(--sp-4);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.toc__title {
	margin-bottom: var(--sp-3);
	color: var(--ink);
	font-weight: 700;
}

.toc__list {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--fs-sm);
}

.toc__list a {
	display: block;
	padding: var(--sp-1) var(--sp-2);
	color: var(--text);
	border-left: 3px solid transparent;
}

.toc__list .is-sub a {
	padding-left: var(--sp-5);
}

.toc__list a:hover,
.toc__list a.is-active {
	color: var(--teal);
	border-left-color: var(--teal);
	background: var(--teal-50);
}

.toc:has([data-toc]:empty) {
	display: none;
}

/* Rich text (legal) ------------------------------------------------------------------------------------------------- */

.prose--long {
	padding-block: 0;
}

.last-updated {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	color: var(--muted);
	font-size: var(--fs-sm);
}

.social-share {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin-block: var(--sp-4);
}

.social-share__title {
	color: var(--muted);
	font-size: var(--fs-sm);
	font-weight: 600;
}

.social-share__link {
	display: inline-flex;
	color: var(--muted);
}

.social-share__link:hover {
	color: var(--teal);
}

/* Contact ---------------------------------------------------------------------------------------------------------------- */

.contact {
	display: grid;
	gap: var(--sp-6);
}

.card-box {
	padding: var(--sp-5);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}

.contact__title {
	font-size: var(--fs-h4);
	color: var(--ink);
}

.contact__side {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
}

.contact__social h3 {
	margin-bottom: var(--sp-3);
	color: var(--ink);
	font-size: var(--fs-lg);
}

@media (min-width: 900px) {
	.contact {
		grid-template-columns: 1.4fr 1fr;
	}
}

/* Form section --------------------------------------------------------------------------------------------------------------- */

.form-section {
	display: grid;
	align-items: center;
	gap: var(--sp-6);
}

.form-section__title {
	color: var(--black);
}

.form-section__intro img {
	width: 100%;
	max-width: 28rem;
}

.form-section .form-card {
	box-shadow: var(--shadow-sm);
}

@media (min-width: 900px) {
	.form-section {
		grid-template-columns: 1fr 1.2fr;
		gap: var(--sp-8);
	}
}

/* Testimonials ----------------------------------------------------------------------------------------------------------------- */

.testimonials {
	display: grid;
	gap: var(--gap);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.testimonial {
	padding: var(--sp-5);
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}

.testimonial blockquote {
	margin: 0 0 var(--sp-4);
}

.testimonial figcaption {
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
}

.testimonial figcaption img {
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
}

/* Gallery slider ------------------------------------------------------------------------------------------------------------------ */

.slider--gallery .slider__slide img {
	width: 100%;
	border-radius: var(--radius);
}

/* Partner profile / 404 ------------------------------------------------------------------------------------------------------------ */

.partner-profile__grid {
	display: grid;
	gap: var(--sp-6);
}

.partner-profile__logo img {
	max-width: 14rem;
	height: auto;
}

@media (min-width: 768px) {
	.partner-profile__grid {
		grid-template-columns: 14rem 1fr;
	}
}

.not-found .container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-6);
	text-align: center;
}

.prose--collapsible .prose__body {
	max-height: 12rem;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(#000 60%, transparent);
	mask-image: linear-gradient(#000 60%, transparent);
}

.prose--collapsible.is-open .prose__body {
	max-height: none;
	-webkit-mask-image: none;
	mask-image: none;
}

/* Background image (optional per block) -------------------------------------------------------------------------------- */

.has-bg-image {
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

/* Cards: tiles (text over image) */
.cards--tiles .card {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 15rem;
	padding: var(--sp-5);
	color: var(--white);
	background: var(--teal) center / cover no-repeat;
	border-radius: var(--radius);
	position: relative;
	overflow: hidden;
}

.cards--tiles .card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgb(0 0 0 / 0.65), rgb(0 0 0 / 0.1));
}

.cards--tiles .card > * {
	position: relative;
}

.cards--tiles .card__title,
.cards--tiles .card__text {
	color: var(--white);
}

/* Steps without numbered badges (Lake Liberty tabs) */
.steps--plain .steps__tab {
	padding: var(--sp-4);
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}

.steps--plain .steps__tab[aria-selected="true"] {
	box-shadow: 0 0 0 2px var(--teal);
}

.steps--plain .steps__label {
	display: flex;
	flex-direction: column;
	color: var(--ink);
	font-weight: 700;
}

.steps--plain .steps__label small {
	color: var(--muted);
	font-weight: 400;
	font-size: var(--fs-sm);
}

.steps__heading {
	color: var(--teal);
}

.steps__subheading {
	margin-top: var(--sp-3);
}

/* Tabs with check lists (MediRate specialties) */
.tabs-list__nav {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
	margin-bottom: var(--sp-5);
}

.tabs-list__tab {
	padding: var(--sp-2) var(--sp-4);
	color: var(--teal);
	font-size: var(--fs-sm);
	font-weight: 600;
	background: var(--white);
	border: 1px solid var(--teal);
	border-radius: var(--radius-pill);
}

.tabs-list__tab[aria-selected="true"] {
	color: var(--white);
	background: var(--teal);
}

.checklist--cols {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	margin: 0;
}

.tabs-list__note {
	margin-top: var(--sp-5);
	font-weight: 600;
	color: var(--ink);
}

/* Posts toolbar (group tabs + search) and embeds ------------------------------------------------------------------------ */

.posts-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--sp-4);
	margin-bottom: var(--sp-6);
}

.posts-toolbar .search-form {
	margin-left: auto;
}

.embed iframe {
	display: block;
	width: 100%;
	border: 0;
}

.bg-teal .prose h3 {
	color: var(--orange);
}

/* Feature list inside split blocks */
.feature-list {
	display: grid;
	gap: var(--sp-4);
	margin-top: var(--sp-5);
}

.feature__head {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin-bottom: var(--sp-1);
}

.feature__icon {
	width: 2.5rem;
	height: 2.5rem;
	object-fit: contain;
}

.feature__title {
	margin: 0;
	color: var(--teal);
	font-size: var(--fs-lg);
}

.feature p {
	margin: 0;
	font-size: var(--fs-sm);
}

/* Intro: title left, text right */
.intro--split {
	display: grid;
	align-items: center;
	gap: var(--sp-5);
	max-width: var(--container);
	text-align: left;
}

.intro--split .block__title {
	margin: 0;
	color: var(--teal);
}

.intro--split .btn {
	justify-self: start;
}

@media (min-width: 900px) {
	.intro--split {
		grid-template-columns: 1fr 1.2fr;
		gap: var(--sp-8);
	}
}

.archive__head--row {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
}

.archive__head--row .search-form {
	margin-left: auto;
}

/* Cards: centre image with items either side */
.centerpiece {
	display: grid;
	gap: var(--sp-6);
	align-items: center;
}

.centerpiece__col {
	display: grid;
	gap: var(--sp-6);
}

.centerpiece__media img {
	width: 100%;
	max-width: 36rem;
	margin-inline: auto;
}

.centerpiece .card__title {
	color: var(--teal);
	font-size: var(--fs-h4);
}

.centerpiece .card__text {
	font-size: var(--fs-base);
}

@media (min-width: 900px) {
	.centerpiece {
		grid-template-columns: 1fr 1.4fr 1fr;
		gap: var(--sp-7);
	}

	.centerpiece__col {
		gap: var(--sp-8);
	}
}

/* Section rhythm ------------------------------------------------------------------------------------------------------
   One vertical padding (--section-y) per block. Neighbouring blocks that share a
   background do not double it, and the last child never adds its own bottom margin. */

.block > .container > :last-child,
.block > .container > .block__head:last-child > :last-child {
	margin-bottom: 0;
}



/* Wide content (full page width, like the original landing pages) -------------------------------------------------------- */

.is-wide > .container {
	max-width: calc(var(--container) + var(--gutter) * 2);
}


/* Hero: rounded banner with teal overlay, centred title, form card + overlapping image ----------------------------------- */

.block--hero-split.is-wide {
	padding-top: calc(var(--header-gap) + var(--sp-4));
}

.hero-split--overlay {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-5);
	width: calc(100% - 2 * var(--gutter));
	max-width: var(--container);
	padding: var(--sp-8) var(--sp-4) var(--sp-6);
	overflow: hidden;
	color: var(--white);
	text-align: center;
	background: var(--teal) center / cover no-repeat;
	border-radius: 30px;
	isolation: isolate;
}

.hero-split--overlay::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--teal);
	opacity: 0.7;
}

.hero-split--overlay .hero-split__text {
	display: contents;
}

.hero-split--overlay .hero-split__title {
	max-width: 52rem;
	margin: 0;
	color: var(--white);
	font-weight: 600;
}

.hero-split--overlay .hl--orange,
.hero-split--overlay .hl {
	color: var(--orange);
}

.hero-split--overlay .hero-split__media {
	width: min(100%, 30rem);
}

.hero-split--overlay .form-card {
	text-align: left;
}

.hero-split--overlay .hero-split__extra {
	position: absolute;
	right: 6%;
	bottom: 0;
	width: min(32%, 28rem);
	margin: 0;
}

@media (max-width: 899px) {
	.hero-split--overlay .hero-split__extra {
		position: static;
		width: min(80%, 20rem);
	}
}

/* Cards: large icons ------------------------------------------------------------------------------------------------------ */

.cards--icon-lg .card__icon {
	width: 11rem;
	max-width: 100%;
	max-height: none;
	margin-inline: auto;
}

.cards--icon-lg .card__media {
	margin-bottom: var(--sp-4);
}

.cards--icon-lg .card__title {
	font-size: var(--fs-base);
	font-weight: 500;
}

.cards--icon-lg .card__text {
	font-size: var(--fs-base);
}

.cards--icons.cards--icon-sm .card__icon {
	max-width: 4rem;
}

/* CTA: sub-title above the title */
.cta__text--above {
	display: flex;
	flex-direction: column-reverse;
}

.cta__text--above .cta__sub {
	margin: 0 0 var(--sp-2);
}

/* Static list (always-open FAQ / disclaimers) ------------------------------------------------------------------------------ */

.static-list {
	display: grid;
	gap: var(--sp-5);
}

.static-list__item h3 {
	margin-bottom: var(--sp-2);
	color: var(--teal);
}

.static-list__item .prose {
	color: var(--black);
}

.static-list__item .prose p {
	color: inherit;
}

.block--hero-split.is-wide.has-bg-image {
	background-image: none !important;
}

.hero-split--overlay .dr-field label,
.hero-split--overlay .dr-form__privacy {
	font-size: var(--fs-sm);
}

.hero-split--overlay input,
.hero-split--overlay select {
	min-height: 2.5rem;
	font-size: var(--fs-sm);
}

/* Large icons sit on a soft round tint (steps) */
.cards--icon-lg .card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 11rem;
	height: 11rem;
	margin-inline: auto;
	background: linear-gradient(135deg, rgb(0 119 117 / 0.12), rgb(255 255 255 / 0));
	border-radius: 50%;
}

.cards--icon-lg .card:nth-child(2) .card__media {
	background: linear-gradient(135deg, rgb(245 156 0 / 0.16), rgb(255 255 255 / 0));
}

.cards--icon-lg .card:nth-child(3) .card__media {
	background: linear-gradient(135deg, rgb(108 99 255 / 0.14), rgb(255 255 255 / 0));
}

.cards--icon-lg .card__icon {
	width: 55%;
}

/* Provider / lender look ---------------------------------------------------------------------------------------------------- */

.hero-banner__label {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-3);
	font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
}

.hero-banner__label svg {
	flex: 0 0 auto;
}

.cards--icons-left .card__body {
	min-width: 0;
	max-width: 15rem;
}

.cards--icons-left .card__title {
	font-size: var(--fs-lg);
	font-weight: 600;
}

.intro--split .prose {
	font-size: var(--fs-lg);
	color: var(--text);
}

/* ===== Lake Liberty / landing look =========================================================================================== */

/* Card background (image sits inside a rounded, shadowed card) */
.is-card {
	padding-block: var(--section-y);
}

.is-card > .container {
	padding: var(--sp-6) var(--sp-6);
	background: var(--white) var(--bg-image, none) center / cover no-repeat;
	border-radius: var(--radius-lg);
	box-shadow: 0 2px 12px rgb(0 0 0 / 0.12);
}

.is-card.bg-teal > .container {
	background-color: var(--teal);
}

/* Decorative band */
.band {
	width: min(100% - var(--gutter) * 2, var(--container));
	margin-inline: auto;
	padding: 0;
	border-radius: var(--radius);
}

.band--sm { height: 3rem; }
.band--md { height: 6rem; }
.band--lg { height: 9rem; }

/* Hero text colours */
.hero-split:not(.hero-split--overlay) .hero-split__title {
	color: var(--teal);
}

.bg-teal .hero-split__title {
	color: var(--white);
}

.btn--accent,
.btn--accent:hover {
	color: var(--white);
}

/* Tabs in two white cards (Why DentiRate) */
.steps--plain {
	align-items: stretch;
}

.steps--plain .steps__tabs {
	justify-content: flex-start;
	gap: var(--sp-3);
	padding: var(--sp-6) var(--sp-5);
	background: var(--white);
	border-radius: var(--radius-lg);
}

.steps--plain .steps__tab {
	justify-content: center;
	padding: var(--sp-4);
	text-align: center;
	background: transparent;
	border-radius: var(--radius-sm);
	box-shadow: none;
}

.steps--plain .steps__label {
	align-items: center;
	color: var(--teal);
	font-size: var(--fs-base);
	font-weight: 700;
}

.steps--plain .steps__label small {
	color: inherit;
	font-size: var(--fs-lg);
	font-weight: 400;
}

.steps--plain .steps__tab[aria-selected="true"] {
	background: var(--teal);
	box-shadow: none;
}

.steps--plain .steps__tab[aria-selected="true"] .steps__label {
	color: var(--white);
	font-size: var(--fs-base);
}

.steps--plain .steps__panels {
	padding: var(--sp-6);
	text-align: center;
	background: var(--white);
	border-radius: var(--radius-lg);
}

.steps--plain .steps__heading {
	margin-bottom: var(--sp-4);
}

.steps--plain .steps__panel img {
	border-radius: var(--radius-sm);
}

.steps--plain .steps__subheading {
	margin-top: var(--sp-4);
	color: var(--black);
	font-size: var(--fs-lg);
}

@media (min-width: 900px) {
	.steps--plain {
		grid-template-columns: 1fr 2fr;
		gap: var(--sp-5);
	}
}

/* Tiles: white card with the illustration on the left */
.cards--tiles .card {
	justify-content: center;
	min-height: 13rem;
	padding: var(--sp-5) var(--sp-5) var(--sp-5) 42%;
	color: var(--text);
	background-color: var(--white);
	background-position: left center;
	background-repeat: no-repeat;
	background-size: auto 100%;
	border-radius: var(--radius);
	box-shadow: 0 1px 6px rgb(0 0 0 / 0.08);
}

.cards--tiles .card::before {
	content: none;
}

.cards--tiles .card__title {
	color: var(--teal);
	font-size: var(--fs-h4);
	font-weight: 700;
}

.cards--tiles .card__text {
	color: var(--black);
}

/* Roadmap: orange "step N" badge above teal captions */
.cards--numbered .card {
	padding: 0;
	text-align: center;
	background: none;
	border: 0;
}

.cards--numbered .card__step,
.cards--numbered .card__num {
	width: 3.5rem;
	margin-inline: auto;
	color: var(--orange);
	border: 3px solid var(--orange);
	font-weight: 700;
}

.cards--numbered .card__step {
	padding-top: var(--sp-2);
	font-size: var(--fs-base);
	border-bottom: 0;
	border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}

.cards--numbered .card__num {
	margin-bottom: var(--sp-4);
	padding-bottom: var(--sp-2);
	font-size: 2.5rem;
	border-top: 0;
	border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}

.cards--numbered .card__title {
	color: var(--teal);
	font-size: var(--fs-lg);
	font-weight: 700;
}

/* ===== Affiliate / card look ================================================================================================= */

/* Coloured rounded card inside a white section */
.card-bg-orange > .container { background-color: var(--orange); }
.card-bg-teal > .container { background-color: var(--teal); color: var(--white); }
.card-bg-teal-tint > .container { background-color: var(--teal-tint); }
.card-bg-soft > .container { background-color: var(--softer); }

.is-card > .container.cta {
	padding-block: var(--sp-6);
}

/* Header overlays the first block: make room for it */
.has-overlay-header .site-main > .block:first-child:not(.hero-banner) {
	padding-top: calc(var(--header-h) + var(--header-gap) + var(--section-y));
}

/* Hero image as a circle with two soft discs */
.hero-split--circle .hero-split__media {
	position: relative;
	display: flex;
	justify-content: center;
}

.hero-split--circle .hero-split__media img {
	width: min(100%, 26rem);
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
	position: relative;
	z-index: 1;
}

.hero-split--circle .hero-split__media::before,
.hero-split--circle .hero-split__media::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	background: rgb(255 255 255 / 0.18);
}

.hero-split--circle .hero-split__media::before {
	top: -1.5rem;
	left: 14%;
	width: 8rem;
	height: 8rem;
}

.hero-split--circle .hero-split__media::after {
	right: 6%;
	bottom: 28%;
	width: 4.5rem;
	height: 4.5rem;
}

/* Two-column feature list inside split blocks */
@media (min-width: 640px) {
	.feature-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--sp-5) var(--sp-6);
	}
}

/* Multi-slide gallery with arrows */
.slider--gallery {
	position: relative;
}

.slider--view-3 .slider__slide {
	flex-basis: 100%;
}

@media (min-width: 900px) {
	.slider--view-3 .slider__slide {
		flex-basis: 33.3333%;
		padding-inline: var(--sp-3);
	}
}

.slider__arrow {
	position: absolute;
	top: 45%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	color: var(--teal);
	background: rgb(255 255 255 / 0.9);
	border: 1px solid var(--teal);
	border-radius: 50%;
}

.slider__arrow--prev { left: 0; transform: rotate(180deg); }
.slider__arrow--next { right: 0; }

/* Legal / disclosure text under landing pages */
.block--richtext h6 {
	color: var(--teal);
	font-size: var(--fs-lg);
}

.bg-teal .hero-split:not(.hero-split--overlay) .hero-split__title {
	color: var(--white);
}

/* ===== MediRate pages =========================================================================================================== */

:where(.bg-peach) { background: #feebd2; }
.card-bg-peach > .container { background-color: #feebd2; }

/* Soft pastel backdrop behind the title and hero */
.page-pastel .site-main {
	background:
		radial-gradient(45rem 28rem at 0% 0%, rgb(170 160 255 / 0.18), transparent 70%),
		radial-gradient(45rem 28rem at 100% 8%, rgb(120 225 205 / 0.28), transparent 70%),
		radial-gradient(40rem 30rem at 100% 38%, rgb(255 195 130 / 0.28), transparent 70%),
		var(--white);
}

.page-pastel .title-band--badge,
.page-pastel .block--hero-split {
	background: transparent;
}

/* Two-tone MediRate badge title */
.title-band--badge {
	min-height: auto;
	padding-block: calc(var(--header-h) + var(--header-gap) + var(--sp-6)) var(--sp-5);
	color: var(--ink);
	text-align: center;
	background: transparent;
}

.title-band--badge .title-band__title {
	color: #4b5563;
	font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem);
	font-weight: 700;
}

.badge-title__a,
.badge-title__b {
	display: inline-block;
	padding: 0.1em 0.3em;
	color: var(--white);
}

.badge-title__a { background: var(--teal); border-radius: 4px 0 0 4px; }
.badge-title__b { background: var(--orange); border-radius: 0 4px 4px 0; margin-right: 0.35em; }

/* Hero: compact heading */
h2.hero-split__title {
	font-size: var(--fs-h2);
}

/* Eyebrow in small caps */
.block__eyebrow--caps {
	font-size: var(--fs-xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.intro--split.intro--black .block__title {
	color: var(--black);
	font-size: var(--fs-h2);
}

.response-box {
	display: grid;
	gap: var(--sp-4);
	margin-top: var(--sp-4);
	padding: var(--sp-4);
	background: var(--teal-tint);
	border-radius: 4px;
}

.response-box p {
	margin: 0;
	font-size: var(--fs-sm);
}

.response-box strong {
	color: var(--teal);
	font-weight: 500;
}

@media (min-width: 640px) {
	.response-box {
		grid-template-columns: 1fr 1fr;
	}
}

/* Cards: white with shadow */
.cards--shadow .card {
	padding: var(--sp-5);
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: 0 2px 10px rgb(0 0 0 / 0.08);
}

.cards--shadow .card__media {
	margin-bottom: var(--sp-3);
}

.cards--shadow .card__title {
	color: var(--black);
	font-size: var(--fs-h4);
	font-weight: 400;
}

/* Cards: flat icon + title with text below */
.cards--flat .card__head {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin-bottom: var(--sp-3);
}

.cards--flat .card__icon {
	max-width: 3.5rem;
}

.cards--flat .card__title {
	margin: 0;
	color: var(--black);
	font-size: var(--fs-h3);
	font-weight: 400;
}

.cards--flat .card__text {
	font-size: var(--fs-lg);
	color: var(--ink);
}

@media (min-width: 640px) {
	.cards--flat.cols-3 > .card:last-child:nth-child(odd),
	.cards--flat.cols-2 > .card:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		max-width: 50%;
		margin-inline: auto;
	}
}

/* Cards: dotted list */
.cards--bullets {
	gap: var(--sp-4) var(--sp-5);
	justify-items: center;
}

.cards--bullets .card {
	position: relative;
	padding-left: var(--sp-5);
}

.cards--bullets .card::before {
	content: "";
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 0.5rem;
	height: 0.5rem;
	background: var(--teal);
	border-radius: 50%;
}

.cards--bullets .card__title {
	margin: 0;
	font-size: var(--fs-sm);
	font-weight: 400;
}

/* Cards: text blocks separated by orange rules */
.cards--dividers {
	gap: 0;
}

.cards--dividers .card {
	padding: var(--sp-4) var(--sp-4) var(--sp-5);
	border-left: 2px solid var(--orange);
}

.cards--dividers .card:nth-child(n + 4) {
	border-top: 2px solid var(--orange);
}

.cards--dividers .card__title {
	color: var(--black);
	font-size: var(--fs-lg);
	font-weight: 700;
}

.cards--dividers .card__text {
	color: var(--muted);
}

/* Steps: teal panel with underlined tabs */
.steps--panel {
	align-items: stretch;
}

.steps--panel .steps__tabs {
	gap: 0;
	justify-content: flex-start;
}

.steps--panel .steps__tab {
	padding: var(--sp-4) var(--sp-3);
	color: var(--ink);
	font-size: var(--fs-base);
	border-bottom: 1px solid var(--line);
}

.steps--panel .steps__tab[aria-selected="true"] {
	color: var(--teal);
	font-weight: 700;
	border-bottom: 2px solid var(--orange);
}

.steps--panel .steps__tab[aria-selected="true"] .steps__label {
	color: var(--teal);
	font-size: var(--fs-base);
	font-weight: 700;
}

.steps--panel .steps__panels {
	display: flex;
}

.steps--panel .steps__panel {
	width: 100%;
	padding: var(--sp-6);
	color: var(--white);
	background: var(--teal);
	border-radius: var(--radius);
}

.steps--panel .steps__panel:not([hidden]) {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--sp-3);
}

.steps--panel .steps__panel img {
	width: auto;
	max-width: 100%;
	max-height: 2.5rem;
	border-radius: 0;
}

.steps--panel .steps__subheading,
.steps--panel .steps__text {
	margin: 0;
	color: var(--white);
}

.steps--panel .steps__subheading {
	font-size: var(--fs-lg);
}

/* Tabs with pill lists */
.tabs-list__head {
	padding-block: var(--sp-6);
	background: var(--teal-tint);
}

.tabs-list__head-inner {
	display: grid;
	align-items: center;
	gap: var(--sp-4);
}

.tabs-list__head .block__title {
	margin: 0;
	color: var(--teal);
}

.tabs-list__head .prose {
	font-size: var(--fs-lg);
	color: var(--text);
}

@media (min-width: 900px) {
	.tabs-list__head-inner {
		grid-template-columns: 1fr 1fr;
		gap: var(--sp-8);
	}
}

.tabs-list {
	padding-top: var(--sp-5);
}

.tabs-list__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin-bottom: var(--sp-5);
}

.tabs-list__tab {
	flex: 1 1 8rem;
	padding: var(--sp-3) var(--sp-4);
	color: var(--ink);
	font-size: var(--fs-xs);
	font-weight: 500;
	background: transparent;
	border: 0;
	border-right: 1px solid var(--line);
	border-radius: 0;
}

.tabs-list__tab:last-child {
	border-right: 0;
}

.tabs-list__tab[aria-selected="true"] {
	color: var(--white);
	background: var(--teal);
	font-weight: 700;
}

.pill-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--sp-4);
	margin: 0 0 var(--sp-5);
	padding: 0;
	list-style: none;
}

.pill-list li {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	flex: 0 1 calc(33.333% - var(--sp-4));
	min-width: 15rem;
	padding: var(--sp-3) var(--sp-5);
	font-size: var(--fs-sm);
	background: var(--teal-tint);
	border-radius: var(--radius-sm);
}

.pill-list svg {
	flex: 0 0 auto;
	color: var(--teal);
}

.tabs-list__note {
	margin: 0;
	padding: var(--sp-5) var(--gutter);
	font-size: var(--fs-sm);
	font-weight: 400;
	text-align: center;
	background: var(--teal-tint);
}

.intro__head > :last-child {
	margin-bottom: 0;
}

.intro--split .intro__body .btn {
	margin-top: var(--sp-4);
}

.steps--panel .steps__tab {
	color: var(--ink);
}

.intro--split {
	align-items: start;
}

/* Cards: full-width tinted rows (MediRate landing) */
.cards--rows {
	grid-template-columns: 1fr;
	gap: var(--sp-4);
}

.cards--rows .card {
	display: grid;
	align-items: center;
	gap: var(--sp-5);
	padding: var(--sp-5) var(--sp-6);
	background: var(--teal-tint);
	border-radius: var(--radius-sm);
}

.cards--rows .card__media {
	order: 2;
	text-align: center;
}

.cards--rows .card__icon {
	max-width: 16rem;
	max-height: 12rem;
	width: auto;
	margin-inline: auto;
}

.cards--rows .card__body {
	order: 1;
	max-width: none;
}

.cards--rows .card__title {
	color: var(--teal);
	font-size: var(--fs-h3);
	font-weight: 700;
	text-transform: uppercase;
}

.cards--rows .card__text {
	font-size: var(--fs-lg);
	color: var(--text);
}

.card__link {
	display: inline-block;
	margin-top: var(--sp-4);
	color: var(--orange);
	font-size: var(--fs-xs);
}

@media (min-width: 768px) {
	.cards--rows .card {
		grid-template-columns: 1.4fr 1fr;
	}
}

/* ===== About / team ========================================================================================================== */

.intro--teal .block__title,
.split--teal .block__title {
	color: var(--teal);
}

.intro--center.intro--teal .block__title {
	margin-bottom: var(--sp-2);
}

.split--teal .block__title {
	font-size: var(--fs-h3);
}

.team {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: var(--sp-7) var(--gap);
}

.team__card {
	align-items: center;
	text-align: center;
}

.team__photo {
	width: 100%;
	background: transparent;
	border-radius: var(--radius);
}

.team__name {
	color: var(--teal);
	font-size: var(--fs-lg);
}

.team__role {
	color: var(--orange);
	font-size: var(--fs-base);
	font-weight: 600;
}

.block--team .block__title {
	color: var(--teal);
	text-align: center;
}

/* ===== Contact page & footer details ============================================================================================ */

.contact__title {
	margin-bottom: var(--sp-5);
	color: var(--black);
}

.contact .dr-field input,
.contact .dr-field textarea {
	min-height: 3rem;
	border-radius: var(--radius-sm);
}

.contact .dr-field label {
	font-weight: 700;
}

.contact__side .card-box {
	text-align: center;
	background: #fef5e5;
	border: 0;
	border-radius: var(--radius);
	box-shadow: none;
}

.contact-details {
	display: flex;
	flex-direction: column;
	gap: var(--sp-5);
	margin: 0;
	padding: var(--sp-6) var(--sp-5);
	list-style: none;
	font-size: var(--fs-sm);
	font-weight: 500;
}

.contact-details li {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-3);
	color: var(--ink);
}

.contact-details svg {
	color: var(--teal);
}

.contact-details a {
	color: var(--ink);
}

.contact__social h3 {
	color: var(--ink);
	font-size: var(--fs-h4);
	font-weight: 700;
}

.social-links--outline {
	justify-content: center;
	gap: var(--sp-6);
}

.social-links--outline a {
	width: auto;
	height: auto;
	color: var(--teal);
	border: 0;
	border-radius: 0;
}

.social-links--outline a:hover {
	color: var(--orange);
	background: none;
}

.social-links--outline svg {
	width: 2.25rem;
	height: 2.25rem;
}

/* Footer: bare icons, orange contact icons */
.site-footer .social-links a {
	width: auto;
	height: auto;
	border: 0;
	border-radius: 0;
}

.site-footer .social-links a:hover {
	color: var(--orange);
	background: none;
}

.site-footer .contact-list svg {
	color: var(--orange);
}

/* ===== Legal pages =========================================================================================================== */

.prose--long {
	color: var(--ink);
}

.prose--long h1,
.prose--long h2,
.prose--long h3,
.prose--long h4 {
	color: var(--teal);
}

.prose--long h2 {
	margin-top: var(--sp-6);
	font-size: var(--fs-h3);
}

.prose--long p,
.prose--long li {
	color: var(--ink);
}

.prose--long .section-shortcode,
.prose--long .wp-block-group.section-shortcode {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-4);
	margin-bottom: var(--sp-4);
}

.prose--long .section-shortcode p {
	margin: 0;
}

.prose--long .has-background,
.prose--long .wp-block-group.has-background {
	padding: var(--sp-4) var(--sp-5);
	background-color: var(--teal-tint);
	border-radius: var(--radius-sm);
}

.prose--long section:has(> .last-updated) {
	display: grid;
	grid-template-columns: 1fr auto;
	column-gap: var(--sp-4);
	align-items: center;
}

.prose--long section:has(> .last-updated) > * {
	grid-column: 1 / -1;
}

.prose--long section:has(> .last-updated) > h2:first-child {
	grid-column: 1;
	grid-row: 1;
	margin-top: 0;
}

.prose--long section:has(> .last-updated) > .social-share {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
}

.prose--long section:has(> .last-updated) > .last-updated {
	grid-column: 1;
	grid-row: 2;
}

.prose--long p:empty {
	display: none;
}

/* ===== Home page typography ================================================================================================== */

.hero-slider__heading {
	margin-bottom: var(--sp-5);
	color: #333;
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	font-weight: 600;
}

.slide__eyebrow {
	font-size: var(--fs-lg);
	font-weight: 600;
}

.slide__title {
	font-size: var(--fs-lg);
	font-weight: 700;
}

.slide__text .prose,
.slide__text .prose p {
	font-size: var(--fs-sm);
}

.slide__note {
	font-size: var(--fs-sm);
}

.cards--icons .card__title {
	font-size: var(--fs-base);
	font-weight: 600;
	color: var(--black);
}

.cards--icons .card__text {
	font-size: 0.8125rem;
	text-align: center;
}

.cards--icons.cards--icon-lg .card__title {
	font-weight: 500;
}

.cards--icons.cards--icon-lg .card__text {
	font-size: var(--fs-base);
}

.block__head .prose {
	font-size: var(--fs-sm);
}

/* Step badges: thick outlined squares, orange when active */
.steps__num {
	flex: 0 0 4.25rem;
	height: 4.25rem;
	color: #b5b5b5;
	font-size: var(--fs-sm);
	font-weight: 600;
	background: transparent;
	border: 4px solid #c9c9c9;
	border-radius: 4px;
}

.steps__num b {
	font-size: 2.25rem;
	font-weight: 300;
}

.steps__label {
	color: #5e5e5e;
}

/* Steps: constant image box so switching tabs never changes the page height */
.steps:not(.steps--plain):not(.steps--panel) .steps__panel img {
	width: 100%;
	height: clamp(14rem, 8rem + 22vw, 28rem);
	object-fit: contain;
	object-position: center;
}

.block.bg-none:not(.has-bg-image, .hero-banner, .title-band, .hero-split, .band) + .block.bg-none:not(.has-bg-image, .hero-banner, .title-band, .band),
.block.bg-soft:not(.has-bg-image, .hero-banner, .title-band, .hero-split, .band) + .block.bg-soft:not(.has-bg-image, .hero-banner, .title-band, .band),
.block.bg-cream:not(.has-bg-image, .hero-banner, .title-band, .hero-split, .band) + .block.bg-cream:not(.has-bg-image, .hero-banner, .title-band, .band),
.block.bg-teal-tint:not(.has-bg-image, .hero-banner, .title-band, .hero-split, .band) + .block.bg-teal-tint:not(.has-bg-image, .hero-banner, .title-band, .band),
.block.bg-orange-tint:not(.has-bg-image, .hero-banner, .title-band, .hero-split, .band) + .block.bg-orange-tint:not(.has-bg-image, .hero-banner, .title-band, .band),
.block.bg-peach:not(.has-bg-image, .hero-banner, .title-band, .hero-split, .band) + .block.bg-peach:not(.has-bg-image, .hero-banner, .title-band, .band),
.block.bg-teal:not(.has-bg-image, .hero-banner, .title-band, .hero-split, .band) + .block.bg-teal:not(.has-bg-image, .hero-banner, .title-band, .band),
.block.bg-orange:not(.has-bg-image, .hero-banner, .title-band, .hero-split, .band) + .block.bg-orange:not(.has-bg-image, .hero-banner, .title-band, .band) {
	padding-top: 0;
}

.block--hero-split .hero-split--overlay {
	max-width: var(--container);
}

/* Team: five per row on desktop */
.team {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 640px) {
	.team { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.team { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-6) var(--sp-4); }
}

.team__name {
	font-size: var(--fs-base);
}

.team__role {
	font-size: var(--fs-sm);
}

/* ===== Centred carousel ======================================================================================================== */

.carousel {
	position: relative;
	padding-inline: var(--sp-7);
}

.carousel__stage {
	position: relative;
	min-height: 12rem;
}

.carousel__slide {
	position: absolute;
	top: 50%;
	left: 50%;
	width: var(--slide-w, 100%);
	transition: transform 0.5s ease, opacity 0.5s ease;
	will-change: transform;
}

.carousel__slide {
	margin-top: 0;
	translate: 0 -50%;
}

.carousel__slide img {
	width: 100%;
	height: auto;
	border-radius: 0;
}

.carousel__dots {
	display: flex;
	justify-content: center;
	gap: var(--sp-1);
	margin-top: var(--sp-4);
}

.carousel__dot {
	width: 1rem;
	height: 1rem;
	padding: 0;
	background: #b2b2b2;
	border: 0;
	border-radius: 0;
}

.carousel__dot[aria-selected="true"] {
	background: var(--orange);
}

.carousel__arrow {
	position: absolute;
	top: 45%;
	z-index: 20;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	color: var(--teal);
	background: transparent;
	border: 0;
}

.carousel__arrow--prev { left: 0; transform: rotate(180deg); }
.carousel__arrow--next { right: 0; }

.block--gallery-slider .block__title {
	margin-bottom: var(--sp-5);
	text-align: center;
}

/* ===== Footer ================================================================================================================== */

.site-footer .menu--footer a:not(.btn) {
	font-size: var(--fs-sm);
	font-weight: 500;
}

.site-footer .btn--light,
.site-footer .btn--light:hover {
	color: var(--teal);
	background: var(--white);
}

.site-footer .btn--light:hover {
	color: var(--teal-900);
	background: var(--teal-50);
}

.menu--footer {
	align-items: center;
}

.menu--footer .menu__portal {
	justify-self: start;
}

.menu--footer .menu__portal .btn {
	min-width: 8.5rem;
	justify-content: space-between;
}

.site-footer__links {
	align-items: stretch;
}

/* CTA with image: copy + button on one side, large image on the other */
.cta--image {
	display: grid;
	align-items: center;
	gap: var(--sp-5);
	text-align: left;
}

.cta__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--sp-5);
}

.cta--image .cta__media img {
	width: 100%;
	max-width: none;
}

@media (min-width: 900px) {
	.cta--image {
		grid-template-columns: 1fr 1.25fr;
		gap: var(--sp-7);
	}
}

/* ===== Team member dialog ====================================================================================================== */

.modal--member {
	width: min(44rem, calc(100vw - 2rem));
}

.modal__close--teal {
	color: var(--white);
	background: var(--teal-500);
}

.member {
	padding: 0;
}

.member__head {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--sp-5);
	margin: 0;
	padding: 0 var(--sp-5);
	background: linear-gradient(var(--teal) 0 5rem, var(--white) 5rem);
}

.member__photo {
	flex: 0 0 10rem;
	width: 10rem;
	height: 10rem;
	margin-top: var(--sp-3);
	overflow: hidden;
	background: var(--white);
	border-radius: 50%;
}

.member__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.member__id {
	padding-top: 5.5rem;
}

.member__name {
	margin: 0;
	color: var(--teal);
	font-size: var(--fs-h3);
	font-weight: 700;
	text-align: left;
}

.member__role {
	margin: var(--sp-1) 0 0;
	color: var(--ink);
	font-size: var(--fs-sm);
	font-weight: 500;
}

.member__body {
	display: grid;
	gap: var(--sp-6);
	padding: var(--sp-5);
}

.member__title {
	display: flex;
	align-items: center;
	gap: var(--sp-4);
	margin: 0 0 var(--sp-4);
	color: var(--black);
	font-size: var(--fs-lg);
	font-weight: 700;
	text-align: left;
}

.member__icon {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0;
}

.member__body .prose,
.member__contact {
	font-size: var(--fs-sm);
	color: var(--text);
}

.member__contact {
	display: grid;
	gap: var(--sp-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.member__contact li {
	color: var(--text);
}

.member__contact a {
	color: var(--teal);
}

/* Hero: breathing room above the button */
.hero-split__text .prose + .btn,
.hero-split__text .btn {
	margin-top: var(--sp-5);
}

.hero-split__text .prose > :last-child {
	margin-bottom: 0;
}

/* ===== Post listings: one standard size for every index (Knowledge Center, Articles, archives, search) ===== */


.section-head__title {
	font-size: var(--fs-h3);
	line-height: var(--lh-snug);
}

.posts-toolbar {
	margin-bottom: var(--sp-5);
}

.post-grid {
	grid-template-columns: 1fr;
	gap: var(--sp-5);
}

@media (min-width: 640px) {
	.post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 960px) {
	.post-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.post-card {
	gap: var(--sp-3);
}

.post-card__media {
	aspect-ratio: 16 / 9;
}

.post-card__body {
	padding: 0 var(--sp-1) var(--sp-1);
}

.post-card__title {
	font-size: var(--fs-lg);
	font-weight: 600;
}

.post-card__title {
	font-size: var(--fs-base);
}

.post-card__date,
.post-card .link-more {
	font-weight: 400;
}

/* ===== Single post: TOC | article | related sidebar ===== */

.single-post {
	--sticky-top: calc(var(--header-gap) + var(--header-h) + var(--sp-5));
}

.admin-bar .single-post {
	--sticky-top: calc(var(--header-gap) + var(--header-h) + var(--sp-5) + 32px);
}

.single-post__title {
	font-size: 1.5rem;
	font-weight: 600;
	line-height: var(--lh-snug);
}

.related {
	padding: var(--sp-4);
	background: var(--soft);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.related__title {
	margin: 0 0 var(--sp-4);
	color: var(--teal);
	font-size: var(--fs-base);
	font-weight: 700;
}

.related__list {
	display: grid;
	gap: var(--sp-4);
}

.post-mini {
	display: grid;
	grid-template-columns: 4rem minmax(0, 1fr);
	gap: var(--sp-3);
	align-items: start;
}

.post-mini__media {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--teal-50);
	border-radius: var(--radius-sm);
}

.post-mini__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-mini__title {
	margin: 0 0 var(--sp-1);
	font-size: var(--fs-sm);
	font-weight: 600;
	line-height: var(--lh-snug);
}

.post-mini__title a {
	color: var(--teal);
}

.post-mini__date {
	display: flex;
	align-items: center;
	gap: var(--sp-1);
	margin: 0 0 var(--sp-1);
	color: var(--muted);
	font-size: var(--fs-xs);
}

.post-mini .link-more {
	font-size: var(--fs-xs);
	font-weight: 400;
}

@media (min-width: 1100px) {
	.single-post__grid {
		grid-template-columns: 13rem minmax(0, 1fr) 19.5rem;
		gap: var(--sp-5);
		align-items: start;
	}

	.toc,
	.related {
		position: sticky;
		top: var(--sticky-top);
	}
}

@media (min-width: 1100px) {
	.single-post__main {
		grid-column: 2;
	}

	.related {
		grid-column: 3;
	}
}

/* ===== Tabs with pill lists: one tinted section, white card, two-column pills ===== */

.block--tabs-list {
	background: var(--teal-tint);
}

.tabs-list__head {
	padding-block: var(--sp-9) 5.5rem;
	background: none;
}

.tabs-list__head .block__title {
	font-size: var(--fs-h2);
}

.tabs-list {
	padding: 0;
	background: var(--white);
	border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}

.tabs-list__nav {
	margin: 0;
}

.tabs-list__panel {
	padding: var(--sp-5);
}

.pill-list {
	display: grid;
	grid-template-columns: 1fr;
	justify-content: stretch;
	gap: var(--sp-3) var(--sp-4);
	margin: 0;
}

@media (min-width: 700px) {
	.pill-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.pill-list li {
	min-width: 0;
	flex: none;
	padding: var(--sp-3) var(--sp-4);
}

.tabs-list__note {
	padding: 2.5rem var(--gutter);
	background: none;
}

.tabs-list {
	padding-block: 0;
	background-clip: content-box;
}

.tabs-list {
	padding-inline: var(--gutter);
}

.steps--panel .steps__subheading {
	font-weight: 600;
}

.steps--panel .steps__text {
	font-size: var(--fs-sm);
}

.steps--panel .steps__panel img {
	align-self: flex-start;
	width: auto;
	height: 2.5rem;
	object-fit: contain;
}

.cards--icon-title .card__title {
	font-size: var(--fs-lg);
	font-weight: 500;
}

.cards--icon-title .card__text {
	font-size: var(--fs-base);
}

.cards--flat .card__title {
	font-size: var(--fs-lg);
	font-weight: 500;
}

.cards--flat .card__text {
	font-size: var(--fs-base);
}

.intro--split {
	max-width: calc(var(--container) + var(--gutter) * 2);
}

.intro--split .prose,
.intro--split .intro__body .prose {
	font-size: var(--fs-base);
}

.intro--split .block__title {
	font-size: var(--fs-h3);
}

/* Hero: cut-out photo over a chart backdrop and an orange shape, overlapping the band below */
.hero-split--cutout .hero-split__media {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	min-height: 37.5rem;
	background-position: 50% 60%;
	background-repeat: no-repeat;
	background-size: auto;
}

.hero-split--cutout .hero-split__media::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../img/hero-shape.svg") 50% 80% / 80% auto no-repeat;
}

.hero-split--cutout .hero-split__media img {
	position: relative;
	width: auto;
	max-width: 100%;
	height: 40rem;
	object-fit: contain;
}

.hero-split--cutout .hero-split__media {
	margin-bottom: -6.75rem;
}

.block--hero-split:has(.hero-split--cutout) {
	padding-bottom: 0;
}

@media (max-width: 899px) {
	.hero-split--cutout .hero-split__media {
		margin-bottom: 0;
	}

	.block--hero-split:has(.hero-split--cutout) {
		padding-bottom: var(--section-y);
	}
}

.block > .container.hero-split--cutout > .hero-split__media:last-child {
	margin-bottom: -6.75rem;
}

@media (max-width: 899px) {
	.block > .container.hero-split--cutout > .hero-split__media:last-child {
		margin-bottom: 0;
	}
}

/* Split: compact logo instead of a large photo */
.split--logo .split__media {
	display: flex;
	justify-content: center;
}

.split--logo .split__media img {
	width: 100%;
	max-width: 15rem;
}

/* Steps (plain): photos keep a fixed height, centred and never cropped */
.steps--plain .steps__panel img {
	display: block;
	width: 100%;
	height: 22rem;
	margin-inline: auto;
	object-fit: contain;
	object-position: center;
}

.steps--plain .steps__panel img {
	height: 350px;
	object-fit: cover;
	border-radius: var(--radius);
}

/* Steps (plain): left-aligned tabs and panel with a clear size hierarchy */
.steps--plain .steps__tab {
	justify-content: flex-start;
	text-align: left;
}

.steps--plain .steps__label {
	align-items: flex-start;
	gap: var(--sp-1);
	font-size: var(--fs-base);
	font-weight: 700;
}

.steps--plain .steps__label small {
	font-size: var(--fs-sm);
	font-weight: 400;
}

.steps--plain .steps__tab[aria-selected="true"] .steps__label {
	font-size: var(--fs-base);
}

.steps--plain .steps__panels {
	text-align: left;
}

.steps--plain .steps__heading {
	font-size: var(--fs-h4);
	font-weight: 600;
	text-align: left;
}

.steps--plain .steps__subheading {
	margin-top: var(--sp-4);
	font-size: var(--fs-base);
	font-weight: 600;
}

.steps--plain .steps__text {
	font-size: var(--fs-sm);
}

.cards--numbered .card__title {
	font-size: var(--fs-base);
	font-weight: 600;
}

.cards--numbered .card__text {
	font-size: var(--fs-sm);
}

/* ===== Service pages ===== */

/* Hero sits under the floating header, so no white strip above the photo */
body.single-service .site-main {
	margin-top: calc(-1 * (var(--header-h) + var(--header-gap)));
}

/* Intro text starts at the container's left edge */
.single-service .intro--left {
	max-width: calc(var(--container) + var(--gutter) * 2);
	text-align: left;
}

.single-service .intro--left .intro__title,
.single-service .intro--left .prose {
	text-align: left;
}

.single-service .split__title {
	font-size: var(--fs-h3);
	font-weight: 600;
}

/* Long article: calmer heading scale */
.prose--collapsible h2 {
	font-size: var(--fs-h4);
	font-weight: 600;
}

.prose--collapsible h3 {
	font-size: var(--fs-lg);
	font-weight: 500;
}

.prose--collapsible h4 {
	font-size: var(--fs-base);
	font-weight: 600;
}

/* Other services */
.single-service .block--cards > .container > .block__title {
	text-align: center;
}

.single-service .cards--plain .card--link {
	padding: var(--sp-4);
}

.single-service .cards--plain .card--link .card__title {
	font-size: var(--fs-base);
	font-weight: 500;
}

.single-service .block--cards > .container > .block__title {
	margin-bottom: var(--sp-5);
}

/* Service hero: larger text over a darker overlay */
.hero-banner--service::after {
	background: linear-gradient(0deg, rgb(0 0 0 / 0.7) 0%, rgb(0 0 0 / 0.45) 100%);
}

.hero-banner--service .hero-banner__title {
	max-width: 48rem;
	font-size: var(--fs-h2);
	font-weight: 700;
	line-height: var(--lh-snug);
}

.hero-banner--service .hero-banner__sub {
	font-size: var(--fs-lg);
	font-weight: 500;
}

.single-service .intro--left .intro__title {
	font-size: var(--fs-h3);
	font-weight: 600;
}

/* ===== Post listings with a filter sidebar ===== */

.posts-layout {
	display: grid;
	gap: var(--sp-6);
}

@media (min-width: 900px) {
	.posts-layout.has-sidebar {
		grid-template-columns: minmax(0, 1fr) 17rem;
		align-items: start;
		gap: var(--sp-6);
	}
}

.posts-layout .post-grid {
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.posts-layout .post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.posts-layout.has-sidebar .post-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.posts-sidebar {
	display: grid;
	gap: var(--sp-4);
}

@media (min-width: 900px) {
	.posts-sidebar {
		position: sticky;
		top: calc(var(--header-gap) + var(--header-h) + var(--sp-5));
	}

	.admin-bar .posts-sidebar {
		top: calc(var(--header-gap) + var(--header-h) + var(--sp-5) + 32px);
	}
}

.posts-sidebar__box {
	padding: var(--sp-4);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.posts-sidebar__title {
	margin: 0 0 var(--sp-3);
	color: var(--ink);
	font-size: var(--fs-base);
	font-weight: 600;
}

.posts-sidebar__list {
	display: grid;
	gap: var(--sp-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.posts-sidebar__list a {
	display: block;
	padding: var(--sp-2) var(--sp-3);
	color: var(--teal);
	font-size: var(--fs-sm);
	border-radius: var(--radius-sm);
}

.posts-sidebar__list a:hover,
.posts-sidebar__list a[aria-current="page"] {
	color: var(--white);
	background: var(--teal);
}

.posts-sidebar .chips a[aria-current="page"] {
	color: var(--white);
	background: var(--teal);
}

.posts-sidebar .search-form {
	width: 100%;
}

/* ===== Small-screen safeguards ===== */

.carousel {
	overflow-x: clip;
}

.prose,
.prose a {
	overflow-wrap: anywhere;
}

/* ===== Mobile refinements ===== */

/* Posts: filters sit behind a toggle on small screens */
.posts-filter-toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	margin-bottom: var(--sp-4);
	padding: var(--sp-2) var(--sp-4);
	color: var(--teal);
	font-size: var(--fs-sm);
	font-weight: 500;
	background: var(--white);
	border: 1px solid var(--teal);
	border-radius: var(--radius-pill);
	cursor: pointer;
}

.posts-filter-toggle[aria-expanded="true"] {
	color: var(--white);
	background: var(--teal);
}

@media (max-width: 899px) {
	.posts-layout.has-sidebar .posts-sidebar {
		display: none;
		order: -1;
	}

	.posts-layout.has-sidebar.filters-open .posts-sidebar {
		display: grid;
	}
}

@media (min-width: 900px) {
	.posts-filter-toggle {
		display: none;
	}
}

/* Heroes: the picture comes first when the layout stacks */
@media (max-width: 767px) {
	.slide__media {
		order: -1;
	}
}

@media (max-width: 899px) {
	.hero-split:not(.hero-split--overlay) .hero-split__media {
		order: -1;
	}
}

/* Hero banner label: smaller on phones */
.hero-banner__label {
	gap: var(--sp-3);
	padding: var(--sp-3);
	font-size: var(--fs-h3);
}

.hero-banner__label svg {
	width: 1.75rem;
	height: 1.75rem;
}

@media (min-width: 768px) {
	.hero-banner__label {
		padding: var(--sp-4);
		font-size: var(--fs-h2);
	}

	.hero-banner__label svg {
		width: 2.5rem;
		height: 2.5rem;
	}
}

/* ===== Single post: contents drawer on small screens ===== */

.toc-toggle {
	position: fixed;
	left: var(--sp-4);
	bottom: var(--sp-4);
	z-index: 80;
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	padding: var(--sp-3) var(--sp-4);
	color: var(--white);
	font-size: var(--fs-sm);
	font-weight: 500;
	background: var(--teal);
	border: 0;
	border-radius: var(--radius-pill);
	box-shadow: var(--shadow);
	cursor: pointer;
}

.toc-toggle[hidden] {
	display: none;
}

.toc-backdrop {
	position: fixed;
	inset: 0;
	z-index: 89;
	background: rgb(0 0 0 / 0.4);
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--ease);
}

.toc-backdrop.is-open {
	opacity: 1;
	pointer-events: auto;
}

@media (max-width: 1099px) {
	.single-post .toc {
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		z-index: 90;
		align-self: stretch;
		width: min(20rem, 85vw);
		padding: var(--sp-6) var(--sp-4);
		overflow-y: auto;
		background: var(--white);
		border: 0;
		border-radius: 0 var(--radius) var(--radius) 0;
		box-shadow: var(--shadow);
		transform: translateX(-105%);
		transition: transform var(--ease);
	}

	.single-post .toc.is-open {
		transform: none;
	}
}

@media (min-width: 1100px) {
	.toc-toggle,
	.toc-backdrop {
		display: none;
	}
}

/* Blog posts: article headings stay below the post title (24px) */
.post-content h2 {
	font-size: var(--fs-lg);
	font-weight: 600;
}

.post-content h3 {
	font-size: var(--fs-base);
	font-weight: 600;
}

.post-content h4 {
	font-size: var(--fs-sm);
	font-weight: 600;
}

/* Home page only: larger, bolder hero heading */
body.home .hero-slider__heading {
	font-size: clamp(2.25rem, 1.5rem + 3vw, 3.5rem);
	font-weight: 700;
	line-height: var(--lh-snug);
}

/* Slide heading: eyebrow + title are one heading, shown on two lines */
.slide__heading {
	margin: 0 0 var(--sp-3);
	font-size: inherit;
}

.slide__heading .slide__eyebrow,
.slide__heading .slide__title {
	display: block;
}

.slide__heading .slide__eyebrow {
	margin: 0 0 var(--sp-2);
}

/* Hero text heading (affiliate): tagged h2 for the outline, styled like the old h3 */
.hero-split__text .prose h2 {
	margin-bottom: var(--sp-3);
	font-size: var(--fs-h3);
	font-weight: 600;
}

.bg-teal .prose h2 {
	color: var(--orange);
}

/* Long legal text: consistent heading scale after re-levelling */
.prose--long h2 {
	font-size: var(--fs-h4);
	font-weight: 600;
}

.prose--long h3 {
	font-size: var(--fs-lg);
	font-weight: 500;
}

.prose--long h4 {
	font-size: var(--fs-base);
	font-weight: 600;
}
