:root {
	--kkset-navy: #0b2a5b;
	--kkset-blue: #1769ff;
	--kkset-soft: #f4f7fb;
	--kkset-border: #dfe7f1;
	--kkset-text: #132640;
	--kkset-muted: #66758a;
}

.kkset-product-page-v15 .summary .price {
	color: var(--kkset-navy);
	font-weight: 800;
}

.kkset-product-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin: 18px 0 20px;
}

.kkset-product-fact {
	border: 1px solid var(--kkset-border);
	background: #fff;
	border-radius: 8px;
	padding: 10px 12px;
	min-width: 0;
}

.kkset-product-fact span,
.kkset-product-fact strong {
	display: block;
}

.kkset-product-fact span {
	color: var(--kkset-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.kkset-product-fact strong {
	color: var(--kkset-text);
	font-size: 13px;
	margin-top: 3px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kkset-size-help {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 15px;
	margin: 0 0 14px;
	border: 1px solid var(--kkset-border);
	border-radius: 10px;
	background: var(--kkset-soft);
}

.kkset-size-help strong,
.kkset-size-help span {
	display: block;
}

.kkset-size-help strong {
	font-size: 14px;
	color: var(--kkset-text);
}

.kkset-size-help span {
	font-size: 12px;
	color: var(--kkset-muted);
	margin-top: 2px;
}

.kkset-size-guide-trigger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid #b8c9df;
	border-radius: 7px;
	background: #fff;
	color: var(--kkset-navy);
	font-size: 13px;
	font-weight: 750;
	cursor: pointer;
	white-space: nowrap;
}

.kkset-size-guide-trigger:hover {
	border-color: var(--kkset-blue);
	color: var(--kkset-blue);
}

.kkset-size-guide-trigger svg,
.kkset-purchase-trust__icon svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.kkset-product-page-v15 form.cart .variations {
	margin-bottom: 12px;
}

.kkset-product-page-v15 form.cart .variations th,
.kkset-product-page-v15 form.cart .variations td {
	display: block;
	width: 100%;
	padding: 0;
}

.kkset-product-page-v15 form.cart .variations th {
	margin-bottom: 7px;
}

.kkset-product-page-v15 form.cart .variations select {
	min-height: 48px;
	border: 1px solid #cbd7e6;
	border-radius: 7px;
	background-color: #fff;
	font-size: 14px;
}

.kkset-product-page-v15 form.cart .variations select:focus {
	border-color: var(--kkset-blue);
	box-shadow: 0 0 0 2px rgba(23, 105, 255, .12);
}

.kkset-product-page-v15 .single_add_to_cart_button {
	min-height: 50px;
	border-radius: 7px;
	font-weight: 800;
}

.kkset-purchase-trust {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-top: 18px;
}

.kkset-purchase-trust__item {
	display: flex;
	align-items: center;
	gap: 9px;
	min-width: 0;
	padding: 11px;
	border: 1px solid var(--kkset-border);
	border-radius: 8px;
	color: var(--kkset-text);
	text-decoration: none;
	background: #fff;
}

.kkset-purchase-trust__item:hover {
	border-color: #b9cce5;
}

.kkset-purchase-trust__icon {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #edf4ff;
	color: var(--kkset-blue);
}

.kkset-purchase-trust__item strong,
.kkset-purchase-trust__item small {
	display: block;
}

.kkset-purchase-trust__item strong {
	font-size: 11px;
	line-height: 1.25;
}

.kkset-purchase-trust__item small {
	color: var(--kkset-muted);
	font-size: 9px;
	line-height: 1.3;
	margin-top: 2px;
}


.kkset-product-page-v15 .woocommerce-product-gallery {
	border-radius: 10px;
	overflow: hidden;
}

.kkset-product-page-v15 .woocommerce-product-gallery__image {
	background: #f7f9fc;
}

.kkset-product-page-v15 .woocommerce-product-gallery__image > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.kkset-product-page-v15 .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.kkset-product-page-v15 .woocommerce-tabs {
	margin-top: 72px;
}

.kkset-product-page-v15 .woocommerce-tabs .tabs {
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
}

.kkset-product-page-v15 .woocommerce-tabs .panel {
	max-width: 1120px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.kkset-product-page-v15 .woocommerce-tabs .panel > h2:first-child {
	font-size: clamp(25px, 3vw, 36px);
	line-height: 1.15;
	margin-bottom: 20px;
}

.kkset-product-page-v15 table.kkset-product-specs {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0 34px;
}

.kkset-product-page-v15 table.kkset-product-specs th,
.kkset-product-page-v15 table.kkset-product-specs td {
	padding: 13px 15px;
	border: 1px solid var(--kkset-border);
	text-align: left;
	vertical-align: top;
}

.kkset-product-page-v15 table.kkset-product-specs th {
	width: 230px;
	color: var(--kkset-navy);
	background: #f8fafc;
}

.kkset-size-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.kkset-size-modal.is-open {
	display: flex;
}

.kkset-size-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(4, 18, 43, .7);
	backdrop-filter: blur(3px);
}

.kkset-size-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(720px, 100%);
	max-height: calc(100vh - 40px);
	overflow: auto;
	padding: 30px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 28px 80px rgba(0, 21, 55, .28);
}

.kkset-size-modal__close {
	position: absolute;
	top: 13px;
	right: 15px;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: #edf2f8;
	color: var(--kkset-navy);
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}

.kkset-size-modal__eyebrow {
	margin: 0 0 7px;
	color: var(--kkset-blue);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .14em;
}

.kkset-size-modal h2 {
	color: var(--kkset-navy);
	font-size: clamp(26px, 4vw, 38px);
	margin: 0 0 10px;
}

.kkset-size-modal__intro {
	color: var(--kkset-muted);
	max-width: 580px;
}

.kkset-fit-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 22px 0;
}

