/* Shared responsive fixes for the Wall Narratives PHP clone. */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	min-height: 100%;
	max-width: 100%;
	overflow-x: hidden;
}

body {
	min-height: 100svh;
}

html body {
	min-height: 100svh;
	display: flex;
	flex-direction: column;
}

#wrapper.site {
	min-height: 100svh;
	display: flex !important;
	flex-direction: column !important;
	flex: 1 0 auto;
	width: 100%;
}

#inner-wrap {
	flex: 1 1 auto !important;
	display: flex;
	flex-direction: column;
	width: 100%;
}

#colophon {
	flex-shrink: 0 !important;
	width: 100%;
	margin-top: auto !important;
}

/* Keep footer visible and pinned to bottom on all pages/devices. */
body.no-footer #colophon,
body.footer-on-bottom #colophon {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	margin-top: auto !important;
}

img,
video,
iframe {
	max-width: 100%;
}

img {
	height: auto;
}

.site-container,
.content-container,
.entry-content-wrap,
.elementor,
.elementor .e-con,
.elementor .e-con-inner,
.elementor-widget-container {
	max-width: 100%;
}

.site-container {
	padding-left: clamp(14px, 4vw, 32px);
	padding-right: clamp(14px, 4vw, 32px);
}

.elementor .e-con-inner {
	width: 100%;
}

#mobile-header {
	display: none;
}

.site-branding a.brand,
.site-branding a.brand svg {
	display: block;
	max-width: 100%;
}

.site-branding a.brand svg {
	height: auto;
}

.mobile-toggle-open-container .menu-toggle-open {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

#mobile-drawer {
	display: block !important;
	position: fixed;
	inset: 0;
	z-index: 99999;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease, visibility 180ms ease;
}

#mobile-drawer .drawer-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

#mobile-drawer .drawer-inner {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(84vw, 340px);
	background: #1a1b1a;
	color: #fff;
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform 220ms ease;
	box-shadow: -12px 0 30px rgba(0, 0, 0, 0.18);
}

.showing-popup-drawer-from-right #mobile-drawer {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.showing-popup-drawer-from-right #mobile-drawer .drawer-inner {
	transform: translateX(0);
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
}

.showing-popup-drawer-from-right #mobile-drawer .drawer-content,
.showing-popup-drawer-from-right #mobile-drawer .mobile-navigation {
	visibility: visible !important;
	opacity: 1 !important;
}

#mobile-drawer .drawer-header {
	display: flex;
	justify-content: flex-end;
	padding: 12px 18px;
}

#mobile-drawer .drawer-toggle {
	color: #fff;
	background: transparent;
	border: 0;
	min-width: 44px;
	min-height: 44px;
}

#mobile-drawer .mobile-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0 24px 24px;
}

#mobile-drawer .mobile-navigation a {
	display: block;
	color: #f7f7f7;
	text-decoration: none;
	font-size: 18px;
	line-height: 1.2;
	padding: 16px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

#mobile-drawer .mobile-navigation a:hover,
#mobile-drawer .mobile-navigation .current-menu-item > a {
	color: #bdbdbd;
}

.entry-content img,
.entry-content figure,
.entry-content iframe,
.entry-content table {
	max-width: 100%;
}

.entry-content table {
	display: block;
	overflow-x: auto;
}

.wall-projects-grid {
	width: 100%;
}

/* Projects page background: force pure white (remove Elementor cream tint) */
body.elementor-page-176,
body.elementor-page-176 #inner-wrap,
body.elementor-page-176 #primary,
body.elementor-page-176 .content-area,
body.elementor-page-176 .entry-content-wrap,
body.elementor-page-176 .elementor-176,
body.elementor-page-176 .elementor-176 .elementor-element-52b8b9c,
body.elementor-page-176 .elementor-176 .elementor-element-52b8b9c > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background: #ffffff !important;
	background-color: #ffffff !important;
}

