/**
 * Front page — sections migrated from heritagebuildersnj.com snapshot.
 * Typography sizes/families traced from Duda export (site/home2.mhtml), matching the live site.
 * Also loaded on page-about.php for the shared Why Choose / Testimonials / Contact Strip parts.
 *
 * @package Heritage
 */

/* --- About page sections --- */

/* Dark grey band behind the hero (matches homepage treatment) */
.site-main--about {
	position: relative;
	isolation: isolate;
}

.site-main--about::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 430px;
	background: #262626;
	z-index: 0;
}

@media (max-width: 768px) {
	.site-main--about::before {
		height: 320px;
	}
}

/* Keep sections after hero above the dark band */
.site-main--about > .section {
	position: relative;
	z-index: 1;
}

/* Vertical connector line at the top of each section (same pattern as home) */
.site-main--about > .section::before {
	content: "";
	position: absolute;
	top: -40px;
	left: 50%;
	transform: translateX(-50%);
	width: 1px;
	height: 80px;
	background: #999;
	z-index: 3;
	pointer-events: none;
}

/* Skip the connector on the dedicated band and on the section right after it (matches home's quality treatment) */
.site-main--about .section--dedicated::before,
.site-main--about .section--meet-shawn::before,
.site-main--about .section--dedicated + .section::before {
	display: none;
}

.about-hero {
	position: relative;
	z-index: 1;
	min-height: 500px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	text-align: center;
	overflow: hidden;
	max-width: 75rem;
	margin: 0 auto;
	isolation: isolate;
}

.about-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: 50% 50%;
	z-index: 0;
}

.about-hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 1;
}

.about-hero__content {
	position: relative;
	z-index: 2;
	padding: 5rem 1.25rem;
}

.about-hero__title {
	margin: 0;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	color: #fff;
	text-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}

@media (min-width: 768px) {
	.about-hero__title {
		font-size: 4.5rem;
	}
}

.section--intro-narrow {
	padding: 4rem 0 2rem;
	background: #fff;
	text-align: center;
}

.section__narrow--wide {
	max-width: 60rem;
}

/* Certification logos row below intro */
.trust-logos {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1.5rem 2rem;
	align-items: center;
	justify-items: center;
	padding: 2rem 1.25rem 4rem;
}

@media (max-width: 900px) {
	.trust-logos {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 560px) {
	.trust-logos {
		grid-template-columns: repeat(2, 1fr);
	}
}

.trust-logos__cell {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 80px;
	width: 100%;
}

.trust-logos__cell img {
	max-width: 100%;
	max-height: 80px;
	width: auto;
	height: auto;
	filter: grayscale(1);
	transition: filter 0.3s ease;
}

.trust-logos__cell img:hover {
	filter: grayscale(0);
}

/* About variant of Why Choose — single column with asphalt bg */
.section--why--about {
	position: relative;
	padding: 5rem 1.25rem;
	isolation: isolate;
	text-align: center;
}

.section--why--about__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: 50% 50%;
	z-index: -1;
}

.section--why--about::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.88);
	z-index: -1;
	pointer-events: none;
}

.section--why--about__inner {
	max-width: 60rem;
	margin: 0 auto;
}

.section--why--about__inner h2 {
	margin: 0 0 1rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.1;
	color: var(--heritage-text);
}

@media (min-width: 768px) {
	.section--why--about__inner h2 {
		font-size: 3rem;
	}
}

.section--why--about__inner .split__text {
	max-width: 40rem;
	margin: 0 auto 2rem;
	text-align: center;
}

.section--why--about__inner .heritage-accordion {
	text-align: left;
	max-width: 50rem;
	margin: 1rem auto 0;
}

/* About-page "Heritage Builders Makes Every Effort Possible" — left-align text, add button spacing */
.section--effort .split__text {
	text-align: left;
	hyphens: none;
}

.section--effort .split__col-inner {
	max-width: 42rem;
}

.section--effort .split__col--text {
	padding: 0 2rem;
}

@media (min-width: 768px) {
	.section--effort .split__col--text {
		padding: 0 2.5rem 0 3rem;
	}
}

.section--effort .split__col-inner .btn {
	margin-top: 0.5rem;
}

/* Meet Shawn section on About page — Shawn's portrait protrudes up into the previous section */
.site-main--about .section--meet-shawn {
	padding: 0;
	background: #fff;
	position: relative;
	z-index: 2;
}

