/* #region Root Variables */
:root {
	--transition-duration: 0.2s;
	--transition-scale: 0.97;
	--border: 2px solid var(--wp--preset--color--accent-1);
}

@media (pointer: coarse) {
	:root {
		--transition-duration: 0.1s
	}
}
/* #endregion */


/* #region Focus */
*:focus:not(:focus-visible),
*:focus-within:not(:focus-visible) {
	outline: none !important;
}
/* #endregion */


/* #region Layout Shell */
header {
	top: 0;
	position: sticky;
	background-color: var(--wp--preset--color--base);
	width: 100%;
	z-index: 1000;
}

header + *,
* + footer {
	margin-block-start: 0 !important;
}

body:not(.page-id-121) .wp-site-blocks > *:has(+ footer.wp-block-template-part) {
	padding-bottom: 30px !important;
}
/* #endregion */


/* #region Links */
a {
	color: var(--wp--preset--color--accent-1);
	transition-property: color, background;
	transition-duration: var(--transition-duration);
	text-decoration: none !important;
}

a:hover {
	color: var(--wp--preset--color--accent-1);
}

a.wp-block-navigation-item__content {
	color: var(--wp--preset--color--contrast);
}

.has-accent-1-background-color a,
.has-accent-4-background-color a:not(.wp-block-button__link),
.wp-block-cover a {
	color: var(--wp--preset--color--contrast) !important;
}

.has-accent-1-background-color a:hover,
.wp-block-cover a:hover {
	color: var(--wp--preset--color--base) !important;
}

.has-base-background-color a:hover,
.has-accent-4-background-color a:hover,
.has-accent-5-background-color a:hover {
	color: var(--wp--preset--color--accent-1) !important;
}
/* #endregion */


/* #region Shared Buttons & Pills */
.cmplz-btn,
.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill {
	border: var(--border) !important;
	border-radius: 0;
	background: var(--wp--preset--color--accent-6) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.cmplz-btn:hover,
.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill:hover {
	background: var(--wp--preset--color--accent-1) !important;
	color: var(--wp--preset--color--base) !important;
}
/* #endregion */


/* #region WordPress Buttons */
.wp-block-button .wp-block-button__link {
	background: var(--wp--preset--color--accent-1) !important;
	color: var(--wp--preset--color--base) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: var(--wp--preset--color--accent-6) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.wp-block-button .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent-6) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent-1) !important;
	color: var(--wp--preset--color--base) !important;
}
/* #endregion */


/* #region Navigation */
@media (min-width: 769px) {
	.wp-block-navigation .wp-block-navigation__submenu-container {
		border: none !important;
		box-shadow: var(--wp--preset--shadow--deep) !important;
		padding: 10px;
	}
}

@media (max-width: 768px) {
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		display: flex;
		flex-direction: column;
	}

	.wp-block-navigation__responsive-container.is-menu-open .mobile-first {
		order: -1;
	}
}
/* #endregion */


/* #region Utilities */
@media (pointer: fine) {
	.hover-scale > * {
		transition-property: transform;
		transition-duration: var(--transition-duration);
	}

	.hover-scale > *:hover {
		transform: scale(var(--transition-scale)) !important;
	}
}

@media (max-width: 768px) {
	.mobile-reverse {
		flex-direction: column-reverse !important;
	}

	.mobile-adaptive-width {
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		width: 100vw !important;
		aspect-ratio: 3 / 2 !important;
	}
}
/* #endregion */


/* #region Columns & Block Helpers */
@media (max-width: 768px) {
	.wp-block-columns > .wp-block-column:empty {
		display: none !important;
	}
}
/* #endregion */


/* #region UAGB Tabs */
.uagb-tab a {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}

.uagb-tabs__body-wrap,
.uagb-tabs__body-container {
	margin: 0 !important;
	padding: 0 !important;
}

.uagb-tab {
	border: var(--border) !important;
	background: var(--wp--preset--color--accent-6) !important;
	color: var(--wp--preset--color--contrast) !important;
	transition-property: color, background;
	transition-duration: var(--transition-duration);
}

