/* ==========================================================================
   Otaku Figur — Dark cinematic single-product page (PDP)
   Scoped to body.single-product so no other page is affected.
   Brand: black #000, red #e63946, gold #d4af37, gray text #c7cbd1.
   ========================================================================== */

/* --- Page background --- */
body.single-product,
body.single-product .site-content,
body.single-product .content-area,
body.single-product .product-details-wrapper,
body.single-product #primary {
	background: #000;
	color: #fff;
}
body.single-product .product-details-wrapper {
	padding-top: 8px;
}

/* --- Breadcrumb: START / SHOP / ANIME FIGUREN / POKÉMON / TITLE --- */
body.single-product .woocommerce-breadcrumb {
	color: #8a8f98;
	font-size: 12px;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 18px 0 10px;
	margin: 0;
}
body.single-product .woocommerce-breadcrumb a {
	color: #b9bec7;
	text-decoration: none;
}
body.single-product .woocommerce-breadcrumb a:hover {
	color: #fff;
}
body.single-product .woocommerce-breadcrumb .breadcrumb-separator {
	color: #555;
	margin: 0 6px;
}

/* --- Gallery: black stage, arrows, thumbnail row --- */
body.single-product .product .woocommerce-product-gallery {
	background: #000;
}
body.single-product .product .woocommerce-product-gallery .flex-viewport {
	background: #000;
}
body.single-product .product .woocommerce-product-gallery__wrapper img {
	object-fit: contain;
}
body.single-product .product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	background: rgba(0, 0, 0, 0.65);
	color: #fff;
	border-radius: 50%;
}
body.single-product .product .woocommerce-product-gallery .flex-direction-nav a {
	opacity: 1;
	background: rgba(0, 0, 0, 0.65);
	color: #fff;
	width: 44px;
	height: 44px;
	line-height: 44px;
	border-radius: 50%;
	text-align: center;
	margin-top: -22px;
}
body.single-product .product .woocommerce-product-gallery .flex-direction-nav a::before,
body.single-product .product .woocommerce-product-gallery .flex-direction-nav a::after {
	color: #fff;
	line-height: 44px;
}
body.single-product .product .woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 0;
	padding: 0;
}
body.single-product .product .woocommerce-product-gallery .flex-control-thumbs li {
	flex: 0 0 72px;
	width: 72px;
	height: 72px;
	min-width: 0;
	float: none;
	margin: 0;
}
body.single-product .product .woocommerce-product-gallery .flex-control-thumbs li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 1px solid #333;
	border-radius: 6px;
	opacity: 0.75;
}
body.single-product .product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
body.single-product .product .woocommerce-product-gallery .flex-control-thumbs li:hover img {
	border-color: #d4af37;
	opacity: 1;
}

/* --- Summary --- */
body.single-product .product .summary {
	color: #fff;
}
body.single-product .product .summary > .clear {
	display: none;
}
/* Safety: hide theme badges rendered outside the price row (duplicates). */
body.single-product .product .summary > .onsale,
body.single-product .product .summary > .sale-item.product-label {
	display: none;
}

.otaku-eyebrow {
	color: #e63946;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	margin-bottom: 10px;
}
body.single-product .product .summary h1.product_title {
	color: #fff;
	font-size: 42px;
	line-height: 1.1;
	font-weight: 800;
	margin: 0 0 10px;
}
.otaku-subtitle {
	color: #d4af37;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: 14px;
}

/* Rating: gold stars + gray review count. */
body.single-product .product .summary .woocommerce-product-rating {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 16px;
}
body.single-product .product .summary .woocommerce-product-rating .star-rating {
	color: #ffb400;
	font-size: 15px;
}
body.single-product .product .summary .woocommerce-product-rating .star-rating::before {
	color: #4b5563;
}
body.single-product .product .summary .woocommerce-product-rating a {
	color: #9ca3af;
	font-size: 14px;
	text-decoration: none;
}
body.single-product .product .summary .woocommerce-product-rating a:hover {
	color: #fff;
}

