
/* Paint Philly town template (local preview). Scoped under .ppt.
   Tokens match the redesigned service pages (interior/exterior painting): navy hero card with gold
   kicker, centered Georgia section headings with a 68px gold rule, #455366 body copy, 2px buttons,
   shared .pp-faq-section FAQ, and the navy closing call-to-action band. */
.pp-town-template {
	overflow-x: clip;
}

.pp-town-template .entry-header, .pp-town-template .ast-breadcrumbs-wrapper, .pp-town-template .ast-inside-advanced-header-content, .pp-town-template #comments, .pp-town-template .ast-title-bar-wrap:not(.ast-merged-advanced-header) {
	display: none !important;
}

/* On pages whose menu is merged into Astra's page-title banner, keep the header and drop only the banner. */
.pp-town-template .ast-merged-advanced-header {
	display: block !important;
	min-height: 0 !important;
	padding: 0 !important;
	background-image: none !important;
	background-color: #11284b !important;
}

.pp-town-template .ast-merged-advanced-header.nitro-lazy {
	background-image: none !important;
}

.pp-town-template .ast-merged-advanced-header::before, .pp-town-template .ast-merged-advanced-header::after {
	display: none !important;
}

.pp-town-template .ast-merged-advanced-header .ast-inside-advanced-header-content {
	display: none !important;
}

/* Astra's boxed layout (hub page) adds a gray canvas and padding around the article. */
.pp-town-template.ast-separate-container, .pp-town-template.ast-separate-container #content {
	background: #fff !important;
}

.pp-town-template.ast-separate-container #primary, .pp-town-template.ast-separate-container .ast-article-single {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.ppt {
	--navy: #11284b;
	--sky: #6fb0c7;
	--sky-ink: #2d6f8c;
	--gold: #e9ae41;
	--ink: #11284b;
	--body: #455366;
	--line: #c7d7e1;
	--tint: #f4f7fa;
	--on-navy: #fff;
	--head: var(--pp-font-heading, Georgia, "Times New Roman", serif);
	width: 100vw;
	margin-left: calc(50% - 50vw);
	color: var(--body);
	font-size: 17px;
	line-height: 1.65;
	background: #fff;
}

.ppt *, .ppt *::before, .ppt *::after {
	box-sizing: border-box;
}

.ppt a {
	color: var(--navy);
}

.ppt a:hover {
	color: var(--sky-ink);
}

.ppt p {
	margin: 0;
}

.ppt-nowrap {
	white-space: nowrap;
}

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

.ppt-wrap {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 24px;
}

.ppt-section {
	padding: 80px 0;
	background: #fff;
}

.ppt-section--tint {
	background: var(--tint);
}

.ppt-section--navy {
	background: var(--navy);
	color: var(--on-navy);
}

/* Headings: centered with the gold rule, as on the service pages */
.ppt .ppt-h1, .ppt .ppt-h2, .ppt h3 {
	font-family: var(--head) !important;
	margin: 0;
	letter-spacing: 0;
	text-transform: none;
}

.ppt .ppt-h2 {
	color: var(--navy);
	font-size: 36px;
	line-height: 1.2;
	font-weight: 700;
	text-align: center;
}

.ppt .ppt-h2::after {
	content: "";
	display: block;
	width: 68px;
	height: 2px;
	margin: 18px auto 0;
	background: var(--gold);
}

.ppt .ppt-h2--left {
	text-align: left;
}

.ppt .ppt-h2--left::after {
	margin-left: 0;
}

.ppt-section--navy .ppt-h2 {
	color: #fff;
}

.ppt-section-intro {
	max-width: 780px;
	margin: 22px auto 36px !important;
	text-align: center;
	color: var(--body);
	font-size: 17px;
	line-height: 1.65;
}

.ppt-kicker {
	margin: 0 0 10px !important;
	color: var(--gold);
	font-size: 13px !important;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
	line-height: 1.6;
}

/* Buttons (service-page style) */
.ppt .ppt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 22px;
	border: 1px solid transparent;
	border-radius: 2px;
	font-weight: 700;
	font-size: 16px;
	text-decoration: none;
	line-height: 1.2;
}

.ppt .ppt-btn--primary {
	background: var(--sky) !important;
	border-color: var(--sky) !important;
	color: var(--navy) !important;
}

