.threed-product {
	grid-column: 1 / -1;
	position: relative;
	overflow: hidden;
}

.threed-product canvas {
	display: block;
	width: 100%;
}

.threed-product .labels {
    position: absolute;
    left: 0;
    top: 0;
    cursor: pointer;
    user-select: none;
}

.threed-product .labels > div {
    position: absolute;
    left: 0;
    top: 0;
    cursor: pointer;
    user-select: none;
    pointer-events: none;
	transition-property: left, top;
    transition-duration: 100ms, 100ms;
    white-space: nowrap;
}

.threed-product .spinner-loader {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: block;
    border-top: 4px solid #f9ae42;
    border-right: 4px solid transparent;
    box-sizing: border-box;
    animation: loaderrotation 1s linear infinite;
}

.threed-product .spinner-loader::after {
    content: '';  
    box-sizing: border-box;
    position: absolute;
    left: 0;
    top: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border-left: 4px solid #282560;
    border-bottom: 4px solid transparent;
    animation: loaderrotation 0.5s linear infinite reverse;
}

.threed-product .spinner-loader {
    display: none;
}

.threed-product.loading .spinner-loader {
    display: block;
}

@keyframes loaderrotation {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
}

.threed-product .corner-label {
	display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    right: 0;
    background: #282560;
    transform-origin: top center;
    transform: translateX(50%) rotate(45deg);
    width: 35%;
    height: 15%;
    white-space: break-spaces;
    text-align: center;
    box-sizing: content-box;
	padding-top: 10px;
}

.threed-product .corner-label .icon.degrees {
	transform: rotate(-45deg);
    height: 50%;
}

.threed-product .notices {
	position: absolute;
	bottom: 40px;
    left: 20px;
    right: 20px;
	border: 2px solid #d2d2d2;
    border-radius: 6px;
    color: #282560;
    font-weight: 600;
    font-size: 0.9em;
    text-align: center;
    padding: 1em;
}

.threed-product .notices .notice {
	margin-left: auto;
	margin-right: auto;
	font-weight: 300
}

.threed-product .notices .icon {
	display: inline-block;
	height: 1.4em;
    vertical-align: middle;
	margin-left: 20px;
}

.woocommerce-product-gallery.render-3d .woocommerce-product-gallery__image,
.woocommerce-product-gallery .threed-product {
	display: none;
}

.woocommerce-product-gallery.render-3d .threed-product {
	display: block;
}
