/**
 * Structural styles for BoraVision Core components.
 * Brand values are consumed from the child-theme design tokens.
 */

body.boravision .bv-button--small {
	min-height: 40px;
	padding: 9px 18px;
}

body.boravision .bv-button--large {
	min-height: 56px;
	padding: 15px 28px;
}

body.boravision .bv-button--link {
	min-height: auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	color: var(--bv-interaction-color);
	background: transparent;
}

body.boravision .bv-button--link:hover {
	color: var(--bv-interaction-hover);
	background: transparent;
}

body.boravision .bv-button__icon,
body.boravision .bv-icon-button__icon {
	display: inline-flex;
	width: 1em;
	height: 1em;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

body.boravision :is(.bv-button__icon, .bv-icon-button__icon) :is(svg, i) {
	display: block;
	width: 100%;
	height: 100%;
	color: inherit;
}

body.boravision :is(.bv-button__icon, .bv-icon-button__icon) svg.bv-line-icon {
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
}

body.boravision :is(.bv-button__icon, .bv-icon-button__icon) svg:not(.bv-line-icon) {
	fill: currentcolor;
}

body.boravision :is(.bv-button__icon, .bv-icon-button__icon) i::before {
	display: block;
}

body.boravision .bv-icon-button {
	position: relative;
	display: inline-flex;
	width: 48px;
	height: 48px;
	padding: 0;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	border: 1px solid transparent;
	border-radius: var(--bv-radius);
	color: var(--bv-interaction-color);
	background: transparent;
	box-shadow: none;
	cursor: pointer;
	transition: color var(--bv-transition-fast), background-color var(--bv-transition-fast), border-color var(--bv-transition-fast);
}

body.boravision .bv-icon-button:hover {
	border-color: var(--bv-interaction-border);
	color: var(--bv-interaction-hover);
	background: var(--bv-interaction-surface);
}

body.boravision .bv-icon-button--small {
	width: 40px;
	height: 40px;
}

body.boravision .bv-icon-button--large {
	width: 56px;
	height: 56px;
}

body.boravision .bv-icon-button--small .bv-icon-button__icon {
	font-size: 16px;
}

body.boravision .bv-icon-button--medium .bv-icon-button__icon {
	font-size: 20px;
}

body.boravision .bv-icon-button--large .bv-icon-button__icon {
	font-size: 24px;
}

body.boravision .bv-icon-button--dark {
	--bv-interaction-color: rgb(255 255 255 / 68%);
	--bv-interaction-hover: var(--bv-color-white);
	--bv-interaction-focus: var(--bv-color-white);
	--bv-interaction-border: rgb(255 255 255 / 24%);
	--bv-interaction-surface: rgb(255 255 255 / 10%);
	color: var(--bv-interaction-color);
}

body.boravision .bv-icon-button--light {
	color: var(--bv-interaction-color);
}

body.boravision .bv-icon-button--dark:hover {
	border-color: var(--bv-interaction-border);
	color: var(--bv-interaction-hover);
	background: var(--bv-interaction-surface);
}

body.boravision .bv-icon-button__badge {
	position: absolute;
	top: 2px;
	right: 2px;
	display: grid;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	place-items: center;
	border: 2px solid var(--bv-color-white);
	border-radius: var(--bv-radius-full);
	color: var(--bv-color-white);
	background: var(--bv-color-black);
	font-family: var(--bv-font-ui);
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
}

body.boravision .bv-icon-button__badge--empty {
	display: none;
}

body.boravision .bv-icon-button:focus-visible {
	outline: 2px solid var(--bv-interaction-focus);
	outline-offset: 3px;
}

body.boravision .bv-icon-button:disabled {
	color: var(--bv-color-text-muted);
	cursor: not-allowed;
	opacity: 0.5;
}

body.boravision .bv-core-preview__group {
	padding-top: var(--bv-space-8);
	border-top: var(--bv-border);
}

body.boravision .bv-core-preview__group h3 {
	margin: 0;
}

body.boravision .bv-core-preview__dark {
	display: inline-flex;
	padding: var(--bv-space-2);
	background: var(--bv-color-black);
}

body.boravision .bv-core-preview__event {
	margin: 0;
	color: var(--bv-color-text-muted);
	font-size: var(--bv-font-size-sm);
}

body.boravision .bv-core-preview__header-row {
	display: flex;
	min-height: 84px;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 16px 24px;
	border: var(--bv-border);
	background: var(--bv-color-white);
}

body.boravision .bv-core-preview__header-row .bv-primary-nav ul {
	flex-wrap: wrap;
}

body.boravision .bv-core-preview__actions {
	display: flex;
	align-items: center;
	gap: 4px;
}

body.boravision .bv-header-panel--preview {
	position: relative;
	z-index: auto;
	top: auto;
	visibility: visible;
	border: var(--bv-border);
	opacity: 1;
	transform: none;
}

body.boravision .bv-search-overlay--preview {
	position: relative;
	z-index: auto;
	inset: auto;
	visibility: visible;
	border: var(--bv-border);
	opacity: 1;
	pointer-events: auto;
}

body.boravision .bv-search-overlay--preview .bv-search-overlay__panel {
	box-shadow: none;
	transform: none;
}

/* Header composition. Layout remains editable in Elementor containers. */
:root {
	--bv-announcement-height: 34px;
	--bv-header-height-normal: 76px;
	--bv-header-height-shrunk: 64px;
	--bv-header-panel-top: 110px;
}

html.bv-layer-open {
	overflow: hidden;
}

body.boravision .bv-header-root {
	position: relative;
	z-index: 1000;
	width: 100%;
	gap: 0;
}

/* The header template wrapper is exactly as tall as the header, so a sticky
   child could never stick. Make the wrapper itself sticky (it is a direct
   child of <body>), offset by the announcement bar so only the bar scrolls
   away and the logo + navigation stay visible. */
body.boravision > header.elementor-location-header {
	position: sticky;
	top: calc(-1 * var(--bv-announcement-height, 34px));
	z-index: 1000;
}

body.admin-bar.boravision > header.elementor-location-header {
	top: calc(var(--wp-admin--admin-bar--height, 32px) - var(--bv-announcement-height, 34px));
}

body.boravision .elementor-widget-bv-announcement-bar,
body.boravision .elementor-widget-bv-shop-panel,
body.boravision .elementor-widget-bv-search-overlay,
body.boravision .elementor-widget-bv-mobile-menu {
	margin: 0;
}

body.boravision .bv-announcement {
	display: flex;
	height: var(--bv-announcement-height);
	min-height: var(--bv-announcement-height);
	align-items: center;
	justify-content: center;
	padding: 0 var(--bv-page-gutter);
	color: var(--bv-color-white);
	background: var(--bv-color-black);
	font-family: var(--bv-font-ui);
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.08em;
	text-align: center;
	text-transform: uppercase;
}

body.boravision .bv-announcement a {
	color: inherit;
	text-decoration: none;
}

body.boravision .bv-site-header {
	position: sticky;
	z-index: 1001;
	top: 0;
	width: 100%;
	min-height: var(--bv-header-height-normal);
	border-bottom: var(--bv-border);
	background: rgb(255 255 255 / 98%);
	transition: min-height var(--bv-transition), box-shadow var(--bv-transition);
	backdrop-filter: blur(10px);
}

body.boravision .bv-site-header.is-shrunk {
	min-height: var(--bv-header-height-shrunk);
	box-shadow: var(--bv-shadow-raised);
}

body.boravision .bv-header-inner {
	display: grid;
	width: min(100% - 64px, 1440px);
	min-height: inherit;
	margin-inline: auto;
	padding: 0;
	grid-template-columns: minmax(205px, 1fr) auto minmax(205px, 1fr);
	grid-template-areas: "brand navigation actions";
	align-items: center;
	gap: 24px;
}

body.boravision .bv-header-inner > .elementor-element {
	min-width: 0;
}

body.boravision .elementor-widget-bv-mobile-menu-trigger {
	display: none;
	grid-area: mobile;
}

body.boravision .elementor-widget-bv-brand-mark {
	grid-area: brand;
	justify-self: start;
}

body.boravision .elementor-widget-bv-navigation {
	grid-area: navigation;
}

body.boravision .bv-header-actions {
	display: flex;
	grid-area: actions;
	align-items: center;
	justify-content: flex-end;
	gap: 2px;
}

body.boravision .bv-header-actions > .elementor-element {
	width: auto;
}

body.boravision .bv-brand-mark {
	display: inline-flex;
	align-items: center;
	color: var(--bv-color-black);
	text-decoration: none;
}

body.boravision .bv-brand-mark__frame {
	position: relative;
	display: block;
	width: 210px;
	height: 40px;
	overflow: hidden;
	transition: width var(--bv-transition), height var(--bv-transition);
}

body.boravision .bv-brand-mark__frame img {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 210px;
	height: 210px;
	max-width: none;
	object-fit: contain;
	transform: translate(-50%, -50%);
	transition: width var(--bv-transition), height var(--bv-transition);
}

body.boravision .bv-site-header.is-shrunk .bv-brand-mark__frame {
	width: 188px;
	height: 34px;
}

body.boravision .bv-site-header.is-shrunk .bv-brand-mark__frame img {
	width: 188px;
	height: 188px;
}

body.boravision .bv-brand-mark--black img {
	filter: grayscale(1) brightness(0);
}

body.boravision .bv-brand-mark--white img {
	filter: grayscale(1) brightness(0) invert(1);
}

body.boravision .bv-brand-mark--text {
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.14em;
}

body.boravision .bv-primary-nav ul {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 30px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.boravision .bv-primary-nav__link {
	position: relative;
	display: block;
	min-height: auto;
	padding: 11px 0;
	border: 0;
	border-radius: 0;
	color: var(--bv-interaction-color);
	background: transparent;
	font-family: var(--bv-font-ui);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

body.boravision .bv-primary-nav__link::after {
	position: absolute;
	right: 0;
	bottom: 5px;
	left: 0;
	height: 1px;
	background: currentcolor;
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--bv-transition-fast);
}

body.boravision .bv-primary-nav__link:is(:hover, :focus-visible, .is-current, [aria-expanded="true"]) {
	color: var(--bv-interaction-hover);
	background: transparent;
}

body.boravision .bv-primary-nav__link:is(:hover, .is-current, [aria-expanded="true"])::after {
	transform: scaleX(1);
	transform-origin: left;
}

body.boravision .bv-account-trigger,
body.boravision .bv-mobile-menu-trigger,
body.boravision .bv-overlay-close,
body.boravision .bv-mobile-menu__top button {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 12px;
	border: 1px solid transparent;
	border-radius: var(--bv-radius);
	color: var(--bv-interaction-color);
	background: transparent;
	font-family: var(--bv-font-ui);
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
}

body.boravision .bv-account-trigger:hover,
body.boravision .bv-mobile-menu-trigger:hover,
body.boravision .bv-overlay-close:hover,
body.boravision .bv-mobile-menu__top button:hover {
	border-color: var(--bv-interaction-border);
	color: var(--bv-interaction-hover);
	background: var(--bv-interaction-surface);
}

body.boravision :is(.bv-account-trigger__icon, .bv-mobile-menu-trigger, .bv-overlay-close, .bv-mobile-menu__top button) svg {
	display: block;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
}

body.boravision .bv-header-panel {
	position: fixed;
	z-index: 999;
	top: var(--bv-header-panel-top);
	right: 0;
	left: 0;
	visibility: hidden;
	border-bottom: var(--bv-border);
	background: var(--bv-color-white);
	box-shadow: 0 18px 48px rgb(9 10 11 / 10%);
	opacity: 0;
	transform: translateY(-12px);
	transition: visibility var(--bv-transition), opacity var(--bv-transition), transform var(--bv-transition);
}

body.boravision .bv-header-panel.is-open {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
}

body.boravision .bv-shop-panel__inner {
	display: grid;
	width: min(100% - 64px, var(--bv-container));
	min-height: 278px;
	margin-inline: auto;
	padding: 40px 0 44px;
	grid-template-columns: 1.05fr 2fr;
	gap: 72px;
}

body.boravision .bv-header-panel__kicker {
	margin: 0 0 12px;
	color: var(--bv-color-text-muted);
	font-family: var(--bv-font-ui);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
}

body.boravision .bv-shop-panel__intro h2 {
	margin: 0 0 14px;
	font-size: 40px;
	line-height: 1;
}

body.boravision .bv-shop-panel__intro > p:not(.bv-header-panel__kicker) {
	max-width: 380px;
	margin: 0 0 24px;
	color: var(--bv-color-text-muted);
	font-size: 14px;
}

body.boravision .bv-header-panel__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

body.boravision .bv-header-panel__link svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentcolor;
}

body.boravision .bv-shop-panel__countries {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-content: start;
	gap: 0 34px;
}

body.boravision .bv-shop-panel__countries a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	border-bottom: var(--bv-border);
	font-size: 13px;
	text-decoration: none;
}