.section--meet-shawn .split--why {
	align-items: center;
}

.site-main--about .section--meet-shawn__portrait {
	margin-top: -6rem;
}

@media (min-width: 768px) {
	.site-main--about .section--meet-shawn__portrait {
		margin-top: -10rem;
	}
}

.section--meet-shawn .split__col--image img {
	width: 100%;
	height: auto;
	display: block;
}

/* --- Certifications page (page-new-page.php) --- */
.certs-hero {
	background: rgb(28, 66, 110);
	color: #fff;
	padding: 5rem 0 6rem;
}

.certs-hero__inner {
	max-width: 60rem;
}

.certs-hero__title {
	margin: 0 0 1rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.75rem;
	font-weight: 400;
	color: #fff;
}

@media (min-width: 768px) {
	.certs-hero__title {
		font-size: 4.5rem;
	}
}

.certs-hero__text {
	margin: 0;
	font-family: var(--heritage-font);
	font-size: 1rem;
	line-height: 1.7;
	color: #fff;
	max-width: 50rem;
}

.section--certs-grid {
	padding: 5rem 0;
	background: #fff;
}

.certs-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 3rem 0.75rem;
}

.certs-card {
	width: 100%;
	max-width: 275px;
	text-align: left;
}

@media (min-width: 600px) {
	.certs-card {
		width: 275px;
	}
}

.certs-card__image {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	margin: 0 0 1.25rem;
}

.certs-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.certs-card__title {
	margin: 0 0 0.4rem;
	font-family: var(--heritage-font);
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--heritage-text);
	line-height: 1.3;
}

.certs-card__desc {
	margin: 0;
	font-family: var(--heritage-font);
	font-size: 1rem;
	color: #565656;
	line-height: 1.5;
}

/* --- Hero --- */
/* Dark grey band extending from nav down, behind hero; hero protrudes onto white */
.heritage-front .site-main--front {
	position: relative;
	isolation: isolate;
}

.heritage-front .site-main--front::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 780px;
	background: #262626;
	z-index: 0;
}

@media (max-width: 768px) {
	.heritage-front .site-main--front::before {
		height: auto;
	}
	.section--intro {padding:0;}
}

.hero {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	text-align: center;
	overflow: hidden;
	max-width: 75rem;
	margin: 0 auto;
	background: #262626;
	border: 10px solid rgb(28, 66, 110);
}

/* Keep sections after hero above the dark band */
.heritage-front .site-main--front > .section {
	position: relative;
	z-index: 1;
}

/* Thin vertical connector line at the top of each section (matches live's Duda line.svg widget) */
.heritage-front .site-main--front > .section::before {
	content: "";
	position: absolute;
	top: -40px;
	left: 50%;
	transform: translateX(-50%);
	width: 1px;
	height: 80px;
	background: #999;
	z-index: 3;
	pointer-events: none;
}

/* On dark sections, use a lighter connector */
.heritage-front .section--reviews-dark::before {
	background: rgba(255, 255, 255, 0.45);
}

/* Hide connector on the discount band and on the section directly after it */
.heritage-front .section--discount::before,
.heritage-front .section--discount + .section::before {
	display: none;
}

/* Hide connector on the quality band and on the section directly after it */
.heritage-front .section--quality::before,
.heritage-front .section--quality + .section::before {
	display: none;
}

/* Hide connector above and below the portfolio section (matches live) */
.heritage-front .section--portfolio::before,
.heritage-front .section--portfolio + .section::before {
	display: none;
}

.hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hero__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
}

.hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.65);
	z-index: 1;
}

.hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: none;
	padding: 11rem 2.5rem 12rem;
}

.hero__content-inner {
	max-width: 68rem;
	margin: 0 auto;
}

/* Live: m-font-size-20 / font-size-36, font-weight normal — Cormorant for display */
.hero__title {
	margin: 0 0 1.5rem;
	font-family: var(--heritage-font-serif);
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.02em;
	text-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}

@media (min-width: 768px) {
	.hero__title {
		font-size: 2.25rem;
	}
}

/* Live: Cormorant 400, 36px mobile / 72px desktop (inherits Duda default h1 size) */
.hero__headline {
	margin: -0.25rem auto 1.25rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1;
	text-shadow: 0 0 20px rgba(0, 0, 0, 0.45);
	max-width: none;
}

