/* ==========================================================================
   Location page flexible block library
   Shared by the City Lander and City + Service Sub-page templates so any
   future /locations/ page is built from this same block set.
   Brand tokens match style.css: navy #002A3F, gold #FFB605, Proxima Nova.
   ========================================================================== */

.vnd-block {
	padding: 70px 0;
}

.vnd-block-heading {
	font-family: 'Proxima Nova', sans-serif;
	color: #002A3F;
	font-size: 34px;
	font-weight: 700;
	text-transform: uppercase;
	margin-bottom: 20px;
}

.vnd-block-heading-center {
	text-align: center;
}

.vnd-block-body {
	font-size: 18px;
	line-height: 1.6;
	color: #333;
	margin-bottom: 25px;
}

.vnd-block-intro {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 40px;
	font-size: 18px;
	color: #333;
}

/* ---- Sub-page breadcrumbs ---- */
.vnd-location-breadcrumbs {
	background: #002A3F;
	padding: 16px 0;
	margin-top: -102px;
	padding-top: 210px;
	font-size: 14px;
	color: #cfd8de;
}

.vnd-location-breadcrumbs .breadcrumbs-link {
	color: #FFB605;
}

.vnd-location-breadcrumbs-sep {
	margin: 0 8px;
	color: #5a7280;
}

/* ---- Hero ---- */
.vnd-block-hero {
	position: relative;
	padding: 260px 0 100px;
	margin-top: -102px;
	background-color: #002A3F;
	background-size: cover;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	color: #fff;
}

.vnd-block-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0, 42, 63, 0.88) 0%, rgba(0, 42, 63, 0.55) 60%, rgba(0, 42, 63, 0.25) 100%);
	pointer-events: none;
}

.vnd-block-hero .container {
	position: relative;
}

/* Bootstrap's col-lg-* classes only carry gutter padding at the lg breakpoint
   and above; without a base col class, mobile viewports get zero horizontal
   padding on these columns. Restore it explicitly at all sizes. */
.vnd-block .row > [class*="col-lg-"] {
	padding-left: 12px;
	padding-right: 12px;
}

.vnd-block-hero-eyebrow {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #FFB605;
	margin-bottom: 14px;
}

.vnd-block-hero-heading {
	font-size: 48px;
	font-weight: 700;
	color: #fff !important;
	text-transform: uppercase;
	margin-bottom: 18px;
}

.vnd-block-hero-subheading {
	font-size: 20px;
	color: #f0f3f6;
	max-width: 60ch;
	margin-bottom: 30px;
}

/* ---- Text + Image ---- */
.vnd-block-ti-image img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

.vnd-block-text-image .vnd-block-ti-text {
	padding: 20px 0;
}

/* ---- Stat Row ---- */
.vnd-block-stat-row {
	background-color: #f5f6f8;
}

.vnd-stat-grid {
	display: grid;
	gap: 30px;
	text-align: center;
	grid-template-columns: repeat(2, 1fr);
}

.vnd-stat-grid-3 {
	grid-template-columns: repeat(3, 1fr);
}

.vnd-stat-grid-4 {
	grid-template-columns: repeat(4, 1fr);
}

.vnd-stat-number {
	font-size: 42px;
	font-weight: 700;
	color: #FFB605;
	font-family: 'Proxima Nova', sans-serif;
}

.vnd-stat-label {
	font-size: 16px;
	color: #002A3F;
	margin-top: 6px;
}

/* ---- Service Grid ---- */
.vnd-service-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, 1fr);
}

.vnd-service-card {
	display: block;
	background: #fff;
	border: 1px solid #e4e7ec;
	border-radius: 4px;
	padding: 30px 24px;
	color: inherit;
	text-decoration: none;
	transition: box-shadow .15s ease, transform .15s ease;
}

a.vnd-service-card:hover {
	box-shadow: 8px 8px 0px 0px #002A3F;
	transform: translate(-2px, -2px);
	text-decoration: none;
	color: inherit;
}

.vnd-service-card-icon {
	width: 44px;
	height: 44px;
	object-fit: contain;
	margin-bottom: 16px;
}

.vnd-service-card-title {
	font-size: 20px;
	font-weight: 700;
	color: #002A3F;
	text-transform: uppercase;
	margin-bottom: 10px;
}

.vnd-service-card-desc {
	font-size: 15px;
	color: #4a5568;
	margin: 0;
}

/* ---- CTA Banner ---- */
.vnd-block-cta-dark {
	background-color: #002A3F;
	color: #fff;
}

.vnd-block-cta-dark .vnd-block-heading,
.vnd-block-cta-dark .vnd-block-cta-body {
	color: #fff;
}

