:root {
	--color-bg: #f5f7f3;
	--color-surface: #ffffff;
	--color-surface-alt: #edf3ef;
	--color-text: #10211d;
	--color-muted: #5c6b66;
	--color-border: rgba(16, 33, 29, 0.12);
	--color-green: #0b6b52;
	--color-green-deep: #064736;
	--color-gold: #d7aa16;
	--color-gold-soft: rgba(215, 170, 22, 0.18);
	--shadow-lg: 0 24px 60px rgba(7, 25, 20, 0.12);
	--shadow-md: 0 18px 40px rgba(7, 25, 20, 0.09);
	--radius-xl: 32px;
	--radius-lg: 24px;
	--radius-md: 18px;
	--radius-sm: 12px;
	--container: 1200px;
	--transition: 180ms ease;
	--space-2xs: clamp(0.45rem, 0.6vw, 0.65rem);
	--space-xs: clamp(0.65rem, 0.85vw, 0.9rem);
	--space-sm: clamp(0.9rem, 1.2vw, 1.2rem);
	--space-md: clamp(1.1rem, 1.7vw, 1.6rem);
	--space-lg: clamp(1.5rem, 2.4vw, 2.25rem);
	--space-xl: clamp(2rem, 3.4vw, 3.25rem);
	--space-2xl: clamp(2.5rem, 4.8vw, 5rem);
}

body.theme-dark {
	--color-bg: #08110e;
	--color-surface: #0f1b17;
	--color-surface-alt: #12231d;
	--color-text: #f2f6f4;
	--color-muted: #b6c2bd;
	--color-border: rgba(255, 255, 255, 0.10);
	--shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.28);
	--shadow-md: 0 18px 40px rgba(0, 0, 0, 0.22);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: 'Roboto', sans-serif;
	background:
		radial-gradient(circle at top left, rgba(215, 170, 22, 0.16), transparent 28%),
		radial-gradient(circle at top right, rgba(11, 107, 82, 0.10), transparent 22%),
		var(--color-bg);
	color: var(--color-text);
	line-height: 1.65;
	overflow-x: hidden;
}

a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	color: var(--color-green);
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea {
	font: inherit;
}

p {
	margin: 0 0 var(--space-sm);
	overflow-wrap: anywhere;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 var(--space-xs);
	line-height: 1.12;
	font-family: 'Roboto', sans-serif;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
}

li,
summary,
a,
.button,
input,
textarea {
	overflow-wrap: anywhere;
}

.site {
	position: relative;
	padding-inline: clamp(0.75rem, 1.6vw, 1.5rem);
}

.container {
	width: min(100% - (2 * var(--space-md)), var(--container));
	margin: 0 auto;
}

.section {
	padding: var(--space-2xl) 0;
}

.section--alt {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0));
}

body.theme-dark .section--alt {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0));
}

.section-heading {
	max-width: 760px;
	margin-bottom: var(--space-lg);
}

.section-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-bottom: 0.9rem;
	padding: 0.45rem 0.85rem;
	border-radius: 999px;
	background: var(--color-gold-soft);
	color: var(--color-green-deep);
	font-size: 0.84rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.section-title {
	font-size: clamp(2rem, 4vw, 3.6rem);
	margin-bottom: clamp(0.5rem, 1.3vw, 0.9rem);
}

.section-description {
	max-width: 60ch;
	color: var(--color-muted);
	font-size: 1.05rem;
	margin: 0;
	padding: 0;
}

.skip-link {
	position: absolute;
	left: -999px;
	top: 1rem;
	z-index: 1000;
	padding: 0.85rem 1rem;
	background: var(--color-surface);
	border-radius: 999px;
}

.skip-link:focus {
	left: 1rem;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.site-header {
	position: static;
	top: auto;
	z-index: 999;
	background: transparent;
	border-bottom: 1px solid var(--color-border);
	margin-left: 0;
	margin-right: 0;
	padding-left: clamp(0.75rem, 1.6vw, 1.5rem);
	padding-right: clamp(0.75rem, 1.6vw, 1.5rem);
}

body.home .site-header,
body.front-page .site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	width: calc(100% + (clamp(0.75rem, 1.6vw, 1.5rem) * 2));
	max-width: none;
	margin-left: calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem));
	margin-right: calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem));
	padding-left: clamp(0.75rem, 1.6vw, 1.5rem);
	padding-right: clamp(0.75rem, 1.6vw, 1.5rem);
}

.header-top {
	border-bottom: 1px solid var(--color-border);
	font-size: 0.82rem;
	background: color-mix(in srgb, var(--color-surface) 72%, transparent);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.header-top__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.3rem clamp(0.5rem, 1.6vw, 1rem);
	flex-wrap: wrap;
}

.header-top__nav ul {
	display: flex;
	gap: 0.9rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.header-top__nav a {
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--color-text);
	transition: color var(--transition);
}

.header-top__nav a:hover {
	color: var(--color-green);
}

.header-top__actions {
	display: flex;
	gap: 0.3rem;
	align-items: center;
}

.header-top__link {
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--color-text);
	text-decoration: none;
	transition: color var(--transition);
	padding: 0.25rem 0.45rem;
}

.header-top__link--icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.8rem;
	height: 1.8rem;
	padding: 0;
	border-radius: 999px;
	border: 1px solid var(--color-border);
	background: color-mix(in srgb, var(--color-surface) 88%, transparent);
	color: var(--color-muted);
}

.header-top__link--icon svg {
	width: 0.88rem;
	height: 0.88rem;
	fill: currentColor;
}

.header-top__link:hover {
	color: var(--color-green);
}

.header-top__nav a,
.header-top__link:not(.header-top__link--icon),
.site-title a,
.primary-navigation a {
	text-shadow: 0 1px 1px rgba(255, 255, 255, 0.45);
}

.header-main {
	background: color-mix(in srgb, var(--color-surface) 78%, transparent);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.header-main__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	padding: 0.75rem clamp(0.5rem, 1.6vw, 1rem);
}

.site-branding {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	flex-shrink: 0;
}

.site-logo {
	display: flex;
	align-items: center;
}

.custom-logo-link img {
	max-height: 50px;
	width: auto;
}

.branding-text {
	display: block;
}

.site-title {
	font-size: 1.8rem;
	font-weight: 900;
	font-family: 'Roboto', sans-serif;
	margin: 0;
	color: var(--color-green);
}

.site-title a {
	color: var(--color-green);
}

.site-description {
	display: none;
}

.primary-navigation {
	flex: 1;
	display: flex;
	justify-content: flex-end;
	margin-left: auto;
}

.primary-navigation > ul {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}

.primary-navigation li {
	position: relative;
}

