/*
 * Styles for the Nova cart widget and React sidebar cart.
 */

.nova-cart-widget {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	padding: 1rem;
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 10px;
	background: #ffffff;
	box-shadow: 0 18px 44px rgba(15, 23, 42, 0.08);
}

.nova-cart-widget__summary {
	display: grid;
	gap: 0.2rem;
	min-width: 0;
	text-align: left;
}

.nova-cart-widget__eyebrow {
	color: #64748b;
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0.06em;
	line-height: 1.1;
	text-transform: uppercase;
}

.nova-cart-widget__count {
	color: #111827;
	font-size: 1.15rem;
	font-weight: 900;
	line-height: 1.2;
}

.nova-cart-widget__button,
.nova-cart-widget__launcher {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.78rem 1rem;
	border: 1px solid #111827;
	border-radius: 8px;
	background: #111827;
	color: #ffffff;
	font: inherit;
	font-weight: 900;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease,
		transform 180ms ease;
}

.nova-cart-widget__button:hover,
.nova-cart-widget__button:focus-visible,
.nova-cart-widget__launcher:hover,
.nova-cart-widget__launcher:focus-visible {
	border-color: #0f766e;
	background: #0f766e;
	color: #ffffff;
	transform: translateY(-1px);
}

.nova-cart-widget__launcher {
	justify-content: flex-start;
	width: 100%;
	gap: 0.8rem;
}

.nova-cart-widget__launcher-icon {
	display: inline-grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	flex: 0 0 auto;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
}

.nova-cart-widget__notice {
	margin: 0;
	padding: 1rem;
	border: 1px dashed #94a3b8;
	border-radius: 8px;
	background: #f8fafc;
	color: #334155;
}

.nova-cart-widget-mount--global {
	display: contents;
}

.nova-cart-sidebar {
	position: fixed;
	inset: 0;
	z-index: 99999;
	pointer-events: none;
	visibility: hidden;
}

.nova-cart-sidebar.is-open {
	pointer-events: auto;
	visibility: visible;
}

.nova-cart-sidebar__backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	background: rgba(15, 23, 42, 0);
	cursor: pointer;
	opacity: 0;
	transition:
		background-color 220ms ease,
		opacity 220ms ease;
}

.nova-cart-sidebar.is-open .nova-cart-sidebar__backdrop {
	background: rgba(15, 23, 42, 0.44);
	opacity: 1;
}

