body {
	background-color: var(--background-color, hsla(360,100%,100%,1));
	padding-top: calc( var(--header-height,5.5em) + 1em);
}

body.has-floating-bars {
	padding-top: calc( var(--header-height,5.5em) + var(--floating-bar-height,2.3em) + 1em);
}

.site-content > .col-full {
    max-width: 100%;
    margin: 0;
    padding: 0;
}

.site-main > .product > *:not(.product-details-wrapper):not(.related.products),
.woocommerce-message,
.woocommerce-error {
	padding-left: 2em;
	padding-right: 2em;
}

.product-details-wrapper {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2em;
}

.onsale {
    width: 5em;
    height: 5em;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    background: linear-gradient(135deg,
		var(--grad3-hsla,hsl(338 91% 75% / 1)),
		var(--grad2-hsla,hsl(272 63% 68% / 1)) 40%,
		var(--grad0-hsla,hsl(292 90% 85% / 1)) 50%,
		var(--grad3-hsla,hsl(338 91% 75% / 1)) 60%,
		var(--grad2-hsla,hsl(272 63% 68% / 1)));
    background-size: 400%;
    background-position: top left;
    clip-path: polygon(100%0,0 0,0 100%);
    display: flex;
    justify-content: center;
    align-items: center;
	border: none;
    border-radius: 0;
	color: #FFF;
	font-size: 1.2em;
}

html[lang="pt-PT"] .onsale {
    width: 4em;
    height: 4em;
}

.onsale span {
  position:absolute;
  top: -18.75%; /* Average of 25% and 12.5% */
  left: -18.75%;
  width: 100%;
  height: 100%;
  line-height: 1.2;
  text-align: center;
  font-size: 0.9em;
  font-weight: 600;
  font-variation-settings: "wght" 600;
  transform: rotate(-45deg);
  color: #FFF;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
}

.storefront-full-width-content.single-product div.product .product-details-wrapper .woocommerce-product-gallery,
.storefront-full-width-content.single-product div.product .product-details-wrapper .summary {
	width: 100%;
    float: none;
    margin: 0;
}

