/* Flick Single Product — white / black / red */

.fsp-active .site-content,
.fsp-active #content,
.fsp-active .content-area,
.fsp-active .woocommerce {
	background: #fff;
}
.fsp-active .sidebar,
.fsp-active #secondary,
.fsp-active .widget-area { display: none !important; }
.fsp-active .content-area,
.fsp-active .site-main,
.fsp-active #primary,
.fsp-active .woocommerce {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	margin: 0 auto !important;
	padding: 0 !important;
}

.fsp-active { overflow-x: hidden; }
.fsp-active .woocommerce-breadcrumb,
.fsp-active .yoast-breadcrumb,
.fsp-active nav.rank-math-breadcrumb { display: none !important; }

.fsp,
.fsp * { box-sizing: border-box; }
.fsp {
	--fsp-red: #ec1c24;
	--fsp-red-d: #c00d14;
	--fsp-ink: #0a0a0a;
	--fsp-mute: #8a8a8a;
	--fsp-line: #ececec;
	--fsp-bg: #f7f7f8;
	--fsp-cart-bg: #f3f3f3;
	--fsp-cart-color: #333;
	--fsp-cart-border: #e5e5e5;
	--fsp-order-bg: #ec1c24;
	--fsp-order-color: #fff;
	--fsp-radius: 18px;
	--fsp-btn-radius: 14px;
	--fsp-max: 1180px;
	width: 100%;
	max-width: min(var(--fsp-max), 100%);
	margin: 0 auto;
	padding: 18px max(16px, env(safe-area-inset-right)) 28px max(16px, env(safe-area-inset-left));
	font-family: "Hind Siliguri", "Noto Sans Bengali", sans-serif;
	color: var(--fsp-ink);
	overflow-x: clip;
}
.fsp,
.fsp p, .fsp li, .fsp a, .fsp button, .fsp input, .fsp span, .fsp td, .fsp th {
	font-family: "Hind Siliguri", "Noto Sans Bengali", sans-serif;
}
.fsp-title, .fsp-price, .fsp-price *, .fsp-kicker, .fsp-count, .fsp-sale {
	font-family: Rajdhani, "Hind Siliguri", sans-serif;
}

.fsp-bc {
	display: flex; align-items: center; gap: 0;
	margin: 0 0 14px;
	font-family: "Hind Siliguri", sans-serif;
	line-height: 1;
}
.fsp-bc-home {
	display: inline-flex; align-items: center; gap: 7px;
	padding: 8px 12px 8px 10px;
	border-radius: 11px;
	border: 1px solid var(--fsp-line);
	background: #fff;
	color: var(--fsp-ink);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	box-shadow: 0 1px 2px rgba(0,0,0,.03);
	transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.fsp-bc-home svg { flex: 0 0 auto; color: var(--fsp-mute); }
.fsp-bc-home:hover {
	color: var(--fsp-red);
	border-color: #f3c4c7;
	background: #fff8f8;
}
.fsp-bc-home:hover svg { color: var(--fsp-red); }
.fsp-bc-sep { display: none; }

.fsp-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 48px;
	align-items: start;
	width: 100%;
}
.fsp-fvp {
	margin: 4px 0 8px;
	display: block !important;
	width: 100%;
	float: none !important;
	clear: both;
	isolation: isolate;
	column-count: 1 !important;
	columns: auto !important;
}
.fsp-fvp .fsp-attr-lab {
	display: block !important;
	width: 100% !important;
	float: none !important;
	margin: 0 0 10px;
}
.fsp-fvp .fv-dropdown { display: block !important; margin-top: 0; }
.fsp-fvp .fv-cards {
	margin-top: 0;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	grid-auto-flow: row !important;
	gap: 8px !important;
	width: 100% !important;
	float: none !important;
	column-count: 1 !important;
	columns: auto !important;
}
.fsp-fvp .fv-card {
	cursor: pointer;
	margin: 0 !important;
	width: auto !important;
	float: none !important;
	min-width: 0;
	height: 100%;
}
.fsp-info {
	min-width: 0;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	column-count: 1;
	columns: auto;
}
.fsp-info > * {
	float: none !important;
	width: 100%;
	max-width: 100%;
}
.fsp-info > .fsp-stock {
	width: auto !important;
	max-width: max-content;
	align-self: flex-start;
}
.fsp-actions {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 10px;
	width: 100%;
	float: none !important;
	clear: both;
}
.fsp-btn { float: none !important; }

body.fsp-active .elementor-widget-woocommerce-product-add-to-cart,
body.fsp-active .elementor-widget-wc-add-to-cart,
body.fsp-active div.product form.cart,
body.fsp-active .variations_form,
body.fsp-active table.variations,
body.fsp-active .woocommerce-variation-add-to-cart,
body.fsp-active .single_add_to_cart_button:not(.fsp-btn) {
	display: none !important;
}