.nova-cart-sidebar__panel {
	position: absolute;
	top: 0;
	right: 0;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	width: min(440px, calc(100vw - 18px));
	height: 100%;
	background: #ffffff;
	color: #111827;
	box-shadow: -24px 0 70px rgba(15, 23, 42, 0.24);
	transform: translateX(104%);
	transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nova-cart-sidebar.is-open .nova-cart-sidebar__panel {
	transform: translateX(0);
}

.nova-cart-sidebar__header,
.nova-cart-sidebar__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem;
	border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.nova-cart-sidebar__footer {
	border-top: 1px solid rgba(15, 23, 42, 0.08);
	border-bottom: 0;
	background: #ffffff;
}

.nova-cart-sidebar__eyebrow {
	display: block;
	margin-bottom: 0.25rem;
	color: #64748b;
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.nova-cart-sidebar__title {
	margin: 0;
	color: #111827;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 1.7rem;
	line-height: 1.05;
}

.nova-cart-sidebar__close {
	display: inline-grid;
	place-items: center;
	width: 2.7rem;
	height: 2.7rem;
	flex: 0 0 auto;
	border: 1px solid rgba(15, 23, 42, 0.1);
	border-radius: 999px;
	background: #ffffff;
	color: #111827;
	cursor: pointer;
}

.nova-cart-sidebar__close:hover,
.nova-cart-sidebar__close:focus-visible {
	border-color: #0f766e;
	color: #0f766e;
}

.nova-cart-sidebar__body {
	min-height: 0;
	padding: 1rem;
	overflow: auto;
	background: #f8fafc;
}

.nova-cart-sidebar__body[aria-busy="true"] {
	cursor: progress;
}

.nova-cart-sidebar__error {
	margin-bottom: 0.85rem;
	padding: 0.8rem 0.9rem;
	border-left: 3px solid #b91c1c;
	border-radius: 8px;
	background: #fef2f2;
	color: #7f1d1d;
	font-weight: 700;
}

.nova-cart-sidebar__items {
	display: grid;
	gap: 0.85rem;
}

.nova-cart-sidebar-item {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	gap: 0.9rem;
	padding: 0.8rem;
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 10px;
	background: #ffffff;
}

.nova-cart-sidebar-item__media {
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 8px;
	background: #f1f5f9;
}

.nova-cart-sidebar-item__media a,
.nova-cart-sidebar-item__media span {
	display: block;
	width: 100%;
	height: 100%;
}

.nova-cart-sidebar-item__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nova-cart-sidebar-item__content {
	display: grid;
	gap: 0.55rem;
	min-width: 0;
}

.nova-cart-sidebar-item__top,
.nova-cart-sidebar-item__bottom {
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: 0.75rem;
}

.nova-cart-sidebar-item__name {
	margin: 0;
	color: #111827;
	font-size: 0.95rem;
	font-weight: 900;
	line-height: 1.3;
}

.nova-cart-sidebar-item__name a {
	color: inherit;
	text-decoration: none;
}

.nova-cart-sidebar-item__name a:hover,
.nova-cart-sidebar-item__name a:focus-visible {
	color: #0f766e;
}

.nova-cart-sidebar-item__remove {
	display: inline-grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	flex: 0 0 auto;
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 999px;
	background: #ffffff;
	color: #64748b;
	cursor: pointer;
}

.nova-cart-sidebar-item__remove:hover,
.nova-cart-sidebar-item__remove:focus-visible {
	border-color: #b91c1c;
	color: #b91c1c;
}

.nova-cart-sidebar-item__meta {
	color: #64748b;
	font-size: 0.82rem;
	line-height: 1.35;
}

.nova-cart-sidebar-item__meta p {
	margin: 0;
}

.nova-cart-sidebar-item__price,
.nova-cart-sidebar-item__subtotal {
	color: #0f766e;
	font-weight: 900;
}

.nova-cart-sidebar-item__quantity {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	border: 1px solid rgba(15, 23, 42, 0.12);
	border-radius: 999px;
	background: #ffffff;
	overflow: hidden;
}

.nova-cart-sidebar-item__quantity button,
.nova-cart-sidebar-item__quantity input {
	width: 2.15rem;
	height: 2.15rem;
	border: 0;
	background: transparent;
	color: #111827;
	font: inherit;
	font-weight: 900;
	text-align: center;
}

.nova-cart-sidebar-item__quantity button {
	cursor: pointer;
}

.nova-cart-sidebar-item__quantity button:hover:not(:disabled),
.nova-cart-sidebar-item__quantity button:focus-visible:not(:disabled) {
	background: #f1f5f9;
	color: #0f766e;
}

.nova-cart-sidebar-item__quantity button:disabled,
.nova-cart-sidebar-item__quantity input:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.nova-cart-sidebar-item__quantity input {
	-moz-appearance: textfield;
}

.nova-cart-sidebar-item__quantity input::-webkit-outer-spin-button,
.nova-cart-sidebar-item__quantity input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.nova-cart-sidebar__totals {
	margin-top: 1rem;
}

.nova-cart-sidebar__coupon {
	display: grid;
	gap: 0.55rem;
	margin-top: 1rem;
	padding: 1rem;
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 10px;
	background: #ffffff;
}

.nova-cart-sidebar__coupon label {
	color: #334155;
	font-size: 0.82rem;
	font-weight: 900;
	line-height: 1.2;
}

.nova-cart-sidebar__coupon-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.5rem;
}

.nova-cart-sidebar__coupon input {
	width: 100%;
	min-height: 2.65rem;
	padding: 0.7rem 0.8rem;
	border: 1px solid rgba(15, 23, 42, 0.12);
	border-radius: 8px;
	background: #ffffff;
	color: #111827;
	font: inherit;
}

.nova-cart-sidebar__coupon input:focus {
	border-color: #0f766e;
	outline: 2px solid rgba(15, 118, 110, 0.14);
	outline-offset: 1px;
}

.nova-cart-sidebar__coupon button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.65rem;
	padding: 0.7rem 0.9rem;
	border: 1px solid #111827;
	border-radius: 8px;
	background: #111827;
	color: #ffffff;
	font: inherit;
	font-weight: 900;
	line-height: 1;
	cursor: pointer;
}

