/*
Theme Name: Kadence Child - Pavers Orlando Co
Template: kadence
Description: Child theme for Pavers Orlando Co, holding all site-specific CSS previously stored in the Additional CSS customizer panel.
Version: 1.0.0
Author: Pavers Orlando Co
*/

/* ===== Pavers Orlando Co — site CSS (migrated from Additional CSS panel) ===== */

/* ===== Pavers Orlando Co — master stylesheet (consolidated) ===== */

/* --- top-level content container: centered, page max-width --- */
.content-container.site-container {
	max-width: 1400px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.site-container {
	margin-left: auto !important;
	margin-right: auto !important;
}

/* --- HERO: full-bleed edge-to-edge crossfade --- */
.kb-row-layout-id53_hero11-a1 {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.kadence-column53_hero12-b2,
.kadence-column53_hero12-b2 .kt-inside-inner-col {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.pv-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	min-height: 640px;
	overflow: hidden;
	border-radius: 0;
	background: #202A33;
	isolation: isolate;
	margin-top: 0;
}
.pv-hero-slides {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	z-index: 1;
}
.pv-hero .pv-hero-slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	object-fit: cover;
	object-position: center center;
	opacity: 0;
	transition: opacity 1s ease-in-out;
}
.pv-hero .pv-hero-slide.is-active {
	opacity: 1;
}
.pv-hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	background: linear-gradient(180deg, rgba(32, 42, 51, 0.45) 0%, rgba(32, 42, 51, 0.80) 100%);
}
.pv-hero-content {
	position: relative;
	z-index: 3;
	width: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	max-width: 920px;
	margin-left: auto;
	margin-right: auto;
	padding: 150px 24px 44px;
}
.pv-hero-title {
	color: #FFFFFF !important;
	font-size: clamp(2rem, 4vw, 3.4rem);
	line-height: 1.12;
	letter-spacing: 0;
	margin: 0 0 18px;
	padding: 0;
	max-width: 840px;
}
.pv-hero-title::after {
	display: none !important;
}
.pv-hero .pv-hero-sub {
	color: #EAE4D8 !important;
	font-size: 16px;
	line-height: 1.65;
	width: auto !important;
	max-width: 760px !important;
	margin: 0 auto 14px !important;
}
.pv-hero-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	margin: 10px 0 22px;
}
.pv-btn {
	display: inline-block;
	padding: 14px 28px;
	border-radius: 12px;
	font-weight: 700;
	font-size: 17px;
	line-height: 1.2;
	text-decoration: none;
}
.pv-btn-primary {
	background: #A34430;
	border: 2px solid #A34430;
	color: #FFFFFF !important;
}
.pv-btn-primary:hover, .pv-btn-primary:focus {
	background: #40444A;
	border-color: #40444A;
	color: #FFFFFF !important;
}
.pv-btn-outline {
	background: transparent;
	border: 2px solid #FFFFFF;
	color: #FFFFFF !important;
}
.pv-btn-outline:hover, .pv-btn-outline:focus {
	background: #FFFFFF;
	border-color: #FFFFFF;
	color: #202A33 !important;
}
.pv-hero-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 32px;
	justify-content: center;
	background: rgba(32, 42, 51, 0.55);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 10px;
	padding: 16px 24px;
}
.pv-hero-trust span {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #EAE4D8;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 1.4px;
	text-transform: uppercase;
}
.pv-trust-icon {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	color: #EAE4D8;
}
.pv-hero-eyebrow {
	color: #A34430;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
	margin: 0 0 10px !important;
}
@media (max-width: 1024px) {
	.pv-hero { min-height: 580px; margin-top: 0; }
	.pv-hero-content { padding: 120px 20px 36px; }
}
@media (max-width: 600px) {
	.pv-hero { min-height: 540px; margin-top: 0; }
	.pv-hero-content { padding: 104px 16px 28px; }
	.pv-hero-trust { gap: 8px 16px; padding: 10px 14px; }
	.pv-btn { padding: 12px 20px; font-size: 16px; }
}

/* --- nav hover color --- */
.kadence-navigation-menu .menu-item a:hover,
.kadence-navigation-menu .menu-item a:focus,
.kadence-navigation-menu .menu-item.current-menu-item a,
nav.kadence-navigation-menu-container a:hover {
	color: #A34430 !important;
}

/* --- anchor scroll offset (sticky header) --- */
html {
	scroll-behavior: smooth;
}
.entry-content [id] {
	scroll-margin-top: 120px;
}

/* --- H2: distinct from H3 and body text --- */
.entry-content h2 {
	font-size: clamp(1.7rem, 1.35rem + 1.4vw, 2.4rem);
	font-weight: 700;
	letter-spacing: 0.3px;
	line-height: 1.25;
	position: relative;
	margin-top: 0;
	margin-bottom: 20px;
	padding-bottom: 18px;
}
.entry-content h2::after {
	content: "";
	display: block;
	width: 60px;
	height: 4px;
	background: #A34430;
	margin: 14px auto 0;
	border-radius: 2px;
}
.entry-content h2.has-text-align-left::after {
	margin-left: 0;
	margin-right: auto;
}
.entry-content h2 + p,
.entry-content h2 + .pv-eyebrow + p {
	margin-top: 0;
}

/* --- H3: distinct from H2 and body text (Ink text, Clay left-accent) --- */
.entry-content h3,
.wp-block-column h3 {
	color: #202A33;
	font-weight: 700;
	font-size: 1.2rem;
	line-height: 1.35;
	letter-spacing: 0.1px;
	margin-top: 30px;
	margin-bottom: 12px;
	padding-left: 14px;
	border-left: 4px solid #A34430;
}
.wp-block-column h3:first-child {
	margin-top: 0;
}
.entry-content h3 + p,
.wp-block-column h3 + p {
	margin-top: 0;
}

/* --- eyebrow labels --- */
.pv-eyebrow {
	color: #A34430;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	margin-bottom: 4px !important;
}

/* --- section inner content: wider container (was 1150px, now ~1400px) --- */
/* full-bleed section backgrounds (homepage + service pages): Kadence paints
   each section's background on this exact element (.kt-inside-inner-col),
   which previously sat capped at max-width:1400px -- so on wide screens the
   color stopped short of the browser edge while dark sections (which use
   the same 100vw breakout via .pv-dark-section) went edge to edge, an
   inconsistent boxed-vs-full-bleed rhythm. Breaking THIS element out to
   100vw and re-centering the 1400px reading column with padding (instead
   of max-width) keeps every section's background full-bleed while leaving
   the actual text/cards/tables at the same width and position as before. */
.pv-section-body {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
	padding-top: 40px;
	padding-bottom: 40px;
	padding-left: max(40px, calc((100vw - 1320px) / 2));
	padding-right: max(40px, calc((100vw - 1320px) / 2));
}
/* cards, grids, accordions, images use the full section width, not the narrow reading column */
.pv-section-body .wp-block-column p,
.pv-section-body .wp-block-gallery p,
.pv-section-body .wp-block-columns,
.pv-section-body .wp-block-kadence-rowlayout,
.pv-section-body .wp-block-kadence-accordion,
.pv-section-body .wp-block-gallery {
	max-width: none;
	width: 100%;
}
@media (max-width: 782px) {
	.pv-section-body {
		padding-top: 28px;
		padding-bottom: 28px;
		padding-left: max(24px, calc((100vw - 1320px) / 2));
		padding-right: max(24px, calc((100vw - 1320px) / 2));
	}
}
@media (max-width: 600px) {
	.pv-section-body {
		padding-top: 24px;
		padding-bottom: 24px;
		padding-left: max(20px, calc((100vw - 1320px) / 2));
		padding-right: max(20px, calc((100vw - 1320px) / 2));
	}
	.entry-content, .kt-inside-inner-col:not(.pv-section-body):not(.pv-card-pad) { padding-left: 16px !important; padding-right: 16px !important; }
}

/* --- card-style boxes: why-us cards + travertine callout --- */
.pv-card-pad {
	padding: 36px !important;
	box-sizing: border-box;
}
@media (max-width: 600px) {
	.pv-card-pad { padding: 22px !important; }
}

/* --- uniform service card & gallery image dimensions --- */
.wp-block-column .wp-block-image img,
.wp-block-gallery .wp-block-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
	height: auto;
	border-radius: 8px;
}
.wp-block-gallery figcaption {
	background: linear-gradient(0deg, rgba(32, 42, 51, 0.88) 0%, rgba(32, 42, 51, 0) 100%);
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.6px;
	padding: 26px 10px 10px;
	margin: 0;
	text-align: center;
}

/* --- consistent section-to-section vertical rhythm --- */
.kb-row-layout-wrap {
	--section-gap: 0px;
}

/* --- footer --- */
.footer-html-inner .pv-footer-cols {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	justify-content: space-between;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 70px 24px 40px;
	text-align: left;
}
.pv-footer-col {
	flex: 1 1 220px;
}
.pv-footer-logo {
	width: 92px;
	height: auto;
	margin-bottom: 14px;
	display: block;
}
.pv-footer-brand {
	color: #FFFFFF;
	font-weight: 700;
	font-size: 18px;
	margin: 0;
}
.pv-footer-col h4 {
	color: #C9962F;
	font-weight: 700;
	margin: 0 0 14px;
	font-size: 20px;
	letter-spacing: 0.3px;
}
.pv-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.pv-footer-col ul li {
	margin-bottom: 10px;
}
.pv-footer-col a {
	color: #EAE4D8;
	text-decoration: none;
}
.pv-footer-col a:hover {
	color: #A34430;
}
.pv-footer-col p {
	color: #EAE4D8;
	margin: 0 0 10px;
	max-width: none !important;
	width: auto !important;
}
.pv-footer-note {
	font-size: 13px;
	opacity: 0.8;
}
.footer-html-inner .pv-footer-divider {
	border: none;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	max-width: 1200px;
	margin: 0 auto;
}
.footer-html-inner .pv-footer-bottom {
	text-align: center;
	color: #EAE4D8;
	padding: 24px 20px;
	margin: 0 !important;
	font-size: 14px;
	max-width: none !important;
	width: auto !important;
}
@media (max-width: 768px) {
	.footer-html-inner .pv-footer-cols {
		flex-direction: column;
		padding: 50px 20px 30px;
		gap: 32px;
	}
}

/* --- footer: expanded 4-column layout (Brand / Services / Areas / Company)
   now that the site has 16 service pages + 25 location pages to link --- */
.footer-html-inner .pv-footer-cols-4 {
	max-width: 1320px;
	align-items: flex-start;
}
.pv-footer-tagline {
	font-size: 13.5px;
	line-height: 1.6;
	opacity: 0.85;
}
.pv-footer-services-col ul,
.pv-footer-areas-col ul {
	column-count: 1;
}
.pv-footer-services-col ul li,
.pv-footer-areas-col ul li {
	margin-bottom: 10px;
}
.pv-footer-county-heading {
	color: #A34430;
	font-weight: 700;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 14px 0 6px;
}
.pv-footer-county-heading:first-child {
	margin-top: 0;
}
.pv-footer-company-col ul {
	margin-bottom: 20px;
}
.pv-footer-contact-heading {
	margin-top: 0;
}
.pv-footer-brand-col .pv-footer-contact {
	margin-top: 18px;
}
.footer-html-inner .pv-footer-bottom a {
	color: #EAE4D8;
	text-decoration: underline;
}
.footer-html-inner .pv-footer-bottom a:hover {
	color: #A34430;
}

/* --- header: cream background, both normal (top-of-page transparent) and sticky-scrolled states --- */
.wp-block-kadence-header-row333_80d84a-57,
.wp-block-kadence-header-row333_80d84a-57 .kadence-header-row-inner,
.wp-block-kadence-header-row333_c83951-ed,
.wp-block-kadence-header-row333_c83951-ed .kadence-header-row-inner,
.wp-block-kadence-header-row333_5bdee9-2d,
.wp-block-kadence-header-row333_5bdee9-2d .kadence-header-row-inner,
.wp-block-kadence-header-row333_dff9d0-45,
.wp-block-kadence-header-row333_dff9d0-45 .kadence-header-row-inner {
	background-color: #EAE4D8 !important;
}

/* --- breathing room between the final lead-form section and the footer --- */
.entry-content .wp-block-kadence-advanced-form {
	padding-bottom: 70px;
}
@media (max-width: 600px) {
	.entry-content .wp-block-kadence-advanced-form {
		padding-bottom: 40px;
	}
}

/* --- paragraphs: full section width, left-aligned everywhere (site-wide) --- */
.entry-content p,
.wp-block-kadence-accordion p,
.kt-accordion-panel-inner p,
.pv-card-pad p {
	text-align: left !important;
}

/* --- utility: force palette9/white text (WP core color utility class),
   overrides the theme's own default paragraph color (palette4) which was
   winning over it and making white-on-Clay callouts unreadable --- */
.has-palette9-color {
	color: #FFFFFF !important;
}

/* --- why-us 3-card row: equal height regardless of text length --- */
.kb-row-layout-id53_dcd752-9f .kt-row-column-wrap {
	align-items: stretch;
}
.kb-row-layout-id53_dcd752-9f .wp-block-kadence-column {
	height: 100%;
}
.kb-row-layout-id53_dcd752-9f .kt-inside-inner-col {
	height: 100%;
	box-sizing: border-box;
}

/* --- FAQ accordion redesign: flat rows with a bottom divider, plus/minus toggle --- */
.wp-block-kadence-accordion {
	border: none !important;
}
.wp-block-kadence-pane {
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	border-bottom: 1px solid #D8CDB8 !important;
}
.wp-block-kadence-pane:last-child {
	border-bottom: none !important;
}
.kt-accordion-header-wrap {
	background: transparent !important;
}
.kt-blocks-accordion-header {
	background: transparent !important;
	padding: 20px 4px !important;
	transition: background-color 0.2s ease;
}
.kt-blocks-accordion-header:hover {
	background: rgba(163, 68, 48, 0.06) !important;
}
.kt-blocks-accordion-title {
	color: #202A33;
	font-weight: 700;
	font-size: 1.05rem;
	transition: color 0.2s ease;
}
.kt-blocks-accordion-header:hover .kt-blocks-accordion-title {
	color: #A34430;
}
/* Kadence's native "basic" icon style already draws + and rotates it to - on
   expand with correct geometry; we only need to recolor it to Clay (its
   default is --global-palette5 gray) - a plain rule loses this fight since
   the plugin's own stylesheet loads after ours at equal specificity. */
