.bsv-gift-launcher {
	position: fixed;
	display: flex;
	align-items: center;
	gap: var(--bsv-space-2);
	z-index: 35;
	bottom: calc(var(--bsv-gift-bottom, 16px) + env(safe-area-inset-bottom, 0px));
	min-width: 64px;
	min-height: 56px;
	padding: var(--bsv-space-3) var(--bsv-space-4);
	border: 1px solid var(--bsv-input-line);
	border-radius: var(--bsv-radius-lg);
	background: var(--bsv-yellow);
	color: var(--bsv-ink);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	box-shadow: var(--bsv-shadow-bar);
}

.bsv-gift-launcher--left { left: max(var(--bsv-space-4), env(safe-area-inset-left, 0px)); }
.bsv-gift-launcher--right { right: max(var(--bsv-space-4), env(safe-area-inset-right, 0px)); }
.bsv-gift-launcher[hidden], .bsv-gift-inline[hidden] { display: none; }

.bsv-gift-dialog {
	position: fixed;
	inset: 0;
	width: min(480px, calc(100% - 32px));
	max-height: calc(100dvh - 48px);
	margin: auto;
	padding: var(--bsv-space-5);
	overflow-y: auto;
	border: 1px solid var(--bsv-input-line);
	border-radius: var(--bsv-radius-lg);
	background: var(--bsv-surface);
	color: var(--bsv-ink);
}

.bsv-gift-dialog::backdrop { background: var(--bsv-black); opacity: 0.45; }
.bsv-gift-dialog h2 { margin: 0 var(--bsv-space-7) var(--bsv-space-3) 0; font-size: 1.25rem; }

.bsv-gift-close {
	position: absolute;
	top: var(--bsv-space-2);
	right: var(--bsv-space-2);
	width: 44px;
	height: 44px;
	border: 0;
	background: var(--bsv-surface);
	color: var(--bsv-body);
	font-size: 2rem;
	cursor: pointer;
}

.bsv-gift-inline {
	grid-column: 1 / -1;
	border-radius: var(--bsv-radius-lg);
	width: 100%;
	margin-block: var(--bsv-space-5);
	padding: var(--bsv-space-4);
	border: 1px solid var(--bsv-line);
	background: var(--bsv-surface);
}

.bsv-gift-heading { margin: 0 0 var(--bsv-space-2); font-size: 1.25rem; }
.bsv-gift-intro { margin: 0 0 var(--bsv-space-4); color: var(--bsv-body); }
.bsv-gift-list { margin: 0; padding: 0; list-style: none; }

.bsv-gift-row {
	display: flex;
	align-items: center;
	gap: var(--bsv-space-3);
	padding-block: var(--bsv-space-3);
	border-top: 1px solid var(--bsv-line);
}

.bsv-gift-image { width: 64px; height: 64px; flex: 0 0 64px; object-fit: contain; }
.bsv-gift-info { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.bsv-gift-name { display: inline-flex; align-items: center; min-height: 44px; color: var(--bsv-ink); font-weight: 600; text-decoration: underline; }
.bsv-gift-detail { display: block; margin-top: var(--bsv-space-1); color: var(--bsv-muted); }
.bsv-gift-selected { display: block; color: var(--bsv-success-strong); font-weight: 600; }

.bsv-gift-choose {
	width: 44px;
	height: 44px;
	flex: 0 0 44px;
	border: 1px solid var(--bsv-input-line);
	border-radius: 50%;
	background: var(--bsv-yellow);
	color: var(--bsv-ink);
	font: inherit;
	font-size: 1.5rem;
	cursor: pointer;
}

.bsv-gift-choose:disabled { background: var(--bsv-bg); color: var(--bsv-muted); cursor: default; }
.bsv-gift-remove { min-height: 44px; margin-top: var(--bsv-space-3); border: 0; background: var(--bsv-surface); color: var(--bsv-body); font: inherit; text-decoration: underline; cursor: pointer; }
.bsv-gift-launcher:focus-visible, .bsv-gift-dialog :focus-visible, .bsv-gift-inline :focus-visible { outline: 2px solid var(--bsv-focus); outline-offset: 3px; }
.bsv-gift-status { color: var(--bsv-body); }
.bsv-gift-status:empty { margin: 0; }
.bsv-gift-announcement { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (width <= 380px) {
	.bsv-gift-dialog { padding: var(--bsv-space-4); }
	.bsv-gift-image { width: 48px; height: 48px; flex-basis: 48px; }
	.bsv-gift-row { gap: var(--bsv-space-2); }
}

.bsv-gift-hide-prices .wc-block-cart-item__prices,
.bsv-gift-hide-prices .wc-block-cart-item__total,
.bsv-gift-hide-prices .wc-block-components-order-summary-item__individual-prices,
.bsv-gift-hide-prices .wc-block-components-order-summary-item__total-price {
	display: none !important;
}