.primary-navigation .sub-menu,
.primary-navigation .children {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 12rem;
	display: flex;
	flex-direction: column;
	gap: 0;
	list-style: none;
	margin: 0.4rem 0 0;
	padding: 0.5rem 0;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-md);
	z-index: 1200;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(6px);
	transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.primary-navigation li.submenu-open > .sub-menu,
.primary-navigation li.submenu-open > .children,
.primary-navigation li:focus-within > .sub-menu,
.primary-navigation li:focus-within > .children {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.primary-navigation .sub-menu a,
.primary-navigation .children a {
	width: 100%;
	padding: 0.55rem 1rem;
}

.primary-navigation a {
	display: inline-flex;
	align-items: center;
	padding: 0.5rem 1rem;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--color-text);
	border-radius: 0;
	transition: color var(--transition);
}

.primary-navigation .menu-item-has-children > a::after,
.primary-navigation .page_item_has_children > a::after {
	content: '';
	width: 0.45rem;
	height: 0.45rem;
	margin-left: 0.4rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform var(--transition), color var(--transition);
}

.primary-navigation .menu-item-has-children.submenu-open > a::after,
.primary-navigation .page_item_has_children.submenu-open > a::after {
	transform: rotate(-135deg);
}

.primary-navigation a:hover,
.primary-navigation .current-menu-item > a,
.primary-navigation .current_page_item > a {
	color: var(--color-green);
	background: transparent;
}

.header-main__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-shrink: 0;
}

.theme-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.2rem;
	padding: 0;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	background: color-mix(in srgb, var(--color-surface) 86%, transparent);
	color: var(--color-text);
	cursor: pointer;
	transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}

.theme-toggle__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.1rem;
	height: 1.1rem;
}

.theme-toggle__icon svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
}

.theme-toggle__icon--sun {
	display: none;
}

body.theme-dark .theme-toggle__icon--moon {
	display: none;
}

body.theme-dark .theme-toggle__icon--sun {
	display: inline-flex;
}

.theme-toggle:hover,
.theme-toggle:focus-visible {
	background: color-mix(in srgb, var(--color-green) 16%, var(--color-surface));
	border-color: color-mix(in srgb, var(--color-green) 35%, var(--color-border));
	color: var(--color-green-deep);
	outline: none;
	transform: translateY(-1px);
}

body.theme-dark .theme-toggle {
	background: color-mix(in srgb, var(--color-surface) 92%, #000000);
	color: #f2f6f4;
}

body.theme-dark .theme-toggle:hover,
body.theme-dark .theme-toggle:focus-visible {
	background: color-mix(in srgb, var(--color-green) 28%, var(--color-surface));
	color: #ffffff;
}

.button--sm {
	padding: 0.65rem 1.1rem;
	font-size: 0.9rem;
}

.icon-button--small {
	min-width: auto;
	min-height: auto;
	padding: 0.5rem;
	border: none;
	background: transparent;
	font-size: 1.2rem;
}

.icon-button--small:hover {
	transform: none;
	border-color: transparent;
}

.hero {
	position: relative;
	overflow: hidden;
	padding: clamp(4rem, 9vw, 7rem) 0 4rem;
}

body.home .hero,
body.front-page .hero {
	padding-top: clamp(9rem, 16vw, 12rem);
}

.hero--has-bg {
	background-image: var(--hero-bg-image);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	/* Make hero fill the viewport height so the background crops by width */
	min-height: 100vh;
	height: 100vh;
	display: flex;
	align-items: center;
}

.hero--slider.hero--has-bg {
	background-image: none !important;
}

.hero--slider {
	width: 100%;
	max-width: 100%;
	margin-inline: 0;
	aspect-ratio: 16 / 9;
	min-height: 0;
	height: auto;
	display: block;
	padding: 0 !important;
	border-radius: 0;
}

body.home .hero.hero--slider,
body.front-page .hero.hero--slider {
	padding-top: 0 !important;
	width: calc(100% + (clamp(0.75rem, 1.6vw, 1.5rem) * 2));
	max-width: none;
	margin-left: calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem)) !important;
	margin-right: calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem)) !important;
}

.hero__slides {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 9;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
	border-radius: 0;
}

.hero__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	opacity: 0;
	transition: opacity 900ms ease;
}

.hero__slide.is-active {
	opacity: 1;
}

.hero__slide-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-sizing: border-box;
}

.hero,
.hero--slider,
.hero__slides,
.hero__slide,
.hero__slide-image {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
}

.hero__slide-content {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	padding: clamp(1rem, 2.2vw, 2.4rem);
	pointer-events: none;
}