.nova-cart-sidebar__coupon button:hover:not(:disabled),
.nova-cart-sidebar__coupon button:focus-visible:not(:disabled) {
	border-color: #0f766e;
	background: #0f766e;
}

.nova-cart-sidebar__coupon button:disabled,
.nova-cart-sidebar__coupon input:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.nova-cart-sidebar__totals .cart-collaterals,
.nova-cart-sidebar__totals .cart_totals {
	width: 100%;
	float: none;
}

.nova-cart-sidebar__totals .cart_totals {
	padding: 1rem;
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 10px;
	background: #ffffff;
}

.nova-cart-sidebar__totals .cart_totals h2,
.nova-cart-sidebar__totals .wc-proceed-to-checkout {
	display: none;
}

.nova-cart-sidebar__totals table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}

.nova-cart-sidebar__totals th,
.nova-cart-sidebar__totals td {
	padding: 0.55rem 0;
	border-bottom: 1px solid rgba(15, 23, 42, 0.08);
	text-align: left;
	vertical-align: top;
}

.nova-cart-sidebar__totals td {
	text-align: right;
}

.nova-cart-sidebar__totals tr:last-child th,
.nova-cart-sidebar__totals tr:last-child td {
	border-bottom: 0;
}

.nova-cart-sidebar__secondary,
.nova-cart-sidebar__checkout,
.nova-cart-sidebar__empty-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.78rem 1rem;
	border-radius: 8px;
	font-weight: 900;
	line-height: 1;
	text-align: center;
	text-decoration: none;
}

.nova-cart-sidebar__secondary {
	border: 1px solid rgba(15, 23, 42, 0.12);
	background: #ffffff;
	color: #111827;
}

.nova-cart-sidebar__checkout,
.nova-cart-sidebar__empty-link {
	border: 1px solid #111827;
	background: #111827;
	color: #ffffff;
}

.nova-cart-sidebar__secondary:hover,
.nova-cart-sidebar__secondary:focus-visible,
.nova-cart-sidebar__checkout:hover,
.nova-cart-sidebar__checkout:focus-visible,
.nova-cart-sidebar__empty-link:hover,
.nova-cart-sidebar__empty-link:focus-visible {
	border-color: #0f766e;
	background: #0f766e;
	color: #ffffff;
}

.nova-cart-sidebar__empty {
	display: grid;
	justify-items: center;
	gap: 1rem;
	padding: 3rem 1rem;
	border: 1px dashed #cbd5e1;
	border-radius: 10px;
	background: #ffffff;
	text-align: center;
}

.nova-cart-sidebar__empty-icon {
	display: grid;
	place-items: center;
	width: 4rem;
	height: 4rem;
	border-radius: 999px;
	background: #ecfdf5;
	color: #0f766e;
	font-size: 1.5rem;
}

.nova-cart-sidebar__empty p {
	margin: 0;
	color: #334155;
	font-weight: 800;
}

@media (max-width: 640px) {
	.nova-cart-widget {
		align-items: stretch;
		flex-direction: column;
	}

	.nova-cart-widget__button,
	.nova-cart-widget__launcher {
		width: 100%;
	}

	.nova-cart-sidebar__panel {
		width: min(100vw, 420px);
	}

	.nova-cart-sidebar__header,
	.nova-cart-sidebar__body,
	.nova-cart-sidebar__footer {
		padding: 0.85rem;
	}

	.nova-cart-sidebar__footer {
		display: grid;
		grid-template-columns: 1fr;
	}

	.nova-cart-sidebar-item {
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 0.7rem;
		padding: 0.7rem;
	}

	.nova-cart-sidebar-item__top,
	.nova-cart-sidebar-item__bottom {
		align-items: start;
		flex-direction: column;
	}

	.nova-cart-sidebar-item__remove {
		position: absolute;
	}

	.nova-cart-sidebar-item {
		position: relative;
	}

	.nova-cart-sidebar-item__remove {
		top: 0.55rem;
		right: 0.55rem;
	}

	.nova-cart-sidebar-item__name {
		padding-right: 2rem;
	}

	.nova-cart-sidebar__coupon-row {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nova-cart-widget__button,
	.nova-cart-widget__launcher,
	.nova-cart-sidebar__backdrop,
	.nova-cart-sidebar__panel {
		transition-duration: 0ms;
	}
}