.uagb-tab:hover a {
	color: var(--wp--preset--color--base) !important;
}

.uagb-tab:hover {
	background: var(--wp--preset--color--accent-1) !important;
	color: var(--wp--preset--color--base) !important;
}

.uagb-tab.uagb-tabs__active,
.wc-block-add-to-cart-with-options-variation-selector-attribute-options__pill:has(input:checked) {
	background: var(--wp--preset--color--accent-1) !important;
	color: var(--wp--preset--color--base) !important;
	pointer-events: none;
}
/* #endregion */


/* #region UAGB Slider */
.wp-block-uagb-slider-child > .swiper-content {
	padding: 0 !important;
	margin: 0 !important;
}

@media (max-width: 768px) {
	.wp-block-uagb-slider .swiper-slide .wp-block-cover__inner-container,
	.wp-block-uagb-slider .swiper-slide .wp-block-cover__inner-container * {
		transform: translateZ(0);
	}

	.wp-block-uagb-slider .swiper-slide .wp-block-cover__video-background {
		width: 140% !important;
	}
}
/* #endregion */


/* #region Tables */
.wp-block-table {
	border: var(--border) !important;
	background: var(--wp--preset--color--accent-1) !important;
	text-align: left;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd):not(.wcps-section-row) {
	background-color: var(--wp--preset--color--accent-4) !important;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(even):not(.wcps-section-row) {
	background-color: var(--wp--preset--color--base) !important;
}

.wcps-section-row {
	background-color: var(--wp--preset--color--accent-1) !important;
	color: var(--wp--preset--color--base) !important;
	font-weight: 700;
}

@media (max-width: 768px) {
	.wcps-table {
		font-size: 14px;
	}
}
/* #endregion */


/* #region WooCommerce Product Collection */
.wc-block-product-template {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

li.product {
	display: flex;
}

.wc-block-components-product-button {
	border: var(--border);
}

@media (min-width: 769px) {
	.wp-block-woocommerce-product-collection li.product {
		width: 25vw;
	}
}

@media (pointer: fine) {
	li.product > *{
		transition-property: transform;
		transition-duration: var(--transition-duration);
	}

	li.product > *:hover {
		transform: scale(var(--transition-scale)) !important;
	}
}

@media (max-width: 768px) {
	.wp-block-woocommerce-product-collection li.product {
		width: 40vw;
	}
}

@media (max-width: 480px) {
	.wp-block-woocommerce-product-collection li.product {
		width: 90vw;
	}
}
/* #endregion */


/* #region WooCommerce Product Gallery */
@media (min-width: 769px) {
	.wc-block-product-gallery {
		float: left;
		width: 45%;
		padding: 0 20px 0 0;
		position: relative;
		z-index: 19;
	}
}

.wp-block-group:has(.wp-block-woocommerce-product-gallery) {
	display: flow-root;
}

.wcgv-video {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 20;
	pointer-events: auto;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.wc-block-product-gallery-large-image__inner-blocks {
	z-index: 21;
	pointer-events: none;
}

.wc-block-next-previous-buttons {
	pointer-events: none;
}

.wc-block-next-previous-buttons__button {
	z-index: 21;
	pointer-events: auto;
}
/* #endregion */


/* #region WooCommerce Product Exceptions */
li.product.product_cat-multistage-assemblies .wc-block-components-product-button {
	display: none !important;
}

li.product.product_cat-multistage-assemblies a {
	pointer-events: none;
}
/* #endregion */


/* #region Download Widget */
.wcpa-download-widget {
	padding: var(--wp--preset--spacing--30);
	box-shadow: var(--wp--preset--shadow--deep);
	width: 100%;
}

.wcpa-download-widget > div {
	justify-content: flex-end;
	flex-grow: 1;
}

@media (min-width: 769px) {
	.wcpa-download-widget {
		transition-property: color, background-color, transform;
		transition-duration: var(--transition-duration);
	}

	.wcpa-download-widget:hover {
		transform: scale(var(--transition-scale)) !important;
	}
}
/* #endregion */


/* #region Contact Form 7 */
.wpcf7 form {
	box-sizing: border-box !important;
	font-size: 16px;
}

.wpcf7 form p {
	margin: 0;
}

.wpcf7 br {
	display: none;
}

.wpcf7 form input[type="text"],
.wpcf7 form input[type="email"],
.wpcf7 form input[type="tel"],
.wpcf7 form textarea,
.wpcf7 form select {
	width: 100%;
	border: 2px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	padding: var(--wp--preset--spacing--20);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	margin: 10px 0;
	box-sizing: border-box !important;
	transition-property: border;
	transition-duration: var(--transition-duration);
	font-size: 16px;
}

.wpcf7 form input::placeholder,
.wpcf7 form textarea::placeholder {
	color: var(--wp--preset--color--contrast);
}

.wpcf7 form input:focus,
.wpcf7 form textarea:focus,
.wpcf7 form select:focus {
	outline: none;
	border: var(--border);
}

.wpcf7 form textarea {
	min-height: 140px;
	resize: vertical;
}

.wpcf7 form input[type="checkbox"] {
	width: 22px;
	height: 22px;
	cursor: pointer;
	appearance: none;
	border: var(--border);
	border-radius: 0;
	color: var(--wp--preset--color--base) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition-property: color, background;
	transition-duration: var(--transition-duration);
}

input[type="checkbox"]::before {
	content: "✓";
	font-weight: 700;
}

.wpcf7 form input[type="checkbox"]:checked {
	background: var(--wp--preset--color--accent-1) !important;
}

.wpcf7 form input[type="submit"] {
	width: 100%;
	margin: 10px 0 0;
	border: var(--border);
	border-radius: 0;
	padding: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	cursor: pointer;
	transition-duration: var(--transition-duration);
	transition-property: color, background;
	font-weight: 700;
	text-transform: uppercase;
}

.wpcf7 form input.wpcf7-submit:hover,
.wpcf7 form .wpcf7-submit:hover,
.wpcf7 form input.wpcf7-submit:focus,
.wpcf7 form .wpcf7-submit:focus,
.wpcf7 form.submitting input[type="submit"] {
	background: var(--wp--preset--color--accent-6);
	color: var(--wp--preset--color--contrast);
}

.wpcf7 form .wpcf7-response-output {
	border: var(--border) !important;
	padding: var(--wp--preset--spacing--20);
	margin: 10px 0 0;
}

.newsletter-submit {
	background: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
	border: 2px solid var(--wp--preset--color--contrast) !important;
}

.newsletter-submit:hover,
.wpcf7 form.submitting .newsletter-submit {
	background: var(--wp--preset--color--accent-6) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.has-background:not(.has-base-background-color):not(.has-accent-4-background-color):not(.has-accent-5-background-color) form.submitting::after {
	font-size: 32px;
	font-weight: 700;
	color: var(--wp--preset--color--base);
	content: "";
	display: inline-block;
	animation: dots 1.5s steps(3, end) infinite;
}

form.submitting::after {
	font-size: 32px;
	font-weight: 700;
	color: var(--wp--preset--color--accent-1);
	content: "";
	display: inline-block;
	animation: dots 1.5s steps(3, end) infinite;
}

@keyframes dots {
	0% { content: "."; }
	33% { content: ".."; }
	67% { content: "..."; }
}

.wpcf7-spinner {
	display: none;
}

.cf7-row {
	display: flex;
	gap: 16px;
}

.cf7-col {
	flex: 1;
}

.wpcf7 form p.privacy-notice {
	text-align: center !important;
	margin: 10px 0 !important;
}

.wpcf7-form .required::after {
	content: " *";
	color: red;
}

.wpcf7-not-valid-tip {
	display: none;
}

.wpcf7-not-valid {
	border-color: red !important;
}

@media (max-width: 768px) {
	.cf7-row {
		flex-direction: column;
	}
}
/* #endregion */