.hero__slide-copy {
	max-width: min(90%, 44rem);
	padding: clamp(0.75rem, 1.6vw, 1.3rem);
	background: transparent;
	border: none;
	border-radius: 0;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.hero__slide-title {
	margin: var(--hero-slide-title-margin-top, 0) var(--hero-slide-title-margin-right, 0) var(--hero-slide-title-margin-bottom, 0) var(--hero-slide-title-margin-left, 0);
	font-size: clamp(1.35rem, 3.1vw, var(--hero-slide-title-size, 48px));
	line-height: 1.1;
	color: var(--hero-slide-title-color, #ffffff);
	text-wrap: balance;
}

.hero__slide-subtitle {
	margin: var(--hero-slide-subtitle-margin-top, 0) var(--hero-slide-subtitle-margin-right, 0) var(--hero-slide-subtitle-margin-bottom, 0) var(--hero-slide-subtitle-margin-left, 0);
	font-size: clamp(0.95rem, 2.2vw, var(--hero-slide-subtitle-size, 20px));
	line-height: 1.3;
	color: var(--hero-slide-subtitle-color, #e8eae8);
	text-wrap: balance;
}

.hero__slide-description {
	margin: var(--hero-slide-description-margin-top, 12px) var(--hero-slide-description-margin-right, 0) var(--hero-slide-description-margin-bottom, 0) var(--hero-slide-description-margin-left, 0);
	font-size: clamp(0.9rem, 1.35vw, var(--hero-slide-description-size, 20px));
	line-height: 1.5;
	color: var(--hero-slide-description-color, #f3f5f4);
}

.hero-text-shadow-on .hero__slide-title,
.hero-text-shadow-on .hero__slide-subtitle,
.hero-text-shadow-on .hero__slide-description {
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.55);
}

.hero-text-shadow-off .hero__slide-title,
.hero-text-shadow-off .hero__slide-subtitle,
.hero-text-shadow-off .hero__slide-description {
	text-shadow: none;
}

.hero-text-pos-top-left .hero__slide-content,
.hero-text-pos-center-left .hero__slide-content,
.hero-text-pos-bottom-left .hero__slide-content {
	justify-content: flex-start !important;
	text-align: left !important;
}

.hero-text-pos-top-center .hero__slide-content,
.hero-text-pos-center .hero__slide-content,
.hero-text-pos-bottom-center .hero__slide-content {
	justify-content: center !important;
	text-align: center !important;
}

.hero-text-pos-top-right .hero__slide-content,
.hero-text-pos-center-right .hero__slide-content,
.hero-text-pos-bottom-right .hero__slide-content {
	justify-content: flex-end !important;
	text-align: right !important;
}

.hero-text-pos-top-left .hero__slide-content,
.hero-text-pos-top-center .hero__slide-content,
.hero-text-pos-top-right .hero__slide-content {
	align-items: flex-start !important;
}

.hero-text-pos-center-left .hero__slide-content,
.hero-text-pos-center .hero__slide-content,
.hero-text-pos-center-right .hero__slide-content {
	align-items: center !important;
}

.hero-text-pos-bottom-left .hero__slide-content,
.hero-text-pos-bottom-center .hero__slide-content,
.hero-text-pos-bottom-right .hero__slide-content {
	align-items: flex-end !important;
}

.hero__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: clamp(2.2rem, 3.6vw, 3rem);
	height: clamp(2.2rem, 3.6vw, 3rem);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.65);
	background: rgba(6, 21, 17, 0.36);
	color: #ffffff;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	cursor: pointer;
	transition: background var(--transition), transform var(--transition), border-color var(--transition);
}

.hero__nav:hover,
.hero__nav:focus-visible {
	background: rgba(6, 21, 17, 0.58);
	border-color: rgba(255, 255, 255, 0.95);
	transform: translateY(-50%) scale(1.04);
	outline: none;
}

.hero__nav--prev {
	left: clamp(0.5rem, 1.2vw, 1rem);
}

.hero__nav--next {
	right: clamp(0.5rem, 1.2vw, 1rem);
}

.hero__nav svg {
	width: 58%;
	height: 58%;
	display: block;
}

.hero__dots {
	position: absolute;
	left: 50%;
	bottom: clamp(0.08rem, 0.45vw, 0.35rem);
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	gap: 0.56rem;
	z-index: 2;
}

.hero__dot {
	width: 0.64rem;
	height: 0.64rem;
	border-radius: 999px;
	border: 1px solid #000000;
	background: #ffffff;
	opacity: 0.8;
}

.hero__dot.is-active {
	background: #ff3a2f;
	opacity: 1;
}

@media (max-width: 1024px) {
	.hero.hero--slider {
		width: 100%;
		max-width: 100%;
	}

	.hero__slide {
		margin: clamp(0.1rem, 0.55vw, 0.45rem);
		padding: clamp(0.1rem, 0.55vw, 0.45rem);
	}

	.hero__slide-copy {
		max-width: min(94%, 34rem);
	}

	.theme-toggle {
		width: 2.3rem;
		height: 2.05rem;
	}
}

/* Ensure inner hero media/visual elements fill the hero and the image crops correctly */
.hero--has-bg .hero__media,
.hero__media,
.hero__visual {
	padding: 0 !important;
	min-height: 100% !important;
	height: 100% !important;
}

.hero__visual img,
.hero__media img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.hero--has-bg::before,
.hero--has-bg::after {
	display: none;
}

.hero::before,
.hero::after {
	content: '';
	position: absolute;
	border-radius: 999px;
	filter: blur(14px);
	opacity: 0.7;
	pointer-events: none;
}

.hero::before {
	top: 2rem;
	right: 5%;
	width: 16rem;
	height: 16rem;
	background: rgba(215, 170, 22, 0.16);
}

.hero::after {
	bottom: 2rem;
	left: -5rem;
	width: 20rem;
	height: 20rem;
	background: rgba(11, 107, 82, 0.16);
}

.hero__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	align-items: center;
	position: relative;
	z-index: 1;
}

.hero__copy,
.hero__media {
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
}

.hero__media {
	position: relative;
	overflow: hidden;
	min-height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hero__media::before {
	display: none;
}

.hero__visual {
	display: grid;
	gap: 0;
	place-items: center;
	padding: 0;
	border-radius: 0;
	background: transparent;
	min-height: auto;
	width: 100%;
	max-width: 100%;
}

.hero__visual .custom-logo-link img {
	max-height: none;
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: 0;
}

.hero__panel {
	display: none;
}

.hero__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 0;
	text-align: center;
	max-width: min(430px, 40vw);
	margin-left: auto;
}

.hero__title-alt {
	font-size: clamp(1.9rem, 4.6vw, 3rem);
	margin-bottom: 1rem;
	line-height: 1.15;
	font-weight: 800;
}

/* Remove hero section margin and padding globally when requested */
.hero,
body.home .hero,
body.front-page .hero,
.hero__grid,
.hero__copy,
.hero__media {
    margin: 0 !important;
    padding: 0 !important;
}

/* Remove body left/right margin and padding on small screens */
@media (max-width: 820px) {
	html, body, .site {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: 100% !important;
		box-sizing: border-box;
	}

	/* Ensure main content aligns flush with the viewport edges (but preserve header/hero padding) */
	.site > *:not(.site-header):not(.hero):not(.hero--slider) {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* Mobile: footer flush edge-to-edge, no margins */
@media (max-width: 820px) {
	
	.footer__grid,
	.footer__brand,
	.footer__bar,
	.footer__grid > div {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: clamp(0.5rem, 1.6vw, 1rem) !important;
		padding-right: clamp(0.5rem, 1.6vw, 1rem) !important;
	}

	/* Slight indent for contact list items */
	.contact-list li {
		margin-left: 0.5rem !important;
	}
}

.hero__title-alt strong {
	color: var(--color-green);
	font-weight: 900;
}

.hero__description-alt {
	font-size: 0.95rem;
	color: var(--color-muted);
	max-width: 40ch;
	margin-bottom: 1rem;
}

.hero__actions-alt {
	display: flex;
	gap: 1rem;
	justify-content: center;
}

.about__card,
.service-card,
.gallery-card,
.testimonial-card,
.faq-item,
.contact-card,
.content-card,
.post-card,
.page-card {
	background: color-mix(in srgb, var(--color-surface) 93%, transparent);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-md);
}

body.card-borders-off .about__card,
body.card-borders-off .service-card,
body.card-borders-off .gallery-card,
body.card-borders-off .testimonial-card,
body.card-borders-off .faq-item,
body.card-borders-off .contact-card,
body.card-borders-off .content-card,
body.card-borders-off .post-card,
body.card-borders-off .page-card,
body.card-borders-off .stat-card,
body.card-borders-off .elevators-grid,
body.card-borders-off .elevator-card__media,
body.card-borders-off .gallery-card__media {
	border: none !important;
}

body.card-radius-off .about__card,
body.card-radius-off .service-card,
body.card-radius-off .gallery-card,
body.card-radius-off .testimonial-card,
body.card-radius-off .faq-item,
body.card-radius-off .contact-card,
body.card-radius-off .content-card,
body.card-radius-off .post-card,
body.card-radius-off .page-card,
body.card-radius-off .stat-card,
body.card-radius-off .elevators-grid,
body.card-radius-off .elevator-card__media,
body.card-radius-off .gallery-card__media {
	border-radius: 0 !important;
}

body.card-shadows-off .about__card,
body.card-shadows-off .service-card,
body.card-shadows-off .gallery-card,
body.card-shadows-off .testimonial-card,
body.card-shadows-off .faq-item,
body.card-shadows-off .contact-card,
body.card-shadows-off .content-card,
body.card-shadows-off .post-card,
body.card-shadows-off .page-card,
body.card-shadows-off .stat-card {
	box-shadow: none !important;
}

.hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 0.9rem;
	margin-bottom: 1rem;
	border-radius: 999px;
	background: var(--color-gold-soft);
	font-size: 0.84rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-green-deep);
}

