/* ============================================================
   Woo Stock Badge — single-product.css
   Applied exclusively on single product and single post pages.
   ============================================================ */

/* Expand primary container to 100% full width when sidebar is absent */
body.single-product #primary,
body.single-product .site-main,
body.single-product .ast-woocommerce-container,
body.single-product.ast-left-sidebar #primary,
body.single-product.ast-right-sidebar #primary,
body.single-post #primary,
body.single-post.ast-left-sidebar #primary,
body.single-post.ast-right-sidebar #primary {
	width:        100% !important;
	max-width:    100% !important;
	flex:         0 0 100% !important;
	float:        none !important;
	margin-left:  0 !important;
	margin-right: 0 !important;
	border:       none !important;
	padding-left: 0 !important;
}

/* Hide sidebar and any filter remnants on single product/post pages */
body.single-product #secondary,
body.single-product .widget-area,
body.single-product .widget-area.secondary,
body.single-product .sidebar-main,
body.single-product .csf-filter-box,
body.single-product #csf-filter-box,
body.single-product #csf-filter-box-widget,
body.single-product .csf-filter-box--widget,
body.single-product .csf-mobile-toggle-btn,
body.single-product #csf-mobile-toggle,
body.single-product #csf-mobile-overlay,
body.single-product .wc-block-product-filters,
body.single-product .wp-block-woocommerce-product-filters {
	display:    none !important;
	visibility: hidden !important;
	width:      0 !important;
	height:     0 !important;
	overflow:   hidden !important;
	position:   absolute !important;
	margin:     0 !important;
	padding:    0 !important;
	border:     0 !important;
}

/* Move Stock Status Badge (<p class="stock">) to FIRST position at top of single product summary */
.summary.entry-summary {
	display: flex !important;
	flex-direction: column !important;
}

.summary.entry-summary .woocommerce-breadcrumb { order: 1 !important; }
.summary.entry-summary .product_title          { order: 2 !important; }
.summary.entry-summary .woocommerce-product-details__short-description { order: 3 !important; }
.summary.entry-summary .product_meta           { order: 4 !important; }
.summary.entry-summary .price                  { order: 5 !important; }
.summary.entry-summary .wka-gift-package-box,
.summary.entry-summary .wka-single-gift-compact {
	order: 6 !important;
	margin: 16px 0 18px 0 !important;
}
.summary.entry-summary form.cart               { order: 7 !important; }

/* The Stock Badge element gets order 0 (FIRST element at top) */
.summary.entry-summary p.stock,
.summary.entry-summary .stock.out-of-stock,
.summary.entry-summary .stock.in-stock,
.summary.entry-summary .wsb-badge-single,
.summary.entry-summary .csf-single-stock-wrapper {
	order: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 14px !important;
}

/* Stock Status Badge Styling on Single Product */
.summary.entry-summary p.stock.out-of-stock,
.summary.entry-summary .stock.out-of-stock {
	display: inline-block !important;
	width: auto !important;
	background-color: #fee2e2 !important;
	color: #dc2626 !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	padding: 6px 14px !important;
	border-radius: 6px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	align-self: flex-start !important;
}

.summary.entry-summary p.stock.in-stock,
.summary.entry-summary .stock.in-stock {
	display: inline-block !important;
	width: auto !important;
	background-color: #dcfce7 !important;
	color: #16a34a !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	padding: 6px 14px !important;
	border-radius: 6px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	align-self: flex-start !important;
}

/* ============================================================
   Quantity Lock — disabled until a variation is selected
   ============================================================ */

/* Wrapper dimmed when locked */
.quantity.sd-qty-locked {
	position: relative;
	opacity:  0.45;
	pointer-events: none;
}

