/* ==========================================================
   KIDSORY PREMIUM SINGLE PRODUCT
   ========================================================== */

.single-product .site-main,
.single-product main {
background: #fffaf2;
}

.single-product div.product {
max-width: 1320px;
margin: 0 auto;
padding: 70px 28px 80px;
}

.single-product div.product::after {
content: "";
display: table;
clear: both;
}


/* PRODUCT GALLERY */

.single-product div.product div.images {
width: 52%;
margin-bottom: 0;
}

.single-product .woocommerce-product-gallery__wrapper {
border-radius: 28px;
overflow: hidden;
background: #f6f8f6;
border: 1px solid rgba(24,48,40,.08);
}

.single-product .woocommerce-product-gallery__image {
background: #f7f9f8;
}

.single-product .woocommerce-product-gallery__image img {
width: 100%;
height: auto;
max-height: 680px;
object-fit: contain;
padding: 26px;
box-sizing: border-box;
}

.single-product .flex-control-thumbs {
display: grid !important;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
margin-top: 14px !important;
}

.single-product .flex-control-thumbs li {
width: auto !important;
float: none !important;
}

.single-product .flex-control-thumbs img {
border-radius: 14px;
border: 2px solid transparent;
background: #fff;
}

.single-product .flex-control-thumbs img.flex-active {
border-color: #183028;
}


/* SUMMARY */

.single-product div.product div.summary {
width: 43%;
margin-bottom: 0;
padding-top: 8px;
}

.ks-product-eyebrow {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 16px;
}

.ks-product-eyebrow span {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 0 12px;
border-radius: 999px;
background: #ffd9c8;
color: #183028;
font-size: 10px;
font-weight: 900;
letter-spacing: .08em;
text-transform: uppercase;
}

.ks-product-eyebrow span:last-child {
background: #dbe9d8;
}

.single-product .product_title {
margin: 0 0 18px !important;
color: #183028;
font-size: clamp(38px,4vw,58px);
line-height: 1;
letter-spacing: -.045em;
}

.single-product div.product p.price,
.single-product div.product span.price {
color: #183028 !important;
font-size: 28px !important;
font-weight: 900;
}

.single-product div.product .woocommerce-product-details__short-description {
margin-top: 22px;
color: #53635d;
font-size: 16px;
line-height: 1.75;
}

.single-product form.cart {
margin-top: 28px !important;
padding: 24px;
border: 1px solid rgba(24,48,40,.10);
border-radius: 22px;
background: #fff;
}


/* VARIABLE PRODUCT */

.single-product table.variations {
margin-bottom: 20px !important;
}

.single-product table.variations th,
.single-product table.variations td {
padding: 7px 0 !important;
vertical-align: middle;
}

.single-product table.variations label {
color: #183028;
font-weight: 800;
}

.single-product table.variations select {
min-height: 50px;
padding: 0 42px 0 15px;
border: 1px solid rgba(24,48,40,.18);
border-radius: 12px;
background: #fff;
color: #183028;
font-weight: 700;
}

.single-product .reset_variations {
margin-left: 12px;
color: #f57855 !important;
font-size: 12px !important;
font-weight: 700;
}


/* QUANTITY */

.single-product .quantity .qty {
width: 72px;
min-height: 52px;
border: 1px solid rgba(24,48,40,.18);
border-radius: 12px;
}


/* ADD TO CART */

.single-product div.product form.cart .button {
min-height: 52px;
padding: 0 28px !important;
border-radius: 999px !important;
background: #183028 !important;
color: #fff !important;
font-size: 14px !important;
font-weight: 850 !important;
}

.single-product div.product form.cart .button:hover {
background: #f57855 !important;
}


/* META */

.single-product .product_meta {
margin-top: 22px;
padding-top: 20px;
border-top: 1px solid rgba(24,48,40,.10);
color: #6e7a75;
font-size: 12px;
line-height: 1.8;
}

.single-product .product_meta a {
color: #183028;
font-weight: 700;
}


/* TRUST PANEL */

.ks-product-trust {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
margin-top: 18px;
}

.ks-product-trust > div {
padding: 14px;
border-radius: 14px;
background: #f6f1e8;
}

.ks-product-trust strong {
display: block;
margin-bottom: 3px;
color: #183028;
font-size: 12px;
}

.ks-product-trust span {
color: #6d7974;
font-size: 10px;
}


/* DESCRIPTION AREA */

.single-product .woocommerce-tabs {
max-width: 1320px;
margin: 25px auto 0;
padding-top: 40px;
border-top: 1px solid rgba(24,48,40,.10);
}