.kkset-fit-card {
	padding: 16px;
	border: 1px solid var(--kkset-border);
	border-radius: 10px;
	background: #f8fafc;
}

.kkset-fit-card strong {
	color: var(--kkset-navy);
}

.kkset-fit-card p {
	color: var(--kkset-muted);
	font-size: 12px;
	line-height: 1.55;
	margin: 7px 0 0;
}

.kkset-measure-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 13px;
	margin: 20px 0 24px;
}

.kkset-measure-steps > div {
	display: flex;
	align-items: flex-start;
	gap: 9px;
}

.kkset-measure-steps span {
	flex: 0 0 29px;
	width: 29px;
	height: 29px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--kkset-navy);
	color: #fff;
	font-weight: 800;
}

.kkset-measure-steps p {
	font-size: 12px;
	color: var(--kkset-muted);
	line-height: 1.45;
	margin: 0;
}

.kkset-measure-steps strong {
	display: block;
	color: var(--kkset-text);
}

.kkset-modal-primary-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 18px;
	border-radius: 7px;
	background: var(--kkset-blue);
	color: #fff !important;
	font-weight: 800;
	text-decoration: none;
}

body.kkset-modal-open {
	overflow: hidden;
}

.kkset-mobile-buybar {
	display: none;
}

@media (max-width: 900px) {
	.kkset-purchase-trust {
		grid-template-columns: 1fr;
	}

	.kkset-purchase-trust__item strong {
		font-size: 12px;
	}

	.kkset-purchase-trust__item small {
		font-size: 10px;
	}
}