/* Tooltip hint shown above the qty box */
.quantity.sd-qty-locked::after {
	content:          "Please select an option first";
	position:         absolute;
	bottom:           calc(100% + 8px);
	left:             50%;
	transform:        translateX(-50%);
	white-space:      nowrap;
	background:       var(--ast-global-color-2, #111827);
	color:            #fff;
	font-size:        11.5px;
	font-weight:      500;
	padding:          5px 10px;
	border-radius:    6px;
	pointer-events:   none;
	opacity:          0;
	transition:       opacity .2s;
	z-index:          10;
}

/* Arrow under the tooltip */
.quantity.sd-qty-locked::before {
	content:        "";
	position:       absolute;
	bottom:         calc(100% + 3px);
	left:           50%;
	transform:      translateX(-50%);
	border:         5px solid transparent;
	border-top-color: var(--ast-global-color-2, #111827);
	pointer-events: none;
	opacity:        0;
	transition:     opacity .2s;
	z-index:        10;
}

/* Show tooltip on hover even when pointer-events disabled (use parent hover) */
form.cart:hover .quantity.sd-qty-locked::after,
form.cart:hover .quantity.sd-qty-locked::before {
	opacity: 1;
}

/* ============================================================
   WooCommerce Khalaf Addons — WooCommerce Variable Product Attribute Swatches
   Scoped EXCLUSIVELY under form.variations_form to avoid global overrides.
   ============================================================ */

/* Hide native select visually only — NOT display:none, so WooCommerce can still read & update its value.
   z-index:-1 pushes it behind the swatches container which sits at z-index:1 */
form.variations_form select.sd-swatch-initialized {
	position:       absolute !important;
	z-index:        -1 !important;
	width:          1px !important;
	height:         1px !important;
	overflow:       hidden !important;
	opacity:        0 !important;
	pointer-events: none !important;
	clip:           rect(0, 0, 0, 0) !important;
	white-space:    nowrap !important;
}

/* Swatches Container — position:relative + z-index:1 guarantees buttons always render above the hidden select */
form.variations_form .sd-swatches-container {
	position:    relative;
	z-index:     1;
	display:     flex;
	flex-wrap:   wrap;
	gap:         10px;
	margin:      8px 0 16px 0;
	align-items: center;
}

/* Individual Swatch Pill Button */
form.variations_form .sd-swatch-btn {
	display:          inline-flex;
	align-items:      center;
	justify-content:  center;
	min-width:        72px;
	padding:          9px 18px;
	font-size:        14px;
	font-weight:      600;
	font-family:      inherit;
	color:            var(--ast-global-color-2, #22344a);
	background-color: #ffffff;
	border:           2px solid var(--ast-global-color-6, #d8e3ef);
	border-radius:    10px;
	cursor:           pointer;
	user-select:      none;
	transition:       all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
	outline:          none;
	box-shadow:       0 2px 4px rgba(0, 0, 0, 0.04);
	position:         relative;
	line-height:      1.4;
}

/* Hover State */
form.variations_form .sd-swatch-btn:hover:not(.is-disabled) {
	border-color:     var(--ast-global-color-0, #f59e0b);
	color:            var(--ast-global-color-2, #111827);
	background-color: var(--ast-global-color-5, #fefce8);
	transform:        translateY(-1px);
	box-shadow:       0 4px 10px rgba(245, 158, 11, 0.15);
}

/* Active / Selected State — Matches Theme Primary Accent */
form.variations_form .sd-swatch-btn.is-selected {
	border-color:     var(--ast-global-color-0, #f59e0b);
	background-color: var(--ast-global-color-0, #f59e0b);
	color:            var(--ast-global-color-2, #111827);
	box-shadow:       0 4px 12px rgba(245, 158, 11, 0.28);
	transform:        translateY(0);
}

/* Active Checkmark Accent */
form.variations_form .sd-swatch-btn.is-selected::after {
	content:     "✓";
	margin-left: 6px;
	font-size:   13px;
	font-weight: 700;
}

/* Disabled / Out of Stock State */
form.variations_form .sd-swatch-btn.is-disabled {
	opacity:          0.45;
	border-style:     dashed;
	border-color:     #cbd5e1;
	background-color: #f8fafc;
	color:            #94a3b8;
	cursor:           not-allowed;
	text-decoration:  line-through;
	box-shadow:       none;
	transform:        none;
}

/* Focus Visible for Accessibility */
form.variations_form .sd-swatch-btn:focus-visible {
	border-color: var(--ast-global-color-0, #f59e0b);
	box-shadow:   0 0 0 3px rgba(245, 158, 11, 0.3);
}

/* Variations Table Layout Clean-up */
form.variations_form table.variations {
	width:           100%;
	border-collapse: collapse;
	border:          none;
	margin-bottom:   15px;
}

form.variations_form table.variations tr {
	border: none;
}

form.variations_form table.variations td.label {
	padding-right:   15px;
	vertical-align:  middle;
	font-weight:     700;
	color:           var(--ast-global-color-2, #111827);
	font-size:       15px;
	width:           90px;
}

form.variations_form table.variations td.value {
	vertical-align: middle;
	padding:        4px 0;
}

/* Reset Variations Clear Link */
form.variations_form .reset_variations {
	display:         inline-block;
	margin-top:      6px;
	font-size:       12.5px;
	color:           #d64545;
	text-decoration: underline;
	transition:      color 0.15s;
	font-weight:     500;
}

form.variations_form .reset_variations:hover {
	color: #b91c1c;
}

/* AJAX Add to Cart Button Loading State */
.single_add_to_cart_button.sd-loading {
	position: relative;
	pointer-events: none;
	opacity: 0.85;
}

.sd-btn-spinner {
	display: inline-block;
	width: 14px;
	height: 14px;
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: sdSpin 0.6s linear infinite;
	margin-right: 6px;
	vertical-align: middle;
}

@keyframes sdSpin {
	to { transform: rotate(360deg); }
}