body.boravision .bv-shop-panel__countries span,
body.boravision .bv-shop-panel__empty {
	color: var(--bv-color-text-muted);
	font-size: 11px;
}

body.boravision .bv-search-overlay,
body.boravision .bv-mobile-menu {
	position: fixed;
	z-index: 1100;
	inset: 0;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: visibility var(--bv-transition), opacity var(--bv-transition);
}

body.boravision .bv-search-overlay.is-open,
body.boravision .bv-mobile-menu.is-open {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

body.boravision .bv-overlay-backdrop {
	position: absolute;
	z-index: 0;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--bv-color-overlay);
}

body.boravision .bv-search-overlay__panel {
	position: relative;
	z-index: 1;
	background: var(--bv-color-white);
	box-shadow: 0 18px 48px rgb(9 10 11 / 16%);
	transform: translateY(-18px);
	transition: transform var(--bv-transition);
}

body.boravision .bv-search-overlay.is-open .bv-search-overlay__panel {
	transform: translateY(0);
}

body.boravision .bv-search-overlay__inner {
	width: min(100% - 64px, 1040px);
	min-height: 300px;
	margin-inline: auto;
	padding: 24px 0 40px;
}

body.boravision .bv-search-overlay__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

body.boravision .bv-search-overlay__top p {
	margin: 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.boravision .bv-search-overlay__field {
	display: flex;
	align-items: center;
	border-bottom: 2px solid var(--bv-color-black);
}

body.boravision .bv-search-overlay__field > svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentcolor;
}

