/* Phase 16 — premium WooCommerce experience */

.tonakai-button__spinner {
	border: 2px solid rgba(17, 24, 39, 0.18);
	border-radius: 999px;
	border-top-color: #111827;
	display: none;
	height: 16px;
	margin-left: 8px;
	width: 16px;
}

.is-loading .tonakai-button__label {
	opacity: 0.72;
}

.is-loading .tonakai-button__spinner {
	animation: tonakai-spin 640ms linear infinite;
	display: inline-block;
}

.is-success {
	animation: tonakai-pulse-success 640ms ease;
}

@keyframes tonakai-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes tonakai-pulse-success {
	0% {
		transform: scale(1);
	}

	40% {
		transform: scale(1.04);
	}

	100% {
		transform: scale(1);
	}
}

.tonakai-toast-stack {
	bottom: 24px;
	display: grid;
	gap: 10px;
	justify-items: end;
	pointer-events: none;
	position: fixed;
	right: 24px;
	z-index: 1200;
}

.tonakai-toast {
	animation: tonakai-toast-in 220ms ease;
	background: var(--tonakai-bg-soft);
	border: 1px solid var(--tonakai-line-strong);
	border-radius: var(--tonakai-radius-lg);
	box-shadow: var(--tonakai-shadow);
	color: var(--tonakai-text);
	font-size: 0.92rem;
	font-weight: 850;
	max-width: min(92vw, 360px);
	padding: 14px 16px;
	pointer-events: auto;
}

.tonakai-toast--error {
	border-color: rgba(239, 68, 68, 0.48);
}

.tonakai-toast--success {
	border-color: rgba(214, 162, 28, 0.52);
}

@keyframes tonakai-toast-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.site-action--cart.is-bump .site-action__count {
	animation: tonakai-cart-bump 520ms ease;
}

@keyframes tonakai-cart-bump {
	0%,
	100% {
		transform: scale(1);
	}

	50% {
		transform: scale(1.18);
	}
}

.tonakai-mini-cart__items {
	display: grid;
	gap: 12px;
	list-style: none;
	margin: 0;
	max-height: min(52vh, 420px);
	overflow: auto;
	padding: 0;
}

.tonakai-mini-cart__item {
	align-items: flex-start;
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid var(--tonakai-line);
	border-radius: var(--tonakai-radius);
	display: grid;
	gap: 12px;
	grid-template-columns: 88px minmax(0, 1fr);
	padding: 12px;
	transition: border-color 160ms ease, transform 160ms ease;
	width: 100%;
}

.tonakai-mini-cart__item:hover {
	border-color: var(--tonakai-line-strong);
}

.tonakai-mini-cart__item-media img {
	border-radius: var(--tonakai-radius);
	display: block;
	float: none;
	height: 88px;
	margin: 0;
	object-fit: cover;
	width: 88px;
}

.tonakai-mini-cart__item-body {
	display: grid;
	gap: 8px;
	min-width: 0;
	width: 100%;
}

.tonakai-mini-cart__item-title {
	color: var(--tonakai-text);
	font-size: 0.92rem;
	font-weight: 900;
	line-height: 1.35;
	min-width: 0;
	text-decoration: none;
	white-space: normal;
	word-break: break-word;
}

.tonakai-mini-cart__item-head {
	align-items: flex-start;
	display: flex;
	gap: 8px;
	justify-content: space-between;
	min-width: 0;
}

.tonakai-mini-cart__item-title:hover {
	color: var(--tonakai-gold-soft);
}

.tonakai-mini-cart__remove {
	align-items: center;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--tonakai-line);
	border-radius: 999px;
	color: var(--tonakai-text-muted);
	display: inline-flex;
	font-size: 1rem;
	height: 28px;
	justify-content: center;
	line-height: 1;
	text-decoration: none;
	width: 28px;
	flex: 0 0 28px;
}

.tonakai-mini-cart__remove:hover {
	border-color: rgba(239, 68, 68, 0.48);
	color: #fca5a5;
}

.tonakai-mini-cart__item-meta,
.tonakai-mini-cart__quantity {
	color: var(--tonakai-gold-soft);
	font-size: 0.84rem;
	font-weight: 900;
}

.tonakai-mini-cart__item-meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: space-between;
	width: 100%;
}

.tonakai-mini-cart__qty {
	align-items: center;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid var(--tonakai-line);
	border-radius: 999px;
	display: inline-flex;
	gap: 2px;
	padding: 2px;
	flex: 0 0 auto;
}

.tonakai-mini-cart__qty-btn {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 999px;
	color: var(--tonakai-text);
	cursor: pointer;
	display: inline-flex;
	font-size: 1rem;
	font-weight: 900;
	height: 32px;
	justify-content: center;
	line-height: 1;
	min-width: 32px;
	padding: 0;
}

.tonakai-mini-cart__qty-btn:hover,
.tonakai-mini-cart__qty-btn:focus-visible {
	background: rgba(214, 162, 28, 0.14);
	color: var(--tonakai-gold-soft);
	outline: none;
}