.vnd-block-cta-light {
	background-color: #f5f6f8;
}

.vnd-block-cta-body {
	font-size: 18px;
	margin: 0;
	color: #333;
}

.vnd-block-cta-action {
	text-align: right;
}

.vnd-block-cta-action .vnd-btn,
.vnd-block-hero-cta {
	display: inline-block;
	text-align: center;
}

/* ---- FAQ ---- */
.vnd-faq-list {
	max-width: 820px;
	margin: 0 auto;
}

.vnd-faq-item {
	border-bottom: 1px solid #e4e7ec;
}

.vnd-faq-question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: none;
	border: none;
	padding: 22px 0;
	font-size: 18px;
	font-weight: 700;
	color: #002A3F;
	text-align: left;
	cursor: pointer;
	font-family: 'Proxima Nova', sans-serif;
}

.vnd-faq-toggle {
	flex: 0 0 auto;
	font-size: 24px;
	color: #FFB605;
	line-height: 1;
	transition: transform .15s ease;
}

.vnd-faq-item.is-open .vnd-faq-toggle {
	transform: rotate(45deg);
}

.vnd-faq-answer {
	padding: 0 0 22px;
	color: #4a5568;
	font-size: 16px;
	line-height: 1.6;
}

/* ---- Founders / Why VND ---- */
.vnd-block-founders {
	background-color: #f5f6f8;
}

.vnd-founders-photo-col img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	margin-bottom: 24px;
}

.vnd-founders-quote {
	margin: 0 0 12px;
	padding: 0;
	border: none;
	font-size: 22px;
	font-weight: 700;
	font-style: italic;
	color: #002A3F;
	line-height: 1.4;
}

.vnd-founders-names {
	font-size: 16px;
	font-weight: 700;
	color: #002A3F;
	text-transform: uppercase;
}

.vnd-founders-title {
	font-size: 14px;
	color: #5b6472;
}

.vnd-founders-reasons-col {
	padding-left: 40px;
}

.vnd-founders-reasons {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(2, 1fr);
}

.vnd-founders-reason-title {
	font-size: 17px;
	font-weight: 700;
	color: #002A3F;
	text-transform: uppercase;
	margin-bottom: 6px;
}

.vnd-founders-reason-desc {
	font-size: 15px;
	color: #4a5568;
	margin: 0;
}

/* ---- Founders compact variant: small "meet the team" card ---- */
.vnd-block-founders-compact {
	padding: 50px 0;
}

.vnd-founders-compact-card {
	max-width: 620px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 24px;
	background: #fff;
	border: 1px solid #e4e7ec;
	border-radius: 6px;
	padding: 24px 28px;
}

.vnd-founders-compact-photo {
	flex: 0 0 auto;
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: 50%;
}

.vnd-founders-compact-text {
	min-width: 0;
}

.vnd-founders-compact-card .vnd-founders-quote {
	font-size: 17px;
	margin-bottom: 8px;
}

.vnd-founders-compact-card .vnd-founders-names {
	font-size: 14px;
}

.vnd-founders-compact-card .vnd-founders-title {
	margin-bottom: 10px;
}

.vnd-founders-compact-body {
	font-size: 15px;
	line-height: 1.6;
	color: #4a5568;
	margin: 0 0 10px;
}

.vnd-founders-compact-card .vnd-link {
	font-size: 14px;
	font-weight: 700;
	color: #002A3F;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vnd-founders-compact-card .vnd-link:hover {
	color: #FFB605;
}

/* ---- Proof of Work ---- */
.vnd-pow-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(4, 1fr);
}

.vnd-pow-card {
	display: block;
	background: #fff;
	border: 1px solid #e4e7ec;
	border-radius: 4px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: box-shadow .15s ease, transform .15s ease;
}

a.vnd-pow-card:hover {
	box-shadow: 6px 6px 0px 0px #002A3F;
	transform: translate(-2px, -2px);
	text-decoration: none;
	color: inherit;
}

.vnd-pow-card-image {
	width: 100%;
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	background-color: #eef0f4;
}

.vnd-pow-card-name {
	padding: 12px 14px;
	font-size: 14px;
	font-weight: 700;
	color: #002A3F;
	text-align: center;
	text-transform: uppercase;
}

/* ---- City lander -> sub-page cross-links ----
   Auto-generated from published child location pages (see
   location-city-template.php). Uses auto-fit instead of a fixed 3-col
   grid so it still looks intentional with only 1-2 sub-pages live,
   and grows into a full grid as more are published. */