body.boravision .bv-search-overlay__field input[type="search"] {
	min-height: 72px;
	padding: 12px 18px;
	border: 0;
	border-radius: 0;
	font-family: var(--bv-font-heading);
	font-size: 34px;
	font-weight: 600;
	box-shadow: none;
}

body.boravision .bv-search-overlay__hint {
	margin: 16px 0 0;
	color: var(--bv-color-text-muted);
	font-size: 12px;
}

body.boravision .bv-search-results {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

body.boravision .bv-search-result {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 12px;
	padding: 16px 0;
	border-top: var(--bv-border);
	text-decoration: none;
}

body.boravision .bv-search-result img {
	width: 50px;
	height: 50px;
	border-radius: var(--bv-radius-sm);
	object-fit: cover;
}

body.boravision .bv-search-result small,
body.boravision .bv-search-result strong {
	display: block;
}

body.boravision .bv-search-result small {
	margin-bottom: 3px;
	color: var(--bv-color-text-muted);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
}

body.boravision .bv-search-result strong {
	font-size: 13px;
}

body.boravision .bv-search-results__empty {
	grid-column: 1 / -1;
	margin: 12px 0 0;
	color: var(--bv-color-text-muted);
}

body.boravision .bv-mobile-menu {
	display: none;
	background: var(--bv-color-white);
}

body.boravision .bv-mobile-menu__top {
	display: flex;
	height: 68px;
	align-items: center;
	justify-content: space-between;
	padding: 0 16px;
	border-bottom: var(--bv-border);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.16em;
}

body.boravision .bv-mobile-menu__top button {
	width: 44px;
	padding: 0;
}

body.boravision .bv-mobile-menu__body {
	height: calc(100dvh - 68px);
	padding: 28px 20px 40px;
	overflow-y: auto;
}

body.boravision .bv-mobile-menu nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.boravision .bv-mobile-menu nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 72px;
	border-bottom: var(--bv-border);
	font-family: var(--bv-font-heading);
	font-size: 31px;
	font-weight: 600;
	line-height: 1.1;
	text-decoration: none;
}

body.boravision .bv-mobile-menu nav a svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentcolor;
}

