/* =============================================================================
   FEMIK - Bulk Variation Table v2.3.0
   ============================================================================= */

/* Wrapper */
.femik-bvt-wrap {
	margin: 1.5em 0;
	font-family: inherit;
}

/* =============================================================================
   TABLEAU
   ============================================================================= */

.femik-bvt-wrap table.femik-bvt-table {
	width: 100%;
	border-collapse: collapse !important;
	margin: 0 0 1.5em !important;
	font-size: 0.875em;
	border: none !important;
	background: transparent !important;
}

.femik-bvt-wrap table.femik-bvt-table thead th {
	background: #111111 !important;
	color: #ffffff !important;
	padding: 10px 12px !important;
	text-align: center !important;
	font-weight: 700 !important;
	font-size: 0.78em !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	border: none !important;
	line-height: 1.3 !important;
}

.femik-bvt-wrap table.femik-bvt-table thead th:first-child {
	text-align: left !important;
}

.femik-bvt-wrap table.femik-bvt-table tbody tr {
	border-bottom: 1px solid #e5e5e5 !important;
	background: transparent !important;
}

.femik-bvt-wrap table.femik-bvt-table tbody tr:last-child {
	border-bottom: none !important;
}

.femik-bvt-wrap table.femik-bvt-table tbody tr:nth-child(even) {
	background: #f9f9f9 !important;
}

.femik-bvt-wrap table.femik-bvt-table tbody td {
	padding: 7px 10px !important;
	text-align: center !important;
	vertical-align: middle !important;
	border: none !important;
}

.femik-bvt-wrap table.femik-bvt-table tbody td.femik-bvt-label {
	text-align: left !important;
	font-weight: 600 !important;
	font-size: 0.88em !important;
	letter-spacing: 0.02em !important;
	white-space: nowrap !important;
}

/* Rupture */
.femik-bvt-wrap table.femik-bvt-table tbody tr.femik-bvt-row--oos td {
	opacity: 0.45;
}

.femik-bvt-oos {
	font-size: 0.75em;
	color: #c0392b;
	font-weight: 400;
	margin-left: 5px;
}

.femik-bvt-cell--oos {
	opacity: 0.3;
}

.femik-bvt-na {
	color: #cccccc;
	font-size: 0.9em;
}

/* =============================================================================
   PASTILLES COULEUR (swatches)
   ============================================================================= */

.femik-bvt-swatch {
	display: inline-block;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.35);
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
	vertical-align: middle;
	cursor: default;
}

/* =============================================================================
   CONTRÔLES QUANTITÉ
   ============================================================================= */

.femik-bvt-qty-control {
	display: inline-flex !important;
	align-items: center !important;
	border: 1px solid #dddddd !important;
	border-radius: 4px !important;
	overflow: hidden !important;
	background: #ffffff !important;
}

.femik-bvt-qty-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #f2f2f2 !important;
	border: none !important;
	padding: 0 !important;
	width: 26px !important;
	height: 30px !important;
	cursor: pointer !important;
	font-size: 1em !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	color: #333333 !important;
	transition: background 0.15s ease !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

.femik-bvt-qty-btn:hover:not(:disabled) {
	background: #e0e0e0 !important;
	color: #111 !important;
}

.femik-bvt-qty-btn:disabled {
	cursor: not-allowed !important;
	opacity: 0.35 !important;
}

.femik-bvt-qty-input {
	width: 40px !important;
	height: 30px !important;
	text-align: center !important;
	border: none !important;
	border-left: 1px solid #dddddd !important;
	border-right: 1px solid #dddddd !important;
	border-radius: 0 !important;
	padding: 0 4px !important;
	font-size: 0.875em !important;
	line-height: 30px !important;
	box-shadow: none !important;
	outline: none !important;
	background: #ffffff !important;
	color: #333333 !important;
	-moz-appearance: textfield !important;
}

.femik-bvt-qty-input::-webkit-inner-spin-button,
.femik-bvt-qty-input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.femik-bvt-qty-control--disabled {
	opacity: 0.3 !important;
	pointer-events: none !important;
}

/* =============================================================================
   OPTIONS — RADIO (au-dessus du tableau, en ligne)
   ============================================================================= */

.femik-bvt-options {
	margin: 0 0 1.25em;
	padding: 0.85em 1.25em;
	background: #f7f7f7;
	border: 1px solid #e5e5e5;
	border-radius: 5px;
}

.femik-bvt-options-title {
	margin: 0 0 0.65em !important;
	padding: 0 !important;
	font-size: 0.8em !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.07em !important;
	color: #444444 !important;
	border: none !important;
}

/* En ligne avec retour à la ligne si écran étroit */
.femik-bvt-options-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	align-items: center;
}

.femik-bvt-option-label {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.5em !important;
	cursor: pointer !important;
	font-size: 0.92em !important;
	color: #333333 !important;
	margin: 0 !important;
	padding: 0 !important;
	white-space: nowrap;
}

.femik-bvt-option-radio {
	width: 15px !important;
	height: 15px !important;
	cursor: pointer !important;
	accent-color: #111111 !important;
	flex-shrink: 0 !important;
	margin: 0 !important;
}

.femik-bvt-option-name {
	font-weight: 500;
}

.femik-bvt-option-price {
	margin-left: 4px;
	font-size: 0.82em;
	color: #666666;
	font-style: italic;
	white-space: nowrap;
}

/* =============================================================================
   BOUTON — noir, indépendant du thème
   ============================================================================= */

.femik-bvt-submit {
	display: inline-block !important;
	background: #111111 !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 3px !important;
	padding: 12px 24px !important;
	font-size: 0.9em !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: background 0.2s ease !important;
	box-shadow: none !important;
	outline: none !important;
	line-height: 1.4 !important;
}

.femik-bvt-submit:hover:not(:disabled) {
	background: #333333 !important;
	color: #ffffff !important;
}

.femik-bvt-submit:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed !important;
}

/* =============================================================================
   ACTIONS (bouton + spinner)
   ============================================================================= */

.femik-bvt-actions {
	display: flex;
	align-items: center;
	gap: 1em;
	margin-top: 0.25em;
}

.femik-bvt-spinner {
	display: inline-block;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(0, 0, 0, 0.12);
	border-top-color: #555555;
	border-radius: 50%;
	animation: femik-spin 0.65s linear infinite;
	flex-shrink: 0;
}

@keyframes femik-spin {
	to { transform: rotate(360deg); }
}

/* =============================================================================
   NOTICE
   ============================================================================= */

.femik-bvt-notice {
	margin-top: 1em;
	padding: 0.7em 1em;
	border-radius: 4px;
	font-size: 0.88em;
	line-height: 1.5;
}

.femik-bvt-notice--success {
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.femik-bvt-notice--error {
	background: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

.femik-bvt-notice a {
	color: inherit !important;
	font-weight: 700 !important;
	text-decoration: underline !important;
}

/* =============================================================================
   RESPONSIVE
   ============================================================================= */

@media ( max-width: 640px ) {
	.femik-bvt-wrap table.femik-bvt-table {
		font-size: 0.78em;
	}

	.femik-bvt-qty-btn {
		width: 22px !important;
		height: 28px !important;
	}

	.femik-bvt-qty-input {
		width: 32px !important;
		height: 28px !important;
	}

	.femik-bvt-options-list {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.55em;
	}
}