/* Mobile-first product UI. Card rails use native scrolling instead of a slider library. */
.single-product {
	--product-app-gutter: clamp(16px, 4.5vw, 22px);
	--product-app-radius: 18px;
	--product-app-dock-height: 78px;
}

.single-product main.gps-content {
	padding-top: 12px;
	padding-bottom: calc(var(--product-app-dock-height) + 38px);
}

.single-product .gps-product-page__header,
.single-product .woocommerce-breadcrumb { margin-bottom: 12px; }

.single-product .woocommerce-breadcrumb {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.single-product .gps-product-main {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
}

.single-product.woocommerce div.product div.images,
.single-product.woocommerce div.product div.summary { margin-bottom: 0 !important; }
.single-product.woocommerce div.product div.images { position: static; }

.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery__image {
	border-radius: var(--product-app-radius);
	box-shadow: none;
}

.single-product .woocommerce-product-gallery__image img {
	max-height: none;
	padding: 0;
}

.single-product .flex-control-thumbs {
	display: flex;
	gap: 9px;
	overflow-x: auto;
	padding: 2px 2px 7px;
	scrollbar-width: none;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
}

.single-product .flex-control-thumbs::-webkit-scrollbar,
.single-product :is(.gps-product-applications > div, .gps-product-why__grid, .related ul.products, .up-sells ul.products, .gps-product-order-checklist ol)::-webkit-scrollbar { display: none; }
.single-product.woocommerce div.product div.images .flex-control-thumbs li { width: 66px; min-width: 66px; scroll-snap-align: start; }

.single-product.woocommerce div.product .summary {
	padding: 22px var(--product-app-gutter);
	border-radius: var(--product-app-radius);
	box-shadow: 0 5px 20px rgba(24, 24, 24, .06);
}

.single-product .product_title { max-width: none; margin-bottom: 12px; font-size: 22px; line-height: 1.3; }
.single-product div.product p.price,
.single-product div.product span.price { margin-bottom: 16px; }
.single-product .woocommerce-product-details__short-description { margin-bottom: 18px; font-size: 14px; line-height: 1.65; }
.single-product div.product form.cart .variations { margin-bottom: 14px; }

.single-product .gps-delivery-check {
	grid-column: 1 / -1;
	flex: 0 0 100%;
	width: 100%;
	min-width: 0;
	margin: 0 0 8px;
	padding: 16px;
	border: 1px solid var(--product-line);
	border-radius: 12px;
	background: var(--product-surface);
}
.single-product .gps-delivery-check label { display: block; font-size: 14px; font-weight: 750; color: var(--product-ink); }
.single-product .gps-delivery-check p { margin: 4px 0 12px; font-size: 12px; color: var(--product-muted); }
.single-product .gps-delivery-check > div:first-of-type { display: flex; gap: 8px; }
.single-product .gps-delivery-check #shiprocket_pincode_check { flex: 1; min-width: 0; width: 100%; min-height: 46px; margin: 0; padding: 10px 12px; border: 1px solid var(--product-line); border-radius: 8px; background: var(--product-white); }
.single-product .gps-delivery-check #shiprocket_pincode_check:focus { border-color: var(--product-line); outline: none !important; box-shadow: none !important; }
.single-product .gps-delivery-check #check_pincode { flex: 0 0 auto; min-height: 46px; padding: 10px 14px; border: 1px solid var(--product-accent); border-radius: 8px; background: var(--product-white); color: var(--product-ink); font-size: 12px; font-weight: 700; }
.single-product .gps-delivery-check #check_pincode { transition: background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.single-product .gps-delivery-check #check_pincode:hover:not(:disabled) { border-color: var(--product-accent); background: var(--product-accent); color: #fff; transform: translateY(-2px); box-shadow: 0 4px 10px rgba(245, 130, 32, .2); }
.single-product .gps-delivery-check #check_pincode:active:not(:disabled) { transform: translateY(0); box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
	.single-product .gps-delivery-check #check_pincode { transition: none; }
	.single-product .gps-delivery-check #check_pincode:hover:not(:disabled) { transform: none; }
}
.single-product .gps-delivery-check #pincode_response { font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.single-product .gps-delivery-check #pincode_response:not(:empty) { margin-top: 10px; }
@media (max-width: 359px) {
	.single-product .gps-delivery-check > div:first-of-type { flex-direction: column; }
}