.hero__title {
	font-size: clamp(2.8rem, 7vw, 5.4rem);
	margin-bottom: 0.8rem;
}

.hero__subtitle {
	display: block;
	margin-bottom: 0.6rem;
	font-family: 'Roboto', sans-serif;
	font-size: clamp(1rem, 2vw, 1.3rem);
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-green);
}

.hero__description {
	max-width: 55ch;
	font-size: 1.05rem;
	color: var(--color-muted);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin: 1.6rem 0;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.95rem 1.25rem;
	border-radius: 999px;
	border: 1px solid transparent;
	font-weight: 800;
	transition: transform var(--transition), background var(--transition), border-color var(--transition);
}

.button--primary {
	background: linear-gradient(135deg, var(--color-green), var(--color-green-deep));
	color: #fff;
	box-shadow: var(--shadow-lg);
}

.button--secondary {
	background: transparent;
	border-color: var(--color-border);
	color: var(--color-text);
}

.button--ghost {
	background: var(--color-surface);
	border-color: var(--color-gold);
	color: var(--color-green-deep);
}

.hero__meta {
	display: grid;
	gap: 0.85rem;
	margin-top: 1.5rem;
}

.meta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.meta-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	border-radius: 999px;
	background: var(--color-surface-alt);
	border: 1px solid var(--color-border);
	font-weight: 700;
	color: var(--color-muted);
}

.hero__media {
	position: relative;
	padding: clamp(1.5rem, 3vw, 2rem);
	overflow: hidden;
	min-height: 100%;
}

.hero__media::before {
	content: '';
	position: absolute;
	inset: auto -8% -12% 30%;
	height: 50%;
	background: radial-gradient(circle, rgba(215, 170, 22, 0.22), transparent 70%);
	pointer-events: none;
}

.hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 0.85rem;
	margin-bottom: 1rem;
	border-radius: 999px;
	background: rgba(11, 107, 82, 0.1);
	color: var(--color-green-deep);
	font-size: 0.84rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hero__visual {
	display: grid;
	gap: 1rem;
	place-items: center;
	padding: 1rem;
	border-radius: calc(var(--radius-xl) - 0.5rem);
	background:
		linear-gradient(145deg, rgba(11, 107, 82, 0.08), rgba(215, 170, 22, 0.12)),
		var(--color-surface-alt);
	min-height: 420px;
}

/* Desktop: place hero copy on the right column */
@media (min-width: 821px) {
	.hero__grid {
		grid-template-columns: 1fr 1fr;
		gap: clamp(1rem, 2vw, 2rem);
		align-items: center;
	}

	.hero__media {
		grid-column: 1;
	}

	.hero__copy {
		grid-column: 2;
		justify-self: center;
		align-items: center;
		text-align: left;
		max-width: min(520px, 45vw);
	}
}

/* Center hero copy (override previous layout) */
.hero__grid {
	grid-template-columns: 1fr !important;
	place-items: center !important;
}

.hero__copy {
	margin: 0 auto !important;
	text-align: center !important;
	align-items: center !important;
	justify-content: center !important;
	max-width: min(720px, 85vw) !important;
	width: 100% !important;
}

.hero__visual .custom-logo-link img {
	max-height: 170px;
}

.hero__panel {
	width: min(100%, 320px);
	padding: 1rem 1.15rem;
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.72);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.5);
	text-align: center;
}

body.theme-dark .hero__panel {
	background: rgba(8, 17, 14, 0.6);
	border-color: rgba(255, 255, 255, 0.08);
}

.hero__panel strong {
	display: block;
	font-family: 'Roboto', sans-serif;
	font-size: 1.85rem;
	margin-top: 0.25rem;
}

.content-grid,
.about__grid,
.contact__grid,
.footer__grid,
.archive__grid,
.posts-grid {
	display: grid;
	gap: 1.5rem;
}

.posts-grid {
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.about__grid,
.contact__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
}

.about__copy,
.contact__card,
.content-card,
.page-card,
.post-card {
	padding: clamp(1.5rem, 3vw, 2rem);
}

.feature-list,
.contact-list,
.post-meta,
.footer-links,
.social-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.feature-list {
	display: grid;
	gap: 0.85rem;
	margin-top: var(--space-md);
}

.feature-list li,
.contact-list li {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	color: var(--color-muted);
}

.feature-list li::before {
	content: '';
	flex: 0 0 0.85rem;
	width: 0.85rem;
	height: 0.85rem;
	margin-top: 0.35rem;
	border-radius: 0.25rem;
	background: linear-gradient(135deg, var(--color-green), var(--color-gold));
	box-shadow: 0 0 0 3px var(--color-gold-soft);
}

.about__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	align-items: stretch;
}

.stat-card {
	padding: 1.1rem 1rem;
	margin: 0;
	height: 100%;
	display: grid;
	gap: 0.25rem;
	align-content: start;
	border-radius: var(--radius-lg);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-md);
}

.stat-card strong {
	display: block;
	font-size: clamp(1.35rem, 2.5vw, 2rem);
	line-height: 1.15;
	word-break: break-word;
	font-family: 'Roboto', sans-serif;
	margin-bottom: 0.25rem;
}

.stat-card span {
	color: var(--color-muted);
}

.stat-card__link {
	display: grid;
	grid-template-columns: 1fr;
	gap: inherit;
	height: 100%;
	align-content: start;
	color: inherit;
	text-decoration: none;
}

.stat-card__link:focus,
.stat-card__link:hover {
	text-decoration: none;
}

.cards-grid,
.gallery-grid,
.testimonials-grid,
.faq-grid,
.features-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-sm);
}