.fsp-gallery { position: relative; top: auto; min-width: 0; z-index: 0; width: 100%; }
.fsp-stage {
	position: relative;
	background: var(--fsp-bg);
	border: 0;
	border-radius: var(--fsp-radius);
	aspect-ratio: 1 / 1;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0,0,0,.04);
}
.fsp-viewport {
	position: absolute; inset: 0;
	overflow: hidden;
	touch-action: pan-y;
}
.fsp-track {
	display: flex;
	height: 100%;
	transition: transform .38s cubic-bezier(.22,.61,.36,1);
	transform: translateX(calc(-100% * var(--fsp-i, 0)));
	will-change: transform;
}
.fsp-track.is-snap { transition: none; }
.fsp-slide {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
}
.fsp-mainimg {
	width: 100%; height: 100%;
	object-fit: contain; padding: 28px;
	cursor: zoom-in;
	user-select: none;
	-webkit-user-drag: none;
	transition: transform .35s ease;
}
.fsp-stage:hover .fsp-mainimg { transform: scale(1.03); }
@media (hover: none) {
	.fsp-stage:hover .fsp-mainimg { transform: none; }
}
.fsp-sale {
	position: absolute; top: 14px; left: 14px; z-index: 2;
	background: var(--fsp-red); color: #fff;
	font-family: Rajdhani, sans-serif; font-weight: 700;
	font-size: 13px; letter-spacing: .4px;
	padding: 5px 10px; border-radius: 8px;
}
.fsp-zoom {
	position: absolute; right: 12px; bottom: 12px;
	width: 38px; height: 38px; border-radius: 12px;
	border: 1px solid var(--fsp-line); background: #fff;
	display: grid; place-items: center; cursor: pointer; color: #333;
}
.fsp-thumbs-wrap {
	display: flex; align-items: center; gap: 6px; margin-top: 12px;
}
.fsp-thumbs {
	display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden;
	padding-bottom: 2px; flex: 1; min-width: 0;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.fsp-thumbs::-webkit-scrollbar { display: none; }
.fsp-thumb {
	flex: 0 0 68px; width: 68px; height: 68px; padding: 0;
	border: 1.5px solid var(--fsp-line); border-radius: 12px;
	background: #fff; overflow: hidden; cursor: pointer;
	scroll-snap-align: start;
}
.fsp-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; padding: 6px; pointer-events: none; }
.fsp-thumb.is-on { border-color: var(--fsp-red); box-shadow: 0 0 0 2px rgba(236,28,36,.18); }
.fsp-tbtn {
	display: none;
	flex: 0 0 28px; width: 28px; height: 56px; padding: 0;
	border: 1px solid var(--fsp-line); border-radius: 8px; background: #fff;
	font-size: 18px; cursor: pointer; color: #333; place-items: center;
}
.fsp-thumbs-wrap.is-overflow .fsp-tbtn { display: grid; }
.fsp-count {
	position: absolute; left: 12px; bottom: 12px; z-index: 2;
	background: rgba(10,10,10,.72); color: #fff;
	font-family: Rajdhani, sans-serif; font-weight: 700; font-size: 12px;
	padding: 4px 8px; border-radius: 8px; letter-spacing: .3px;
}
.fsp-dots {
	display: none; position: absolute; left: 50%; bottom: 12px;
	transform: translateX(-50%); gap: 6px; z-index: 2;
}
.fsp-dot {
	width: 7px; height: 7px; border-radius: 50%; border: 0; padding: 0;
	background: rgba(0,0,0,.22); cursor: pointer;
}
.fsp-dot.is-on { background: var(--fsp-red); transform: scale(1.25); }