.kt-blocks-accordion-icon-trigger::before,
.kt-blocks-accordion-icon-trigger::after {
	background-color: #A34430 !important;
}
.kt-accordion-panel-inner {
	padding-top: 4px !important;
	padding-bottom: 18px !important;
}
.kt-accordion-panel-inner p {
	font-weight: 400;
}

/* --- contact form: narrower, centered form width --- */
.wp-block-kadence-advanced-form {
	max-width: 650px;
	margin-left: auto;
	margin-right: auto;
}

/* --- tighter vertical rhythm between content sections (site-wide, homepage included) --- */
.kt-row-column-wrap:has(.pv-section-body) {
	padding-top: 26px !important;
	padding-bottom: 26px !important;
}

/* --- content fills the full section width, site-wide (homepage + all
   inner pages), per explicit request over the narrower reading-width
   tuning tried earlier. --- */
.pv-section-body p,
.pv-section-body .wp-block-list {
	max-width: none;
}

/* --- inner pages (service/location/blog templates): centered H1/H2 in Clay.
   Scoped OFF the homepage - its hero H1 (.pv-hero-title, a separate class,
   not .pv-section-body h1) stays white by deliberate contrast-tested
   decision: Clay-on-photo measured below the 3:1 WCAG minimum. --- */
.page-template-default:not(.home) .pv-section-body h1,
.post-template-default .pv-section-body h1 {
	text-align: center;
	color: #A34430;
}
.page-template-default:not(.home) .pv-section-body h2,
.post-template-default .pv-section-body h2 {
	text-align: center;
}

/* --- inner pages (Wave 1 service/area/etc pages): clearance so the absolutely
   positioned transparent header doesn't overlap the page's first heading -
   the homepage doesn't need this since its hero provides its own clearance --- */
.page-template-default .entry-header.page-title,
.post-template-default .entry-header.page-title,
.post-template-default .entry-header.post-title {
	display: none !important;
}
/* the homepage's hero row wrapper carries its own cream bg + xs padding,
   which showed through as a boxed cream band (white gutters on the sides)
   above the full-bleed hero image once the header stopped overlapping it. */
.kb-row-layout-id53_hero11-a1 {
	padding: 0 !important;
	background: transparent !important;
}
.kb-row-layout-id53_hero11-a1 > .kt-row-column-wrap,
.kb-row-layout-id53_hero11-a1 .kadence-column53_hero12-b2,
.kb-row-layout-id53_hero11-a1 .kt-inside-inner-col {
	padding: 0 !important;
	margin: 0 !important;
}
/* CORRECTED: the <header> element itself renders at height:0 - the visible
   cream bar (.kb-header-container) is position:absolute, floating OVER the
   page (by design, for the homepage's dark hero to show through it). On
   inner pages there is no hero to sit behind it, so without this clearance
   the first ~96-128px of content renders HIDDEN behind the header bar, not
   just "touching" it. This must stay - do not zero it out again. */
.page-template-default:not(.home) .content-area,
.post-template-default .content-area {
	margin-top: 0 !important;
}
.page-template-default:not(.home) .entry-content-wrap,
.post-template-default .entry-content-wrap {
	padding-top: 128px !important;
}
@media (max-width: 1024px) {
	.page-template-default:not(.home) .entry-content-wrap,
	.post-template-default .entry-content-wrap { padding-top: 108px !important; }
}
@media (max-width: 768px) {
	.page-template-default:not(.home) .entry-content-wrap,
	.post-template-default .entry-content-wrap { padding-top: 96px !important; }
}

/* --- PART A: header spec lock-in - full-width cream bar, no floating card, exact height/spacing --- */
.wp-block-kadence-header333-cpt-id .kb-header-container {
	margin: 0 !important;
	border-radius: 0 !important;
}
.wp-block-kadence-header-row333_80d84a-57 {
	padding-left: 28px !important;
	padding-right: 18px !important;
	min-height: 96px !important;
}
.wp-block-kadence-header-row333_80d84a-57 .kadence-header-row-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.wp-block-kadence-header-desktop .wp-block-kadence-header-column-center {
	flex: 1;
	display: flex;
	justify-content: center;
}
.wp-block-kadence-header-row333_80d84a-57 .wp-block-kadence-navigation ul.kb-navigation {
	display: flex;
	gap: 20px;
	justify-content: center;
	align-items: center;
}
.wp-block-kadence-header-row333_80d84a-57 .kb-nav-link-content {
	color: #202A33 !important;
	font-weight: 600;
	transition: color 0.2s ease;
}
.wp-block-kadence-header-row333_80d84a-57 .kb-nav-link-content:hover {
	color: #A34430 !important;
}
@media (max-width: 768px) {
	.wp-block-kadence-header-row333_5bdee9-2d {
		min-height: 76px !important;
		padding-left: 20px !important;
		padding-right: 16px !important;
	}
}

/* --- PART C: sticky mobile bottom bar (Call + Get a Free Estimate), mobile only --- */
.pv-mobile-bar {
	display: none;
}
@media (max-width: 768px) {
	.pv-mobile-bar {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 999;
		height: 60px;
		box-shadow: 0 -2px 10px rgba(0,0,0,0.15);
	}
	.pv-mobile-bar-btn {
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 14px;
		font-weight: 700;
		text-decoration: none;
		text-transform: uppercase;
		letter-spacing: 0.4px;
	}
	.pv-mobile-bar-call {
		background: #202A33;
		color: #EAE4D8;
	}
	.pv-mobile-bar-estimate {
		background: #A34430;
		color: #FFFFFF;
	}
	body {
		padding-bottom: 60px !important;
	}
}

/* --- PART D/E: reusable "chip" tags for areas-served / neighborhood lists --- */
.pv-chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 16px 0;
}
.pv-chip {
	display: inline-flex;
	align-items: center;
	background: #D8CDB8;
	color: #202A33;
	font-size: 13.5px;
	font-weight: 600;
	padding: 8px 16px;
	border-radius: 999px;
	text-decoration: none;
	transition: background-color 0.2s ease;
}
/* only real links get the hover state - a plain <span> chip (unlinked
   neighborhood name) isn't clickable, so hovering it to Clay would
   falsely suggest it's interactive. */
a.pv-chip:hover {
	background: #A34430;
	color: #FFFFFF;
}

/* --- PART D/E/F: reusable auto-scrolling related-content carousel --- */
.pv-carousel-wrap {
	overflow: hidden;
	position: relative;
	margin: 20px 0;
	-webkit-mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent);
	mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent);
}
.pv-carousel-track {
	display: flex;
	gap: 20px;
	width: max-content;
	animation: pv-carousel-scroll 32s linear infinite;
}
.pv-carousel-wrap:hover .pv-carousel-track {
	animation-play-state: paused;
}
@keyframes pv-carousel-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
.pv-carousel-card {
	flex: 0 0 200px;
	background: #FFFFFF;
	border-radius: 10px;
	overflow: hidden;
	text-decoration: none;
	color: #202A33;
	box-shadow: 0 1px 6px rgba(0,0,0,0.08);
}
.pv-carousel-card img {
	width: 200px;
	height: 120px;
	object-fit: contain;
	background-color: #202A33;
	display: block;
}
.pv-carousel-card span {
	display: block;
	padding: 10px 12px;
	font-size: 13.5px;
	font-weight: 700;
}

/* --- inner-page hero H1: centered above the two-column split (text
   left / image right) rather than left-aligned inside the text column --- */
.pv-inner-hero-h1 {
	text-align: center;
	margin-bottom: 28px;
}

/* --- PART D/E: two-column hero for service/location pages --- */
.pv-inner-hero {
	display: flex;
	align-items: flex-start;
	gap: 48px;
	padding: 48px 0;
	flex-wrap: wrap;
}
.pv-inner-hero-text {
	flex: 1 1 420px;
}
.pv-inner-hero-img {
	flex: 1 1 380px;
	max-width: 460px;
}
.pv-inner-hero-img img {
	width: 100%;
	aspect-ratio: 7 / 5;
	object-fit: cover;
	border-radius: 12px;
	display: block;
}

/* --- PART D/E: alternating text/image content blocks --- */
.pv-alt-block {
	display: flex;
	align-items: flex-start;
	gap: 40px;
	flex-wrap: wrap;
	margin: 36px 0;
}
.pv-alt-block.pv-alt-reverse {
	flex-direction: row-reverse;
}
.pv-alt-block-text {
	flex: 1 1 420px;
}
.pv-alt-block-text h2 {
	text-align: left !important;
}
.pv-alt-block-text h2::after {
	margin-left: 0 !important;
	margin-right: auto !important;
}
.pv-alt-block-img {
	flex: 1 1 340px;
	max-width: 420px;
}
.pv-alt-block-img img {
	width: 100%;
	aspect-ratio: 7 / 5;
	object-fit: cover;
	border-radius: 12px;
	display: block;
}
@media (max-width: 768px) {
	.pv-inner-hero, .pv-alt-block, .pv-alt-block.pv-alt-reverse {
		flex-direction: column;
	}
}

/* --- PART D: What's Included bullet list --- */
.pv-included-list {
	list-style: none;
	margin: 20px 0;
	padding: 0;
	display: grid;
	gap: 12px;
}
.pv-included-list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 15px;
}
.pv-included-list li::before {
	content: "";
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	background-color: #A34430;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center / contain;
}


/* --- header nav: county group-heading rows inside the "Areas We Serve"
   dropdown - visually distinct from clickable area links (not a real
   destination, url="#" is inert) --- */
.pv-nav-group-heading {
	margin-top: 10px;
	pointer-events: none;
}
.pv-nav-group-heading:first-child {
	margin-top: 0;
}
.pv-nav-group-heading .kb-nav-link-content {
	color: #A34430 !important;
	font-weight: 700 !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.6px;
	cursor: default;
}

/* --- header nav dropdown: keep it within a sane width/height so 25+ area
   links don't produce an absurdly tall panel --- */
.kb-nav-sub-menu {
	max-height: 80vh;
	overflow-y: auto !important;
}

/* ===========================================================
   NAV DROPDOWN REDESIGN (Services / Areas We Serve)
   =========================================================== */
.kb-nav-sub-menu {
	background-color: #FFFFFF !important;
	border-radius: 10px !important;
	box-shadow: 0 18px 40px -12px rgba(32,42,51,0.22), 0 4px 12px rgba(32,42,51,0.10) !important;
	border-top: 3px solid #A34430 !important;
	padding: 8px 0 !important;
	z-index: 999 !important;
	overflow: hidden auto !important;
	width: 300px !important;
}
.kb-nav-sub-menu .kb-nav-link-content {
	white-space: nowrap !important;
}
.kb-nav-sub-menu .kadence-menu-item {
	border-radius: 0 !important;
}
.kb-nav-sub-menu .kadence-menu-item,
.kb-nav-sub-menu .kadence-menu-item > .kb-link-wrap {
	display: block;
	width: 100%;
	box-sizing: border-box;
}
.kb-nav-sub-menu .kb-link-wrap {
	display: flex !important;
}
.kb-nav-sub-menu .kb-nav-link-content {
	color: #202A33 !important;
	font-family: 'Josefin Sans', sans-serif !important;
	padding: 12px 20px !important;
	display: block;
	flex: 1;
	width: 100%;
	box-sizing: border-box;
	border-left: 3px solid transparent;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.kb-nav-sub-menu .kb-nav-link-content:hover {
	background-color: rgba(163,68,48,0.07) !important;
	border-left-color: #A34430 !important;
	color: #A34430 !important;
}
.pv-nav-seeall {
	border-top: 1px solid rgba(32,42,51,0.12) !important;
	margin-top: 6px;
	padding-top: 6px;
}
.pv-nav-seeall .kb-nav-link-content {
	color: #A34430 !important;
	font-weight: 700 !important;
}
.pv-nav-seeall:hover .kb-nav-link-content {
	background-color: rgba(163,68,48,0.1) !important;
	border-left-color: #A34430 !important;
}

/* ===========================================================
   HUB PAGE CARDS (Services / Areas hub grids)
   =========================================================== */
.pv-hub-card {
	position: relative;
	box-shadow: 0 10px 26px -12px rgba(32,42,51,0.22);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	display: flex;
	flex-direction: column;
	height: 100%;
	border-radius: 14px;
	overflow: hidden;
}
.pv-hub-card::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: linear-gradient(90deg, #C9962F, #A34430);
	z-index: 1;
}
.pv-hub-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 36px -12px rgba(32,42,51,0.3);
}
.pv-hub-card-img-wrap {
	width: calc(100% + 64px);
	margin: -32px -32px 14px -32px;
	height: 200px;
	overflow: hidden;
}
.pv-hub-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}
.pv-hub-card:hover .pv-hub-card-img {
	transform: scale(1.07);
}
.pv-hub-card h3 {
	margin-top: 0;
	margin-bottom: 8px;
	min-height: 2.6em;
	display: flex;
	align-items: center;
}
.pv-hub-card p {
	flex-grow: 1;
}
.pv-hub-card > p:not(:has(.pv-hub-learnmore)) {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 4.35em;
}
.pv-hub-card p:has(.pv-hub-learnmore) {
	flex-grow: 0;
	margin-top: auto;
}
.pv-hub-learnmore {
	color: #A34430;
	font-weight: 700;
	text-decoration: none;
}
.pv-hub-learnmore:hover { text-decoration: underline; }
/* stretch every card in a hub row to the tallest card's height. Note:
   the row's grid (.kt-row-column-wrap) already sizes 3 equal tracks
   regardless of how many cards are actually present, so a trailing
   lone card correctly takes one third-width track on its own — no
   extra width/flex override is needed (an earlier attempt at one
   here computed 33% of an already-33%-wide grid track, i.e. ~11%,
   and squashed every hub-card row to a sliver; do not reintroduce
   width/flex-basis rules on the grid item, only alignment). */