@media (min-width: 768px) {
	.hero__headline {
		font-size: 4.5rem;
	}
}

/* Live: Georgia (not Cormorant), m-font-size-18 / font-size-36, weight 600 uppercase */
.hero__cert {
	margin: 0 0 0.35rem;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #fff;
	text-shadow: 0 0 29px rgba(255, 255, 255, 0.45);
	line-height: 1.2;
}

@media (min-width: 768px) {
	.hero__cert {
		font-size: 2.25rem;
	}
}

.hero__cert--first {
	margin-top: 0.5rem;
}

/* Live: m-font-size-13 / font-size-22, Montserrat */
.hero__lead {
	margin: 1.5rem auto 1.75rem;
	max-width: 38rem;
	font-family: var(--heritage-font);
	font-size: 0.8125rem;
	line-height: 1.7;
	color: #fff;
	font-weight: 400;
	text-align: center;
}

@media (min-width: 768px) {
	.hero__lead {
		font-size: 1.375rem;
	}
}

/* Live hero CTA: blue rectangle, Montserrat 400, white text */
.btn--hero {
	background: rgb(12, 83, 132);
	color: #fff;
	border: 2px solid rgb(12, 83, 132);
	border-radius: 0;
	font-family: var(--heritage-font);
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.15;
	width: min(100%, 15.625rem);
	min-height: 3.75rem;
	padding: 0.5rem 1rem;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: none;
}

.btn--hero:hover {
	background: rgb(14, 105, 161);
	border-color: rgb(14, 105, 161);
	color: #fff;
}

@media (max-width: 600px) {
	.hero {
		border-width: 0;
	}

	.hero__content {
		padding: 3.5rem 1.25rem 4.5rem;
	}

	.hero__content-inner {
		max-width: 100%;
	}

	.hero__headline {
		margin-top: 0;
	}

	.hero__lead-line:first-child,
	.hero__headline-line:first-child,
	.hero__cert-line:first-child {
		margin-bottom: 0.2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero__video {
		display: none;
	}

	.hero__media {
		background: #2a2a2a url("/wp-content/themes/heritage/images/video.jpg") 50% 50% / cover no-repeat;
	}
}

/* --- Generic sections --- */
.section {
	padding: 4rem 0;
}

.section--intro {
	position: relative;
	background-color: transparent !important;
	background-image: url("/wp-content/themes/heritage/images/dedicated.png") !important;
	padding: 30px 40px 80px !important;
	width: auto !important;
	margin: 0 !important;
	background-repeat: no-repeat !important;
	background-size: contain !important;
	background-position: 0 100% !important;
}

.section--intro__overlay {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.5);
	pointer-events: none;
	z-index: 0;
}

.section--intro > .wrap {
	position: relative;
	z-index: 1;
}

.intro-block {
	max-width: 50rem;
	margin: 0 auto;
	text-align: left;
}

@media (max-width: 767px) {
	.intro-block {
		text-align: center;
	}
}


.section__narrow {
	max-width: 48rem;
	margin: 0 auto;
	text-align: center;
}

/* Live: Cormorant 400, 36px mobile / 60px desktop; bold period via <strong> */
.section__title {
	margin: 0 0 1rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1;
	color: var(--heritage-text);
}

@media (min-width: 768px) {
	.section__title {
		font-size: 3.75rem;
	}
}

.section__title strong,
.section__title .strong {
	font-weight: 700;
}

/* Live: Montserrat 400, 16px mobile / 20px desktop, line-height 2, gray */
.section__text {
	margin: 0 0 1.5rem;
	font-family: var(--heritage-font);
	font-size: 1rem;
	line-height: 2;
	color: #565656;
}

@media (min-width: 768px) {
	.section__text {
		font-size: 1.25rem;
	}
}

/* Section h2s e.g. Our Services — live uses Cormorant 400 at 36px mobile / 60px desktop */
.section__heading {
	margin: 0 0 2rem;
	text-align: center;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.1;
	color: var(--heritage-text);
}

@media (min-width: 768px) {
	.section__heading {
		font-size: 3.75rem;
	}
}

.section--services {
	background: var(--heritage-bg-soft);
}

/* --- Services grid --- */
.service-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem 1.5rem;padding: 80px 40px 0!important;
}

