/* ==========================================================================
   BWG — Brawijaya Group component styles for Elementor
   Colours and type sizes come from Elementor Global Colors / Global Fonts
   (Site Settings). Layout values (padding, widths, gaps) live on the Elementor
   containers themselves; this file adds what the editor has no control for:
   image framing, hover states, motion and the header/menu behaviour.
   ========================================================================== */

body {
	--bwg-green: var(--e-global-color-bwggreen, #A0C374);
	--bwg-green-deep: var(--e-global-color-bwggreendeep, #4F6B2E);
	--bwg-brown: var(--e-global-color-bwgbrown, #8F6B4B);
	--bwg-dark: var(--e-global-color-bwgdark, #20211E);
	--bwg-dark-warm: var(--e-global-color-bwgdarkwarm, #302B26);
	--bwg-white: var(--e-global-color-bwgwhite, #FFFFFF);
	--bwg-offwhite: var(--e-global-color-bwgoffwhite, #F6F6F1);
	--bwg-light: var(--e-global-color-bwglight, #E8E7E1);
	--bwg-text: var(--e-global-color-bwgtext, #30312E);
	--bwg-muted: var(--e-global-color-bwgmuted, #66655E);
	--bwg-stone: var(--e-global-color-bwgstone, #A8A69E);
	--bwg-rule: rgba(32, 33, 30, 0.12);
	--bwg-rule-dark: rgba(255, 255, 255, 0.14);

	--bwg-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--bwg-fast: 0.35s;
	--bwg-slow: 0.9s;
	--bwg-header-h: 88px;
	--bwg-header-h-compact: 70px;

	--bwg-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 8h13M9 3l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E");

	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

html,
body {
	overflow-x: clip;
}

@media (max-width: 767px) {
	body {
		--bwg-header-h: 72px;
		--bwg-header-h-compact: 64px;
	}
}

.bwg-section .elementor-heading-title,
.bwg-header .elementor-heading-title,
.bwg-footer .elementor-heading-title {
	text-wrap: balance;
}

.bwg-section .elementor-widget-text-editor p {
	text-wrap: pretty;
}

.bwg-section .elementor-widget-text-editor p:last-child,
.bwg-footer .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

.bwg-section :focus-visible,
.bwg-header :focus-visible,
.bwg-footer :focus-visible {
	outline: 2px solid var(--bwg-green-deep);
	outline-offset: 4px;
}

.bwg-on-dark :focus-visible,
.bwg-hero :focus-visible {
	outline-color: var(--bwg-green);
}

/* Images: fill their frame; frames set the ratio. */
.bwg-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --------------------------------------------------------------------------
   Editorial labels — "(01) Material Systems" with the logo's circle as marker
   -------------------------------------------------------------------------- */

.bwg-section-label .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.bwg-section-label .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--bwg-green);
}

.bwg-section-head {
	margin-bottom: 72px;
}

@media (max-width: 1024px) {
	.bwg-section-head {
		margin-bottom: 56px;
	}
}

@media (max-width: 767px) {
	.bwg-section-head {
		margin-bottom: 40px;
	}
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.elementor .bwg-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	padding: 0 24px 0 26px;
	transition: background-color var(--bwg-fast) var(--bwg-ease), color var(--bwg-fast) var(--bwg-ease), border-color var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-btn .elementor-button-text {
	display: inline-flex;
	align-items: center;
	gap: 14px;
}

.elementor .bwg-btn .elementor-button-text::after,
.elementor .bwg-link-arrow .elementor-heading-title a::after,
.bwg-product-item::after,
.bwg-material-row::after,
.bwg-mini-name .elementor-heading-title::after {
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	background: currentColor;
	-webkit-mask: var(--bwg-arrow) center / contain no-repeat;
	mask: var(--bwg-arrow) center / contain no-repeat;
	transition: transform var(--bwg-fast) var(--bwg-ease), background-color var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-btn .elementor-button:hover .elementor-button-text::after,
.elementor .bwg-btn .elementor-button:focus-visible .elementor-button-text::after {
	transform: translateX(6px);
}

/* Colours per variant (dark, light, accent, outline, ghost-light) are native Elementor
   button settings bound to Global Colors, so they can be changed in the editor. */

/* Links rendered by the BWG widgets: scoped under .elementor so they outrank the Kit's global
   link colour (Site Settings → Typography → Link). */
.elementor .bwg-hero-index-item,
.elementor .bwg-hero-index-item:hover,
.elementor .bwg-material-row,
.elementor .bwg-material-row:hover,
.elementor .bwg-link-list a {
	color: var(--bwg-white);
}

.elementor .bwg-product-item,
.elementor .bwg-product-item:hover,
.elementor .bwg-brand-item,
.elementor .bwg-brand-item:hover,
.elementor .bwg-mega-parent {
	color: var(--bwg-dark);
}

.elementor .bwg-mega-categories li a {
	color: var(--bwg-text);
}

.elementor .bwg-link-list a:hover,
.elementor .bwg-link-list a:focus-visible {
	color: var(--bwg-green);
}

.elementor .bwg-mega-parent:hover,
.elementor .bwg-mega-categories li a:hover,
.elementor .bwg-mega-categories li a:focus-visible {
	color: var(--bwg-green-deep);
}

/* Text link with arrow and a hairline that turns green */
.elementor .bwg-link-arrow .elementor-heading-title a {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding-bottom: 8px;
	background: linear-gradient(var(--bwg-green), var(--bwg-green)) 0 100% / 0 1px no-repeat,
		linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
	transition: background-size var(--bwg-slow) var(--bwg-ease);
	white-space: nowrap;
}

.elementor .bwg-link-arrow .elementor-heading-title a:hover,
.elementor .bwg-link-arrow .elementor-heading-title a:focus-visible {
	background-size: 100% 1px, 100% 1px;
}

.elementor .bwg-link-arrow .elementor-heading-title a:hover::after,
.elementor .bwg-link-arrow .elementor-heading-title a:focus-visible::after {
	transform: translateX(6px);
	background-color: var(--bwg-green-deep);
}

/* --------------------------------------------------------------------------
   Header — logo, Elementor Pro Mega Menu, Contact button
   -------------------------------------------------------------------------- */

.elementor-location-header {
	position: relative;
	z-index: 100;
	height: var(--bwg-header-h);
}

body.bwg-has-hero .elementor-location-header {
	height: 0;
}

.elementor .bwg-header.e-con {
	--min-height: var(--bwg-header-h);
	--bwg-header-fg: var(--bwg-dark);
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	background: rgba(246, 246, 241, 0.92);
	border-bottom: 1px solid var(--bwg-rule);
	-webkit-backdrop-filter: blur(14px) saturate(1.2);
	backdrop-filter: blur(14px) saturate(1.2);
	transition: background-color 0.45s var(--bwg-ease), border-color 0.45s var(--bwg-ease), min-height 0.45s var(--bwg-ease);
}

body.admin-bar .elementor .bwg-header.e-con {
	top: var(--wp-admin--admin-bar--height, 32px);
}

body.bwg-scrolled .elementor .bwg-header.e-con {
	--min-height: var(--bwg-header-h-compact);
}

/* Transparent over the hero until the page scrolls or a menu panel opens */
body.bwg-has-hero:not(.bwg-scrolled):not(.bwg-menu-open) .elementor .bwg-header.e-con {
	--bwg-header-fg: var(--bwg-white);
	background: transparent;
	border-color: rgba(255, 255, 255, 0.16);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

body.bwg-has-hero:not(.bwg-scrolled):not(.bwg-menu-open) .elementor .bwg-header .bwg-logo .elementor-heading-title {
	color: var(--bwg-white);
}

body.bwg-has-hero:not(.bwg-scrolled):not(.bwg-menu-open) .elementor .bwg-header-cta .elementor-button {
	border-color: rgba(255, 255, 255, 0.55);
	color: var(--bwg-white);
}

body.bwg-has-hero:not(.bwg-scrolled):not(.bwg-menu-open) .elementor .bwg-header-cta .elementor-button:hover {
	border-color: var(--bwg-green);
	color: var(--bwg-dark);
}

.bwg-header .bwg-logo,
.bwg-header .bwg-header-cta {
	flex: none;
}

.elementor .bwg-header-cta .elementor-button {
	min-height: 44px;
	padding: 0 18px 0 20px;
}

/* Logo placeholder: wordmark + two circles echoing the Brawijaya Perkasa mark */
.bwg-logo .elementor-heading-title a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}

.bwg-logo .elementor-heading-title a::before {
	content: "";
	width: 22px;
	height: 22px;
	margin-right: 6px;
	border-radius: 50%;
	background: radial-gradient(circle at 70% 70%, var(--bwg-brown) 0 6px, transparent 6.5px),
		radial-gradient(circle at 32% 34%, var(--bwg-green) 0 7.5px, transparent 8px);
}

.bwg-logo .elementor-heading-title span {
	font-weight: 400;
	opacity: 0.7;
}

/* ---------------------------------------------------------------- Mega Menu */

.elementor .bwg-mega.elementor-widget {
	--n-menu-title-color-normal: var(--bwg-header-fg);
	--n-menu-title-color-hover: var(--bwg-header-fg);
	--n-menu-title-color-active: var(--bwg-header-fg);
	--n-menu-dropdown-indicator-color-normal: var(--bwg-header-fg);
	--n-menu-dropdown-indicator-color-hover: var(--bwg-header-fg);
	--n-menu-dropdown-indicator-color-active: var(--bwg-header-fg);
	--n-menu-toggle-icon-color: var(--bwg-header-fg);
	--n-menu-toggle-icon-color-hover: var(--bwg-header-fg);
	--n-menu-toggle-icon-color-active: var(--bwg-header-fg);
	--n-menu-title-space-between: 34px;
	--n-menu-title-padding: calc((var(--bwg-header-h) - 22px) / 2) 0;
	--n-menu-title-font-size: var(--e-global-typography-bwgnav-font-size, 15px);
	--n-menu-dropdown-indicator-size: 10px;
	--n-menu-title-distance-from-content: 0px;
	flex: 1 1 auto;
	width: auto;
}

.bwg-mega .e-n-menu-title-text {
	font-family: var(--e-global-typography-bwgnav-font-family, Manrope), sans-serif;
	font-weight: var(--e-global-typography-bwgnav-font-weight, 500);
}

/* Thin green rule under the hovered / current item */
.bwg-mega .e-n-menu-title {
	position: relative;
}

body.bwg-scrolled .elementor .bwg-mega.elementor-widget {
	--n-menu-title-padding: calc((var(--bwg-header-h-compact) - 22px) / 2) 0;
}

.bwg-mega .e-n-menu-title::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: calc((var(--bwg-header-h) - 22px) / 2 - 8px);
	height: 1px;
	background: var(--bwg-green);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.45s var(--bwg-ease);
}

.bwg-mega .e-n-menu-item:hover > .e-n-menu-title::after,
.bwg-mega .e-n-menu-title.e-current::after,
.bwg-mega .e-n-menu-title:has([aria-current="page"])::after {
	transform: scaleX(1);
}

/* Desktop dropdown panel (Products) */
.bwg-mega .e-n-menu-content > .e-con {
	--padding-top: 0px;
	--padding-bottom: 0px;
	background: var(--bwg-offwhite);
	border-top: 1px solid var(--bwg-rule);
	border-bottom: 1px solid var(--bwg-rule);
	box-shadow: 0 24px 48px -32px rgba(32, 33, 30, 0.35);
}

.bwg-mega-panel.e-con {
	width: min(1280px, 88vw);
	margin: 0 auto;
	padding: 48px 0 56px;
}

.bwg-mega-main.e-con {
	flex: 1 1 auto;
}

.bwg-mega-feature.e-con {
	flex: 0 0 300px;
	width: 300px;
}

.bwg-mega-head.e-con {
	padding-bottom: 20px;
	border-bottom: 1px solid var(--bwg-rule);
}

/* One column per product system (Forbo, Vertex, Decno, Spiralis, Absora …) */
.bwg-mega-categories {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 32px 28px;
}

.bwg-mega-parent {
	display: inline-flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 14px;
	color: var(--bwg-dark);
	font-size: 17px;
	line-height: 1.3;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.bwg-mega-parent::before {
	content: "";
	flex: none;
	margin-top: 0.5em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bwg-green);
}

.bwg-mega-categories ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bwg-mega-categories li a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 6px 0;
	color: var(--bwg-text);
	font-size: 15px;
	transition: color var(--bwg-fast) var(--bwg-ease), transform var(--bwg-fast) var(--bwg-ease);
}

.bwg-mega-categories li a::before {
	content: "";
	width: 12px;
	height: 12px;
	background: currentColor;
	opacity: 0.45;
	-webkit-mask: var(--bwg-arrow) center / contain no-repeat;
	mask: var(--bwg-arrow) center / contain no-repeat;
}

.bwg-mega-parent:hover,
.bwg-mega-categories li a:hover,
.bwg-mega-categories li a:focus-visible {
	color: var(--bwg-green-deep);
}

.bwg-mega-categories li a:hover {
	transform: translateX(4px);
}

/* Smaller card inside the panel */
.bwg-mega-feature .bwg-card-media.e-con {
	aspect-ratio: 4 / 3;
	margin-bottom: 14px;
}

/* ---------------------------------------------------------------- Tablet / mobile (Mega Menu dropdown mode)
   Pro switches the menu to data-layout="dropdown" below the tablet breakpoint; these rules match that state. */

@media (max-width: 1024px) {
	.elementor .bwg-mega.elementor-widget {
		--n-menu-title-color-normal: var(--bwg-dark);
		--n-menu-title-color-hover: var(--bwg-green-deep);
		--n-menu-title-color-active: var(--bwg-dark);
		--n-menu-dropdown-indicator-color-normal: var(--bwg-dark);
		--n-menu-dropdown-indicator-color-hover: var(--bwg-dark);
		--n-menu-dropdown-indicator-color-active: var(--bwg-dark);
		--n-menu-title-space-between: 0px;
		--n-menu-title-padding: 18px 0;
		--n-menu-title-font-size: 24px;
		order: 3;
		flex: none;
	}

	/* Contact button sits next to the menu toggle on the right */
	.bwg-header .bwg-header-cta {
		margin-left: auto;
	}

	/* The opened menu drops under the header as one full-width panel. While it is open the header is
	   solid and its backdrop-filter makes it the containing block, so "top" is measured from the header
	   (no separate admin-bar offset needed). */
	.elementor .bwg-mega .e-n-menu[data-layout="dropdown"] .e-n-menu-wrapper {
		position: fixed;
		top: var(--bwg-header-h);
		left: 0;
		right: 0;
		width: auto;
		max-height: calc(100vh - var(--bwg-header-h));
		max-height: calc(100dvh - var(--bwg-header-h));
		overflow-y: auto;
		padding: 8px 4% 40px;
		background: var(--bwg-offwhite);
		border-top: 1px solid var(--bwg-rule);
		box-shadow: 0 24px 48px -32px rgba(32, 33, 30, 0.35);
	}

	body.bwg-scrolled .elementor .bwg-mega .e-n-menu[data-layout="dropdown"] .e-n-menu-wrapper {
		top: var(--bwg-header-h-compact);
	}

	.elementor .bwg-mega .e-n-menu[data-layout="dropdown"] .e-n-menu-heading {
		flex-direction: column;
		gap: 0;
		width: 100%;
	}

	/* Pro sizes dropdown items to the viewport; keep them inside the padded panel */
	.elementor .bwg-mega .e-n-menu[data-layout="dropdown"] .e-n-menu-item,
	.elementor .bwg-mega .e-n-menu[data-layout="dropdown"] .e-n-menu-title {
		width: 100%;
		max-width: 100%;
	}

	.elementor .bwg-mega .e-n-menu[data-layout="dropdown"] .e-n-menu-item {
		border-bottom: 1px solid var(--bwg-rule);
	}

	.elementor .bwg-mega .e-n-menu[data-layout="dropdown"] .e-n-menu-title {
		background: transparent;
		justify-content: space-between;
	}

	.bwg-mega .e-n-menu-title::after {
		display: none;
	}

	.elementor .bwg-mega .e-n-menu[data-layout="dropdown"] .e-n-menu-content > .e-con {
		background: transparent;
		border: 0;
		box-shadow: none;
	}

	.bwg-mega-panel.e-con {
		width: 100%;
		padding: 0 0 24px;
	}

	.bwg-mega-head.e-con {
		display: none;
	}

	.bwg-mega-categories {
		grid-template-columns: 1fr 1fr;
		gap: 24px;
	}

	.bwg-mega-parent {
		font-size: 17px;
	}
}

@media (max-width: 767px) {
	.bwg-header .bwg-header-cta {
		display: none;
	}

	.elementor .bwg-mega.elementor-widget {
		--n-menu-title-font-size: 22px;
		--n-menu-title-padding: 16px 0;
	}

	.bwg-mega-categories {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

/* Inside the Elementor editor the header sits in the flow so it can be edited. */
.elementor-editor-active .elementor .bwg-header.e-con {
	position: relative;
	top: auto;
}

/* --------------------------------------------------------------------------
   01 Hero
   -------------------------------------------------------------------------- */

.bwg-hero.e-con {
	isolation: isolate;
	color: var(--bwg-white);
}

.bwg-hero .bwg-hero-media {
	position: absolute;
	inset: 0;
	z-index: -2;
	overflow: hidden;
}

.bwg-hero .bwg-hero-media img {
	object-position: 50% 60%;
	transform-origin: 50% 60%;
}

.bwg-js .bwg-hero .bwg-hero-media img {
	animation: bwg-hero-zoom 14s var(--bwg-ease) both;
}

/* Legibility scrim: darkest behind the copy, the image stays bright in the middle */
.bwg-hero.e-con::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(20, 21, 19, 0.5) 0%, rgba(20, 21, 19, 0) 26%, rgba(20, 21, 19, 0.05) 50%, rgba(20, 21, 19, 0.72) 100%),
		linear-gradient(90deg, rgba(20, 21, 19, 0.35) 0%, rgba(20, 21, 19, 0) 60%);
	pointer-events: none;
}

.bwg-hero-content.e-con {
	max-width: 900px;
	padding-top: calc(var(--bwg-header-h) + 80px);
	padding-bottom: 96px;
}

.elementor .bwg-hero-eyebrow.elementor-widget {
	margin-bottom: 28px;
}

.bwg-hero-text {
	margin-top: 28px;
	opacity: 0.88;
}

.bwg-hero-text p {
	max-width: 540px;
}

.bwg-hero-actions.e-con {
	margin-top: 44px;
}

/* Entrance: headline, then copy, then actions */
.bwg-js .bwg-hero-eyebrow { animation: bwg-rise 0.8s var(--bwg-ease) 0.15s both; }
.bwg-js .bwg-hero-title { animation: bwg-rise 0.8s var(--bwg-ease) 0.3s both; }
.bwg-js .bwg-hero-text { animation: bwg-rise 0.9s var(--bwg-ease) 0.55s both; }
.bwg-js .bwg-hero-actions { animation: bwg-rise 1s var(--bwg-ease) 0.8s both; }
.bwg-js .bwg-hero-aside,
.bwg-js .bwg-hero-index { animation: bwg-fade 1.2s var(--bwg-ease) 1.1s both; }

/* Floating material label + scroll cue */
.bwg-hero-aside.e-con {
	position: absolute;
	right: 6%;
	bottom: 132px;
	width: auto;
	max-width: 240px;
	padding: 18px 0 0 18px;
	border-left: 1px solid rgba(255, 255, 255, 0.4);
}

.bwg-hero-tag-label .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	opacity: 0.7;
}

.bwg-hero-tag-label .elementor-heading-title::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bwg-green);
	box-shadow: 0 0 0 0 rgba(160, 195, 116, 0.6);
	animation: bwg-pulse 2.4s ease-out infinite;
}

.bwg-hero-tag {
	margin-top: 6px;
}

/* System index along the bottom edge (BWG Brands widget, "Hero index" layout) */
.bwg-hero-index {
	display: flex;
	border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.bwg-hero-index-item {
	display: flex;
	flex: 1 1 0;
	align-items: baseline;
	gap: 10px;
	min-width: 0;
	padding: 22px 16px 26px 0;
	color: var(--bwg-white);
	font-size: var(--e-global-typography-bwgsmall-font-size, 14px);
	line-height: 1.4;
	opacity: 0.72;
	transition: opacity var(--bwg-fast) var(--bwg-ease);
}

.bwg-hero-index-item:hover,
.bwg-hero-index-item:focus-visible {
	color: var(--bwg-white);
	opacity: 1;
}

.bwg-hero-index-item span {
	color: var(--bwg-green);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
}

@media (max-width: 1024px) {
	.bwg-hero-aside.e-con {
		display: none;
	}

	.bwg-hero-content.e-con {
		padding-bottom: 72px;
	}
}

@media (max-width: 767px) {
	.bwg-hero .bwg-hero-media img {
		object-position: 34% 50%;
	}

	.bwg-hero-content.e-con {
		padding-bottom: 48px;
	}

	.bwg-btn-group .bwg-btn {
		flex: 1 1 100%;
	}

	.elementor .bwg-btn-group .bwg-btn .elementor-button {
		width: 100%;
		justify-content: space-between;
	}

	/* Index scrolls sideways instead of wrapping */
	.bwg-hero-index {
		margin-right: -4vw;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.bwg-hero-index::-webkit-scrollbar {
		display: none;
	}

	.bwg-hero-index-item {
		flex: 0 0 auto;
		padding: 18px 24px 22px 0;
	}
}

/* --------------------------------------------------------------------------
   02 Statement
   -------------------------------------------------------------------------- */

.bwg-statement-title .elementor-heading-title {
	max-width: 22ch;
}

.bwg-statement-foot.e-con {
	padding-top: 40px;
	border-top: 1px solid var(--bwg-rule);
}

.bwg-statement-text p {
	max-width: 540px;
}

/* Word-by-word reveal (words are wrapped by bwg.js) */
.bwg-split-reveal .bwg-word {
	transition: opacity 0.9s var(--bwg-ease), color 0.9s var(--bwg-ease);
}

.bwg-js .bwg-split-reveal:not(.is-inview) .bwg-word {
	opacity: 0.16;
}

/* --------------------------------------------------------------------------
   03 Product systems — numbered brand list with image preview (BWG Brands, "systems")
   -------------------------------------------------------------------------- */

.bwg-product-list {
	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--bwg-rule);
}

.bwg-product-list > li {
	margin: 0;
}

.bwg-product-item {
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 34px 8px 34px 0;
	border-top: 1px solid var(--bwg-rule);
	background: linear-gradient(var(--bwg-green), var(--bwg-green)) 0 0 / 0 1px no-repeat;
	color: var(--bwg-dark);
	transition: background-size 0.8s var(--bwg-ease);
}

.bwg-product-item:hover,
.bwg-product-item:focus-visible {
	color: var(--bwg-dark);
}

.bwg-product-item::after {
	width: 18px;
	height: 18px;
	margin-left: auto;
}

.bwg-product-no {
	flex: 0 0 56px;
	color: var(--bwg-muted);
	font-size: var(--e-global-typography-bwgsmall-font-size, 14px);
	transition: color var(--bwg-fast) var(--bwg-ease);
}

.bwg-product-text {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 6px;
	transition: transform 0.6s var(--bwg-ease);
}

.bwg-product-name {
	font-family: var(--e-global-typography-bwgh3-font-family, Manrope), sans-serif;
	font-size: var(--e-global-typography-bwgh3-font-size, 36px);
	font-weight: var(--e-global-typography-bwgh3-font-weight, 500);
	line-height: var(--e-global-typography-bwgh3-line-height, 1.12);
	letter-spacing: var(--e-global-typography-bwgh3-letter-spacing, -0.8px);
	transition: color var(--bwg-fast) var(--bwg-ease);
}

.bwg-product-detail {
	color: var(--bwg-muted);
	font-size: var(--e-global-typography-bwgsmall-font-size, 14px);
	line-height: 1.5;
}

.bwg-product-cat {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 8px;
	color: var(--bwg-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.bwg-product-cat::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bwg-brown);
}

.bwg-product-item.is-active,
.bwg-product-item:hover,
.bwg-product-item:focus-visible {
	background-size: 100% 1px;
}

.bwg-product-item:hover .bwg-product-text,
.bwg-product-item:focus-visible .bwg-product-text {
	transform: translateX(10px);
}

.bwg-product-item.is-active .bwg-product-no,
.bwg-product-item:hover .bwg-product-no,
.bwg-product-item:hover .bwg-product-name,
.bwg-product-item:focus-visible .bwg-product-name {
	color: var(--bwg-green-deep);
}

.bwg-product-item:hover::after,
.bwg-product-item:focus-visible::after {
	transform: translateX(6px);
	background-color: var(--bwg-green-deep);
}

.bwg-product-image {
	display: block;
	overflow: hidden;
	background: var(--bwg-light);
}

.bwg-product-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Desktop: the list leaves room on the right for a shared preview frame */
@media (min-width: 1025px) {
	.bwg-product-list {
		padding-right: 47%;
	}

	.bwg-product-list .bwg-product-image {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 42%;
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.7s var(--bwg-ease);
	}

	.bwg-product-list .bwg-product-image img {
		transform: scale(1.06);
		transition: transform 1.4s var(--bwg-ease);
	}

	.bwg-product-item.is-active .bwg-product-image,
	html:not(.bwg-js) .bwg-product-list > li:first-child .bwg-product-image {
		z-index: 1;
		opacity: 1;
	}

	.bwg-product-item.is-active .bwg-product-image img {
		transform: scale(1);
	}
}

/* Tablet: thumbnail inline with the row */
@media (min-width: 768px) and (max-width: 1024px) {
	.bwg-product-image {
		flex: 0 0 168px;
		aspect-ratio: 4 / 3;
	}

	.bwg-product-no {
		flex-basis: 36px;
	}
}

/* Mobile: stacked product blocks */
@media (max-width: 767px) {
	.bwg-product-item {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
		padding: 28px 0 32px;
	}

	.bwg-product-image {
		width: 100%;
		aspect-ratio: 4 / 3;
		margin-bottom: 10px;
	}

	.bwg-product-no {
		flex-basis: auto;
	}

	.bwg-product-item::after {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   04 Material showcase (dark)
   -------------------------------------------------------------------------- */

.bwg-showcase-visual.e-con {
	position: relative;
}

.bwg-showcase-image {
	aspect-ratio: 4 / 5;
	overflow: hidden;
}

.bwg-swatches.e-con {
	position: absolute;
	right: -40px;
	bottom: -44px;
	width: auto;
}

.bwg-swatch.e-con {
	width: 104px;
	transition: transform 0.6s var(--bwg-ease);
}

.bwg-swatch:hover {
	transform: translateY(-8px);
}

.bwg-swatch-image {
	aspect-ratio: 1;
	overflow: hidden;
	border: 4px solid var(--bwg-dark);
}

.bwg-swatch-label {
	margin-top: 8px;
	opacity: 0.8;
}

.bwg-material-list {
	margin-top: 20px;
	border-bottom: 1px solid var(--bwg-rule-dark);
}

.bwg-material-row {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 26px 34px 26px 0;
	border-top: 1px solid var(--bwg-rule-dark);
	color: var(--bwg-white);
}

.bwg-material-row:hover,
.bwg-material-row:focus-visible {
	color: var(--bwg-white);
}

.bwg-material-name {
	font-size: var(--e-global-typography-bwgh4-font-size, 26px);
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.2;
	transition: transform 0.6s var(--bwg-ease), color var(--bwg-fast) var(--bwg-ease);
}

.bwg-material-systems {
	color: var(--bwg-stone);
	font-size: var(--e-global-typography-bwgsmall-font-size, 14px);
}

.bwg-material-row::after {
	position: absolute;
	right: 0;
	top: 50%;
	margin-top: -7px;
	color: var(--bwg-stone);
}

.bwg-material-row:hover .bwg-material-name,
.bwg-material-row:focus-visible .bwg-material-name {
	transform: translateX(10px);
}

.bwg-material-row:hover .bwg-material-name,
.bwg-material-row:focus-visible .bwg-material-name {
	color: var(--bwg-green);
}

.bwg-material-row:hover::after,
.bwg-material-row:focus-visible::after {
	transform: translateX(6px);
	background-color: var(--bwg-green);
}

@media (max-width: 1024px) {
	.bwg-showcase-image {
		aspect-ratio: 4 / 3;
	}

	.bwg-swatches.e-con {
		right: 24px;
		bottom: -36px;
	}
}

@media (max-width: 767px) {
	.bwg-swatches.e-con {
		position: relative;
		right: auto;
		bottom: auto;
		margin: -40px 0 0 16px;
	}

	.bwg-swatch.e-con {
		width: 76px;
	}

	.bwg-material-row {
		padding: 22px 30px 22px 0;
	}
}

/* --------------------------------------------------------------------------
   05 Projects — process chain + latest projects (Loop Grid)
   -------------------------------------------------------------------------- */

.bwg-process {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0 24px;
	margin: 0 0 64px;
	padding: 0;
	list-style: none;
}

.bwg-process li {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 22px 24px 0 0;
	border-top: 1px solid var(--bwg-rule);
}

.bwg-process li::before {
	content: "";
	position: absolute;
	top: -4px;
	left: 0;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--bwg-green);
}

.bwg-process li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 22px;
	right: 0;
	width: 14px;
	height: 14px;
	background: var(--bwg-muted);
	-webkit-mask: var(--bwg-arrow) center / contain no-repeat;
	mask: var(--bwg-arrow) center / contain no-repeat;
}

.bwg-process-no {
	color: var(--bwg-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
}

.bwg-process-name {
	color: var(--bwg-dark);
	font-size: var(--e-global-typography-bwgh5-font-size, 20px);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.3;
}

@media (max-width: 1024px) {
	.bwg-process {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px 24px;
		margin-bottom: 48px;
	}

	.bwg-process li:nth-child(2)::after {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   06 Brands — marquee + typographic list (BWG Brands, "marquee" and "grid")
   -------------------------------------------------------------------------- */

.bwg-brands.e-con {
	overflow: hidden;
}

/* Starts on the content edge (aligned with the heading) and runs out to the right edge of the screen. */
.elementor .bwg-marquee.elementor-widget {
	width: calc(100% + (100vw - 100%) / 2);
	max-width: none;
	margin: 0 0 72px;
	overflow: hidden;
	-webkit-mask: linear-gradient(90deg, #000 0, #000 94%, transparent);
	mask: linear-gradient(90deg, #000 0, #000 94%, transparent);
}

.bwg-marquee .bwg-marquee-track {
	display: flex;
	width: max-content;
	margin: 0;
	color: var(--bwg-dark);
	font-family: var(--e-global-typography-bwgmarquee-font-family, Manrope), sans-serif;
	font-size: var(--e-global-typography-bwgmarquee-font-size, 150px);
	font-weight: var(--e-global-typography-bwgmarquee-font-weight, 500);
	line-height: var(--e-global-typography-bwgmarquee-line-height, 1);
	letter-spacing: var(--e-global-typography-bwgmarquee-letter-spacing, -5px);
	white-space: nowrap;
}

.bwg-js .bwg-marquee .bwg-marquee-track {
	animation: bwg-marquee var(--bwg-marquee-duration, 48s) linear infinite;
}

.bwg-marquee:hover .bwg-marquee-track {
	animation-play-state: paused;
}

.bwg-marquee .bwg-marquee-track span {
	display: inline-flex;
	align-items: center;
	gap: 0.34em;
	padding-right: 0.34em;
}

.bwg-marquee .bwg-marquee-track span::after {
	content: "";
	width: 0.11em;
	height: 0.11em;
	border-radius: 50%;
	background: var(--bwg-green);
}

.bwg-marquee .bwg-marquee-track span:nth-child(even) {
	color: transparent;
	-webkit-text-stroke: 1px var(--bwg-dark);
}

.bwg-brand-list {
	display: flex;
	border-top: 1px solid var(--bwg-rule);
}

.bwg-brand-item {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
	padding: 28px 24px 32px;
	border-left: 1px solid var(--bwg-rule);
	color: var(--bwg-dark);
	transition: background-color var(--bwg-fast) var(--bwg-ease);
}

.bwg-brand-item:first-child {
	padding-left: 0;
	border-left: 0;
}

.bwg-brand-item:hover,
.bwg-brand-item:focus-visible {
	background-color: var(--bwg-white);
	color: var(--bwg-dark);
}

.bwg-brand-name {
	font-size: var(--e-global-typography-bwgh5-font-size, 20px);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.3;
	transition: color var(--bwg-fast) var(--bwg-ease);
}

.bwg-brand-item:hover .bwg-brand-name {
	color: var(--bwg-green-deep);
}

.bwg-brand-type {
	color: var(--bwg-muted);
	font-size: var(--e-global-typography-bwgsmall-font-size, 14px);
}

@media (max-width: 1024px) {
	.elementor .bwg-marquee.elementor-widget {
		margin-bottom: 56px;
	}
}

@media (max-width: 767px) {
	.elementor .bwg-marquee.elementor-widget {
		margin-bottom: 40px;
	}

	.bwg-brand-list {
		flex-direction: column;
	}

	.bwg-brand-item {
		flex-direction: row;
		justify-content: space-between;
		align-items: baseline;
		padding: 20px 0;
		border-left: 0;
		border-bottom: 1px solid var(--bwg-rule);
	}
}

/* --------------------------------------------------------------------------
   07 Featured products — Loop Grid of featured products (Product Card)
   -------------------------------------------------------------------------- */

.bwg-featured .elementor-widget-loop-grid {
	width: 100%;
}

/* --------------------------------------------------------------------------
   08 About preview
   -------------------------------------------------------------------------- */

.bwg-about-image {
	aspect-ratio: 4 / 5;
	overflow: hidden;
}

.bwg-audience.e-con {
	padding-top: 24px;
	border-top: 1px solid var(--bwg-rule);
}

@media (max-width: 1024px) {
	.bwg-about-image {
		aspect-ratio: 3 / 2;
	}
}

/* --------------------------------------------------------------------------
   09 Contact CTA
   -------------------------------------------------------------------------- */

.bwg-contact-cta.e-con {
	position: relative;
	isolation: isolate;
}

.bwg-cta-media {
	position: absolute !important;
	inset: -8% 0;
	z-index: -2;
}

.bwg-cta-media img {
	will-change: transform;
}

.bwg-contact-cta.e-con::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(20, 21, 19, 0.82) 0%, rgba(20, 21, 19, 0.55) 60%, rgba(20, 21, 19, 0.4) 100%);
}

.bwg-cta-content.e-con {
	max-width: 880px;
}

.bwg-cta-text {
	opacity: 0.88;
}

.bwg-cta-text p {
	max-width: 520px;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.bwg-footer-top.e-con {
	padding-bottom: 72px;
	border-bottom: 1px solid var(--bwg-rule-dark);
}

.bwg-footer-claim .elementor-heading-title {
	max-width: 16ch;
}

.bwg-footer-main.e-con {
	padding: 64px 0 80px;
}

.elementor .bwg-footer-links .elementor-icon-list-item {
	padding-bottom: 10px;
}

.elementor .bwg-footer-links .elementor-icon-list-text {
	opacity: 0.82;
	transition: color var(--bwg-fast) var(--bwg-ease), opacity var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-footer-links a:hover .elementor-icon-list-text,
.elementor .bwg-footer-links a:focus-visible .elementor-icon-list-text {
	color: var(--bwg-green);
	opacity: 1;
}

.bwg-link-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bwg-link-list li {
	padding-bottom: 10px;
}

.bwg-link-list a {
	color: var(--bwg-white);
	font-size: var(--e-global-typography-bwgsmall-font-size, 14px);
	opacity: 0.82;
	transition: color var(--bwg-fast) var(--bwg-ease), opacity var(--bwg-fast) var(--bwg-ease);
}

.bwg-link-list a:hover,
.bwg-link-list a:focus-visible {
	color: var(--bwg-green);
	opacity: 1;
}

.bwg-footer-contact .elementor-icon-list-item:not(:has(a)) .elementor-icon-list-text {
	opacity: 0.6;
}

.bwg-footer-bottom.e-con {
	padding-top: 28px;
	border-top: 1px solid var(--bwg-rule-dark);
}

@media (max-width: 767px) {
	.bwg-footer-top.e-con {
		padding-bottom: 48px;
	}

	.bwg-footer-main.e-con {
		padding: 48px 0 56px;
	}
}

/* --------------------------------------------------------------------------
   Loop Item cards (Products, Projects) — used inside Elementor Loop Grids
   -------------------------------------------------------------------------- */

.bwg-card.e-con {
	height: 100%;
	color: var(--bwg-dark);
}

.bwg-card-media.e-con {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--bwg-light);
	margin-bottom: 18px;
}

.bwg-card-media--wide.e-con {
	aspect-ratio: 4 / 3;
	margin-bottom: 20px;
}

.bwg-card-media .bwg-card-image {
	position: absolute;
	inset: 0;
}

.bwg-card-media .bwg-card-image img {
	transition: transform 1.2s var(--bwg-ease), opacity 0.6s var(--bwg-ease);
}

.bwg-card-media .bwg-card-image--hover img {
	opacity: 0;
}

.bwg-card:hover .bwg-card-image img,
.bwg-card:focus-visible .bwg-card-image img {
	transform: scale(1.04);
}

.bwg-card:hover .bwg-card-image--hover img,
.bwg-card:focus-visible .bwg-card-image--hover img {
	opacity: 1;
}

/* Category plate on the image, top left */
.bwg-card-badge {
	position: absolute !important;
	top: 14px;
	left: 14px;
	z-index: 1;
	width: auto !important;
}

.bwg-card-badge .elementor-heading-title {
	padding: 6px 10px;
	background: rgba(255, 255, 255, 0.92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.bwg-card-badge .elementor-heading-title:empty {
	display: none;
}

.bwg-card-meta.e-con {
	min-height: 22px; /* same height with or without a colour count, so titles line up */
	margin-bottom: 8px;
}

.bwg-card-meta .bwg-card-count .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* Small swatch dot before "8 colours" */
.bwg-card-meta .bwg-card-count .elementor-heading-title:not(:empty)::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: conic-gradient(var(--bwg-brown) 0 33%, var(--bwg-green) 0 66%, var(--bwg-stone) 0);
}

.bwg-card-title .elementor-heading-title {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	transition: color var(--bwg-fast) var(--bwg-ease);
}

.bwg-product-card .bwg-card-title .elementor-heading-title::after {
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	margin-top: 0.3em;
	background: currentColor;
	-webkit-mask: var(--bwg-arrow) center / contain no-repeat;
	mask: var(--bwg-arrow) center / contain no-repeat;
	transition: transform var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-card:hover .bwg-card-title .elementor-heading-title,
.elementor .bwg-card:focus-visible .bwg-card-title .elementor-heading-title {
	color: var(--bwg-green-deep);
}

.bwg-card:hover .bwg-card-title .elementor-heading-title::after {
	transform: translateX(5px);
}

.elementor .bwg-project-item .bwg-card-title.elementor-widget {
	margin-bottom: 10px;
}

.elementor .bwg-card-subtitle.elementor-widget,
.elementor .bwg-card-meta-line.elementor-widget {
	margin-top: 4px;
	margin-bottom: 10px;
}

.bwg-card-excerpt .elementor-heading-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.elementor .bwg-card-cta.elementor-widget {
	margin-top: auto;
	padding-top: 18px;
}

.bwg-card-cta .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.bwg-card-cta .elementor-heading-title::after {
	content: "";
	width: 14px;
	height: 14px;
	background: currentColor;
	-webkit-mask: var(--bwg-arrow) center / contain no-repeat;
	mask: var(--bwg-arrow) center / contain no-repeat;
	transition: transform var(--bwg-fast) var(--bwg-ease);
}

.bwg-card:hover .bwg-card-cta .elementor-heading-title::after {
	transform: translateX(6px);
}

/* --------------------------------------------------------------------------
   Scroll reveal (bwg.js adds .is-inview). Hidden only when JS runs.
   -------------------------------------------------------------------------- */

.bwg-js .bwg-reveal {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity var(--bwg-slow) var(--bwg-ease), transform var(--bwg-slow) var(--bwg-ease);
}

.bwg-js .bwg-reveal.is-inview {
	opacity: 1;
	transform: none;
}

/* Image reveal: a panel in the section colour lifts off the image.
   (A cover rather than clip-path, so lazy loading and IntersectionObserver still see the image.) */
.bwg-reveal-img {
	position: relative;
	--bwg-reveal-cover: var(--bwg-light);
}

.bwg-on-dark .bwg-reveal-img {
	--bwg-reveal-cover: var(--bwg-dark);
}

.bwg-js .bwg-reveal-img::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--bwg-reveal-cover);
	transform-origin: 50% 0;
	transition: transform 1.3s var(--bwg-ease);
	pointer-events: none;
}

.bwg-js .bwg-reveal-img img {
	transform: scale(1.12);
	transition: transform 1.8s var(--bwg-ease);
}

.bwg-js .bwg-reveal-img.is-inview::after {
	transform: scaleY(0);
}

.bwg-js .bwg-reveal-img.is-inview img {
	transform: scale(1);
}

/* Never hide content while editing */
.elementor-editor-active .bwg-reveal,
.elementor-editor-active .bwg-reveal-img img {
	opacity: 1 !important;
	transform: none !important;
}

.elementor-editor-active .bwg-reveal-img::after {
	display: none !important;
}

/* --------------------------------------------------------------------------
   Keyframes
   -------------------------------------------------------------------------- */

@keyframes bwg-rise {
	from {
		opacity: 0;
		transform: translateY(28px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes bwg-fade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes bwg-hero-zoom {
	from {
		transform: scale(1.08);
	}
	to {
		transform: scale(1);
	}
}

@keyframes bwg-marquee {
	to {
		transform: translateX(-50%);
	}
}

@keyframes bwg-pulse {
	70% {
		box-shadow: 0 0 0 8px rgba(160, 195, 116, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(160, 195, 116, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.bwg-js .bwg-reveal,
	.bwg-js .bwg-reveal-img img,
	.bwg-js .bwg-split-reveal .bwg-word {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.bwg-js .bwg-reveal-img::after {
		display: none;
	}

	.bwg-js .bwg-hero *,
	.bwg-hero-tag-label .elementor-heading-title::before {
		animation: none !important;
	}

	.bwg-js .bwg-marquee .bwg-marquee-track {
		flex-wrap: wrap;
		width: auto;
		animation: none;
	}

	.bwg-marquee .bwg-marquee-track [aria-hidden="true"] {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   Single Product — breadcrumb, gallery, facts, specifications, colours
   -------------------------------------------------------------------------- */

.elementor .bwg-breadcrumb-wrap.elementor-widget {
	margin-bottom: 40px;
}

.bwg-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
	line-height: 1.5;
	color: var(--bwg-muted);
}

.bwg-breadcrumb li + li::before {
	content: "/";
	margin: 0 10px;
	color: var(--bwg-stone);
}

.elementor .bwg-breadcrumb a {
	color: var(--bwg-muted);
	text-decoration: none;
	transition: color var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-breadcrumb a:hover {
	color: var(--bwg-dark);
}

.bwg-breadcrumb [aria-current] {
	color: var(--bwg-dark);
}

/* Gallery: one large image, thumbnails below. Images open in the lightbox. */
.bwg-gallery {
	display: grid;
	gap: 12px;
}

.bwg-gallery-main a,
.bwg-gallery-thumbs a {
	display: block;
	overflow: hidden;
	background: var(--bwg-light);
	cursor: zoom-in;
}

.bwg-gallery-main a {
	aspect-ratio: 4 / 3;
}

.bwg-gallery-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}

.bwg-gallery-thumbs a {
	aspect-ratio: 1;
}

.bwg-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--bwg-ease);
}

.bwg-gallery a:hover img {
	transform: scale(1.04);
}

@media (min-width: 1025px) {
	.bwg-product-summary.e-con {
		position: sticky;
		top: calc(var(--bwg-header-h-compact) + 32px);
	}
}

.bwg-product-subtitle .elementor-heading-title:empty {
	display: none;
}

.bwg-facts {
	margin: 0;
	border-top: 1px solid var(--bwg-rule);
}

.bwg-facts > div {
	display: grid;
	grid-template-columns: minmax(110px, 34%) 1fr;
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--bwg-rule);
}

.bwg-facts dt {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1.9;
	color: var(--bwg-muted);
}

.bwg-facts dd {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--bwg-dark);
}

.elementor .bwg-facts a,
.elementor .bwg-official a,
.elementor .bwg-colours-more a {
	color: var(--bwg-dark);
	text-decoration: underline;
	text-decoration-color: var(--bwg-stone);
	text-underline-offset: 4px;
	transition: text-decoration-color var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-facts a:hover,
.elementor .bwg-official a:hover,
.elementor .bwg-colours-more a:hover {
	text-decoration-color: var(--bwg-green-deep);
}

.bwg-official {
	margin: 16px 0 0;
	font-size: 14px;
}

.bwg-official a::after {
	content: " \2197";
}

/* Long-form description from the product editor */
.bwg-prose .elementor-widget-container > * {
	max-width: 760px;
}

.bwg-prose h2,
.bwg-prose h3 {
	margin: 1.6em 0 0.6em;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--bwg-dark);
}

.bwg-prose ul {
	padding-left: 1.2em;
}

.bwg-prose li + li {
	margin-top: 6px;
}

/* Specifications */
.bwg-spec-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	border-top: 1px solid var(--bwg-dark);
	font-size: 15px;
	line-height: 1.5;
}

.bwg-spec-table th,
.bwg-spec-table td {
	padding: 16px 0;
	border: 0;
	border-bottom: 1px solid var(--bwg-rule);
	background: none !important;
	text-align: left;
	vertical-align: top;
}

.bwg-spec-table th {
	width: 38%;
	padding-right: 24px;
	font-weight: 400;
	color: var(--bwg-muted);
}

.bwg-spec-table td {
	color: var(--bwg-dark);
}

.bwg-spec-empty,
.bwg-colours-empty {
	margin: 0;
	color: var(--bwg-muted);
}

.bwg-downloads {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 12px;
	margin: 40px 0 0;
	padding: 0;
	list-style: none;
}

.elementor .bwg-downloads a {
	display: flex;
	align-items: center;
	gap: 16px;
	height: 100%;
	padding: 18px 20px;
	border: 1px solid var(--bwg-rule);
	color: var(--bwg-dark);
	text-decoration: none;
	transition: border-color var(--bwg-fast) var(--bwg-ease), background-color var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-downloads a:hover {
	border-color: var(--bwg-dark);
	background: var(--bwg-offwhite);
}

.bwg-download-type {
	flex: none;
	padding: 4px 6px;
	background: var(--bwg-green);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: var(--bwg-dark);
}

.bwg-download-label {
	font-size: 14px;
	line-height: 1.4;
}

/* Colour swatches */
.bwg-colours {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 32px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 1024px) {
	.bwg-colours {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (max-width: 767px) {
	.bwg-colours {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px 12px;
	}
}

.elementor .bwg-colours a {
	display: flex;
	flex-direction: column;
	gap: 4px;
	color: var(--bwg-dark);
	text-decoration: none;
	cursor: zoom-in;
}

.bwg-colours img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	margin-bottom: 10px;
	object-fit: cover;
	background: var(--bwg-light);
	transition: transform 0.6s var(--bwg-ease), box-shadow 0.6s var(--bwg-ease);
}

.bwg-colours a:hover img,
.bwg-colours a:focus-visible img {
	transform: translateY(-4px);
	box-shadow: 0 18px 30px -18px rgba(32, 33, 30, 0.45);
}

.bwg-colour-name {
	text-transform: capitalize;
	font-size: 15px;
	line-height: 1.35;
}

.bwg-colour-code {
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--bwg-muted);
}

.bwg-colours-more {
	margin: 48px 0 0;
	font-size: 14px;
	color: var(--bwg-muted);
}

/* --------------------------------------------------------------------------
   Products archive — page hero, filter bar, grid
   -------------------------------------------------------------------------- */

.bwg-page-hero.e-con {
	--padding-bottom: 72px;
}

@media (max-width: 767px) {
	.bwg-page-hero.e-con {
		--padding-bottom: 48px;
	}
}

.elementor .bwg-filter-wrap.elementor-widget {
	position: sticky;
	top: var(--bwg-header-h-compact);
	z-index: 5;
	margin-bottom: 48px;
	background: var(--bwg-white);
}

body.admin-bar .elementor .bwg-filter-wrap.elementor-widget {
	top: calc(var(--bwg-header-h-compact) + var(--wp-admin--admin-bar--height, 32px));
}

.bwg-filter-wrap > .elementor-widget-container {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 32px;
	padding: 16px 0;
	border-bottom: 1px solid var(--bwg-rule);
}

.bwg-filter {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px 16px;
}

.bwg-filter-field {
	display: grid;
	gap: 6px;
	min-width: 180px;
}

.bwg-filter-field > span {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bwg-muted);
}

.bwg-filter select {
	appearance: none;
	width: 100%;
	height: 44px;
	padding: 0 40px 0 14px;
	border: 1px solid var(--bwg-rule);
	border-radius: 0;
	background: var(--bwg-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%2320211E' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 14px center / 12px;
	font-family: inherit;
	font-size: 14px;
	color: var(--bwg-dark);
	cursor: pointer;
	transition: border-color var(--bwg-fast) var(--bwg-ease);
}

.bwg-filter select:hover,
.bwg-filter select:focus {
	border-color: var(--bwg-dark);
}

.bwg-filter select:focus-visible {
	outline: 2px solid var(--bwg-green-deep);
	outline-offset: 2px;
}

.bwg-filter-apply {
	height: 44px;
	padding: 0 22px;
	border: 1px solid var(--bwg-dark);
	border-radius: 0;
	background: var(--bwg-dark);
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--bwg-white);
	cursor: pointer;
}

/* With JS the filters apply on change; the button stays reachable for screen readers. */
.bwg-filter.is-live .bwg-filter-apply {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.elementor .bwg-filter-reset {
	align-self: center;
	font-size: 13px;
	color: var(--bwg-muted);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.bwg-filter-count {
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--bwg-muted);
}

@media (max-width: 1024px) {
	.bwg-filter-wrap {
		position: static;
	}

	.bwg-filter {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		width: 100%;
	}

	.bwg-filter-field {
		min-width: 0;
	}

	.elementor .bwg-filter-reset {
		justify-self: start;
	}
}

@media (max-width: 767px) {
	.bwg-filter {
		gap: 12px;
	}

	.bwg-filter select {
		padding-left: 10px;
		padding-right: 30px;
		background-position: right 10px center;
		font-size: 13px;
	}
}

/* Loop Grid pagination */
.bwg-product-grid .elementor-pagination {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 64px;
	font-size: 14px;
}

.elementor .bwg-product-grid .elementor-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid var(--bwg-rule);
	color: var(--bwg-dark);
	text-decoration: none;
}

.elementor .bwg-product-grid .elementor-pagination .page-numbers.current,
.elementor .bwg-product-grid .elementor-pagination a.page-numbers:hover {
	border-color: var(--bwg-dark);
	background: var(--bwg-dark);
	color: var(--bwg-white);
}

.bwg-product-grid .e-loop-nothing-found-message {
	max-width: 560px;
	padding: 64px 0;
	color: var(--bwg-muted);
}

/* --------------------------------------------------------------------------
   Lightbox (bwg.js) — gallery images and colour swatches, with download
   -------------------------------------------------------------------------- */

body.bwg-lightbox-open {
	overflow: hidden;
}

.bwg-lightbox {
	width: 100vw;
	max-width: none;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(20, 21, 19, 0.96);
	color: var(--bwg-white);
}

.bwg-lightbox::backdrop {
	background: transparent;
}

.bwg-lightbox[open] {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	animation: bwg-fade 0.35s var(--bwg-ease);
}

.bwg-lightbox-figure {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	min-height: 0;
	margin: 0;
	padding: 48px 6% 16px;
}

.bwg-lightbox-figure img {
	display: block;
	max-width: 100%;
	min-height: 0;
	max-height: calc(100dvh - 190px);
	object-fit: contain;
}

.bwg-lightbox figcaption {
	margin: 0;
	padding: 0;
	background: none;
	font-style: normal;
	color: var(--bwg-white);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px 16px;
	font-size: 14px;
}

.bwg-lightbox-title {
	text-transform: capitalize;
}

.bwg-lightbox-code,
.bwg-lightbox-count {
	color: var(--bwg-stone);
}

.bwg-lightbox-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	padding: 16px 4% 32px;
}

.bwg-lightbox-bar a,
.bwg-lightbox-bar button {
	display: inline-flex;
	align-items: center;
	height: 44px;
	padding: 0 20px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 0;
	background: transparent;
	font: inherit;
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--bwg-white);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--bwg-fast) var(--bwg-ease), border-color var(--bwg-fast) var(--bwg-ease), color var(--bwg-fast) var(--bwg-ease);
}

.bwg-lightbox-bar .bwg-lightbox-download {
	border-color: var(--bwg-green);
	background: var(--bwg-green);
	color: var(--bwg-dark);
}

.bwg-lightbox-bar a:hover,
.bwg-lightbox-bar button:hover {
	border-color: var(--bwg-white);
	background: var(--bwg-white);
	color: var(--bwg-dark);
}

.bwg-lightbox-bar :focus-visible {
	outline: 2px solid var(--bwg-green);
	outline-offset: 3px;
}

.bwg-lightbox.is-single .bwg-lightbox-prev,
.bwg-lightbox.is-single .bwg-lightbox-next {
	display: none;
}

/* Products without colour variations (e.g. partition systems): no empty Colours section. */
body:not(.elementor-editor-active) .bwg-product-colours:has(.bwg-colours-empty),
body:not(.elementor-editor-active):has(.bwg-colours-empty) .bwg-view-colours {
	display: none;
}

/* --------------------------------------------------------------------------
   Single Project — feature image, facts, story, gallery
   -------------------------------------------------------------------------- */

.bwg-project-meta .elementor-heading-title:empty {
	display: none;
}

.elementor .bwg-project-feature.elementor-widget {
	margin-bottom: 96px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--bwg-light);
}

@media (max-width: 1024px) {
	.elementor .bwg-project-feature.elementor-widget {
		margin-bottom: 64px;
		aspect-ratio: 4 / 3;
	}
}

.bwg-project-feature .elementor-widget-container,
.bwg-project-feature img {
	width: 100%;
	height: 100%;
}

@media (min-width: 1025px) {
	.bwg-project-aside.e-con {
		position: sticky;
		top: calc(var(--bwg-header-h-compact) + 32px);
	}
}

.bwg-project-gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

/* Every third image runs full width, so the gallery reads like a photo essay. */
.bwg-project-gallery figure {
	margin: 0;
}

.bwg-project-gallery figure:nth-child(3n + 1) {
	grid-column: 1 / -1;
}

.bwg-project-gallery figure:last-child:nth-child(3n + 2) {
	grid-column: 1 / -1;
}

.bwg-project-gallery a {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--bwg-light);
	cursor: zoom-in;
}

.bwg-project-gallery figure:nth-child(3n + 1) a,
.bwg-project-gallery figure:last-child:nth-child(3n + 2) a {
	aspect-ratio: 16 / 9;
}

.bwg-project-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--bwg-ease);
}

.bwg-project-gallery a:hover img {
	transform: scale(1.03);
}

.bwg-project-gallery figcaption {
	margin-top: 10px;
	font-size: 13px;
	color: var(--bwg-muted);
}

@media (max-width: 767px) {
	.bwg-project-gallery {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.bwg-project-gallery a,
	.bwg-project-gallery figure:nth-child(3n + 1) a {
		aspect-ratio: 4 / 3;
	}
}

.bwg-gallery-empty {
	margin: 0;
	color: var(--bwg-muted);
}

/* No gallery or no linked products: leave the section out instead of showing an empty block. */
body:not(.elementor-editor-active) .bwg-project-gallery-section:has(.bwg-gallery-empty),
body:not(.elementor-editor-active) .bwg-project-products:has(.e-loop-nothing-found-message) {
	display: none;
}

/* --------------------------------------------------------------------------
   Projects archive — category tabs + Project Date sorting
   -------------------------------------------------------------------------- */

.bwg-tabs {
	min-width: 0;
	max-width: 100%;
	overflow-x: auto;
	scrollbar-width: none;
}

.bwg-tabs::-webkit-scrollbar {
	display: none;
}

.bwg-tabs ul {
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.elementor .bwg-tabs a {
	display: inline-flex;
	align-items: center;
	height: 44px;
	padding: 0 18px;
	border: 1px solid var(--bwg-rule);
	font-size: 14px;
	white-space: nowrap;
	color: var(--bwg-dark);
	text-decoration: none;
	transition: border-color var(--bwg-fast) var(--bwg-ease), background-color var(--bwg-fast) var(--bwg-ease), color var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-tabs a:hover {
	border-color: var(--bwg-dark);
}

.elementor .bwg-tabs a.is-active {
	border-color: var(--bwg-dark);
	background: var(--bwg-dark);
	color: var(--bwg-white);
}

.bwg-tabs-side {
	display: flex;
	align-items: flex-end;
	gap: 24px;
}

.bwg-tabs-side .bwg-filter-count {
	margin-bottom: 12px;
	white-space: nowrap;
}

.bwg-tabs-side .bwg-filter-field {
	min-width: 170px;
}

@media (max-width: 1024px) {
	.bwg-tabs-wrap > .elementor-widget-container {
		flex-direction: column;
		align-items: stretch;
	}

	.bwg-tabs-side {
		justify-content: space-between;
	}

	.bwg-tabs-side .bwg-filter {
		display: flex;
		width: auto;
	}

	/* Tabs scroll sideways and run to the screen edge. */
	.bwg-tabs {
		margin-right: calc(50% - 50vw);
		padding-right: 4vw;
	}
}

/* --------------------------------------------------------------------------
   About Us — wide image, vision / mission, numbered values and steps
   -------------------------------------------------------------------------- */

.elementor .bwg-wide-image.elementor-widget {
	margin-bottom: 96px;
	overflow: hidden;
	aspect-ratio: 16 / 7;
	background: var(--bwg-light);
}

@media (max-width: 1024px) {
	.elementor .bwg-wide-image.elementor-widget {
		margin-bottom: 64px;
		aspect-ratio: 4 / 3;
	}
}

.bwg-wide-image .elementor-widget-container,
.bwg-wide-image img {
	height: 100%;
}

.bwg-two-col > .elementor-widget {
	flex: 1 1 0;
}

.bwg-mission {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: bwg-mission;
	border-top: 1px solid var(--bwg-rule-dark);
}

.bwg-mission li {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 12px;
	padding: 18px 0;
	border-bottom: 1px solid var(--bwg-rule-dark);
	font-size: 17px;
	line-height: 1.55;
	color: var(--bwg-white);
	counter-increment: bwg-mission;
}

.bwg-mission li::before {
	content: counter(bwg-mission, decimal-leading-zero);
	padding-top: 3px;
	font-size: 12px;
	letter-spacing: 0.1em;
	color: var(--bwg-green);
}

.bwg-numbered {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bwg-numbered li {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding-top: 24px;
	border-top: 1px solid var(--bwg-dark);
}

.bwg-numbered-no {
	font-size: 12px;
	letter-spacing: 0.12em;
	color: var(--bwg-green-deep);
}

.bwg-numbered .bwg-numbered-title {
	margin: 0;
	font-family: var(--e-global-typography-bwgh5-font-family), sans-serif;
	font-size: var(--e-global-typography-bwgh5-font-size, 22px);
	font-weight: var(--e-global-typography-bwgh5-font-weight, 500);
	line-height: 1.25;
	color: var(--bwg-dark);
}

.bwg-numbered-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--bwg-muted);
}

@media (max-width: 1024px) {
	.bwg-numbered {
		grid-template-columns: repeat(2, 1fr);
		gap: 40px 24px;
	}
}

@media (max-width: 767px) {
	.bwg-numbered {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

/* --------------------------------------------------------------------------
   Contact Us — enquiry form and contact card
   -------------------------------------------------------------------------- */

@media (min-width: 1025px) {
	.bwg-contact-card.e-con {
		position: sticky;
		top: calc(var(--bwg-header-h-compact) + 32px);
	}
}

.bwg-contact-item.e-con {
	padding-bottom: 20px;
	border-bottom: 1px solid var(--bwg-rule);
}

.bwg-contact-value .elementor-heading-title {
	overflow-wrap: anywhere;
}

.elementor .bwg-form .elementor-form-fields-wrapper {
	margin-bottom: 0;
}

.elementor .bwg-form .elementor-field-group {
	margin-bottom: 20px;
}

.elementor .bwg-form .elementor-field-label {
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bwg-muted);
}

.elementor .bwg-form .elementor-mark-required .elementor-field-label::after {
	color: var(--bwg-green-deep);
}

.elementor .bwg-form .elementor-field-textual,
.elementor .bwg-form .elementor-select-wrapper select {
	min-height: 52px;
	padding: 12px 16px;
	border: 1px solid var(--bwg-rule);
	border-radius: 0;
	background: var(--bwg-white);
	font-family: inherit;
	font-size: 15px;
	color: var(--bwg-dark);
	box-shadow: none;
	transition: border-color var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-form textarea.elementor-field-textual {
	min-height: 160px;
	resize: vertical;
}

.elementor .bwg-form .elementor-field-textual::placeholder {
	color: var(--bwg-stone);
}

.elementor .bwg-form .elementor-field-textual:hover,
.elementor .bwg-form .elementor-field-textual:focus {
	border-color: var(--bwg-dark);
}

.elementor .bwg-form .elementor-field-textual:focus-visible {
	outline: 2px solid var(--bwg-green-deep);
	outline-offset: 2px;
}

.elementor .bwg-form .elementor-select-wrapper .select-caret-down-wrapper {
	right: 16px;
	color: var(--bwg-dark);
}

.elementor .bwg-form .e-form__buttons .elementor-button {
	min-height: 56px;
	border: 1px solid var(--bwg-dark);
	border-radius: 0;
	background: var(--bwg-dark);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--bwg-white);
	transition: background-color var(--bwg-fast) var(--bwg-ease), border-color var(--bwg-fast) var(--bwg-ease), color var(--bwg-fast) var(--bwg-ease);
}

.elementor .bwg-form .e-form__buttons .elementor-button:hover {
	border-color: var(--bwg-green);
	background: var(--bwg-green);
	color: var(--bwg-dark);
}

.elementor .bwg-form .elementor-message {
	margin-top: 16px;
	font-size: 15px;
}

.elementor .bwg-form .elementor-message-success {
	color: var(--bwg-green-deep);
}