.kt-row-column-wrap:has(> .wp-block-kadence-column > .pv-hub-card) {
	align-items: stretch !important;
}
.wp-block-kadence-column:has(> .pv-hub-card) {
	display: flex !important;
}
.wp-block-kadence-column:has(> .pv-hub-card) > .kt-inside-inner-col {
	display: flex !important;
	width: 100%;
}

@media (max-width: 767px) {
	.pv-hub-card-img-wrap { height: 170px; }
}

/* ===========================================================
   GALLERY HUB grid
   =========================================================== */
.pv-gallery-grid.wp-block-gallery {
	gap: 14px;
}
.pv-gallery-img img {
	border-radius: 8px;
	box-shadow: 0 6px 16px -6px rgba(32,42,51,0.2);
	object-fit: cover;
	height: 260px;
	width: 100%;
}
@media (max-width: 767px) {
	.pv-gallery-img img { height: 200px; }
}

/* ===========================================================
   FOOTER: "See All" link row styling (Services / Areas columns)
   =========================================================== */
.pv-footer-seeall a {
	color: #A34430 !important;
	font-weight: 700;
}

/* ===========================================================
   ACTIVE NAV STATE: highlight the top-level nav item matching
   the current page (set via small inline JS since these are
   custom-URL navigation-link blocks, not linked WP page IDs)
   =========================================================== */
.pv-nav-active-top > .kb-link-wrap > a.kb-nav-link-content {
	color: #A34430 !important;
	position: relative;
}
.pv-nav-active-top > .kb-link-wrap > a.kb-nav-link-content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 2px;
	background: #A34430;
}

/* ===========================================================
   GUIDE POSTS: hide Kadence's automatic full-width featured
   image banner above the title (theme_mod post_feature=false
   is not reliably honored by kadence()->option() in this
   version, so force it off via CSS as a guaranteed fallback) -
   our own contained pv-inner-hero-img already shows the image
   correctly, beside the text, lower down on the page.
   =========================================================== */
.single-post .post-thumbnail.article-post-thumbnail {
	display: none !important;
}

/* ===========================================================
   GUIDES ARCHIVE CARDS: our feature-card images already have
   title text and a logo badge baked in near both edges; the
   archive grid's thumbnail box is a narrower 3:2 ratio than our
   1200x628 (~1.91:1) images, so object-fit:cover was cropping
   ~130px off each side and clipping that text. Switch to
   contain (small letterboxing top/bottom) so nothing is cut.
   =========================================================== */
article.type-post .wp-post-image {
	object-fit: cover !important;
	background-color: #202A33;
}

/* ===========================================================
   GUIDES ARCHIVE CARDS: redesign — dark cards, image properly
   framed, "Read More" as a real button
   - hide the redundant per-card "GUIDES" category tag (we are
     already on the /guides/ archive, repeating it on every card
     is just noise)
   - hide the "By Pavers Orlando" author byline (referral
     service, not a personal blog - no need for an author link)
   - the theme's default thumbnail box is a 2:3 portrait crop;
     our feature images are ~1.91:1 landscape with title text
     baked in near both edges, so object-fit:contain inside that
     mismatched box left the image tiny and floating inside a lot
     of dark padding ("not in frame"). Re-declaring the box at the
     image's own ratio with cover fills the frame edge-to-edge
     with no letterboxing and only a sliver of crop at the very
     edges, instead of a small centered image.
   - card background switched to the site's dark navy with white
     text, and the "Read More" link turned into a solid button
     pinned to the bottom of the card.
   =========================================================== */
.category-guides .entry-taxonomies,
article.type-post .entry-taxonomies {
	display: none !important;
}
.category-guides .posted-by,
article.type-post .posted-by {
	display: none !important;
}
.category-guides .entry-meta-divider-dot .meta-sep {
	display: none;
}
.category-guides .loop-entry {
	background: #202A33;
	box-shadow: 0 10px 26px -10px rgba(0,0,0,0.35);
	border-radius: 14px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.category-guides .loop-entry:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 34px -10px rgba(0,0,0,0.45);
}
.category-guides .post-thumbnail.kadence-thumbnail-ratio-2-3 {
	/* Kadence sizes this box with the old height:0 + padding-bottom
	   percentage-hack (not the CSS aspect-ratio property), so an
	   aspect-ratio declaration here doesn't override its ratio —
	   padding-bottom does. 628/1200 = 52.33%, our images' real ratio. */
	padding-bottom: 52.33% !important;
}
/* subtle bottom-fade on the image so it blends into the dark card
   below it instead of ending on a hard edge */
.category-guides .post-thumbnail-inner::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 45%;
	background: linear-gradient(180deg, rgba(32,42,51,0) 0%, rgba(32,42,51,0.85) 100%);
	pointer-events: none;
}
.category-guides .loop-entry .entry-title,
.category-guides .loop-entry .entry-title a {
	color: #FFFFFF;
}
/* excerpt removed per feedback — title, a date tag, then the button */
.category-guides .loop-entry .entry-summary {
	display: none !important;
}
.category-guides .loop-entry .entry-meta {
	margin-top: 10px;
}
.category-guides .loop-entry .entry-meta .posted-on {
	display: inline-block;
	background: rgba(255,255,255,0.08);
	color: #D8CDB8;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	padding: 5px 12px;
	border-radius: 20px;
}
.category-guides .loop-entry .entry-content-wrap {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	padding-bottom: 24px;
}
.category-guides .loop-entry .entry-footer {
	margin-top: auto;
	padding-top: 6px;
}
.category-guides .loop-entry .post-more-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #A34430;
	color: #FFFFFF !important;
	font-weight: 700;
	padding: 10px 20px;
	border-radius: 8px;
	text-decoration: none;
	transition: background 0.15s ease;
}
.category-guides .loop-entry .post-more-link:hover {
	background: #C9962F;
}
.category-guides .loop-entry .post-more-link .kadence-svg-iconset {
	color: #FFFFFF;
}

.archive-description {
    max-width: 700px;
    margin: 14px auto 0;
}

/* ===========================================================
   GUIDES ARCHIVE REDESIGN v2 — the featured images now carry
   their own category pill + headline + brand-color treatment
   baked in, so the old dark-navy card (white title repeated
   over a bottom-faded image) was double-stating the title and
   fighting the image for attention. New direction: light,
   airy cards that let the image be the hero element, with a
   refined intro band above the grid matching the Services/
   Areas/Gallery hub-page intro pattern for sitewide consistency.
   =========================================================== */

/* --- intro band: eyebrow + centered title/description --- */
.category-guides .entry-hero.post-archive-hero-section {
	background: var(--global-palette9);
	padding: 64px 0 8px;
}
.category-guides .page-title.archive-title {
	text-align: center;
	position: relative;
	margin-bottom: 18px;
}
.category-guides .page-title.archive-title::before {
	content: "RESOURCES";
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: #A34430;
	margin-bottom: 10px;
}
.category-guides .archive-description {
	text-align: center;
	max-width: 640px;
	font-size: 1.05rem;
	color: #40444A;
}

/* --- grid spacing --- */
.category-guides #archive-container.kadence-posts-list {
	gap: 36px 32px !important;
}

/* --- card: light, modern, image-forward --- */
.category-guides .loop-entry {
	background: #FFFFFF;
	box-shadow: 0 8px 24px -12px rgba(32,42,51,0.18);
	border: 1px solid rgba(32,42,51,0.06);
	border-radius: 16px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.category-guides .loop-entry:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 36px -14px rgba(32,42,51,0.28);
}
/* the image already carries its own left-side gradient + tag +
   headline, so the old bottom-fade (meant to blend into a dark
   card) is dropped — the card below is light now, no blend needed */
.category-guides .post-thumbnail-inner::after {
	content: none;
}
.category-guides .loop-entry .entry-content-wrap {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	padding: 20px 22px 22px;
}
.category-guides .loop-entry .entry-title,
.category-guides .loop-entry .entry-title a {
	color: #202A33;
	font-size: 1.38rem;
	line-height: 1.3;
}
.category-guides .loop-entry .entry-title {
	min-height: 2.6em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.category-guides .loop-entry .entry-meta {
	margin: 12px 0 0;
}
.category-guides .loop-entry .entry-meta .posted-on {
	display: inline-block;
	background: #EAE4D8;
	color: #202A33;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	padding: 5px 12px;
	border-radius: 20px;
}
/* footer pinned to the bottom of the card via margin-top:auto, so the
   button sits the same distance from the card's bottom edge on every
   card regardless of how tall the row stretched it (title/meta content
   above stays top-aligned, any leftover space collects above the
   divider instead of under the button) */
.category-guides .loop-entry .entry-footer {
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid rgba(32,42,51,0.08);
}
.category-guides .loop-entry .post-more-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #A34430;
	color: #FFFFFF !important;
	font-weight: 700;
	font-size: 0.92rem;
	padding: 10px 18px;
	border-radius: 8px;
	text-decoration: none;
	transition: background 0.15s ease, gap 0.15s ease;
}
.category-guides .loop-entry .post-more-link:hover {
	gap: 12px;
	background: #C9962F;
	color: #FFFFFF !important;
}
.category-guides .loop-entry .post-more-link .kadence-svg-iconset {
	color: currentColor;
}

@media (max-width: 767px) {
	.category-guides .entry-hero.post-archive-hero-section {
		padding: 40px 0 4px;
	}
}
.archive-description p {
    font-size: 1.05rem;
    line-height: 1.6;
    color: #40444A;
    margin: 0;
}

/* --- archive hero: clear the floating nav --- */
.entry-hero-container-inner .entry-header {
    padding-top: 110px;
    padding-bottom: 30px;
    min-height: 0;
}
@media all and (max-width: 767px) {
    .entry-hero-container-inner .entry-header {
        padding-top: 90px;
    }
}