@media (max-width: 900px) {
	.service-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 560px) {
	.service-grid {
		grid-template-columns: 1fr;
		padding: 80px 0 0 !important;
		justify-items: center;
	}

	.service-grid .service-card {
		width: 95%;
	}
}

/* Live: blue-asset bg on card (cover); padding 0 15px 30px.
   Image has -40px top margin so it protrudes above the card top edge. */
.service-card {
	text-align: center;
	padding: 0 15px 30px;
	background-color: #fff;
	background-image: url('../../images/blue-asset.png');
	background-repeat: no-repeat;
	background-size: cover;
	box-shadow: 0 7px 29px 0 rgba(100, 100, 111, 0.2);
}

.service-card__image-link {
	display: block;
	line-height: 0;
	margin-top: -40px;
}

.service-card__image-link img {
	width: 100%;
	aspect-ratio: 37 / 25;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.service-card__image-link:hover img {
	transform: scale(1.02);
}

.service-card_mark {
	width: 64px;
	height: auto;
	margin: -2rem auto 0.75rem;
	position: relative;
	z-index: 1;
	-webkit-border-radius: 50% !important;
	border-style: solid !important;
	border-width: 3px !important;
	border-color: #fff !important;
}

/* Live: h4 uppercase service name — Cormorant 400, 24px mobile / 32px desktop */
.service-card__title {
	margin: 0.75rem 0 0.5rem;
	font-family: var(--heritage-font-serif);
	font-size: 1.5rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0;
	line-height: 1.2;
}

@media (min-width: 768px) {
	.service-card__title {
		font-size: 2rem;
	}
}

/* Live: Montserrat 400, 13px mobile / 16px desktop, line-height 2, gray */
.service-card__text {
	margin: 0 0 1rem;
	font-family: var(--heritage-font);
	font-size: 0.8125rem;
	line-height: 2;
	color: #565656;
}

@media (min-width: 768px) {
	.service-card__text {
		font-size: 1rem;
	}
}

/* --- Estimate --- */
.section--estimate {
	background: #fff;
	border-top: 1px solid #eee;
	border-bottom: 1px solid #eee;
}

/* Live uses 32px for this heading, not the default 60px */
.section--estimate .section__heading {
	font-size: 1.75rem;
}

@media (min-width: 768px) {
	.section--estimate .section__heading {
		font-size: 2rem;
	}
}

.estimate-form__note {
	font-size: 0.8125rem;
	color: var(--heritage-text-muted);
	margin: 0 0 1.25rem;
	text-align: center;
}

.estimate-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

@media (max-width: 560px) {
	.estimate-form__row {
		grid-template-columns: 1fr;
	}
}

.estimate-form__field input,
.estimate-form__field select {
	width: 100%;
	height: 50px;
	padding: 0 0.625rem;
	font-family: var(--heritage-font);
	font-size: 0.875rem;
	color: var(--heritage-text);
	border: 0;
	border-radius: 5px;
	background: rgba(242, 240, 236, 0.4);
}

.estimate-form__field input::placeholder {
	color: #888;
}

.estimate-form__field--full {
	display: block;
	margin-bottom: 1rem;
}

.estimate-form__cta {
	display: flex;
	width: 100%;
	margin: 1.5rem 0 0;
}

/* --- Discount band --- */
.section--discount {
	position: relative;
	padding: 6rem 0;
	overflow: hidden;
	text-align: center;
}

.section--discount__bg {
	position: absolute;
	inset: 0;
	background-image: url("/wp-content/themes/heritage/images/flag.jpeg");
	background-size: cover;
	background-position: 50% 50%;
	z-index: 0;
}

.section--discount__inner {
	position: relative;
	z-index: 1;padding:70px 0 !important;
	max-width: 1200px;
	margin: 0 auto;
}

/* Live: Cormorant 700 uppercase, 38px mobile / 48px desktop, white */
.discount__title {
	margin: 0 0 1rem;
	font-family: var(--heritage-font-serif);
	font-size: 46px !important;
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1.2;
	color: #fff;
	text-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
}

@media (max-width: 767px) {
	.discount__title {
		font-size: 23px !important;
	}
}

@media (min-width: 768px) {
	.discount__title {
		font-size: 3rem;
	}
}

/* Live: Cormorant 700, 44px mobile / 55px desktop, white (not uppercase) */
.discount__percent {
	margin: 0 0 1.5rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.75rem;
	font-weight: 700;
	color: #fff;
	text-shadow: 0 0 27px rgba(0, 0, 0, 0.4);
	line-height: 1.1;
}

@media (min-width: 768px) {
	.discount__percent {
		font-size: 3.4375rem;
	}
}

.discount__message {
	background: rgba(12, 83, 132, 0.46);
	padding: 0.5rem;
	border-radius: 4px;
}

/* Live: Cormorant 600, m-font-size-19 / font-size-24 */
.discount__message p {
	margin: 0;
	font-family: var(--heritage-font-serif);
	font-size: 24px !important;
	font-weight: 600;
	color: #fff;
	line-height: 1.4;
}

@media (min-width: 768px) {
	.discount__message p {
		font-size: 1.5rem;
	}
}

/* --- Split sections --- */
.section--split .split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: center;
}

