/**
 * Totoland Toys — Master Product Detail CSS
 * Single authoritative product-page stylesheet.
 *
 * @package Totoland
 * @version 1.0.0
 *
 * The delivery sidebar must be a child of `.product-image-summary-wrap`
 * for the three-column desktop grid. Keep the existing sidebar relocation
 * JavaScript when it is rendered after `woocommerce_single_product_summary`.
 */

:root {
	--tt-commerce-blue: #00aeef;
	--tt-commerce-pink: #ff5aa5;
	--tt-commerce-green: #58c63a;
	--tt-commerce-yellow: #ffc83d;
	--tt-commerce-dark: #111827;
	--tt-commerce-muted: #667085;
	--tt-commerce-bg: #f8fafc;
	--tt-commerce-border: #e5e7eb;
	--tt-commerce-white: #ffffff;
	--tt-commerce-radius-sm: 10px;
	--tt-commerce-radius-md: 16px;
	--tt-commerce-radius-lg: 22px;
	--tt-commerce-shadow-sm: 0 6px 18px rgba(17, 24, 39, .06);
	--tt-commerce-shadow-md: 0 14px 34px rgba(17, 24, 39, .09);
	--tt-commerce-container: 1500px;
	--tt-commerce-focus: 3px solid var(--tt-commerce-yellow);
	--tt-product-sidebar-width: 330px;
	--tt-product-layout-gap: 30px;
}

/* Shared utilities */
.totoland-commerce-container {
	width: min(100% - 40px, var(--tt-commerce-container));
	margin-inline: auto;
}

.totoland-commerce-card {
	border: 1px solid var(--tt-commerce-border);
	border-radius: var(--tt-commerce-radius-md);
	background: var(--tt-commerce-white);
	box-shadow: var(--tt-commerce-shadow-sm);
}

.totoland-commerce-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
}

.totoland-commerce-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 18px;
	border: 0;
	border-radius: 12px;
	background: var(--tt-commerce-blue);
	color: var(--tt-commerce-white);
	font-weight: 800;
	text-decoration: none;
}

.totoland-commerce-button:hover {
	background: var(--tt-commerce-pink);
	color: var(--tt-commerce-white);
}

/* Main product wrapper */
.single-product .main-page-wrapper,
.single-product .site-content {
	overflow: visible;
}

.single-product .product-image-summary-wrap {
	position: relative;
	width: min(100% - 40px, var(--tt-commerce-container));
	max-width: var(--tt-commerce-container);
	margin-inline: auto;
}

.single-product .product-image-summary-wrap > * {
	min-width: 0;
}

@media (min-width: 1280px) {
	.single-product .product-image-summary-wrap.tt-product-layout-ready,
	.single-product .product-image-summary-wrap:has(> .tt-product-sidebar),
	.single-product .product-image-summary-wrap:has(> .totoland-product-sidebar) {
		display: grid !important;
		grid-template-columns:
			minmax(520px, 1.6fr)
			minmax(410px, 1.15fr)
			minmax(300px, var(--tt-product-sidebar-width));
		gap: var(--tt-product-layout-gap);
		align-items: start;
	}

	.single-product .product-image-summary-wrap > .woocommerce-product-gallery,
	.single-product .product-image-summary-wrap > .product-images,
	.single-product .product-image-summary-wrap > .summary,
	.single-product .product-image-summary-wrap > .wd-product-summary,
	.single-product .product-image-summary-wrap > .tt-product-sidebar,
	.single-product .product-image-summary-wrap > .totoland-product-sidebar {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		float: none !important;
	}

	.single-product .product-image-summary-wrap > .tt-product-sidebar,
	.single-product .product-image-summary-wrap > .totoland-product-sidebar {
		position: static !important;
		grid-column: 3;
		grid-row: 1;
		align-self: start;
	}

	.single-product
		.product-image-summary-wrap:not(.tt-product-layout-ready):not(:has(> .tt-product-sidebar)):not(:has(> .totoland-product-sidebar)) {
		display: grid !important;
		grid-template-columns: minmax(540px, 1.35fr) minmax(430px, 1fr);
		gap: var(--tt-product-layout-gap);
		align-items: start;
	}
}

/* Gallery */
.single-product .woocommerce-product-gallery,
.single-product .product-images,
.single-product .totoland-product-gallery-column {
	min-width: 0;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	float: none !important;
}