/* Price row: price + -X% badge + Angebot badge on one line. */
.otaku-price-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 4px 0 16px;
}
.otaku-price-row .price {
	color: #e63946;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	margin: 0;
}
.otaku-price-row .price del {
	color: #8a8f98;
	font-size: 20px;
	font-weight: 500;
	margin-right: 8px;
}
.otaku-price-row .price del .amount {
	color: #8a8f98;
}
.otaku-price-row .price ins {
	text-decoration: none;
}
.otaku-price-row .sale-item.product-label {
	background: #e63946;
	color: #fff;
	border-radius: 6px;
	padding: 4px 10px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	position: static;
	width: auto;
	height: auto;
}
.otaku-price-row .sale-item.product-label::before {
	display: none;
}
.otaku-angebot-badge {
	background: rgba(230, 57, 70, 0.15);
	border: 1px solid #e63946;
	color: #ff6b76;
	border-radius: 6px;
	padding: 3px 10px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
}

/* Trust line. */
.otaku-trust-line {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	color: #c7cbd1;
	font-size: 13.5px;
	line-height: 1.5;
	margin-bottom: 18px;
}
.otaku-trust-line span {
	display: inline-block;
}
.otaku-trust-line span::first-letter {
	color: #22c55e;
	font-weight: 700;
}

/* Short description. */
body.single-product .product .summary .woocommerce-product-details__short-description {
	color: #c7cbd1;
	font-size: 15.5px;
	line-height: 1.7;
	margin-bottom: 22px;
}
body.single-product .product .summary .woocommerce-product-details__short-description p {
	color: #c7cbd1;
}
body.single-product .product .summary .woocommerce-product-details__short-description b,
body.single-product .product .summary .woocommerce-product-details__short-description strong {
	color: #fff;
}

/* Quantity + Add to cart. */
body.single-product .product .summary .quantity input.qty {
	background: #111;
	border: 1px solid #333;
	color: #fff;
	border-radius: 8px;
	height: 50px;
	width: 72px;
	font-size: 16px;
}
body.single-product .product .summary .quantity .plus,
body.single-product .product .summary .quantity .minus {
	background: #111;
	border: 1px solid #333;
	color: #fff;
}
body.single-product .product .summary .single_add_to_cart_button {
	background: #e63946 !important;
	color: #fff !important;
	border: 0;
	border-radius: 999px !important;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 700;
	font-size: 15px;
	padding: 15px 36px;
	line-height: 1.4;
	transition: background 0.2s ease, transform 0.15s ease;
}
body.single-product .product .summary .single_add_to_cart_button:hover {
	background: #c82333 !important;
	transform: translateY(-1px);
}
body.single-product .product .summary .single_add_to_cart_button:disabled,
body.single-product .product .summary .single_add_to_cart_button.disabled {
	opacity: 0.5;
	transform: none;
}

/* Variations (variable products). */
body.single-product .product .summary table.variations {
	width: 100%;
	margin-bottom: 6px;
}
body.single-product .product .summary table.variations td.label label {
	color: #fff;
	font-weight: 600;
}
body.single-product .product .summary table.variations select {
	background: #111;
	color: #fff;
	border: 1px solid #333;
	border-radius: 8px;
	padding: 11px 12px;
	width: 100%;
}
body.single-product .product .summary a.reset_variations {
	color: #d4af37;
	font-size: 13px;
}
body.single-product .product .summary .woocommerce-variation-price .price {
	color: #e63946;
	font-size: 24px;
	font-weight: 800;
}
body.single-product .product .summary .woocommerce-variation-availability .stock,
body.single-product .product .summary .stock {
	color: #22c55e;
}
body.single-product .product .summary .out-of-stock {
	color: #e63946;
}