.elevators-heading {
	text-align: center;
	font-size: clamp(1rem, 2vw, 1.35rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 1rem;
	color: var(--color-muted);
}

.elevators-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--space-sm);
	padding: var(--space-sm);
	align-items: start;
	border-radius: 14px;
	background: color-mix(in srgb, var(--color-surface) 92%, transparent);
	border: 1px solid var(--color-border);
}

#gallery .gallery-grid,
#team .gallery-grid {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	align-items: stretch;
}

.elevators-grid > .elevator-card:only-child,
.gallery-grid > .gallery-card:only-child {
	grid-column: 1 / -1;
	justify-self: center;
	width: min(100%, 560px);
}

.elevator-card {
	display: grid;
	gap: 0.65rem;
	margin: 0;
	min-width: 0;
}

.elevator-card__link {
	display: grid;
	gap: 0.65rem;
	color: inherit;
	text-decoration: none;
}

.elevator-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: 10px;
	background: linear-gradient(145deg, rgba(11, 107, 82, 0.1), rgba(215, 170, 22, 0.14));
	border: 1px solid var(--color-border);
}

body.card-radius-off .elevator-card__media,
body.card-radius-off .gallery-card__media {
	border-radius: 0 !important;
}

.elevator-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elevator-card__title {
	margin: 0;
	padding-bottom: 0.2rem;
	font-size: 1rem;
	font-weight: 700;
	text-align: center;
	color: var(--color-text);
}

.elevator-card__placeholder {
	display: grid;
	place-items: center;
	height: 100%;
	padding: 1rem;
	text-align: center;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-muted);
}

.service-card,
.gallery-card,
.testimonial-card,
.faq-item,
.contact-card,
.post-card,
.page-card {
	padding: var(--space-md);
}

.service-card {
	display: grid;
	gap: 1rem;
	min-height: 100%;
}

.service-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 1rem;
	background: linear-gradient(135deg, var(--color-green), var(--color-gold));
	color: #fff;
	font-weight: 900;
}

/* Increase product/elevator card media height on small screens */
@media (max-width: 820px) {
    .elevator-card__media {
        aspect-ratio: auto;
        min-height: 220px;
    }

    /* Ensure placeholder and images fill the increased area */
    .elevator-card__media img,
    .elevator-card__placeholder {
        height: 100%;
    }
}

.service-card__title,
.gallery-card__title,
.testimonial-card__title,
.contact-card__title,
.content-card__title,
.post-card__title,
.page-card__title {
	font-size: 1.35rem;
}

.service-card__text,
.gallery-card__text,
.testimonial-card__text,
.contact-card__text,
.content-card__text,
.post-card__excerpt,
.page-card__text,
.faq-item p {
	color: var(--color-muted);
}

.gallery-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.gallery-card__title a {
	color: inherit;
	text-decoration: none;
}



.gallery-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 10px;
	overflow: hidden;
	/* remove decorative background so image fills the area */
	background: none !important;
	/* ensure the media fills its container fully */
	margin-bottom: 0.5rem;
	height: auto;
}

#gallery .gallery-card,
#team .gallery-card {
	border-radius: 14px;
}

.gallery-card__media img {
	display: block;
	width: 100%;
	min-height: 0;
	height: 100%;
	object-fit: cover;
}

.gallery-card__placeholder {
	display: grid;
	place-items: center;
	height: 100%;
	padding: 1rem;
	text-align: center;
	font-weight: 700;
	color: var(--color-green-deep);
}

#team .gallery-card__media {
	aspect-ratio: auto;
	height: auto;
	min-height: 220px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem;
}

#team .gallery-card__media img {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
}

#team .gallery-card .team-description {
	font-size: var(--team-description-font-size, 14px);
	color: var(--team-description-color, var(--color-muted));
	line-height: 1.55;
	margin: 0.4rem 0;
}

#team .gallery-card .team-description-2 {
	font-size: var(--team-description-2-font-size, 14px);
	color: var(--team-description-2-color, var(--color-muted));
	line-height: 1.55;
	margin: 0.4rem 0;
}

.testimonial-card blockquote {
	margin: 0;
	font-size: 1.05rem;
	color: var(--color-text);
}

.testimonial-card footer {
	margin-top: 1rem;
	color: var(--color-muted);
	font-weight: 700;
}

.faq-item details {
	cursor: pointer;
}

.faq-item summary {
	list-style: none;
	font-weight: 800;
	font-size: 1.05rem;
}

.faq-item summary::-webkit-details-marker {
	display: none;
}

.faq-item summary::after {
	content: '+';
	float: right;
	color: var(--color-gold);
	font-size: 1.4rem;
	line-height: 1;
}

.faq-item details[open] summary::after {
	content: '–';
}

.contact-card {
	display: grid;
	gap: 1rem;
}

.contact-list li strong {
	display: block;
	color: var(--color-text);
	white-space: nowrap;
	flex: 0 0 auto;
}

.contact-list li span {
	overflow-wrap: break-word;
	word-break: normal;
}

.qr-block {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	align-items: center;
	padding: 1rem;
	border-radius: var(--radius-lg);
	background: var(--color-surface-alt);
	border: 1px solid var(--color-border);
}

.qr-block img {
	width: 132px;
	height: 132px;
	object-fit: cover;
	border-radius: 16px;
	background: #fff;
	padding: 0.5rem;
}

.social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 999px;
	border: 1px solid var(--color-border);
	background: color-mix(in srgb, var(--color-surface) 88%, transparent);
	color: var(--color-muted);
	transition: transform var(--transition), border-color var(--transition), color var(--transition);
}

.social-link svg {
	width: 1rem;
	height: 1rem;
	fill: currentColor;
}

.social-link:hover {
	transform: translateY(-1px);
	border-color: rgba(11, 107, 82, 0.35);
	color: var(--color-green);
}

.section-content {
	padding-top: 0;
}

.entry-content > * + * {
	margin-top: var(--space-sm);
}

.post-card__meta,
.content-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 0.85rem;
	color: var(--color-muted);
	font-size: 0.92rem;
}

.post-card__thumb,
.page-card__thumb {
	margin-bottom: 1rem;
	border-radius: calc(var(--radius-lg) - 0.2rem);
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--color-surface-alt);
}

.post-card__thumb img,
.page-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pagination,
.nav-links {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	margin-top: var(--space-lg);
}

.page-numbers,
.nav-links a,
.nav-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.4rem 0.85rem;
	border-radius: 999px;
	border: 1px solid var(--color-border);
	background: var(--color-surface);
}

.section-actions {
	text-align: center;
	margin-top: var(--space-md) !important;
}

.section-actions .button {
	max-width: 100%;
}

.page-numbers.current {
	background: var(--color-green);
	border-color: var(--color-green);
	color: #fff;
}