@media (min-width: 1280px) {
	.single-product .woocommerce-product-gallery__wrapper,
	.single-product .woocommerce-product-gallery__image,
	.single-product .woocommerce-product-gallery__image a {
		width: 100%;
		min-height: 600px;
	}

	.single-product .woocommerce-product-gallery__image a {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.single-product .woocommerce-product-gallery__image img {
		display: block;
		width: 100% !important;
		height: 600px !important;
		max-width: 100% !important;
		object-fit: contain;
	}
}

.single-product .flex-control-thumbs,
.single-product .thumbnails {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	width: 100%;
	margin-top: 12px;
	padding: 0;
	list-style: none;
}

.single-product .flex-control-thumbs li,
.single-product .thumbnails .product-image-thumbnail {
	flex: 0 0 84px;
	width: 84px !important;
	max-width: 84px !important;
	margin: 0 !important;
}

.single-product .flex-control-thumbs img,
.single-product .thumbnails img {
	display: block;
	width: 84px !important;
	height: 84px !important;
	border: 1px solid var(--tt-commerce-border);
	border-radius: 12px;
	object-fit: contain;
	background: var(--tt-commerce-white);
}

/* Product summary */
.single-product .summary,
.single-product .wd-product-summary,
.single-product .totoland-product-summary-column {
	min-width: 0;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

.single-product .woocommerce-breadcrumb,
.single-product .wd-breadcrumbs,
.single-product .breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	width: 100%;
	margin-bottom: 18px;
	color: var(--tt-commerce-muted);
	line-height: 1.5;
	white-space: normal;
}

.single-product .summary .product_title,
.single-product .wd-product-summary .product_title,
.single-product .totoland-product-summary-column .product_title {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0 0 18px;
	color: var(--tt-commerce-dark);
	font-size: clamp(30px, 2.55vw, 44px);
	line-height: 1.12;
	letter-spacing: -.02em;
	word-break: normal;
	overflow-wrap: break-word;
	white-space: normal;
}

.single-product .summary .price,
.single-product .wd-product-summary .price,
.single-product .totoland-product-summary-column .price {
	margin: 0 0 18px;
	color: var(--tt-commerce-pink);
	font-size: clamp(26px, 2.2vw, 35px);
	font-weight: 800;
	line-height: 1.2;
}

.single-product .woocommerce-product-details__short-description {
	width: 100%;
	max-width: none;
	margin-bottom: 20px;
	color: var(--tt-commerce-muted);
	font-size: 16px;
	line-height: 1.72;
}

.single-product .summary form.cart,
.single-product .wd-product-summary form.cart,
.single-product .totoland-product-summary-column form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin-top: 20px;
}

.single-product .summary form.cart .quantity,
.single-product .wd-product-summary form.cart .quantity {
	flex: 0 0 auto;
	margin: 0;
}

.single-product .summary form.cart .single_add_to_cart_button,
.single-product .wd-product-summary form.cart .single_add_to_cart_button,
.single-product .totoland-product-summary-column form.cart .single_add_to_cart_button {
	flex: 1 1 220px;
	min-width: 190px;
	min-height: 52px;
	margin: 0;
	border-radius: 12px;
	background: var(--tt-commerce-blue);
	color: var(--tt-commerce-white);
	font-weight: 800;
}

.single-product .summary form.cart .single_add_to_cart_button:hover,
.single-product .wd-product-summary form.cart .single_add_to_cart_button:hover {
	background: var(--tt-commerce-pink);
}

.single-product .variations,
.single-product .variations select {
	width: 100%;
}

/* Compact WhatsApp */
.tt-product-whatsapp {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	width: 100%;
	margin: 22px 0;
	padding: 18px;
	border: 1px solid #d1f3dd;
	border-radius: var(--tt-commerce-radius-md);
	background: #f1fff6;
}

.tt-product-whatsapp h2 {
	margin: 4px 0 6px;
	font-size: 20px;
}

.tt-product-whatsapp p {
	margin: 0;
	color: var(--tt-commerce-muted);
}

.tt-product-kicker {
	color: #11823b;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.tt-product-whatsapp-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.tt-product-secondary-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 18px;
	border: 1px solid var(--tt-commerce-border);
	border-radius: 12px;
	background: var(--tt-commerce-white);
	color: var(--tt-commerce-dark);
	font-weight: 800;
	text-decoration: none;
}

/* Trust strip */
.tt-product-trust-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	width: 100%;
	margin: 18px 0 8px;
}

.tt-product-trust-item {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	min-height: 52px;
	padding: 11px 13px;
	border-radius: 12px;
	background: var(--tt-commerce-bg);
	color: var(--tt-commerce-dark);
	font-size: 13px;
	line-height: 1.35;
}

.tt-product-trust-item span {
	color: var(--tt-commerce-green);
	font-weight: 800;
}

/* Delivery/payment sidebar */
.tt-product-sidebar,
.totoland-product-sidebar {
	position: static;
	width: 100%;
	min-width: 0;
	max-width: none;
	margin: 0;
}