@media (max-width: 767px) {
	body.kkset-product-page-v15 {
		padding-bottom: 78px;
	}

	.kkset-product-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.kkset-size-help {
		align-items: flex-start;
	}

	.kkset-size-help > div {
		max-width: 62%;
	}

	.kkset-product-page-v15 .woocommerce-tabs {
		margin-top: 45px;
	}

	.kkset-product-page-v15 table.kkset-product-specs,
	.kkset-product-page-v15 table.kkset-product-specs tbody {
		display: block;
		width: 100%;
	}

	.kkset-product-page-v15 table.kkset-product-specs tr {
		display: grid;
		grid-template-columns: minmax(120px, 38%) 1fr;
		width: 100%;
	}

	.kkset-product-page-v15 table.kkset-product-specs th,
	.kkset-product-page-v15 table.kkset-product-specs td {
		display: block;
		width: auto;
		padding: 11px 10px;
		font-size: 12px;
		word-break: break-word;
	}

	.kkset-fit-cards,
	.kkset-measure-steps {
		grid-template-columns: 1fr;
	}

	.kkset-size-modal__dialog {
		padding: 26px 20px 22px;
	}

	.kkset-mobile-buybar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9998;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 10px max(14px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
		border-top: 1px solid #d7e1ee;
		background: rgba(255, 255, 255, .96);
		box-shadow: 0 -10px 30px rgba(8, 34, 73, .12);
		backdrop-filter: blur(10px);
	}

	.kkset-mobile-buybar__details {
		flex: 1 1 auto;
		min-width: 0;
	}

	.kkset-mobile-buybar__title {
		display: block;
		max-width: 100%;
		overflow: hidden;
		color: var(--kkset-text);
		font-size: 11px;
		font-weight: 750;
		line-height: 1.25;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.kkset-mobile-buybar__price {
		min-width: 0;
		color: var(--kkset-navy);
		font-size: 15px;
		font-weight: 850;
		white-space: nowrap;
	}

	.kkset-mobile-buybar__price del {
		display: none;
	}

	.kkset-mobile-buybar__button {
		flex: 0 0 auto;
		min-width: 132px;
		min-height: 48px;
		padding: 9px 17px;
		border: 0;
		border-radius: 7px;
		background: var(--kkset-blue);
		color: #fff;
		font-size: 14px;
		font-weight: 850;
		cursor: pointer;
	}

	.kkset-mobile-buybar__button:focus-visible {
		outline: 3px solid rgba(23, 105, 255, .3);
		outline-offset: 2px;
	}

	.kkset-mobile-buybar__button:disabled {
		cursor: wait;
		opacity: .7;
	}
}


/* V1.5.2: keep the desktop gallery inside the visible purchase area. */
@media (min-width: 901px) {
	.kkset-product-page-v15 .woocommerce-product-gallery__image > a {
		height: min(760px, 72vh);
		min-height: 560px;
		aspect-ratio: auto;
	}

	.kkset-product-page-v15 .woocommerce-product-gallery__image img:not(.zoomImg) {
		width: 100% !important;
		height: 100% !important;
		max-height: 760px !important;
		object-fit: contain !important;
	}
}

@media (max-width: 900px) {
	.kkset-product-page-v15 .woocommerce-product-gallery__image > a {
		height: auto;
		min-height: 0;
		aspect-ratio: 1 / 1;
	}
}


/* V1.6 bulk price and multi-size ordering */
.kkset-bulk-enabled form.variations_form .variations,
.kkset-bulk-enabled form.variations_form .single_variation_wrap {
	display: none !important;
}

.kkset-bulk-buy {
	margin: 8px 0 18px;
	border-top: 1px solid var(--kkset-border);
	padding-top: 18px;
}

.kkset-tier-pricing__title {
	font-size: 13px;
	font-weight: 850;
	letter-spacing: .08em;
	color: var(--kkset-text);
	margin-bottom: 9px;
}

.kkset-tier-pricing__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border: 1px solid var(--kkset-border);
	border-radius: 9px;
	overflow: hidden;
	background: #fff;
}

.kkset-tier-card {
	position: relative;
	padding: 12px 9px;
	text-align: center;
	border-right: 1px solid var(--kkset-border);
	transition: background .2s, box-shadow .2s;
}

.kkset-tier-card:last-child { border-right: 0; }
.kkset-tier-card span,
.kkset-tier-card strong,
.kkset-tier-card small { display: block; }
.kkset-tier-card span { color: var(--kkset-muted); font-size: 12px; }
.kkset-tier-card strong { color: var(--kkset-navy); font-size: 16px; margin-top: 3px; }
.kkset-tier-card small { color: #8793a4; font-size: 9px; margin-top: 1px; }
.kkset-tier-card.is-active {
	background: #edf4ff;
	box-shadow: inset 0 -3px 0 var(--kkset-blue);
}

.kkset-bulk-size-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 22px 0 10px;
	color: var(--kkset-text);
	font-size: 13px;
	letter-spacing: .05em;
}