.single-product .woocommerce-tabs ul.tabs {
display: flex;
gap: 8px;
padding: 0 !important;
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li {
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
border-radius: 999px !important;
background: #f2eee6 !important;
}

.single-product .woocommerce-tabs ul.tabs li.active {
background: #183028 !important;
}

.single-product .woocommerce-tabs ul.tabs li a {
padding: 12px 20px !important;
color: #183028 !important;
font-size: 12px;
font-weight: 800 !important;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
color: #fff !important;
}

.single-product .woocommerce-Tabs-panel {
padding: 25px 5px !important;
color: #52635c;
line-height: 1.8;
}


/* RELATED PRODUCTS */

.single-product .related.products {
max-width: 1320px;
margin: 70px auto 0;
}

.single-product .related.products > h2 {
margin-bottom: 32px;
color: #183028;
font-size: 42px;
letter-spacing: -.04em;
}


/* NOTICE */

.single-product .woocommerce-message {
max-width: 1320px;
margin: 25px auto !important;
padding: 18px 22px 18px 52px !important;
border: 0 !important;
border-radius: 14px;
background: #eaf3e8;
color: #183028;
}

.single-product .woocommerce-message::before {
color: #183028;
}

.single-product .woocommerce-message .button {
border-radius: 999px !important;
background: #183028 !important;
color: #fff !important;
}


/* MOBILE */

@media (max-width: 850px) {

.single-product div.product {
padding: 40px 18px 60px;
}

.single-product div.product div.images,
.single-product div.product div.summary {
float: none !important;
width: 100% !important;
}

.single-product div.product div.summary {
margin-top: 30px;
}

.single-product .product_title {
font-size: 38px;
}

.ks-product-trust {
grid-template-columns: 1fr 1fr;
}

}

@media (max-width: 520px) {

.single-product .woocommerce-product-gallery__image img {
padding: 15px;
}

.ks-product-trust {
grid-template-columns: 1fr;
}

.single-product form.cart {
padding: 18px;
}

}

/* ============================================================
   KIDSORY PRODUCT COLOUR SWATCHES
   ============================================================ */

.ks-color-select-hidden {
position: absolute !important;
width: 1px !important;
height: 1px !important;
opacity: 0 !important;
pointer-events: none !important;
}

.ks-color-swatches {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 8px;
}

.ks-color-swatch {
display: inline-flex;
align-items: center;
gap: 9px;
min-height: 46px;
padding: 7px 14px 7px 8px;
border: 1px solid rgba(24,48,40,.14);
border-radius: 999px;
background: #fff;
color: #183028;
cursor: pointer;
font-family: inherit;
font-size: 13px;
font-weight: 800;
transition:
border-color .18s ease,
box-shadow .18s ease,
transform .18s ease,
background .18s ease;
}

.ks-color-swatch:hover {
transform: translateY(-1px);
border-color: rgba(24,48,40,.35);
}

.ks-color-swatch.is-active {
border-color: #183028;
background: #f5f1e8;
box-shadow: 0 0 0 2px rgba(24,48,40,.08);
}

.ks-color-dot {
display: block;
width: 29px;
height: 29px;
border-radius: 50%;
border: 2px solid #fff;
box-shadow: 0 0 0 1px rgba(24,48,40,.14);
}

.ks-color-swatch.is-active .ks-color-dot {
box-shadow:
0 0 0 2px #183028,
0 0 0 4px #fff;
}

@media (max-width: 520px) {

.ks-color-swatches {
gap: 8px;
}

.ks-color-swatch {
flex: 1;
justify-content: center;
padding-right: 10px;
}
}
/* ============================================================
   KIDSORY PRODUCT VIDEO
   Theme-controlled product video section
   ============================================================ */

.single-product .ks-product-video-section {
	display: block;
	clear: both;

	width: 100%;
	margin: 48px 0 0;
	padding: 0;

	box-sizing: border-box;
}


.single-product .ks-product-video-inner {
	width: 100%;
	margin: 0 auto;
	padding: 0;

	box-sizing: border-box;
}


.single-product .ks-product-video-heading {
	margin: 0 0 20px;

	color: #17382f;

	font-size: 34px;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
}


.single-product .ks-product-video-frame {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;

	padding: 28px;

	background: #ffffff;

	border: 1px solid rgba(23, 56, 47, 0.09);
	border-radius: 24px;

	box-shadow:
		0 12px 30px
		rgba(23, 56, 47, 0.05);

	box-sizing: border-box;
	overflow: hidden;
}


.single-product .ks-product-video {
	display: block;

	width: auto;
	max-width: 100%;
	height: auto;

	margin: 0 auto;

	object-fit: contain;

	background: #000000;

	border-radius: 16px;

	box-shadow:
		0 10px 24px
		rgba(0, 0, 0, 0.08);
}


/* Portrait / Reel video */
.single-product .ks-product-video--portrait {
	width: min(430px, 100%);
	max-height: 760px;
}


/* Landscape product video */
.single-product .ks-product-video--landscape {
	width: min(900px, 100%);
	max-height: 580px;
}


/* Square / unknown video dimensions */
.single-product .ks-product-video--standard {
	width: min(700px, 100%);
	max-height: 700px;
}


/* Keep WooCommerce tabs comfortably below video */
.single-product .woocommerce-tabs {
	clear: both;
	margin-top: 34px;
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 900px) {

	.single-product .ks-product-video-section {
		margin-top: 38px;
	}


	.single-product .ks-product-video-heading {
		font-size: 30px;
	}


	.single-product .ks-product-video-frame {
		padding: 20px;
	}


	.single-product .ks-product-video--portrait {
		width: min(400px, 100%);
		max-height: 700px;
	}

}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 600px) {

	.single-product .ks-product-video-section {
		width: 100%;

		margin-top: 30px;
	}


	.single-product .ks-product-video-heading {
		margin-bottom: 16px;

		font-size: 29px;
		line-height: 1.15;
	}


	.single-product .ks-product-video-frame {
		display: block;

		width: 100%;

		padding: 0;

		background: transparent;

		border: 0;
		border-radius: 0;

		box-shadow: none;
	}


	.single-product .ks-product-video,
	.single-product .ks-product-video--portrait,
	.single-product .ks-product-video--landscape,
	.single-product .ks-product-video--standard {
		display: block;

		width: 100%;
		max-width: 100%;
		max-height: none;

		margin: 0;

		border-radius: 16px;
	}


	.single-product .woocommerce-tabs {
		margin-top: 28px;
	}

}