body.boravision .bv-mobile-menu__utilities {
	display: grid;
	margin-top: 32px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

body.boravision .bv-mobile-menu__utilities a {
	display: flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 8px;
	border: var(--bv-border);
	border-radius: var(--bv-radius);
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}

body.boravision .bv-mobile-menu__logout {
	display: inline-block;
	margin-top: 24px;
	font-size: 12px;
}

@media (max-width: 1279px) and (min-width: 1121px) {
	body.boravision .bv-account-trigger__label {
		display: none;
	}
}

@media (max-width: 1120px) {
	:root {
		--bv-header-height-normal: 64px;
		--bv-header-height-shrunk: 64px;
	}

	body.boravision .bv-site-header,
	body.boravision .bv-site-header.is-shrunk {
		min-height: 64px;
		box-shadow: none;
	}

	body.boravision .bv-header-inner {
		width: 100%;
		padding: 0 12px;
		grid-template-columns: 88px minmax(0, 1fr) 88px;
		grid-template-areas: "mobile brand actions";
		gap: 0;
	}

	body.boravision .elementor-widget-bv-mobile-menu-trigger {
		display: block;
		justify-self: start;
	}

	body.boravision .elementor-widget-bv-brand-mark {
		justify-self: center;
	}

	body.boravision .elementor-widget-bv-navigation,
	body.boravision .elementor-widget-bv-account-trigger {
		display: none;
	}

	body.boravision .bv-header-actions {
		gap: 0;
	}

	body.boravision .bv-header-actions .bv-icon-button {
		width: 44px;
		height: 44px;
	}

	body.boravision .bv-brand-mark__frame,
	body.boravision .bv-site-header.is-shrunk .bv-brand-mark__frame {
		width: 156px;
		height: 31px;
	}

	body.boravision .bv-brand-mark__frame img,
	body.boravision .bv-site-header.is-shrunk .bv-brand-mark__frame img {
		width: 156px;
		height: 156px;
	}

	body.boravision .elementor-widget-bv-shop-panel {
		display: none;
	}

	body.boravision .bv-mobile-menu {
		display: block;
	}

	body.boravision .bv-search-overlay__inner {
		width: calc(100% - 32px);
		min-height: 260px;
		padding: 16px 0 28px;
	}

	body.boravision .bv-search-overlay__field input[type="search"] {
		min-height: 62px;
		padding: 10px 12px;
		font-size: 27px;
	}

	body.boravision .bv-search-results {
		grid-template-columns: 1fr;
		gap: 0;
	}
}

@media (max-width: 430px) {
	body.boravision .bv-brand-mark__frame,
	body.boravision .bv-site-header.is-shrunk .bv-brand-mark__frame {
		width: 138px;
	}

	body.boravision .bv-brand-mark__frame img,
	body.boravision .bv-site-header.is-shrunk .bv-brand-mark__frame img {
		width: 138px;
		height: 138px;
	}

	body.boravision .bv-announcement {
		padding-inline: 12px;
		font-size: 9px;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.boravision .bv-site-header,
	body.boravision .bv-header-panel,
	body.boravision .bv-search-overlay,
	body.boravision .bv-search-overlay__panel,
	body.boravision .bv-mobile-menu,
	body.boravision .bv-brand-mark__frame,
	body.boravision .bv-brand-mark__frame img {
		transition: none;
	}
}

/* ==========================================================================
   Hero Slider (bv-hero-slider widget)
   Full-bleed editable slides: Ken Burns image, flag-colour silk wipe between
   slides, staggered copy and progress tabs.
   ========================================================================== */
.bv-hero-slider {
	--bv-hero-gutter: max(clamp(16px, 3vw, 48px), calc((100vw - 1280px) / 2 + 48px));
	position: relative;
	height: min(82vh, 760px);
	min-height: 520px;
	overflow: hidden;
	isolation: isolate;
	background: #0d0e10;
	color: #ffffff;
}

.bv-hero-slide {
	position: absolute;
	inset: 0;
	visibility: hidden;
}

.bv-hero-slide.is-active {
	visibility: visible;
}

.bv-hero-slide__media,
.bv-hero-slide__media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
	object-position: var(--bv-hero-focus, 50% 40%);
}

.bv-hero-slide.is-active .bv-hero-slide__media img {
	animation: bv-hero-kenburns 9s ease-out both;
}

@keyframes bv-hero-kenburns {
	from { transform: scale(1.14) translate(1.5%, -1%); }
	to { transform: scale(1.02) translate(0, 0); }
}

.bv-hero-slide::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgb(0 0 0 / 62%) 0%, rgb(0 0 0 / 28%) 42%, rgb(0 0 0 / 0%) 70%);
	content: "";
}

.bv-hero-slide[data-side="right"]::after {
	background: linear-gradient(270deg, rgb(0 0 0 / 62%) 0%, rgb(0 0 0 / 28%) 42%, rgb(0 0 0 / 0%) 70%);
}

.bv-hero-slide__copy {
	position: absolute;
	z-index: 2;
	bottom: clamp(96px, 14vh, 140px);
	left: var(--bv-hero-gutter);
	width: min(560px, calc(100% - 32px));
}

.bv-hero-slide[data-side="right"] .bv-hero-slide__copy {
	right: var(--bv-hero-gutter);
	left: auto;
}

.bv-hero-slide__copy > * {
	opacity: 0;
	transform: translateY(26px);
}

.bv-hero-slide.is-active .bv-hero-slide__copy > * {
	animation: bv-hero-rise 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.bv-hero-slide.is-active .bv-hero-slide__copy > :nth-child(1) { animation-delay: 0.55s; }
.bv-hero-slide.is-active .bv-hero-slide__copy > :nth-child(2) { animation-delay: 0.7s; }
.bv-hero-slide.is-active .bv-hero-slide__copy > :nth-child(3) { animation-delay: 0.85s; }
.bv-hero-slide.is-active .bv-hero-slide__copy > :nth-child(4) { animation-delay: 1s; }

@keyframes bv-hero-rise {
	to { opacity: 1; transform: none; }
}

.bv-hero-slide__kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	color: #ffffff;
	font-family: var(--bv-font-ui);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.bv-hero-slide__kicker::before {
	width: 34px;
	height: 4px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--bv-hero-c1) 0 33.3%, var(--bv-hero-c2) 33.3% 66.6%, var(--bv-hero-c3) 66.6%);
	box-shadow: 0 0 0 1px rgb(255 255 255 / 25%);
	content: "";
}

.bv-hero-slide__kicker.is-premium {
	color: var(--bv-color-gold);
}

.bv-hero-slider .bv-hero-slide__title {
	margin: 0;
	color: #ffffff !important;
	font-family: var(--bv-font-heading);
	font-size: clamp(48px, 7vw, 104px);
	font-weight: 800;
	line-height: 0.88;
	letter-spacing: -0.005em;
	text-transform: uppercase;
	text-wrap: balance;
}