/* Payment icons: Visa + Mastercard only (PayPal is NOT enabled). */
.otaku-payments {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 18px 0;
}
.otaku-pay-badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: #fff;
	color: #111;
	border-radius: 6px;
	padding: 7px 13px;
	font-weight: 800;
	font-size: 13px;
	line-height: 1;
}
.otaku-pay-visa {
	font-style: italic;
	letter-spacing: 1px;
}
.otaku-mc-circles {
	display: inline-flex;
}
.otaku-mc-circles i {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	display: block;
}
.otaku-mc-circles i:first-child {
	background: #eb001b;
}
.otaku-mc-circles i:last-child {
	background: #f79e1b;
	margin-left: -6px;
	opacity: 0.9;
}
.otaku-pay-secure {
	color: #9ca3af;
	font-size: 12.5px;
	margin-left: 4px;
}

/* Promo card (text/CSS only — no character artwork). */
.otaku-promo-card {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	background: linear-gradient(135deg, #1c1c1e, #111);
	border: 1px solid #333;
	border-radius: 12px;
	padding: 18px;
	margin: 0 0 14px;
}
.otaku-promo-flash {
	font-size: 34px;
	line-height: 1;
}
.otaku-promo-title {
	color: #fff;
	font-weight: 800;
	font-size: 19px;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	line-height: 1.3;
}
.otaku-promo-sub {
	color: #ff5252;
	font-weight: 800;
	font-size: 16px;
	margin: 5px 0 12px;
}
.otaku-promo-code {
	display: inline-block;
	border: 1.5px dashed #d4af37;
	color: #d4af37;
	border-radius: 6px;
	padding: 5px 12px;
	font-size: 14px;
	letter-spacing: 1px;
	margin-bottom: 12px;
}
.otaku-promo-cta {
	display: block;
	color: #d4af37;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
}
.otaku-promo-cta:hover {
	text-decoration: underline;
	color: #ffd166;
}

/* Coupon hint bar. */
.otaku-coupon-hint {
	background: #111;
	border: 1px solid #2a2a2a;
	border-radius: 8px;
	padding: 13px 16px;
	color: #d9d9d9;
	font-size: 14px;
	margin-bottom: 8px;
}
.otaku-coupon-hint strong {
	color: #ffd166;
}

/* Hide the leftover demo widget in the summary (external demo image +
   duplicated shipping/payment info). */
body.single-product .product .summary .product-widget {
	display: none;
}

/* Prev/next product links. */
body.single-product .shoptimizer-product-prevnext a {
	color: #888;
}
body.single-product .shoptimizer-product-prevnext a:hover {
	color: #fff;
}

/* --- Tabs: BESCHREIBUNG / REZENSIONEN --- */
body.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 32px;
	border-bottom: 1px solid #333;
	padding: 0;
	margin: 0 0 26px;
}
body.single-product .woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after {
	display: none;
}
body.single-product .woocommerce-tabs ul.tabs li a {
	color: #9ca3af;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 14px;
	padding: 0 0 12px;
	display: block;
	text-decoration: none;
}
body.single-product .woocommerce-tabs ul.tabs li.active a {
	color: #fff;
	border-bottom: 2px solid #d4af37;
}
body.single-product .woocommerce-Tabs-panel {
	background: transparent;
	color: #c7cbd1;
}

/* Kill the theme's white top border above the tabs (the thin white line). */
body.single-product .woocommerce-tabs.wc-tabs-wrapper {
	border: 0 !important;
	border-top: 0 !important;
}
body.single-product .woocommerce-tabs {
	border-top: 0 !important;
	box-shadow: none !important;
}
body.single-product .woocommerce-Tabs-panel h2,
body.single-product .woocommerce-Tabs-panel h3 {
	color: #fff;
}
body.single-product .woocommerce-Tabs-panel p {
	color: #c7cbd1;
	line-height: 1.75;
}

/* Reviews. */
body.single-product #reviews .woocommerce-Reviews-title {
	color: #fff;
}
body.single-product #reviews .commentlist .comment-text {
	background: #111;
	border: 1px solid #222;
}
body.single-product #reviews .commentlist .meta,
body.single-product #reviews .commentlist .meta strong {
	color: #e8e8e8;
}
body.single-product #reviews .comment-form label {
	color: #fff;
}
body.single-product #review_form input[type="text"],
body.single-product #review_form input[type="email"],
body.single-product #review_form textarea,
body.single-product #review_form select,
body.single-product .comment-form input[type="text"],
body.single-product .comment-form input[type="email"],
body.single-product .comment-form textarea {
	background: #111;
	border: 1px solid #333;
	color: #fff;
	border-radius: 8px;
}
body.single-product #respond input#submit,
body.single-product .comment-form input#submit {
	background: #e63946;
	color: #fff;
	border: 0;
	border-radius: 999px;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 1px;
}