.ppt .ppt-btn--ghost {
	background: transparent;
	border-color: #fff;
	color: #fff;
}

.ppt .ppt-btn--ghost:hover {
	background: #fff;
	color: var(--navy);
}

.ppt-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 8px;
}

.ppt-actions--center {
	justify-content: center;
}

.ppt .ppt-more {
	font-weight: 700;
	font-size: 16px;
	white-space: nowrap;
	text-decoration: none;
	color: var(--navy);
}

/* Hero: photo with the navy card */
.ppt-hero {
	position: relative;
	overflow: hidden;
	background-color: var(--navy);
	padding: 76px 0;
	min-height: 560px;
	display: flex;
	align-items: center;
}

.ppt-hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 60%;
	z-index: 0;
}

.ppt-hero > .ppt-wrap {
	position: relative;
	z-index: 1;
}

.ppt-hero__card {
	max-width: 600px;
	padding: 38px 40px;
	background: rgba(17, 40, 75, .94);
	border-radius: 4px;
	box-shadow: 0 18px 40px rgba(0, 0, 0, .25);
}

.ppt .ppt-h1 {
	color: #fff;
	font-size: 44px;
	line-height: 1.12;
	font-weight: 700;
	margin-bottom: 18px;
}

.ppt-lede {
	color: #fff;
	font-size: 17px;
	line-height: 1.65;
	margin-bottom: 14px !important;
}

/* Proof strip */
.ppt-stats {
	background: var(--navy);
	padding: 6px 0;
	border-top: 1px solid rgba(111, 176, 199, .3);
}

.ppt-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ppt-stats__grid div {
	position: relative;
	display: flex;
	min-height: 88px;
	padding: 15px 18px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.ppt-stats__grid div:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 24%;
	width: 1px;
	height: 52%;
	background: rgba(111, 176, 199, .42);
}

.ppt-stats strong {
	font-family: var(--head) !important;
	font-size: 24px;
	color: var(--gold);
	line-height: 1.1;
}

.ppt-stats span {
	font-size: 12px;
	font-weight: 650;
	color: #fff;
	line-height: 1.3;
	margin-top: 4px;
}

/* Intro split */
.ppt-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 64px;
	align-items: center;
}

.ppt-intro .ppt-h2 {
	margin-bottom: 24px;
}

.ppt-intro__photo {
	margin: 0;
}

.ppt-intro--solo {
	grid-template-columns: minmax(0, 1fr);
	max-width: 820px;
}

.ppt-intro__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	border-radius: 4px;
	box-shadow: 0 18px 40px rgba(17, 40, 75, .16);
}

/* Prose (the page's own copy) */
.ppt-prose {
	color: var(--body);
	font-size: 17px;
	line-height: 1.75;
}

.ppt-prose p, .ppt-prose ul, .ppt-prose ol {
	margin: 0 0 18px !important;
}

.ppt-prose ul, .ppt-prose ol {
	padding-left: 22px;
}

.ppt-prose li {
	margin-bottom: 6px;
}

.ppt-prose h3 {
	color: var(--navy);
	font-size: 22px;
	line-height: 1.3;
	margin: 32px 0 12px !important;
}

.ppt-prose h3:first-child {
	margin-top: 0 !important;
}

.ppt-prose a {
	color: var(--sky-ink);
	font-weight: 600;
}

.ppt-longform {
	max-width: 820px;
}

.ppt-longform .ppt-h2 {
	margin-bottom: 36px;
}

.ppt-readmore > summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	margin-top: 6px;
	padding: 12px 22px;
	border: 1px solid var(--navy);
	border-radius: 2px;
	font-weight: 700;
	font-size: 15px;
	color: var(--navy);
}

.ppt-readmore > summary::-webkit-details-marker {
	display: none;
}

.ppt-readmore > summary::after {
	content: "+";
	font-size: 20px;
	line-height: 1;
}

.ppt-readmore[open] > summary {
	margin-bottom: 28px;
}

.ppt-readmore[open] > summary::after {
	content: "−";
}

/* Service cards */
.ppt-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.ppt .ppt-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #dfe7ee;
	border-radius: 4px;
	overflow: hidden;
	text-decoration: none;
	color: var(--body);
	transition: box-shadow .2s;
}

