/* Ensure homepage images are visible + reveal overlay works */

/* Fixed header strip — always visible (no 4s off-screen delay) */
.main_navigation_container_desktop {
	margin-right: 0 !important;
	transition: width 0.3s ease, margin 0.3s ease 0s !important;
}

/*
 * Desktop menu panel: fully off-screen when closed.
 * (Forcing margin-right:0 left an 83px strip with clipped menu letters.)
 */
.navigation_modal_container {
	top: 0;
	height: 100vh;
	margin-right: -83px !important;
	overflow: hidden;
	transition: width 0.25s ease, margin 0.25s ease 0s !important;
}

.navigation_modal_container.is-open {
	margin-right: 0 !important;
	overflow-x: hidden;
	overflow-y: auto;
}

.navigation_modal_container.is-open .flexbox_container {
	overflow-x: hidden;
	overflow-y: auto;
}

.navigation_modal_container:not(.is-open) .flexbox_container {
	visibility: hidden;
	pointer-events: none;
}

@media (max-width: 1375px) {
	.navigation_modal_container {
		margin-right: -63px !important;
	}

	.navigation_modal_container.is-open {
		margin-right: 0 !important;
	}
}

@media (max-width: 880px) {
	.navigation_modal_container {
		margin-right: 0 !important;
		width: 0 !important;
		display: none;
	}
}

body.mobile-nav-open {
	overflow: hidden;
}

.main_navigation_container_desktop {
	z-index: 10000;
}

.mobile_navigation_container {
	z-index: 10000;
}

/* Hero / page content — flush to top (fixed nav overlays) */
#top.container,
.page_wrap {
	margin-top: 0;
	padding-top: 0;
}

header {
	height: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	overflow: visible;
	border: 0;
}

.main_navigation_container_desktop,
.mobile_navigation_container {
	position: fixed;
}

.page .page_wrap > .elementor > .elementor-section:first-child,
.page .page_wrap > .elementor > .elementor-inner > .elementor-section:first-child {
	margin-top: 0;
}

/* WordPress admin bar — remove top gap on inner pages */
body.admin-bar.page:not(.home) #top.container {
	margin-top: 0;
}

/* Hero banner — flush to top of viewport */
.home #top.container,
.home .page_wrap {
	margin-top: 0;
	padding-top: 0;
}

.home header {
	height: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	overflow: visible;
	border: 0;
}

.home .main_navigation_container_desktop,
.home .mobile_navigation_container {
	position: fixed;
}

.home .home_main_image_video {
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	top: 0;
}

.home .home_main_image_video .background_image_container {
	margin: 0;
	padding: 0;
	background-position: center top;
	position: relative;
	overflow: hidden;
}

.home .home_main_image_video .hero-bg-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
}

/* Elementor lazyload can strip background-image from descendants */
.home .home_main_image_video .background_image_container {
	background-image: none !important;
}

/* WordPress admin bar — stop html margin pushing content down (causes white top gap) */
html.admin-bar {
	margin-top: 0 !important;
}