/* --- Related products + meta --- */
body.single-product .related.products > h2,
body.single-product .related-wrapper > h2,
body.single-product .upsells.products > h2 {
	color: #fff;
}
body.single-product .related.products .woocommerce-loop-product__title,
body.single-product .upsells.products .woocommerce-loop-product__title {
	color: #fff;
}
body.single-product .related.products .price,
body.single-product .upsells.products .price {
	color: #e63946;
}
body.single-product .related.products .product__categories a,
body.single-product .upsells.products .product__categories a {
	color: #9ca3af;
}
body.single-product .product_meta {
	color: #fff !important;
	font-size: 13px;
}
body.single-product .product_meta a {
	color: #d4af37 !important;
	text-decoration: none;
}
body.single-product .product_meta .sku {
	color: #d4af37 !important;
}

/* --- Sticky add-to-cart bar --- */
body.single-product .shoptimizer-sticky-add-to-cart {
	background: #111;
	border-top: 1px solid #333 !important;
	border-bottom: 0 !important;
	color: #fff;
}
/* Theme paints the inner .col-full white — that was the visible white bar. */
body.single-product .site-content .shoptimizer-sticky-add-to-cart .col-full,
body.single-product .shoptimizer-sticky-add-to-cart .col-full {
	background: #111 !important;
	background-color: #111 !important;
}
body.single-product .shoptimizer-sticky-add-to-cart__content-price,
body.single-product .shoptimizer-sticky-add-to-cart__content-price .amount {
	color: #e63946 !important;
}
body.single-product .shoptimizer-sticky-add-to-cart__content-title {
	color: #fff !important;
}
body.single-product .shoptimizer-sticky-add-to-cart .shoptimizer-sticky-add-to-cart__content-product-info {
	color: #fff;
}
body.single-product .shoptimizer-sticky-add-to-cart .price {
	color: #e63946;
}

/* --- Notices on PDP --- */
body.single-product .woocommerce-message,
body.single-product .woocommerce-info {
	background: #111;
	border: 1px solid #333;
	border-top-color: #d4af37;
	color: #e8e8e8;
}
body.single-product .woocommerce-error {
	background: #1c0d0d;
	border: 1px solid #e63946;
	color: #ffd7da;
}

/* ==========================================================================
   Mobile: stack gallery above summary, everything readable, no overflow.
   ========================================================================== */
@media (max-width: 992px) {
	body.single-product .woocommerce-breadcrumb {
		font-size: 11px;
		letter-spacing: 0.5px;
		padding: 12px 0 6px;
	}
	body.single-product .product .summary h1.product_title {
		font-size: 30px;
	}
	.otaku-subtitle {
		font-size: 17px;
	}
	.otaku-price-row .price {
		font-size: 26px;
	}
	.otaku-price-row .price del {
		font-size: 17px;
	}
	.otaku-promo-card {
		padding: 14px;
	}
	.otaku-promo-title {
		font-size: 16px;
	}
	.otaku-promo-flash {
		font-size: 26px;
	}
	body.single-product .woocommerce-tabs ul.tabs {
		overflow-x: auto;
		flex-wrap: nowrap;
		gap: 22px;
		scrollbar-width: thin;
	}
	body.single-product .woocommerce-tabs ul.tabs li {
		flex-shrink: 0;
	}
	body.single-product .product .summary .single_add_to_cart_button {
		padding: 14px 26px;
		font-size: 14px;
	}
	body.single-product .product .woocommerce-product-gallery .flex-direction-nav a {
		width: 38px;
		height: 38px;
		line-height: 38px;
		margin-top: -19px;
	}
}
/* ==========================================================================
   Mobile PDP fixes (2026-10-15): gallery size, header cart, black
   breadcrumb / tabs / reviews / related, quantity stepper, no overflow.
   ========================================================================== */