.kkset-bulk-size-guide { min-height: 34px; padding: 6px 10px; }
.kkset-size-quantity-list { border-top: 1px solid var(--kkset-border); }
.kkset-size-quantity-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 54px;
	border-bottom: 1px solid var(--kkset-border);
}
.kkset-size-quantity-row__label { font-size: 15px; font-weight: 700; color: var(--kkset-text); }
.kkset-stepper {
	display: grid;
	grid-template-columns: 38px 50px 38px;
	height: 38px;
	border: 1px solid #cbd7e6;
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
}
.kkset-stepper button,
.kkset-stepper input {
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	text-align: center;
	padding: 0 !important;
	min-height: 36px !important;
	color: var(--kkset-text) !important;
}
.kkset-stepper button { font-size: 20px; cursor: pointer; }
.kkset-stepper button:hover { background: #f0f5fb !important; color: var(--kkset-blue) !important; }
.kkset-stepper input { width: 50px !important; font-size: 14px; appearance: textfield; }
.kkset-stepper input::-webkit-inner-spin-button,
.kkset-stepper input::-webkit-outer-spin-button { appearance: none; margin: 0; }

.kkset-bulk-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin: 15px 0 10px;
	padding: 13px;
	border-radius: 9px;
	background: var(--kkset-soft);
}
.kkset-bulk-summary div { min-width: 0; }
.kkset-bulk-summary span,
.kkset-bulk-summary strong { display: block; }
.kkset-bulk-summary span { color: var(--kkset-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.kkset-bulk-summary strong { color: var(--kkset-navy); font-size: 15px; margin-top: 3px; }
.kkset-bulk-add-button { width: 100%; min-height: 50px; border-radius: 7px !important; font-weight: 800 !important; }
.kkset-bulk-add-button.is-loading { opacity: .7; cursor: wait; }
.kkset-bulk-message { min-height: 22px; margin-top: 8px; font-size: 13px; }
.kkset-bulk-message.is-success { color: #087a3e; }
.kkset-bulk-message.is-error { color: #b42318; }
.kkset-cart-tier-label { display: block; color: #66758a; font-size: 10px; margin-top: 2px; }

@media (max-width: 767px) {
	.kkset-tier-pricing__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kkset-tier-card:nth-child(2) { border-right: 0; }
	.kkset-tier-card:nth-child(-n+2) { border-bottom: 1px solid var(--kkset-border); }
	.kkset-bulk-summary { grid-template-columns: 1fr; gap: 10px; }
	.kkset-size-quantity-row { min-height: 58px; }
	.kkset-size-guide-trigger,
	.kkset-bulk-size-guide,
	.kkset-size-modal__close { min-width: 44px; min-height: 44px; }
	.kkset-stepper { grid-template-columns: 44px 52px 44px; height: 44px; }
	.kkset-stepper button,
	.kkset-stepper input { min-height: 42px !important; }
	.kkset-stepper input { width: 52px !important; }
	.kkset-bulk-add-button { min-height: 50px; }
}


/* V1.6.2: hide WooCommerce's original single-size selector when the bulk selector is present.
   The sibling rule works even when the body class is generated before the global product exists. */
.kkset-product-page-v15 form.variations_form.cart > .kkset-bulk-buy ~ .variations,
.kkset-product-page-v15 form.variations_form.cart > .kkset-bulk-buy ~ .single_variation_wrap,
form.variations_form.cart.kkset-bulk-form-active > .variations,
form.variations_form.cart.kkset-bulk-form-active > .single_variation_wrap {
	display: none !important;
}

/* V1.7 product-specific competition patch selector */
.kkset-patch-options {
	margin: 18px 0 14px;
	padding: 16px;
	border: 1px solid var(--kkset-border);
	border-radius: 10px;
	background: #f8fbff;
}
.kkset-patch-options__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 10px;
}
.kkset-patch-options__head strong {
	display: block;
	color: var(--kkset-navy);
	font-size: 16px;
}
.kkset-patch-options__head a {
	flex: 0 0 auto;
	color: var(--kkset-blue);
	font-size: 12px;
	font-weight: 750;
}
.kkset-patch-options__eyebrow {
	display: block;
	margin-bottom: 2px;
	color: var(--kkset-blue);
	font-size: 9px;
	font-weight: 850;
	letter-spacing: .11em;
}
.kkset-patch-select {
	width: 100% !important;
	min-height: 46px !important;
	padding: 8px 38px 8px 12px !important;
	border: 1px solid #cbd7e6 !important;
	border-radius: 7px !important;
	background: #fff !important;
	color: var(--kkset-text) !important;
	font-size: 13px !important;
}
.kkset-patch-preview {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 10px;
	padding: 10px;
	border-radius: 7px;
	background: #fff;
}
.kkset-patch-preview[hidden] { display: none !important; }
.kkset-patch-preview img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	border: 1px solid var(--kkset-border);
	border-radius: 6px;
	background: #fff;
}
.kkset-patch-preview strong,
.kkset-patch-preview span { display: block; }
.kkset-patch-preview strong { color: var(--kkset-navy); font-size: 13px; }
.kkset-patch-preview span { margin-top: 2px; color: var(--kkset-blue); font-size: 12px; font-weight: 800; }
.kkset-patch-options__note {
	margin: 9px 0 0;
	color: var(--kkset-muted);
	font-size: 11px;
	line-height: 1.5;
}
@media (max-width: 767px) {
	.kkset-patch-options { padding: 14px; }
	.kkset-patch-options__head { gap: 8px; }
}

/* V1.8 player selection and custom name/number */
.kkset-personalization {
	margin: 18px 0 14px;
	padding: 16px;
	border: 1px solid var(--kkset-border);
	border-radius: 10px;
	background: #fff;
}
.kkset-personalization__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
}
.kkset-personalization__head strong { display:block; color:var(--kkset-navy); font-size:17px; }
.kkset-personalization__head a { color:var(--kkset-blue); font-size:12px; font-weight:750; }
.kkset-personalization__eyebrow {
	display:block; margin-bottom:2px; color:var(--kkset-blue); font-size:9px; font-weight:850; letter-spacing:.11em;
}
.kkset-personalization__modes { display:flex; flex-wrap:wrap; gap:18px; margin-bottom:12px; }
.kkset-personalization__modes label { display:flex; align-items:center; gap:7px; color:var(--kkset-text); font-size:14px; cursor:pointer; }
.kkset-personalization__modes input { width:18px; height:18px; margin:0; accent-color:var(--kkset-blue); }
.kkset-player-select,
.kkset-personalization__custom-grid input {
	width:100% !important; min-height:46px !important; padding:8px 12px !important;
	border:1px solid #cbd7e6 !important; border-radius:7px !important; background:#fff !important;
	color:var(--kkset-text) !important; font-size:13px !important;
}
.kkset-personalization__panel[hidden] { display:none !important; }
.kkset-personalization__panel.kkset-is-hidden { display:none !important; }
.kkset-personalization__custom-grid { display:grid; grid-template-columns:2fr 1fr; gap:10px; }
.kkset-personalization__custom-grid label span { display:block; margin-bottom:5px; color:var(--kkset-navy); font-size:11px; font-weight:750; }
.kkset-personalization__note { margin:9px 0 0; color:var(--kkset-muted); font-size:11px; line-height:1.5; }
@media (max-width: 767px) {
	.kkset-personalization { padding:14px; }
	.kkset-personalization__custom-grid { grid-template-columns:1fr; }
}

/* V1.8.2 validation feedback */
.kkset-personalization__validation {
	display:none;
	margin:10px 0 0;
	padding:10px 12px;
	border-left:3px solid #c62828;
	border-radius:8px;
	background:#fff1f1;
	color:#8a1c1c;
	font-size:12px;
	line-height:1.45;
}
.kkset-personalization__validation.is-visible { display:block; }
.kkset-personalization input[aria-invalid="true"] { border-color:#c62828 !important; box-shadow:0 0 0 1px #c62828 !important; }
