.bc-product-quick-view__overlay {
	position: fixed;
	top: 0;
	right: 0;
	height: 100vh;
	width: 100vw;
	background: var(--color-black-a-70);
}

.bc-product-quick-view__wrapper {
	position: absolute;
	top: 0;
	right: 0;
	height: 100vh;
	width: 100vw;
	z-index: 50;

	&[aria-hidden='true'] {
		display: none;
	}
}

button.bc-product-quick-view__close-button {
	position: absolute;
	right: 0;
	top: 0;
	color: var(--color-bc-black);
	font-size: 30px;
	z-index: 2;
	background: transparent;
	padding: 10px;
	opacity: 0.65;
	transition: var(--transition);
	width: auto;

	&:hover,
	&:focus {
		opacity: 1;
		background: transparent;
	}
}

.bc-product-quick-view__content {
	background: var(--color-white);
	position: absolute;
	width: calc(100vw - 20%);
	height: auto;
	left: 50%;
	top: 0;
	margin: 40px 0;
	transform: translateX(-50%);
	overflow-y: scroll;

	@media (--viewport-full) {
		height: calc(100vh - 20%);
		max-width: 1140px;
		max-height: 660px;
		margin: 0;
		top: 50%;
		transform: translate3d(-50%, -50%, 0);

		.browser-ie & {
			min-height: 660px;
		}
	}

	* {
		box-sizing: border-box;
	}

	> div {
		height: 100%;
	}

	.bc-product-form__quantity,
	.bc-product-form__options {
		width: 100%;
	}
}

.bc-product-quick-view__content-inner {
	position: relative;
	padding: 60px;

	.bc-product-card {
		margin: 0;
		height: 100%;
	}

	.bc-product__gallery {
		@media (--viewport-full) {
			height: auto;
			padding-bottom: 60px;
			flex: 1 1 100%;
		}
	}

	.bc-product__meta {
		width: 100%;

		@media (--viewport-medium) {
			margin-bottom: 40px;
		}

		@media (--viewport-full) {
			width: calc(50% - 30px);
		}

		@media (--viewport-large) {
			padding-left: 0;
		}
	}

	.bc-product__pricing {
		margin-bottom: 20px;
	}

	.bc-single-product__ratings {
		margin-bottom: 20px;
	}

	.bc-product-single__meta-label {
		font-weight: var(--font-weight-bold);
	}

	.bc-product__description {
		order: 4;
		width: 100%;
		margin-top: 40px;
		padding-top: 30px;
		border-top: 1px solid var(--color-bc-light-grey);

		@media (--viewport-full) {
			width: calc(50% - 30px);
			align-self: flex-end;
		}

		@media (--viewport-large) {
			flex: 0 0 auto;
			order: 4;
			padding-left: 0;
			width: calc(50% - 30px);
		}
	}
}