@media (max-width: 768px) {
	.posts-grid {
		grid-template-columns: 1fr;
		gap: clamp(1rem, 3vw, 1.5rem);
	}

	.post-card {
		padding: clamp(1rem, 3vw, 1.5rem);
	}

	.post-card__title {
		font-size: clamp(1.1rem, 5vw, 1.4rem);
	}

	.post-card__excerpt {
		font-size: clamp(0.9rem, 3.2vw, 0.95rem);
	}
}

.site-footer {
	margin-top: var(--space-xl);
	margin-left: 0;
	margin-right: 0;
	padding: var(--space-xl) clamp(0.75rem, 1.6vw, 1.5rem) var(--space-md);
	background: linear-gradient(180deg, rgba(11, 107, 82, 0.08), rgba(6, 71, 54, 0.12));
	border-top: 1px solid var(--color-border);
}

.footer__inner,
.footer__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.footer__bar {
	padding-top: var(--space-md);
	margin-top: var(--space-lg);
	border-top: 1px solid var(--color-border);
	flex-wrap: wrap;
	color: var(--color-muted);
}

.footer__grid {
	display: grid;
	grid-template-columns: 1.45fr 1fr;
	align-items: start;
}

.footer__grid > :last-child {
	justify-self: end;
	text-align: left;
	max-width: 360px;
}

.footer__grid > :last-child .section-title {
	text-align: left;
}

.footer__brand {
	display: grid;
	gap: 0.85rem;
}

.footer__brand .site-title {
	font-size: 1.6rem;
}

.footer__links li + li {
	margin-top: 0.6rem;
}

.footer__links a {
	color: var(--color-muted);
}

.search-form {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	padding: 0.25rem;
	border-radius: 999px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
}

.search-form label {
	flex: 1;
}

.search-form .search-field {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--color-text);
}

.search-form .search-submit {
	padding: 0.85rem 1.1rem;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--color-green), var(--color-green-deep));
	color: #fff;
	font-weight: 800;
}

.alignwide,
.alignfull {
	max-width: 100%;
}

.wp-block-group,
.wp-block-columns,
.wp-block-cover,
.wp-block-media-text,
.wp-block-query,
.wp-block-post-template {
	margin-bottom: 1.5rem;
}

.wp-block-button__link {
	border-radius: 999px;
	font-weight: 800;
	padding: 0.9rem 1.25rem;
	background: linear-gradient(135deg, var(--color-green), var(--color-green-deep));
}

@media (max-width: 1080px) {
	.about__grid,
	.contact__grid,
	.footer__grid,
	.cards-grid,
	.gallery-grid,
	.testimonials-grid,
	.faq-grid,
	.features-grid,
	.posts-grid {
		grid-template-columns: 1fr 1fr;
	}

	.footer__grid > :last-child {
		justify-self: stretch;
		max-width: none;
	}

	.elevators-grid {
		grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	}

	#gallery .gallery-grid,
	#team .gallery-grid {
		grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	}

	.hero__nav {
		width: 2.35rem;
		height: 2.35rem;
	}
}