.storefront-full-width-content.single-product div.product .product-details-wrapper .woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper {
	overflow-x: scroll;
	-ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

.storefront-full-width-content.single-product div.product .product-details-wrapper .woocommerce-product-gallery::-webkit-scrollbar,
.woocommerce-product-gallery__wrapper::-webkit-scrollbar {
  display: none;
}

.woocommerce-product-gallery__wrapper {
	display: flex;
    gap: 1em;
	scroll-snap-type: x mandatory;
}

.woocommerce-product-gallery__image {
	scroll-snap-align: center;
}

.woocommerce-product-gallery__image img {
	max-width: calc(100vw - 3em);
}

.storefront-full-width-content.single-product div.product .product-details-wrapper .summary {
	padding: 2em;
}

.product_title {
	font-size: 2em;
}

.single-product div.product p.price {
	font-size: 1.3em;
	margin: 1.3em 0;
}

.single-product div.product p.price del {
	font-size: 90%;
}

.variations tbody {
    display: flex;
    flex-direction: column;
    gap: 0.75em;
}

/*.variations tr {
    display: flex;
    flex-direction: row;
    gap: 0.5em;
    align-items: center;
}

.variations tr:last-of-type .label,
.variations tr:last-of-type .value {
    display: grid;
    grid-template-rows: 1fr 1fr;
}*/

input[type="radio"].swatch {
    position: absolute;
    opacity: 0;
    height: 0;
    width: 0;
}

.swatches-container,
.colors-container {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 0.7em;
    min-height: 2em;
	margin-top: 1em;
}
 
.swatch + label {
	--outline-width: 0.1rem;
    --transition-speed: 0.1s;
    min-height: 2em;
    min-width: 2em;
    padding: 0.5em;
    line-height: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor:pointer;
	overflow:hidden;
	padding:0;
    position: relative;
	outline: hsla(0, 0%, 80%, 1) var(--outline-width,0.1rem) solid;
}

input[type=radio].swatch+label {
	margin: 0;
}

.swatch.color + label {
    background: var(--swatch-color,var(--text-color,#000));
    /*border-radius:100%;*/
}

/*.swatch.color + label:after {
    content: '';
    width: calc(100% - (var(--outline-width,0.15rem) * 4));
    height: calc(100% - (var(--outline-width,0.15rem) * 4));
    border-radius: 100%;
    position: absolute;
    outline: var(--background-color) 0 solid;
}*/

.swatch:checked + label,
.swatch.selected + label,
.swatch:focus-visible + label {
	--outline-width: 0.15rem;
    outline: var(--text-color) var(--outline-width,0.1rem) solid;
	font-variation-settings: 'wght' 600;
}

.swatch:focus-visible + label {
	outline-style: dotted;
}

.swatch.color:checked + label::before,
.swatch.color.selected + label::before,
.swatch.color:focus-visible + label::before {
	--color: #000;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    line-height: 1;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    line-height: inherit;
    vertical-align: baseline;
    content: "";
    font-size: 1.2em;
	color: var(--color,#000);
}

.swatch.color#color-preto:checked + label::before,
.swatch.color#color-preto.selected + label::before,
.swatch.color#color-preto:focus-visible + label::before,
.swatch.color#color-black:checked + label::before,
.swatch.color#color-black.selected + label::before,
.swatch.color#color-black:focus-visible + label::before {
	--color: #FFF;
}

/*.swatch.color.selected + label:after {
    outline: var(--background-color) var(--outline-width,0.15rem) solid;
}*/

/*.swatch.selected:not(.color) + label {
    background:var(--Niuti-gradient,radial-gradient(50% 50% at 44% 83%, hsl(338 91% 75% / 1), hsl(338 91% 75% / 0)), radial-gradient(50% 50% at 98% 4%, hsl(272 63% 68% / 1), hsl(272 63% 68% / 0)), radial-gradient(50% 50% at 10% 97%, hsl(300 92% 79% / 1), hsl(300 92% 79% / 0)), radial-gradient(50% 50% at 44% 47%, hsl(292 90% 85% / 1), hsl(292 90% 85% / 0)), radial-gradient(hsl(324 79% 46% / 1), hsl(324 79% 46% / 1)));
}*/

.swatches-container:has(.selected) input:not(.selected) + label,
.colors-container:has(.selected) input:not(.selected) + label {
	opacity: .5;
}

a.reset_variations {
	margin-left: 0;
	margin-top: 1em;
}

.quantity .qty,
.quantity .qty:focus {
	outline: hsla(0, 0%, 80%, 1) var(--outline-width,0.1rem) solid;
}

button.single_add_to_cart_button {
	background: var(--Niuti-gradient,radial-gradient(50% 50% at 44% 83%, hsl(338 91% 75% / 1), hsl(338 91% 75% / 0)), radial-gradient(50% 50% at 98% 4%, hsl(272 63% 68% / 1), hsl(272 63% 68% / 0)), radial-gradient(50% 50% at 10% 97%, hsl(300 92% 79% / 1), hsl(300 92% 79% / 0)), radial-gradient(50% 50% at 44% 47%, hsl(292 90% 85% / 1), hsl(292 90% 85% / 0)), radial-gradient(hsl(324 79% 46% / 1), hsl(324 79% 46% / 1)));
    border: none;
    color: #FFF;
    padding:calc(0.75em + var(--border-value,2px)) calc(1em + var(--border-value,2px));
}

button.single_add_to_cart_button.disabled {
	filter: grayscale(.5);
	animation-play-state: paused;
}

.related.products {
	overflow: hidden;
}

.related.products h2 {
	padding: 0 1.2em;
}

.related.products ul.products {
	display: flex;
    gap: 2em;
    scroll-snap-type: x mandatory;
	overflow-x: scroll;
	-ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

.related.products ul.products::-webkit-scrollbar {
  display: none;
}

.related.products ul.products li.product {
	min-width: calc(100vw - 6em);
	scroll-snap-align: center;
	margin-bottom: 0;
}

@media screen and (min-width: 768px) {
	.site,
	.single-product div.product {
		overflow: clip;
	}
	
	.col-full,
	.site-main > .product > *:not(.product-details-wrapper),
	.woocommerce-message,
	.woocommerce-error {
		max-width: 66.4989378333em;
		margin-left: auto;
		margin-right: auto;
		padding-left: 2.617924em;
		padding-right: 2.617924em;
		box-sizing: content-box;
	}
	
	.product-details-wrapper {
		grid-template-columns: 1.5fr 1fr;
		align-items: start;
	}
	
	.woocommerce-product-gallery__wrapper {
		display: grid;
		grid-template-columns: repeat(2,1fr);
		gap: 0.5em;
	}
	
	.woocommerce-product-gallery__image img {
		margin: 0;
		width: 100%;
		height: auto;
		max-width: 100%;
	}
	
	.storefront-full-width-content.single-product div.product .product-details-wrapper .summary {
		padding: 2em 2em 2em 0;
		align-self: start;
		height: fit-content;
		position: sticky;
		top: 11.6em;
	}
	
	.storefront-full-width-content .site-main ul.products.columns-3 li.product {
		min-width: auto;
	}
}

@media (prefers-reduced-motion: no-preference) {
	
	.swatch + label {
		transition: font-variation-settings 0.1s linear, outline 0.05s linear;
	}
	
	button.single_add_to_cart_button {
		animation: niuti-gradient-animation var(--gradient-animation-duration,20s) linear infinite;
		transition: all 0.1s linear;
	}
}