/* About + Contact page backgrounds: keep default white */
body.elementor-page-73,
body.elementor-page-73 #wrapper,
body.elementor-page-73 #inner-wrap,
body.elementor-page-73 #primary,
body.elementor-page-73 .content-area,
body.elementor-page-73 .entry-content-wrap,
body.elementor-page-73 .elementor-73,
body.elementor-page-73 .elementor-73 .elementor-element-5926606,
body.elementor-page-73 .elementor-73 .elementor-element-5926606 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.elementor-page-73 .elementor-73 .elementor-element-5dc9fc4,
body.elementor-page-73 .elementor-73 .elementor-element-5dc9fc4 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.elementor-page-217,
body.elementor-page-217 #wrapper,
body.elementor-page-217 #inner-wrap,
body.elementor-page-217 #primary,
body.elementor-page-217 .content-area,
body.elementor-page-217 .entry-content-wrap,
body.elementor-page-217 .elementor-217,
body.elementor-page-217 .elementor-217 .elementor-element-a321e08,
body.elementor-page-217 .elementor-217 .elementor-element-a321e08 > .elementor-motion-effects-container > .elementor-motion-effects-layer,
body.elementor-page-217 .elementor-217 .elementor-element-0456689,
body.elementor-page-217 .elementor-217 .elementor-element-0456689 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background: #ffffff !important;
	background-color: #ffffff !important;
}

.wall-project-detail-card {
	min-width: 0;
}

.wall-project-detail-card-title {
	overflow-wrap: anywhere;
}

.wall-project-slider {
	width: 100%;
}

.wall-project-slider .project-slide {
	max-width: none;
}

/* Home hero carousel: fade effect + prev/next (wall-home-carousel.js) */
body.home .wall-home-carousel-fade {
	position: relative;
}

body.home .wall-home-carousel-fade .swiper-wrapper {
	transform: none !important;
	display: block !important;
}

body.home .wall-home-carousel-fade .swiper-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 650ms ease;
	pointer-events: none;
	z-index: 0;
}

body.home .wall-home-carousel-fade .swiper-slide.swiper-slide-active {
	opacity: 1;
	pointer-events: auto;
	z-index: 1;
}

body.home .wall-home-carousel .elementor-swiper-button {
	color: hsla(0, 0%, 93%, 0.9);
	cursor: pointer;
	display: none !important;
	font-size: 25px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
}

body.home .wall-home-carousel .elementor-swiper-button svg {
	fill: currentColor;
	height: 1em;
	width: 1em;
}

body.home .wall-home-carousel .elementor-swiper-button-prev {
	left: 12px;
}

body.home .wall-home-carousel .elementor-swiper-button-next {
	right: 12px;
}

body.home .elementor-image-carousel-wrapper.wall-home-carousel-fade,
body.home .wall-home-carousel-fade .swiper-wrapper {
	height: calc(100svh - 108px);
	min-height: 560px;
	max-height: none;
	width: 100% !important;
	max-width: 100% !important;
	background: transparent;
}

@media (min-width: 1025px) {
	body.home .elementor-image-carousel-wrapper.wall-home-carousel-fade {
		margin-top: 24px !important;
	}
}

body.home .content-area,
body.home .entry-content-wrap {
	margin: 0 !important;
	padding: 0 !important;
}