.vnd-block-city-services .vnd-service-grid {
	grid-template-columns: repeat(auto-fit, minmax(240px, 300px));
	justify-content: center;
}

/* ---- Free Technology Assessment landing page ---- */
.vnd-fta-hero {
	padding: 170px 0 70px;
}

.vnd-fta-hero .vnd-block-hero-subheading {
	max-width: 46ch;
}

.vnd-fta-form-card {
	background: #fff;
	border-radius: 8px;
	padding: 28px 26px;
	box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.5);
}

.vnd-fta-form-title {
	font-family: 'Proxima Nova', sans-serif;
	color: #002A3F;
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 16px;
}

.vnd-fta-form-card .wpcf7 {
	background: transparent !important;
}

.vnd-fta-form-card .wpcf7-form-control {
	width: 100%;
	border: 1px solid #d7dce3;
	border-radius: 4px;
	padding: 11px 12px;
	font-size: 14px;
	margin-bottom: 12px;
	background: #fff !important;
	color: #002A3F;
}

.vnd-fta-form-card select.wpcf7-form-control {
	background: #fff;
}

.vnd-fta-form-card textarea.wpcf7-form-control {
	min-height: 70px;
	resize: vertical;
}

body #assessment-form .wpcf7-submit {
	width: 100%;
	background: #FFB605 !important;
	color: #002A3F;
	border: none !important;
	border-radius: 4px;
	padding: 13px 12px !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	cursor: pointer;
}

.vnd-fta-form-card .wpcf7-submit:hover {
	background: #e6a405;
}

.vnd-fta-form-card .wpcf7-not-valid-tip {
	font-size: 12px;
	margin: -8px 0 10px;
}

.vnd-fta-form-card .wpcf7-response-output {
	margin-top: 12px;
	font-size: 13px;
	border-radius: 4px;
}

.vnd-fta-pain-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, 1fr);
	max-width: 900px;
	margin: 0 auto;
}

.vnd-fta-pain-item {
	background: #f5f6f8;
	border-left: 3px solid #FFB605;
	border-radius: 4px;
	padding: 14px 18px;
	font-size: 15px;
	color: #333;
}

.vnd-fta-list {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: grid;
	gap: 10px;
}

.vnd-fta-list li {
	padding-left: 26px;
	position: relative;
	font-size: 16px;
	color: #333;
}

.vnd-fta-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 7px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #FFB605;
}

/* Same fixed-button overlap issue as the location pages, scoped to this
   campaign landing page only. */
@media (max-width: 767px) {
	body.page-template-free-site-analysis-template .callNow,
	body.page-template-free-site-analysis-template .scheduleNow {
		display: none !important;
	}
}

@media (max-width: 767px) {
	.vnd-fta-pain-grid {
		grid-template-columns: 1fr;
	}
}

/* ---- Responsive ---- */
/* The site-wide floating Call Now / Schedule Zoom buttons sit fixed at a
   mid-viewport height and overlap block content on narrow screens (same
   issue previously fixed page-scoped on the WordPress campaign lander).
   Hide them below 768px on location pages so they don't cover text. */
@media (max-width: 767px) {
	body.single-location .callNow,
	body.single-location .scheduleNow {
		display: none !important;
	}
}

@media (max-width: 991px) {
	.vnd-block {
		padding: 45px 0;
	}

	.vnd-block-hero {
		padding: 170px 0 60px;
	}

	.vnd-location-breadcrumbs {
		padding-top: 130px;
	}

	.vnd-block-hero-heading {
		font-size: 32px;
	}

	.vnd-stat-grid,
	.vnd-stat-grid-3,
	.vnd-stat-grid-4 {
		grid-template-columns: repeat(2, 1fr);
	}

	.vnd-service-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.vnd-block-text-image .row {
		flex-direction: column-reverse;
	}

	.vnd-block-ti-left .row {
		flex-direction: column-reverse;
	}

	.vnd-block-ti-image {
		margin-bottom: 24px;
	}

	.vnd-block-cta-action {
		text-align: left;
		margin-top: 20px;
	}

	.vnd-founders-reasons-col {
		padding-left: 0;
		margin-top: 30px;
	}

	.vnd-founders-reasons {
		grid-template-columns: 1fr;
	}

	.vnd-pow-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.vnd-founders-compact-card {
		flex-direction: column;
		text-align: center;
		padding: 24px;
	}
}

@media (max-width: 575px) {
	.vnd-stat-grid,
	.vnd-stat-grid-3,
	.vnd-stat-grid-4,
	.vnd-service-grid {
		grid-template-columns: 1fr;
	}
}
