/*
Theme Name: TPX
Description: A clean block theme.
Text Domain: tpx
Version: 1.0.1
*/

html {
	scroll-behavior: smooth;
}

/* Use the supplied semibold face for emphasis and inherit theme type in forms. */
b,
strong {
	font-weight: 600;
}

button,
input,
select,
textarea {
	font-family: inherit;
	font-weight: inherit;
}

/* Gravity Forms: flat fields, with an outline for keyboard focus. */
body .gform_wrapper {
	--gf-ctrl-shadow: none;
	--gf-ctrl-shadow-hover: none;
	--gf-ctrl-shadow-focus: none;
}

/* Override both legacy styles and Orbital's state-specific control shadows. */
body .gform_wrapper .gfield :is(input, select, textarea),
body .gform_wrapper .gfield :is(input, select, textarea)::before,
body .gform_wrapper .gfield :is(input, select, textarea)::after,
body .gform_wrapper .gfield .chosen-container :is(.chosen-single, .chosen-choices, .chosen-drop) {
	box-shadow: none !important;
}

body .gform_wrapper .gfield :is(input, select, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--almost-black, #212121);
	outline-offset: 2px;
}

/* Add "tabs" to a radio field's Custom CSS Class setting (without a dot). */
body .gform_wrapper .gfield.tabs .gfield_radio {
	align-items: center;
	background: var(--wp--preset--color--smoke, #f2f2f2);
	border: 0;
	border-radius: 24px;
	box-sizing: border-box;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0;
	list-style: none;
	margin: 0;
	max-width: 100%;
	padding: 6px;
	width: fit-content;
}

body .gform_wrapper .gfield.tabs .gfield_radio > :is(.gchoice, li) {
	box-sizing: border-box;
	display: block;
	flex: 0 1 auto;
	margin: 0;
	max-width: 100%;
	min-width: 0;
	overflow: visible;
	padding: 0;
	position: relative;
}

/* Keep native radios focusable and available to screen readers. */
body .gform_wrapper .gfield.tabs .gfield_radio input[type="radio"] {
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	min-height: 0;
	min-width: 0;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

body .gform_wrapper .gfield.tabs .gfield_radio input[type="radio"] + label {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 1600px;
	box-shadow: none;
	box-sizing: border-box;
	color: rgba(35, 36, 25, 0.65);
	cursor: pointer;
	display: flex;
	font-family: var(--wp--preset--font-family--aktiv-grotesk, aktiv-grotesk, sans-serif);
	font-size: 14px;
	font-weight: 400;
	justify-content: center;
	letter-spacing: 0;
	line-height: 1.3334;
	margin: 0;
	max-width: 100%;
	min-height: 0;
	overflow-wrap: anywhere;
	padding: 10.4px 20px;
	text-align: center;
	width: auto;
}

body .gform_wrapper .gfield.tabs .gfield_radio input[type="radio"]:not(:disabled):not(:checked) + label:hover {
	color: var(--wp--preset--color--almost-black, #212121);
}

body .gform_wrapper .gfield.tabs .gfield_radio input[type="radio"]:checked + label {
	background: var(--wp--preset--color--almost-black, #212121);
	color: var(--wp--preset--color--white, #fff);
}

body .gform_wrapper .gfield.tabs .gfield_radio input[type="radio"]:focus-visible + label {
	outline: 2px solid var(--wp--preset--color--almost-black, #212121);
	outline-offset: 2px;
}

body .gform_wrapper .gfield.tabs .gfield_radio input[type="radio"]:disabled + label {
	cursor: not-allowed;
	opacity: 0.5;
}

@media (forced-colors: active) {
	body .gform_wrapper .gfield.tabs .gfield_radio input[type="radio"]:checked + label {
		outline: 2px solid Highlight;
		outline-offset: -2px;
	}
}

/* The extended family is supplied only at weight 800. */
.has-aktiv-grotesk-extended-font-family {
	font-weight: 800;
}

.hide-on-mobile {
  @media (max-width: 781px) {
    & {
      display: none !important;
    }
  }
}
.hide-on-tablet {
  @media (min-width: 782px) and (max-width: 1009px) {
    & {
      display: none !important;
    }
  }
}
.hide-on-desktop {
  @media (min-width: 1010px) {
    & {
      display: none !important;
    }
  }
}
.d-none {
  display: none !important;
}
.d-block {
  display: block !important;
}

/*
 * CHANGE CONTENT ORDER
 */
.order-1 {
  order: 1;
}
.order-2 {
  order: 2;
}
.order-3 {
  order: 3;
}
@media (max-width: 781px) {
  .order-mobile-1 {
    order: 1;
  }
  .order-mobile-2 {
    order: 2;
  }
  .order-mobile-3 {
    order: 3;
  }

  .align-mobile-start {
    justify-content: flex-start;
  }
}

.w-100 {
  width: 100%;
}

.has-xxl-font-size {
	line-height: 1.1;
}

.has-xl-font-size {
	line-height: 1.2;
}

.has-lg-font-size {
	line-height: 1.25;
}

.has-md-font-size {
	line-height: 1.3;
}

.has-sm-font-size {
	line-height: 1.4;
}

/*
 * RESPONSIVE GUTENBERG FONT SIZES
 *
 * Keep the body font size unchanged while scaling the named presets down for
 * narrower layouts. These variables also cover blocks that reference a preset
 * directly instead of relying on Gutenberg's generated utility classes.
 */
@media (max-width: 1050px) {
	body,
	.editor-styles-wrapper {
		--wp--preset--font-size--sm: 16px;
		--wp--preset--font-size--md: 20px;
		--wp--preset--font-size--lg: 30px;
		--wp--preset--font-size--xl: 36px;
		--wp--preset--font-size--xxl: 50px;
	}
}

@media (max-width: 850px) {
	body,
	.editor-styles-wrapper {
		--wp--preset--font-size--lg: 24px;
		--wp--preset--font-size--xl: 30px;
		--wp--preset--font-size--xxl: 36px;
	}
}

.tpx-inline-type.tpx-inline-type--aktiv-grotesk-regular {
	font-family: var(--wp--preset--font-family--aktiv-grotesk, aktiv-grotesk, sans-serif);
	font-weight: 400;
	letter-spacing: -0.01em;
}

.tpx-inline-type.tpx-inline-type--aktiv-grotesk-semibold {
	font-family: var(--wp--preset--font-family--aktiv-grotesk, aktiv-grotesk, sans-serif);
	font-weight: 600;
	letter-spacing: -0.01em;
}

.tpx-inline-type.tpx-inline-type--aktiv-grotesk-extended-extrabold {
	font-family: var(--wp--preset--font-family--aktiv-grotesk-extended, aktiv-grotesk-extended, sans-serif);
	font-weight: 800;
	letter-spacing: 0;
}

/* Download buttons use the supplied decorative icon before the editable label. */
.wp-block-button.is-style-download .wp-block-button__link {
	background-color: var(--wp--preset--color--red, #ff0033);
	border-radius: 999px;
	box-sizing: border-box;
	color: var(--wp--preset--color--white, #fff);
	display: inline-block;
	font-weight: 600;
	line-height: 1.5;
	min-height: 64px;
	padding-block: 20px;
	padding-inline: 68px 24px;
	position: relative;
}

.wp-block-button.is-style-download .wp-block-button__link::before {
	background: url("data:image/svg+xml,%3Csvg%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2040%2040%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20width%3D%2240%22%20height%3D%2240%22%20rx%3D%2220%22%20fill%3D%22black%22%20fill-opacity%3D%220.25%22%2F%3E%0A%3Cpath%20d%3D%22M20.749%2022.6069L24.4688%2018.8872L25.5293%2019.9478L19.999%2025.478L14.4688%2019.9478L15.5293%2018.8872L19.249%2022.6069V11.9165H20.749V22.6069Z%22%20fill%3D%22%23F4F4F4%22%2F%3E%0A%3Cpath%20d%3D%22M27.5%2026.5835V28.0835H12.5V26.5835H27.5Z%22%20fill%3D%22%23F4F4F4%22%2F%3E%0A%3C%2Fsvg%3E") center / contain no-repeat;
	content: "";
	display: block;
	height: 40px;
	inset-inline-start: 16px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
}

.wp-block-button.is-style-download .tpx-button-label {
	min-width: 0;
	overflow-wrap: anywhere;
}

.wp-block-button.is-style-text-arrow .wp-block-button__link {
	align-items: center;
	background: transparent !important;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	display: inline-flex;
	gap: 0.65em;
	padding: 0 !important;
}

.wp-block-button.is-style-text-arrow .wp-block-button__link::after {
	background-color: var(--tpx-arrow-color, currentColor);
	content: "";
	display: block;
	flex: 0 0 auto;
	height: 1em;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 24'%3E%3Cpath d='M1 12h30M21 2l10 10-10 10' fill='none' stroke='%23000' stroke-linecap='square' stroke-linejoin='miter' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 24'%3E%3Cpath d='M1 12h30M21 2l10 10-10 10' fill='none' stroke='%23000' stroke-linecap='square' stroke-linejoin='miter' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 1.45em;
}

/*
 * STAGGERED GUTENBERG BUTTON CHARACTERS
 *
 * The script retains the button's accessible name while splitting its visible
 * label into characters. Variables may be overridden on a button or wrapper
 * to create a more restrained or more energetic variant.
 */
:root {
	--tpx-button-character-stagger: 0.015s;
	--tpx-button-character-duration: 0.6s;
	--tpx-button-character-distance: 1.3em;
	--tpx-button-character-ease: cubic-bezier(0.625, 0.05, 0, 1);
}

.wp-block-button__link.tpx-has-character-hover .tpx-button-label {
	clip-path: inset(-10% 0);
	display: inline-block;
}

.wp-block-button__link.tpx-has-character-hover .tpx-button-character {
	display: inline-block;
	text-shadow: 0 var(--tpx-button-character-distance) currentColor;
	translate: 0 0;
	transition:
		translate var(--tpx-button-character-duration)
		calc(
			var(--tpx-button-character-index) *
			var(--tpx-button-character-stagger)
		)
		var(--tpx-button-character-ease);
	white-space: pre;
	will-change: translate;
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.wp-block-button__link.tpx-has-character-hover:is(:hover, :focus-visible) .tpx-button-character {
		translate: 0 calc(-1 * var(--tpx-button-character-distance));
		transition-delay:
			calc(
				var(--tpx-button-character-index) *
				var(--tpx-button-character-stagger) +
				0.05s
			);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link.tpx-has-character-hover .tpx-button-character {
		text-shadow: none;
		transition: none;
	}
}


/*.page-template-header-overlap-banner header.wp-block-template-part {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
}


figure.d-block img {
	display: block;
}


header.wp-block-template-part > .has-background {
	background-color: transparent !important;
	&.light .phone img {
		filter: invert(1);
	}
	&:not(.light) .navigation-cart-block {
		filter: invert(1);
	}
}*/


footer.wp-block-template-part {
	margin-top: 0;
}

.download .tpx-inline-type {
	padding: 0.8rem 1.2rem;
	text-transform: none;
	border: 1px solid var(--wp--preset--color--red);
	border-radius: 99px;
	line-height: 1;
  vertical-align: text-top;
	display: inline-flex;
  align-items: center;
  gap: 5px;  
}
@media (max-width: 781px) {
	.download .tpx-inline-type {
		font-size: 14px;
    padding: 0.25rem 1rem 0.25rem 0.5rem;
	}
}

:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input {
	padding-inline: 12px;
}

:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper, .wp-block-search__input) {
	background-color: var(--wp--preset--color--smoke) !important;
}

.has-charcoal-background-color :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper, .wp-block-search__input) {
	background-color: #212222 !important;
	color: white;
}


.call {
	display: flex;
	align-items: center;
	gap: 6px;
	a {
		text-decoration: none !important;
	}
}

.category-links .tpx-button-label {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	vertical-align: bottom;	
}

.utility-menu a {
	text-decoration: none;
	color: black;
}

.woocommerce .woocommerce-breadcrumb {
	margin-bottom: 0 !important;
}


/* Remove the gap below the header on single product pages. */
body.single-product .wp-site-blocks > .woocommerce.product {
    margin-block-start: 0;
}


.link-cover-parent {
	background-color: black;
	position: relative;
	overflow: clip;
	& .wp-block-cover__inner-container {
		width: 100% !important;
		height: 100% !important;
		box-sizing: border-box;
		padding: var(--wp--preset--spacing--sm);
	}
	& a:is(.wp-block-button.is-style-text-arrow .wp-block-button__link) {
    display: flex;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    padding: var(--wp--preset--spacing--sm) !important;
    align-items: flex-start !important;
	}
	& img {
		opacity: 0.7;
		transition: opacity 0.6s ease-out;
	}
	&:hover img {
		opacity: 1;
		transition: opacity 0.2s ease;
	}
}

.how-to-choose:empty {
	display: none;
}

/* WooCommerce: keep the collapsed mobile filter drawer out of view.
 * A transformed ancestor can make the off-screen translation insufficient.
 * Scope to drawer-enabled blocks so inline filters retain their behaviour.
 */
@media (max-width: 600px) {
	.wc-block-product-filters:not(.is-filter-drawer-disabled):not(.is-overlay-opened) .wc-block-product-filters__overlay {
		visibility: hidden;
		pointer-events: none;
	}

	.wc-block-product-filters:not(.is-filter-drawer-disabled).is-overlay-opened .wc-block-product-filters__overlay {
		visibility: visible;
		z-index: 9999;
	}
}


@media (max-width: 781px) {
  .wp-block-cover.mobile-stacked {
    display: flex;
    flex-wrap: wrap;
    background: black;

    & .wp-block-cover__image-background {
      position: relative;
      width: 100%;
      display: block;
      order: 1;
      display: none !important;
    }
  }
}


.wp-block-tpx-vertical-logo-gallery {
	mix-blend-mode: multiply;
}

.img-cover img {
	display: block;
  height: 100%;
  object-fit: cover;	
}

.product-links:not(:has(.tpx-recommendations)) {
	display: none !important;
}