.ppt .ppt-card:hover {
	box-shadow: 0 12px 28px rgba(17, 40, 75, .12);
	color: var(--body);
}

.ppt-card img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
}

.ppt-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 22px 24px 26px;
	font-size: 16px;
	line-height: 1.6;
}

.ppt .ppt-card__title {
	font-family: var(--head) !important;
	font-size: 22px;
	font-weight: 700;
	color: var(--navy);
}

.ppt-card__cta {
	font-weight: 700;
	color: var(--sky-ink);
	font-size: 15px;
	margin-top: 4px;
}

.ppt-links {
	margin-top: 28px !important;
	text-align: center;
	font-size: 15px;
	color: var(--body);
}

.ppt-links a {
	font-weight: 700;
}

/* Recent work */
.ppt-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0 auto;
}

.ppt-gallery--1 {
	grid-template-columns: minmax(0, 1fr);
	max-width: 560px;
}

.ppt-gallery--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 760px;
}

.ppt-shot {
	margin: 0;
	border-radius: 4px;
	overflow: hidden;
}

.ppt-shot img {
	display: block;
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
}

.ppt-gallery + .ppt-center {
	margin-top: 28px !important;
}

/* Crew (navy split): copy + checklist left, photo mosaic right */
.ppt-crew__grid {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.25fr);
	gap: 56px;
	align-items: center;
}

.ppt-crew__copy {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.ppt-crew__copy p:not(.ppt-kicker) {
	color: #fff;
}

.ppt-crew__copy .ppt-kicker {
	margin-bottom: -6px !important;
}

.ppt-crew__copy .ppt-btn {
	align-self: flex-start;
	margin-top: 6px;
}

.ppt-checks {
	list-style: none;
	margin: 4px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid rgba(111, 176, 199, .32);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ppt-checks li {
	position: relative;
	padding-left: 30px;
	color: #fff;
	font-size: 16px;
	line-height: 1.5;
}

.ppt-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid var(--gold);
}

.ppt-checks li::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 7px;
	width: 5px;
	height: 8px;
	border: solid var(--gold);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.ppt-mosaic {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: repeat(3, 150px);
	gap: 12px;
}

.ppt-mosaic figure {
	margin: 0;
	border-radius: 4px;
	overflow: hidden;
}

.ppt-mosaic img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ppt-mosaic__main {
	grid-column: 1/span 3;
	grid-row: 1/span 2;
}

.ppt-mosaic figure:nth-child(2) {
	grid-column: 4;
	grid-row: 1;
}

.ppt-mosaic figure:nth-child(3) {
	grid-column: 4;
	grid-row: 2;
}

.ppt-mosaic figure:nth-child(4) {
	grid-column: 1/span 2;
	grid-row: 3;
}

.ppt-mosaic figure:nth-child(5) {
	grid-column: 3/span 2;
	grid-row: 3;
}

/* Reviews */
.ppt-carousel {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc(( 100% - 48px ) / 3);
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding: 4px 2px 8px;
}

.ppt-carousel::-webkit-scrollbar {
	display: none;
}

.ppt-carousel:focus-visible {
	outline: 2px solid var(--sky-ink);
	outline-offset: 4px;
}

.ppt-review {
	margin: 0;
	scroll-snap-align: start;
	border: 1px solid #dfe7ee;
	border-top: 3px solid var(--gold);
	border-radius: 4px;
	padding: 26px 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: #fff;
}

.ppt-review__stars {
	color: var(--gold);
	letter-spacing: .18em;
	font-size: 18px;
}

.ppt-review blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--head) !important;
	font-size: 18px;
	line-height: 1.5;
	color: var(--navy);
	font-style: normal;
	flex-grow: 1;
}

.ppt-review figcaption {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 14px;
	color: var(--body);
}

.ppt-review figcaption strong {
	font-size: 15px;
	color: var(--navy);
	letter-spacing: .02em;
}

.ppt-carousel__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	margin-top: 28px;
}

.ppt .ppt-arrow {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--navy);
	background: #fff;
	color: var(--navy);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.ppt .ppt-arrow:hover {
	background: var(--navy);
	color: #fff;
}