.section--split .split--single {
	max-width: 42rem;
	margin: 0 auto;
}

/* Full-bleed 2-column split with cream section padding around a bleed image */
.section--split-bleed {
	padding: 5rem 0;
	background: var(--heritage-bg-soft);
}

.section--split-bleed .split--50 {
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem;
	align-items: center;
}

@media (min-width: 768px) {
	.section--split-bleed .split--50 {
		grid-template-columns: 1fr 1fr;
		gap: 0;
	}
}

.split__col--image {
	min-height: 350px;
	background-size: cover;
	background-position: 50% 50%;
	background-repeat: no-repeat;
}

@media (min-width: 768px) {
	.split__col--image {
		min-height: 540px;
	}
}

.section--split-bleed .split__col--text {
	display: flex;
	align-items: center;
	padding: 0 1.25rem;
}

@media (min-width: 768px) {
	.section--split-bleed .split__col--text {
		padding: 0 4.5rem;
	}
}

.split__col-inner {
	max-width: 34rem;
}

@media (min-width: 768px) {
	.split--why {
		grid-template-columns: 1fr 1fr;
	}
}

.section--muted {
	background: var(--heritage-bg-soft);
}

/* Live split section h2 — Cormorant 400, 36px mobile / 60px desktop */
.split__col--text h2 {
	margin: 0 0 1rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.1;
	color: var(--heritage-text);
}

@media (min-width: 768px) {
	.split__col--text h2 {
		font-size: 3.75rem;
	}
}

/* Live "Why Choose": 37px mobile / 46px desktop */
.section--why .split__col--text h2 {
	font-size: 2.3125rem;
}

@media (min-width: 768px) {
	.section--why .split__col--text h2 {
		font-size: 2.875rem;
	}
}

.split__text {
	margin: 0 0 1.25rem;
	font-family: var(--heritage-font);
	font-size: 1rem;
	line-height: 2;
	text-align: justify;
	hyphens: auto;
	color: #565656;
}

@media (max-width: 767px) {
	.split__text {
		text-align: left;
	}
}

/* --- Quality band: full-bleed house image, white content box centered on top --- */
.section--quality {
	position: relative;
	padding: 18rem 1.5rem 0;
	text-align: center;
	margin-bottom: 5rem;
	isolation: isolate;
}

@media (max-width: 768px) {
	.section--quality {
		padding: 10rem 1.25rem 0;
	}
}

.section--quality__bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 6rem;
	background-image: url("/wp-content/themes/heritage/images/house.jpg");
	background-size: cover;
	background-position: 50% 50%;
	z-index: 0;
}

/* Live shows the image crisp — kill the washout overlay */
.section--quality__overlay {
	display: none;
}

.section--quality__inner {
	position: relative;
	z-index: 2;
	background: #fff;
	padding: 4rem 2.5rem;
	max-width: 54rem;
	margin: 0 auto -5rem;
	text-align: center;
	box-shadow: 0 7px 29px 0 rgba(100, 100, 111, 0.2);
}

/* Thin inner border inset from the box edges */
.section--quality__inner::after {
	content: "";
	position: absolute;
	inset: 20px;
	border: 1px solid #dcdcdc;
	pointer-events: none;
}

@media (max-width: 768px) {
	.section--quality__inner {
		padding: 2.5rem 1.5rem;
	}
}

.quality__eyebrow {
	margin: 0 0 0.5rem;
	font-family: var(--heritage-font-heading);
	font-size: 1rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--heritage-text);
}