body.home .site-container,
body.home .content-container.site-container {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

body.home .elementor,
body.home .elementor .e-con,
body.home .elementor .e-con-inner,
body.home .elementor-widget-image-carousel,
body.home .elementor-widget-container,
body.home .elementor-image-carousel-wrapper,
body.home .swiper,
body.home .swiper-wrapper,
body.home .swiper-slide,
body.home .swiper-slide-inner,
body.home .wall-home-carousel-fade .swiper-slide,
body.home .wall-home-carousel-fade .swiper-slide-image {
	width: 100% !important;
	height: calc(100svh - 108px) !important;
	object-fit: cover;
	object-position: center center;
	background: transparent;
}

body.home .wall-home-carousel-fade .swiper-slide-inner {
	background: transparent;
}

@media (min-width: 1025px) {
	/* Desktop home: one page scrollbar, full image visible via scroll */
	html:has(body.home) {
		overflow-x: hidden !important;
		overflow-y: auto !important;
	}

	body.home {
		height: auto !important;
		min-height: 100svh !important;
		overflow-x: hidden !important;
		overflow-y: visible !important;
	}

	body.home #wrapper.site,
	body.home #inner-wrap,
	body.home #primary,
	body.home .content-area,
	body.home .content-container,
	body.home .site-main,
	body.home .content-wrap,
	body.home .entry,
	body.home .entry-content-wrap,
	body.home .entry-content,
	body.home .elementor,
	body.home .elementor .e-con,
	body.home .elementor .e-con-inner,
	body.home .elementor-widget-image-carousel,
	body.home .elementor-widget-container {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}

	/* Desktop: allow page scroll to view full image bottom */
	body.home .elementor-image-carousel-wrapper.wall-home-carousel-fade,
	body.home .wall-home-carousel-fade .swiper,
	body.home .wall-home-carousel-fade .swiper-wrapper,
	body.home .wall-home-carousel-fade .elementor-image-carousel {
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}

	body.home .wall-home-carousel-fade .swiper-slide {
		position: relative !important;
		inset: auto !important;
		display: none !important;
		height: auto !important;
		opacity: 1 !important;
		pointer-events: none !important;
		transition: none !important;
	}

	body.home .wall-home-carousel-fade .swiper-slide.swiper-slide-active {
		display: block !important;
		pointer-events: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}

	body.home .wall-home-carousel-fade .swiper-slide-inner,
	body.home .wall-home-carousel-fade .swiper-slide-image {
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}

	body.home .wall-home-carousel-fade .swiper-slide-image {
		width: 100% !important;
		object-fit: contain !important;
		object-position: center top !important;
		min-height: calc(100svh - 132px) !important;
	}
}

/* Contact page desktop alignment (match reference proportions) */
@media (min-width: 1025px) {
	.elementor-217 .elementor-element-a321e08 > .e-con-inner {
		max-width: 860px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) 280px;
		column-gap: 40px;
		align-items: start;
	}

	.elementor-217 .elementor-element-8756890 .elementor-custom-embed iframe {
		height: 280px !important;
		min-height: 280px !important;
	}
}

@media (max-width: 1024px) {
	body.home .content-area,
	body.home .entry-content-wrap {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.home .site-container,
	body.home .content-container.site-container {
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	body.home .elementor-image-carousel-wrapper.wall-home-carousel-fade,
	body.home .wall-home-carousel-fade .swiper-wrapper,
	body.home .wall-home-carousel-fade .swiper-slide,
	body.home .wall-home-carousel-fade .swiper-slide-inner {
		height: calc(100svh - 72px) !important;
		min-height: calc(100svh - 72px) !important;
		max-height: none !important;
		overflow: hidden !important;
	}

	body.home .wall-home-carousel-fade .swiper-slide-image {
		width: 100% !important;
		height: 100% !important;
		min-height: 100% !important;
		max-height: none !important;
		object-fit: cover !important;
		object-position: center center !important;
		background: transparent !important;
	}

	body.home .wall-home-carousel .elementor-swiper-button {
		display: none !important;
	}

	/* Ensure footer is visible on home in mobile/tablet */
	body.home.no-footer #colophon,
	body.home #colophon {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	#main-header {
		display: none !important;
	}

	#mobile-header {
		display: block !important;
	}

	.site-main-header-inner-wrap {
		min-height: 72px !important;
	}

	.site-branding a.brand img,
	.site-branding a.brand svg {
		width: min(42vw, 160px) !important;
		max-width: 160px !important;
	}

	.content-area {
		margin-top: 1.5rem !important;
		margin-bottom: 1.5rem !important;
	}

	.entry-content-wrap {
		padding: 1.25rem !important;
	}

	.elementor .e-con.e-parent,
	.elementor .e-con.e-child,
	.elementor .e-con-inner {
		max-width: 100% !important;
	}

	.elementor .e-con-inner {
		padding-left: clamp(14px, 4vw, 24px) !important;
		padding-right: clamp(14px, 4vw, 24px) !important;
	}

	.elementor-widget-heading .elementor-heading-title {
		line-height: 1.18 !important;
	}

	.elementor-widget-text-editor {
		font-size: 17px !important;
		line-height: 1.7 !important;
	}

	.site-bottom-footer-inner-wrap {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: 10px !important;
		grid-column-gap: 0 !important;
		text-align: center;
	}

	.site-bottom-footer-inner-wrap .widget {
		margin-bottom: 0 !important;
	}

	#colophon .footer-html {
		margin: 0 !important;
	}
}