/* --- homepage gallery: restore grid (core block CSS missing) --- */
.wp-block-gallery {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    list-style: none;
    padding: 0;
    margin: 24px 0 0;
}
.wp-block-gallery > a {
    width: calc(33.333% - 11px) !important;
    flex: 0 0 calc(33.333% - 11px) !important;
    max-width: calc(33.333% - 11px) !important;
    margin: 0 !important;
    display: block !important;
}
.wp-block-gallery .wp-block-image {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    display: block !important;
}
.wp-block-gallery .wp-block-image img {
    width: 100% !important;
    height: 260px !important;
    max-width: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 10px;
}
.wp-block-gallery .wp-block-image figcaption {
    text-align: center;
    margin-top: 8px;
    font-size: 0.9rem;
    color: #40444A;
}
@media all and (max-width: 1024px) {
    .wp-block-gallery > a {
        width: calc(50% - 8px) !important;
        flex: 0 0 calc(50% - 8px) !important;
        max-width: calc(50% - 8px) !important;
    }
}
@media all and (max-width: 600px) {
    .wp-block-gallery > a {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

/* ===========================================================
   HOMEPAGE REDESIGN v2 — full visual overhaul + motion
   Scoped to .page-id-53 wherever the base selector is shared
   with other templates. Content/text is untouched; this file
   only restyles existing markup and adds a small reveal-on-
   scroll script (js/homepage-reveal.js, front-page only).
   New accent colors used only on the homepage:
     --pv-ink   #171B20  (near-black, dark sections)
     --pv-gold  #C9962F  (warm amber, numbers/accents)
   =========================================================== */

.page-id-53 {
	--pv-ink: #171B20;
	--pv-gold: #C9962F;
}

/* --- motion base: scroll-reveal utility, class added by JS --- */
.pv-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}
.pv-reveal.is-visible {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.pv-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ===========================================================
   HERO
   =========================================================== */
.pv-hero .pv-hero-slide {
	animation: pv-kenburns 10s ease-in-out infinite alternate;
}
@keyframes pv-kenburns {
	from { transform: scale(1); }
	to { transform: scale(1.09); }
}
.pv-hero-overlay {
	background: linear-gradient(180deg, rgba(23, 27, 32, 0.55) 0%, rgba(23, 27, 32, 0.88) 100%);
}
.pv-hero-eyebrow,
.pv-hero-title,
.pv-hero .pv-hero-sub,
.pv-hero-ctas,
.pv-hero-trust {
	opacity: 0;
	transform: translateY(22px);
	animation: pv-hero-in 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.pv-hero-eyebrow { animation-delay: 0.1s; }
.pv-hero-title { animation-delay: 0.22s; }
.pv-hero .pv-hero-sub:nth-of-type(1) { animation-delay: 0.36s; }
.pv-hero .pv-hero-sub:nth-of-type(2) { animation-delay: 0.44s; }
.pv-hero .pv-hero-sub:nth-of-type(3) { animation-delay: 0.52s; }
.pv-hero .pv-hero-sub:nth-of-type(4) { animation-delay: 0.6s; }
.pv-hero-ctas { animation-delay: 0.58s; }
.pv-hero-trust { animation-delay: 0.7s; }
@keyframes pv-hero-in {
	to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.pv-hero .pv-hero-slide,
	.pv-hero-eyebrow, .pv-hero-title, .pv-hero .pv-hero-sub, .pv-hero-ctas, .pv-hero-trust {
		animation: none !important; opacity: 1 !important; transform: none !important;
	}
}
.pv-hero-title { text-shadow: 0 2px 18px rgba(0, 0, 0, 0.3); }
.pv-hero-eyebrow {
	display: inline-block;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	padding: 7px 18px;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.pv-btn {
	position: relative;
	overflow: hidden;
	border-radius: 10px;
	transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}
.pv-btn::before {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,0.35) 50%, transparent 100%);
	transform: skewX(-20deg);
	transition: left 0.6s ease;
}
.pv-btn:hover::before { left: 130%; }
.pv-btn:hover { transform: translateY(-3px); }
.pv-btn-primary { box-shadow: 0 8px 22px -8px rgba(163, 68, 48, 0.55); }
.pv-btn-primary:hover { box-shadow: 0 14px 28px -8px rgba(163, 68, 48, 0.65); }
.pv-btn-outline:hover { box-shadow: 0 14px 28px -10px rgba(0, 0, 0, 0.35); }

.pv-hero-trust {
	background: rgba(23, 27, 32, 0.42);
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	border: 1px solid rgba(255, 255, 255, 0.2);
	box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);
	border-radius: 14px;
}
.pv-hero-trust span { transition: transform 0.25s ease, color 0.25s ease; }
.pv-hero-trust span:hover { transform: translateY(-2px); color: #FFFFFF; }
.pv-hero-trust span:hover .pv-trust-icon { color: var(--pv-gold); }
.pv-trust-icon { transition: color 0.25s ease; }

.pv-hero::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 18px;
	width: 14px;
	height: 14px;
	border-right: 2px solid rgba(255, 255, 255, 0.65);
	border-bottom: 2px solid rgba(255, 255, 255, 0.65);
	transform: translateX(-50%) rotate(45deg);
	z-index: 3;
	animation: pv-scroll-cue 1.8s ease-in-out infinite;
	pointer-events: none;
}
@keyframes pv-scroll-cue {
	0%, 100% { opacity: 0.35; transform: translateX(-50%) rotate(45deg) translate(0, 0); }
	50% { opacity: 1; transform: translateX(-50%) rotate(45deg) translate(4px, 4px); }
}
@media (max-width: 600px) { .pv-hero::after { display: none; } }

/* ===========================================================
   TYPOGRAPHY / SECTION HEADINGS
   =========================================================== */
.page-id-53 .entry-content h2 {
	font-size: clamp(1.9rem, 1.4rem + 2vw, 2.85rem);
	letter-spacing: 0.2px;
}
.page-id-53 .entry-content h2::after {
	width: 72px;
	height: 5px;
	background: linear-gradient(90deg, #A34430, var(--pv-gold));
	border-radius: 3px;
}

/* ===========================================================
   "Paver Services in Orlando" — turn plain columns into cards
   =========================================================== */
.page-id-53 h2#services ~ .wp-block-columns {
	gap: 28px;
	margin-bottom: 28px !important;
}
.page-id-53 h2#services ~ .wp-block-columns .wp-block-column {
	background: #FFFFFF;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 26px -14px rgba(23, 27, 32, 0.25);
	transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
	padding-bottom: 22px !important;
}
.page-id-53 h2#services ~ .wp-block-columns .wp-block-column:hover {
	transform: translateY(-8px);
	box-shadow: 0 24px 44px -16px rgba(23, 27, 32, 0.32);
}
.page-id-53 h2#services ~ .wp-block-columns .wp-block-image {
	margin: 0 0 18px;
	border-radius: 0;
	position: relative;
}
.page-id-53 h2#services ~ .wp-block-columns .wp-block-image img {
	aspect-ratio: 16 / 11;
	border-radius: 0;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.page-id-53 h2#services ~ .wp-block-columns .wp-block-column:hover .wp-block-image img {
	transform: scale(1.06);
}
.page-id-53 h2#services ~ .wp-block-columns h3 {
	width: auto !important;
	margin: 0 22px 10px;
	padding-left: 0;
	border-left: none;
	font-size: 1.25rem;
}
.page-id-53 h2#services ~ .wp-block-columns p {
	width: auto !important;
	margin: 0 22px;
	font-size: 0.96rem;
	color: #40444A;
}
.page-id-53 h2#services ~ .wp-block-columns p a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 700;
	color: #A34430;
	text-decoration: none;
	margin-top: 10px;
	transition: gap 0.25s ease;
}
.page-id-53 h2#services ~ .wp-block-columns p a:hover {
	gap: 10px;
}
.page-id-53 h2#services ~ .wp-block-columns p a::after {
	content: "\2192";
	transition: transform 0.25s ease;
}
@media (max-width: 767px) {
	.page-id-53 h2#services ~ .wp-block-columns { flex-wrap: wrap; }
	.page-id-53 h2#services ~ .wp-block-columns .wp-block-column { flex-basis: 100% !important; }
}

/* ===========================================================
   "Why Homeowners Use Us" cards
   =========================================================== */
.page-id-53 .pv-card-pad {
	position: relative;
	border-radius: 18px;
	transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
	overflow: hidden;
}
.page-id-53 .pv-card-pad::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: linear-gradient(90deg, #A34430, var(--pv-gold));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s ease;
}
.page-id-53 .pv-card-pad:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 40px -16px rgba(23, 27, 32, 0.28);
}
.page-id-53 .pv-card-pad:hover::before { transform: scaleX(1); }
.page-id-53 .pv-card-pad .kt-svg-icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 14px;
	background: rgba(163, 68, 48, 0.1);
	transition: background 0.35s ease, transform 0.35s ease;
}
.page-id-53 .pv-card-pad:hover .kt-svg-icon-wrap {
	background: #A34430;
	transform: rotate(-6deg) scale(1.05);
}
.page-id-53 .pv-card-pad:hover .kt-svg-icon-wrap svg { color: #FFFFFF !important; }

/* ===========================================================
   "Recent Paver Projects" gallery — bold hover caption + color pop
   =========================================================== */
.page-id-53 .wp-block-gallery .wp-block-image {
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 26px -12px rgba(23, 27, 32, 0.3);
	transition: box-shadow 0.35s ease;
	position: relative;
}
.page-id-53 .wp-block-gallery > a { display: block; border-radius: 14px; overflow: hidden; }
.page-id-53 .wp-block-gallery .wp-block-image img {
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), filter 0.5s ease;
	filter: saturate(0.85);
}
.page-id-53 .wp-block-gallery > a:hover .wp-block-image img {
	transform: scale(1.08);
	filter: saturate(1.15);
}
.page-id-53 .wp-block-gallery > a:hover .wp-block-image {
	box-shadow: 0 20px 40px -14px rgba(23, 27, 32, 0.42);
}
.page-id-53 .wp-block-gallery figcaption {
	font-size: 14.5px;
	letter-spacing: 0.3px;
	transition: padding-bottom 0.35s ease;
}
.page-id-53 .wp-block-gallery > a:hover figcaption { padding-bottom: 16px; }
.page-id-53 .wp-block-gallery figcaption::after {
	content: "View Project \2192";
	display: block;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--pv-gold);
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height 0.35s ease, opacity 0.35s ease, margin-top 0.35s ease;
}
.page-id-53 .wp-block-gallery > a:hover figcaption::after {
	max-height: 20px;
	opacity: 1;
	margin-top: 6px;
}

/* ===========================================================
   "How It Works" — dark section, numbered grid (was a list)
   =========================================================== */
.page-id-53 .kadence-column53_5e9101-66,
.page-id-53 .kadence-column53_5e9101-66 > .kt-inside-inner-col {
	background: var(--pv-ink) !important;
}
.page-id-53 .kadence-column53_5e9101-66 h2#how-it-works {
	color: #FFFFFF;
}
.page-id-53 .kadence-column53_5e9101-66 h2#how-it-works::after {
	margin-left: auto;
	margin-right: auto;
}
.page-id-53 h2#how-it-works ~ ol {
	list-style: none;
	counter-reset: pv-step;
	margin: 36px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	max-width: none;
}
.page-id-53 h2#how-it-works ~ ol > li {
	counter-increment: pv-step;
	position: relative;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	padding: 28px 22px 22px;
	color: #D8CDB8;
	transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.page-id-53 h2#how-it-works ~ ol > li:hover {
	transform: translateY(-4px);
	border-color: rgba(201, 150, 47, 0.55);
	background: rgba(255, 255, 255, 0.07);
}
.page-id-53 h2#how-it-works ~ ol > li::before {
	content: counter(pv-step, decimal-leading-zero);
	display: block;
	font-family: var(--global-heading-font-family);
	font-weight: 700;
	font-size: 2.2rem;
	color: var(--pv-gold);
	margin-bottom: 10px;
	line-height: 1;
}
.page-id-53 h2#how-it-works ~ ol > li strong { color: #FFFFFF; }
@media (max-width: 1024px) {
	.page-id-53 h2#how-it-works ~ ol { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.page-id-53 h2#how-it-works ~ ol { grid-template-columns: 1fr; }
}

/* ===========================================================
   HOMEPAGE REDESIGN v3 — section rhythm + new content blocks
   =========================================================== */

/* --- section background rhythm (off-white instead of stark
   white so it still reads warm against the brand palette) --- */
.page-id-53 .kadence-column53_d32f31-01,
.page-id-53 .kadence-column53_d32f31-01 > .kt-inside-inner-col,
.page-id-53 .kadence-column53_11599f-21,
.page-id-53 .kadence-column53_11599f-21 > .kt-inside-inner-col,
.page-id-53 .kadence-column53_0fc59b-6f,
.page-id-53 .kadence-column53_0fc59b-6f > .kt-inside-inner-col,
.page-id-53 .kadence-column53_e89219-60,
.page-id-53 .kadence-column53_e89219-60 > .kt-inside-inner-col,
.page-id-53 .kadence-column53_a71ab4-a7,
.page-id-53 .kadence-column53_a71ab4-a7 > .kt-inside-inner-col,
.page-id-53 .kadence-column53_d6d546-d2,
.page-id-53 .kadence-column53_d6d546-d2 > .kt-inside-inner-col,
.page-id-53 .kadence-column53_2e0dbe-47,
.page-id-53 .kadence-column53_2e0dbe-47 > .kt-inside-inner-col {
	background: #F7F5F0 !important;
}
.page-id-53 .kadence-column53_0a1338-3e,
.page-id-53 .kadence-column53_0a1338-3e > .kt-inside-inner-col,
.page-id-53 .kadence-column53_76c24d-e0,
.page-id-53 .kadence-column53_76c24d-e0 > .kt-inside-inner-col,
.page-id-53 .kadence-column53_fe2ea4-d3,
.page-id-53 .kadence-column53_fe2ea4-d3 > .kt-inside-inner-col,
.page-id-53 .kadence-column53_5de07c-64,
.page-id-53 .kadence-column53_5de07c-64 > .kt-inside-inner-col {
	background: #D8CDB8 !important;
}
.page-id-53 .kadence-column53_cta002-cd,
.page-id-53 .kadence-column53_cta002-cd > .kt-inside-inner-col {
	background: var(--pv-ink) !important;
}

/* ===========================================================
   "Why Pavers Fail" — icon cards
   =========================================================== */
.pv-fail-intro {
	max-width: 640px;
	margin: 0 auto 8px !important;
	font-size: 1.1rem;
	color: #40444A;
}
.pv-fail-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
	margin-top: 30px;
}
.pv-fail-card {
	background: #FFFFFF;
	border-radius: 18px;
	padding: 30px 26px;
	box-shadow: 0 10px 28px -16px rgba(23, 27, 32, 0.22);
	transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
}
.pv-fail-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 40px -16px rgba(23, 27, 32, 0.3);
}
.pv-fail-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 14px;
	background: rgba(163, 68, 48, 0.1);
	color: #A34430;
	margin-bottom: 16px;
}
.pv-fail-icon svg { width: 26px; height: 26px; }
.pv-fail-card h3.pv-h3,
.pv-fail-card h3 {
	margin-top: 0;
	border-left: none;
	padding-left: 0;
}
.pv-fail-card p { font-size: 0.96rem; }
.pv-fail-card p:last-child { margin-bottom: 0; }
@media (max-width: 1024px) {
	.pv-fail-grid { grid-template-columns: 1fr; }
}
.pv-fail-grid.pv-fail-grid-2 {
	grid-template-columns: repeat(2, 1fr);
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
}
@media (max-width: 1024px) {
	.pv-fail-grid.pv-fail-grid-2 { grid-template-columns: 1fr; }
}
.pv-fail-card.pv-fail-card-warn .pv-fail-icon {
	background: rgba(154, 47, 34, 0.12);
	color: #9A2F22;
}
.pv-fail-card ul.pv-check-list,
.pv-fail-card ul.pv-flag-list {
	margin-top: 4px;
}
.pv-fail-card ul.pv-check-list li,
.pv-fail-card ul.pv-flag-list li {
	font-size: 0.96rem;
}

/* ===========================================================
   Stat row (timeline / best-time sections)
   =========================================================== */
.pv-stat-row {
	display: flex;
	align-items: center;
	gap: 40px;
	margin-top: 28px;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}
.pv-stat-box {
	flex: 0 0 220px;
	background: #FFFFFF;
	border: 1px solid rgba(163, 68, 48, 0.18);
	border-radius: 18px;
	padding: 30px 20px;
	text-align: center;
	box-shadow: 0 10px 26px -16px rgba(23, 27, 32, 0.2);
}
.pv-stat-box svg {
	width: 32px;
	height: 32px;
	color: #A34430;
	margin-bottom: 10px;
}
.pv-stat-number {
	font-family: var(--global-heading-font-family);
	font-weight: 700;
	font-size: 2.1rem;
	color: #202A33;
	line-height: 1.1;
}
.pv-stat-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #A34430;
	margin-top: 6px;
}
.pv-stat-text { flex: 1; }
.pv-stat-text p { margin-bottom: 14px; }
.pv-stat-text p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.pv-stat-row { flex-direction: column; gap: 20px; }
	.pv-stat-box { flex-basis: auto; width: 100%; max-width: 260px; }
}

/* ===========================================================
   "How to Hire" — media rows + custom list icons
   =========================================================== */