body.admin-bar {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Home hero — first section flush to viewport top */
.home .page_wrap > .elementor > .elementor-section:first-child,
.home .page_wrap > .elementor > .elementor-section:first-child .elementor-container,
.home .page_wrap > .elementor > .elementor-section:first-child .elementor-column,
.home .page_wrap > .elementor > .elementor-section:first-child .elementor-widget-wrap,
.home .page_wrap > .elementor > .elementor-section:first-child .elementor-element-populated {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.home .elementor-widget-ce-hero .elementor-widget-container {
	margin: 0;
	padding: 0;
	line-height: 0;
}

.home .home_main_image_video {
	margin-top: 0 !important;
	padding-top: 0;
}

.home .home_main_image_video .background_image_container {
	min-height: 100vh;
	height: 100vh;
}

/* Logged-in: nav sits below admin bar, hero stays flush under it */
body.admin-bar .main_navigation_container_desktop,
body.admin-bar .navigation_modal_container {
	top: 32px;
	height: calc(100vh - 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar .main_navigation_container_desktop,
	body.admin-bar .navigation_modal_container,
	body.admin-bar .mobile_navigation_container {
		top: 46px;
	}

	body.admin-bar .navigation_modal_container {
		height: calc(100vh - 46px);
	}
}

/* WordPress admin bar pushes page down when logged in — legacy overrides removed */
body.admin-bar.home {
	margin-top: 0 !important;
}

body.admin-bar.home .home_main_image_video {
	margin-top: 0 !important;
}

body.admin-bar.home .home_main_image_video .background_image_container {
	height: 100vh;
	min-height: 100vh;
}

@media screen and (max-width: 782px) {
	body.admin-bar.home .home_main_image_video {
		margin-top: 0 !important;
	}

	body.admin-bar.home .home_main_image_video .background_image_container {
		height: 100vh;
		min-height: 100vh;
	}
}

/* Site-wide scroll image reveal (white curtain) */
.js_scrolltrigger_reveal_image_marker {
	position: relative;
	overflow: hidden;
	display: block;
}

.js_scrolltrigger_reveal_image_marker.image_container a,
.home_full_width_image a {
	display: block;
	line-height: 0;
}

.js_scrolltrigger_reveal_image_marker picture,
.js_scrolltrigger_reveal_image_marker img {
	opacity: 1 !important;
	visibility: visible !important;
	display: block;
	max-width: 100%;
}

.js_scrolltrigger_reveal_image_marker > picture,
.js_scrolltrigger_reveal_image_marker > img {
	width: 100%;
}

.js_scrolltrigger_reveal_image_marker .js_image_reveal {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 998;
	width: 100%;
	height: 100%;
	background: #ffffff;
	pointer-events: none;
	transition: left 1.6s ease;
}

.js_scrolltrigger_reveal_image_marker.active_trigger .js_image_reveal {
	left: 100%;
}

/* Development columns — poster + overlay inside video area */
.home_our_projects_outer_container_desktop .inner_container a .image_container_widden .video_span {
	position: absolute;
	inset: 0;
	display: block;
	overflow: hidden;
	z-index: 1;
}

.home_our_projects_outer_container_desktop .inner_container a .image_container_widden .video_span picture,
.home_our_projects_outer_container_desktop .inner_container a .image_container_widden .video_span img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	min-width: 100%;
	min-height: 100%;
	object-fit: cover;
	display: block;
}

.home_our_projects_outer_container_desktop .inner_container a .image_container_widden .video_span .js_image_reveal {
	z-index: 999;
}

/* Approach, news, coogee images */
.image_container picture,
.home_full_width_image picture,
.approach_and_news_container .img_hover_zoom picture {
	display: block;
	width: 100%;
}

.image_container picture img,
.home_full_width_image picture img,
.approach_and_news_container .approach_item picture img,
.approach_and_news_container .news_container picture img,
.home_our_projects_columns_container_mobile .image_container picture img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
}

.approach_and_news_container .approach_container .image_container,
.approach_and_news_container .news_container .img_hover_zoom.image_container,
.home_full_width_image .js_scrolltrigger_reveal_image_marker {
	min-height: 220px;
}

.approach_and_news_container .approach_container .image_container img,
.approach_and_news_container .news_container .img_hover_zoom img {
	min-height: 200px;
	object-fit: cover;
}

.approach_and_news_container .news_container .flexbox_container_mobile {
	display: flex;
	flex-direction: column;
}

/* Elementor — keep theme layout, no extra gaps (home + inner pages) */
.elementor-section.elementor-section-full_width > .elementor-container {
	max-width: 100%;
}

.elementor-column-gap-no > .elementor-column > .elementor-element-populated {
	padding: 0;
}

.elementor-widget-ce-hero,
.elementor-widget-ce-mission,
.elementor-widget-ce-developments,
.elementor-widget-ce-banner,
.elementor-widget-ce-approach-news,
.elementor-widget-ce-page-hero,
.elementor-widget-ce-opening-image,
.elementor-widget-ce-text-section,
.elementor-widget-ce-media-caption,
.elementor-widget-ce-testimonials,
.elementor-widget-ce-legal-content,
.elementor-widget-ce-contact-page,
.elementor-widget-ce-team-page,
.elementor-widget-ce-collaborators,
.ce-collaborators-section {
	display: block !important;
}

/* Keep collaborators clear of fixed right nav on desktop */
.ce-collaborators-section,
.elementor-widget-ce-collaborators .ce-collaborators-section {
	width: calc(100% - 84px);
	max-width: calc(100% - 84px);
	box-sizing: border-box;
}

.ce-collaborators-section .collaborators_heading,
.ce-collaborators-section .collaborators_container {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.ce-collaborators-section .collaborators_container .collaborator_columns .flex_rows p {
	max-width: 92%;
}

@media (max-width: 1375px) {
	.ce-collaborators-section,
	.elementor-widget-ce-collaborators .ce-collaborators-section {
		width: calc(100% - 63px);
		max-width: calc(100% - 63px);
	}
}

@media (max-width: 880px) {
	.ce-collaborators-section,
	.elementor-widget-ce-collaborators .ce-collaborators-section {
		width: 100%;
		max-width: 100%;
	}

	.ce-collaborators-section .collaborators_container .collaborator_columns .flex_rows p {
		max-width: 100%;
	}
}

.ce-collaborators-section .swap_item {
	display: block !important;
}
.elementor-widget-ce-partnerships-page,
.elementor-widget-ce-construction-benefits,
.elementor-widget-ce-construction-projects,
.elementor-widget-ce-project-grid,
.elementor-widget-ce-news-grid,
.elementor-widget-ce-leadership,
.elementor-widget-ce-timeline {
	width: 100%;
}

/* Nav active states for page-based Developments + News */
.developments.my_archive .main_navigation li:nth-of-type(4) a:after,
.news .main_navigation li:nth-of-type(7) a:after {
	content: "";
	position: absolute;
	width: 100%;
	transform: scaleX(1);
	height: 1px;
	bottom: 4px;
	left: 0;
	background-color: #0B0B0B;
	transform-origin: bottom left;
}

@media (max-width: 880px) {
	.developments.my_archive .main_navigation li:nth-of-type(4) a,
	.news .main_navigation li:nth-of-type(7) a {
		text-decoration: underline;
	}
}

/* SMT sitemap hierarchical nav — collapsed by default, expand on click */
.main_navigation > .menu-item-has-children,
.main_navigation > li.menu-item-has-children {
	position: relative;
}

.main_navigation > .menu-item-has-children > .sub-menu,
.main_navigation > li > .sub-menu,
.main_navigation .menu-item-has-children > .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 0 0 0.85em;
	display: none;
	overflow: hidden;
}

.main_navigation > .menu-item-has-children.is-open > .sub-menu,
.main_navigation > li.is-open > .sub-menu,
.main_navigation .menu-item-has-children.is-open > .sub-menu {
	display: block !important;
	margin: 0.35em 0 0.85em;
}

.main_navigation > .menu-item-has-children > .sub-menu > li,
.main_navigation > li > .sub-menu > li {
	margin: 0;
	padding: 0;
}

.main_navigation > .menu-item-has-children > .sub-menu > li > a,
.main_navigation > li > .sub-menu > li > a {
	font-family: "PP-Fragment", serif;
	font-size: 22px;
	line-height: 30px;
	opacity: 0.72;
}

/*
 * Caret sits beside the label (inline-flex), NOT at the far right of the row.
 * Theme underline keeps using ::after.
 */
.main_navigation > .menu-item-has-children > a {
	display: inline-flex !important;
	align-items: center;
	gap: 0.45em;
	width: auto !important;
	max-width: 100%;
	padding-right: 0 !important;
	box-sizing: border-box;
}

.main_navigation > .menu-item-has-children > a::before {
	content: "";
	order: 2;
	position: static !important;
	display: inline-block;
	width: 7px;
	height: 7px;
	margin: 0;
	border: 0;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	opacity: 0.5;
	flex: 0 0 auto;
	pointer-events: none;
	transition: transform 0.2s ease;
}

.main_navigation > .menu-item-has-children.is-open > a::before {
	transform: rotate(-135deg);
}

/* Mobile menu — nav first, form closed, all top items visible */
@media (max-width: 880px) {
	/* Break out of Elementor header containing blocks */
	.elementor-location-header,
	.elementor-location-header .elementor-section,
	.elementor-location-header .elementor-container,
	.elementor-location-header .elementor-element,
	.elementor-location-header .elementor-widget-wrap,
	.elementor-location-header .elementor-widget,
	.elementor-location-header .elementor-widget-container {
		overflow: visible !important;
		transform: none !important;
		filter: none !important;
		perspective: none !important;
		contain: none !important;
	}

	.mobile_navigation_container {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		max-width: 100vw !important;
		height: 56px !important;
		margin: 0 !important;
		z-index: 100001 !important;
		background: #fff !important;
	}

	.mobile_navigation_modal_container,
	.js_modal_container_mobile_show_hide.is-open {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100vw !important;
		max-width: 100vw !important;
		min-width: 100vw !important;
		height: 100vh !important;
		min-height: 100vh !important;
		max-height: none !important;
		margin: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		transform: none !important;
		background: #ffffff !important;
		z-index: 100000 !important;
		padding-top: 72px !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
		padding-bottom: 40px !important;
		box-sizing: border-box !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
	}

	.mobile_navigation_modal_container .flexbox_container {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.mobile_navigation_modal_container .flexbox_container nav {
		display: block;
		width: 100%;
	}

	.mobile_navigation_modal_container .main_navigation {
		display: block;
		margin: 0;
		padding: 8px 0 20px;
		list-style: none;
	}

	.mobile_navigation_modal_container .main_navigation > li {
		display: list-item !important;
		visibility: visible !important;
		opacity: 1 !important;
		height: auto !important;
		margin: 0;
		padding: 10px 0;
		list-style: none;
	}

	.mobile_navigation_modal_container .main_navigation > li > a {
		display: inline-flex !important;
		width: auto !important;
		font-size: 24px !important;
		line-height: 32px !important;
	}

	.mobile_navigation_modal_container .newsletter_container {
		margin-top: 8px;
		width: 100%;
	}

	.mobile_navigation_modal_container .newsletter_container h3:nth-of-type(2) {
		display: none !important;
	}

	/* Form stays closed unless Newsletter is opened */
	.mobile_navigation_modal_container .newsletter_container .form_container {
		display: none !important;
	}

	.mobile_navigation_modal_container .newsletter_container.is-form-open .form_container {
		display: block !important;
	}

	.mobile_navigation_modal_container .newsletter_container h3:nth-of-type(1) button {
		font-size: 16px;
		line-height: 24px;
		opacity: 0.7;
	}

	.mobile_navigation_modal_container .checkbox_outer_container {
		display: none;
	}

	.mobile_navigation_modal_container .newsletter_container.is-form-open .form_drop_down.is-open .checkbox_outer_container {
		display: block;
	}

	body.admin-bar .mobile_navigation_container {
		top: 46px !important;
	}

	body.admin-bar .mobile_navigation_modal_container,
	body.admin-bar .js_modal_container_mobile_show_hide.is-open {
		top: 46px !important;
		height: calc(100vh - 46px) !important;
		min-height: calc(100vh - 46px) !important;
		padding-top: 56px !important;
	}
}

@media (max-width: 1920px) {
	.main_navigation > .menu-item-has-children > .sub-menu > li > a,
	.main_navigation > li > .sub-menu > li > a {
		font-size: 1.15vw;
		line-height: 1.55vw;
	}
}

@media (max-width: 1375px) {
	.main_navigation > .menu-item-has-children > .sub-menu > li > a,
	.main_navigation > li > .sub-menu > li > a {
		font-size: 18px;
		line-height: 24px;
	}
}

@media (max-width: 880px) {
	.main_navigation > .menu-item-has-children > .sub-menu > li > a,
	.main_navigation > li > .sub-menu > li > a {
		font-size: 16px;
		line-height: 24px;
	}
}

/* Portfolio / developments project grid — CSS Grid (stable on resize) */
.elementor-widget-ce-project-grid {
	display: block !important;
	width: 100%;
}

.sticky_columns_container_development .developments_content_container {
	min-height: 0;
	overflow: hidden;
}

.magicgrid_master_container {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	width: 100%;
	position: relative !important;
	height: auto !important;
	align-items: start;
}

.magicgrid_master_container article {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	transform: none !important;
	box-sizing: border-box;
	float: none;
	padding-left: 22px;
	padding-right: 22px;
}

.magicgrid_master_container article a {
	display: block;
	width: 100%;
	height: auto;
	overflow: hidden;
}

.magicgrid_master_container article .text_container {
	padding-left: 2px;
	padding-right: 2px;
}

.magicgrid_master_container article .item_container {
	position: relative;
	width: 100%;
	line-height: 0;
	background: #f3f3f3;
	min-height: 0;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}

.magicgrid_master_container article .item_container img,
.magicgrid_master_container article .item_container picture {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 1 !important;
	visibility: visible !important;
}

.magicgrid_master_container article .item_container picture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Column dividers track the 3-col grid */
.developments_content_container .outer_border_container_one {
	left: 33.333%;
}

.developments_content_container .outer_border_container_two {
	left: 66.666%;
}

/* White curtain scroll-reveal — same as homepage */
.magicgrid_master_container .item_container.js_scrolltrigger_reveal_image_marker {
	position: relative;
	overflow: hidden;
}

.magicgrid_master_container .item_container .js_image_reveal {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	background: #ffffff;
	pointer-events: none;
	transition: left 1.6s ease;
}

.magicgrid_master_container .item_container.active_trigger .js_image_reveal {
	left: 100%;
}

/* Mid desktop: 2 columns; stack sidebar earlier so cards aren't crushed */
@media (max-width: 1200px) {
	.magicgrid_master_container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.developments_content_container .outer_border_container_one {
		left: 50%;
	}

	.developments_content_container .outer_border_container_two {
		display: none;
	}

	.sticky_columns_container_development {
		display: block;
	}

	.sticky_columns_container_development .sticky_column_container {
		position: relative;
		top: auto;
		height: auto;
		min-height: 0;
		max-width: 100%;
		flex: none;
		width: 100%;
		padding: 0 20px 24px;
		box-sizing: border-box;
	}

	.sticky_columns_container_development .developments_content_container {
		display: block;
		max-width: 100%;
		flex: none;
		width: 100%;
		border-left: 0;
	}

	.magicgrid_master_container article {
		padding-left: 18px;
		padding-right: 18px;
	}
}

@media (max-width: 1000px) {
	.magicgrid_master_container {
		grid-template-columns: minmax(0, 1fr);
	}

	.magicgrid_master_container article {
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 20px;
		padding-right: 20px;
	}

	.developments_content_container .outer_border_container_one,
	.developments_content_container .outer_border_container_two {
		display: none;
	}
}

@media (max-width: 880px) {
	/* Keep desktop grid hidden on real mobile */
	.sticky_columns_container_development .developments_content_container {
		display: none !important;
	}

	.developments_content_container_mobile {
		display: block !important;
		position: relative;
		padding-left: 20px !important;
		padding-right: 20px !important;
		box-sizing: border-box;
		width: 100%;
	}

	/* Desktop 3-col divider lines — never on mobile */
	.outer_border_container_one,
	.outer_border_container_two,
	.developments_content_container .outer_border_container_one,
	.developments_content_container .outer_border_container_two,
	.developments_content_container_mobile .outer_border_container_one,
	.developments_content_container_mobile .outer_border_container_two {
		display: none !important;
		visibility: hidden !important;
		width: 0 !important;
		background: transparent !important;
	}

	.magicgrid_master_container {
		grid-template-columns: minmax(0, 1fr);
	}

	.magicgrid_master_container article {
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 0;
		padding-right: 0;
		margin-bottom: 28px;
	}

	.developments_content_container_mobile .text_container,
	.magicgrid_master_container article .text_container {
		padding-left: 0;
		padding-right: 0;
		box-sizing: border-box;
	}

	body.portfolio .developments_page_heading,
	body.residential .developments_page_heading,
	body.commercial .developments_page_heading,
	body.healthcare .developments_page_heading,
	body.coming-soon .developments_page_heading,
	.sticky_columns_container_development .sticky_column_container {
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}

	.mobile_navigation_container .nav_open_container {
		width: calc(100% - 40px) !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* Portfolio cards — reduce oversized title / status / arrow gaps */
.magicgrid_master_container article h3 {
	padding-top: 18px !important;
	padding-bottom: 12px !important;
}

.magicgrid_master_container article .status {
	padding-bottom: 10px !important;
}

.magicgrid_master_container article .button_container {
	padding-top: 8px !important;
	padding-bottom: 28px !important;
}

.developments_content_container_mobile h3 {
	padding-bottom: 16px !important;
}

.developments_content_container_mobile .status {
	padding-bottom: 24px !important;
}

/* Project singles — clear fixed header; keep bottom gap modest */
body.single-project .developments_page_heading,
body.single-project .approach_page_heading {
	padding-top: 100px;
	padding-bottom: 32px;
}

body.single-project .developments_page_heading h2,
body.single-project .approach_page_heading h2 {
	max-width: 100%;
}

body.single-project .opening_image_container {
	padding-bottom: 40px;
}

@media (max-width: 880px) {
	body.single-project .page_wrap {
		padding-top: 0;
	}

	body.single-project .developments_page_heading,
	body.single-project .approach_page_heading {
		/* Mobile header is 56px — need clearance below it */
		padding-top: 80px !important;
		padding-bottom: 24px;
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}
}

/* Portfolio/sector archive headings — less empty space above the grid */
body.portfolio .developments_page_heading,
body.residential .developments_page_heading,
body.commercial .developments_page_heading,
body.healthcare .developments_page_heading,
body.coming-soon .developments_page_heading {
	padding-bottom: 48px;
}

@media (max-width: 1920px) {
	body.portfolio .developments_page_heading,
	body.residential .developments_page_heading,
	body.commercial .developments_page_heading,
	body.healthcare .developments_page_heading,
	body.coming-soon .developments_page_heading {
		padding-bottom: 2.5vw;
	}
}

@media (max-width: 880px) {
	body.portfolio .developments_page_heading,
	body.residential .developments_page_heading,
	body.commercial .developments_page_heading,
	body.healthcare .developments_page_heading,
	body.coming-soon .developments_page_heading {
		padding-bottom: 32px;
	}
}

/* Google Maps embed on contact */
#map.ce-google-map,
.ce-google-map {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 235px;
	overflow: hidden;
	background: #f3f3f3;
}

#map.ce-google-map iframe,
.ce-google-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: inherit;
	border: 0;
}

.contact #map.ce-google-map,
.contact .ce-google-map {
	min-height: 862px;
}

@media (max-width: 880px) {
	.contact #map.ce-google-map,
	.contact .ce-google-map,
	#map.ce-google-map,
	.ce-google-map {
		min-height: 235px;
	}
}

/* Elementor contact form — checkbox styling matches CF7 theme styles */
.ce-contact-form .wpcf7-checkbox label,
.ce-contact-form .wpcf7-list-item label {
	position: relative;
	cursor: pointer;
	display: block;
}

.ce-contact-form .wpcf7-checkbox input[type='checkbox'] {
	position: absolute;
	visibility: hidden;
	width: 30px;
	height: 30px;
	top: 0;
	left: 0;
}

.ce-contact-form .wpcf7-checkbox input[type='checkbox'] + span {
	display: block;
	padding-left: 42px;
	min-height: 30px;
	line-height: 30px;
}

.ce-contact-form .wpcf7-checkbox input[type='checkbox'] + span:before {
	display: block;
	position: absolute;
	content: '';
	border-radius: 0;
	height: 30px;
	width: 30px;
	top: 0;
	left: 0;
	border: 1px solid #848484;
	box-sizing: border-box;
}

.ce-contact-form .wpcf7-checkbox input[type='checkbox'] + span:after {
	display: block;
	position: absolute;
	content: '✓';
	height: 30px;
	width: 30px;
	top: 0;
	left: 0;
	text-align: center;
	line-height: 30px;
	font-size: 16px;
	color: #0b0b0b;
	opacity: 0;
}

.ce-contact-form .wpcf7-checkbox input[type='checkbox']:checked + span:before {
	border-color: #0b0b0b;
}

.ce-contact-form .wpcf7-checkbox input[type='checkbox']:checked + span:after {
	opacity: 1;
}

.ce-contact-form .wpcf7-list-item {
	display: block;
	margin: 0 0 10px;
}

.ce-contact-form__checkbox {
	padding-top: 8px;
}

.ce-contact-form__success {
	color: #0b0b0b;
	margin-bottom: 16px;
	font-family: 'ES-Klarheit-Grotesk-Trial', sans-serif;
}