.tt-product-sidebar-card,
.totoland-product-sidebar-card {
	width: 100%;
	padding: 20px;
	border: 1px solid var(--tt-commerce-border);
	border-radius: var(--tt-commerce-radius-md);
	background: var(--tt-commerce-white);
	box-shadow: var(--tt-commerce-shadow-md);
}

@media (min-width: 1280px) {
	.tt-product-sidebar-card,
	.totoland-product-sidebar-card {
		position: sticky;
		top: 118px;
		max-height: calc(100vh - 148px);
		overflow-y: auto;
	}

	.admin-bar .tt-product-sidebar-card,
	.admin-bar .totoland-product-sidebar-card {
		top: 150px;
	}
}

.tt-product-sidebar-card > h2,
.totoland-product-sidebar-card > h2,
.totoland-product-sidebar-header h2 {
	margin: 0 0 14px;
	color: var(--tt-commerce-dark);
	font-size: 22px;
}

.tt-product-sidebar-card section,
.totoland-product-sidebar-card section {
	padding: 14px 0;
	border-top: 1px solid var(--tt-commerce-border);
}

.tt-product-sidebar-card p,
.tt-product-sidebar-card li,
.totoland-product-sidebar-card p,
.totoland-product-sidebar-card li {
	color: var(--tt-commerce-muted);
	font-size: 13px;
	line-height: 1.55;
}

.totoland-product-sidebar-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}

.totoland-product-sidebar-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
	padding: 13px;
	border: 1px solid var(--tt-commerce-border);
	border-radius: 12px;
	background: var(--tt-commerce-bg);
}

.totoland-product-sidebar-actions {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--tt-commerce-border);
}

.totoland-product-sidebar-actions a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	border: 1px solid var(--tt-commerce-border);
	border-radius: 10px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}

.totoland-product-sidebar-button {
	border-color: #25d366 !important;
	background: #25d366;
	color: var(--tt-commerce-white) !important;
}

/* Information sections */
.tt-product-framework-sections {
	width: min(100% - 40px, var(--tt-commerce-container));
	margin: 38px auto 0;
}

.tt-product-section {
	margin-bottom: 22px;
	padding: 24px;
	border: 1px solid var(--tt-commerce-border);
	border-radius: var(--tt-commerce-radius-md);
	background: var(--tt-commerce-white);
	box-shadow: var(--tt-commerce-shadow-sm);
}

.tt-product-section-warning {
	border-color: #f0d797;
	background: #fff9e9;
}

.tt-product-section-heading {
	margin-bottom: 18px;
}

.tt-product-section-heading span {
	display: inline-flex;
	padding: 5px 10px;
	border-radius: 999px;
	background: #f2fbff;
	color: #007faf;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.tt-product-section-heading h2 {
	margin: 8px 0 0;
	font-size: clamp(25px, 2.4vw, 32px);
}

.tt-product-rich-content {
	color: var(--tt-commerce-muted);
	line-height: 1.75;
}

.tt-product-specification-grid,
.tt-product-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.tt-product-specification-grid > div,
.tt-product-info-card {
	min-width: 0;
	padding: 16px;
	border: 1px solid var(--tt-commerce-border);
	border-radius: 14px;
	background: var(--tt-commerce-bg);
	text-decoration: none;
}

/* Product questions */
.tt-product-questions details {
	border: 1px solid var(--tt-commerce-border);
	border-radius: 14px;
	background: var(--tt-commerce-white);
	overflow: hidden;
}

.tt-product-questions details + details {
	margin-top: 10px;
}

.tt-product-questions summary {
	padding: 16px 18px;
	cursor: pointer;
	font-weight: 800;
}

.tt-product-questions details[open] summary {
	background: #f2fbff;
	color: #007faf;
}

.tt-product-questions details > div {
	padding: 0 18px 16px;
	color: var(--tt-commerce-muted);
}

/* WooCommerce tabs */
.single-product .woocommerce-tabs {
	width: min(100% - 40px, var(--tt-commerce-container));
	margin: 30px auto 0;
}

.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-bottom: 18px;
	border: 0;
}

.single-product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 1px solid var(--tt-commerce-border);
	border-radius: 999px;
	background: var(--tt-commerce-white);
	overflow: hidden;
}

.single-product .woocommerce-tabs ul.tabs li a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 22px;
	color: var(--tt-commerce-dark);
	font-weight: 800;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
	background: var(--tt-commerce-pink);
	color: var(--tt-commerce-white);
}

.single-product .woocommerce-tabs ul.tabs li:hover a {
	background: var(--tt-commerce-blue);
	color: var(--tt-commerce-white);
}