.pv-media-row {
	display: flex;
	align-items: center;
	gap: 44px;
	margin: 34px 0;
}
.pv-media-row-reverse { flex-direction: row-reverse; }
.pv-media-text { flex: 1.1; }
.pv-media-image { flex: 1; }
.pv-media-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 18px;
	box-shadow: 0 14px 34px -16px rgba(23, 27, 32, 0.28);
}
.pv-media-text h3.pv-h3 { margin-top: 0; }

.pv-check-list, .pv-flag-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.pv-check-list li, .pv-flag-list li {
	position: relative;
	padding-left: 36px;
	margin-bottom: 14px;
	line-height: 1.5;
}
.pv-check-list li:last-child, .pv-flag-list li:last-child { margin-bottom: 0; }
.pv-check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: #A34430;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 13px 13px;
}
.pv-flag-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: #9A2F22;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 12px;
}
.pv-hire-closer {
	background: #FFFFFF;
	border-radius: 18px;
	padding: 30px 32px;
	margin-top: 10px;
	box-shadow: 0 10px 26px -16px rgba(23, 27, 32, 0.2);
}
.pv-hire-closer h3 {
	margin-top: 0 !important;
	border-left: none !important;
	padding-left: 0 !important;
}
.pv-hire-closer p:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
	.pv-media-row, .pv-media-row-reverse { flex-direction: column; }
	.pv-media-image { width: 100%; }
}

/* ===========================================================
   Contact / estimate section — dark, left text + right form
   =========================================================== */
.page-id-53 .kadence-column53_cta002-cd h2#contact {
	color: #FFFFFF;
}
.page-id-53 .kadence-column53_cta002-cd h2#contact::after {
	margin-left: auto;
	margin-right: auto;
}
.pv-contact-grid {
	display: grid;
	grid-template-columns: 0.85fr 1fr;
	gap: 24px;
	align-items: center;
	margin-top: 32px;
	text-align: left;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}
.pv-contact-text p {
	color: #D8CDB8;
	font-size: 1.08rem;
	line-height: 1.7;
}
.pv-contact-text .kb-buttons-wrap {
	justify-content: flex-start !important;
}
.pv-contact-form-wrap {
	background: #FFFFFF;
	border-radius: 20px;
	padding: 34px;
	box-shadow: 0 20px 50px -18px rgba(0, 0, 0, 0.5);
}
.pv-contact-form-wrap .kb-adv-form-label {
	color: #202A33;
	font-weight: 700;
}
@media (max-width: 900px) {
	.pv-contact-grid { grid-template-columns: 1fr; text-align: center; }
	.pv-contact-text .kb-buttons-wrap { justify-content: center !important; }
	.pv-contact-form-wrap { padding: 24px; }
}

/* ===========================================================
   HOMEPAGE REDESIGN v4 — targeted fixes + new sections
   =========================================================== */

/* --- fix: media-row-reverse previously cancelled itself out
   against the reversed DOM order; DOM order alone now handles
   the image-left/text-right alternation, so just delete the
   old flex-direction override (kept here as documentation) --- */
@media (min-width: 901px) {
	.pv-media-row-reverse { flex-direction: row; }
}

/* --- media images: hover lift + border --- */
.pv-media-image img {
	border: 1px solid rgba(23, 27, 32, 0.08);
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease, border-color 0.4s ease;
}
.pv-media-image:hover img {
	transform: scale(1.02);
	box-shadow: 0 22px 44px -16px rgba(23, 27, 32, 0.36);
	border-color: rgba(163, 68, 48, 0.35);
}

/* --- materials comparison list: red diamond markers --- */
.pv-red-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.pv-red-list li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 12px;
}
.pv-red-list li:last-child { margin-bottom: 0; }
.pv-red-list li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 8px;
	width: 9px;
	height: 9px;
	background: #A34430;
	transform: rotate(45deg);
	border-radius: 2px;
}

/* --- pricing table --- */
.pv-price-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 26px -16px rgba(23, 27, 32, 0.22);
}
.pv-price-table thead th {
	background: #202A33;
	color: #FFFFFF;
	text-align: left;
	padding: 14px 20px;
	font-size: 13px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}
.pv-price-table tbody td {
	padding: 14px 20px;
	background: #FFFFFF;
	border-bottom: 1px solid rgba(23, 27, 32, 0.08);
}
.pv-price-table tbody tr:nth-child(even) td {
	background: #FBF9F5;
}
.pv-price-table tbody tr:last-child td {
	border-bottom: none;
}
.pv-price-table tbody td:last-child {
	font-weight: 700;
	color: #A34430;
}

/* --- permits: 2x2 card grid (reuses .pv-fail-card / .pv-fail-icon) --- */
.pv-permit-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
	margin-top: 30px;
	align-items: start;
}
.pv-permit-card {
	background: #FFFFFF;
	border-radius: 18px;
	padding: 30px 26px;
	box-shadow: 0 10px 28px -16px rgba(23, 27, 32, 0.22);
	transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
}
.pv-permit-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 22px 40px -16px rgba(23, 27, 32, 0.3);
}
.pv-permit-card h3.pv-h3,
.pv-permit-card h3 {
	margin-top: 0;
	border-left: none;
	padding-left: 0;
}
.pv-permit-card p:last-child,
.pv-permit-card ul:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
	.pv-permit-grid { grid-template-columns: 1fr; }
}

/* --- areas: pill/tag grid --- */
.pv-area-block { margin-bottom: 30px; }
.pv-area-block:last-child { margin-bottom: 0; }
.pv-area-county {
	font-size: 1.05rem;
	margin-top: 0 !important;
	margin-bottom: 16px !important;
	border-left: 4px solid #A34430;
	padding-left: 14px;
}
.pv-area-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.pv-area-tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 18px;
	background: #FFFFFF;
	border: 1px solid rgba(23, 27, 32, 0.12);
	border-radius: 10px;
	color: #202A33 !important;
	font-weight: 700;
	font-size: 0.94rem;
	text-decoration: none !important;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
.pv-area-tag svg {
	width: 16px;
	height: 16px;
	color: #A34430;
	flex-shrink: 0;
}
.pv-area-tag:hover {
	background: #A34430;
	border-color: #A34430;
	color: #FFFFFF !important;
	transform: translateY(-3px);
	box-shadow: 0 10px 22px -8px rgba(163, 68, 48, 0.5);
}
.pv-area-tag:hover svg { color: #FFFFFF; }

/* --- contact: h2 left-aligned inside the copy column --- */
.pv-contact-h2.pv-contact-h2 {
	text-align: left;
	color: #FFFFFF;
	margin-bottom: 14px !important;
}
/* the Contact Us page uses an <h1> (it's the page's real title, not
   just a section heading), and the theme's own default h1 color
   (brand rust) has higher priority than our class here, so it was
   winning over the white set above and reading poorly on the dark
   background -- force it white with !important on the h1 case
   specifically. */
h1.pv-contact-h2 {
	color: #FFFFFF !important;
}
.pv-contact-h2.pv-contact-h2::after {
	margin-left: 0;
	margin-right: auto;
}
.pv-contact-grid {
	grid-template-columns: 0.85fr 1fr;
	align-items: start;
	gap: 24px;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}
.pv-contact-text {
	padding-top: 8px;
}
.pv-contact-form-wrap {
	max-width: 460px;
	padding: 28px;
	margin-left: auto;
}
.pv-contact-form-wrap .kb-adv-form-field { margin-bottom: 14px; }
@media (max-width: 900px) {
	.pv-contact-h2.pv-contact-h2 { text-align: center; }
	.pv-contact-h2.pv-contact-h2::after { margin-left: auto; margin-right: auto; }
	.pv-contact-form-wrap { margin-left: 0; max-width: 100%; }
}

/* --- full-bleed dark sections: background must span the viewport, not just the 1400px content column --- */
.page-id-53 .kadence-column53_5e9101-66,
.page-id-53 .kadence-column53_cta002-cd {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: 100vw !important;
}

/* --- fix: v4's unconditional 2-col grid was overriding v3's mobile 1-col rule due to source order --- */
@media (max-width: 900px) {
	.pv-contact-grid {
		grid-template-columns: 1fr !important;
	}
}

/* --- fix: Kadence's dynamic icon SVGs (shield-alt/receipt/handshake) render off-center/oddly sized inside the badge; hide them and paint our own centered icon via CSS background instead --- */
.page-id-53 .kt-svg-item-53_e4f0ef-0b span,
.page-id-53 .kt-svg-item-53_83abbd-bb span,
.page-id-53 .kt-svg-item-53_bc5cd1-f1 span { display: none; }
.page-id-53 .kt-svg-item-53_e4f0ef-0b {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A34430' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l8 4v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px 24px;
}
.page-id-53 .kt-svg-item-53_83abbd-bb {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A34430' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3Cline x1='10' y1='9' x2='8' y2='9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px 24px;
}
.page-id-53 .kt-svg-item-53_bc5cd1-f1 {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A34430' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 26px 26px;
}
.page-id-53 .pv-card-pad:hover .kt-svg-item-53_e4f0ef-0b {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l8 4v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") !important;

}
.page-id-53 .pv-card-pad:hover .kt-svg-item-53_83abbd-bb {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3Cline x1='10' y1='9' x2='8' y2='9'/%3E%3C/svg%3E") !important;

}
.page-id-53 .pv-card-pad:hover .kt-svg-item-53_bc5cd1-f1 {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") !important;

}

/* ===========================================================
   HOMEPAGE REDESIGN v5 — round 3 fixes
   =========================================================== */

/* --- stat rows (cost / best-time / timeline): flip to text-left,
   card-right, and give the card a hover lift + border --- */
.pv-stat-row {
	align-items: flex-start;
}
.pv-stat-box {
	order: 2;
	border: 1px solid rgba(163, 68, 48, 0.18);
	transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, border-color 0.3s ease;
}
.pv-stat-box:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 40px -16px rgba(23, 27, 32, 0.3);
	border-color: #A34430;
}
.pv-stat-text { order: 1; }

/* --- permits: equal-height cards (align-items:stretch instead of
   start, which left uneven whitespace when card 1's list made it
   much taller than its neighbor) --- */
.pv-permit-grid {
	align-items: stretch;
}
.pv-permit-card {
	display: flex;
	flex-direction: column;
}
.pv-permit-card ul {
	margin-top: auto;
}

/* --- permits: supporting image beside the intro --- */
.pv-permit-intro-row {
	display: flex;
	align-items: center;
	gap: 40px;
	margin-top: 24px;
}
.pv-permit-intro-row p {
	flex: 1.3;
	margin: 0 !important;
}
.pv-permit-intro-row img {
	flex: 1;
	width: 100%;
	max-width: 380px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 16px;
	box-shadow: 0 14px 32px -16px rgba(23, 27, 32, 0.3);
}
@media (max-width: 900px) {
	.pv-permit-intro-row { flex-direction: column; }
	.pv-permit-intro-row img { max-width: 100%; }
}

/* --- Why Pavers Fail: charcoal section, matching How It Works --- */
.page-id-53 .kadence-column53_11599f-21,
.page-id-53 .kadence-column53_11599f-21 > .kt-inside-inner-col {
	background: var(--pv-ink) !important;
}
.page-id-53 .kadence-column53_11599f-21 h2#why-fail {
	color: #FFFFFF;
}
.page-id-53 .kadence-column53_11599f-21 h2#why-fail::after {
	margin-left: auto;
	margin-right: auto;
}
.page-id-53 .kadence-column53_11599f-21 .pv-fail-intro {
	color: #D8CDB8;
}

/* --- maintenance cards: add a border --- */
.page-id-53 .kadence-column53_fe2ea4-d3 .pv-fail-card {
	border: 2px solid rgba(163, 68, 48, 0.3);
}
.page-id-53 .kadence-column53_fe2ea4-d3 .pv-fail-card:hover {
	border-color: #A34430;
}

/* ===========================================================
   FAQ accordion — modernize
   =========================================================== */
.page-id-53 .kt-accordion-wrap {
	max-width: 900px;
	margin: 30px auto 0;
}
.page-id-53 .wp-block-kadence-pane {
	background: #FFFFFF !important;
	border: 1px solid rgba(23, 27, 32, 0.08) !important;
	border-radius: 14px !important;
	margin-bottom: 14px;
	overflow: hidden;
	box-shadow: 0 6px 18px -12px rgba(23, 27, 32, 0.18);
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.page-id-53 .wp-block-kadence-pane:hover {
	box-shadow: 0 12px 28px -14px rgba(23, 27, 32, 0.26);
	border-color: rgba(163, 68, 48, 0.25);
}
.page-id-53 .kt-blocks-accordion-header {
	padding: 20px 24px;
	font-weight: 700;
	font-size: 1.05rem;
	color: #202A33;
	transition: color 0.25s ease;
}
.page-id-53 .wp-block-kadence-pane:hover .kt-blocks-accordion-header,
.page-id-53 .kt-accordion-pane.kt-accordion-pane-active .kt-blocks-accordion-header {
	color: #A34430;
}
.page-id-53 .kt-blocks-accordion-icon-trigger {
	position: relative;
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}
.page-id-53 .kt-blocks-accordion-icon-trigger::before,
.page-id-53 .kt-blocks-accordion-icon-trigger::after {
	content: "";
	position: absolute;
	background: #A34430;
	border-radius: 2px;
	transition: transform 0.3s ease;
}
.page-id-53 .kt-blocks-accordion-icon-trigger::before {
	top: 50%; left: 3px; right: 3px; height: 2px; transform: translateY(-50%);
}
.page-id-53 .kt-blocks-accordion-icon-trigger::after {
	left: 50%; top: 3px; bottom: 3px; width: 2px; transform: translateX(-50%);
}
.page-id-53 .kt-accordion-pane-active .kt-blocks-accordion-icon-trigger::after {
	transform: translateX(-50%) rotate(90deg);
	opacity: 0;
}
.page-id-53 .kt-accordion-panel-inner {
	padding: 0 24px 22px;
	color: #40444A;
}

/* ===========================================================
   Contact form — compact two-column field grid
   =========================================================== */
.pv-contact-form-wrap {
	max-width: 520px;
	margin-left: 0;
}
.pv-contact-form-wrap .kb-advanced-form {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 4px 18px;
}
.pv-contact-form-wrap .kb-adv-form-field {
	margin-bottom: 10px;
	width: auto !important;
}
.pv-contact-form-wrap .wp-block-kadence-advanced-form-textarea,
.pv-contact-form-wrap .kb-submit-field {
	grid-column: 1 / -1 !important;
}
.pv-contact-form-wrap .kb-field {
	padding: 11px 14px;
}
.pv-contact-form-wrap textarea.kb-field {
	min-height: 70px;
}
.pv-contact-form-wrap .kb-adv-form-submit-button {
	width: 100%;
	padding: 15px;
	font-size: 17px;
	border-radius: 10px;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pv-contact-form-wrap .kb-adv-form-submit-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px -10px rgba(163, 68, 48, 0.45);
}
@media (max-width: 600px) {
	.pv-contact-form-wrap .kb-advanced-form { grid-template-columns: 1fr; }
}

/* --- why-fail: full-bleed dark to match how-it-works/contact --- */
.page-id-53 .kadence-column53_11599f-21 {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: 100vw !important;
}

/* --- services cards: text was overflowing and getting clipped by overflow:hidden -- flex items default to min-width:auto, which stops them shrinking to wrap their own text --- */
.page-id-53 h2#services ~ .wp-block-columns .wp-block-column {
	min-width: 0;
}
.page-id-53 h2#services ~ .wp-block-columns .wp-block-column p,
.page-id-53 h2#services ~ .wp-block-columns .wp-block-column h3 {
	overflow-wrap: break-word;
	word-break: break-word;
}