/* --- Full-page black on PDP: every container below the header --- */
body.single-product .shoptimizer-archive,
body.single-product main.site-main,
body.single-product div.product {
	background: #000;
	color: #fff;
}

/* --- Breadcrumb strip: black, full-bleed --- */
body.single-product .archive-header,
body.single-product .archive-header .col-full {
	background: #000;
}
body.single-product .archive-header {
	border-bottom: 1px solid #1a1a1a;
}

/* --- Tabs / reviews: black --- */
body.single-product .woocommerce-tabs,
body.single-product .woocommerce-Tabs-panel,
body.single-product #reviews,
body.single-product #reviews #comments,
body.single-product #review_form_wrapper,
body.single-product #respond {
	background: #000;
	color: #c7cbd1;
}
body.single-product .woocommerce-tabs ul.tabs {
	background: transparent;
}
body.single-product #reviews #comments ol.commentlist li,
body.single-product #reviews #comments ol.commentlist li .comment_container,
body.single-product #reviews .commentlist .comment {
	background: transparent;
	border-color: #222;
}
body.single-product #reviews #comments ol.commentlist li .comment-text {
	background: #111;
	border: 1px solid #222;
}
body.single-product #reviews .commentlist .description,
body.single-product #reviews .commentlist .description p,
body.single-product #reviews .woocommerce-noreviews,
body.single-product #reviews .comment-notes,
body.single-product #reviews .comment-form-rating label,
body.single-product #reviews .comment-form label,
body.single-product #reviews .comment-reply-title {
	color: #c7cbd1;
}
body.single-product #reviews .comment-reply-title {
	color: #fff;
}
body.single-product #reviews .stars a::before,
body.single-product #reviews .stars a:hover::before,
body.single-product #reviews .stars.selected a::before {
	color: #ffb400;
}
body.single-product #reviews .commentlist .avatar {
	background: #111;
	border: 1px solid #333;
}
body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes,
body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes th,
body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes td {
	background: #000;
	color: #c7cbd1;
	border-color: #222;
}

/* --- Related / upsells: black section + dark cards --- */
body.single-product .related-wrapper,
body.single-product .related.products,
body.single-product .upsells,
body.single-product .upsells.products {
	background: #000;
}
body.single-product .related-wrapper .product_meta {
	background: #000;
	padding-bottom: 20px;
}
body.single-product .related.products li.product,
body.single-product .upsells.products li.product {
	background: #111;
	border: 1px solid #222;
	border-radius: 12px;
	overflow: hidden;
}
body.single-product .related.products li.product .woocommerce-image__wrapper,
body.single-product .upsells.products li.product .woocommerce-image__wrapper {
	background: #000;
}
body.single-product .related.products li.product .woocommerce-card__header,
body.single-product .upsells.products li.product .woocommerce-card__header {
	background: #111;
	padding: 12px 12px 14px;
}
body.single-product .related.products li.product .woocommerce-loop-product__title a,
body.single-product .upsells.products li.product .woocommerce-loop-product__title a {
	color: #fff;
}
body.single-product .related.products li.product .price,
body.single-product .upsells.products li.product .price {
	color: #e63946;
}
body.single-product .related.products li.product .price del,
body.single-product .upsells.products li.product .price del {
	color: #8a8f98;
}
body.single-product .related.products li.product .product__categories a,
body.single-product .upsells.products li.product .product__categories a {
	color: #9ca3af;
}
body.single-product .related.products li.product a.button.add_to_cart_button,
body.single-product .upsells.products li.product a.button.add_to_cart_button {
	background: #e63946;
	color: #fff;
	border: 0;
	border-radius: 999px;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	margin-top: 10px;
}
body.single-product .related.products li.product a.button.add_to_cart_button:hover,
body.single-product .upsells.products li.product a.button.add_to_cart_button:hover {
	background: #c82333;
	color: #fff;
}