/* Shared FAQ component: only spacing inside the town wrapper */
.ppt .pp-faq-section {
	max-width: 1040px;
	margin: 0 auto;
}

.ppt .pp-faq-list article > div p {
	margin: 0 0 10px;
}

.ppt .pp-faq-list article > div p:last-child {
	margin-bottom: 0;
}

/* Nearby */
.ppt-chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 30px;
}

.ppt .ppt-chips a {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 2px;
	padding: 9px 16px;
	font-weight: 700;
	text-decoration: none;
	font-size: 15px;
	line-height: 1.3;
	color: var(--navy);
}

.ppt .ppt-chips a:hover {
	border-color: var(--navy);
}

/* Closing CTA (service-page style) */
.ppt-cta {
	background: var(--navy);
	padding: 72px 0;
	text-align: center;
}

.ppt-cta .ppt-wrap {
	max-width: 840px;
}

.ppt .ppt-cta h2 {
	font-family: var(--head) !important;
	margin: 0 0 14px;
	color: #fff;
	font-size: 38px;
	line-height: 1.2;
}

.ppt-cta p:not(.ppt-kicker) {
	color: #fff;
	font-size: 17px;
	line-height: 1.6;
}

.ppt .ppt-cta p a {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ppt-cta .ppt-actions {
	margin-top: 26px;
}

.ppt-cta .ppt-btn--ghost {
	border-color: var(--sky);
}

/* Service-areas hub */
.ppt .ppt-btn--navy {
	background: var(--navy);
	border-color: var(--navy);
	color: #fff;
}

.ppt .ppt-btn--navy:hover {
	background: #0b1b33;
	color: #fff;
}

.ppt-jump {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.ppt .ppt-jump a {
	border: 1px solid var(--navy);
	border-radius: 2px;
	padding: 10px 18px;
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
	color: var(--navy);
}

.ppt .ppt-jump a:hover {
	background: var(--navy);
	color: #fff;
}

.ppt-region {
	scroll-margin-top: 90px;
}

.ppt-region__hub {
	margin: -8px 0 32px !important;
}

.ppt-towns {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.ppt .ppt-town {
	display: block;
	background: #fff;
	border: 1px solid #dfe7ee;
	border-radius: 4px;
	overflow: hidden;
	text-decoration: none;
	transition: box-shadow .2s, transform .2s;
}

.ppt .ppt-town:hover {
	box-shadow: 0 12px 28px rgba(17, 40, 75, .14);
	transform: translateY(-2px);
}

.ppt-town img {
	display: block;
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
}

.ppt-town span {
	display: block;
	padding: 14px 16px;
	font-family: var(--head) !important;
	font-size: 18px;
	font-weight: 700;
	color: var(--navy);
}

.ppt-towns + .ppt-chips {
	margin-top: 26px;
}

@media (max-width: 960px) {
	.ppt-intro {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}
	
	.ppt-cards {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}
	
	.ppt-towns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}
	
	.ppt-town span {
		font-size: 16px;
		padding: 10px 12px;
	}
	
	.ppt-carousel {
		grid-auto-columns: 84%;
	}
	
	.ppt-gallery, .ppt-gallery--2 {
		grid-template-columns: minmax(0, 1fr);
		max-width: none;
	}
	
	.ppt-crew__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 36px;
	}
	
	.ppt-mosaic {
		grid-template-rows: repeat(3, 120px);
	}
	
	.ppt-stats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	
	.ppt-stats__grid div:nth-child(2)::after {
		display: none;
	}
	
	.ppt-stats__grid div:nth-child(-n+2) {
		border-bottom: 1px solid rgba(111, 176, 199, .32);
	}
}

@media (max-width: 600px) {
	.ppt {
		font-size: 16px;
	}
	
	.ppt-wrap {
		padding: 0 16px;
	}
	
	.ppt-section {
		padding: 52px 0;
	}
	
	/* Below 600px, stop overlaying the navy card on the photo (it was near-full-bleed and
	   ~94% opaque, reducing the photo to a thin sliver). Show the photo as its own visible
	   band above the card instead, with the solid-navy card in normal flow below it. */
	.ppt-hero {
		display: block;
		padding: 0;
		min-height: 0;
		background-color: var(--navy);
	}
	
	.ppt-hero__bg {
		position: static;
		display: block;
		width: 100%;
		height: 240px;
		object-fit: cover;
		object-position: 70% center;
	}
	
	.ppt-hero > .ppt-wrap {
		padding: 0;
		max-width: none;
	}
	
	.ppt-hero__card {
		max-width: none;
		padding: 28px 24px 32px;
		border-radius: 0;
		box-shadow: none;
		background: var(--navy);
	}
	
	/* Project singles wrap their whole template in one element carrying both .ppt (full-bleed)
	   and .ppt-wrap (max-width:1140px + side padding) classes at once, so the hero -- nested
	   inside that element -- inherited the padding and rendered inset instead of edge-to-edge
	   like every other family's hero. Break it back out to the full viewport width here. */
	.ppt-project > .ppt-hero {
		width: 100vw;
		position: relative;
		left: 50%;
		right: 50%;
		margin-left: -50vw;
		margin-right: -50vw;
	}
	
	/* Long, unbreakable H1 words (e.g. "Transformation") can exceed the mobile card's usable
	   width; bands.php forces overflow-wrap:normal!important on hero H1s (to stop the theme's
	   overeager break-word from splitting ordinary short words), which otherwise lets a too-long
	   word overflow and get clipped by .ppt-hero's overflow:hidden. break-word is a true CSS
	   "last resort": it only splits a word that cannot fit on its own line at all, so normal
	   headings are unaffected. */
	.ppt-hero .ppt-h1 {
		overflow-wrap: break-word;
		word-break: normal;
	}
	
	.pp-site-template .ppt-hero .ppt-h1 {
		overflow-wrap: break-word !important;
	}
	
	.ppt .ppt-h1 {
		font-size: clamp(27px, 7.6vw, 33px);
	}
	
	.ppt .ppt-h2 {
		font-size: 29px;
	}
	
	.ppt-section-intro {
		text-align: left;
		font-size: 16px;
	}
	
	.ppt-actions {
		flex-direction: column;
		align-items: stretch;
	}
	
	.ppt .ppt-btn {
		width: 100%;
	}
	
	.ppt-crew__copy .ppt-btn {
		align-self: stretch;
	}
	
	.ppt-mosaic {
		grid-template-rows: 200px 90px 110px;
		gap: 8px;
	}
	
	.ppt-stats__grid div {
		min-height: 76px;
		padding: 11px 8px;
	}
	
	.ppt-stats strong {
		font-size: 21px;
	}
	
	.ppt-stats span {
		font-size: 11px;
	}
	
	.ppt .ppt-cta h2 {
		font-size: 30px;
	}
	
	.ppt-card img {
		height: 190px;
	}
	
	.ppt-review {
		padding: 22px;
	}
}

/* Project pages: drop Astra's single-post top spacing so the mobile hero sits under the header. */
@media (max-width: 600px) {
	.content-area:has(.ppt-project) {
		margin-top: 0 !important;
	}
	
	.ast-article-single:has(.ppt-project) {
		padding-top: 0;
	}
}

/* Wide tables in post copy scroll inside themselves instead of widening the page. */
@media (max-width: 600px) {
	.ppt table {
		display: block;
		max-width: 100%;
		overflow-x: auto;
	}
}

/* Ghost buttons are white-on-dark; on light tint bands they need navy. */
.ppt .ppt-section--tint .ppt-btn--ghost {
	color: var(--navy);
	border-color: var(--navy);
}

.ppt .ppt-section--tint .ppt-btn--ghost:hover {
	background: var(--navy);
	color: #fff;
}

/* Site-template pages wrap everything in .ppt.ppt-wrap (1140px cap), which boxed the hero and
   stats bar. Break both out to full width like the town/service pages; content stays aligned
   by the hero's inner .ppt-wrap. */
.ppt.ppt-wrap > .ppt-hero, .ppt.ppt-wrap > .ppt-stats {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: 0;
	left: auto;
	right: auto;
}

/* Wide screens: a 560px hero at 1920px is a 3.4:1 strip that crops every house photo to its
   middle band. Grow the hero with the viewport so real house photos read whole. */
@media (min-width: 601px) {
	.ppt-hero {
		min-height: clamp(560px, 40vw, 780px);
	}
}