/* --- permits: redesigned from 2x2 card grid to a single-column horizontal list (icon left, content right); also fixed the intro row where the image towered over the short intro text --- */
.pv-permit-intro-row {
	align-items: center;
}
.pv-permit-grid {
	grid-template-columns: 1fr;
	gap: 20px;
}
.pv-permit-card {
	display: block;
	position: relative;
	padding: 30px 34px 30px 118px;
	background: #FBF3EC !important;
	border-left: 5px solid #A34430;
}
.pv-permit-card .pv-fail-icon {
	position: absolute;
	left: 32px;
	top: 30px;
	margin-bottom: 0;
}
.pv-permit-card .pv-h3,
.pv-permit-card h3 {
	margin-top: 0;
}
.pv-permit-card ul {
	margin-top: 14px;
}
@media (max-width: 700px) {
	.pv-permit-card { padding: 24px 24px 24px 24px; }
	.pv-permit-card .pv-fail-icon { position: static; margin-bottom: 14px; }
}

/* --- contact: bigger CTA button --- */
.pv-contact-text .pv-btn {
	padding: 26px 56px !important;
	font-size: 23px !important;
	border-radius: 12px;
}

/* ===========================================================
   SERVICE PAGE REDESIGN — paver-driveways (ID 599), pilot page
   Reuses the homepage's stat-row / price-table / FAQ / contact
   components, scoped to .page-id-599 so nothing else is touched.
   =========================================================== */
.page-id-599 {
	--pv-ink: #171B20;
	--pv-gold: #C9962F;
}

/* --- inner hero: subtle polish on the existing split layout --- */
.page-id-599 .pv-inner-hero-img img {
	box-shadow: 0 20px 44px -18px rgba(23, 27, 32, 0.32);
	transition: transform 0.4s ease;
}
.page-id-599 .pv-inner-hero-img img:hover {
	transform: scale(1.015);
}
.page-id-599 .pv-included-list {
	background: #FBF9F5;
	border-radius: 14px;
	padding: 22px 26px;
	margin-top: 24px !important;
}

/* --- h2 underline consistent with homepage --- */
.page-id-599 .entry-content h2::after {
	background: linear-gradient(90deg, #A34430, var(--pv-gold));
}

/* --- stat rows (cost / timeline) --- */
.page-id-599 .pv-stat-row {
	display: flex;
	align-items: flex-start;
	gap: 40px;
	margin-top: 28px;
	max-width: 1100px;
}
.page-id-599 .pv-stat-box {
	flex: 0 0 220px;
	order: 2;
	background: #FFFFFF;
	border: 1px solid rgba(163, 68, 48, 0.18);
	border-radius: 18px;
	padding: 30px 20px;
	text-align: center;
	box-shadow: 0 10px 26px -16px rgba(23, 27, 32, 0.2);
	transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, border-color 0.3s ease;
}
.page-id-599 .pv-stat-box:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 40px -16px rgba(23, 27, 32, 0.3);
	border-color: #A34430;
}
.page-id-599 .pv-stat-box svg {
	width: 32px;
	height: 32px;
	color: #A34430;
	margin-bottom: 10px;
}
.page-id-599 .pv-stat-number {
	font-family: var(--global-heading-font-family);
	font-weight: 700;
	font-size: 2.1rem;
	color: #202A33;
	line-height: 1.1;
}
.page-id-599 .pv-stat-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #A34430;
	margin-top: 6px;
}
.page-id-599 .pv-stat-text { flex: 1; order: 1; }
.page-id-599 .pv-stat-text p { margin: 0; }
@media (max-width: 767px) {
	.page-id-599 .pv-stat-row { flex-direction: column; gap: 20px; }
	.page-id-599 .pv-stat-box { flex-basis: auto; width: 100%; max-width: 260px; }
}

/* --- price table --- */
.page-id-599 .pv-price-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 26px -16px rgba(23, 27, 32, 0.22);
}
.page-id-599 .pv-price-table thead th {
	background: #202A33;
	color: #FFFFFF;
	text-align: left;
	padding: 14px 20px;
	font-size: 13px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}
.page-id-599 .pv-price-table tbody td {
	padding: 14px 20px;
	background: #FFFFFF;
	border-bottom: 1px solid rgba(23, 27, 32, 0.08);
}
.page-id-599 .pv-price-table tbody tr:nth-child(even) td {
	background: #FBF9F5;
}
.page-id-599 .pv-price-table tbody tr:last-child td {
	border-bottom: none;
}
.page-id-599 .pv-price-table tbody td:last-child {
	font-weight: 700;
	color: #A34430;
}

/* --- alt-blocks: shadow + hover, consistent with homepage media rows --- */
.page-id-599 .pv-alt-block-img img {
	box-shadow: 0 14px 34px -16px rgba(23, 27, 32, 0.28);
	border: 1px solid rgba(23, 27, 32, 0.08);
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease, border-color 0.4s ease;
}
.page-id-599 .pv-alt-block:hover .pv-alt-block-img img {
	transform: scale(1.02);
	box-shadow: 0 22px 44px -16px rgba(23, 27, 32, 0.36);
	border-color: rgba(163, 68, 48, 0.35);
}

/* --- area chips: add a location-pin icon --- */
.page-id-599 .pv-chip-row {
	gap: 12px;
}
.page-id-599 .pv-chip {
	padding: 11px 18px;
	background: #FFFFFF;
	border: 1px solid rgba(23, 27, 32, 0.12);
	font-weight: 700;
	font-size: 0.94rem;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
.page-id-599 a.pv-chip:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 22px -8px rgba(163, 68, 48, 0.5);
}

/* --- related-services carousel cards: slightly bigger, cleaner --- */
.page-id-599 .pv-carousel-card {
	box-shadow: 0 6px 18px -10px rgba(23, 27, 32, 0.25);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.page-id-599 .pv-carousel-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 28px -12px rgba(23, 27, 32, 0.35);
}

/* --- FAQ accordion: same modern card treatment as homepage --- */
.page-id-599 .kt-accordion-wrap {
	max-width: 900px;
	margin: 30px auto 0;
}
.page-id-599 .wp-block-kadence-pane {
	background: #FFFFFF !important;
	border: 1px solid rgba(23, 27, 32, 0.08) !important;
	border-radius: 14px !important;
	margin-bottom: 14px;
	overflow: hidden;
	box-shadow: 0 6px 18px -12px rgba(23, 27, 32, 0.18);
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.page-id-599 .wp-block-kadence-pane:hover {
	box-shadow: 0 12px 28px -14px rgba(23, 27, 32, 0.26);
	border-color: rgba(163, 68, 48, 0.25);
}
.page-id-599 .kt-blocks-accordion-header {
	padding: 20px 24px;
	font-weight: 700;
	font-size: 1.05rem;
	color: #202A33;
}
.page-id-599 .kt-accordion-panel-inner {
	padding: 0 24px 22px;
	color: #40444A;
}

/* --- contact: dark full-bleed CTA, left copy + right compact form --- */
.page-id-599 .kadence-columngen_9d02ce-a8,
.page-id-599 .kadence-columngen_9d02ce-a8 > .kt-inside-inner-col {
	background: var(--pv-ink) !important;
}
.page-id-599 .kadence-columngen_9d02ce-a8 {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: 100vw !important;
}
.page-id-599 .kadence-columngen_9d02ce-a8 h2#contact {
	color: #FFFFFF;
}
.page-id-599 .pv-contact-grid {
	display: grid;
	grid-template-columns: 0.85fr 1fr;
	align-items: start;
	gap: 24px;
	margin-top: 32px;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
}
.page-id-599 .pv-contact-h2 {
	text-align: left !important;
	margin-bottom: 14px !important;
}
.page-id-599 .pv-contact-h2::after {
	margin-left: 0;
	margin-right: auto;
}
.page-id-599 .pv-contact-text p {
	color: #D8CDB8;
	font-size: 1.08rem;
	line-height: 1.7;
}
.page-id-599 .pv-contact-text .kb-buttons-wrap {
	justify-content: flex-start !important;
}
.page-id-599 .pv-contact-text .pv-btn,
.page-id-599 .pv-contact-text .kb-button {
	padding: 22px 46px !important;
	font-size: 21px !important;
	border-radius: 12px;
}
.page-id-599 .pv-contact-form-wrap {
	background: #FFFFFF;
	border-radius: 20px;
	padding: 28px;
	box-shadow: 0 20px 50px -18px rgba(0, 0, 0, 0.5);
	max-width: 520px;
}
.page-id-599 .pv-contact-form-wrap .kb-advanced-form {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 4px 18px;
}
.page-id-599 .pv-contact-form-wrap .kb-adv-form-field {
	margin-bottom: 10px;
	width: auto !important;
}
.page-id-599 .pv-contact-form-wrap .wp-block-kadence-advanced-form-textarea,
.page-id-599 .pv-contact-form-wrap .kb-submit-field {
	grid-column: 1 / -1 !important;
}
.page-id-599 .pv-contact-form-wrap .kb-field {
	padding: 11px 14px;
}
.page-id-599 .pv-contact-form-wrap .kb-adv-form-submit-button {
	width: 100%;
	padding: 15px;
	font-size: 17px;
	border-radius: 10px;
}
@media (max-width: 900px) {
	.page-id-599 .pv-contact-grid { grid-template-columns: 1fr; text-align: center; }
	.page-id-599 .pv-contact-h2 { text-align: center; }
	.page-id-599 .pv-contact-h2::after { margin-left: auto; margin-right: auto; }
	.page-id-599 .pv-contact-text .kb-buttons-wrap { justify-content: center !important; }
	.page-id-599 .pv-contact-form-wrap { margin: 0 auto; max-width: 100%; }
}
@media (max-width: 600px) {
	.page-id-599 .pv-contact-form-wrap .kb-advanced-form { grid-template-columns: 1fr; }
}

/* ===========================================================
   SERVICE PAGE REDESIGN v2 — round 2 fixes (paver-driveways)
   =========================================================== */

/* --- cost stat-box: fix gap to table below, tighten card size --- */
.page-id-599 .pv-stat-row {
	margin-bottom: 30px;
}
.page-id-599 .pv-stat-box {
	flex: 0 0 190px;
	padding: 22px 16px;
}
.page-id-599 .pv-stat-number {
	font-size: 1.8rem;
}
.page-id-599 .pv-stat-box svg {
	width: 26px;
	height: 26px;
	margin-bottom: 6px;
}

/* --- hero CTA button: wider --- */
.page-id-599 .pv-inner-hero-text .kb-buttons-wrap .kb-button,
.page-id-599 .pv-inner-hero-text .pv-btn {
	padding: 18px 48px !important;
	font-size: 18px !important;
}