.fsp-kicker {
	font-family: Rajdhani, sans-serif; font-weight: 700;
	letter-spacing: 2.4px; text-transform: uppercase;
	font-size: 12px; color: var(--fsp-red); margin: 0 0 6px;
}
.fsp-title {
	font-family: Rajdhani, "Hind Siliguri", sans-serif;
	font-weight: 700; font-size: clamp(24px, 3.4vw, 38px);
	line-height: 1.12; letter-spacing: -.3px; margin: 0 0 12px;
	overflow-wrap: anywhere;
}
.fsp-rating { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #555; margin: 0 0 12px; }
.fsp-stars {
	width: 88px; height: 14px; display: inline-block; position: relative;
	background: linear-gradient(90deg, #ddd 0, #ddd);
}
.fsp-stars, .fsp-stars-fill {
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 14'><path fill='black' d='M7 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L7 11l-4.3 2.3.8-4.8L0 5.1l4.8-.7zM25 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L25 11l-4.3 2.3.8-4.8L18 5.1l4.8-.7zM43 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L43 11l-4.3 2.3.8-4.8L36 5.1l4.8-.7zM61 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L61 11l-4.3 2.3.8-4.8L54 5.1l4.8-.7zM79 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L79 11l-4.3 2.3.8-4.8L72 5.1l4.8-.7z'/></svg>") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 14'><path fill='black' d='M7 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L7 11l-4.3 2.3.8-4.8L0 5.1l4.8-.7zM25 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L25 11l-4.3 2.3.8-4.8L18 5.1l4.8-.7zM43 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L43 11l-4.3 2.3.8-4.8L36 5.1l4.8-.7zM61 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L61 11l-4.3 2.3.8-4.8L54 5.1l4.8-.7zM79 0l2.2 4.4 4.8.7-3.5 3.4.8 4.8L79 11l-4.3 2.3.8-4.8L72 5.1l4.8-.7z'/></svg>") center / contain no-repeat;
}
.fsp-stars-fill { position: absolute; inset: 0; width: 0; background: #f5b301; }

.fsp-price {
	font-family: Rajdhani, sans-serif; font-weight: 700;
	font-size: 30px; line-height: 1.2; margin: 0 0 10px;
}
.fsp-price del { color: var(--fsp-mute); font-size: 18px; font-weight: 600; margin-right: 8px; }
.fsp-price ins { text-decoration: none; color: var(--fsp-red); }
.fsp-price .woocommerce-Price-amount { color: var(--fsp-ink); }
.fsp-price ins .woocommerce-Price-amount { color: var(--fsp-red); }

.fsp-stock {
	display: inline-flex; align-items: center; gap: 5px;
	align-self: flex-start;
	width: auto !important;
	max-width: max-content;
	font-size: 11.5px; font-weight: 600; line-height: 1.2;
	padding: 3px 8px; border-radius: 999px;
	margin: 0 0 12px;
}
.fsp-stock.is-in { background: #ecfdf5; color: #059669; }
.fsp-stock.is-out { background: #fef2f2; color: #dc2626; }

.fsp-short {
	font-size: 15px; line-height: 1.7; color: #444; margin: 0 0 16px;
	max-height: none !important; overflow: visible !important;
	background: none !important; border: 0 !important; padding: 0 !important;
	box-shadow: none !important;
}
.fsp-short p { margin: 0 0 8px; }
.fsp-short-body {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
}
.fsp-short.is-open .fsp-short-body {
	display: block;
	-webkit-line-clamp: unset;
	overflow: visible;
}
.fsp-readmore {
	display: inline-flex; align-items: center; justify-content: center; gap: 4px;
	margin: 8px 0 0; padding: 0; border: 0; background: none;
	color: var(--fsp-red); font-weight: 700; font-size: 13.5px;
	font-family: inherit; cursor: pointer;
}
.fsp-readmore::after { content: " ›"; font-weight: 800; }
.fsp-short.is-open .fsp-readmore::after { content: ""; }
.fsp-readmore:hover { text-decoration: underline; }

.fsp-notes {
	display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px;
}
.fsp-note {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12.5px; font-weight: 600; color: #444;
	background: #f6f7f8; border-radius: 999px; padding: 6px 12px 6px 8px;
}
.fsp-note svg { width: 15px; height: 15px; color: var(--fsp-red); flex: 0 0 auto; }

.fsp-nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 36px; height: 36px; border-radius: 50%; border: 0;
	background: rgba(255,255,255,.94);
	box-shadow: 0 4px 16px rgba(0,0,0,.12);
	font-size: 22px; line-height: 1; cursor: pointer; z-index: 2; color: #111;
}
.fsp-nav-prev { left: 10px; }
.fsp-nav-next { right: 10px; }
.fsp-nav:hover { background: #fff; }

.fsp-promo {
	margin: 10px 0 0; color: var(--fsp-red);
	font-weight: 700; font-size: 14px;
}

.fsp-specs { margin: 48px 0 0; }
.fsp-specs h2 {
	font-family: Rajdhani, sans-serif; font-weight: 700;
	font-size: 22px; margin: 0 0 14px;
	padding-bottom: 10px; border-bottom: 2px solid var(--fsp-ink);
	display: inline-block;
}
.fsp-spec-table { width: 100%; border-collapse: collapse; }
.fsp-spec-table th,
.fsp-spec-table td {
	padding: 12px 8px 12px 0; border-bottom: 1px solid var(--fsp-line);
	text-align: left; font-size: 14.5px; vertical-align: top;
}
.fsp-spec-table th {
	width: 36%; color: var(--fsp-mute); font-weight: 600; font-family: Rajdhani, sans-serif;
}

.fsp-attr, .fsp-extra, .fsp-colors { margin: 0 0 18px; }
.fsp-attr-lab {
	display: flex; justify-content: flex-start; align-items: baseline; flex-wrap: wrap; gap: 8px;
	font-size: 12.5px; font-weight: 700; letter-spacing: .3px;
	text-transform: uppercase; color: #666; margin: 0 0 8px;
	font-family: Rajdhani, "Hind Siliguri", sans-serif;
}
.fsp-attr-lab em { color: var(--fsp-red); font-style: normal; }
.fsp-attr-picked, .fsp-color-picked {
	color: var(--fsp-ink); text-transform: none;
	font-family: "Hind Siliguri", sans-serif;
	font-weight: 700; font-size: 13.5px;
}
.fsp-attr-picked:not(:empty)::before,
.fsp-color-picked:not(:empty)::before {
	content: "·";
	margin-right: 6px;
	color: #bbb;
	font-weight: 700;
}

.fsp-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.fsp-pill {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px; border-radius: 999px;
	border: 1.5px solid var(--fsp-line); background: #fff;
	font-family: inherit; font-weight: 600; font-size: 13.5px;
	color: var(--fsp-ink); cursor: pointer;
	transition: border-color .15s, background .15s, transform .12s;
}
.fsp-pill:hover { border-color: #c9ccd2; }
.fsp-pill.is-on {
	border-color: var(--fsp-red); background: #fff5f5;
	box-shadow: 0 0 0 3px rgba(236,28,36,.12);
}
.fsp-attr-boxed .fsp-pill {
	border-radius: 10px;
	padding: 10px 18px;
	min-width: 88px;
	justify-content: center;
	background: #fff;
}
.fsp-attr-boxed .fsp-pill.is-on {
	border-color: var(--fsp-ink);
	background: #fff;
	box-shadow: inset 0 0 0 1px var(--fsp-ink);
}

.fsp-short ul { margin: 0; padding: 0 0 0 18px; }
.fsp-short li { margin: 0 0 6px; line-height: 1.5; }
.fsp-sku { font-size: 13px; color: var(--fsp-mute); margin: 0 0 8px; }
.fsp-more {
	display: inline-block; margin: 10px 0 0;
	color: var(--fsp-red); font-weight: 700; font-size: 14px;
	text-decoration: none;
}
.fsp-more:hover { text-decoration: underline; }
.fsp-pill.is-off { opacity: .35; pointer-events: none; }
.fsp-swatch-dot {
	width: 16px; height: 16px; border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(0,0,0,.15);
}
.fsp-swatch-img {
	width: 22px; height: 22px; border-radius: 6px; overflow: hidden; background: #f3f3f3;
}
.fsp-swatch-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.fsp-color-row { display: flex; flex-wrap: wrap; gap: 8px; }
.fsp-color {
	display: inline-flex; align-items: center; gap: 7px;
	padding: 6px 12px 6px 7px; border-radius: 999px;
	border: 1.5px solid var(--fsp-line); background: #fff;
	font: 600 13px "Hind Siliguri", sans-serif; cursor: pointer; color: var(--fsp-ink);
}
.fsp-color.is-on { border-color: var(--fsp-red); background: #fff5f5; }
.fsp-color-dot {
	width: 18px; height: 18px; border-radius: 50%; overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0,0,0,.12);
}
.fsp-color-dot img { width: 100%; height: 100%; object-fit: cover; display: block; }

.fsp-extra-list { display: flex; flex-direction: column; gap: 8px; }
.fsp-extra-item {
	display: flex; align-items: center; gap: 12px; width: 100%; text-align: left;
	padding: 8px 10px; border: 1.5px solid var(--fsp-line); border-radius: 14px;
	background: #fff; cursor: pointer; font-family: inherit; color: inherit;
}
.fsp-extra-item:hover { border-color: #c9ccd2; }
.fsp-extra-item.is-on { border-color: var(--fsp-red); background: #fff5f5; }
.fsp-extra-item.is-out { opacity: .45; cursor: not-allowed; }
.fsp-extra-img {
	flex: 0 0 52px; width: 52px; height: 52px; border-radius: 10px;
	overflow: hidden; background: var(--fsp-bg);
}
.fsp-extra-img img { width: 100%; height: 100%; object-fit: contain; display: block; padding: 4px; }
.fsp-extra-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fsp-extra-name { font-weight: 600; font-size: 14px; }
.fsp-extra-price { font-family: Rajdhani, sans-serif; font-weight: 700; color: var(--fsp-red); font-size: 15px; }

.fsp-qty-row { margin: 8px 0 16px; }
.fsp-qty {
	display: inline-flex; align-items: center;
	border: 1.5px solid var(--fsp-line); border-radius: 14px; overflow: hidden;
	width: 156px; max-width: 100%; background: #fff;
}
.fsp-qty-btn, .fsp-qty-input {
	border: 0; background: #fff; height: 44px;
	font-family: Rajdhani, sans-serif; font-weight: 700; color: var(--fsp-ink);
}
.fsp-qty-btn { width: 44px; cursor: pointer; font-size: 20px; }
.fsp-qty-btn:hover { background: #fafafa; }
.fsp-qty-input {
	width: 52px; text-align: center; font-size: 16px;
	border-left: 1px solid var(--fsp-line); border-right: 1px solid var(--fsp-line);
	-moz-appearance: textfield;
}
.fsp-qty-input::-webkit-outer-spin-button,
.fsp-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

.fsp-actions { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px; }
.fsp-btn {
	height: 52px; border-radius: var(--fsp-btn-radius); font-family: "Hind Siliguri", sans-serif;
	font-weight: 700; font-size: 15.5px; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	transition: transform .12s, filter .15s, box-shadow .15s, background .15s;
	-webkit-tap-highlight-color: transparent;
	min-width: 0; padding: 0 12px;
	white-space: nowrap;
}
.fsp-btn svg { width: 18px; height: 18px; flex: 0 0 auto; }
.fsp-btn.is-loading svg { opacity: 0; }
.fsp-btn:active { transform: translateY(1px); }
.fsp-btn:disabled { opacity: .4; cursor: not-allowed; transform: none; }
.fsp-btn-cart {
	background: var(--fsp-cart-bg); color: var(--fsp-cart-color);
	border: 1.5px solid var(--fsp-cart-border);
}
.fsp-btn-cart:hover { filter: brightness(.97); }
.fsp-btn-order {
	background: var(--fsp-order-bg); color: var(--fsp-order-color); border: 1.5px solid var(--fsp-order-bg);
	box-shadow: 0 10px 24px rgba(236, 28, 36, .28);
}
.fsp-btn-order:hover { filter: brightness(.94); }
.fsp-btn.is-loading { color: transparent !important; pointer-events: none; position: relative; }
.fsp-btn.is-loading::after {
	content: ""; position: absolute; inset: 0; margin: auto;
	width: 18px; height: 18px; border-radius: 50%;
	border: 2px solid rgba(255,255,255,.35); border-top-color: currentColor;
	animation: fsp-spin .6s linear infinite;
}
.fsp-btn-cart.is-loading::after { border-color: rgba(0,0,0,.2); border-top-color: #111; }
@keyframes fsp-spin { to { transform: rotate(360deg); } }

.fsp-hint { color: var(--fsp-red); font-size: 13px; font-weight: 600; margin: 10px 0 0; }

.fsp-trust {
	list-style: none; padding: 18px 0 0; margin: 18px 0 0;
	border-top: 1px solid var(--fsp-line);
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px;
}
.fsp-trust li {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px;
	font-size: 12px; font-weight: 600; color: #555; line-height: 1.35;
}
.fsp-trust svg { color: var(--fsp-red); }

.fsp-desc, .fsp-related { margin: 40px 0 0; }
.fsp-desc h2, .fsp-related h2, .fsp-specs h2 {
	font-family: "Hind Siliguri", sans-serif !important;
	font-weight: 700 !important;
	font-size: 20px !important;
	margin: 0 0 14px;
	padding-bottom: 8px; border-bottom: 2px solid var(--fsp-ink);
	display: inline-block;
	letter-spacing: 0;
}
.fsp-desc-body { font-size: 15.5px; line-height: 1.75; color: #333; }
.fsp-desc-body p { margin: 0 0 12px; }

.fsp-rel-head {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	margin: 0 0 14px;
}
.fsp-rel-head h2 {
	margin: 0 !important;
}
.fsp-rel-nav { display: none; align-items: center; gap: 6px; flex: 0 0 auto; }
.fsp-rel-btn {
	width: 36px; height: 36px; padding: 0; border-radius: 10px;
	border: 1.5px solid var(--fsp-line); background: #fff; color: #111;
	font-size: 22px; line-height: 1; cursor: pointer;
	display: grid; place-items: center;
}
.fsp-rel-btn:active { transform: scale(.96); }
.fsp-rel-btn:disabled { opacity: .35; pointer-events: none; }

.fsp-rel-grid {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px;
}
.fsp-rel {
	display: flex; flex-direction: column; text-decoration: none; color: inherit;
	border: 1px solid var(--fsp-line); border-radius: 16px; overflow: hidden;
	background: #fff; transition: transform .2s, box-shadow .2s;
	-webkit-tap-highlight-color: transparent;
}
.fsp-rel-link {
	display: flex; flex-direction: column; text-decoration: none; color: inherit;
	min-width: 0; flex: 1 1 auto;
}
.fsp-rel:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,0,0,.08); }
.fsp-rel-img {
	aspect-ratio: 1; background: var(--fsp-bg); display: grid; place-items: center;
}
.fsp-rel-img img { width: 100%; height: 100%; object-fit: contain; padding: 12px; }
.fsp-rel-name {
	padding: 10px 12px 0; font-weight: 600; font-size: 13.5px;
	font-family: "Hind Siliguri", sans-serif !important;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	min-height: 44px;
	line-height: 1.3;
}
.fsp-rel-price {
	padding: 6px 12px 8px; font-family: Rajdhani, sans-serif; font-weight: 700; font-size: 16px;
	color: var(--fsp-ink);
}
.fsp-rel-cart {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	margin: 0 10px 10px; height: 38px; padding: 0 8px;
	border-radius: 10px; border: 1.5px solid var(--fsp-cart-border);
	background: var(--fsp-cart-bg); color: var(--fsp-cart-color);
	font-family: "Hind Siliguri", sans-serif; font-weight: 700; font-size: 12.5px;
	cursor: pointer; width: calc(100% - 20px);
	-webkit-tap-highlight-color: transparent;
}
.fsp-rel-cart svg { width: 15px; height: 15px; flex: 0 0 auto; }
.fsp-rel-cart:hover { filter: brightness(.97); }
.fsp-rel-cart:active { transform: translateY(1px); }
.fsp-rel-cart.is-loading { color: transparent !important; pointer-events: none; position: relative; }
.fsp-rel-cart.is-loading svg { opacity: 0; }
.fsp-rel-cart.is-loading::after {
	content: ""; position: absolute; inset: 0; margin: auto;
	width: 16px; height: 16px; border-radius: 50%;
	border: 2px solid rgba(0,0,0,.18); border-top-color: #111;
	animation: fsp-spin .6s linear infinite;
}

.fsp-sticky {
	display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 99990;
	background: rgba(255,255,255,.96); backdrop-filter: blur(16px);
	border-top: 1px solid var(--fsp-line);
	box-shadow: 0 -10px 32px rgba(0,0,0,.08);
	padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
	gap: 8px; align-items: center;
}
.fsp-sticky-price {
	font-family: Rajdhani, sans-serif; font-weight: 700; font-size: 16px;
	flex: 1; min-width: 0;
}
.fsp-sticky .fsp-btn { flex: 1; height: 46px; font-size: 13.5px; gap: 6px; }
.fsp-sticky .fsp-btn svg { width: 16px; height: 16px; }
@media (max-width: 768px) {
	.fsp-sticky.is-on { display: flex; }
	body.fsp-active.has-fsp-sticky { padding-bottom: 84px; }
}
@media (max-width: 420px) {
	.fsp-sticky .fsp-btn svg { display: none; }
}

.fsp-lightbox {
	position: fixed; inset: 0; z-index: 200; background: rgba(10,10,10,.92);
	display: grid; place-items: center; padding: 24px;
}
.fsp-lightbox[hidden] { display: none; }
.fsp-lightbox img { max-width: min(960px, 100%); max-height: 90vh; object-fit: contain; }
.fsp-lb-close {
	position: absolute; top: 16px; right: 18px;
	width: 42px; height: 42px; border: 0; border-radius: 50%;
	background: #fff; color: #111; font-size: 28px; cursor: pointer; line-height: 1;
}
.fsp-lb-prev, .fsp-lb-next {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 44px; height: 44px; border: 0; border-radius: 50%;
	background: rgba(255,255,255,.92); color: #111; font-size: 28px; cursor: pointer; line-height: 1;
}
.fsp-lb-prev { left: 12px; }
.fsp-lb-next { right: 12px; }

.fsp-promo, .fsp-more { display: none !important; }

.fsp-toast {
	position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(12px);
	background: #111; color: #fff; padding: 12px 18px; border-radius: 12px;
	font-weight: 600; font-size: 14px; z-index: 99999; opacity: 0;
	transition: opacity .2s, transform .2s;
}
.fsp-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }
.fsp-toast.is-err { background: #b91c1c; }
body.has-fsp-sticky .fsp-toast { bottom: 96px; }

.fsp-page-hint { padding: 40px 16px; text-align: center; color: #777; }

.fsp-active .woocommerce-product-details__short-description,
.fsp-active .woocommerce-tabs,
.fsp-active div.product > .related,
.fsp-active div.product > .upsells { display: none !important; }

@media (max-width: 1024px) {
	.fsp-hero {
		display: grid !important;
		gap: 20px;
		grid-template-columns: 1fr !important;
		width: 100% !important;
	}
	.fsp-gallery,
	.fsp-info {
		width: 100% !important;
		max-width: 100% !important;
	}
	.fsp-gallery,
	.fsp-gal-rail .fsp-gallery {
		position: static !important;
		display: block !important;
		grid-template-columns: none !important;
	}
	.fsp-gal-rail .fsp-gallery {
		display: grid !important;
		grid-template-columns: 52px minmax(0, 1fr) !important;
		gap: 8px;
		align-items: start;
	}
	.fsp-gal-rail .fsp-gallery:not(:has(.fsp-thumbs-wrap)) {
		grid-template-columns: 1fr !important;
	}
	.fsp-gal-rail .fsp-stage {
		grid-column: 2 !important;
		grid-row: 1 !important;
		width: 100%;
		aspect-ratio: 1 / 1;
		height: auto !important;
		max-height: none !important;
	}
	.fsp-gal-rail .fsp-gallery:not(:has(.fsp-thumbs-wrap)) .fsp-stage {
		grid-column: 1 !important;
	}
	.fsp-gal-rail .fsp-thumbs-wrap {
		grid-column: 1 !important;
		grid-row: 1 !important;
		flex-direction: column !important;
		margin: 0 !important;
		width: 52px;
		max-height: min(70vw, 360px) !important;
	}
	.fsp-gal-rail .fsp-thumbs {
		flex-direction: column !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		max-height: min(70vw, 360px) !important;
		scroll-snap-type: y mandatory;
	}
	.fsp-rel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.fsp { padding: 8px 12px 24px; }
	.fsp-stage {
		aspect-ratio: 1 / 1;
		width: 100%;
		height: auto;
		max-height: none;
		border-radius: 12px;
	}
	.fsp-mainimg, .fsp-slide img { padding: 8px; }
	.fsp-actions,
	.fsp-tpl-bold .fsp-actions {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 8px;
	}
	.fsp-tpl-bold .fsp-btn-order { order: 0; height: 48px; border-radius: var(--fsp-btn-radius); }
	.fsp-btn {
		width: 100%;
		min-height: 46px;
		height: auto;
		padding: 8px 8px;
		font-size: 13px;
		line-height: 1.25;
		white-space: normal;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
	}
	.fsp-title { font-size: 22px; }
	.fsp-price { font-size: 24px; }
	.fsp-nav { width: 28px; height: 28px; font-size: 18px; }
	.fsp-gal-rail .fsp-thumb { flex: 0 0 48px; width: 48px; height: 48px; }
	.fsp-nav-prev { left: 6px; }
	.fsp-nav-next { right: 6px; }
	.fsp-qty { width: 156px; }
	.fsp-thumb { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 10px; }
	.fsp-thumbs-wrap { margin-top: 8px; }
	.fsp-gal-rail .fsp-thumbs-wrap { margin-top: 0; }
	.fsp-pills { gap: 6px; }
	.fsp-attr-boxed .fsp-pill {
		min-width: 0;
		padding: 8px 10px;
		flex: 1 1 calc(33.33% - 6px);
	}
	.fsp-notes { gap: 6px; }
	.fsp-note { font-size: 11.5px; max-width: 100%; }
	.fsp-trust { gap: 8px; }
	.fsp-trust li { font-size: 11px; }
	.fsp-bc { margin-bottom: 10px; }
	.fsp-bc-home { padding: 7px 11px 7px 9px; font-size: 12.5px; border-radius: 10px; }
	.fsp-related h2, .fsp-desc h2 { font-size: 17px !important; border-bottom: 0; padding-bottom: 0; }
	.fsp-readmore {
		width: auto;
		min-height: 0;
		margin-top: 8px;
		padding: 4px 0;
		border: 0;
		background: none;
		border-radius: 0;
		justify-content: flex-start;
		font-size: 13.5px;
	}
	.fsp-readmore:hover { text-decoration: none; }
	.fsp-related {
		margin: 28px -12px 0;
	}
	.fsp-rel-head {
		padding: 0 12px;
		margin-bottom: 10px;
	}
	.fsp-rel-nav { display: flex; }
	.fsp-rel-grid {
		display: flex !important;
		grid-template-columns: none !important;
		gap: 10px;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 12px;
		-webkit-overflow-scrolling: touch;
		padding: 2px 12px 14px;
		scrollbar-width: none;
	}
	.fsp-rel-grid::-webkit-scrollbar { display: none; }
	.fsp-rel {
		flex: 0 0 calc(50vw - 22px);
		width: calc(50vw - 22px);
		max-width: 220px;
		scroll-snap-align: start;
		border-radius: 14px;
	}
	.fsp-rel:hover { transform: none; box-shadow: none; }
	.fsp-rel:active { transform: scale(.98); }
	.fsp-rel-img img { padding: 8px; }
	.fsp-rel-name {
		padding: 8px 10px 0;
		font-size: 12.5px;
		min-height: 34px;
		-webkit-line-clamp: 2;
	}
	.fsp-rel-price {
		padding: 4px 10px 6px;
		font-size: 15px;
	}
	.fsp-rel-cart {
		height: 34px;
		margin: 0 8px 8px;
		width: calc(100% - 16px);
		font-size: 11.5px;
		gap: 4px;
		padding: 0 6px;
	}
	.fsp-rel-cart svg { width: 13px; height: 13px; }
}
@media (max-width: 380px) {
	.fsp-title { font-size: 20px; }
	.fsp-price { font-size: 22px; }
	.fsp-btn { font-size: 12px; min-height: 44px; }
	.fsp-attr-boxed .fsp-pill { padding: 7px 8px; font-size: 12px; }
}

/* —— Page templates —— */
.fsp-tpl-studio .fsp-hero { gap: 56px; }
.fsp-tpl-studio .fsp-stage { border-radius: 10px; box-shadow: none; background: #f4f4f5; }
.fsp-tpl-studio .fsp-title { font-weight: 600; letter-spacing: -.5px; }
.fsp-tpl-studio .fsp-kicker { letter-spacing: 3px; font-weight: 600; }
.fsp-tpl-studio .fsp-btn { height: 50px; }

.fsp-tpl-minimal .fsp-stage {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
}
.fsp-tpl-minimal .fsp-thumb {
	border: 0; background: #f7f7f7; border-radius: 8px;
}
.fsp-tpl-minimal .fsp-thumb.is-on {
	box-shadow: 0 0 0 2px var(--fsp-ink);
	border-color: transparent;
}
.fsp-tpl-minimal .fsp-btn-cart {
	background: #fff; color: var(--fsp-ink);
	border: 1.5px solid var(--fsp-ink);
}
.fsp-tpl-minimal .fsp-btn-order { box-shadow: none; }
.fsp-tpl-minimal .fsp-rel { border: 0; border-radius: 0; }
.fsp-tpl-minimal .fsp-rel:hover { box-shadow: none; transform: none; }
.fsp-tpl-minimal .fsp-trust { border-top-color: #eee; }
.fsp-tpl-minimal .fsp-note { background: transparent; padding-left: 0; }
.fsp-tpl-minimal .fsp-title { font-weight: 600; letter-spacing: -.4px; }
.fsp-tpl-minimal .fsp-hero { gap: 64px; }

.fsp-tpl-bold .fsp-stage {
	background: #111;
	box-shadow: none;
	border-radius: 8px;
}
.fsp-tpl-bold .fsp-nav { background: rgba(255,255,255,.12); color: #fff; box-shadow: none; }
.fsp-tpl-bold .fsp-nav:hover { background: rgba(255,255,255,.22); }
.fsp-tpl-bold .fsp-zoom { background: #1a1a1a; border-color: #333; color: #fff; }
.fsp-tpl-bold .fsp-dot { background: rgba(255,255,255,.35); }
.fsp-tpl-bold .fsp-dot.is-on { background: var(--fsp-red); }
.fsp-tpl-bold .fsp-actions { grid-template-columns: 1fr 1fr; gap: 8px; }
.fsp-tpl-bold .fsp-btn-order {
	border-radius: var(--fsp-btn-radius); height: 52px; font-size: 16px;
}
.fsp-tpl-bold .fsp-btn-cart { height: 50px; }
.fsp-tpl-bold .fsp-title { font-size: clamp(26px, 3.6vw, 40px); }
.fsp-tpl-bold .fsp-kicker { color: var(--fsp-red); }
.fsp-tpl-bold .fsp-promo { font-size: 15px; }

/* —— Gallery templates —— */
.fsp-gal-rail .fsp-gallery {
	display: grid;
	grid-template-columns: 68px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
}
.fsp-gal-rail .fsp-stage { grid-column: 2; }
.fsp-gal-rail .fsp-thumbs-wrap {
	grid-column: 1;
	grid-row: 1;
	flex-direction: column;
	margin: 0;
	max-height: min(560px, 72vw);
}
.fsp-gal-rail .fsp-thumbs {
	flex-direction: column;
	overflow-x: hidden;
	overflow-y: auto;
	max-height: min(560px, 72vw);
	scroll-snap-type: y mandatory;
}
.fsp-gal-rail .fsp-tbtn { display: none !important; }
.fsp-gal-rail .fsp-thumb { flex: 0 0 64px; width: 64px; height: 64px; }
.fsp-gal-rail .fsp-gallery:not(:has(.fsp-thumbs-wrap)) { grid-template-columns: 1fr; }
.fsp-gal-rail .fsp-gallery:not(:has(.fsp-thumbs-wrap)) .fsp-stage { grid-column: 1; }

.fsp-gal-dots .fsp-thumbs-wrap { display: none; }
.fsp-gal-dots .fsp-dots { display: flex; }
.fsp-gal-dots .fsp-count { display: none; }

.fsp-gal-peek .fsp-stage { overflow: hidden; }
.fsp-gal-peek .fsp-slide { flex: 0 0 82%; }
.fsp-gal-peek .fsp-track {
	transform: translateX(calc(9% - (82% * var(--fsp-i, 0))));
}
.fsp-gal-peek .fsp-dots { display: flex; bottom: 10px; }
.fsp-gal-dots .fsp-zoom,
.fsp-gal-peek .fsp-zoom { bottom: 32px; }

@media (max-width: 960px) {
	.fsp-tpl-studio .fsp-hero { gap: 22px; }
	.fsp-tpl-minimal .fsp-hero { gap: 22px; }
	.fsp-gal-peek .fsp-slide { flex: 0 0 88%; }
	.fsp-gal-peek .fsp-track { transform: translateX(calc(6% - (88% * var(--fsp-i, 0)))); }
}

/* v1.6 — product page polish */
.fsp-price,
.fsp-sticky-price { transition: transform .2s ease, color .2s ease; }
.fsp-price.is-flash,
.fsp-sticky-price.is-flash { animation: fsp-price-pop .4s ease; }
@keyframes fsp-price-pop {
	0% { transform: scale(1); }
	40% { transform: scale(1.045); color: var(--fsp-red); }
	100% { transform: scale(1); }
}
.fsp-zoom {
	transition: border-color .15s, color .15s, background .15s;
}
.fsp-zoom:hover { border-color: var(--fsp-red); color: var(--fsp-red); }
.fsp-thumb { transition: border-color .15s, box-shadow .15s, transform .12s; }
.fsp-thumb:hover { border-color: #c9ccd2; }
.fsp-fvp .fv-variation-price,
.fsp-fvp .fv-variation-price * {
	font-family: Rajdhani, "Hind Siliguri", sans-serif;
	font-weight: 700;
}
.fsp-fvp .fv-variation-title {
	font-weight: 700;
	font-size: 15px;
}
.fsp-btn-cart:hover { background: #ececec; }
.fsp-btn-order:hover { background: var(--fsp-red-d); border-color: var(--fsp-red-d); }
@media (max-width: 380px) {
	.fsp-actions .fsp-btn svg { display: none; }
}