/* --- Sticky add-to-cart bars (theme + CommerceKit): dark --- */
body.single-product .commercekit-sticky-add-to-cart,
body.single-product .commercekit-atc-sticky-tabs,
body.single-product .commercekit-atc-sticky-tabs ul.commercekit-atc-tab-links,
body.single-product .commercekit-pdp-sticky-inner,
body.single-product #cgkit-mobile-commercekit-sticky-atc {
	background: #111;
	border-top: 1px solid #333;
	color: #fff;
}
body.single-product .commercekit-atc-sticky-tabs ul.commercekit-atc-tab-links li a {
	color: #fff;
}
body.single-product .commercekit-sticky-add-to-cart .price,
body.single-product .commercekit-atc-sticky-tabs .price {
	color: #e63946;
}
body.single-product .shoptimizer-sticky-add-to-cart__content-button a.button,
body.single-product .commercekit-sticky-add-to-cart a.button {
	background: #e63946;
	color: #fff;
	border: 0;
}

/* --- Mini-cart drawer: dark --- */
#shoptimizerCartDrawer.shoptimizer-mini-cart-wrap {
	background: #0d0d0d;
	color: #e8e8e8;
}
#shoptimizerCartDrawer .widget_shopping_cart,
#shoptimizerCartDrawer .widget_shopping_cart_content,
#shoptimizerCartDrawer .woocommerce-mini-cart {
	background: transparent;
	color: #e8e8e8;
}
#shoptimizerCartDrawer .woocommerce-mini-cart li.mini_cart_item {
	border-bottom: 1px solid #222;
}
#shoptimizerCartDrawer .woocommerce-mini-cart li.mini_cart_item a,
#shoptimizerCartDrawer .woocommerce-mini-cart li.mini_cart_item .quantity {
	color: #e8e8e8;
}
#shoptimizerCartDrawer .woocommerce-mini-cart li.mini_cart_item a.remove {
	color: #e63946 !important;
}
#shoptimizerCartDrawer .woocommerce-mini-cart__total,
#shoptimizerCartDrawer .woocommerce-mini-cart__total strong {
	color: #fff;
}
#shoptimizerCartDrawer .woocommerce-mini-cart__empty-message {
	color: #c7cbd1;
}
#shoptimizerCartDrawer .woocommerce-mini-cart__buttons a.button {
	background: #222;
	color: #fff;
	border: 0;
}
#shoptimizerCartDrawer .woocommerce-mini-cart__buttons a.button.checkout {
	background: #e63946;
	color: #fff;
}

/* ==========================================================================
   Mobile PDP fixes (max-width 992px)
   ========================================================================== */