@media (max-width: 820px) {
	.section {
		padding: clamp(2.25rem, 8vw, 3.2rem) 0;
	}

	.section-heading {
		margin-bottom: clamp(1.1rem, 4vw, 1.5rem);
	}

	.service-card,
	.gallery-card,
	.testimonial-card,
	.faq-item,
	.contact-card,
	.post-card,
	.page-card {
		padding: clamp(0.95rem, 3.6vw, 1.2rem);
	}

	.site-header,
	body.home .site-header,
	body.front-page .site-header {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.header-top__inner,
	.header-main__inner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.header-main__inner {
		gap: 1rem;
		position: relative;
	}

	.header-main__actions {
		margin-right: clamp(0.7rem, 4vw, 1rem);
	}

	.branding-text {
		display: block;
		max-width: calc(100vw - 6rem);
	}

	.site-title {
		font-size: 1.1rem;
		line-height: 1.15;
	}

	.primary-navigation {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(7, 16, 22, 0.45);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 180ms ease, visibility 180ms ease;
		z-index: 1100;
	}

	.primary-navigation.is-open {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.primary-navigation > ul {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		align-items: stretch;
		gap: 0;
		list-style: none;
		width: clamp(220px, 66vw, 260px);
		max-width: calc(100vw - 0.75rem);
		height: 100svh;
		max-height: 100svh;
		overflow-y: auto;
		margin: 0;
		padding: 0.9rem 0 1.1rem;
		background: var(--color-surface);
		border: 0;
		border-radius: 0;
		border-right: 2px solid var(--color-border);
		box-shadow: var(--shadow-md);
		transform: translateX(-104%);
		transition: transform 220ms ease;
		will-change: transform;
	}

	.primary-navigation.is-open ul {
		transform: translateX(0);
	}

	.primary-navigation li {
		width: 100%;
		border-bottom: 4px solid var(--color-border);
	}

	.primary-navigation li:first-child {
		border-top: 4px solid var(--color-border);
	}

	.primary-navigation a {
		width: 100%;
		display: block;
		padding: 0.9rem 1rem;
		border: 0;
		border-radius: 0;
		background: transparent;
		text-align: left;
		font-weight: 700;
	}

	.primary-navigation .menu-item-has-children > a::after,
	.primary-navigation .page_item_has_children > a::after {
		float: right;
		margin-top: 0.35rem;
	}

	.primary-navigation .sub-menu,
	.primary-navigation .children {
		position: static;
		display: none;
		padding: 0.25rem 0 0.5rem;
		margin: 0;
		border: 0;
		box-shadow: none;
		background: color-mix(in srgb, var(--color-surface) 92%, #000000);
	}

	.primary-navigation li.submenu-open > .sub-menu,
	.primary-navigation li.submenu-open > .children {
		display: block;
	}

	.primary-navigation .sub-menu a,
	.primary-navigation .children a {
		padding: 0.65rem 1.75rem;
		font-weight: 600;
		font-size: 0.9rem;
		color: color-mix(in srgb, var(--color-text) 80%, var(--color-muted));
		border-left: 3px solid color-mix(in srgb, var(--color-border) 70%, transparent);
	}

	.menu-toggle {
		display: inline-flex;
		position: relative;
		z-index: 1200;
		align-items: center;
		justify-content: center;
		width: 2rem;
		height: 2rem;
		border: 1px solid var(--color-border);
		background: color-mix(in srgb, var(--color-surface) 88%, transparent);
		border-radius: 6px;
	}

	body.menu-open {
		overflow: hidden;
	}

	.header-top__nav {
		display: none;
	}

	.hero__grid,
	.about__grid,
	.contact__grid,
	.footer__grid,
	.elevators-grid,
	.cards-grid,
	.gallery-grid,
	.testimonials-grid,
	.faq-grid,
	.features-grid,
	.posts-grid {
		grid-template-columns: 1fr;
	}

	.hero {
		padding-top: clamp(4.75rem, 11vw, 5.5rem);
		padding-bottom: 2rem;
		width: 100%;
	}

	.hero.hero--slider {
		padding: 0 !important;
		width: calc(100% + (clamp(0.75rem, 1.6vw, 1.5rem) * 2));
		max-width: none;
		margin-left: calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem)) !important;
		margin-right: calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem)) !important;
		aspect-ratio: 16 / 9;
		height: auto;
		min-height: 0;
		border-radius: 12px;
	}

	body.home .hero.hero--slider,
	body.front-page .hero.hero--slider {
		margin-top: clamp(56px, 15vw, 80px) !important;
	}

	.hero.hero--slider .hero__slide {
		margin: 0.2rem;
		padding: 0.2rem;
	}

	.hero.hero--slider .hero__slide-image {
		padding: 0.2rem;
		border-radius: 10px;
	}

	.hero.hero--slider .hero__dots {
		bottom: 0.06rem;
		gap: 0.42rem;
	}

	.hero.hero--slider .hero__dot {
		width: 0.54rem;
		height: 0.54rem;
	}

	.hero.hero--slider .hero__slide-content {
		padding: 0.75rem 0.85rem 1.65rem;
	}

	.hero__nav {
		width: 2rem;
		height: 2rem;
		border-width: 1px;
	}

	.hero__nav--prev {
		left: 0.35rem;
	}

	.hero__nav--next {
		right: 0.35rem;
	}

	.hero.hero--slider .hero__slide-copy {
		max-width: min(90%, 44rem);
		padding: 0;
	}

	.hero.hero--slider .hero__slide-title {
		font-size: clamp(1rem, 5.4vw, min(var(--hero-slide-title-size, 48px), 32px));
		line-height: 1.15;
		word-break: break-word;
		margin-top: min(var(--hero-slide-title-margin-top, 0px), 20px);
		margin-right: min(var(--hero-slide-title-margin-right, 0px), 14px);
		margin-bottom: min(var(--hero-slide-title-margin-bottom, 0px), 14px);
		margin-left: min(var(--hero-slide-title-margin-left, 0px), 14px);
	}

	.hero.hero--slider .hero__slide-subtitle {
		font-size: clamp(0.8rem, 3.8vw, min(var(--hero-slide-subtitle-size, 20px), 22px));
		line-height: 1.25;
		word-break: break-word;
		margin-top: min(var(--hero-slide-subtitle-margin-top, 0px), 16px);
		margin-right: min(var(--hero-slide-subtitle-margin-right, 0px), 14px);
		margin-bottom: min(var(--hero-slide-subtitle-margin-bottom, 0px), 12px);
		margin-left: min(var(--hero-slide-subtitle-margin-left, 0px), 14px);
	}

	.hero.hero--slider .hero__slide-description {
		font-size: clamp(0.76rem, 3.3vw, min(var(--hero-slide-description-size, 20px), 18px));
		line-height: 1.35;
		max-width: 100%;
		word-break: break-word;
		margin-top: min(var(--hero-slide-description-margin-top, 12px), 16px);
		margin-right: min(var(--hero-slide-description-margin-right, 0px), 14px);
		margin-bottom: min(var(--hero-slide-description-margin-bottom, 0px), 12px);
		margin-left: min(var(--hero-slide-description-margin-left, 0px), 14px);
	}

	.hero--has-bg {
		background-size: cover;
		background-position: center center;
		min-height: clamp(460px, 138vw, 760px);
		height: auto;
		width: 100%;
		align-items: flex-end;
	}

	.hero--slider.hero--has-bg {
		background-image: none !important;
	}

	.hero__grid {
		min-height: inherit;
		align-content: end;
		justify-items: center;
		gap: 0.85rem;
	}

	.hero__copy {
		width: 100%;
		max-width: min(100%, 24rem);
		margin: 0 auto 0.35rem;
		padding: 1.15rem 1rem 1rem;
		border: 1px solid color-mix(in srgb, var(--color-surface) 45%, var(--color-border));
		border-radius: 24px;
		background: color-mix(in srgb, var(--color-surface) 72%, transparent);
		box-shadow: 0 18px 40px rgba(7, 25, 20, 0.12);
		backdrop-filter: blur(18px);
		-webkit-backdrop-filter: blur(18px);
		text-align: center;
		align-items: center;
		justify-self: center;
	}

	.hero__title-alt {
		font-size: clamp(2rem, 9vw, 2.9rem) !important;
		line-height: 1.02;
		word-break: break-word;
		text-wrap: balance;
		letter-spacing: -0.05em;
		width: 100%;
	}

	.hero__description-alt {
		font-size: clamp(0.95rem, 3.9vw, 1.08rem) !important;
		line-height: 1.45;
		max-width: 100%;
		margin-bottom: 1rem;
		width: 100%;
	}

	.hero__actions-alt {
		width: 100%;
		justify-content: center;
		gap: 0.75rem;
	}

	.hero__actions-alt .button {
		width: 100%;
		max-width: 220px;
		font-size: clamp(0.95rem, 4.1vw, 1.15rem) !important;
	}

	/* Mobile: make section titles scale down for small viewports */
	.section-title {
		font-size: clamp(1.25rem, 6.6vw, 2.4rem);
		line-height: 1.08;
		margin-bottom: clamp(0.35rem, 1.8vw, 0.65rem);
	}

	.section-description,
	.gallery-card__text,
	.post-card__excerpt,
	.page-card__text,
	.content-card p,
	.faq-item p {
		margin: 0;
		padding: 0;
	}

	@media (max-width: 420px) {
		.section-title {
			font-size: clamp(0.95rem, 5.6vw, 1.6rem) !important;
			margin-bottom: clamp(0.25rem, 1.5vw, 0.5rem);
		}
	}

	@media (max-width: 420px) {
		/* Reduce base text and small components on very small screens */
		html, body {
			font-size: 14px;
		}

		.container {
			width: min(100% - (2 * clamp(0.75rem, 4.8vw, 1rem)), var(--container));
		}

		p,
		.section-description,
		.hero__description-alt,
		.gallery-card__text,
		.post-card__excerpt,
		.page-card__text,
		.content-card p,
		.faq-item p {
			font-size: 0.85rem !important;
			line-height: 1.35 !important;
		}

		.about__stats .stat-card strong {
			font-size: 1.05rem !important;
		}

		.about__stats .stat-card span,
		.elevator-card__placeholder,
		.service-card__text {
			font-size: 0.78rem !important;
		}

		.hero__title-alt {
			font-size: clamp(1rem, 6.2vw, 1.5rem) !important;
		}
	}

	@media (max-width: 820px) {
		/* Remove hero copy card background, border and shadow on mobile sections */
		.hero__copy {
			background: transparent !important;
			background-image: none !important;
			background-size: unset !important;
			background-position: unset !important;
			-webkit-backdrop-filter: none !important;
			backdrop-filter: none !important;
			border: none !important;
			box-shadow: none !important;
			border-radius: 0 !important;
			padding: 0.5rem 0.75rem !important;
			margin: 0 !important;
		}
	}

	.footer__grid > :last-child {
		justify-self: stretch;
		max-width: none;
	}

	.hero__visual {
		min-height: 320px;
	}

	.qr-block {
		grid-template-columns: 1fr;
	}

	.qr-block img {
		width: 100%;
		height: auto;
		aspect-ratio: 1;
	}
}