.single-product .woocommerce-tabs .panel {
	padding: 24px;
	border: 1px solid var(--tt-commerce-border);
	border-radius: var(--tt-commerce-radius-md);
	background: var(--tt-commerce-white);
	box-shadow: var(--tt-commerce-shadow-sm);
}

/* Related, upsell and recommendation grids */
.single-product .related.products,
.single-product .upsells.products,
.single-product .tt-product-recommendations,
.single-product .tt124-recommendations-wrap {
	width: min(100% - 40px, var(--tt-commerce-container));
	margin-inline: auto;
}

.single-product .related.products ul.products,
.single-product .upsells.products ul.products,
.single-product .tt-product-recommendations .products,
.single-product .tt124-product-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	align-items: stretch;
	width: 100%;
}

.single-product .related.products ul.products > li.product,
.single-product .upsells.products ul.products > li.product,
.single-product .tt-product-recommendations .products > li.product {
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	margin: 0 !important;
	float: none !important;
}

.single-product .related.products li.product img,
.single-product .upsells.products li.product img,
.single-product .tt-product-recommendations li.product img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

/* Sticky add to cart */
.tt124-sticky-cart,
.tt-product-sticky-cart {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 9997;
	border-top: 1px solid var(--tt-commerce-border);
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 -10px 28px rgba(17, 24, 39, .12);
}

/* Large desktop */
@media (min-width: 1500px) {
	.single-product .related.products ul.products,
	.single-product .upsells.products ul.products,
	.single-product .tt-product-recommendations .products,
	.single-product .tt124-product-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

/* Laptop/tablet */
@media (max-width: 1279px) {
	.single-product .product-image-summary-wrap {
		display: grid !important;
		grid-template-columns: minmax(360px, 1fr) minmax(360px, 1fr);
		gap: 26px;
		align-items: start;
	}

	.single-product .product-image-summary-wrap > .tt-product-sidebar,
	.single-product .product-image-summary-wrap > .totoland-product-sidebar {
		grid-column: 1 / -1;
	}

	.tt-product-sidebar-card,
	.totoland-product-sidebar-card {
		position: static;
		max-height: none;
		overflow: visible;
	}

	.totoland-product-sidebar-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.tt-product-trust-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.single-product .related.products ul.products,
	.single-product .upsells.products ul.products,
	.single-product .tt-product-recommendations .products,
	.single-product .tt124-product-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Mobile */
@media (max-width: 767px) {
	.totoland-commerce-container,
	.single-product .product-image-summary-wrap,
	.tt-product-framework-sections,
	.single-product .woocommerce-tabs,
	.single-product .related.products,
	.single-product .upsells.products,
	.single-product .tt-product-recommendations,
	.single-product .tt124-recommendations-wrap {
		width: min(100% - 24px, var(--tt-commerce-container));
	}

	.single-product .product-image-summary-wrap {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.single-product .product-image-summary-wrap > .tt-product-sidebar,
	.single-product .product-image-summary-wrap > .totoland-product-sidebar {
		grid-column: auto;
	}

	.single-product .woocommerce-product-gallery__wrapper,
	.single-product .woocommerce-product-gallery__image,
	.single-product .woocommerce-product-gallery__image a {
		min-height: auto;
	}

	.single-product .woocommerce-product-gallery__image img {
		width: 100% !important;
		height: auto !important;
		max-height: 520px;
	}

	.single-product .summary .product_title,
	.single-product .wd-product-summary .product_title {
		font-size: clamp(28px, 9vw, 38px);
	}

	.single-product .summary form.cart,
	.single-product .wd-product-summary form.cart {
		flex-direction: column;
		align-items: stretch;
	}

	.single-product .summary form.cart .quantity,
	.single-product .summary form.cart .single_add_to_cart_button,
	.single-product .wd-product-summary form.cart .quantity,
	.single-product .wd-product-summary form.cart .single_add_to_cart_button {
		width: 100%;
		flex: 0 0 auto;
	}

	.tt-product-whatsapp,
	.tt-product-whatsapp-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.tt-product-trust-strip,
	.tt-product-specification-grid,
	.tt-product-card-grid,
	.totoland-product-sidebar-grid {
		grid-template-columns: 1fr;
	}

	.tt-product-section {
		padding: 18px;
	}

	.single-product .woocommerce-tabs ul.tabs {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.single-product .related.products ul.products,
	.single-product .upsells.products ul.products,
	.single-product .tt-product-recommendations .products,
	.single-product .tt124-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
}

/* Accessibility */
.totoland-commerce-button:focus-visible,
.single-product a:focus-visible,
.single-product button:focus-visible,
.single-product summary:focus-visible,
.single-product input:focus-visible,
.single-product select:focus-visible {
	outline: var(--tt-commerce-focus);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.single-product *,
	.single-product *::before,
	.single-product *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}