@media (max-width: 992px) {
	/* No horizontal scroll anywhere on the PDP. */
	body.single-product,
	body.single-product .site-content,
	body.single-product .product,
	body.single-product .summary {
		overflow-x: clip;
	}
	body.single-product img {
		max-width: 100%;
	}

	/* 1. Gallery: cap the main image height so it never towers. */
	body.single-product .product .woocommerce-product-gallery .flex-viewport {
		height: auto !important;
		max-height: 58vh !important;
	}
	body.single-product .product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image {
		text-align: center;
	}
	body.single-product .product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper img {
		max-height: 58vh !important;
		width: auto !important;
		max-width: 100%;
		margin: 0 auto;
		object-fit: contain;
		display: block;
	}
	/* Cap every gallery wrapper layer too — FlexSlider inline heights
	   must never let the main image tower above 58vh. */
	body.single-product .product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
	body.single-product .product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image,
	body.single-product .product .woocommerce-product-gallery .flex-viewport .slides,
	body.single-product .product .woocommerce-product-gallery .flex-viewport .slides li {
		max-height: 58vh !important;
	}
	body.single-product .product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image a {
		max-height: 58vh !important;
		display: block;
	}

	/* Gallery thumbnails: really small strip on mobile. */
	body.single-product .product .woocommerce-product-gallery .flex-control-thumbs li {
		flex: 0 0 60px;
		width: 60px;
		height: 60px;
	}

	/* 2. Header cart: clean outline bag + number, no red block.
	   NOTE: #wp-custom-css sets #masthead .shoptimizer-cart .count to red
	   with !important, so these selectors MUST include #masthead to win. */
	body.single-product #masthead .site-header-cart,
	body.single-product #masthead .shoptimizer-cart,
	body.single-product #masthead .shoptimizer-cart a.cart-contents {
		background: transparent !important;
		background-color: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		padding: 0 !important;
	}
	body.single-product #masthead .shoptimizer-cart {
		position: relative;
	}
	body.single-product #masthead .shoptimizer-cart a.cart-contents .amount {
		display: none !important;
	}
	body.single-product #masthead .shoptimizer-cart a.cart-contents .count {
		display: inline-block;
		position: relative;
		width: 30px;
		height: 30px;
		min-width: 0;
		margin: 0;
		padding: 0;
		background: transparent !important;
		background-color: transparent !important;
		border: 1.5px solid #fff !important;
		border-radius: 4px;
		color: #fff !important;
		font-size: 13px;
		font-weight: 700;
		line-height: 28px;
		text-align: center;
	}
	body.single-product #masthead .shoptimizer-cart a.cart-contents .count::after {
		border-color: #fff !important;
		background: transparent !important;
		background-color: transparent !important;
	}
	body.single-product #masthead .shoptimizer-cart a.cart-contents:hover .count {
		background: transparent !important;
		background-color: transparent !important;
		color: #fff !important;
	}
	body.single-product .shoptimizer-cart-icon svg {
		stroke: #fff;
	}
	body.single-product .shoptimizer-cart a.cart-contents .shoptimizer-cart-icon .mini-count {
		background: #e63946;
		border-color: #e63946;
		color: #fff;
	}

	/* 5. Quantity stepper: flex row, static nav, no overlap. */
	body.single-product .product .summary form.cart,
	body.single-product .product .summary .woocommerce-variation-add-to-cart {
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		gap: 12px;
	}
	body.single-product .product .summary form.cart .quantity,
	body.single-product .product .summary .woocommerce-variation-add-to-cart .quantity {
		display: inline-flex;
		align-items: stretch;
		float: none;
		width: auto;
		margin: 0;
	}
	body.single-product .product .summary form.cart .quantity input.qty,
	body.single-product .product .summary .woocommerce-variation-add-to-cart .quantity input.qty {
		width: 64px;
		height: 50px;
		flex: 0 0 64px;
		border-radius: 8px 0 0 8px;
		margin: 0;
		-moz-appearance: textfield;
		appearance: textfield;
	}
	body.single-product .product .summary form.cart .quantity input.qty::-webkit-outer-spin-button,
	body.single-product .product .summary form.cart .quantity input.qty::-webkit-inner-spin-button {
		-webkit-appearance: none;
		margin: 0;
	}
	body.single-product .product .summary form.cart .quantity .quantity-nav,
	body.single-product .product .summary .woocommerce-variation-add-to-cart .quantity .quantity-nav {
		position: static !important;
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		left: auto !important;
		display: flex !important;
		flex-direction: column;
		width: 44px !important;
		height: 50px;
		flex: 0 0 44px;
		background: #111 !important;
		border: 1px solid #333;
		border-left: 0;
		border-radius: 0 8px 8px 0;
		box-shadow: none;
		overflow: hidden;
	}
	body.single-product .product .summary form.cart .quantity .quantity-nav .quantity-button,
	body.single-product .product .summary .woocommerce-variation-add-to-cart .quantity .quantity-nav .quantity-button {
		position: static !important;
		display: flex !important;
		align-items: center;
		justify-content: center;
		flex: 1 1 50%;
		width: 100% !important;
		height: auto !important;
		background: #111;
		cursor: pointer;
	}
	body.single-product .product .summary form.cart .quantity .quantity-nav .quantity-button:hover,
	body.single-product .product .summary .woocommerce-variation-add-to-cart .quantity .quantity-nav .quantity-button:hover {
		background: #1e1e1e;
	}
	body.single-product .product .summary form.cart .quantity .quantity-nav .quantity-button::before,
	body.single-product .product .summary .woocommerce-variation-add-to-cart .quantity .quantity-nav .quantity-button::before {
		content: "+";
		position: static !important;
		transform: none !important;
		width: auto;
		height: auto;
		margin: 0;
		background: none !important;
		-webkit-mask: none !important;
		mask: none !important;
		color: #fff;
		font-size: 20px;
		font-weight: 700;
		line-height: 1;
	}
	body.single-product .product .summary form.cart .quantity .quantity-nav .quantity-button.quantity-down::before,
	body.single-product .product .summary .woocommerce-variation-add-to-cart .quantity .quantity-nav .quantity-button.quantity-down::before {
		content: "−";
	}
	body.single-product .product .summary form.cart .quantity .quantity-nav .quantity-button + .quantity-button,
	body.single-product .product .summary .woocommerce-variation-add-to-cart .quantity .quantity-nav .quantity-button + .quantity-button {
		border-top: 1px solid #333;
	}

	/* 6. Add-to-cart: full-width on mobile, never clipped. */
	body.single-product .product .summary .single_add_to_cart_button {
		flex: 1 1 100%;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		white-space: normal;
		padding: 15px 20px;
	}

	/* 6. Payment badges: small + wrap. */
	body.single-product .otaku-payments {
		max-width: 100%;
		gap: 8px;
	}
	body.single-product .otaku-pay-badge {
		font-size: 11px;
		padding: 5px 9px;
		flex-shrink: 1;
	}
	body.single-product .otaku-pay-secure {
		flex-basis: 100%;
		margin-left: 0;
	}

	/* 6. Promo card: text wraps, smaller type. */
	body.single-product .otaku-promo-card {
		max-width: 100%;
		box-sizing: border-box;
	}
	body.single-product .otaku-promo-text {
		min-width: 0;
		flex: 1 1 auto;
	}
	body.single-product .otaku-promo-title {
		font-size: 14px;
		overflow-wrap: anywhere;
		word-break: break-word;
	}
	body.single-product .otaku-promo-sub {
		font-size: 13px;
		overflow-wrap: anywhere;
	}
	body.single-product .otaku-promo-flash {
		flex-shrink: 0;
	}
	body.single-product .otaku-coupon-hint {
		overflow-wrap: break-word;
	}

	/* 7. Related: horizontal scroll, smaller boxes, ~2 in view, snap. */
	body.single-product .related.products ul.products,
	body.single-product .upsells.products ul.products {
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		gap: 12px;
		padding: 0 0 8px;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	body.single-product .related.products ul.products::-webkit-scrollbar,
	body.single-product .upsells.products ul.products::-webkit-scrollbar {
		display: none;
	}
	body.single-product .related.products ul.products li.product,
	body.single-product .upsells.products ul.products li.product {
		flex: 0 0 calc(50% - 6px) !important;
		width: calc(50% - 6px) !important;
		max-width: calc(50% - 6px) !important;
		min-width: 0 !important;
		margin: 0 !important;
		float: none !important;
		scroll-snap-align: start;
		height: auto;
	}
	body.single-product .related.products li.product .woocommerce-loop-product__title,
	body.single-product .upsells.products li.product .woocommerce-loop-product__title {
		font-size: 14px;
		line-height: 1.35;
	}
	body.single-product .related.products li.product .price,
	body.single-product .upsells.products li.product .price {
		font-size: 15px;
	}
}

/* Promo banner image (replaces the text promo card). */
body.single-product .otaku-promo-card.otaku-promo-banner {
	display: block;
	padding: 0;
	margin: 0 0 14px;
	background: transparent;
	border: 0;
	overflow: hidden;
	border-radius: 12px;
	box-sizing: border-box;
	max-width: 100%;
}
body.single-product .otaku-promo-card.otaku-promo-banner a {
	display: block;
	line-height: 0;
}
body.single-product .otaku-promo-card.otaku-promo-banner img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	border: 0;
	border-radius: 12px;
}