.tonakai-mini-cart__qty-input {
	appearance: textfield;
	background: transparent;
	border: 0;
	color: var(--tonakai-text);
	font-size: 0.86rem;
	font-weight: 900;
	min-width: 28px;
	padding: 0;
	text-align: center;
	width: 36px;
}

.tonakai-mini-cart__qty-input::-webkit-outer-spin-button,
.tonakai-mini-cart__qty-input::-webkit-inner-spin-button {
	appearance: none;
	margin: 0;
}

.tonakai-mini-cart__line-price {
	color: var(--tonakai-gold-soft);
	font-size: 0.88rem;
	font-weight: 950;
	flex: 0 0 auto;
}

.tonakai-mini-cart__footer {
	border-top: 1px solid var(--tonakai-line);
	display: grid;
	gap: 12px;
	margin-top: 14px;
	padding-top: 14px;
}

.tonakai-mini-cart__total {
	align-items: baseline;
	color: var(--tonakai-text);
	display: flex;
	font-size: 0.95rem;
	justify-content: space-between;
	margin: 0;
}

.tonakai-mini-cart__total span {
	color: var(--tonakai-gold-soft);
	font-size: 1.08rem;
	font-weight: 950;
}

.tonakai-mini-cart__buttons {
	display: grid;
	gap: 10px;
	grid-template-columns: 1fr 1fr;
}

.tonakai-mini-cart__buttons .button,
.tonakai-mini-cart__buttons .checkout {
	align-items: center;
	border-radius: var(--tonakai-radius);
	display: inline-flex;
	font-size: 0.82rem;
	font-weight: 950;
	justify-content: center;
	min-height: 44px;
	overflow: hidden;
	text-align: center;
	text-overflow: ellipsis;
	text-transform: uppercase;
	white-space: nowrap;
}

.tonakai-mini-cart .woocommerce-mini-cart-item img,
.tonakai-mini-cart .woocommerce-mini-cart-item a img {
	float: none !important;
	margin: 0 !important;
	max-width: 100%;
}

.tonakai-mini-cart__buttons .button.checkout,
.tonakai-mini-cart__buttons .checkout {
	background: var(--tonakai-gold);
	border-color: var(--tonakai-gold);
	color: #111827;
}

.tonakai-mini-cart__buttons .button.wc-forward {
	background: transparent;
	border: 1px solid var(--tonakai-line);
	color: var(--tonakai-text);
}

.site-mini-cart__panel {
	max-width: min(92vw, 360px);
	width: 360px;
}

.tonakai-product-card__actions .button,
.tonakai-product-card__actions .add_to_cart_button,
.tonakai-product-card__actions .tonakai-product-card__button {
	background: var(--tonakai-gold) !important;
	border: 1px solid var(--tonakai-gold) !important;
	color: #111827 !important;
}

.tonakai-product-card__actions .button:hover,
.tonakai-product-card__actions .add_to_cart_button:hover,
.tonakai-product-card__actions .tonakai-product-card__button:hover {
	background: var(--tonakai-gold-soft) !important;
	border-color: var(--tonakai-gold-soft) !important;
	color: #111827 !important;
}

.tonakai-mini-cart__continue,
.tonakai-mini-cart--empty .tonakai-mini-cart__continue {
	color: var(--tonakai-gold-soft);
	display: inline-flex;
	font-size: 0.82rem;
	font-weight: 900;
	justify-content: center;
	text-decoration: none;
}

.tonakai-mini-cart__continue:hover {
	color: var(--tonakai-text);
}

.tonakai-mini-cart--empty,
.tonakai-mini-cart__empty {
	display: grid;
	gap: 10px;
	text-align: center;
}

.tonakai-mini-cart__empty strong {
	color: var(--tonakai-text);
	font-size: 1rem;
}

.tonakai-mini-cart__empty span {
	color: var(--tonakai-text-muted);
	font-size: 0.88rem;
}

.site-mini-cart__panel,
.tonakai-cart-drawer__content {
	animation: tonakai-panel-in 180ms ease;
}

@keyframes tonakai-panel-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.tonakai-buy-now-button {
	background: transparent;
	border: 1px solid var(--tonakai-line-strong);
	border-radius: var(--tonakai-radius);
	color: var(--tonakai-gold-soft);
	font-weight: 950;
	margin-top: 10px;
	min-height: 50px;
	width: 100%;
}

.tonakai-buy-now-button:hover,
.tonakai-buy-now-button:focus-visible {
	background: rgba(214, 162, 28, 0.12);
	color: var(--tonakai-text);
}

.tonakai-single-product form.cart .single_add_to_cart_button.is-loading,
.tonakai-product-card__actions .is-loading {
	pointer-events: none;
}

.tonakai-empty-state {
	align-items: center;
	display: grid;
	gap: 12px;
	justify-items: center;
	padding: 42px 28px;
	text-align: center;
}

.tonakai-empty-state__icon {
	background:
		radial-gradient(circle at 50% 35%, rgba(214, 162, 28, 0.24), transparent 62%),
		rgba(255, 255, 255, 0.04);
	border: 1px solid var(--tonakai-line);
	border-radius: 999px;
	height: 64px;
	position: relative;
	width: 64px;
}

