/**
 * Product request drawer — WooCommerce mini-cart–style panel (scoped to .vault-product-request).
 */

html.vault-product-request-open,
html.vault-product-request-open body {
	overflow: hidden;
	touch-action: none;
}

.vault-product-request {
	position: relative;
	-webkit-font-smoothing: antialiased;
}

.vault-product-request[hidden] {
	display: none !important;
}

@keyframes fadein {
	0% {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes slidein {
	0% {
		transform: translateX(0);
	}

	to {
		transform: translateX(max(-100%, var(--neg-drawer-width)));
	}
}

@keyframes rtlslidein {
	0% {
		transform: translateX(0);
	}

	to {
		transform: translateX(min(100%, var(--drawer-width)));
	}
}

@scope (.vault-product-request) {
	.wc-block-mini-cart__template-part,
	.wp-block-woocommerce-mini-cart-contents {
		height: 100%;
	}

	@media screen and (max-height: 500px) {
		.wp-block-woocommerce-mini-cart-contents {
			height: auto;
		}

		.wc-block-mini-cart__drawer {
			overflow-y: auto;
		}
	}

	.wc-block-mini-cart__drawer {
		font-size: 1rem;
	}

	.wc-block-mini-cart__drawer .wp-block-woocommerce-mini-cart-contents {
		box-sizing: border-box;
		justify-content: center;
		padding: 0;
		position: relative;
	}

	.wc-block-mini-cart__drawer
		.wp-block-woocommerce-mini-cart-contents
		.wc-block-components-notices {
		margin: 16px 48px -16px 16px;
		margin-bottom: unset;
	}

	.wc-block-mini-cart__drawer
		.wp-block-woocommerce-mini-cart-contents
		.wc-block-components-notices
		.wc-block-components-notices__notice {
		margin-bottom: unset;
	}

	.wc-block-mini-cart__drawer
		.wp-block-woocommerce-mini-cart-contents
		.wc-block-components-notices:empty {
		display: none;
	}

	:where(.wp-block-woocommerce-mini-cart-contents) {
		background: #fff;
	}

	.wp-block-woocommerce-empty-mini-cart-contents-block,
	.wp-block-woocommerce-filled-mini-cart-contents-block {
		background: inherit;
		display: flex;
		flex-direction: column;
		height: 100%;
		max-height: fill-available;
	}

	.wp-block-woocommerce-empty-mini-cart-contents-block[hidden],
	.wp-block-woocommerce-filled-mini-cart-contents-block[hidden] {
		display: none;
	}

	.wp-block-woocommerce-empty-mini-cart-contents-block {
		justify-content: center;
	}

	.wp-block-woocommerce-filled-mini-cart-contents-block {
		justify-content: space-between;
	}

	.wp-block-woocommerce-empty-mini-cart-contents-block
		.wc-block-mini-cart__empty-cart-wrapper {
		overflow-y: auto;
		padding: 48px 16px 16px;
	}

	.wc-block-mini-cart__items {
		display: flex;
		flex-direction: column;
		flex-grow: 1;
		overflow-y: auto;
		padding: 16px 16px 0;
	}

	.wc-block-components-drawer__screen-overlay {
		background-color: rgba(95, 95, 95, 0.35);
		bottom: 0;
		left: 0;
		opacity: 1;
		position: fixed;
		right: 0;
		top: 0;
		transition: opacity 0.3s;
		z-index: 9999;
	}

	.wc-block-components-drawer__screen-overlay--with-slide-out {
		transition: opacity 0.3s;
	}

	.wc-block-components-drawer__screen-overlay--with-slide-in {
		animation-duration: 0.3s;
		animation-name: fadein;
	}

	.wc-block-components-drawer__screen-overlay--is-hidden {
		opacity: 0;
		pointer-events: none;
	}

	.wc-block-components-drawer {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		height: 100%;
		left: 100%;
		max-width: 100%;
		position: fixed;
		right: 0;
		top: 0;
		transform: translateX(max(-100%, var(--neg-drawer-width)));
		width: var(--drawer-width);
	}

	.rtl .wc-block-components-drawer {
		transform: translateX(min(100%, var(--drawer-width)));
	}

	.wc-block-components-drawer__screen-overlay--with-slide-out
		.wc-block-components-drawer {
		transition: transform 0.3s;
	}

	.wc-block-components-drawer__screen-overlay--with-slide-in
		.wc-block-components-drawer {
		animation-duration: 0.3s;
		animation-name: slidein;
	}

	.rtl
		.wc-block-components-drawer__screen-overlay--with-slide-in
		.wc-block-components-drawer {
		animation-name: rtlslidein;
	}

	.wc-block-components-drawer__screen-overlay--is-hidden
		.wc-block-components-drawer {
		transform: translateX(0);
	}

	@media screen and (prefers-reduced-motion: reduce) {
		.wc-block-components-drawer,
		.wc-block-components-drawer__screen-overlay {
			animation-name: none !important;
			transition: none !important;
		}
	}

	.wc-block-components-button.wc-block-components-drawer__close {
		background: transparent !important;
		border: 0;
		border-radius: 0;
		color: inherit !important;
		margin: -1em;
		opacity: 0.6;
		padding: 0;
		padding: 1em !important;
		position: absolute !important;
		right: 12px;
		top: 24px;
		vertical-align: baseline;
		z-index: 2;
	}

	.wc-block-components-button.wc-block-components-drawer__close:active,
	.wc-block-components-button.wc-block-components-drawer__close:focus,
	.wc-block-components-button.wc-block-components-drawer__close:hover {
		opacity: 1;
	}

	.wc-block-components-button.wc-block-components-drawer__close:focus-visible {
		box-shadow: none !important;
		outline: none !important;
	}

	.wc-block-components-button.wc-block-components-drawer__close:focus:not(
			:focus-visible
		) {
		box-shadow: none;
		outline: none;
	}

	.wc-block-components-button.wc-block-components-drawer__close svg {
		fill: currentColor;
		display: block;
	}

	.wc-block-components-drawer__content {
		height: 100dvh;
		position: relative;
	}

	.admin-bar .wc-block-components-drawer__content {
		height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
		margin-top: var(--wp-admin--admin-bar--height, 0);
	}
}

/* Drawer width + stacking above site chrome */
.vault-product-request .wc-block-components-drawer__screen-overlay {
	--drawer-width: min(480px, 100vw);
	--neg-drawer-width: calc(-1 * min(480px, 100vw));
	z-index: 100000;
}

.vault-product-request .wc-block-mini-cart__items .wpcf7 {
	font-size: 15px;
	line-height: 1.5;
}

.vault-product-request .wc-block-mini-cart__items .wpcf7-form {
	margin: 0;
}

.vault-product-request .wc-block-mini-cart__items .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 0.8125rem;
	color: #b00020;
}

.vault-product-request .wc-block-mini-cart__items .wpcf7-spinner {
	margin-left: 10px;
}

.vault-product-request .wc-block-mini-cart__items .wpcf7-mail-sent-ok {
	color: #1b5e20;
	border-color: rgba(27, 94, 32, 0.25);
	background: rgba(237, 247, 237, 0.95);
}

.vault-product-request__admin-hint {
	margin: 0;
	padding: 14px 16px;
	border-radius: 4px;
	font-size: 14px;
	line-height: 1.45;
	color: #595959;
	background: rgba(255, 193, 7, 0.15);
	border: 1px solid rgba(255, 193, 7, 0.45);
}