/* ============================================================
   KIDSORY PRODUCT VIDEO — FINAL PRODUCTION LAYOUT
   ============================================================ */

.single-product .ks-product-video-section {
	clear: both;
	width: 100%;
	margin: 54px 0 42px;
	padding: 0;
	box-sizing: border-box;
}


.single-product .ks-product-video-inner {
	display: grid;
	grid-template-columns: minmax(220px, 0.7fr) minmax(320px, 480px);
	align-items: center;
	gap: 48px;

	width: 100%;
	max-width: 920px;

	margin: 0 auto;
	padding: 36px 42px;

	background: #ffffff;

	border: 1px solid rgba(23, 56, 47, 0.08);
	border-radius: 28px;

	box-shadow:
		0 14px 36px
		rgba(23, 56, 47, 0.055);

	box-sizing: border-box;
}


/* LEFT COPY */

.single-product .ks-product-video-copy {
	align-self: center;
}


.single-product .ks-product-video-kicker {
	display: inline-block;

	margin-bottom: 10px;

	color: #6b846c;

	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;

	letter-spacing: 0.11em;
	text-transform: uppercase;
}


.single-product .ks-product-video-heading {
	margin: 0 0 12px;

	color: #17382f;

	font-size: 36px;
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.025em;
}


.single-product .ks-product-video-text {
	max-width: 300px;

	margin: 0;

	color: #67736f;

	font-size: 15px;
	line-height: 1.65;
}


/* VIDEO */

.single-product .ks-product-video-frame {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;

	margin: 0;
	padding: 0;

	background: transparent;
	border: 0;
	box-shadow: none;

	box-sizing: border-box;
}


.single-product .ks-product-video {
	display: block;

	margin: 0 auto;

	max-width: 100%;

	object-fit: contain;

	background: #111;

	border-radius: 20px;

	box-shadow:
		0 14px 30px
		rgba(0, 0, 0, 0.12);
}


/* Vertical reel */
.single-product .ks-product-video--portrait {
	width: 340px;
	height: auto;
	max-height: 605px;
}


/* Landscape */
.single-product .ks-product-video--landscape {
	width: 100%;
	max-width: 620px;
	height: auto;
}


/* Square / unknown */
.single-product .ks-product-video--standard {
	width: 100%;
	max-width: 440px;
	height: auto;
}


.single-product .woocommerce-tabs {
	clear: both;
	margin-top: 36px;
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 900px) {

	.single-product .ks-product-video-inner {
		grid-template-columns: 1fr;
		gap: 26px;

		max-width: 620px;

		padding: 30px;
	}


	.single-product .ks-product-video-copy {
		text-align: center;
	}


	.single-product .ks-product-video-text {
		max-width: 430px;
		margin-left: auto;
		margin-right: auto;
	}


	.single-product .ks-product-video--portrait {
		width: 340px;
		max-height: 605px;
	}

}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 600px) {

	.single-product .ks-product-video-section {
		margin: 34px 0 30px;
	}


	.single-product .ks-product-video-inner {
		display: block;

		width: 100%;

		padding: 0;

		background: transparent;
		border: 0;
		border-radius: 0;

		box-shadow: none;
	}


	.single-product .ks-product-video-copy {
		margin-bottom: 18px;
		text-align: left;
	}


	.single-product .ks-product-video-heading {
		font-size: 30px;
	}


	.single-product .ks-product-video-text {
		max-width: none;

		margin-left: 0;
		margin-right: 0;

		font-size: 14px;
	}


	.single-product .ks-product-video-frame {
		width: 100%;
	}


	.single-product .ks-product-video,
	.single-product .ks-product-video--portrait,
	.single-product .ks-product-video--landscape,
	.single-product .ks-product-video--standard {
		width: 100%;
		max-width: 100%;
		height: auto;
		max-height: none;

		border-radius: 18px;
	}


	.single-product .woocommerce-tabs {
		margin-top: 28px;
	}

}