@media (max-width: 767px) {
	/* Align mobile logo with standard content inset on every page */
	html body #mobile-header .site-main-header-wrap .site-header-row-container-inner > .site-container {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	html body #mobile-header .mobile-site-branding.site-branding {
		padding-left: 35px !important;
	}

	/* Global mobile footer centering (applies equally to projects/contact/about) */
	html body #colophon .site-bottom-footer-inner-wrap.site-footer-row {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		grid-template-columns: 1fr !important;
		gap: 7px !important;
		padding: 10px 0 12px !important;
	}

	html body #colophon .site-footer-bottom-section-1,
	html body #colophon .site-footer-bottom-section-2,
	html body #colophon .site-footer-section,
	html body #colophon .footer-widget-area,
	html body #colophon .footer-widget-area-inner,
	html body #colophon .site-info,
	html body #colophon .site-info-inner,
	html body #colophon .footer-social-wrap,
	html body #colophon .footer-social-inner-wrap {
		width: 100% !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	html body #colophon .footer-html,
	html body #colophon .footer-html-inner,
	html body #colophon .footer-html p,
	html body #colophon .footer-html a {
		width: 100% !important;
		margin: 0 !important;
		text-align: center !important;
	}

	body {
		font-size: 16px !important;
		line-height: 1.6;
	}

	h1,
	.elementor-widget-heading h1.elementor-heading-title {
		font-size: clamp(28px, 9vw, 40px) !important;
	}

	h2,
	.elementor-widget-heading h2.elementor-heading-title {
		font-size: clamp(22px, 7vw, 30px) !important;
	}

	h3,
	.elementor-widget-heading h3.elementor-heading-title {
		font-size: clamp(19px, 6vw, 24px) !important;
	}

	.site-container {
		padding-left: 14px !important;
		padding-right: 14px !important;
	}

	.entry-content-wrap {
		padding: 0.875rem !important;
	}

	.elementor .e-con-inner {
		padding-left: 14px !important;
		padding-right: 14px !important;
	}

	body.home .elementor-hidden-mobile {
		display: none !important;
	}

	body.home .elementor-hidden-desktop.elementor-hidden-tablet {
		display: flex !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		justify-content: center !important;
		align-items: stretch !important;
		overflow: hidden !important;
		flex: 1 1 auto !important;
		min-height: calc(100svh - 72px) !important;
	}

	body.home .elementor-hidden-desktop.elementor-hidden-tablet > .e-con-inner {
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 !important;
		flex: 1 1 auto !important;
		display: flex !important;
		flex-direction: column !important;
		min-height: calc(100svh - 72px) !important;
	}

	body.home .elementor-hidden-desktop.elementor-hidden-tablet .elementor-widget-image-carousel,
	body.home .elementor-hidden-desktop.elementor-hidden-tablet .elementor-widget-container,
	body.home .elementor-hidden-desktop.elementor-hidden-tablet .elementor-image-carousel-wrapper.wall-home-carousel-fade {
		flex: 1 1 auto !important;
		height: 100% !important;
		min-height: calc(100svh - 72px) !important;
	}

	body.home .elementor-image-carousel-wrapper:not(.wall-home-carousel-fade),
	body.home .elementor-image-carousel-wrapper:not(.wall-home-carousel-fade) .swiper,
	body.home .elementor-image-carousel-wrapper:not(.wall-home-carousel-fade) .swiper-wrapper,
	body.home .elementor-image-carousel-wrapper:not(.wall-home-carousel-fade) .swiper-slide,
	body.home .elementor-image-carousel-wrapper:not(.wall-home-carousel-fade) .swiper-slide-inner {
		width: 100% !important;
		height: clamp(420px, 62svh, 500px) !important;
		min-height: 0 !important;
	}

	body.home .elementor-image-carousel-wrapper:not(.wall-home-carousel-fade) .swiper-slide-image {
		width: 100% !important;
		height: clamp(420px, 62svh, 500px) !important;
		min-height: 0 !important;
		object-fit: cover;
		object-position: center top;
	}

	.elementor-176 .e-con-inner {
		display: flex !important;
		flex-direction: column !important;
		gap: 14px !important;
	}

	.elementor-176 .wall-projects-grid-page {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 14px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	html body .elementor-176 .wall-projects-grid-page.e-con-inner {
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 !important;
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.elementor-176 .wall-project-tile {
		display: block !important;
		width: 100% !important;
		aspect-ratio: 4 / 3;
		min-height: 230px;
		overflow: hidden;
	}

	.elementor-176 .wall-project-tile-media,
	.elementor-176 .wall-project-tile-media img {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
	}

	.elementor-176 .wall-project-tile-media img {
		object-fit: cover;
		object-position: center;
	}

	.elementor-176 .wall-project-tile-overlay {
		position: absolute;
		inset: 0;
		display: flex !important;
		align-items: center;
		justify-content: center;
		opacity: 1 !important;
		background: linear-gradient(180deg, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.52)) !important;
	}

	.elementor-176 .wall-project-tile-title {
		color: #fff !important;
		font-size: 22px;
		font-weight: 300;
		text-align: center;
		text-shadow: 0 1px 5px rgba(0, 0, 0, 0.85);
	}

	.elementor-176 .e-con-inner > .e-con.e-child,
	.elementor-176 .e-con-inner > .wall-project-extra-tile {
		align-self: stretch !important;
		flex: 0 0 auto !important;
		width: 100% !important;
		max-width: 100% !important;
		min-height: 260px !important;
	}

	.elementor-176 .e-con-inner > .e-con.e-child > .e-con.e-child,
	.elementor-176 .e-con-inner > .e-con.e-child > .e-con-full,
	.wall-project-extra-tile-overlay {
		opacity: 1 !important;
		pointer-events: auto !important;
		background: linear-gradient(180deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.48)) !important;
	}

	.elementor-176 .e-con-inner > .e-con.e-child > .e-con.e-child,
	.elementor-176 .e-con-inner > .e-con.e-child > .e-con-full {
		width: 100% !important;
		min-height: 260px !important;
		justify-content: center !important;
	}

	.elementor-176 .elementor-heading-title {
		font-size: 22px !important;
	}

	.elementor-176 .elementor-heading-title a,
	.wall-project-extra-tile .elementor-heading-title a {
		color: #fff !important;
		text-shadow: 0 1px 5px rgba(0, 0, 0, 0.85);
	}

	.wall-projects-wrap {
		padding: 20px 14px 32px !important;
	}

	.wall-projects-grid {
		grid-template-columns: 1fr !important;
		gap: 14px !important;
	}

	.wall-project-detail-card-body {
		padding: 16px !important;
	}

	.wall-project-detail-card-title {
		font-size: 21px !important;
	}

	.wall-project-detail-card-desc,
	.wall-project-detail-card-excerpt {
		font-size: 15px !important;
	}

	.wall-projects-pager {
		gap: 8px !important;
	}

	.wall-projects-pager a,
	.wall-projects-pager span {
		min-width: 40px;
		text-align: center;
	}

	.elementor-217 .e-con-inner {
		display: flex !important;
		flex-direction: column !important;
		gap: 20px !important;
	}

	.elementor-element-8756890 .elementor-custom-embed iframe {
		height: 320px !important;
		min-height: 280px !important;
	}

	.wall-project-carousel-wrap {
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-bottom: 16px !important;
	}

	.wall-project-slider {
		aspect-ratio: 4 / 3 !important;
		max-height: none !important;
	}

	.wall-project-caption {
		font-size: clamp(13px, 3.4vw, 16px) !important;
		line-height: 1.25 !important;
		letter-spacing: -0.01em;
		max-width: 100%;
		padding-left: 8px;
		padding-right: 8px;
		text-wrap: balance;
	}

	.elementor-widget-heading h2.elementor-heading-title.wall-project-caption,
	h2.wall-project-caption {
		font-size: clamp(13px, 3.4vw, 16px) !important;
		line-height: 1.25 !important;
		font-weight: 300 !important;
	}

	.wall-project-body {
		font-size: 16px;
		line-height: 1.7;
	}

	.wall-project-body img {
		width: 100%;
		height: auto;
	}

	#colophon .footer-social-wrap .footer-social-inner-wrap {
		justify-content: center;
	}

	#colophon {
		background: #1a1b1a !important;
	}

	#colophon .site-footer-row-container-inner,
	#colophon .site-bottom-footer-wrap,
	#colophon .site-footer-wrap {
		background: #1a1b1a !important;
		width: 100% !important;
	}

	#colophon .site-container {
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 14px !important;
	}

	#colophon .site-bottom-footer-inner-wrap {
		min-height: auto !important;
		padding: 10px 0 12px !important;
		gap: 7px !important;
	}

	#colophon .site-footer-section,
	#colophon .footer-widget-area,
	#colophon .footer-widget-area-inner {
		width: 100%;
		display: flex;
		justify-content: center;
		text-align: center;
	}

	#colophon .footer-social-wrap .footer-social-inner-wrap {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 12px !important;
		width: 100%;
	}

	#colophon .footer-social-wrap .social-button {
		width: 24px !important;
		height: 24px !important;
		padding: 3px !important;
		margin: 0 !important;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}

	#colophon .footer-social-wrap .social-button svg,
	#colophon .footer-social-wrap .kadence-svg-icon {
		width: 15px !important;
		height: 15px !important;
	}

	#colophon .footer-html,
	#colophon .footer-html p,
	#colophon .footer-html a {
		font-size: 11px !important;
		line-height: 1.35 !important;
		text-align: center !important;
	}

	#colophon .footer-html p {
		margin: 0 !important;
	}

	/* Contact page mobile footer: mirror Projects page footer alignment */
	body.elementor-page-217 #colophon,
	body.elementor-page-217 #colophon .site-footer-row-container-inner,
	body.elementor-page-217 #colophon .site-bottom-footer-wrap,
	body.elementor-page-217 #colophon .site-footer-wrap {
		width: 100% !important;
		max-width: 100% !important;
		background: #1a1b1a !important;
	}

	body.elementor-page-217 #colophon .site-container {
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 14px !important;
	}

	body.elementor-page-217 #colophon .site-bottom-footer-inner-wrap {
		min-height: auto !important;
		padding: 10px 0 12px !important;
		gap: 7px !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
	}

	body.elementor-page-217 #colophon .site-footer-row,
	body.elementor-page-217 #colophon .site-bottom-footer-inner-wrap.site-footer-row {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		grid-template-columns: 1fr !important;
	}

	body.elementor-page-217 #colophon .site-footer-bottom-section-1,
	body.elementor-page-217 #colophon .site-footer-bottom-section-2 {
		width: 100% !important;
		max-width: 100% !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		flex: 0 0 auto !important;
		margin: 0 !important;
		padding: 0 !important;
		text-align: center !important;
	}

	body.elementor-page-217 #colophon .site-footer-section,
	body.elementor-page-217 #colophon .footer-widget-area,
	body.elementor-page-217 #colophon .footer-widget-area-inner {
		width: 100% !important;
		display: flex !important;
		justify-content: center !important;
		text-align: center !important;
	}

	body.elementor-page-217 #colophon .footer-social-wrap .footer-social-inner-wrap {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 100% !important;
		gap: 12px !important;
	}

	body.elementor-page-217 #colophon .footer-html,
	body.elementor-page-217 #colophon .footer-html p,
	body.elementor-page-217 #colophon .footer-html a {
		margin: 0 !important;
		text-align: center !important;
	}

	body.elementor-page-217 #colophon .footer-html-inner,
	body.elementor-page-217 #colophon .footer-html-inner p {
		width: 100% !important;
		margin: 0 !important;
		text-align: center !important;
	}

	body.elementor-page-217 #colophon .footer-social-wrap,
	body.elementor-page-217 #colophon .site-info,
	body.elementor-page-217 #colophon .site-info-inner {
		width: 100% !important;
		display: flex !important;
		justify-content: center !important;
		align-items: center !important;
		text-align: center !important;
	}

	body.elementor-page-217 #colophon .footer-widget-area.content-align-left,
	body.elementor-page-217 #colophon .site-info.content-align-right,
	body.elementor-page-217 #colophon .site-info.content-align-left {
		justify-content: center !important;
		text-align: center !important;
	}

	body.elementor-page-217 #colophon .footer-social-wrap .footer-social-inner-wrap.element-social-inner-wrap {
		justify-content: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	body.elementor-page-217 #colophon .footer-social-wrap .social-button {
		margin: 0 !important;
	}

	/* About page mobile footer: center like project detail page */
	body.elementor-page-73 #colophon .site-bottom-footer-inner-wrap,
	body.elementor-page-73 #colophon .site-footer-row {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		grid-template-columns: 1fr !important;
		gap: 7px !important;
		padding: 10px 0 12px !important;
	}

	body.elementor-page-73 #colophon .site-footer-bottom-section-1,
	body.elementor-page-73 #colophon .site-footer-bottom-section-2,
	body.elementor-page-73 #colophon .site-footer-section,
	body.elementor-page-73 #colophon .footer-widget-area,
	body.elementor-page-73 #colophon .footer-widget-area-inner,
	body.elementor-page-73 #colophon .footer-social-wrap,
	body.elementor-page-73 #colophon .site-info,
	body.elementor-page-73 #colophon .site-info-inner {
		width: 100% !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.elementor-page-73 #colophon .footer-html,
	body.elementor-page-73 #colophon .footer-html p,
	body.elementor-page-73 #colophon .footer-html a {
		margin: 0 !important;
		text-align: center !important;
	}

	/* Final mobile footer normalizer: keep every page centered and compact */
	html body #colophon .site-bottom-footer-inner-wrap,
	html body #colophon .site-bottom-footer-inner-wrap.site-footer-row,
	html body #colophon .site-footer-row {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		grid-template-columns: 1fr !important;
		column-gap: 0 !important;
		row-gap: 8px !important;
		gap: 8px !important;
		padding: 10px 0 12px !important;
		min-height: auto !important;
	}

	html body #colophon .site-bottom-footer-inner-wrap .widget,
	html body #colophon .site-footer-section,
	html body #colophon .site-footer-bottom-section-1,
	html body #colophon .site-footer-bottom-section-2,
	html body #colophon .footer-widget-area,
	html body #colophon .footer-widget-area-inner,
	html body #colophon .site-info,
	html body #colophon .site-info-inner,
	html body #colophon .footer-social-wrap,
	html body #colophon .footer-social-inner-wrap,
	html body #colophon .footer-html,
	html body #colophon .footer-html-inner {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		float: none !important;
	}

	html body #colophon .footer-html p,
	html body #colophon .footer-html a {
		margin: 0 !important;
		text-align: center !important;
		line-height: 1.35 !important;
	}
}