.bv-hero-slide__text {
	max-width: 44ch;
	margin: 18px 0 0;
	color: rgb(255 255 255 / 86%);
	font-size: 18px;
	line-height: 1.5;
}

.bv-hero-slide__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 54px;
	margin-top: 26px;
	padding: 0 28px;
	border-radius: 27px;
	color: #111111 !important;
	background: #ffffff;
	font-family: var(--bv-font-ui);
	font-size: 17px;
	font-weight: 600;
	text-decoration: none;
	transition: transform 200ms ease;
}

.bv-hero-slide__cta:hover {
	transform: translateY(-2px);
}

.bv-hero-slide__cta svg {
	width: 18px;
	height: 18px;
}

/* Silk wipe: the next slide's colours sweep across as diagonal bands. */
.bv-hero-slider__wipe {
	position: absolute;
	top: -10%;
	bottom: -10%;
	left: 0;
	z-index: 5;
	width: 160%;
	pointer-events: none;
	background: repeating-linear-gradient(90deg, var(--bv-w1, #fff) 0 70px, var(--bv-w2, #111) 70px 140px, var(--bv-w3, #fff) 140px 210px);
	filter: blur(2px) saturate(1.1);
	transform: translateX(-110%) skewX(-18deg);
	will-change: transform;
}

.bv-hero-slider__wipe::after {
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(90deg, rgb(255 255 255 / 0%) 0 40px, rgb(255 255 255 / 30%) 70px, rgb(255 255 255 / 0%) 100px);
	content: "";
}

.bv-hero-slider__wipe.is-running {
	animation: bv-hero-wipe 1.15s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

@keyframes bv-hero-wipe {
	from { transform: translateX(-110%) skewX(-18deg); }
	to { transform: translateX(80%) skewX(-18deg); }
}

.bv-hero-slider__tabs {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 6;
	display: grid;
	grid-template-columns: repeat(var(--bv-hero-count, 3), minmax(0, 1fr));
	gap: 16px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 clamp(16px, 3vw, 48px) 26px;
}

.bv-hero-slider__tab {
	display: grid;
	gap: 8px;
	padding: 0;
	border: 0;
	color: rgb(255 255 255 / 60%);
	background: none;
	font-family: var(--bv-font-ui);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-align: left;
	text-transform: uppercase;
	cursor: pointer;
}

.bv-hero-slider__tab:hover,
.bv-hero-slider__tab.is-active {
	color: #ffffff;
	background: none;
}

.bv-hero-slider__bar {
	display: block;
	height: 3px;
	overflow: hidden;
	border-radius: 2px;
	background: rgb(255 255 255 / 28%);
}

.bv-hero-slider__bar i {
	display: block;
	width: 0;
	height: 100%;
	background: #ffffff;
}

.bv-hero-slider__tab.is-active .bv-hero-slider__bar i {
	animation: bv-hero-fill var(--bv-hero-duration, 7s) linear forwards;
}

.bv-hero-slider.is-paused .bv-hero-slider__tab.is-active .bv-hero-slider__bar i {
	animation-play-state: paused;
}

.bv-hero-slider__tab.is-done .bv-hero-slider__bar i {
	width: 100%;
}

@keyframes bv-hero-fill {
	to { width: 100%; }
}

@media (max-width: 640px) {
	.bv-hero-slider {
		height: 78svh;
		min-height: 540px;
	}

	.bv-hero-slide::after,
	.bv-hero-slide[data-side="right"]::after {
		background: linear-gradient(0deg, rgb(0 0 0 / 76%) 0%, rgb(0 0 0 / 34%) 46%, rgb(0 0 0 / 0%) 72%);
	}

	.bv-hero-slide__copy,
	.bv-hero-slide[data-side="right"] .bv-hero-slide__copy {
		right: 16px;
		bottom: 64px;
		left: 16px;
		width: auto;
	}

	.bv-hero-slide__title {
		font-size: clamp(40px, 12vw, 56px);
	}

	.bv-hero-slide__text {
		margin-top: 12px;
		font-size: 16px;
	}

	.bv-hero-slide__cta {
		height: 50px;
		margin-top: 20px;
		padding: 0 24px;
		font-size: 16px;
	}

	.bv-hero-slider__tabs {
		gap: 8px;
		padding: 0 16px 22px;
	}

	.bv-hero-slider__label {
		display: none;
	}
}

/* ==========================================================================
   Nations Wall (bv-nations-wall widget)
   Up to six country panels filled with moving flag-colour silk. On desktop
   the hovered panel opens; on phones the panels are open cards in a swipe row.
   ========================================================================== */
.bv-nations {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(48px, 6vw, 80px) clamp(16px, 3vw, 48px) 40px;
}

.bv-nations__head {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 16px 24px;
	margin-bottom: 24px;
}

.bv-nations__kicker {
	margin: 0 0 8px;
	color: #707072;
	font-family: var(--bv-font-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bv-nations__heading {
	margin: 0;
	color: #111111;
	font-family: var(--bv-font-heading);
	font-size: clamp(32px, 3.4vw, 48px);
	font-weight: 700;
	line-height: 0.95;
	text-transform: uppercase;
}

.bv-nations__text {
	margin: 8px 0 0;
	color: #39393b;
}

.bv-nations__all {
	display: inline-flex;
	align-items: center;
	height: 46px;
	padding: 0 22px;
	border: 1.5px solid #111111;
	border-radius: 23px;
	color: #111111;
	font-weight: 600;
	text-decoration: none;
}

.bv-nations__all:hover {
	color: #ffffff;
	background: #111111;
}

.bv-nations__wall {
	display: flex;
	gap: 10px;
	height: clamp(440px, 46vw, 580px);
}

.bv-nation {
	position: relative;
	flex: 1 1 0;
	min-width: 0;
	overflow: hidden;
	isolation: isolate;
	border-radius: 16px;
	color: #111111;
	background: var(--bv-n1);
	text-decoration: none;
	transition: flex-grow 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bv-nation.is-open {
	flex-grow: 4.2;
}

.bv-nation__silk,
.bv-nation__shine {
	position: absolute;
	inset: -50%;
	z-index: -1;
	will-change: transform;
}

.bv-nation__silk {
	background: repeating-linear-gradient(115deg, var(--bv-n1) 0 60px, var(--bv-n2) 60px 120px, var(--bv-n3) 120px 180px);
	filter: blur(8px) saturate(1.1);
	animation: bv-nation-drift 14s linear infinite;
	animation-play-state: paused;
}

.bv-nation.is-open .bv-nation__silk {
	animation-play-state: running;
}

.bv-nation__shine {
	background: repeating-linear-gradient(115deg, rgb(255 255 255 / 0%) 0 50px, rgb(255 255 255 / 32%) 80px, rgb(255 255 255 / 0%) 110px);
	opacity: 0;
	animation: bv-nation-shine 8s linear infinite;
	transition: opacity 400ms ease;
}

.bv-nation.is-open .bv-nation__shine {
	opacity: 1;
}

/* One pattern period along x (180px / cos 25deg) for a seamless loop. */
@keyframes bv-nation-drift {
	to { transform: translate3d(198.6px, 0, 0); }
}

@keyframes bv-nation-shine {
	to { transform: translate3d(-121.4px, 0, 0); }
}

.bv-nation__label {
	position: absolute;
	bottom: 22px;
	left: 50%;
	display: flex;
	align-items: center;
	gap: 10px;
	width: max-content;
	padding: 8px 14px;
	border-radius: 999px;
	color: #111111;
	background: #ffffff;
	box-shadow: 0 6px 20px rgb(0 0 0 / 15%);
	font-family: var(--bv-font-heading);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	transform: translateX(-50%) rotate(-90deg);
	translate: 0 -120px;
	transition: opacity 300ms ease;
}

.bv-nation__label .bv-country-flag,
.bv-nation__name .bv-country-flag {
	width: 22px;
	height: 16px;
	flex: none;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgb(0 0 0 / 8%);
}

.bv-nation__label .bv-country-flag {
	transform: rotate(90deg);
}

.bv-nation.is-open .bv-nation__label {
	opacity: 0;
}

.bv-nation__product {
	position: absolute;
	top: 42%;
	left: 50%;
	width: min(440px, 78%);
	padding: 4%;
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 24px 50px rgb(0 0 0 / 28%);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -50%) rotate(-6deg) scale(0.6);
	transition: transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 400ms ease;
}

/* The product photo stays exactly as shot (no blend): it sits on a white
   plate floating over the colours. */
.bv-nation__product img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	margin: 0;
	border-radius: 0;
	object-fit: contain;
}

.bv-nation.is-open .bv-nation__product {
	opacity: 1;
	transform: translate(-50%, -50%) rotate(-3deg) scale(1);
	transition-delay: 120ms;
}

.bv-nation__info {
	position: absolute;
	right: 16px;
	bottom: 16px;
	left: 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px 14px 18px;
	border-radius: 12px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgb(0 0 0 / 16%);
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 350ms ease, transform 450ms ease;
}

.bv-nation.is-open .bv-nation__info {
	opacity: 1;
	transform: none;
	transition-delay: 200ms;
}

.bv-nation__name {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.bv-nation__name strong {
	display: block;
	color: #111111;
	font-family: var(--bv-font-heading);
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}

.bv-nation__price {
	display: block;
	margin-top: 4px;
	color: #707072;
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
}

.bv-nation__price * {
	display: inline;
	color: inherit;
}

.bv-nation__go {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 18px;
	border-radius: 22px;
	color: #ffffff;
	background: #111111;
	font-size: 15px;
	font-weight: 600;
}

.bv-nation__go svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 900px) {
	.bv-nations__wall {
		height: auto;
		overflow-x: auto;
		padding-bottom: 8px;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.bv-nations__wall::-webkit-scrollbar {
		display: none;
	}

	.bv-nation,
	.bv-nation.is-open {
		flex: 0 0 78%;
		height: 440px;
		scroll-snap-align: start;
	}

	.bv-nation__silk,
	.bv-nation.is-open .bv-nation__silk {
		animation-play-state: running;
	}

	.bv-nation__shine {
		opacity: 1;
	}

	.bv-nation__label {
		display: none;
	}

	.bv-nation__product,
	.bv-nation.is-open .bv-nation__product {
		top: 40%;
		width: 80%;
		opacity: 1;
		transform: translate(-50%, -50%) rotate(-3deg) scale(1);
	}

	.bv-nation__info {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bv-hero-slide.is-active .bv-hero-slide__media img,
	.bv-hero-slide.is-active .bv-hero-slide__copy > *,
	.bv-hero-slider__wipe.is-running {
		animation-duration: 1ms !important;
		animation-delay: 0s !important;
	}

	.bv-nation__silk,
	.bv-nation__shine {
		animation: none !important;
	}
}

/* ==========================================================================
   Nation Switcher (bv-nation-switcher widget)
   "One frame. Every nation.": one aligned side view per country; picking a
   flag reveals the next temple behind a flag-colour wipe.
   ========================================================================== */
.bv-switcher {
	max-width: 1280px;
	margin: 0 auto;
	padding: clamp(40px, 5vw, 72px) clamp(16px, 3vw, 48px);
}

.bv-switcher__head {
	margin-bottom: 20px;
}

.bv-switcher__kicker {
	margin: 0 0 8px;
	color: #707072;
	font-family: var(--bv-font-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bv-switcher__heading {
	margin: 0;
	color: #111111;
	font-family: var(--bv-font-heading);
	font-size: clamp(32px, 3.4vw, 48px);
	font-weight: 700;
	line-height: 0.95;
	text-transform: uppercase;
}

.bv-switcher__text {
	max-width: 52ch;
	margin: 8px 0 0;
	color: #39393b;
}

.bv-switcher__stage {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: clamp(16px, 3vw, 48px);
	align-items: center;
	padding: clamp(16px, 3vw, 40px);
	overflow: hidden;
	isolation: isolate;
	border-radius: 16px;
	background: #f5f5f5;
}

.bv-switcher__glow {
	position: absolute;
	inset: -30% 40% -30% -20%;
	z-index: -1;
	background: radial-gradient(closest-side, var(--bv-s1, #ddd), transparent), radial-gradient(closest-side at 70% 60%, var(--bv-s2, #ddd), transparent);
	filter: blur(60px);
	opacity: 0.5;
}

.bv-switcher__frame {
	position: relative;
	aspect-ratio: 1254 / 840;
	overflow: hidden;
	border-radius: 12px;
	background: #ffffff;
	box-shadow: 0 20px 50px rgb(0 0 0 / 10%);
}

.bv-switcher__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	border-radius: 0;
	object-fit: contain;
}

.bv-switcher__img--next {
	clip-path: polygon(0 0, 0 0, -20% 100%, -20% 100%);
}

.bv-switcher__img--next.is-revealing {
	animation: bv-switcher-reveal 0.9s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

@keyframes bv-switcher-reveal {
	from { clip-path: polygon(0 0, 0 0, -20% 100%, -20% 100%); }
	to { clip-path: polygon(0 0, 120% 0, 100% 100%, -20% 100%); }
}

.bv-switcher__wipe {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	width: 22%;
	pointer-events: none;
	background: repeating-linear-gradient(90deg, var(--bv-w1, #fff) 0 18px, var(--bv-w2, #111) 18px 36px, var(--bv-w3, #fff) 36px 54px);
	filter: blur(1px);
	opacity: 0.95;
	transform: translateX(-130%) skewX(-12deg);
}

.bv-switcher__wipe.is-running {
	animation: bv-switcher-wipe 0.9s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

@keyframes bv-switcher-wipe {
	from { transform: translateX(-130%) skewX(-12deg); }
	to { transform: translateX(560%) skewX(-12deg); }
}

.bv-switcher__copy {
	display: grid;
	gap: 14px;
	align-content: center;
	min-width: 0;
}

.bv-switcher__copy > * {
	margin: 0;
	transition: opacity 250ms ease, transform 350ms ease;
}

.bv-switcher__copy.is-out > * {
	opacity: 0;
	transform: translateY(8px);
}

.bv-switcher__country {
	display: flex;
	align-items: center;
	gap: 12px;
}

.bv-switcher__flag {
	width: 34px;
	height: 25px;
	margin: 0;
	border-radius: 3px;
	box-shadow: 0 0 0 1px rgb(0 0 0 / 8%);
}

.bv-switcher__name {
	color: #111111;
	font-family: var(--bv-font-heading);
	font-size: clamp(34px, 4vw, 56px);
	font-weight: 800;
	line-height: 0.9;
	text-transform: uppercase;
}

.bv-switcher__bar {
	display: block;
	width: 72px;
	height: 5px;
	border-radius: 3px;
	box-shadow: inset 0 0 0 1px rgb(0 0 0 / 8%);
}

.bv-switcher__line {
	color: #111111;
	font-family: var(--bv-font-heading);
	font-size: clamp(22px, 2.2vw, 30px);
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.bv-switcher__line:empty,
.bv-switcher__trans:empty {
	display: none;
}

.bv-switcher__trans {
	margin-top: -6px !important;
	color: #707072;
}

.bv-switcher__cta {
	display: inline-flex;
	align-items: center;
	justify-self: start;
	height: 52px;
	padding: 0 26px;
	border-radius: 26px;
	color: #ffffff !important;
	background: #111111;
	font-weight: 600;
	text-decoration: none;
}

.bv-switcher__rail {
	display: flex;
	gap: 8px;
	margin-top: 16px;
	padding: 4px 2px 10px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
}

.bv-switcher .bv-switcher__pick {
	display: grid;
	flex: none;
	justify-items: center;
	gap: 6px;
	width: 78px;
	padding: 10px 4px 8px;
	border: 0;
	border-radius: 12px;
	color: #707072 !important;
	background: #ffffff !important;
	box-shadow: inset 0 0 0 1px #e5e5e5;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	scroll-snap-align: start;
}

.bv-switcher__pick img {
	width: 36px;
	height: 27px;
	margin: 0;
	border-radius: 3px;
	box-shadow: 0 0 0 1px rgb(0 0 0 / 8%);
}

.bv-switcher .bv-switcher__pick:hover,
.bv-switcher .bv-switcher__pick[aria-pressed="true"] {
	color: #111111 !important;
	background: #ffffff !important;
}

.bv-switcher__pick[aria-pressed="true"] {
	box-shadow: inset 0 0 0 2px #111111;
}

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

	.bv-switcher__glow {
		inset: -20% -20% 30% -20%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bv-switcher__img--next.is-revealing,
	.bv-switcher__wipe.is-running {
		animation-duration: 1ms;
	}
}

/* ==========================================================================
   Media Hub (bv-media-hub widget): filterable wall of films, YouTube,
   customer videos, legends and photos, with a lightbox.
   ========================================================================== */
.bv-hub {
	width: min(calc(100% - (2 * var(--bv-page-gutter))), 1480px);
	/* Padding, not margin: Elementor's widget wrapper does not count child
	   margins, which let the wall run 80px into the footer. */
	margin: 0 auto;
	padding: 24px 0 clamp(56px, 7vw, 96px);
}

.bv-hub__filters {
	position: sticky;
	top: 72px;
	z-index: 5;
	display: flex;
	gap: 8px;
	margin-bottom: 16px;
	padding: 8px 0;
	overflow-x: auto;
	background: rgb(255 255 255 / 92%);
	backdrop-filter: blur(8px);
	scrollbar-width: none;
}

.bv-hub__filters::-webkit-scrollbar {
	display: none;
}

.bv-hub .bv-hub__filter {
	display: inline-flex;
	flex: none;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 16px;
	border: 0;
	border-radius: 20px;
	color: #111111 !important;
	background: #f5f5f5 !important;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.bv-hub .bv-hub__filter span {
	color: #707072;
	font-weight: 500;
}

.bv-hub .bv-hub__filter[aria-pressed="true"] {
	color: #ffffff !important;
	background: #111111 !important;
}

.bv-hub .bv-hub__filter[aria-pressed="true"] span {
	color: #b7bcc4;
}

/* A plain grid (CSS columns mis-measured aspect-ratio tiles in Safari and
   let them run over the footer). Large tiles span two columns and rows. */
.bv-hub__grid {
	display: grid;
	grid-auto-flow: dense;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}

.bv-hub .bv-hub__tile {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 14px;
	background: #15171a;
	color: #ffffff;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

/* Height via a padding spacer, not aspect-ratio: inside Elementor's flex
   container the intrinsic size of aspect-ratio grid items is under-measured,
   which let the footer ride up over the last rows. */
.bv-hub .bv-hub__tile::before {
	display: block;
	padding-top: 125%;
	content: "";
}

.bv-hub .bv-hub__tile.is-big {
	grid-column: span 2;
	grid-row: span 2;
}

.bv-hub__tile[hidden] {
	display: none !important;
}

.bv-hub__tile img,
.bv-hub__tile video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
	transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bv-hub__tile:hover img,
.bv-hub__tile:hover video,
.bv-hub__tile:focus-visible img {
	transform: scale(1.05);
}

.bv-hub__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgb(0 0 0 / 70%) 0%, rgb(0 0 0 / 0%) 45%);
}

.bv-hub__play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	width: 58px;
	height: 58px;
	place-items: center;
	border-radius: 50%;
	background: rgb(255 255 255 / 92%);
	box-shadow: 0 8px 24px rgb(0 0 0 / 30%);
	transform: translate(-50%, -50%);
	transition: transform 250ms ease;
}

.bv-hub__play svg {
	width: 22px;
	height: 22px;
	margin-left: 3px;
	fill: #111111;
}

.bv-hub__tile:hover .bv-hub__play {
	transform: translate(-50%, -50%) scale(1.08);
}

.bv-hub__meta {
	position: absolute;
	right: 14px;
	bottom: 14px;
	left: 14px;
	display: grid;
	gap: 4px;
	justify-items: start;
}

.bv-hub__badge {
	padding: 3px 9px;
	border-radius: 999px;
	color: #111111;
	background: rgb(255 255 255 / 90%);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bv-hub__title {
	font-family: var(--bv-font-heading);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
	text-shadow: 0 1px 8px rgb(0 0 0 / 35%);
}

.bv-hub__tile--legend .bv-hub__title {
	font-size: 26px;
}

.bv-hub__more {
	color: #b7bcc4;
	font-size: 13px;
	font-weight: 600;
}

/* Lightbox */
.bv-hub__lightbox {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) 64px;
	grid-template-rows: minmax(0, 1fr) auto;
	align-items: center;
	padding: 56px 0 24px;
	background: rgb(9 10 11 / 94%);
}

.bv-hub__lightbox[hidden] {
	display: none;
}

html.bv-hub-open {
	overflow: hidden;
}

.bv-hub__stage {
	display: flex;
	height: 100%;
	min-height: 0;
	align-items: center;
	justify-content: center;
}

.bv-hub__stage img,
.bv-hub__stage video {
	max-width: 100%;
	max-height: 100%;
	border-radius: 10px;
}

.bv-hub__stage iframe.is-wide {
	width: min(100%, 1200px);
	aspect-ratio: 16 / 9;
	height: auto;
	max-height: 100%;
	border: 0;
	border-radius: 10px;
}

.bv-hub .bv-hub__close,
.bv-hub .bv-hub__nav {
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 25%);
	border-radius: 50%;
	color: #ffffff !important;
	background: rgb(255 255 255 / 8%) !important;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}

.bv-hub .bv-hub__close {
	position: absolute;
	top: 12px;
	right: 16px;
}

.bv-hub__nav {
	justify-self: center;
}

.bv-hub__caption {
	grid-column: 1 / -1;
	margin: 14px 0 0;
	color: rgb(255 255 255 / 80%);
	text-align: center;
}

.bv-hub__caption a {
	margin-left: 8px;
	color: #ffffff;
	font-weight: 600;
}

@media (max-width: 1100px) {
	.bv-hub__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.bv-hub {
		width: calc(100% - 32px);
	}

	.bv-hub__filters {
		top: 60px;
	}

	.bv-hub__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.bv-hub .bv-hub__tile {
		border-radius: 12px;
	}

	.bv-hub__title {
		font-size: 16px;
	}

	.bv-hub__tile--legend .bv-hub__title {
		font-size: 18px;
	}

	.bv-hub__play {
		width: 44px;
		height: 44px;
	}

	.bv-hub__lightbox {
		grid-template-columns: minmax(0, 1fr);
		padding: 64px 12px 24px;
	}

	.bv-hub__nav {
		display: none !important;
	}
}

/* The page container gives its flex children a definite height on some
   pages, which shrank the hub widget and let the footer overlap it. */
.elementor-widget-bv-media-hub,
.elementor-widget-bv-nation-switcher,
.elementor-widget-bv-nations-wall,
.elementor-widget-bv-hero-slider {
	flex-shrink: 0;
}

/* Chrome and Safari under-measure the hub's grid when it is a flex item
   (the flex basis came out 160px short, so the footer overlapped the last
   row). Lay its parent container out as a normal block instead. */
.e-con:has(> .elementor-widget-bv-media-hub),
.e-con > .e-con-inner:has(> .elementor-widget-bv-media-hub) {
	--display: block;
	display: block !important;
}