/* --- installation process: numbered step list beside the image --- */
.page-id-599 .pv-process-list {
	list-style: none;
	counter-reset: pv-proc-step;
	margin: 0;
	padding: 0;
}
.page-id-599 .pv-process-list li {
	counter-increment: pv-proc-step;
	position: relative;
	padding: 0 0 20px 46px;
	margin-bottom: 4px;
}
.page-id-599 .pv-process-list li:last-child {
	padding-bottom: 0;
}
.page-id-599 .pv-process-list li::before {
	content: counter(pv-proc-step);
	position: absolute;
	left: 0;
	top: 0;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #A34430;
	color: #FFFFFF;
	font-weight: 700;
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.page-id-599 .pv-process-list li strong {
	color: #202A33;
}

/* --- section background rhythm, matching the homepage's cream/tan/dark alternation --- */
.page-id-599 .kadence-columngen_952274-a9,
.page-id-599 .kadence-columngen_952274-a9 > .kt-inside-inner-col,
.page-id-599 .kadence-columngen_d78d33-8c,
.page-id-599 .kadence-columngen_d78d33-8c > .kt-inside-inner-col,
.page-id-599 .kadence-columngen_603b69-63,
.page-id-599 .kadence-columngen_603b69-63 > .kt-inside-inner-col,
.page-id-599 .kadence-columngen_cce2bc-b6,
.page-id-599 .kadence-columngen_cce2bc-b6 > .kt-inside-inner-col,
.page-id-599 .kadence-columngen_599d36-a5,
.page-id-599 .kadence-columngen_599d36-a5 > .kt-inside-inner-col {
	background: #F7F5F0 !important;
}
.page-id-599 .kadence-columngen_11e88c-c3,
.page-id-599 .kadence-columngen_11e88c-c3 > .kt-inside-inner-col,
.page-id-599 .kadence-columngen_9474cd-64c,
.page-id-599 .kadence-columngen_9474cd-64c > .kt-inside-inner-col,
.page-id-599 .kadence-columngen_885947-b8,
.page-id-599 .kadence-columngen_885947-b8 > .kt-inside-inner-col,
.page-id-599 .kadence-columngen_401d4c-27c,
.page-id-599 .kadence-columngen_401d4c-27c > .kt-inside-inner-col {
	background: #D8CDB8 !important;
}
.page-id-599 .kadence-columngen_646de1-66,
.page-id-599 .kadence-columngen_646de1-66 > .kt-inside-inner-col {
	background: var(--pv-ink) !important;
}
.page-id-599 .kadence-columngen_646de1-66 {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: 100vw !important;
}
.page-id-599 .kadence-columngen_646de1-66 h2 {
	color: #FFFFFF;
}
.page-id-599 .kadence-columngen_646de1-66 p {
	color: #D8CDB8;
}
.page-id-599 .kadence-columngen_646de1-66 h2::after {
	margin-left: auto;
	margin-right: auto;
}

/* ===========================================================
   SERVICE PAGES — GLOBAL MODERNIZATION
   Generic (not page-scoped) versions of the components proven
   on the paver-driveways pilot, so they apply to all 16 service
   pages automatically. Scoped to .parent-pageid-640.pv-has-inner-hero
   is not reliable across all pages, so scoped instead to the
   presence of .pv-inner-hero (service/location page marker) via
   a body-level flag class added by functions.php, falling back
   to plain unscoped rules for pieces that are safe everywhere.
   =========================================================== */

/* --- hero CTA button: wider, on any inner page --- */
.pv-inner-hero-text .kb-buttons-wrap .kb-button,
.pv-inner-hero-text .pv-btn {
	padding: 18px 48px !important;
	font-size: 18px !important;
}

/* --- stat rows (cost / timeline callouts) --- */
.pv-stat-row {
	display: flex;
	align-items: flex-start;
	gap: 40px;
	margin-top: 28px;
	margin-bottom: 30px;
	max-width: 1100px;
}
.pv-stat-box {
	flex: 0 0 190px;
	order: 2;
	background: #FFFFFF;
	border: 1px solid rgba(163, 68, 48, 0.18);
	border-radius: 18px;
	padding: 22px 16px;
	text-align: center;
	box-shadow: 0 10px 26px -16px rgba(23, 27, 32, 0.2);
	transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, border-color 0.3s ease;
}
.pv-stat-box:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 40px -16px rgba(23, 27, 32, 0.3);
	border-color: #A34430;
}
.pv-stat-box svg {
	width: 26px;
	height: 26px;
	color: #A34430;
	margin-bottom: 6px;
}
.pv-stat-number {
	font-family: var(--global-heading-font-family);
	font-weight: 700;
	font-size: 1.8rem;
	color: #202A33;
	line-height: 1.1;
}
.pv-stat-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #A34430;
	margin-top: 6px;
}
.pv-stat-text { flex: 1; order: 1; }
.pv-stat-text p { margin: 0; }
@media (max-width: 767px) {
	.pv-stat-row { flex-direction: column; gap: 20px; }
	.pv-stat-box { flex-basis: auto; width: 100%; max-width: 260px; }
}

/* --- price tables (fix for "table became a bullet list") --- */
.pv-price-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 10px 26px -16px rgba(23, 27, 32, 0.22);
}
.pv-price-table thead th {
	background: #202A33;
	color: #FFFFFF;
	text-align: left;
	padding: 14px 20px;
	font-size: 13px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}