/* Live: h3 "Work With Your Local Experts" — Cormorant 400, 36px mobile / 48px desktop */
.quality__title {
	margin: 0 0 1rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.15;
	color: var(--heritage-text);
}

@media (min-width: 768px) {
	.quality__title {
		font-size: 3rem;
	}
}

.quality__text {
	max-width:530px;
	font-family: var(--heritage-font);
	font-size: 1rem;text-align: center;
	line-height: 2;margin:0 auto 30px auto;
	color: #565656;
}

/* --- Why choose --- */
.section--why {
	padding: 40px 0 80px 0;
	background: #fff;
}

.split--why {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	align-items: stretch;
}

@media (min-width: 768px) {
	.split--why {
		grid-template-columns: 1fr 1fr;
	}
}

/* Image column: shawn portrait layered over the house bg */
.section--why .split__col--image {
	position: relative;
	min-height: 650px;
	background-image:
		url("/wp-content/themes/heritage/images/shawn.webp"),
		url("/wp-content/themes/heritage/images/shawn-bg.png");
	background-size: auto 100%, cover;
	background-position: 50% 100%, 50% 50%;
	background-repeat: no-repeat, no-repeat;
	overflow: hidden;
}

/* Hide the inline shawn img now that we use it as a bg layer */
.section--why .split__col--image img {
	display: none;
}

.section--why .split__col--text {
	display: flex;
	align-items: center;
	padding: 3rem 1.25rem;
}

@media (min-width: 768px) {
	.section--why .split__col--text {
		padding: 4rem 3rem;
	}
}

.section--why .split__col-inner {
	width: 100%;
	max-width: 36rem;
}

.split--why {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: start;
}

@media (min-width: 768px) {
	.split--why {
		grid-template-columns: 1fr 1.1fr;
		gap: 3rem;
		align-items: center;
	}
}

.section--why .split__col--image img {
	width: 100%;
	height: auto;
	display: block;
}

.section--why .split__col--text {
	padding: 0 0.5rem;
}

.section--why .split__col--text .btn {
	margin-bottom: 1.5rem;
}

/* Accordion — live uses separate card-style items with left icon + right chevron */
.heritage-accordion {
	margin-top: 1rem;
}

.heritage-accordion__item {
	background: #f5f4f0;
	margin-bottom: 0.75rem;
}

.heritage-accordion__summary {
	list-style: none;
	cursor: pointer;
	padding: 1rem 1.25rem;
	font-family: var(--heritage-font);
	font-size: 0.9375rem;
	font-weight: 600;
	color: rgb(12, 83, 132);
	display: flex;
	align-items: center;
	gap: 1rem;
	letter-spacing: 0.03em;
}

.heritage-accordion__summary::-webkit-details-marker {
	display: none;
}

.heritage-accordion__icon {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgb(12, 83, 132);
}

.heritage-accordion__icon svg {
	width: 100%;
	height: 100%;
}

.heritage-accordion__label {
	flex: 1;
}

.heritage-accordion__chevron {
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgb(12, 83, 132);
	transition: transform 0.2s ease;
}

.heritage-accordion__chevron svg {
	width: 100%;
	height: 100%;
}

.heritage-accordion__item[open] .heritage-accordion__chevron {
	transform: rotate(180deg);
}

.heritage-accordion__panel {
	padding: 0 1.25rem 1rem calc(28px + 1.25rem + 1rem);
}

.heritage-accordion__panel p {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: #565656;
}

/* Testimonials */
.section__eyebrow {
	text-align: center;
	margin: 0 0 0.35rem;
	font-family: var(--heritage-font-heading);
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--heritage-text);
}

.section--testimonials {
	padding-bottom: 3rem;
	background: var(--heritage-bg-soft);
}

.testimonial-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	margin-top: 1.5rem;
	max-width: 1160px;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 768px) {
	.testimonial-grid {
		grid-template-columns: 1fr;
	}
}