.tonakai-empty-state__icon::after {
	color: var(--tonakai-gold-soft);
	content: "★";
	font-size: 1.4rem;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -52%);
}

.tonakai-empty-state__cta {
	margin-top: 6px;
}

.tonakai-empty-cart {
	align-items: center;
	display: grid;
	gap: 12px;
	justify-items: center;
	padding: 28px;
	text-align: center;
}

.tonakai-empty-cart strong {
	color: var(--tonakai-text);
	font-size: 1.2rem;
}

.tonakai-empty-cart span {
	color: var(--tonakai-text-muted);
}

.tonakai-product-card.is-added {
	animation: tonakai-card-added 640ms ease;
}

@keyframes tonakai-card-added {
	0% {
		box-shadow: 0 0 0 rgba(214, 162, 28, 0);
	}

	40% {
		box-shadow: 0 0 0 2px rgba(214, 162, 28, 0.42);
	}

	100% {
		box-shadow: var(--tonakai-shadow-soft);
	}
}

.tonakai-product-card__image.is-loading {
	position: relative;
}

.tonakai-product-card__image.is-loading::after {
	animation: tonakai-shimmer 1.2s linear infinite;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
	content: "";
	inset: 0;
	position: absolute;
}

@keyframes tonakai-shimmer {
	from {
		transform: translateX(-100%);
	}

	to {
		transform: translateX(100%);
	}
}

.woocommerce div.product.tonakai-single-product div.images .woocommerce-product-gallery__image {
	transition: opacity 180ms ease, transform 180ms ease;
}

.woocommerce div.product.tonakai-single-product div.images .flex-control-thumbs li {
	transition: transform 160ms ease, border-color 160ms ease;
}

.woocommerce div.product.tonakai-single-product div.images .flex-control-thumbs li:hover {
	transform: translateY(-1px);
}

.tonakai-product-card__image {
	aspect-ratio: 1 / 1.05;
	overflow: hidden;
}

.tonakai-product-card__image img {
	height: 100%;
	object-fit: cover;
	transition: transform 220ms ease;
	width: 100%;
}

.tonakai-product-card:hover .tonakai-product-card__image img,
.tonakai-product-card:focus-within .tonakai-product-card__image img {
	transform: scale(1.04);
}

.tonakai-empty-state--category .tonakai-empty-state__icon::after {
	content: "◆";
}

.tonakai-wishlist-page .tinv-wishlist .product-remove,
.tonakai-wishlist-page .wishlist-empty,
.tonakai-wishlist-page .tinvwl-empty {
	margin: 0 auto;
	max-width: 520px;
	text-align: center;
}

.tonakai-wishlist-page .wishlist-empty,
.tonakai-wishlist-page .tinvwl-empty {
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid var(--tonakai-line);
	border-radius: var(--tonakai-radius-lg);
	color: var(--tonakai-text-muted);
	display: grid;
	gap: 12px;
	padding: 36px 24px;
}

.tonakai-wishlist-page .wishlist-empty::before,
.tonakai-wishlist-page .tinvwl-empty::before {
	color: var(--tonakai-gold-soft);
	content: "★";
	display: block;
	font-size: 1.6rem;
}

@media (max-width: 900px) {
	.woocommerce div.product.tonakai-single-product div.images.woocommerce-product-gallery {
		touch-action: pan-y;
	}

	.woocommerce div.product.tonakai-single-product div.images .flex-control-thumbs {
		display: flex;
		gap: 8px;
		margin-top: 12px;
		overflow-x: auto;
		padding-bottom: 4px;
		scroll-snap-type: x mandatory;
	}

	.woocommerce div.product.tonakai-single-product div.images .flex-control-thumbs li {
		flex: 0 0 72px;
		scroll-snap-align: start;
	}
}

.tonakai-search-skeleton span {
	animation: tonakai-shimmer 1.2s linear infinite;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03));
	border-radius: var(--tonakai-radius);
	display: block;
	height: 54px;
}

.tonakai-search-skeleton {
	display: grid;
	gap: 10px;
}

@media (max-width: 700px) {
	.tonakai-toast-stack {
		bottom: 88px;
		left: 16px;
		right: 16px;
	}

	.tonakai-toast {
		max-width: none;
		width: 100%;
	}

	.tonakai-mini-cart__buttons {
		grid-template-columns: 1fr;
	}

	.site-mini-cart__panel {
		max-width: calc(100vw - 16px);
		right: 0;
		width: calc(100vw - 16px);
	}

	.tonakai-mini-cart__item {
		grid-template-columns: 72px minmax(0, 1fr);
	}

	.tonakai-mini-cart__item-media img {
		height: 72px;
		width: 72px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tonakai-toast,
	.site-mini-cart__panel,
	.tonakai-cart-drawer__content,
	.tonakai-product-card.is-added,
	.tonakai-product-card__image.is-loading::after,
	.tonakai-search-skeleton span {
		animation: none;
	}
}