.pv-price-table tbody td {
	padding: 14px 20px;
	background: #FFFFFF;
	border-bottom: 1px solid rgba(23, 27, 32, 0.08);
}
.pv-price-table tbody tr:nth-child(even) td { background: #FBF9F5; }
.pv-price-table tbody tr:last-child td { border-bottom: none; }
.pv-price-table tbody td:last-child { font-weight: 700; color: #A34430; }

/* --- numbered process/step lists --- */
.pv-process-list {
	list-style: none;
	counter-reset: pv-proc-step;
	margin: 0;
	padding: 0;
}
.pv-process-list li {
	counter-increment: pv-proc-step;
	position: relative;
	padding: 0 0 20px 46px;
	margin-bottom: 4px;
}
.pv-process-list li:last-child { padding-bottom: 0; }
.pv-process-list li::before {
	content: counter(pv-proc-step);
	position: absolute;
	left: 0;
	top: 0;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #A34430;
	color: #FFFFFF;
	font-weight: 700;
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.pv-process-list li strong { color: #202A33; }

/* --- alt-block images: shadow + hover lift (generic already exists
   for base pv-alt-block layout; this only adds the polish) --- */
.pv-alt-block-img img {
	box-shadow: 0 14px 34px -16px rgba(23, 27, 32, 0.28);
	border: 1px solid rgba(23, 27, 32, 0.08);
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease, border-color 0.4s ease;
}
.pv-alt-block:hover .pv-alt-block-img img {
	transform: scale(1.02);
	box-shadow: 0 22px 44px -16px rgba(23, 27, 32, 0.36);
	border-color: rgba(163, 68, 48, 0.35);
}
.pv-inner-hero-img img {
	box-shadow: 0 20px 44px -18px rgba(23, 27, 32, 0.32);
	transition: transform 0.4s ease;
}
.pv-inner-hero-img img:hover { transform: scale(1.015); }
.pv-included-list {
	background: #FBF9F5;
	border-radius: 14px;
	padding: 22px 26px;
	margin-top: 24px !important;
}

/* --- area chips + related-services carousel: polish --- */
.pv-chip-row { gap: 12px; }
.pv-chip {
	padding: 11px 18px;
	background: #FFFFFF;
	border: 1px solid rgba(23, 27, 32, 0.12);
	font-weight: 700;
	font-size: 0.94rem;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
a.pv-chip:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 22px -8px rgba(163, 68, 48, 0.5);
}
.pv-carousel-card {
	box-shadow: 0 6px 18px -10px rgba(23, 27, 32, 0.25);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.pv-carousel-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 28px -12px rgba(23, 27, 32, 0.35);
}

/* --- icon cards, reused for permit / why-fail style breakdowns
   (already generic from the homepage build: .pv-fail-card,
   .pv-fail-icon, .pv-permit-grid, .pv-permit-card) --- */

/* --- FAQ accordion: modern card treatment on every inner page --- */
.parent-pageid-640 .kt-accordion-wrap,
.parent-pageid-641 .kt-accordion-wrap,
.single-post .kt-accordion-wrap {
	max-width: 900px;
	margin: 30px auto 0;
}
.parent-pageid-640 .wp-block-kadence-pane,
.parent-pageid-641 .wp-block-kadence-pane,
.single-post .wp-block-kadence-pane {
	background: #FFFFFF !important;
	border: 1px solid rgba(23, 27, 32, 0.08) !important;
	border-radius: 14px !important;
	margin-bottom: 14px;
	overflow: hidden;
	box-shadow: 0 6px 18px -12px rgba(23, 27, 32, 0.18);
	transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.parent-pageid-640 .wp-block-kadence-pane:hover,
.parent-pageid-641 .wp-block-kadence-pane:hover,
.single-post .wp-block-kadence-pane:hover {
	box-shadow: 0 12px 28px -14px rgba(23, 27, 32, 0.26);
	border-color: rgba(163, 68, 48, 0.25);
}
.parent-pageid-640 .kt-blocks-accordion-header,
.parent-pageid-641 .kt-blocks-accordion-header,
.single-post .kt-blocks-accordion-header {
	padding: 20px 24px;
	font-weight: 700;
	font-size: 1.05rem;
	color: #202A33;
}
.parent-pageid-640 .kt-accordion-panel-inner,
.parent-pageid-641 .kt-accordion-panel-inner,
.single-post .kt-accordion-panel-inner {
	padding: 0 24px 22px;
	color: #40444A;
}

/* --- contact section: dark full-bleed CTA on every inner page --- */
.parent-pageid-640 .pv-contact-grid,
.parent-pageid-641 .pv-contact-grid,
.single-post .pv-contact-grid {
	display: grid;
	grid-template-columns: 0.85fr 1fr;
	align-items: start;
	gap: 24px;
	margin-top: 32px;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
}
.parent-pageid-640 .pv-contact-h2,
.parent-pageid-641 .pv-contact-h2,
.single-post .pv-contact-h2 {
	text-align: left !important;
	color: #FFFFFF;
	margin-bottom: 14px !important;
}
.parent-pageid-640 .pv-contact-h2::after,
.parent-pageid-641 .pv-contact-h2::after,
.single-post .pv-contact-h2::after {
	margin-left: 0;
	margin-right: auto;
}
.parent-pageid-640 .pv-contact-text p,
.parent-pageid-641 .pv-contact-text p,
.single-post .pv-contact-text p {
	color: #D8CDB8;
	font-size: 1.08rem;
	line-height: 1.7;
}
.parent-pageid-640 .pv-contact-text .kb-buttons-wrap,
.parent-pageid-641 .pv-contact-text .kb-buttons-wrap,
.single-post .pv-contact-text .kb-buttons-wrap {
	justify-content: flex-start !important;
}
.parent-pageid-640 .pv-contact-text .pv-btn,
.parent-pageid-641 .pv-contact-text .pv-btn,
.parent-pageid-640 .pv-contact-text .kb-button,
.parent-pageid-641 .pv-contact-text .kb-button,
.single-post .pv-contact-text .pv-btn,
.single-post .pv-contact-text .kb-button {
	padding: 22px 46px !important;
	font-size: 21px !important;
	border-radius: 12px;
}
.parent-pageid-640 .pv-contact-form-wrap,
.parent-pageid-641 .pv-contact-form-wrap,
.single-post .pv-contact-form-wrap {
	background: #FFFFFF;
	border-radius: 20px;
	padding: 28px;
	box-shadow: 0 20px 50px -18px rgba(0, 0, 0, 0.5);
	max-width: 520px;
}
.parent-pageid-640 .pv-contact-form-wrap .kb-advanced-form,
.parent-pageid-641 .pv-contact-form-wrap .kb-advanced-form,
.single-post .pv-contact-form-wrap .kb-advanced-form {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 4px 18px;
}
.parent-pageid-640 .pv-contact-form-wrap .kb-adv-form-field,
.parent-pageid-641 .pv-contact-form-wrap .kb-adv-form-field,
.single-post .pv-contact-form-wrap .kb-adv-form-field {
	margin-bottom: 10px;
	width: auto !important;
}
.parent-pageid-640 .pv-contact-form-wrap .wp-block-kadence-advanced-form-textarea,
.parent-pageid-641 .pv-contact-form-wrap .wp-block-kadence-advanced-form-textarea,
.parent-pageid-640 .pv-contact-form-wrap .kb-submit-field,
.parent-pageid-641 .pv-contact-form-wrap .kb-submit-field,
.single-post .pv-contact-form-wrap .wp-block-kadence-advanced-form-textarea,
.single-post .pv-contact-form-wrap .kb-submit-field {
	grid-column: 1 / -1 !important;
}
.parent-pageid-640 .pv-contact-form-wrap .kb-field,
.parent-pageid-641 .pv-contact-form-wrap .kb-field,
.single-post .pv-contact-form-wrap .kb-field {
	padding: 11px 14px;
}
.parent-pageid-640 .pv-contact-form-wrap .kb-adv-form-submit-button,
.parent-pageid-641 .pv-contact-form-wrap .kb-adv-form-submit-button,
.single-post .pv-contact-form-wrap .kb-adv-form-submit-button {
	width: 100%;
	padding: 15px;
	font-size: 17px;
	border-radius: 10px;
}
/* the contact column itself: full-bleed dark background, found via
   the fact it's the only .wp-block-kadence-column that contains a
   .pv-contact-grid (CSS :has(), supported by all current browsers) */
.parent-pageid-640 .wp-block-kadence-column:has(.pv-contact-grid),
.parent-pageid-641 .wp-block-kadence-column:has(.pv-contact-grid),
.parent-pageid-640 .wp-block-kadence-column:has(.pv-contact-grid) > .kt-inside-inner-col,
.parent-pageid-641 .wp-block-kadence-column:has(.pv-contact-grid) > .kt-inside-inner-col,
.single-post .wp-block-kadence-column:has(.pv-contact-grid),
.single-post .wp-block-kadence-column:has(.pv-contact-grid) > .kt-inside-inner-col {
	background: #171B20 !important;
}
.parent-pageid-640 .wp-block-kadence-column:has(.pv-contact-grid),
.parent-pageid-641 .wp-block-kadence-column:has(.pv-contact-grid),
.single-post .wp-block-kadence-column:has(.pv-contact-grid) {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: 100vw !important;
}
@media (max-width: 900px) {
	.parent-pageid-640 .pv-contact-grid,
	.parent-pageid-641 .pv-contact-grid,
	.single-post .pv-contact-grid { grid-template-columns: 1fr; text-align: center; }
	.parent-pageid-640 .pv-contact-h2,
	.parent-pageid-641 .pv-contact-h2,
	.single-post .pv-contact-h2 { text-align: center; }
	.parent-pageid-640 .pv-contact-h2::after,
	.parent-pageid-641 .pv-contact-h2::after,
	.single-post .pv-contact-h2::after { margin-left: auto; margin-right: auto; }
	.parent-pageid-640 .pv-contact-text .kb-buttons-wrap,
	.parent-pageid-641 .pv-contact-text .kb-buttons-wrap,
	.single-post .pv-contact-text .kb-buttons-wrap { justify-content: center !important; }
	.parent-pageid-640 .pv-contact-form-wrap,
	.parent-pageid-641 .pv-contact-form-wrap,
	.single-post .pv-contact-form-wrap { margin: 0 auto; max-width: 100%; }
}
@media (max-width: 600px) {
	.parent-pageid-640 .pv-contact-form-wrap .kb-advanced-form,
	.parent-pageid-641 .pv-contact-form-wrap .kb-advanced-form,
	.single-post .pv-contact-form-wrap .kb-advanced-form { grid-template-columns: 1fr; }
}

/* --- gentle section background rhythm for service/location pages:
   alternate every other top-level section between cream and a
   slightly warmer off-white, using :nth-of-type on the row wrapper
   so no per-page column IDs are needed. Explicit inline backgrounds
   (e.g. the red warning box, already-set palette6/7) still win via
   specificity/!important where those are stronger. --- */
.parent-pageid-640:has(.pv-inner-hero) .entry-content > .wp-block-kadence-rowlayout:nth-of-type(4n+3) .wp-block-kadence-column,
.parent-pageid-641:has(.pv-inner-hero) .entry-content > .wp-block-kadence-rowlayout:nth-of-type(4n+3) .wp-block-kadence-column,
.parent-pageid-640:has(.pv-inner-hero) .entry-content > .wp-block-kadence-rowlayout:nth-of-type(4n+3) .kt-inside-inner-col.pv-section-body,
.parent-pageid-641:has(.pv-inner-hero) .entry-content > .wp-block-kadence-rowlayout:nth-of-type(4n+3) .kt-inside-inner-col.pv-section-body {
	background: #F7F5F0;
}

/* --- pv-dark-section: a full-bleed dark section, used where the underlying content block was manually split out (verified safe boundary, not the earlier :has() approach) --- */
.wp-block-kadence-column.pv-dark-section,
.wp-block-kadence-column.pv-dark-section > .kt-inside-inner-col {
	background: #202A33 !important;
}
.wp-block-kadence-column.pv-dark-section {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: 100vw !important;
}
.wp-block-kadence-column.pv-dark-section h2 {
	color: #FFFFFF;
}
.wp-block-kadence-column.pv-dark-section h2::after {
	background: linear-gradient(90deg, #C9962F, #A34430);
}
.wp-block-kadence-column.pv-dark-section > .kt-inside-inner-col > p {
	color: #D8CDB8;
}
.wp-block-kadence-column.pv-dark-section a {
	color: #EAC98A;
}
.wp-block-kadence-column.pv-dark-section h3 {
	color: #FFFFFF;
	border-left-color: #C9962F;
}
.wp-block-kadence-column.pv-dark-section .pv-fail-card h3 {
	color: #202A33;
	border-left-color: transparent;
}
.pv-check-list-dark li {
	color: #D8CDB8;
}
.pv-check-list-dark li strong {
	color: #FFFFFF;
}
.pv-check-list-dark li::before {
	background-color: #C9962F;
}


/* --- scroll-to-top button: filled brand rust color instead of the
   default hollow outline style, matching the site's primary accent --- */
.kadence-scroll-to-top {
	background-color: #A34430 !important;
	border-color: #A34430 !important;
	border-radius: 50% !important;
	box-shadow: 0 6px 16px -6px rgba(23, 27, 32, 0.4);
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.kadence-scroll-to-top,
.kadence-scroll-to-top svg {
	color: #FFFFFF !important;
	fill: #FFFFFF !important;
}
.kadence-scroll-to-top:hover,
.kadence-scroll-to-top:focus {
	background-color: #40444A !important;
	border-color: #40444A !important;
	transform: translateY(-2px);
}

/* --- blog/guide posts: the 1200x628 (~1.91:1) feature graphic has
   text baked in near both edges (same image used on the guides
   archive card), so the 7:5 crop ratio used for service/location
   hero photos was cutting that text off. Switch to the image's
   real ratio with contain so nothing gets clipped. --- */
.single-post .pv-inner-hero-img img {
	aspect-ratio: 1200 / 628;
	object-fit: contain;
	background-color: #202A33;
}

/* --- generic styled data table (wp-block-table), used in guide
   posts for things like the cost-per-material breakdown; the
   default browser table had no borders/spacing and looked broken.
   Note: this content uses a bare <table class="wp-block-table">
   with no <figure> wrapper, so the table element itself carries
   the class - style it directly rather than a nested descendant. --- */
.pv-section-body table.wp-block-table,
.pv-section-body .wp-block-table > table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	margin: 20px 0;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 6px 18px -10px rgba(32,42,51,0.18);
}
.pv-section-body .wp-block-table td {
	padding: 14px 20px;
	border-bottom: 1px solid rgba(32,42,51,0.1);
	font-size: 0.98rem;
	color: #40444A;
	background: #FFFFFF;
}
.pv-section-body .wp-block-table tr:last-child td {
	border-bottom: none;
}
.pv-section-body .wp-block-table tr:first-child td {
	background: #202A33;
	color: #FFFFFF;
	font-weight: 700;
	border-bottom: none;
}
.pv-section-body .wp-block-table tr:first-child td strong {
	color: #FFFFFF;
}
.pv-section-body .wp-block-table tr:nth-child(even):not(:first-child) td {
	background: #F7F5F0;
}
@media all and (max-width: 600px) {
	.pv-section-body .wp-block-table td {
		padding: 11px 14px;
		font-size: 0.9rem;
	}
}

/* --- single guide posts: hide the theme's built-in "Similar Posts"
   carousel and the Previous/Next post navigation link below the
   contact section, per request --- */
.single-post .post-navigation,
.single-post .entry-related {
	display: none !important;
}

/* ===========================================================
   GALLERY PAGE: modern 2-up tiles (overrides the older 3-col
   pv-gallery-grid rule above where it's used on the gallery page)
   - the generic ".wp-block-gallery .wp-block-image { width:100% }"
     rule above (added for the homepage gallery, whose markup is
     <a> children) forces full-width here too, since THIS gallery's
     direct children are <figure class="wp-block-image"> — so the
     2-column layout has to be re-asserted at equal specificity,
     scoped to .pv-gallery-grid so it doesn't touch the homepage one
   - overflow hidden wrapper + scale-on-hover image
   - taller tiles since there are only 2 per row now
   =========================================================== */
.pv-gallery-grid.wp-block-gallery {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 20px;
}
.pv-gallery-grid.wp-block-gallery .pv-gallery-img {
	width: calc(50% - 10px) !important;
	max-width: calc(50% - 10px) !important;
	flex: 0 0 calc(50% - 10px) !important;
}
@media (max-width: 767px) {
	.pv-gallery-grid.wp-block-gallery .pv-gallery-img {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 100% !important;
	}
}
.pv-gallery-img {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 14px 32px -14px rgba(32,42,51,0.28);
	transition: box-shadow 0.2s ease;
	margin: 0;
}
.pv-gallery-img:hover {
	box-shadow: 0 20px 40px -14px rgba(32,42,51,0.38);
}
.pv-gallery-img img {
	border-radius: 0;
	box-shadow: none;
	height: 340px;
	width: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
	display: block;
}
.pv-gallery-img:hover img {
	transform: scale(1.06);
}
@media (max-width: 767px) {
	.pv-gallery-img img { height: 220px; }
}

/* ===========================================================
   LEGAL / UTILITY PAGES (Privacy, Terms, Disclaimer): readable
   article typography — narrower measure, breathing room between
   sections, a subtle accent rule under each h2 matching the
   site's card/heading style elsewhere.
   =========================================================== */
.pv-legal-content {
	max-width: 780px;
	margin: 0 auto;
}
.pv-legal-content h1 {
	margin-bottom: 6px;
}
.pv-legal-content .pv-legal-effective {
	color: #6B7178;
	font-size: 0.95rem;
	margin-top: 0;
	margin-bottom: 32px;
}
.pv-legal-content h2 {
	margin-top: 40px;
	padding-bottom: 10px;
	border-bottom: 2px solid rgba(163,68,48,0.18);
}
.pv-legal-content p {
	line-height: 1.75;
	color: #40444A;
}
.pv-legal-content a {
	color: #A34430;
	font-weight: 600;
}

/* ===========================================================
   HUB PAGES (Services / Areas / About): section eyebrow + intro
   band gets a touch more breathing room when it's the page's
   first section, matching the hero-band feel used on other page
   types.
   =========================================================== */
.pv-hub-intro {
	max-width: 760px;
	margin: 0 auto 8px;
}

/* --- hub cards (pv-hub-card) stay white regardless of the
   section they sit in, so when a row of them lands inside a
   pv-dark-section, the generic dark-section h3/a color rules
   above (meant for the dark background itself) must not bleed
   into the card's own dark-on-white heading/link. --- */
.wp-block-kadence-column.pv-dark-section .pv-hub-card h3 {
	color: #202A33;
}
.wp-block-kadence-column.pv-dark-section .pv-hub-learnmore {
	color: #A34430;
}

/* ===========================================================
   HUB PAGES CONTACT CTA: force the copy column (heading,
   paragraph, button) left-aligned on About Us, Services, Areas,
   and Gallery — mirroring the pattern already used for the
   individual service/location pages (parent-pageid-640/641) and
   guide posts (single-post), scoped here by page-id with
   !important so it can't be re-centered by a same-specificity
   rule loaded later (e.g. a theme-generated has-text-align-center
   utility on the heading block itself). Desktop only; mobile
   keeps the sitewide centered layout below 900px. --- */
.page-id-640 .pv-contact-h2,
.page-id-641 .pv-contact-h2,
.page-id-849 .pv-contact-h2,
.page-id-835 .pv-contact-h2 {
	text-align: left !important;
}
.page-id-640 .pv-contact-h2::after,
.page-id-641 .pv-contact-h2::after,
.page-id-849 .pv-contact-h2::after,
.page-id-835 .pv-contact-h2::after {
	margin-left: 0 !important;
	margin-right: auto !important;
}
.page-id-640 .pv-contact-text p,
.page-id-641 .pv-contact-text p,
.page-id-849 .pv-contact-text p,
.page-id-835 .pv-contact-text p {
	text-align: left !important;
}
.page-id-640 .pv-contact-text .kb-buttons-wrap,
.page-id-641 .pv-contact-text .kb-buttons-wrap,
.page-id-849 .pv-contact-text .kb-buttons-wrap,
.page-id-835 .pv-contact-text .kb-buttons-wrap {
	justify-content: flex-start !important;
}
@media (max-width: 900px) {
	.page-id-640 .pv-contact-h2,
	.page-id-641 .pv-contact-h2,
	.page-id-849 .pv-contact-h2,
	.page-id-835 .pv-contact-h2 {
		text-align: center !important;
	}
	.page-id-640 .pv-contact-h2::after,
	.page-id-641 .pv-contact-h2::after,
	.page-id-849 .pv-contact-h2::after,
	.page-id-835 .pv-contact-h2::after {
		margin-left: auto !important;
		margin-right: auto !important;
	}
	.page-id-640 .pv-contact-text p,
	.page-id-641 .pv-contact-text p,
	.page-id-849 .pv-contact-text p,
	.page-id-835 .pv-contact-text p {
		text-align: center !important;
	}
	.page-id-640 .pv-contact-text .kb-buttons-wrap,
	.page-id-641 .pv-contact-text .kb-buttons-wrap,
	.page-id-849 .pv-contact-text .kb-buttons-wrap,
	.page-id-835 .pv-contact-text .kb-buttons-wrap {
		justify-content: center !important;
	}
}

/* ===========================================================
   FOOTER SOCIAL ICONS: brand-colored circular buttons, each
   platform its own real brand color per aria-label (the markup
   has no per-platform class, so target by the aria-label we
   wrote on each link).
   =========================================================== */
.pv-footer-social {
	display: grid !important;
	grid-template-columns: repeat(4, 36px) !important;
	gap: 10px !important;
	margin-top: 16px;
	width: 174px !important;
	max-width: 174px !important;
}
.pv-footer-social a {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 36px !important;
	height: 36px !important;
	max-width: 36px !important;
	max-height: 36px !important;
	min-width: 0 !important;
	flex: none !important;
	border-radius: 50%;
	background: #3A4450;
	color: #fff;
	text-decoration: none;
	transition: transform 0.15s ease, opacity 0.15s ease;
	box-sizing: border-box;
}
.pv-footer-social a:hover,
.pv-footer-col .pv-footer-social a:hover {
	color: #fff;
	transform: translateY(-2px);
	opacity: 0.85;
}
.pv-footer-social a svg {
	width: 18px !important;
	height: 18px !important;
	fill: currentColor;
}
.pv-footer-social a[aria-label="Facebook"] { background: #1877F2; }
.pv-footer-social a[aria-label="Instagram"] {
	background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}
.pv-footer-social a[aria-label="X (Twitter)"] { background: #000000; }
.pv-footer-social a[aria-label="YouTube"] { background: #FF0000; }
.pv-footer-social a[aria-label="TikTok"] { background: #010101; }
.pv-footer-social a[aria-label="Pinterest"] { background: #E60023; }
.pv-footer-social a[aria-label="Threads"] { background: #000000; }

/* --- footer Contact column: subtle outline CTA, kept quiet next to
   the heavier mobile sticky bar / page CTAs elsewhere on the site --- */
.pv-footer-cta {
	display: inline-block;
	margin-top: 18px;
	padding: 10px 22px;
	border: 1.5px solid #C9962F;
	border-radius: 999px;
	background-color: #C9962F;
	color: #FFFFFF !important;
	font-weight: 700;
	font-size: 13.5px;
	letter-spacing: 0.2px;
	text-decoration: none !important;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
.pv-footer-cta:hover {
	background-color: #b58423;
	border-color: #b58423;
	color: #FFFFFF !important;
}
.pv-footer-social a[aria-label="Quora"] { background: #B92B27; }