.testimonial-video video {
	width: 100%;
	display: block;
	border-radius: 4px;
	background: #111;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

/* Press */
.section--press {
	text-align: center;
	padding: 3rem 0 5rem;
	background: rgba(242, 240, 236, 0.4);
}

.section--press .section__heading {
	margin-bottom: 1.25rem;
}

/* Portfolio block — live is full-bleed with ~25% text col + 75% gallery col to right viewport edge */
.section--portfolio {
	padding: 0;
}

.portfolio-block {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	align-items: center;
}

@media (min-width: 900px) {
	.portfolio-block {
		grid-template-columns: 25% 75%;
		gap: 0;
	}
}

.portfolio-block__intro {
	padding: 2rem 1.25rem;
	text-align: center;
}

@media (min-width: 900px) {
	.portfolio-block__intro {
		padding: 0 2rem 0 calc((100% - 1200px) / 2 + 40px);
		text-align: left;
	}
}

.portfolio-block__intro h2 {
	margin: 0 0 1.25rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.05;
	color: var(--heritage-text);
}

@media (min-width: 900px) {
	.portfolio-block__intro h2 {
		font-size: 3.75rem;
	}
}

.portfolio-block__intro .btn {
	display: inline-flex;
}

.portfolio-block__grid {
	display: flex;
	flex-wrap: wrap;
}

.portfolio-block__cell {
	flex: 1 1 50%;
	padding: 3px;
	display: block;
	overflow: hidden;
	line-height: 0;
	box-sizing: border-box;
}

@media (min-width: 900px) {
	.portfolio-block__cell {
		flex: 1 1 25%;
	}
}

.portfolio-block__cell img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 4 / 3;
	transition: transform 0.35s ease;
}

@media (min-width: 900px) {
	.portfolio-block__cell img {
		aspect-ratio: 319 / 250;
	}
}

.portfolio-block__cell:hover img {
	transform: scale(1.03);
}

/* Certifications */
.section--certs {
	padding: 3rem 0 4rem;
	background: #fafafa;
}

.cert-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem 1rem;
	align-items: center;
	justify-items: center;
}

@media (min-width: 768px) {
	.cert-grid {
		grid-template-columns: repeat(6, 1fr);
	}
}

.cert-grid__cell {
	padding: 0;
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 80px;
	width: 100%;
}

.cert-grid__cell img {
	max-width: 100%;
	max-height: 80px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: grayscale(1);
	transition: filter 0.3s ease;
}

.cert-grid__cell:hover img,
.cert-grid__cell img:hover {
	filter: grayscale(0);
}

.section--certs__btn {
	display: flex;
	margin: 2rem auto 0;
	width: fit-content;
}

/* Dark reviews band (u_1243814523) */
.section--reviews-dark {
	background: #262626;
	color: #fff;
	padding: 4rem 0 5rem;
	text-align: center;
}

.section--reviews-dark__title {
	margin: 0 0 1rem;
	font-family: var(--heritage-font-serif);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.1;
	color: #fff;
}

@media (min-width: 768px) {
	.section--reviews-dark__title {
		font-size: 3.75rem;
	}
}

.section--reviews-dark__title strong {
	font-weight: 700;
}

.section--reviews-dark__text {
	margin: 0 0 1.5rem;
	font-family: var(--heritage-font);
	font-size: clamp(1rem, 2vw, 1.125rem);
	color: #ccc;
	line-height: 1.7;
	max-width: 40rem;
	margin-left: auto;
	margin-right: auto;
}

.section--reviews-dark__badge {
	display: block;
	max-width: min(100%, 200px);
	margin: 0 auto 1.5rem;
	height: auto;
	filter: grayscale(1);
	transition: filter 0.3s ease;
}

.section--reviews-dark__badge:hover {
	filter: grayscale(0);
}

.section--reviews-dark .btn {
	border-color: #fff;
	color: #fff;
}

.section--reviews-dark .btn:hover {
	background: #fff;
	color: #262626;
}

/* Contact strip before footer */
.section--contact-strip {
	padding: 3rem 0;
	background: #fff;
	border-top: 1px solid #eee;
}

/* No vertical connector lines on this section or the one right after */
.heritage-front .section--contact-strip::before,
.heritage-front .section--contact-strip + .section::before {
	display: none;
}

/* Elfsight placeholder */
.section--elfsight {
	padding: 2rem 0 3rem;
}

.elfsight-placeholder {
	border: 1px dashed #ccc;
	border-radius: 6px;
	padding: 2rem 1.25rem;
	text-align: center;
	background: #fafafa;
}

.elfsight-placeholder__note {
	margin: 0;
	font-size: 0.875rem;
	color: var(--heritage-text-muted);
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
}

/* Primary CTAs on the front page use Raleway on the live site */
.site-main--front .btn--primary {
	font-family: var(--heritage-font-raleway);
}