@media (max-width: 420px) {
	#mobile-drawer .drawer-inner {
		width: 88vw;
	}

	.site-branding a.brand img,
	.site-branding a.brand svg {
		width: min(46vw, 145px) !important;
	}

}

/* Project detail pages: force pure white (remove Kadence palette8 cream/grey on mobile) */
body.wall-project-detail {
	--global-palette8: #ffffff;
	background: #ffffff !important;
	background-color: #ffffff !important;
}

body.wall-project-detail,
body.wall-project-detail #wrapper,
body.wall-project-detail #inner-wrap,
body.wall-project-detail #primary,
body.wall-project-detail .content-area,
body.wall-project-detail .content-container,
body.wall-project-detail .site-main,
body.wall-project-detail .content-wrap,
body.wall-project-detail article.entry,
body.wall-project-detail .entry.content-bg,
body.wall-project-detail .entry-content-wrap,
body.wall-project-detail .entry-content,
body.wall-project-detail .elementor-element,
body.wall-project-detail .elementor-widget-container {
	background: #ffffff !important;
	background-color: #ffffff !important;
}

body.wall-project-detail .entry.content-bg.single-entry {
	box-shadow: none !important;
	border-radius: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

@media (max-width: 1024px) {
	body.wall-project-detail #primary.content-area,
	body.wall-project-detail .content-area {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	body.wall-project-detail .entry-content-wrap {
		padding: 0 !important;
	}
}

@media (max-width: 767px) {
	body.wall-project-detail .content-container.site-container {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* Home mobile: full-bleed banner, no white gaps, consistent image sizing */
@media (max-width: 1024px) {
	/* Scope scroll lock to home only — do not block scroll on projects/about/contact */
	html:has(body.home) {
		height: 100dvh !important;
		overflow: hidden !important;
		overscroll-behavior-y: none !important;
	}

	body.home {
		--global-palette8: #ffffff;
		background: #ffffff !important;
		background-color: #ffffff !important;
		position: fixed !important;
		inset: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		overflow: hidden !important;
	}

	body.home #wrapper,
	body.home #inner-wrap,
	body.home #primary,
	body.home .content-area,
	body.home .content-container,
	body.home .site-main,
	body.home .content-wrap,
	body.home .entry,
	body.home .entry-content-wrap,
	body.home .entry-content,
	body.home .elementor-26,
	body.home .elementor-hidden-desktop.elementor-hidden-tablet,
	body.home .elementor-hidden-desktop.elementor-hidden-tablet > .e-con-inner {
		background: #ffffff !important;
		background-color: #ffffff !important;
		height: 100% !important;
		min-height: 100% !important;
		overflow: hidden !important;
	}

	body.home #primary.content-area,
	body.home .content-area {
		margin: 0 !important;
		padding: 0 !important;
		flex: 1 1 auto !important;
		display: flex !important;
		flex-direction: column !important;
		min-height: 0 !important;
	}

	body.home .entry-content-wrap {
		padding: 0 !important;
		flex: 1 1 auto !important;
		display: flex !important;
		flex-direction: column !important;
		min-height: 0 !important;
	}

	body.home .entry-content.single-content,
	body.home .elementor-26 {
		flex: 1 1 auto !important;
		display: flex !important;
		flex-direction: column !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.home .elementor-image-carousel-wrapper.wall-home-carousel-fade,
	body.home .wall-home-carousel-fade .swiper,
	body.home .wall-home-carousel-fade .swiper-wrapper,
	body.home .wall-home-carousel-fade .swiper-slide,
	body.home .wall-home-carousel-fade .swiper-slide-inner,
	body.home .wall-home-carousel-fade .swiper-slide-image {
		width: 100% !important;
		height: calc(100svh - 72px) !important;
		min-height: calc(100svh - 72px) !important;
		max-height: none !important;
	}

	body.home .wall-home-carousel-fade .swiper-slide-image {
		display: block !important;
		object-fit: cover !important;
		object-position: center bottom !important;
		background: transparent !important;
	}

	body.home .wall-home-carousel-fade,
	body.home .elementor-image-carousel-wrapper.wall-home-carousel-fade,
	body.home .wall-home-carousel-fade .swiper,
	body.home .wall-home-carousel-fade .swiper-wrapper {
		overflow: hidden !important;
		touch-action: pan-x !important;
	}

	/* Extra specificity for mobile carousel images injected from home.php */
	body.home .wall-home-carousel-fade .swiper-slide-image.wall-mobile-slide-image {
		object-position: center bottom !important;
	}
}
