/**
 * Homepage — Gutenberg + shortcode layout (match V2 reference).
 */

/* ── Section wrappers: never constrain to theme.json content width ── */
/* .hero .wrap,
.about .wrap,
.services .wrap,
.why .wrap,
.process .wrap,
.testi .wrap,
.amenities .wrap,
.faq .wrap,
.find .wrap {
	width: 100% !important;
	max-width: 1320px !important;
} */

/* ── Hero photo shortcode ── */
.hero .hero-photo>.wp-block-shortcode {
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
}

.hero .hero-photo .photo-slot {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
}

.hero .hero-photo .photo-slot img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

/* ── Marquee (HTML block) ── */
.marquee,
.marquee.wp-block-html {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.marquee .marquee-track {
	display: inline-flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: clamp(32px, 5vw, 56px) !important;
	width: max-content !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	animation: scroll 40s linear infinite;
	font-family: var(--f-display);
	font-weight: 900;
	line-height: 1.05;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: #1737e6;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.55), 0 2px 6px rgba(10, 14, 26, 0.2);
	font-size: clamp(28px, 4vw, 40px);
}

.marquee .marquee-track span {
	margin: 0 !important;
	padding: 0 !important;
	display: inline !important;
	color: inherit !important;
}

.marquee .marquee-track .star {
	color: var(--c-primary-deep) !important;
}

/* ── About: shortcode column (grid placement in overrides.css) ── */
.about .about-layout>.wp-block-shortcode .about-visual,
.about .about-layout>.wp-block-shortcode figure.about-visual {
	margin: 0 !important;
	width: 100% !important;
}

/* ── Services shortcode block ── */
.services .wrap>.wp-block-shortcode {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	margin: 0;
}

.services .wp-block-shortcode .services-intro,
.services .wp-block-shortcode header.services-intro {
	display: grid !important;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr) !important;
	gap: clamp(20px, 3vw, 32px) clamp(32px, 5vw, 56px) !important;
	align-items: center !important;
	margin-bottom: clamp(36px, 5vw, 56px) !important;
	padding-bottom: clamp(28px, 4vw, 40px) !important;
	border-bottom: 3px solid #fff !important;
	position: relative !important;
	width: 100% !important;
}

.services .wp-block-shortcode .services-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: clamp(24px, 3.5vw, 40px) !important;
	width: 100% !important;
}

.services .wp-block-shortcode .services-foot,
.services .wp-block-shortcode aside.services-foot {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 16px;
	margin-top: clamp(32px, 4vw, 48px) !important;
	width: 100% !important;
}

.services .wp-block-shortcode .service-card {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
}

.services .wp-block-shortcode .service-card-visual .photo-slot,
.services .wp-block-shortcode .service-card-visual img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.services .wp-block-shortcode .service-list {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 24px !important;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 8px 16px;
}

/* ── Why feature grid shortcode ── */
.why .wrap>.wp-block-shortcode {
	display: block;
	width: 100%;
	margin: 0;
}

.why .wp-block-shortcode .feature-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(18px, 2.2vw, 28px) !important;
	width: 100% !important;
}

/* ── Process steps (columns block) ── */
.process .steps.wp-block-columns {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 0 !important;
	border-top: 1px solid rgba(245, 242, 234, 0.25) !important;
}

.process .steps.wp-block-columns>.wp-block-column {
	margin: 0 !important;
	width: auto !important;
	flex-basis: auto !important;
}

.process .steps .wp-block-group.step {
	height: 100%;
}

/* ── Testimonials shortcode ── */
.testi .wrap>.wp-block-shortcode {
	display: block;
	width: 100%;
	margin: 0;
}

.testi .wp-block-shortcode .testi-layout {
	display: grid !important;
	grid-template-columns: minmax(260px, 0.34fr) minmax(0, 0.66fr) !important;
	gap: clamp(24px, 4vw, 30px) !important;
	width: 100% !important;
	align-items: stretch !important;
}

.testi .wp-block-shortcode .testi-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: clamp(18px, 2vw, 26px) !important;
}

/* ── Amenities grid ── */
.amenities .amen-grid.wp-block-columns {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 24px !important;
}

.amenities .amen-grid.wp-block-columns>.wp-block-column {
	margin: 0 !important;
	width: auto !important;
	flex-basis: auto !important;
}

/* ── FAQ shortcodes in grid ── */
.faq .faq-grid,
.faq .wp-block-group.faq-grid {
	display: grid !important;
	grid-template-columns: minmax(260px, 0.34fr) minmax(0, 0.66fr) !important;
	gap: clamp(24px, 4vw, 54px) !important;
	align-items: start !important;
}

.faq .faq-grid>.wp-block-shortcode {
	display: block;
	width: 100%;
	min-width: 0;
	margin: 0;
}

.faq .faq-grid>.wp-block-shortcode:first-child {
	grid-column: 1;
}

.faq .faq-grid>.wp-block-shortcode:last-child {
	grid-column: 2;
}

@media (max-width: 880px) {
	.faq .faq-grid>.wp-block-shortcode:last-child {
		grid-column: 1;
	}
}

/* ── Find section — card stack spacing (not map column gap) ── */
.find .find-info,
.find .wp-block-group.find-info {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 10px !important;
	row-gap: 10px !important;
}

.find .find-info.is-layout-flow>*+*,
.find .wp-block-group.find-info.is-layout-flow>*+* {
	margin-block-start: 0 !important;
}

.find .find-info .find-card,
.find .find-info .wp-block-group.find-card {
	margin: 0 !important;
}

/* ── Find shortcode grid ── */
.find .wrap>.wp-block-shortcode {
	display: block;
	width: 100%;
	margin: 0;
}

.find .wp-block-shortcode .find-grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr) !important;
	gap: clamp(24px, 3.5vw, 46px) !important;
	align-items: stretch !important;
	width: 100% !important;
}

.find .wp-block-shortcode .find-map {
	position: relative;
	min-height: clamp(320px, 42vw, 480px);
}

.find .wp-block-shortcode .find-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.why .feat,
.why .wp-block-group.feat {
	display: flex !important;
	flex-direction: column !important;
	min-height: 250px !important;
	margin: 0 !important;
	justify-content: center !important;
}

#process .section-head {
	margin-bottom: 0px;
	gap: 0px;
	padding-bottom: 19px;
}

@media (max-width: 1040px) {
	.why .wp-block-shortcode .feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.amenities .amen-grid.wp-block-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 900px) {

	.services .wp-block-shortcode .services-intro,
	.services .wp-block-shortcode .services-grid,
	.services .wp-block-shortcode .service-list {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 880px) {

	.why .wp-block-shortcode .feature-grid,
	.find .wp-block-shortcode .find-grid,
	.faq .faq-grid,
	.faq .wp-block-group.faq-grid,
	.testi .wp-block-shortcode .testi-layout,
	.testi .wp-block-shortcode .testi-grid {
		grid-template-columns: 1fr !important;
	}

	.process .steps.wp-block-columns {
		grid-template-columns: 1fr 1fr !important;
	}
}