.single-product .gps-variation-options {
	flex-wrap: wrap;
	width: 100%;
	min-width: 0;
	gap: 8px;
	padding: 4px;
}
.single-product .gps-variation-option {
	min-width: 0;
	max-width: 100%;
	min-height: 46px;
	flex-shrink: 1;
	white-space: normal;
	overflow-wrap: anywhere;
	text-align: center;
}
.single-product .gps-variation-option span { min-width: 0; }
.single-product .gps-variation-options--color .gps-variation-option { flex-shrink: 0; }

.single-product .single_variation_wrap .woocommerce-variation-add-to-cart,
.single-product div.product form.cart:not(.variations_form) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.single-product div.product form.cart .quantity {
	width: 100%;
	min-height: 50px;
	grid-column: 1 / -1;
	grid-template-columns: 48px minmax(0, 1fr) 48px;
	border: 1px solid var(--product-line);
	border-radius: 11px;
	background: var(--product-white);
	box-shadow: 0 3px 10px rgba(24, 24, 24, .045);
}
.single-product div.product form.cart .quantity .qty {
	width: 100%;
	min-height: 50px;
	border-color: var(--product-line);
	background: var(--product-white);
	font-size: 15px;
}
.single-product .gps-quantity-button {
	min-width: 48px;
	min-height: 50px;
	color: var(--product-primary);
	background: var(--product-white);
	font-size: 21px;
	transition: color .18s ease, background-color .18s ease, transform .18s ease;
}
.single-product .gps-quantity-button:hover {
	color: var(--product-accent);
	background: color-mix(in srgb, var(--product-accent) 7%, var(--product-white));
}
.single-product .gps-quantity-button:active { transform: scale(.9); }