@media (max-width: 820px) {
	.elevators-grid {
		padding: 0.75rem;
	}

	#gallery .gallery-grid,
	#team .gallery-grid {
		grid-template-columns: 1fr;
	}

	#gallery .gallery-card,
	#team .gallery-card {
		padding: 1rem;
	}

	#team .team-description,
	#team .team-description-2 {
		font-size: clamp(0.9rem, 2.5vw, var(--team-description-font-size, 16px));
	}
}

@media (max-width: 480px) {
	.elevators-grid {
		padding: 0.6rem;
		gap: 0.85rem;
	}

	.elevator-card__title,
	.gallery-card__title {
		font-size: 0.95rem;
	}

	.gallery-card__text {
		font-size: 0.9rem;
		line-height: 1.55;
	}
}

@media (max-width: 480px) {
	.hero--has-bg {
		min-height: clamp(420px, 142vw, 660px);
		background-position: 44% center;
	}

	.hero.hero--slider .hero__slide-content {
		padding: 0.6rem 0.65rem 1.35rem;
	}

	.hero.hero--slider .hero__slide-title {
		font-size: clamp(0.95rem, 6.4vw, min(var(--hero-slide-title-size, 48px), 28px));
		line-height: 1.12;
	}

	.hero.hero--slider .hero__slide-subtitle {
		font-size: clamp(0.72rem, 4.6vw, min(var(--hero-slide-subtitle-size, 20px), 18px));
		line-height: 1.22;
	}

	.hero.hero--slider .hero__slide-description {
		font-size: clamp(0.68rem, 4vw, min(var(--hero-slide-description-size, 20px), 16px));
		line-height: 1.32;
	}

	.hero--slider.hero--has-bg {
		background-image: none !important;
	}

	.hero__copy {
		padding: 1rem 0.9rem 0.9rem;
		border-radius: 22px;
	}

	.hero__title-alt {
		font-size: clamp(1.45rem, 7vw, 1.95rem) !important;
		line-height: 1.03;
		width: 100%;
	}

	.hero__description-alt {
		font-size: clamp(0.86rem, 3.3vw, 0.95rem) !important;
		line-height: 1.38;
		width: 100%;
	}

	.hero__actions-alt .button {
		width: 100%;
		max-width: 205px;
		font-size: clamp(0.88rem, 3.4vw, 0.96rem) !important;
		text-align: center;
	}
}

@media (min-width: 821px) {
	.menu-toggle {
		display: none;
	}
}

/* Mobile hard lock: keep all section dimensions fluid and prevent overrides. */
@media (max-width: 820px) {
	.site-main > section,
	.section,
	.hero,
	.hero--has-bg,
	.about__grid,
	.contact__grid,
	.footer__grid,
	.elevators-grid,
	.cards-grid,
	.gallery-grid,
	.testimonials-grid,
	.faq-grid,
	.features-grid,
	.elevator-card,
	.gallery-card,
	.testimonial-card,
	.faq-item,
	.contact-card,
	.content-card,
	.post-card,
	.page-card,
	.hero__copy,
	.hero__media,
	.hero__visual,
	.hero__actions-alt,
	.hero__actions-alt .button,
	img,
	picture,
	video,
	iframe {
		width: auto !important;
		max-width: 100% !important;
		height: auto !important;
		min-height: auto !important;
	}

	/* Ensure content sits below fixed header on narrow screens */
	.site {
		padding-top: 0 !important;
	}

	.hero__grid,
	.about__grid,
	.contact__grid,
	.footer__grid,
	.elevators-grid,
	.cards-grid,
	.gallery-grid,
	.testimonials-grid,
	.faq-grid,
	.features-grid,
	.posts-grid {
		grid-template-columns: 1fr !important;
	}

	/* Keep hero slider locked to 16:9 despite generic mobile hard-lock rules above. */
	.hero.hero--slider {
		width: calc(100% + (clamp(0.75rem, 1.6vw, 1.5rem) * 2)) !important;
		max-width: none !important;
		margin-left: calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem)) !important;
		margin-right: calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem)) !important;
		height: auto !important;
		min-height: 0 !important;
		aspect-ratio: 16 / 9 !important;
		overflow: hidden;
	}

	body.home .hero.hero--slider,
	body.front-page .hero.hero--slider {
		margin-top: clamp(56px, 15vw, 80px) !important;
	}

	.hero.hero--slider .hero__slides,
	.hero.hero--slider .hero__slide {
		width: 100% !important;
		height: 100% !important;
		min-height: 0 !important;
	}

	.hero.hero--slider .hero__slide-image {
		width: 100% !important;
		height: 100% !important;
		min-height: 0 !important;
		object-fit: cover !important;
	}

	/* Mobile: keep hero text centered and prevent any text overflow */
	.hero.hero--slider .hero__slide-content {
		justify-content: center !important;
		align-items: center !important;
		text-align: center !important;
	}

	.hero.hero--slider .hero__slide-copy {
		width: min(92vw, 34rem) !important;
		max-width: min(92vw, 34rem) !important;
		overflow: hidden;
	}

	.hero.hero--slider .hero__slide-title,
	.hero.hero--slider .hero__slide-subtitle,
	.hero.hero--slider .hero__slide-description {
		max-width: 100% !important;
		overflow-wrap: anywhere;
		word-break: break-word;
		hyphens: auto;
	}

	.hero.hero--slider .hero__slide-title {
		margin-left: min(var(--hero-slide-title-margin-left, 0px), 8px);
		margin-right: min(var(--hero-slide-title-margin-right, 0px), 8px);
	}

	.hero.hero--slider .hero__slide-subtitle {
		margin-left: min(var(--hero-slide-subtitle-margin-left, 0px), 8px);
		margin-right: min(var(--hero-slide-subtitle-margin-right, 0px), 8px);
	}

	.hero.hero--slider .hero__slide-description {
		margin-left: min(var(--hero-slide-description-margin-left, 0px), 8px);
		margin-right: min(var(--hero-slide-description-margin-right, 0px), 8px);
	}
}
