/*
 * Global full-width content alignment.
 * Sections retain full-width backgrounds; inner content uses shared responsive gutters.
 */
:root {
	--ta-site-width: 1920px;
	--ta-container-width: 1440px;
	--ta-container-gutter: 100px;
}

/* Center the complete website in a wide-screen shell. */
.total-assurance-site {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: var(--ta-site-width);
	overflow-x: clip;
	width: 100%;
}
.total-assurance-site main > section {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/*
 * Page banners use the full width of the boxed site canvas, like the Home hero.
 * Their inner containers remain constrained by the shared content grid below.
 */
.total-assurance-site :is(
	.total-assurance-about-page__banner,
	.total-assurance-faq-hero,
	.total-assurance-contact-hero,
	.total-assurance-team-banner,
	.total-assurance-team-profile-banner,
	.total-assurance-blog-hero,
	.total-assurance-service-detail__hero
) {
	box-sizing: border-box;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

.total-assurance-site [class*="total-assurance-"][class*="__container"],
.total-assurance-site .total-assurance-blog-container,
.total-assurance-site .total-assurance-faq-container,
.total-assurance-site .total-assurance-contact-container,
.total-assurance-site .ta-container {
	box-sizing: border-box;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: var(--ta-container-width) !important;
	padding-left: var(--ta-container-gutter) !important;
	padding-right: var(--ta-container-gutter) !important;
	width: 100% !important;
}

/* The FAQ hero artwork remains full-bleed; only its copy follows the content grid. */
.total-assurance-site .total-assurance-faq-hero > .total-assurance-faq-hero__inner {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

@media (max-width: 1439px) {
	:root {
		--ta-container-gutter: 64px;
	}
}

@media (max-width: 1023px) {
	:root {
		--ta-container-gutter: 40px;
	}
}

@media (max-width: 767px) {
	:root {
		--ta-container-gutter: 20px;
	}
}
/* Large-screen banner artwork fills the complete banner canvas. */
@media (min-width: 1024px) {
	.total-assurance-about-page__banner,
	.total-assurance-contact-hero,
	.total-assurance-team-banner,
	.total-assurance-team-profile-banner,
	.total-assurance-blog-hero {
		background-position: center center !important;
		background-size: cover !important;
	}

	.total-assurance-service-detail__hero--full-banner .total-assurance-service-detail__hero-background {
		inset: 0 !important;
		object-fit: cover !important;
		object-position: center center !important;
		width: 100% !important;
	}

	.total-assurance-faq-hero__inner {
		position: relative;
	}

	.total-assurance-faq-hero__content {
		position: relative;
		z-index: 2;
	}

	.total-assurance-faq-hero__visual {
		inset: 0;
		position: absolute;
		width: 100%;
	}

	.total-assurance-faq-hero__visual img {
		border-radius: 0 !important;
		object-position: center center;
	}
}
/* The Blog hero is nested inside the content container; expand only it to the site shell. */
.total-assurance-site .total-assurance-blog-container > .total-assurance-blog-hero {
	margin-left: calc(50% - min(50vw, 960px)) !important;
	margin-right: calc(50% - min(50vw, 960px)) !important;
	max-width: none !important;
	width: min(100vw, var(--ta-site-width)) !important;
}

@media (min-width: 768px) {
	.total-assurance-blog-hero__content {
		padding-left: max(
			var(--ta-container-gutter),
			calc((min(100vw, var(--ta-site-width)) - var(--ta-container-width)) / 2 + var(--ta-container-gutter))
		) !important;
	}
}
/* Header and hero copy share one exact boxed alignment grid. */
.total-assurance-site .total-assurance-header__container,
.total-assurance-site .total-assurance-hero__container,
.total-assurance-site .total-assurance-about-page__banner-grid,
.total-assurance-site .total-assurance-contact-hero__grid,
.total-assurance-site .total-assurance-team-banner__container,
.total-assurance-site .total-assurance-team-profile-banner__inner,
.total-assurance-site .total-assurance-service-detail__hero-grid {
	box-sizing: border-box !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: var(--ta-container-width) !important;
	padding-left: var(--ta-container-gutter) !important;
	padding-right: var(--ta-container-gutter) !important;
	width: 100% !important;
}

/* Banner backgrounds fill the complete boxed site shell. */
.total-assurance-site :is(
	.total-assurance-hero,
	.total-assurance-about-page__banner,
	.total-assurance-faq-hero,
	.total-assurance-contact-hero,
	.total-assurance-team-banner,
	.total-assurance-team-profile-banner,
	.total-assurance-blog-hero,
	.total-assurance-service-detail__hero
) {
	max-width: none !important;
	width: 100% !important;
}
/* Keep FAQ copy on the same boxed horizontal grid. */
@media (min-width: 761px) {
	.total-assurance-site .total-assurance-faq-hero__content {
		margin-left: max(
			var(--ta-container-gutter),
			calc((min(100vw, var(--ta-site-width)) - var(--ta-container-width)) / 2 + var(--ta-container-gutter))
		) !important;
	}
}
/* Keep the Mortgage Calculator icon visible on the green hover state. */
.total-assurance-hero__button--secondary:hover svg,
.total-assurance-hero__button--secondary:focus-visible svg {
	fill: currentColor !important;
}

/* Keep 15+ Years Experience bold and on one line. */
.total-assurance-hero__stat:first-child strong {
	white-space: nowrap;
}

/* Expand the Home banner background to the complete boxed site shell. */
body.home .total-assurance-site #main-content > .total-assurance-hero {
	margin-left: calc(50% - min(50vw, 960px)) !important;
	margin-right: calc(50% - min(50vw, 960px)) !important;
	max-width: none !important;
	width: min(100vw, var(--ta-site-width)) !important;
}
/* Keep 15+ Years together in bold with Experience below. */
.total-assurance-hero__stat:first-child p {
	align-items: flex-start;
	flex-direction: column;
	gap: 1px;
}
/* Center each Home trust label below its icon on tablet and mobile. */
@media (max-width: 991px) {
	body.home .total-assurance-hero__stat {
		align-items: center !important;
		flex-direction: column !important;
		gap: 3px !important;
		height: auto !important;
		justify-content: flex-start !important;
		min-height: 0 !important;
		text-align: center;
	}

	body.home .total-assurance-hero__stat p,
	body.home .total-assurance-hero__stat:first-child p {
		align-items: center !important;
		margin: 0 !important;
		text-align: center;
	}

	body.home .total-assurance-hero__stat > svg {
		margin: 0 !important;
	}
}
/* Mobile only: lock each icon and label into adjacent grid rows. */
@media (max-width: 767px) {
	body.home .total-assurance-hero__stat {
		align-content: start !important;
		display: grid !important;
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
		justify-items: center;
		row-gap: 0 !important;
	}

	body.home .total-assurance-hero__stat > svg,
	body.home .total-assurance-hero__stat > p {
		grid-column: 1;
		margin: 0 !important;
	}
}
/* Pull mobile trust text upward by the requested amount. */
@media (max-width: 767px) {
	body.home .total-assurance-hero__stat > p {
		margin-top: -50px !important;
	}
}
/* Move only the first mobile trust label closer to its icon. */
@media (max-width: 767px) {
	body.home .total-assurance-hero__stat:first-child > p {
		margin-top: -50px !important;
	}
}
/* Keep 100% Independent aligned with the other mobile labels. */
@media (max-width: 767px) {
	body.home .total-assurance-hero__stat:nth-child(3) > p {
		margin-top: -60px !important;
	}
}
/* Unified Home service-card default and interactive states. */
body.home .total-assurance-home-services .total-assurance-service-card {
	background: #fff !important;
	border: 1px solid rgba(6, 26, 58, 0.04) !important;
	box-shadow: 0 10px 30px rgba(6, 26, 58, 0.06) !important;
	transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease !important;
}

body.home .total-assurance-home-services .total-assurance-service-card__icon svg {
	stroke: #07598c !important;
	transition: stroke 0.3s ease;
}

body.home .total-assurance-home-services .total-assurance-service-card__content a {
	color: #07598c !important;
	transition: color 0.3s ease, gap 0.3s ease;
}

body.home .total-assurance-home-services .total-assurance-service-card:hover,
body.home .total-assurance-home-services .total-assurance-service-card:focus-within {
	background: #f4faf1 !important;
	box-shadow: 0 14px 34px rgba(6, 26, 58, 0.09) !important;
	transform: translateY(-4px) !important;
}

body.home .total-assurance-home-services .total-assurance-service-card:hover .total-assurance-service-card__icon svg,
body.home .total-assurance-home-services .total-assurance-service-card:focus-within .total-assurance-service-card__icon svg {
	stroke: #248511 !important;
}

body.home .total-assurance-home-services .total-assurance-service-card:hover .total-assurance-service-card__content a,
body.home .total-assurance-home-services .total-assurance-service-card:focus-within .total-assurance-service-card__content a {
	color: #248511 !important;
}
/* Remove only the calculator's redundant outer white box. */
body.home .total-assurance-calculator {
	background: #fff !important;
}

body.home .total-assurance-calculator__container {
	background: transparent !important;
	border: 0 !important;
	border-radius: 20px !important;
	box-shadow: none !important;
	overflow: hidden !important;
	padding: 16px !important;
}
/* Apply rounding and padding only to the blue calculator workspace. */
body.home .total-assurance-calculator__workspace {
	border-radius: 20px 0 0 20px !important;
	padding: 42px !important;
}

body.home .total-assurance-calculator__visual {
	border-radius: 0 20px 20px 0 !important;
}

@media (max-width: 960px) {
	body.home .total-assurance-calculator__workspace {
		border-radius: 20px 20px 0 0 !important;
		padding: 38px !important;
	}

	body.home .total-assurance-calculator__visual {
		border-radius: 0 0 20px 20px !important;
	}
}

@media (max-width: 720px) {
	body.home .total-assurance-calculator__workspace {
		padding: 34px !important;
	}
}
/* Match the Calculate button height to the calculator form fields. */
body.home .total-assurance-calculator__submit {
	height: 52px !important;
	min-height: 52px !important;
}
/* Modestly compact the calculator on desktop and laptop screens. */
@media (min-width: 961px) {
	body.home .total-assurance-calculator {
		padding-bottom: 48px !important;
		padding-top: 48px !important;
	}

	body.home .total-assurance-calculator__container,
	body.home .total-assurance-calculator__visual {
		min-height: 450px !important;
	}

	body.home .total-assurance-calculator__workspace {
		gap: 22px;
		padding: 42px !important;
	}

	body.home .total-assurance-calculator__form {
		gap: 14px 18px;
	}

	body.home .total-assurance-calculator__result {
		padding: 12px 24px !important;
	}

	body.home .total-assurance-calculator__amount {
		margin-top: 10px;
	}

	body.home .total-assurance-calculator__amount strong {
		font-size: clamp(28px, 2.7vw, 39px);
	}

	body.home .total-assurance-calculator__disclaimer {
		transform: translateX(-30px);
	}

	body.home .total-assurance-calculator__field input,
	body.home .total-assurance-calculator__field select,
	body.home .total-assurance-calculator__submit {
		height: 42px !important;
		min-height: 42px !important;
		width: calc(100% - 12px) !important;
	}
}
/* Keep the calculator section flush vertically without changing its inline padding. */
body.home .total-assurance-calculator {
	padding-bottom: 0 !important;
	padding-top: 0 !important;
}
/* Keep the complete homepage About section white and flush vertically. */
body.home .total-assurance-about {
	background-color: #fff !important;
	padding-bottom: 0 !important;
	padding-top: 0 !important;
}
/* Use the requested compact bottom spacing for the providers section. */
body.home .total-assurance-providers {
	padding-bottom: 70px !important;
}
/* Present the statistics background as a centered boxed panel. */
body.home .total-assurance-statistics {
	background-color: #fff !important;
}

body.home .total-assurance-site .total-assurance-statistics__container {
	border-radius: 20px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: calc(var(--ta-container-width) - var(--ta-container-gutter) - var(--ta-container-gutter)) !important;
	width: calc(100% - var(--ta-container-gutter) - var(--ta-container-gutter)) !important;
}
/* Keep the Our Services parent wrapper white and remove only its outer padding. */
body.home .total-assurance-service-showcase {
	background-color: #fff !important;
	padding: 0 !important;
	padding-bottom: 70px !important;
}
/* Keep an exact 60px separation between Our Values and the review row. */
@media (min-width: 1001px) {
	body.home .total-assurance-values-testimonials__container {
		row-gap: 60px !important;
	}
}

@media (max-width: 1000px) {
	body.home .total-assurance-feedback-card {
		margin-top: calc(60px - var(--ta-grid-gap));
	}

	body.home .total-assurance-testimonials-card {
		margin-top: calc(36px - var(--ta-grid-gap));
	}
}
/* Full-bleed backgrounds with the existing centered inner content containers. */
html,
body {
	overflow-x: clip;
}

.total-assurance-site {
	overflow-x: visible;
}

body.home .total-assurance-site .total-assurance-hero,
body.home .total-assurance-site .total-assurance-why-choose,
.total-assurance-site .total-assurance-footer {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: none !important;
	width: 100vw !important;
}
/* Keep the Latest Articles / FAQ / Contact parent white with no outer padding. */
body.home .total-assurance-latest {
	background-color: #fff !important;
	padding: 30px 0 60px !important;
}
/* Make every page banner background span the complete browser viewport. */
body .total-assurance-site :is(
	.total-assurance-hero,
	.total-assurance-about-page__banner,
	.total-assurance-faq-hero,
	.total-assurance-contact-hero,
	.total-assurance-team-banner,
	.total-assurance-team-profile-banner,
	.total-assurance-blog-hero,
	.total-assurance-service-detail__hero
) {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: none !important;
	width: 100vw !important;
}

body .total-assurance-site .total-assurance-blog-container > .total-assurance-blog-hero {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: none !important;
	width: 100vw !important;
}
/* Override the older high-specificity 1920px Home Hero cap. */
body.home .total-assurance-site #main-content > .total-assurance-hero {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: none !important;
	width: 100vw !important;
}
/* Add the requested space above the homepage service cards. */
body.home .total-assurance-home-services {
	padding-top: 70px !important;
}
/* Balance the Home Hero heading without changing its typography or content. */
body.home .total-assurance-hero__title {
	line-height: 1.1;
	max-width: 760px !important;
	text-align: left;
	text-wrap: balance;
	width: calc(100% + 120px);
}

@media (min-width: 961px) {
	body.home .total-assurance-hero__title span {
		white-space: nowrap;
	}
}

@media (max-width: 960px) {
	body.home .total-assurance-hero__title {
		max-width: 700px !important;
		width: 100%;
	}
}
/* Keep the Leave a Review CTA compact without changing its placement. */
body.home .total-assurance-feedback-card__review-panel a {
	font-size: 14px !important;
	gap: 8px;
	min-height: 34px;
	padding: 4px 12px;
}
/* Keep metric labels with their numbers and supporting copy on the next line. */
:is(
	.total-assurance-hero__stat,
	.total-assurance-about-page__banner-stats,
	.total-assurance-about-page__experience,
	.total-assurance-service-detail__trust-indicators,
	.total-assurance-statistics__item,
	.total-assurance-team-founder__experience,
	.total-assurance-contact-hero__stats,
	.total-assurance-contact-benefits__stats
) strong {
	white-space: nowrap;
}

.total-assurance-about-page__banner-stats p > span {
	display: block;
}
/* Align the Latest Articles, FAQ, and Contact cards on desktop only. */
@media (min-width: 1101px) {
	body.home .total-assurance-latest__container {
		align-items: stretch;
	}

	body.home .total-assurance-latest__column {
		display: flex;
		flex-direction: column;
		height: 100%;
	}

	body.home .total-assurance-latest__article-grid {
		flex: 1 1 auto;
		height: auto;
	}


	body.home .total-assurance-contact-card {
		height: 100%;
		padding: 58px 28px;
	}
}
/* Final mobile Team hero correction in the last-loaded responsive layer. */
@media (max-width: 640px) {
	body.page-template-page-our-team .total-assurance-team-banner {
		padding-bottom: 0 !important;
	}
	body.page-template-page-our-team .total-assurance-team-banner__container {
		gap: 14px !important;
	}
	body.page-template-page-our-team .total-assurance-team-banner__image {
		aspect-ratio: auto !important;
		border-radius: 0 !important;
		display: block !important;
		height: auto !important;
		margin: 0 auto !important;
		max-height: none !important;
		max-width: 100% !important;
		object-fit: contain !important;
		object-position: center !important;
		width: 100% !important;
	}
	body.page-template-page-our-team .total-assurance-team-founder {
		padding-top: 12px !important;
	}
}
/* Team page: mobile-only section order and Founder presentation. */
@media (max-width: 640px) {
	body.page-template-page-our-team .total-assurance-team-page {
		display: flex;
		flex-direction: column;
	}

	body.page-template-page-our-team .total-assurance-team-page > * {
		order: 3;
	}

	body.page-template-page-our-team .total-assurance-team-founder {
		order: 1;
	}

	body.page-template-page-our-team .total-assurance-team-banner {
		order: 2;
	}

	body.page-template-page-our-team .total-assurance-team-founder__content {
		grid-column: 1 !important;
		grid-row: 1 !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__portrait {
		grid-column: 1 !important;
		grid-row: 2 !important;
		margin-left: auto !important;
		margin-right: auto !important;
		width: 100% !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__portrait img {
		display: block !important;
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: 100% !important;
		object-fit: contain !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__quote {
		grid-column: 1 !important;
		grid-row: 3 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		max-width: none !important;
		width: 100% !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__values {
		align-items: start !important;
		display: grid !important;
		gap: 12px !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		width: 100% !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__value,
	body.page-template-page-our-team .total-assurance-team-founder__value h4,
	body.page-template-page-our-team .total-assurance-team-founder__value p {
		text-align: center !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__value-icon {
		display: flex !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}
/* Team Hero image: right-edge alignment on tablet and mobile only. */
@media (max-width: 991px) {
	body.page-template-page-our-team .total-assurance-team-banner__image {
		align-self: flex-start !important;
		border-radius: var(--ta-radius-image) !important;
		height: auto !important;
		margin-left: 0 !important;
		margin-right: -24px !important;
		max-width: none !important;
		object-fit: contain !important;
		object-position: center !important;
		width: calc(100% + 24px) !important;
	}
}

@media (max-width: 640px) {
	body.page-template-page-our-team .total-assurance-team-banner__image {
		margin-right: -20px !important;
		width: calc(100% + 20px) !important;
	}
}
/* Team page: preserve desktop section flow on tablet and mobile. */
@media (max-width: 991px) {
	body.page-template-page-our-team .total-assurance-team-page {
		display: block !important;
	}

	body.page-template-page-our-team .total-assurance-team-page > * {
		order: initial !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__container {
		column-gap: 0 !important;
		row-gap: clamp(24px, 4vw, 32px) !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__content {
		grid-column: 1 !important;
		grid-row: 1 !important;
		text-align: center !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__portrait {
		grid-column: 1 !important;
		grid-row: 2 !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__portrait img {
		display: block !important;
		height: auto !important;
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: 100% !important;
		object-fit: contain !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__quote {
		grid-column: 1 !important;
		grid-row: 3 !important;
		margin-left: auto !important;
		margin-right: auto !important;
		width: 100% !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__values {
		align-items: start !important;
		justify-content: center !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__value,
	body.page-template-page-our-team .total-assurance-team-founder__value h4,
	body.page-template-page-our-team .total-assurance-team-founder__value p {
		text-align: center !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__value-icon {
		display: flex !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}
/* Team Hero image: full-bleed tablet/mobile presentation. */
@media (max-width: 991px) {
	body.page-template-page-our-team .total-assurance-team-banner__image {
		border-radius: 0 !important;
		margin-left: -24px !important;
		margin-right: -24px !important;
		max-width: none !important;
		width: calc(100% + 48px) !important;
	}
}

@media (max-width: 640px) {
	body.page-template-page-our-team .total-assurance-team-banner__image {
		margin-left: -20px !important;
		margin-right: -20px !important;
		width: calc(100% + 40px) !important;
	}
}
/* Team Founder features: one centered item per row on mobile. */
@media (max-width: 640px) {
	body.page-template-page-our-team .total-assurance-team-founder__values {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.page-template-page-our-team .total-assurance-team-founder__value {
		align-items: center !important;
		display: flex !important;
		flex-direction: column !important;
		width: 100% !important;
	}
}
/* Blog hero: increase height on wide screens only. */
@media (min-width: 1600px) {
	body.page-template-page-blog .total-assurance-blog-hero,
	body.blog .total-assurance-blog-hero {
		min-height: 540px !important;
	}
}
/* Home and Team heroes: desktop-style tablet composition only. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero {
		background-image: var(--ta-hero-background) !important;
		background-position: right center !important;
		background-repeat: no-repeat !important;
		background-size: contain !important;
	}

	body.home .total-assurance-hero__container {
		align-items: stretch !important;
		display: grid !important;
		grid-template-columns: minmax(0, 58%) minmax(0, 42%) !important;
		min-height: 610px !important;
	}

	body.home .total-assurance-hero__content {
		align-items: flex-start !important;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.82) 72%, rgba(255, 255, 255, 0) 100%);
		padding: 52px 72px 44px 0 !important;
		text-align: left !important;
	}

	body.home .total-assurance-hero__actions {
		justify-content: flex-start !important;
	}

	body.home .total-assurance-hero__stats {
		grid-template-columns: repeat(3, max-content) !important;
		justify-content: start !important;
	}

	body.home .total-assurance-hero__stat {
		justify-content: flex-start !important;
		text-align: left !important;
	}

	body.home .total-assurance-hero__visual {
		background-image: none !important;
		min-height: 610px !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner {
		background-image: url('../images/team-banner.webp') !important;
		background-position: right center !important;
		background-repeat: no-repeat !important;
		background-size: contain !important;
		min-height: 560px !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__container {
		align-items: stretch !important;
		display: flex !important;
		flex-direction: row !important;
		gap: 0 !important;
		min-height: 560px !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__content {
		align-items: flex-start !important;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.82) 72%, rgba(255, 255, 255, 0) 100%);
		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		margin: 0 !important;
		max-width: 58% !important;
		padding: 48px 72px 48px 0 !important;
		text-align: left !important;
		width: 58% !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__eyebrow,
	body.page-template-page-our-team .total-assurance-team-banner h1,
	body.page-template-page-our-team .total-assurance-team-banner__tagline,
	body.page-template-page-our-team .total-assurance-team-banner__description {
		margin-left: 0 !important;
		margin-right: 0 !important;
		text-align: left !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__tagline::after {
		left: 0 !important;
		transform: none !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__image {
		display: none !important;
	}
}
/* Tablet heroes: begin directly below the site header. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero__content,
	body.page-template-page-our-team .total-assurance-team-banner__content {
		justify-content: flex-start !important;
		padding-top: 20px !important;
	}
}
/* Tablet heroes: remove all space between the header and banner canvas. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home #main-content,
	body.page-template-page-our-team #main-content,
	body.home .total-assurance-hero,
	body.page-template-page-our-team .total-assurance-team-banner,
	body.home .total-assurance-hero__container,
	body.page-template-page-our-team .total-assurance-team-banner__container {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	body.home .total-assurance-hero,
	body.page-template-page-our-team .total-assurance-team-banner {
		background-position: right top !important;
	}

	body.home .total-assurance-hero__content,
	body.page-template-page-our-team .total-assurance-team-banner__content {
		padding-top: 0 !important;
	}
}
/* Mortgage result card: retain the desktop two-column flow on tablet. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-calculator__result {
		align-items: center !important;
		display: grid !important;
		gap: 8px 22px !important;
		grid-template-columns: minmax(0, 35fr) minmax(0, 65fr) !important;
		grid-template-rows: auto auto !important;
	}

	body.home .total-assurance-calculator__result > p {
		grid-column: 1 !important;
		grid-row: 1 !important;
	}

	body.home .total-assurance-calculator__amount {
		grid-column: 1 !important;
		grid-row: 2 !important;
	}

	body.home .total-assurance-calculator__disclaimer {
		align-self: center !important;
		grid-column: 2 !important;
		grid-row: 1 / span 2 !important;
		margin: 0 !important;
		max-width: none !important;
		transform: none !important;
	}
}
/* Mortgage result card: prevent large values overlapping at exactly 768px. */
@media (min-width: 768px) and (max-width: 768px) {
	body.home .total-assurance-calculator__result {
		gap: 8px 18px !important;
		grid-template-columns: minmax(0, 42fr) minmax(0, 58fr) !important;
	}

	body.home .total-assurance-calculator__amount,
	body.home .total-assurance-calculator__amount strong,
	body.home .total-assurance-calculator__disclaimer {
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.home .total-assurance-calculator__amount strong {
		font-size: clamp(22px, 3.2vw, 26px) !important;
		overflow-wrap: anywhere;
		word-break: break-word;
	}
}
/* Team tablet banner: balanced top inset with no trailing blank area. */
@media (min-width: 768px) and (max-width: 991px) {
	body.page-template-page-our-team .total-assurance-team-banner,
	body.page-template-page-our-team .total-assurance-team-banner__container {
		min-height: 0 !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__content {
		padding-bottom: 24px !important;
		padding-top: 20px !important;
	}
}
/* Home hero: keep every element inside the tablet banner canvas. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero,
	body.home .total-assurance-hero__container {
		box-sizing: border-box !important;
		overflow: hidden !important;
	}

	body.home .total-assurance-hero__content,
	body.home .total-assurance-hero__visual {
		box-sizing: border-box !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	body.home .total-assurance-hero__actions,
	body.home .total-assurance-hero__stats {
		box-sizing: border-box !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	body.home .total-assurance-hero__actions {
		flex-wrap: wrap !important;
	}

	body.home .total-assurance-hero__button {
		max-width: 100% !important;
	}

	body.home .total-assurance-hero__stats {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	body.home .total-assurance-hero__stat {
		min-width: 0 !important;
	}

	body.home .total-assurance-hero__feature-card {
		box-sizing: border-box !important;
		max-width: calc(100% - 32px) !important;
		right: 16px !important;
		width: min(260px, calc(100% - 32px)) !important;
	}
}
/* Home hero: exact tablet text flow and contained action layout. */
.total-assurance-hero__tablet-break {
	display: none;
}

@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero__container {
		grid-template-columns: minmax(0, 70%) minmax(0, 30%) !important;
	}

	body.home .total-assurance-hero__content {
		padding-right: 20px !important;
	}

	body.home .total-assurance-hero__title > span {
		display: inline !important;
	}

	body.home .total-assurance-hero__tablet-break {
		display: block !important;
	}

	body.home .total-assurance-hero__description {
		max-width: 420px !important;
		width: 100% !important;
	}

	body.home .total-assurance-hero__actions {
		flex-wrap: nowrap !important;
		gap: 16px !important;
		white-space: nowrap !important;
	}

	body.home .total-assurance-hero__button {
		flex: 0 1 auto !important;
		white-space: nowrap !important;
	}

	body.home .total-assurance-hero__stats {
		margin-top: auto !important;
	}

	body.home .total-assurance-hero__feature-card {
		bottom: 24px !important;
		max-width: calc(100% - 24px) !important;
		right: 12px !important;
		width: calc(100% - 24px) !important;
	}
}


/* Home hero: final tablet-only composition. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero__content {
		justify-content: flex-start !important;
		padding-top: 18px !important;
		padding-right: 12px !important;
	}

	body.home .total-assurance-hero__tablet-break--inline {
		display: none !important;
	}

	body.home .total-assurance-hero__description {
		max-width: 470px !important;
		margin-top: 8px !important;
	}

	body.home .total-assurance-hero__actions {
		flex-wrap: nowrap !important;
		gap: 12px !important;
		margin-top: 12px !important;
		position: relative;
		z-index: 2;
	}

	body.home .total-assurance-hero__button {
		flex: 0 1 auto !important;
		min-width: 0 !important;
	}

	body.home .total-assurance-hero__stats {
		margin-top: 28px !important;
		position: relative;
		z-index: 2;
	}

	body.home .total-assurance-hero__visual {
		overflow: visible !important;
		position: static !important;
	}

	body.home .total-assurance-hero__container {
		position: relative !important;
	}

	body.home .total-assurance-hero__feature-card {
		bottom: auto !important;
		left: auto !important;
		max-width: 190px !important;
		right: 12px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 190px !important;
	}
}
/* Home tablet: reduce the hero-to-services transition gap. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero__container,
	body.home .total-assurance-hero__visual {
		min-height: 480px !important;
	}

	body.home .total-assurance-home-services {
		margin-top: -90px !important;
		padding-top: 0 !important;
		position: relative;
		z-index: 2;
	}
}
/* Home Latest Articles: stronger card-title hierarchy on desktop and wide screens. */
@media (min-width: 1024px) {
	body.home .total-assurance-article-card h5 {
		font-size: 18px !important;
		line-height: 1.4 !important;
	}
}
/* Blog and FAQ search controls: seamless full-height buttons. */
.total-assurance-blog-search button {
	align-self: stretch !important;
	height: 100% !important;
	max-height: none !important;
	min-height: 100% !important;
}

.total-assurance-faq-search {
	align-items: stretch !important;
	height: 52px !important;
}

.total-assurance-faq-search input {
	height: 100% !important;
}

.total-assurance-faq-search button {
	align-self: stretch !important;
	border-radius: 0 11px 11px 0 !important;
	height: 100% !important;
	margin-bottom: 0 !important;
	margin-left: -52px !important;
	margin-right: 0 !important;
	margin-top: 0 !important;
	max-height: none !important;
	min-height: 100% !important;
}
/* FAQ: full-width background with header-aligned boxed content. */
@media (min-width: 1024px) {
	body .total-assurance-site .total-assurance-faq-hero__inner {
		box-sizing: border-box !important;
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: var(--ta-container-width) !important;
		padding-left: var(--ta-container-gutter) !important;
		padding-right: var(--ta-container-gutter) !important;
		width: 100% !important;
	}

	body .total-assurance-site .total-assurance-faq-hero__content {
		margin-left: 0 !important;
		transform: translateY(-50px) !important;
	}

	body .total-assurance-site .total-assurance-faq-hero__visual {
		left: var(--ta-container-gutter) !important;
		right: var(--ta-container-gutter) !important;
		width: auto !important;
	}
}

@media (min-width: 1024px) and (max-width: 1024px) {
	body.page-template-page-faq .total-assurance-faq-hero__content {
		transform: translateY(-20px) !important;
	}
}
/* Blog and FAQ search bars: one seamless input/button control. */
.total-assurance-blog-search,
.total-assurance-faq-search {
	border: 0 !important;
	overflow: hidden !important;
}

.total-assurance-blog-search input,
.total-assurance-faq-search input {
	border-right: 0 !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	width: auto !important;
}

.total-assurance-blog-search input {
	border: 1px solid #dfe7e1 !important;
	border-right: 0 !important;
	border-radius: 8px 0 0 8px !important;
}

.total-assurance-faq-search input {
	border-radius: 12px 0 0 12px !important;
}

.total-assurance-blog-search button {
	border-radius: 0 8px 8px 0 !important;
}

.total-assurance-faq-search button {
	flex: 0 0 52px !important;
	margin-left: 0 !important;
}
/* Blog search: match the FAQ control while retaining a shorter width. */
.total-assurance-blog-search {
	background: transparent !important;
	border-radius: 12px !important;
	height: 52px !important;
	max-width: 430px !important;
}

.total-assurance-blog-search input {
	border: 1px solid #dce3ea !important;
	border-right: 0 !important;
	border-radius: 12px 0 0 12px !important;
	font-size: 16px !important;
	height: 100% !important;
}

.total-assurance-blog-search button {
	align-self: stretch !important;
	border-radius: 0 12px 12px 0 !important;
	box-shadow: none !important;
	flex: 0 0 52px !important;
	height: auto !important;
	margin: 0 !important;
	max-height: none !important;
	min-height: 0 !important;
	outline: 0 !important;
	transform: none !important;
	width: 52px !important;
}

.total-assurance-blog-search:focus-within {
	border: 0 !important;
	box-shadow: none !important;
}

.total-assurance-blog-search input:focus {
	border: 1px solid var(--ta-color-primary) !important;
	border-right: 0 !important;
	box-shadow: 0 0 0 2px rgba(37, 141, 21, 0.13) !important;
}

.total-assurance-blog-search button:hover,
.total-assurance-blog-search button:focus-visible {
	background: var(--ta-color-primary-hover) !important;
	box-shadow: none !important;
	outline: 0 !important;
}
/* FAQ hero: cancel the viewport breakout and follow the boxed site shell. */
.total-assurance-site .total-assurance-faq-hero {
	left: auto !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	transform: none !important;
	width: 100% !important;
}
/* FAQ wide layout: match the Home/header content grid exactly. */
@media (min-width: 1024px) {
	body .total-assurance-site .total-assurance-faq-hero > .total-assurance-faq-container.total-assurance-faq-hero__inner {
		box-sizing: border-box !important;
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: var(--ta-container-width) !important;
		padding-left: var(--ta-container-gutter) !important;
		padding-right: var(--ta-container-gutter) !important;
		width: 100% !important;
	}
}
/* Blog and FAQ search: minimal single-field presentation. */
.total-assurance-blog-search,
.total-assurance-faq-search {
	background: transparent !important;
	display: block !important;
	overflow: visible !important;
	position: relative !important;
}

.total-assurance-blog-search input,
.total-assurance-faq-search input {
	background: #fff !important;
	border: 1px solid #dce3ea !important;
	border-radius: 12px !important;
	box-sizing: border-box !important;
	height: 100% !important;
	padding-right: 58px !important;
	width: 100% !important;
}

.total-assurance-blog-search button,
.total-assurance-faq-search button {
	align-items: center !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--ta-color-primary) !important;
	display: flex !important;
	height: 100% !important;
	justify-content: center !important;
	margin: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	position: absolute !important;
	right: 0 !important;
	top: 0 !important;
	transform: none !important;
	width: 52px !important;
}

.total-assurance-blog-search button:hover,
.total-assurance-blog-search button:focus-visible,
.total-assurance-faq-search button:hover,
.total-assurance-faq-search button:focus-visible {
	background: transparent !important;
	box-shadow: none !important;
	color: var(--ta-color-primary-hover) !important;
	outline: 0 !important;
}
/* Blog hero: full-width artwork with copy aligned to the standard boxed grid. */
@media (min-width: 1024px) {
	body .total-assurance-site .total-assurance-blog-hero__inner {
		box-sizing: border-box;
		margin-inline: auto;
		max-width: var(--ta-container-width);
		min-height: inherit;
		padding-inline: var(--ta-container-gutter);
		width: 100%;
	}

	body .total-assurance-site .total-assurance-blog-hero__inner > .total-assurance-blog-hero__content {
		padding-left: 0 !important;
	}
}

/* Service landing pages: allow hero backgrounds to reach ultra-wide viewport edges. */
@media (min-width: 1921px) {
	body:is(
		.page-template-page-mortgage-loan,
		.page-template-page-personal-insurance,
		.page-template-page-business-insurance
	) .total-assurance-site {
		max-width: none !important;
		width: 100% !important;
	}

	body.page-template-page-faq .total-assurance-faq-hero__inner {
		min-height: 820px !important;
	}

}

/* Contact hero: preserve the intended right-side composition on desktop. */
@media (min-width: 1024px) {
	body.page-template-page-contact-us .total-assurance-contact-hero {
		background-position: right center !important;
		background-size: 70% auto !important;
	}
}

/* Contact CTA: align the boxed panel with the site's inner content edges. */
@media (min-width: 768px) and (max-width: 1024px) {
	body.page-template-page-contact-us .total-assurance-contact-cta__inner {
		width: calc(100% - (2 * var(--ta-container-gutter))) !important;
	}
}

@media (min-width: 1025px) {
	body.page-template-page-contact-us .total-assurance-contact-cta__inner {
		max-width: calc(var(--ta-container-width) - (2 * var(--ta-container-gutter))) !important;
	}
}

/* Contact CTA uses one consistent 20px inner inset on every side. */
body.page-template-page-contact-us .total-assurance-contact-cta__inner {
	padding: 20px !important;
}


/* FAQ banner image only: bleed to the viewport's right edge on desktop. */
@media (min-width: 1024px) {
	body .total-assurance-site .total-assurance-faq-hero__visual {
		left: calc((100% - 100vw) / 2) !important;
		right: calc((100% - 100vw) / 2) !important;
	}
}

/* Blog page only: place the banner directly beneath the site header. */
body.page-template-page-blog #main-content,
body.page-template-page-blog .total-assurance-blog-container,
body.blog #main-content,
body.blog .total-assurance-blog-container {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	padding-top: 0 !important;
}

/* Contact office: keep the map level with the blue panel on tablet. */
@media (min-width: 768px) and (max-width: 991px) {
	body.page-template-page-contact-us .total-assurance-contact-office__grid {
		align-items: stretch !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-office__details,
	body.page-template-page-contact-us .total-assurance-contact-office__map {
		height: auto !important;
		min-height: 330px !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-office__map iframe {
		display: block;
		height: 100% !important;
		min-height: 330px !important;
	}
}

/* Blog banner itself: remove all top margin and padding. */
body.page-template-page-blog .total-assurance-blog-hero,
body.blog .total-assurance-blog-hero {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	padding-top: 0 !important;
}

/* Blog header-to-hero flush alignment; retain only the fixed-header offset. */
body:is(.page-template-page-blog, .blog) .total-assurance-site {
	row-gap: 0 !important;
}

body:is(.page-template-page-blog, .blog) :is(
	.site-content,
	.entry-content,
	#main-content,
	.total-assurance-blog-page,
	.total-assurance-blog-container,
	.total-assurance-blog-hero
) {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
	padding-block-start: 0 !important;
	padding-top: 0 !important;
}

/* Statistics: compact outer inset with evenly distributed flex items. */
body.home .total-assurance-site .total-assurance-statistics__container {
	display: flex !important;
	flex-wrap: nowrap;
	padding-left: 20px !important;
	padding-right: 20px !important;
}

body.home .total-assurance-statistics__item {
	flex: 1 1 0;
	gap: 28px;
}

@media (min-width: 601px) and (max-width: 1024px) {
	body.home .total-assurance-site .total-assurance-statistics__container {
		flex-wrap: wrap;
	}

	body.home .total-assurance-statistics__item {
		flex: 0 0 50%;
	}
}

@media (max-width: 600px) {
	body.home .total-assurance-site .total-assurance-statistics__container {
		flex-direction: column;
		flex-wrap: nowrap;
	}

	body.home .total-assurance-statistics__item {
		flex: 0 0 auto;
		width: 100%;
	}
}

/* Blog and FAQ search icons: slightly larger, consistently sized. */
.total-assurance-blog-search button svg,
.total-assurance-faq-search button svg {
	height: 24px !important;
	width: 24px !important;
}


/* Home hero: mobile-only image-backed banner with separate highlights below. */
@media (max-width: 767px) {
	body.home .total-assurance-hero {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96) 0%,
				rgba(255, 255, 255, 0.88) 42%,
				rgba(255, 255, 255, 0.3) 100%
			),
			var(--ta-hero-background) !important;
		background-position: 68% center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
	}

	body.home .total-assurance-hero__container {
		display: block !important;
		min-height: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	body.home .total-assurance-hero__content {
		box-sizing: border-box;
		justify-content: center !important;
		min-height: 760px !important;
		padding: 56px 20px 0 !important;
		position: relative;
		text-align: center;
		width: 100%;
		z-index: 1;
	}

	body.home .total-assurance-hero__eyebrow,
	body.home .total-assurance-hero__title,
	body.home .total-assurance-hero__description {
		margin-left: auto !important;
		margin-right: auto !important;
		text-align: center;
	}

	body.home .total-assurance-hero__visual {
		display: none !important;
	}

	body.home .total-assurance-hero__stats {
		background: #fff;
		box-sizing: border-box;
		margin: 48px -20px 0 !important;
		padding: 30px 20px;
		position: relative;
		width: calc(100% + 40px) !important;
		z-index: 2;
	}

	body.home .total-assurance-hero__stat > p,
	body.home .total-assurance-hero__stat:first-child > p,
	body.home .total-assurance-hero__stat:nth-child(3) > p {
		margin: 0 !important;
	}
}


/* Home hero mobile: transparent, evenly aligned highlights below the image canvas. */
@media (max-width: 767px) {
	body.home .total-assurance-hero {
		background: #fff !important;
	}

	body.home .total-assurance-hero__content {
		isolation: isolate;
	}

	body.home .total-assurance-hero__content::before {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96) 0%,
				rgba(255, 255, 255, 0.88) 42%,
				rgba(255, 255, 255, 0.3) 100%
			),
			var(--ta-hero-background);
		background-position: 68% center;
		background-repeat: no-repeat;
		background-size: cover;
		bottom: 178px;
		content: '';
		inset-inline: 0;
		pointer-events: none;
		position: absolute;
		top: 0;
		z-index: -1;
	}

	body.home .total-assurance-hero__stats {
		align-items: stretch !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		display: grid !important;
		gap: 0 !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		margin: 48px 0 0 !important;
		padding: 30px 0 !important;
		width: 100% !important;
	}

	body.home .total-assurance-hero__stat {
		align-items: center !important;
		box-sizing: border-box;
		display: flex !important;
		flex-direction: column !important;
		gap: 10px !important;
		justify-content: center !important;
		min-width: 0;
		padding: 0 10px;
		position: relative;
		text-align: center;
	}

	body.home .total-assurance-hero__stat > svg {
		flex: 0 0 31px;
		height: 31px !important;
		margin: 0 !important;
		width: 31px !important;
	}

	body.home .total-assurance-hero__stat > p,
	body.home .total-assurance-hero__stat:first-child > p,
	body.home .total-assurance-hero__stat:nth-child(3) > p {
		align-items: center !important;
		margin: 0 !important;
		text-align: center;
	}

	body.home .total-assurance-hero__stat:not(:last-child)::after {
		background: #d9e0dc;
		content: '';
		height: 70%;
		position: absolute;
		right: 0;
		top: 15%;
		width: 1px;
	}
}


/* Home hero mobile: full-bleed banner and compact feature pairs. */
@media (max-width: 767px) {
	body.home .total-assurance-hero {
		left: 50%;
		margin-left: 0 !important;
		margin-right: 0 !important;
		margin-top: 0 !important;
		max-width: none !important;
		padding-top: 0 !important;
		position: relative;
		transform: translateX(-50%);
		width: 100vw !important;
	}

	body.home .total-assurance-hero__container,
	body.home .total-assurance-hero__content {
		margin-left: 0 !important;
		margin-right: 0 !important;
		max-width: none !important;
		width: 100% !important;
	}

	body.home .total-assurance-hero__content::before {
		bottom: 140px;
	}

	body.home .total-assurance-hero__stats {
		align-items: center !important;
		grid-auto-rows: auto !important;
		margin-top: 32px !important;
		padding-bottom: 22px !important;
		padding-top: 22px !important;
	}

	body.home .total-assurance-hero__stat {
		align-self: center !important;
		gap: 4px !important;
		height: auto !important;
		justify-content: center !important;
		min-height: 0 !important;
	}

	body.home .total-assurance-hero__stat > svg {
		align-self: center !important;
	}

	body.home .total-assurance-hero__stat > p {
		align-self: center !important;
	}
}


/* Home hero mobile: true edge-to-edge artwork on the section canvas. */
@media (max-width: 767px) {
	body.home:has(.total-assurance-header) .total-assurance-site {
		padding-top: 0 !important;
	}

	body.home .total-assurance-site #main-content > .total-assurance-hero {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96) 0%,
				rgba(255, 255, 255, 0.88) 42%,
				rgba(255, 255, 255, 0.3) 100%
			),
			var(--ta-hero-background) !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		border-radius: 0 !important;
		left: 50% !important;
		margin: 0 !important;
		max-width: none !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
	}

	body.home .total-assurance-site #main-content > .total-assurance-hero > .total-assurance-hero__container {
		box-sizing: border-box !important;
		margin: 0 auto !important;
		max-width: 100% !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
		width: 100% !important;
	}

	body.home .total-assurance-hero__content {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	body.home .total-assurance-hero__content::before {
		content: none !important;
		display: none !important;
	}
}
/* Home mobile highlights: equal columns with tightly paired icon and copy. */
@media (max-width: 767px) {
	body.home .total-assurance-hero__stats {
		align-items: stretch !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	body.home .total-assurance-hero__stat {
		align-items: center !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 0 !important;
		height: 100% !important;
		justify-content: flex-start !important;
		padding: 4px 8px !important;
	}

	body.home .total-assurance-hero__stat > svg {
		flex: 0 0 31px !important;
		height: 31px !important;
		margin: 0 !important;
		position: static !important;
		transform: none !important;
		width: 31px !important;
	}

	body.home .total-assurance-hero__stat > p,
	body.home .total-assurance-hero__stat:first-child > p,
	body.home .total-assurance-hero__stat:nth-child(3) > p {
		align-items: center !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 5px !important;
		margin: -40px 0 0 !important;
		position: static !important;
		text-align: center !important;
		transform: none !important;
	}

	body.home .total-assurance-hero__stat:not(:last-child)::after {
		content: none !important;
		display: none !important;
	}

	body.home .total-assurance-hero__stat:nth-child(3) > p {
		margin-top: -50px !important;
	}
}
/* Home mobile: restore the existing desktop checklist below the hero banner. */
@media (max-width: 767px) {
	body.home .total-assurance-site #main-content > .total-assurance-hero {
		padding-bottom: 24px !important;
	}

	body.home .total-assurance-hero__visual {
		background: none !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		display: contents !important;
		margin: 0 !important;
		min-height: 0 !important;
		padding: 0 !important;
		position: static !important;
	}

	body.home .total-assurance-hero__feature-card {
		background: #fff !important;
		border-radius: 22px !important;
		bottom: auto !important;
		box-shadow: none !important;
		box-sizing: border-box !important;
		left: auto !important;
		margin: -45px auto 0 !important;
		max-width: 320px !important;
		padding: 22px 18px !important;
		position: static !important;
		right: auto !important;
		top: auto !important;
		transform: none !important;
		width: calc(100% - 32px) !important;
	}

	body.home .total-assurance-hero__feature-card ul {
		gap: 18px !important;
		grid-template-columns: 1fr !important;
		justify-content: center !important;
	}

	body.home .total-assurance-hero__feature-card li {
		align-items: center !important;
	}
}
/* Home hero: compact heading-to-paragraph gap at the exact 768px breakpoint. */
@media (min-width: 768px) and (max-width: 768px) {
	body.home .total-assurance-hero__description {
		margin-top: -8px !important;
	}
}
/* About hero mobile: match the Home hero's edge-to-edge background treatment. */
@media (max-width: 767px) {
	body.page-template-page-about-us:has(.total-assurance-header) .total-assurance-site {
		padding-top: 0 !important;
	}

	body.page-template-page-about-us #main-content {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.page-template-page-about-us .total-assurance-site #main-content > .total-assurance-about-page__banner {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96) 0%,
				rgba(255, 255, 255, 0.88) 42%,
				rgba(255, 255, 255, 0.3) 100%
			),
			url('../images/aboutus-ta.webp') !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		border-radius: 0 !important;
		left: 50% !important;
		margin: 0 !important;
		max-width: none !important;
		min-height: max(640px, calc(100svh - var(--ta-header-height))) !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner::before {
		content: none !important;
		display: none !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-grid {
		align-items: center !important;
		box-sizing: border-box !important;
		display: flex !important;
		margin: 0 auto !important;
		max-width: 100% !important;
		min-height: max(640px, calc(100svh - var(--ta-header-height))) !important;
		padding: 32px 20px 40px !important;
		width: 100% !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-content {
		max-width: none !important;
		padding: 0 !important;
		width: 100% !important;
	}
}

/* Home hero: full-width overlay from the true left edge on tablet and mobile. */
@media (max-width: 991px) {
	body.home .total-assurance-hero {
		isolation: isolate;
		position: relative !important;
	}

	body.home .total-assurance-hero::before {
		background: linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.96) 0%,
			rgba(255, 255, 255, 0.88) 44%,
			rgba(255, 255, 255, 0) 100%
		);
		content: '';
		inset: 0;
		pointer-events: none;
		position: absolute;
		z-index: 0;
	}

	body.home .total-assurance-hero__container {
		position: relative !important;
		z-index: 1;
	}

	body.home .total-assurance-hero__content {
		background: transparent !important;
	}
}

@media (max-width: 767px) {
	body.home .total-assurance-site #main-content > .total-assurance-hero {
		background-image: var(--ta-hero-background) !important;
	}
}
/* Team hero mobile: match the Home and About edge-to-edge background treatment. */
@media (max-width: 767px) {
	body.page-template-page-our-team:has(.total-assurance-header) .total-assurance-site {
		padding-top: 0 !important;
	}

	body.page-template-page-our-team #main-content {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.page-template-page-our-team .total-assurance-site #main-content > .total-assurance-team-banner {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96) 0%,
				rgba(255, 255, 255, 0.88) 42%,
				rgba(255, 255, 255, 0.3) 100%
			),
			url('../images/team-banner.webp') !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		border-radius: 0 !important;
		left: 50% !important;
		margin: 0 !important;
		max-width: none !important;
		min-height: max(600px, calc(100svh - var(--ta-header-height))) !important;
		overflow: hidden !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__container {
		align-items: center !important;
		box-sizing: border-box !important;
		display: flex !important;
		gap: 0 !important;
		margin: 0 auto !important;
		max-width: 100% !important;
		min-height: max(600px, calc(100svh - var(--ta-header-height))) !important;
		padding: 40px 20px 48px !important;
		width: 100% !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__content {
		max-width: none !important;
		position: relative !important;
		width: 100% !important;
		z-index: 1 !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__image {
		display: none !important;
	}
}

/* Team mobile hero: add top breathing room and favor the artwork on the right. */
@media (max-width: 767px) {
	body.page-template-page-our-team .total-assurance-site #main-content > .total-assurance-team-banner {
		background-position: right center !important;
	}

	body.page-template-page-our-team .total-assurance-team-banner__container {
		padding-top: 120px !important;
	}
}

/* Home hero: minimal spacing balance at the tablet breakpoint only. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero,
	body.home .total-assurance-hero__container,
	body.home .total-assurance-hero__visual {
		min-height: 575px !important;
	}

	body.home .total-assurance-hero__eyebrow {
		margin-bottom: 3px !important;
	}

	body.home .total-assurance-hero__description {
		margin-top: 0 !important;
	}

	body.home .total-assurance-hero__actions {
		margin-top: 6px !important;
	}

	body.home .total-assurance-hero__stats {
		margin-top: 14px !important;
	}

	body.home .total-assurance-hero__content {
		padding-bottom: 38px !important;
		padding-top: 38px !important;
	}
}

/* Blog hero mobile: match the Home, About, Mortgage, and Team banner treatment. */
@media (max-width: 767px) {
	body:is(.page-template-page-blog, .blog):has(.total-assurance-header) .total-assurance-site {
		padding-top: 0 !important;
	}

	body:is(.page-template-page-blog, .blog) #main-content,
	body:is(.page-template-page-blog, .blog) .total-assurance-blog-page,
	body:is(.page-template-page-blog, .blog) .total-assurance-blog-container {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	body:is(.page-template-page-blog, .blog) .total-assurance-blog-container > .total-assurance-blog-hero {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96) 0%,
				rgba(255, 255, 255, 0.88) 42%,
				rgba(255, 255, 255, 0.3) 100%
			),
			url('../images/blog-banner.webp') !important;
		background-position: 72% center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		border-radius: 0 !important;
		left: 50% !important;
		margin: 0 !important;
		max-width: none !important;
		min-height: max(700px, calc(100svh - var(--ta-header-height))) !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
	}

	body:is(.page-template-page-blog, .blog) .total-assurance-blog-hero__inner {
		align-items: center !important;
		box-sizing: border-box !important;
		display: flex !important;
		margin: 0 auto !important;
		max-width: 100% !important;
		min-height: max(700px, calc(100svh - var(--ta-header-height))) !important;
		padding: 0 !important;
		width: 100% !important;
	}

	body:is(.page-template-page-blog, .blog) .total-assurance-blog-hero__content {
		max-width: none !important;
		padding: 0 20px 52px !important;
		position: relative !important;
		transform: translateY(-55px) !important;
		width: 100% !important;
		z-index: 1 !important;
	}
}

/* FAQ hero mobile: match the established edge-to-edge background treatment. */
@media (max-width: 767px) {
	body.page-template-page-faq:has(.total-assurance-header) .total-assurance-site {
		padding-top: 0 !important;
	}

	body.page-template-page-faq #main-content {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.page-template-page-faq .total-assurance-site #main-content > .total-assurance-faq-hero {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96) 0%,
				rgba(255, 255, 255, 0.88) 42%,
				rgba(255, 255, 255, 0.3) 100%
			),
			url('../images/faq-banner.webp?ver=20260810') !important;
		background-position: right center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		border-radius: 0 !important;
		left: 50% !important;
		margin: 0 !important;
		max-width: none !important;
		min-height: max(650px, calc(100svh - var(--ta-header-height))) !important;
		overflow: hidden !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
	}

	body.page-template-page-faq .total-assurance-faq-hero::before {
		content: none !important;
		display: none !important;
	}

	body.page-template-page-faq .total-assurance-faq-hero__inner {
		align-items: center !important;
		box-sizing: border-box !important;
		display: flex !important;
		margin: 0 auto !important;
		max-width: 100% !important;
		min-height: max(650px, calc(100svh - var(--ta-header-height))) !important;
		padding: 48px 20px 52px !important;
		width: 100% !important;
	}

	body.page-template-page-faq .total-assurance-faq-hero__content {
		margin: 0 !important;
		max-width: none !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateY(-70px) !important;
		width: 100% !important;
		z-index: 1 !important;
	}

	body.page-template-page-faq .total-assurance-faq-hero__visual {
		display: none !important;
	}
}

/* FAQ mobile hero: center the existing content stack. */
@media (max-width: 767px) {
	body.page-template-page-faq .total-assurance-faq-hero__content {
		align-items: center !important;
		display: flex !important;
		flex-direction: column !important;
		text-align: center !important;
	}

	body.page-template-page-faq .total-assurance-faq-hero__line {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	body.page-template-page-faq .total-assurance-faq-hero__description {
		margin-left: auto !important;
		margin-right: auto !important;
		text-align: center !important;
	}
}

/* FAQ mobile: keep the existing search section clearly below the hero. */
@media (max-width: 767px) {
	body.page-template-page-faq .total-assurance-faq-browser {
		background: #fff !important;
		margin-top: -50px !important;
		padding-top: 0 !important;
		position: relative !important;
	}

	body.page-template-page-faq .total-assurance-faq-browser > .total-assurance-faq-container {
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* Contact hero mobile: match the established edge-to-edge background treatment. */
@media (max-width: 767px) {
	body.page-template-page-contact-us:has(.total-assurance-header) .total-assurance-site {
		padding-top: 0 !important;
	}

	body.page-template-page-contact-us #main-content {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.page-template-page-contact-us .total-assurance-site #main-content > .total-assurance-contact-hero {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96) 0%,
				rgba(255, 255, 255, 0.88) 42%,
				rgba(255, 255, 255, 0.3) 100%
			),
			url('../images/contact-banner.webp') !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		border-radius: 0 !important;
		left: 50% !important;
		margin: 0 !important;
		max-width: none !important;
		min-height: max(700px, calc(100svh - var(--ta-header-height))) !important;
		overflow: hidden !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__grid {
		align-items: center !important;
		box-sizing: border-box !important;
		display: flex !important;
		margin: 0 auto !important;
		max-width: 100% !important;
		min-height: max(700px, calc(100svh - var(--ta-header-height))) !important;
		padding: 48px 20px 52px !important;
		width: 100% !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__content {
		align-items: center !important;
		display: flex !important;
		flex-direction: column !important;
		margin: 0 !important;
		max-width: none !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateY(-90px) !important;
		text-align: center !important;
		width: 100% !important;
		z-index: 1 !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__underline {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__content > p:not(.total-assurance-contact-label) {
		margin-left: auto !important;
		margin-right: auto !important;
		text-align: center !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__stats {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__visual {
		display: none !important;
	}
}

/* FAQ search placement at the exact 768px tablet breakpoint. */
@media (min-width: 768px) and (max-width: 768px) {
	body.page-template-page-faq .total-assurance-faq-hero__content {
		transform: translateY(-50px) !important;
	}

	body.page-template-page-faq .total-assurance-faq-browser {
		margin-top: -150px !important;
	}

	body.page-template-page-faq .total-assurance-faq-cta__actions a {
		gap: 8px !important;
	}
}

/* Contact hero: Home-style treatment at the exact 768px tablet breakpoint. */
@media (min-width: 768px) and (max-width: 768px) {
	body.page-template-page-contact-us #main-content {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.page-template-page-contact-us .total-assurance-site #main-content > .total-assurance-contact-hero {
		background-image:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.94) 0%,
				rgba(255, 255, 255, 0.82) 48%,
				rgba(255, 255, 255, 0.16) 100%
			),
			url('../images/contact-banner.webp') !important;
		background-position: center center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		border-radius: 0 !important;
		left: 50% !important;
		margin: 0 !important;
		max-width: none !important;
		min-height: 650px !important;
		overflow: hidden !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__grid {
		align-items: center !important;
		box-sizing: border-box !important;
		display: flex !important;
		margin: 0 auto !important;
		max-width: var(--ta-container-width) !important;
		min-height: 650px !important;
		padding: 52px 40px 56px !important;
		width: 100% !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__content {
		max-width: 580px !important;
		padding: 0 !important;
		position: relative !important;
		transform: translateY(-40px) !important;
		width: 58% !important;
		z-index: 1 !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-hero__visual {
		display: none !important;
	}
}

/* Personal and Business Insurance: mobile full-banner hero treatment */
@media (max-width: 767px) {
  body:is(.page-template-page-mortgage-loan, .page-template-page-personal-insurance, .page-template-page-business-insurance):has(.total-assurance-header) .total-assurance-site {
    padding-top: 0 !important;
  }

  body:is(.page-template-page-mortgage-loan, .page-template-page-personal-insurance, .page-template-page-business-insurance) .total-assurance-service-detail__hero-content {
    transform: translateY(50px);
  }

  body:is(.page-template-page-personal-insurance, .page-template-page-business-insurance) .total-assurance-service-detail {
    margin: 0 !important;
    padding: 0 !important;
  }

  body.page-template-page-personal-insurance .total-assurance-service-detail__hero--full-banner {
    background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.88) 45%, rgba(255, 255, 255, 0.30) 100%), url('../images/services/personal-insurance-banner-2026-v6.webp?ver=20260810-6');
  }

  body.page-template-page-business-insurance .total-assurance-service-detail__hero--full-banner {
    background-image: linear-gradient(rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.82)), url('../images/services/business-insurance-banner-2026-v3.webp?ver=20260810-3');
  }

  body:is(.page-template-page-personal-insurance, .page-template-page-business-insurance) .total-assurance-service-detail__hero--full-banner {
    background-position: right center;
    background-repeat: no-repeat;
    background-size: cover;
    height: auto !important;
    left: 50%;
    margin: 0 !important;
    max-height: none !important;
    min-height: 700px !important;
    padding: 0 !important;
    position: relative;
    transform: translateX(-50%);
    width: 100vw;
  }

  body:is(.page-template-page-personal-insurance, .page-template-page-business-insurance) .total-assurance-service-detail__hero-grid {
    align-items: center;
    display: flex;
    justify-content: center;
    margin: 0 !important;
    max-width: none !important;
    min-height: 700px;
    padding: 48px 20px 52px !important;
    position: relative;
    width: 100%;
    z-index: 1;
  }

  body:is(.page-template-page-personal-insurance, .page-template-page-business-insurance) .total-assurance-service-detail__hero-content {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    max-width: 100%;
    text-align: center;
    width: 100%;
  }

  body:is(.page-template-page-personal-insurance, .page-template-page-business-insurance) .total-assurance-service-detail__hero-background {
    display: none !important;
  }
}

/* About hero: Team-style composition at the exact 768px tablet breakpoint. */
@media (min-width: 768px) and (max-width: 768px) {
	body.page-template-page-about-us .total-assurance-about-page__banner {
		background-image: url('../images/aboutus-ta.webp') !important;
		background-position: right center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		min-height: 560px !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-grid {
		align-items: stretch !important;
		display: flex !important;
		flex-direction: row !important;
		gap: 0 !important;
		min-height: 560px !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-content {
		align-items: flex-start !important;
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.82) 72%, rgba(255, 255, 255, 0) 100%);
		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		margin: 0 !important;
		max-width: 58% !important;
		padding: 48px 72px 48px 0 !important;
		text-align: left !important;
		transform: none !important;
		width: 58% !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__eyebrow,
	body.page-template-page-about-us .total-assurance-about-page__banner h1,
	body.page-template-page-about-us .total-assurance-about-page__banner-description {
		margin-left: 0 !important;
		margin-right: 0 !important;
		text-align: left !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner h1 {
		max-width: 390px !important;
		width: 390px !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-stats {
		box-sizing: border-box !important;
		column-gap: 100px !important;
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		margin-top: 0 !important;
		max-width: 440px !important;
		padding-left: 32px !important;
		width: 100% !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-stats > div {
		align-items: center !important;
		gap: 0 !important;
		justify-self: center !important;
		text-align: center !important;
		width: 72px !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-stats > div p {
		text-align: center !important;
		width: 100% !important;
	}
	body.page-template-page-about-us .total-assurance-about-page__banner-stats > div:not(:last-child)::before {
		content: none !important;
		display: none !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-stats p {
		margin-top: 8px !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-stats svg {
		align-self: center !important;
		display: block !important;
		flex: 0 0 24px !important;
		height: 24px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		max-height: 24px !important;
		max-width: 24px !important;
		min-height: 24px !important;
		min-width: 24px !important;
		opacity: 1 !important;
		transform: none !important;
		visibility: visible !important;
		width: 24px !important;
	}
	body.page-template-page-about-us .total-assurance-about-page__banner-actions {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		justify-content: flex-start !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-actions .total-assurance-about-page__button {
		flex: 0 0 auto !important;
		width: auto !important;
	}
}
/* Complaint page full-bleed banner override. */
body.page-template-page-complaint .total-assurance-site {
	max-width: none !important;
}

body.page-template-page-complaint .total-assurance-site #main-content,
body.page-template-page-complaint .total-assurance-site #main-content > .total-assurance-complaint-hero,
body.page-template-page-complaint .total-assurance-complaint-container {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	width: 100% !important;
}

body.page-template-page-complaint .total-assurance-complaint-hero__card,
body.page-template-page-complaint .total-assurance-complaint-hero__card > img {
	border-radius: 0 !important;
}
/* Complaint mobile: full-bleed image background behind the existing hero copy. */
@media (max-width: 767px) {
	body.page-template-page-complaint:has(.total-assurance-header) .total-assurance-site {
		padding-top: 0 !important;
	}

	body.page-template-page-complaint .total-assurance-site #main-content,
	body.page-template-page-complaint .total-assurance-complaint-hero,
	body.page-template-page-complaint .total-assurance-complaint-container {
		margin: 0 !important;
		max-width: none !important;
		padding: 0 !important;
		width: 100% !important;
	}

	body.page-template-page-complaint .total-assurance-complaint-hero {
		left: 50% !important;
		position: relative !important;
		transform: translateX(-50%) !important;
		width: 100vw !important;
	}

	body.page-template-page-complaint .total-assurance-complaint-hero__card {
		background-image:
			linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.88) 48%, rgba(255, 255, 255, 0.12) 100%),
			url('../images/complaint-banner-new.webp') !important;
		background-position: 66% center !important;
		background-repeat: no-repeat !important;
		background-size: cover !important;
		border: 0 !important;
		margin: 0 !important;
		width: 100% !important;
	}

	body.page-template-page-complaint .total-assurance-complaint-hero__card::after {
		background-color: rgba(255, 255, 255, .77) !important;
		background-image: none !important;
		content: '' !important;
		display: block !important;
		inset: 0 !important;
		position: absolute !important;
	}

	body.page-template-page-complaint .total-assurance-complaint-hero__card > img {
		display: none !important;
	}
}
/* Mortgage calculator: contain repayment values of any length. */
body.home .total-assurance-calculator__result {
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr) !important;
}
body.home .total-assurance-calculator__result > p,
body.home .total-assurance-calculator__amount,
body.home .total-assurance-calculator__amount strong,
body.home .total-assurance-calculator__disclaimer {
	max-width: 100% !important;
	min-width: 0 !important;
}
body.home .total-assurance-calculator__amount {
	align-items: flex-start !important;
	flex-direction: column !important;
	gap: 5px !important;
	width: 100%;
}
body.home .total-assurance-calculator__amount strong {
	display: block;
	font-size: clamp(20px, 2.7vw, 39px);
	line-height: 1.05;
	overflow-wrap: anywhere;
	word-break: break-word;
	width: 100%;
}
body.home .total-assurance-calculator__amount span {
	display: block;
}
body.home .total-assurance-calculator__disclaimer {
	transform: none !important;
}
@media (max-width: 960px) {
	body.home .total-assurance-calculator__result {
		align-items: stretch !important;
		display: flex !important;
		flex-direction: column !important;
	}
	body.home .total-assurance-calculator__disclaimer {
		margin-top: 20px !important;
	}
}
/* Home calculator: preserve equal iPhone side gutters. */
@media (max-width: 575px) {
	body.home .total-assurance-calculator {
		box-sizing: border-box !important;
		overflow-x: clip;
		padding-left: 5px !important;
		padding-right: 5px !important;
		width: 100% !important;
	}

	body.home .total-assurance-calculator__container {
		box-sizing: border-box !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		max-width: 100% !important;
		min-width: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: 100% !important;
	}

	body.home .total-assurance-calculator__workspace,
	body.home .total-assurance-calculator__form-panel,
	body.home .total-assurance-calculator__form,
	body.home .total-assurance-calculator__result,
	body.home .total-assurance-calculator__visual {
		box-sizing: border-box !important;
		max-width: 100% !important;
		min-width: 0 !important;
		width: 100% !important;
	}
}
/* Home statistics: fixed tablet 2x2 alignment from 768px through 1024px. */
@media (min-width: 768px) and (max-width: 1024px) {
	body.home .total-assurance-site .total-assurance-statistics__container {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
	}

	body.home .total-assurance-statistics__item {
		align-items: center !important;
		display: grid !important;
		flex: none !important;
		gap: 14px !important;
		grid-template-columns: 44px minmax(0, 1fr) !important;
		justify-content: stretch !important;
		margin: 0 !important;
		transform: none !important;
		width: 100% !important;
	}

	body.home .total-assurance-statistics__icon {
		grid-column: 1 !important;
		height: 44px !important;
		justify-self: center !important;
		margin: 0 !important;
		transform: none !important;
		width: 44px !important;
	}

	body.home .total-assurance-statistics__item > div {
		align-items: flex-start !important;
		grid-column: 2 !important;
		margin: 0 !important;
		min-width: 0 !important;
		text-align: left !important;
		transform: none !important;
	}
}

/* Contact hero: stack statistics vertically across the 1024px laptop range. */
@media (min-width: 821px) and (max-width: 1024px) {
	body.page-template-page-contact-us .total-assurance-contact-hero__stats {
		align-items: flex-start !important;
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		gap: 14px !important;
	}
}




/* Contact benefits: stack all three statistics at laptop widths. */
@media (min-width: 821px) and (max-width: 1024px) {
	body.page-template-page-contact-us .total-assurance-contact-benefits__stats {
		display: grid !important;
		gap: 12px !important;
		grid-template-columns: minmax(0, 1fr) !important;
		text-align: center !important;
	}

	body.page-template-page-contact-us .total-assurance-contact-benefits__stats > div {
		border-right: 0 !important;
		width: 100% !important;
	}
}


/* FAQ CTA: keep the Contact Us arrow directly beside its label. */
body.page-template-page-faq .total-assurance-faq-cta__actions .ta-button--secondary {
	gap: 8px !important;
	justify-content: center !important;
}


/* Home service showcase: ensure every image fully covers its fixed media area. */
body.home .total-assurance-service-showcase__image-wrap img {
	display: block !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	width: 100% !important;
}


/* Home Latest Articles: grow images into unused card space without changing card height. */
@media (min-width: 1025px) {
	body.home .total-assurance-article-card__image {
		flex: 1 1 auto;
		margin-top: 0 !important;
		min-height: 200px;
	}

	body.home .total-assurance-article-card__image img {
		height: 100% !important;
		min-height: 200px;
	}
}


/* About hero: keep the description clear of the artwork at 1024px. */
.total-assurance-about-page__banner-description-break {
	display: none;
}

@media (min-width: 1024px) and (max-width: 1024px) {
	body.page-template-page-about-us .total-assurance-about-page__banner-description {
		max-width: 390px !important;
		width: 390px !important;
	}

	body.page-template-page-about-us .total-assurance-about-page__banner-description-break {
		display: block;
	}
}


/* About page: requested Vision/Mission and Providers label size. */
body.page-template-page-about-us :is(#total-assurance-purpose-title, #total-assurance-about-providers-title) {
	font-size: 17px !important;
}


/* Banner credential cards: match bold values to the 17px supporting labels. */
:is(
	.total-assurance-hero__stats,
	.total-assurance-about-page__banner-stats,
	.total-assurance-service-detail__trust-indicators
) strong {
	font-size: 17px !important;
}


/* Banner credential cards: compact type on tablet and mobile. */
@media (max-width: 768px) {
	:is(
		.total-assurance-hero__stats,
		.total-assurance-about-page__banner-stats,
		.total-assurance-service-detail__trust-indicators
	) :is(p, strong, span) {
		font-size: 15px !important;
	}
}


/* Team roster: add vertical breathing room around the image-card carousel. */
body.page-template-page-our-team .total-assurance-team-roster__slider {
	padding-bottom: 20px;
	padding-top: 20px;
}


/* Team roster cards: end naturally after the designation. */
body.page-template-page-our-team .total-assurance-team-roster__track {
	align-items: flex-start;
}

body.page-template-page-our-team .total-assurance-team-roster__card {
	height: auto !important;
	min-height: 0 !important;
	padding-bottom: 12px;
}

body.page-template-page-our-team .total-assurance-team-roster__card-main {
	flex: 0 0 auto;
}

body.page-template-page-our-team .total-assurance-team-roster__socials {
	margin-top: 12px;
	padding-top: 0;
}


/* Team roster card portrait-to-name spacing. */
body.page-template-page-our-team .total-assurance-team-roster__card h4 {
	font-size: 17px !important;
	line-height: 1.25;
	margin: 16px 0 2px !important;
}

/* Standardize action-button label typography across the public site. */
body a[class*="button"],
body a[class*="btn"],
body .total-assurance-header__appointment,
body [class*="__actions"] a,
body [class*="-cta"] a,
body form button,
body input[type="submit"],
body input[type="button"],
body input[type="reset"] {
	font-size: 14px !important;
}

/* Standardize the small uppercase eyebrow heading used in page banners. */
.total-assurance-hero__eyebrow,
.total-assurance-about-page__banner .total-assurance-about-page__eyebrow,
.total-assurance-team-banner__eyebrow,
.total-assurance-contact-hero .total-assurance-contact-label,
.total-assurance-faq-hero .total-assurance-faq-label,
.total-assurance-blog-hero .total-assurance-blog-label,
.total-assurance-service-detail__hero .total-assurance-service-detail__eyebrow {
	font-size: 17px !important;
}


/* Team roster: keep the raised hover border visible inside the clipped carousel. */
body.page-template-page-our-team .total-assurance-team-roster__viewport {
	box-sizing: border-box;
	margin-top: -6px;
	padding-top: 6px;
}



/* Team roster cards: no shadow on hover or keyboard focus. */
body.page-template-page-our-team .total-assurance-team-roster__card:hover,
body.page-template-page-our-team .total-assurance-team-roster__card:focus-within {
	box-shadow: none !important;
}



/* Team roster cards: remove the default shadow as well. */
body.page-template-page-our-team .total-assurance-team-roster__card {
	box-shadow: none !important;
}



/* Team founder: display the supplied finished portrait artwork without legacy overlays. */
body.page-template-page-our-team .total-assurance-team-founder__portrait-frame {
	background: transparent;
	border-radius: 0;
}
body.page-template-page-our-team .total-assurance-team-founder__portrait-frame::before,
body.page-template-page-our-team .total-assurance-team-founder__experience {
	display: none !important;
}
body.page-template-page-our-team .total-assurance-team-founder__portrait img {
	height: 100% !important;
	max-height: 100%;
	object-fit: contain;
	transform: none !important;
	width: 100%;
}



/* Team founder: square responsive portrait composition matching the supplied reference. */
body.page-template-page-our-team .total-assurance-team-founder__portrait {
	align-self: center;
	aspect-ratio: 1 / 1;
	max-width: 430px;
	min-height: 0 !important;
	width: 100%;
}
body.page-template-page-our-team .total-assurance-team-founder__portrait-frame {
	height: 100%;
	width: 100%;
}
body.page-template-page-our-team .total-assurance-team-founder__portrait img {
	height: 100% !important;
	object-fit: cover;
	object-position: center;
	width: 100%;
}



/* Team founder: clean full portrait without embedded badge artwork. */
body.page-template-page-our-team .total-assurance-team-founder__portrait {
	max-width: 550px;
}
body.page-template-page-our-team .total-assurance-team-founder__portrait-frame {
	background: linear-gradient(135deg, rgba(31, 143, 20, 0.18), rgba(124, 188, 65, 0.08));
}
body.page-template-page-our-team .total-assurance-team-founder__portrait img {
	object-fit: contain;
	object-position: center bottom;
}

/* Keep the visible FAQ question and answer text at an exact 17px. */
body.page-template-page-faq .total-assurance-faq-item h3 button > span:not(.total-assurance-faq-item__icon),
body.page-template-page-faq .total-assurance-faq-item__panel p {
	font-size: 17px !important;
}


/* Team founder: reference-style badge, soft background, and dot detail. */
body.page-template-page-our-team .total-assurance-team-founder__portrait-frame {
	background: linear-gradient(135deg, #f9fbf7 0%, #f1f6ed 100%);
	border-radius: 10px;
}
body.page-template-page-our-team .total-assurance-team-founder__portrait-frame::before {
	background-image: radial-gradient(circle, rgba(31, 143, 20, 0.24) 2px, transparent 2.5px);
	background-size: 14px 14px;
	border: 0;
	border-radius: 0;
	content: '';
	display: block !important;
	height: 90px;
	inset: 24px 22px auto auto;
	position: absolute;
	width: 56px;
	z-index: 0;
}
body.page-template-page-our-team .total-assurance-team-founder__experience {
	align-items: center;
	background: var(--ta-color-navy);
	border-radius: 8px;
	bottom: -10px;
	box-shadow: none;
	display: flex !important;
	flex-direction: column;
	height: auto;
	justify-content: center;
	left: 18px;
	min-width: 118px;
	padding: 12px 16px;
	top: auto;
	width: auto;
}
body.page-template-page-our-team .total-assurance-team-founder__experience strong {
	color: var(--ta-color-primary);
	font-size: 22px;
	line-height: 1;
}
body.page-template-page-our-team .total-assurance-team-founder__experience span {
	color: #fff;
	font-size: 10px;
	line-height: 1.25;
	margin-top: 5px;
	max-width: 65px;
}



/* Team roster card designations: 15px on one line. */
body.page-template-page-our-team .total-assurance-team-roster__card-main > p {
	font-size: 15px !important;
	white-space: nowrap;
}



/* Laptop 1024px: banner feature-card text at 15px site-wide. */
@media (min-width: 992px) and (max-width: 1024px) {
	:is(
		.total-assurance-hero__stats,
		.total-assurance-about-page__banner-stats,
		.total-assurance-service-detail__trust-indicators
	) :is(p, strong, span) {
		font-size: 15px !important;
	}
}



/* Team roster at 1024px: keep long designations visible on one line. */
@media (min-width: 992px) and (max-width: 1024px) {
	body.page-template-page-our-team .total-assurance-team-roster__card-main > p {
		font-size: 11px !important;
		letter-spacing: -0.15px;
		white-space: nowrap;
	}
}


/* Home mobile: match the first hero highlight's icon-to-text spacing. */
@media (max-width: 767px) {
	body.home .total-assurance-hero__stat:first-child > p {
		margin-top: -33px !important;
	}
}
/* Standard desktop page-banner heading size. */
@media (min-width: 1200px) {
	:is(
		.total-assurance-hero__title,
		.total-assurance-about-page__banner h1,
		.total-assurance-team-banner h1,
		.total-assurance-contact-hero h1,
		.total-assurance-blog-hero h1,
		.total-assurance-faq-hero h1,
		.total-assurance-service-detail__hero h1,
		.total-assurance-complaint-hero h1
	) {
		font-size: 57px !important;
	}
}


/* Home banner: description-to-actions gap. */
body.home .total-assurance-hero__actions {
	margin-top: 30px !important;
}


/* Home desktop/laptop: actions-to-featured-cards gap. */
@media (min-width: 992px) {
	body.home .total-assurance-hero__stats {
		margin-top: 30px !important;
	}
}


/* Home tablet: heading-to-description gap. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero__description {
		margin-top: -15px !important;
	}
}


/* Home tablet: actions-to-featured-cards gap. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero__stats {
		margin-top: 5px !important;
	}
}

/* Home non-tablet hero: approved two-line heading flow. */
@media (max-width: 767px), (min-width: 992px) {
	body.home .total-assurance-hero__title > span {
		display: inline !important;
		white-space: normal !important;
	}

	body.home .total-assurance-hero__tablet-break {
		display: block !important;
	}

	body.home .total-assurance-hero__tablet-break--inline,
	body.home .total-assurance-hero__title > br:nth-of-type(2) {
		display: none !important;
	}
}

/* Home non-tablet banner content top padding. */
@media (max-width: 767px), (min-width: 992px) {
	body.home .total-assurance-hero__content {
		padding-top: 10px !important;
	}
}

/* Home tablet: description-to-actions gap. */
@media (min-width: 768px) and (max-width: 991px) {
	body.home .total-assurance-hero__actions {
		margin-top: 15px !important;
	}
}
/* Home mobile: actions-to-featured-cards gap. */
@media (max-width: 767px) {
	body.home .total-assurance-hero__stats {
		margin-top: 10px !important;
	}
}