.single-product div.product form.cart .single_add_to_cart_button,
.single-product div.product form.cart .gps-product-buy-now {
	width: 100%;
	min-width: 0;
	min-height: 56px !important;
	padding: 0 12px !important;
	border-radius: 11px !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	letter-spacing: .01em;
	box-shadow: 0 8px 18px rgba(24, 24, 24, .12) !important;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
.single-product div.product form.cart .single_add_to_cart_button {
	grid-column: 1;
	border-color: var(--product-accent) !important;
	background: var(--product-accent) !important;
	box-shadow: 0 8px 18px color-mix(in srgb, var(--product-accent) 25%, transparent) !important;
}
.single-product div.product form.cart .gps-product-buy-now {
	grid-column: 2;
	color: var(--product-white) !important;
	border-color: var(--product-primary) !important;
	background: var(--product-primary) !important;
}
.single-product div.product form.cart :is(.single_add_to_cart_button, .gps-product-buy-now):hover {
	transform: translateY(-2px);
	box-shadow: 0 11px 22px rgba(24, 24, 24, .16) !important;
}
.single-product div.product form.cart :is(.single_add_to_cart_button, .gps-product-buy-now):active {
	transform: translateY(0) scale(.98);
}
.single-product div.product form.cart .gps-product-view-cart { grid-column: 1 / -1; }

.single-product .gps-product-bulk-card ul {
	grid-template-columns: minmax(0, 1fr);
}

.single-product .gps-product-trust-points {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1px;
	overflow: hidden;
	border-radius: 14px;
	background: var(--product-line);
}
.single-product .gps-product-trust-points article {
	min-width: 0;
	padding: 14px 11px;
	border-left: 0 !important;
	border-top: 1px solid var(--product-line);
	background: var(--product-white);
}
.single-product .gps-product-trust-points article:first-child { border-top: 0; }

.single-product .gps-product-section,
.single-product .gps-product-order-checklist,
.single-product .gps-product-final-cta { --product-section-space: 44px; }
.single-product .gps-product-section h2,
.single-product .gps-product-order-checklist h2,
.single-product .up-sells > h2,
.single-product .related > h2 { font-size: clamp(24px, 7vw, 30px); }

/* Touch-friendly, app-style card sliders. */
.single-product .gps-product-applications > div,
.single-product .gps-product-why__grid,
.single-product.woocommerce .related ul.products,
.single-product.woocommerce .up-sells ul.products {
	display: flex !important;
	gap: 12px !important;
	overflow-x: auto;
	margin-right: calc(var(--product-app-gutter) * -1);
	padding: 2px var(--product-app-gutter) 16px 1px;
	scroll-padding-inline: 1px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.single-product .gps-product-applications article,
.single-product .gps-product-why__grid article,
.single-product.woocommerce .related ul.products li.product,
.single-product.woocommerce .up-sells ul.products li.product {
	width: min(78vw, 290px) !important;
	min-width: min(78vw, 290px) !important;
	flex: 0 0 min(78vw, 290px) !important;
	border: 1px solid var(--product-line) !important;
	border-radius: 15px !important;
	scroll-snap-align: start;
}
.single-product .gps-product-applications article { min-height: 0; gap: 12px; padding: 16px; }
.single-product .gps-product-applications > div { padding-bottom: 8px; }

.single-product .gps-product-why { display: block; overflow: visible; border: 0; box-shadow: none; }
.single-product .gps-product-why > div:first-child { min-height: 0; margin-bottom: 14px; padding: 28px 24px; border-radius: var(--product-app-radius); }
.single-product .gps-product-why__grid { margin-right: 0; padding: 2px 0 8px; }
.single-product .gps-product-why__grid article { justify-content: flex-start; padding: 16px; }

.single-product .gps-product-order-checklist ol {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	padding-bottom: 12px;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.single-product .gps-product-order-checklist li { width: min(84vw, 330px); min-width: min(84vw, 330px); scroll-snap-align: start; }

.single-product .gps-product-dimensions,
.single-product .gps-product-dimension-box span { min-height: 100px; }
.single-product .gps-product-table-wrap { border-radius: 8px; }
.single-product .gps-product-specifications th,
.single-product .gps-product-specifications td { padding: 13px 14px; }

.single-product .gps-product-final-cta { display: block; padding: 28px 22px; border-radius: var(--product-app-radius); }
.single-product .gps-product-final-cta > div:last-child { display: grid; margin-top: 20px; }
.single-product .gps-product-final-cta .gps-button { width: 100%; }

/* Keep indexable HTML while delaying below-the-fold paint/layout work. */
.single-product :is(.gps-product-order-checklist, .gps-product-section, .up-sells, .related, .gps-product-final-cta) {
	content-visibility: auto;
	contain-intrinsic-size: auto 520px;
}

.gps-mobile-purchase-dock {
	position: fixed;
	z-index: 90;
	right: 10px;
	bottom: max(10px, env(safe-area-inset-bottom));
	left: 10px;
	display: flex;
	min-height: 68px;
	align-items: center;
	gap: 12px;
	padding: 9px 9px 9px 15px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 18px;
	background: rgba(32, 32, 32, .96);
	box-shadow: 0 14px 42px rgba(0, 0, 0, .28);
	transition: opacity .2s ease, transform .2s ease;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
.gps-mobile-purchase-dock[hidden] { display: flex; visibility: hidden; opacity: 0; transform: translateY(calc(100% + 24px)); pointer-events: none; animation: none !important; }
.gps-mobile-purchase-dock__price { display: grid; min-width: 0; flex: 1; color: #fff; line-height: 1.2; }
.gps-mobile-purchase-dock__price small { margin-bottom: 3px; color: rgba(255, 255, 255, .65); font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.gps-mobile-purchase-dock__price .price { overflow: hidden; color: #fff !important; font-size: 16px !important; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.gps-mobile-purchase-dock__button {
	display: inline-flex;
	min-width: 138px;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	gap: 9px;
	padding: 0 18px;
	color: #fff;
	border: 0;
	border-radius: 13px;
	background: var(--product-accent);
	box-shadow: 0 7px 18px rgba(245, 130, 32, .28);
	font-size: 14px;
	font-weight: 800;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.gps-mobile-purchase-dock__button:active { transform: scale(.97); }
.gps-mobile-purchase-dock__button:disabled { cursor: wait; opacity: .9; }
.gps-mobile-purchase-dock__icon { position: relative; display: grid; width: 18px; height: 18px; flex: 0 0 18px; place-items: center; }
.gps-mobile-purchase-dock__icon::before { content: "+"; font-size: 22px; font-weight: 500; line-height: 18px; }

.gps-mobile-purchase-dock[data-state="loading"] .gps-mobile-purchase-dock__icon::before {
	width: 15px;
	height: 15px;
	border: 2px solid rgba(255, 255, 255, .42);
	border-top-color: #fff;
	border-radius: 50%;
	content: "";
	animation: gps-cart-spin .65s linear infinite;
}

.gps-mobile-purchase-dock[data-state="success"] { animation: gps-dock-success .48s ease both; }
.gps-mobile-purchase-dock[data-state="success"] .gps-mobile-purchase-dock__button { background: var(--product-accent); box-shadow: 0 7px 18px color-mix(in srgb, var(--product-accent) 28%, transparent); }
.gps-mobile-purchase-dock[data-state="in-cart"] .gps-mobile-purchase-dock__button {
	color: var(--product-primary);
	border: 1px solid rgba(255, 255, 255, .82);
	background: var(--product-white);
	box-shadow: 0 7px 18px rgba(0, 0, 0, .2);
}
.gps-mobile-purchase-dock[data-state="success"] .gps-mobile-purchase-dock__icon::before,
.gps-mobile-purchase-dock[data-state="in-cart"] .gps-mobile-purchase-dock__icon::before { content: "\2713"; font-size: 18px; font-weight: 900; }
.gps-mobile-purchase-dock[data-state="in-cart"] .gps-mobile-purchase-dock__icon {
	order: 2;
	margin-left: 2px;
}
.gps-mobile-purchase-dock[data-state="in-cart"] .gps-mobile-purchase-dock__icon::before {
	position: absolute;
	right: 1px;
	width: 8px;
	height: 8px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	content: "";
	transform: rotate(45deg);
}
.gps-mobile-purchase-dock[data-state="in-cart"] .gps-mobile-purchase-dock__icon::after {
	position: absolute;
	right: 2px;
	width: 14px;
	height: 2px;
	background: currentColor;
	content: "";
}
.gps-mobile-purchase-dock[data-state="error"] { animation: gps-cart-shake .35s ease both; }
.gps-mobile-purchase-dock[data-state="error"] .gps-mobile-purchase-dock__button { background: #b83232; box-shadow: 0 7px 18px rgba(184, 50, 50, .24); }
.gps-mobile-purchase-dock[data-state="options"] .gps-mobile-purchase-dock__icon::before { content: "!"; font-size: 17px; font-weight: 900; }

.single-product div.product form.cart .variations.gps-options-required {
	animation: gps-options-highlight 1.8s ease both;
}

.gps-cart-toast {
	position: fixed;
	z-index: 91;
	right: 18px;
	bottom: calc(var(--product-app-dock-height) + max(20px, env(safe-area-inset-bottom)));
	left: 18px;
	padding: 12px 16px;
	color: #fff;
	border-radius: 12px;
	background: var(--product-primary);
	box-shadow: 0 12px 32px rgba(0, 0, 0, .2);
	font-size: 13px;
	font-weight: 750;
	text-align: center;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .2s ease, transform .2s ease;
	pointer-events: none;
}
.gps-cart-toast--error { background: #b83232; }
.gps-cart-toast.is-visible { opacity: 1; transform: translateY(0); }
.gps-cart-count--pulse { animation: gps-cart-count-pulse .55s ease both; }

.single-product :is(a, button, input, select, summary):focus-visible {
	outline: 2px solid var(--product-white);
	outline-offset: 2px;
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--product-accent) 58%, transparent) !important;
}

@keyframes gps-cart-spin { to { transform: rotate(360deg); } }
@keyframes gps-dock-success { 45% { transform: translateY(-5px) scale(1.015); } }
@keyframes gps-cart-count-pulse { 50% { transform: scale(1.45); box-shadow: 0 0 0 7px rgba(245, 130, 32, .18); } }
@keyframes gps-cart-shake { 25% { transform: translateX(-5px); } 50% { transform: translateX(4px); } 75% { transform: translateX(-2px); } }
@keyframes gps-options-highlight {
	0%, 100% { border-color: var(--product-line); box-shadow: none; }
	20%, 70% { border-color: var(--product-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--product-accent) 16%, transparent); }
}

@media (max-width: 767px) {
	.single-product.woocommerce div.product .summary.entry-summary {
		padding: 0;
		border: 0;
		box-shadow: none;
	}
}

@media (min-width: 768px) {
	.single-product main.gps-content { padding-top: 28px; padding-bottom: 80px; }
	.single-product .gps-product-page__header { margin-bottom: 30px; }
	.single-product .gps-product-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
	.single-product.woocommerce div.product div.images { position: sticky; }
	.single-product.woocommerce div.product div.summary { padding: 32px; }
	.single-product .product_title { font-size: 26px; }
	.single-product .woocommerce-product-details__short-description { font-size: 15px; }
	.single-product .gps-mobile-purchase-dock { display: none; }
	.single-product .gps-cart-toast { left: auto; right: 24px; bottom: 24px; max-width: 380px; }
	.single-product .gps-product-bulk-card ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.single-product .gps-product-trust-points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.single-product .gps-product-trust-points article { border-top: 0; }
	.single-product .gps-product-trust-points article:nth-child(even) { border-left: 1px solid var(--product-line) !important; }
	.single-product .gps-product-trust-points article:nth-child(n+3) { border-top: 1px solid var(--product-line); }

	.single-product .gps-product-applications > div,
	.single-product .gps-product-why__grid,
	.single-product.woocommerce .related ul.products,
	.single-product.woocommerce .up-sells ul.products { display: grid !important; overflow: visible; margin-right: 0; padding: 0; scroll-snap-type: none; }
	.single-product .gps-product-applications > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.single-product .gps-product-why { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr); overflow: hidden; border: 1px solid var(--product-line); box-shadow: var(--product-shadow); }
	.single-product .gps-product-why > div:first-child { min-height: 0; margin-bottom: 0; padding: clamp(28px, 3vw, 40px); border-radius: 0; }
	.single-product .gps-product-why__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 24px; }
	.single-product .gps-product-applications article,
	.single-product .gps-product-why__grid article,
	.single-product.woocommerce .related ul.products li.product,
	.single-product.woocommerce .up-sells ul.products li.product { width: auto !important; min-width: 0 !important; flex: initial !important; border-radius: 12px !important; }
	.single-product .gps-product-order-checklist ol { display: grid; overflow: visible; padding-bottom: 0; }
	.single-product .gps-product-order-checklist li { width: auto; min-width: 0; }
	.single-product .gps-product-dimensions { grid-template-columns: .8fr 1.2fr; gap: 40px; }
	.single-product .gps-product-final-cta { display: flex; padding: 42px 48px; }
	.single-product .gps-product-final-cta > div:last-child { display: flex; margin-top: 0; }
	.single-product .gps-product-final-cta .gps-button { width: auto; }
}

@media (min-width: 1025px) {
	.single-product .gps-product-applications > div { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.single-product.woocommerce .up-sells ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Related products keep three visible cards and scroll through the remaining items. */
.single-product.woocommerce div.product .related {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 20px 16px;
	min-width: 0;
}
.single-product .related > h2 {
	grid-column: 1;
	grid-row: 1;
	margin: 0;
}
.single-product .related > .gps-slider-controls {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
}
.single-product.woocommerce .related ul.products {
	grid-column: 1 / -1;
	min-width: 0;
	width: 100%;
	margin-inline: 0;
	padding: 1px 1px 16px;
	scroll-padding-inline: 1px;
}
.single-product.woocommerce .related ul.products li.product {
	box-shadow: none;
}
@media (max-width: 767px) {
	.single-product.woocommerce .related ul.products li.product {
		width: calc(90% - 12px) !important;
		min-width: 0 !important;
		flex: 0 0 calc(90% - 12px) !important;
	}
}
@media (min-width: 768px) {
	.single-product .related { min-width: 0; }
	.single-product.woocommerce .related ul.products {
		grid-template-columns: none !important;
		grid-auto-flow: column;
		grid-auto-columns: calc((100% - 40px) / 3);
		gap: 20px !important;
		overflow-x: auto;
		padding: 1px 1px 16px;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}
	.single-product.woocommerce .related ul.products li.product { scroll-snap-align: start; }
}

@media (prefers-reduced-motion: reduce) {
	.gps-mobile-purchase-dock,
	.gps-mobile-purchase-dock__button,
	.gps-cart-toast { transition: none; }
	.gps-mobile-purchase-dock,
	.gps-mobile-purchase-dock__icon::before,
	.gps-cart-count--pulse,
	.single-product div.product form.cart .variations.gps-options-required { animation: none !important; }

}
