/* General helper class */
.bloom-hidden-heading {
	display: none !important;
}

/* Custom Mini-Cart Drawer Styles */
.bloom-mini-cart-drawer {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 100000;
	visibility: hidden;
	pointer-events: none;
}

.bloom-mini-cart-drawer.is-active {
	visibility: visible;
	pointer-events: auto;
}

.bloom-mini-cart-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.4);
	opacity: 0;
	transition: opacity 0.4s ease;
}

.bloom-mini-cart-drawer.is-active .bloom-mini-cart-overlay {
	opacity: 1;
}

.bloom-mini-cart-content {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	max-width: 500px;
	background: #FAF8F5;
	box-shadow: -10px 0 35px rgba(0, 0, 0, 0.15);
	transform: translateX(100%);
	transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
	display: flex;
	flex-direction: column;
	z-index: 2;
	overflow-y: auto;
}

.bloom-mini-cart-drawer.is-active .bloom-mini-cart-content {
	transform: translateX(0);
}

.bloom-mini-cart-header {
	position: sticky;
	top: 0;
	z-index: 10;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 24px;
	border-bottom: 1px solid #EAE5DC;
	background: #fff;
}

.bloom-mini-cart-title {
	font-family: "Inter", sans-serif;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #111;
	display: flex;
	align-items: center;
	gap: 8px;
}

.bloom-mini-cart-close {
	background: none;
	border: none;
	font-size: 32px;
	line-height: 1;
	color: #777;
	cursor: pointer;
	padding: 0;
	margin: 0;
	transition: color 0.2s;
}

.bloom-mini-cart-close:hover {
	color: #111;
}

.bloom-mini-cart-items-wrapper {
	background-color: #F7F3E9 !important;
	flex: 0 0 auto;
	overflow-y: visible;
	padding: 24px;
}

.bloom-mini-cart-items {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.bloom-cart-item {
	display: flex !important;
	gap: 16px !important;
	padding-bottom: 20px !important;
	border-bottom: 1px dashed #E5DFD5 !important;
	align-items: flex-start !important;
}

.bloom-cart-item-image {
	width: 90px !important;
	height: 90px !important;
	object-fit: cover !important;
	border-radius: 4px !important;
	background: #f0ebe2 !important;
	flex-shrink: 0 !important;
}

.bloom-cart-item-details {
	flex: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
	min-width: 0 !important;
}

.bloom-cart-item-row {
	display: flex !important;
	justify-content: space-between !important;
	align-items: flex-start !important;
	width: 100% !important;
	margin-bottom: 4px !important;
}

.bloom-cart-item-name {
	font-family: "Inter", sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #222 !important;
	margin: 0 !important;
	text-decoration: none !important;
	line-height: 1.3 !important;
	text-align: left !important;
	flex: 1 !important;
	min-width: 0 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
}

.bloom-cart-item-price {
	font-family: "Inter", sans-serif !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: #111 !important;
	white-space: nowrap !important;
	margin-left: 12px !important;
}

.bloom-cart-item-variation {
	font-family: "Inter", sans-serif !important;
	font-size: 11px !important;
	color: #8A7E72 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	margin-bottom: 6px !important;
	text-align: left !important;
}

.bloom-cart-item-actions {
	display: flex !important;
	align-items: center !important;
	gap: 16px !important;
	margin-top: 0px !important;
}

.bloom-qty-selector {
	display: inline-flex !important;
	align-items: center !important;
	border: 1px solid #E2DED5 !important;
	border-radius: 4px !important;
	overflow: hidden !important;
	background: #fff !important;
	width: auto !important;
}

.bloom-qty-btn {
	background: none !important;
	border: none !important;
	width: 28px !important;
	height: 28px !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: #c29470 !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	transition: background 0.2s !important;
}

.bloom-qty-btn:hover {
	background: #FAF8F5 !important;
}

.bloom-qty-val {
	width: 32px !important;
	max-width: 32px !important;
	height: 28px !important;
	line-height: 28px !important;
	text-align: center !important;
	border: none !important;
	background: transparent !important;
	font-family: "Inter", sans-serif !important;
	font-style: normal !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
}

.bloom-cart-item-remove {
	font-family: "Inter", sans-serif !important;
	font-size: 11px !important;
	color: #6d4833bf !important;
	text-decoration: none !important;
	cursor: pointer !important;
	margin: 0 !important;
	display: inline-block !important;
}

.bloom-cart-item-remove:hover {
	text-decoration: underline !important;
}

.bloom-cart-timer-badge {
	background: #FAF3EC !important;
	border: 1px solid #EAE0D5 !important;
	color: #6D4833 !important;
	font-family: "Inter", sans-serif !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	text-align: center !important;
	padding: 8px 12px !important;
	border-radius: 6px !important;
	margin: 12px 18px 0 18px !important;
}

.bloom-cart-timer-badge strong {
	font-weight: 700 !important;
	color: #B81C23 !important;
}

/* Footer */
.bloom-mini-cart-footer {
	padding: 24px;
	border-top: 1px solid #EAE5DC;
	background: #fff;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.bloom-mini-cart-note-section {
	border-bottom: 1px solid #F0EBE2;
	padding-bottom: 12px;
}

.bloom-mini-cart-note-toggle {
	background: none;
	border: none;
	color: #c29470;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	text-transform: uppercase;
}

.bloom-mini-cart-note-content {
	margin-top: 10px;
}

.bloom-mini-cart-note-input {
	width: 100%;
	height: 60px;
	border: 1px solid #E5DFD5;
	border-radius: 4px;
	padding: 10px;
	font-size: 13px;
	color: #333;
	resize: none;
	background: #FAF8F5;
}

.bloom-mini-cart-terms {
	display: flex;
}

.bloom-terms-label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	cursor: pointer;
}

.bloom-mini-cart-terms-checkbox {
	margin-top: 3px;
}

.bloom-terms-text {
	font-size: 11px;
	line-height: 1.4;
	color: #666;
}

.bloom-mini-cart-totals {
	padding: 8px 0;
}

.bloom-mini-cart-subtotal-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.bloom-mini-cart-subtotal-row .total-label {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.5px;
	color: #111;
}

.bloom-mini-cart-total-price {
	font-size: 18px;
	font-weight: 700;
	color: #111;
}

/* Switcher Tabs */
.bloom-mini-cart-switcher {
	display: flex;
	border: 1px solid #E2DED5;
	border-radius: 6px;
	overflow: hidden;
	background: #FAF8F5;
}

.bloom-switcher-tab {
	flex: 1;
	border: none;
	background: none;
	padding: 12px 8px;
	font-size: 11px;
	font-weight: 700;
	color: #666;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	transition: all 0.2s ease;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.bloom-switcher-tab+.bloom-switcher-tab {
	border-left: 1px solid #E2DED5;
}

.bloom-switcher-tab.active {
	background: #c29470;
	color: #fff;
}

.bloom-switcher-tab.active .icon {
	filter: brightness(0) invert(1);
}

/* Switcher Panels */
.bloom-mini-cart-panel {
	display: none;
}

.bloom-mini-cart-panel.active {
	display: block;
}

.bloom-panel-instruction {
	font-size: 12px;
	color: #555;
	margin: 8px 0 12px;
	font-weight: 500;
}

.bloom-store-list {
	max-height: 180px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bloom-store-item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 12px;
	border: 1px solid #EAE5DC;
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
	transition: all 0.2s ease;
}

.bloom-store-item:hover {
	border-color: #c29470;
}

.bloom-store-item.selected {
	border-color: #c29470;
	background: #FAF6F0;
}

.bloom-store-radio {
	margin-top: 3px;
	accent-color: #c29470;
}

.bloom-store-details {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.bloom-store-name {
	font-size: 13px;
	font-weight: 600;
	color: #111;
}

.bloom-store-address {
	font-size: 11px;
	color: #666;
	line-height: 1.3;
}

.bloom-store-phone {
	font-size: 11px;
	color: #888;
}

/* Delivery Panel */
.bloom-delivery-checker {
	display: flex !important;
	gap: 8px !important;
	margin-bottom: 12px !important;
	align-items: center !important;
}

.bloom-address-input-wrapper {
	position: relative !important;
	flex: 1 !important;
	display: flex !important;
	align-items: center !important;
}

.bloom-address-input {
	width: 100% !important;
	padding: 10px 32px 10px 36px !important;
	border: 1px solid #E5DFD5 !important;
	border-radius: 4px !important;
	font-family: "Inter", sans-serif !important;
	font-size: 14px !important;
	font-style: normal !important;
	color: #333 !important;
	background: #fff !important;
	box-shadow: none !important;
	outline: none !important;
	height: 42px !important;
	box-sizing: border-box !important;
}

.bloom-address-input::placeholder {
	font-style: normal !important;
	color: #aaa !important;
}

.bloom-search-icon {
	position: absolute !important;
	left: 12px !important;
	font-size: 14px !important;
	color: #888 !important;
	pointer-events: none !important;
}

.bloom-address-clear-btn {
	position: absolute !important;
	right: 10px !important;
	background: none !important;
	border: none !important;
	font-size: 18px !important;
	color: #999 !important;
	cursor: pointer !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 20px !important;
	height: 20px !important;
}

.bloom-address-clear-btn:hover {
	color: #333 !important;
}

.bloom-address-calc-btn {
	background: #c29470 !important;
	color: #fff !important;
	border: none !important;
	padding: 0 20px !important;
	font-family: "Inter", sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	border-radius: 4px !important;
	cursor: pointer !important;
	height: 42px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	transition: background 0.2s !important;
}

.bloom-address-calc-btn:hover {
	background: #b0815d !important;
}

.bloom-address-suggestions {
	position: absolute !important;
	background: #fff !important;
	border: 1px solid #E2DED5 !important;
	border-radius: 4px !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
	z-index: 9999 !important;
	max-height: 200px !important;
	overflow-y: auto !important;
	width: 100% !important;
	left: 0 !important;
	font-family: "Inter", sans-serif !important;
	font-size: 13px !important;
}

.bloom-suggestion-item {
	padding: 10px 12px !important;
	cursor: pointer !important;
	border-bottom: 1px solid #FAF8F5 !important;
	color: #444 !important;
	text-align: left !important;
}

.bloom-suggestion-item:last-child {
	border-bottom: none !important;
}

.bloom-suggestion-item:hover {
	background: #FAF8F5 !important;
	color: #c29470 !important;
}

.bloom-delivery-status {
	font-size: 12px;
	line-height: 1.4;
}

.bloom-delivery-available {
	color: #2e7d32;
	font-weight: 600;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.bloom-delivery-unavailable {
	color: #d32f2f;
	font-weight: 600;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

/* Checkout Button */
.bloom-checkout-btn {
	width: 100%;
	padding: 16px;
	background: #c29470;
	color: #fff;
	border: none;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	cursor: pointer;
	border-radius: 4px;
	transition: background 0.2s ease;
	margin-top: 8px;
}

.bloom-checkout-btn:hover:not(.is-disabled) {
	background: #b0815d;
}

.bloom-checkout-btn.is-disabled {
	background: #D8D4CB;
	color: #FAF8F5;
	cursor: not-allowed;
}

.bloom-tax-note {
	text-align: center;
	font-size: 10px;
	color: #888;
	margin: 0;
}

/* Loading Overlay */
.bloom-mini-cart-loading {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(250, 248, 245, 0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s;
	z-index: 10;
}

.bloom-mini-cart-loading.is-loading {
	opacity: 1;
	pointer-events: auto;
}

.bloom-spinner {
	width: 40px;
	height: 40px;
	border: 3px solid #EAE5DC;
	border-top-color: #c29470;
	border-radius: 50%;
	animation: bloom-spin 0.8s linear infinite;
}

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

/* Empty Cart State */
.bloom-empty-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	gap: 16px;
	color: #777;
	text-align: center;
	padding: 40px 20px;
}

.bloom-empty-icon {
	font-size: 48px;
}

.bloom-empty-text {
	font-size: 15px;
	font-weight: 500;
}

.bloom-shop-btn {
	display: inline-block;
	padding: 12px 24px;
	background: #c29470;
	color: #fff;
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* Body lock */
body.bloom-mini-cart-open {
	overflow: hidden;
}

/* Disable theme's default dropdown cart hover menu */
.mkdf-shopping-cart-dropdown {
	display: none !important;
}

/* Out of zone delivery styling and quote form */
body.bloom-out-of-zone .wp-block-woocommerce-checkout-payment-block,
body.bloom-out-of-zone #payment,
body.bloom-out-of-zone .wc-block-checkout__payment-options,
body.bloom-out-of-zone .wc-block-components-checkout-place-order-button,
body.bloom-out-of-zone .wc-block-checkout__actions_row {
	display: none !important;
}

.bloom-quote-container {
	display: none;
	margin: 24px 0;
	padding: 24px;
	border: 1px solid #b4ca69;
	background: #fdfef7;
	border-radius: 4px;
	font-family: inherit;
}

body.bloom-out-of-zone .bloom-quote-container {
	display: block !important;
}

.bloom-quote-title {
	margin: 0 0 12px;
	color: #111;
	font-size: 1.25rem;
	font-weight: 600;
}

.bloom-quote-text {
	margin: 0 0 20px;
	font-size: 15px;
	line-height: 1.5;
	color: #444;
}

.bloom-quote-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 200px;
	padding: 14px 28px;
	background: #b4ca69;
	color: #fff;
	border: 0;
	font-family: inherit;
	font-weight: 600;
	font-size: 16px;
	cursor: pointer;
	text-align: center;
	transition: background 0.2s ease;
}

.bloom-quote-button:hover {
	background: #a2b75a;
}

.bloom-quote-button:disabled {
	background: #ccc;
	cursor: not-allowed;
}

.bloom-quote-success {
	color: #2e7d32;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
}

.bloom-quote-success h3 {
	margin: 0 0 8px;
	color: #2e7d32;
	font-size: 1.25rem;
}

body.bloom-mode-pickup .wc-block-components-address-form__address_1,
body.bloom-mode-pickup .wc-block-components-address-form__address_2,
body.bloom-mode-pickup .wc-block-components-address-form__city,
body.bloom-mode-pickup .wc-block-components-address-form__state,
body.bloom-mode-pickup .wc-block-components-address-form__postcode,
body.bloom-mode-pickup .wc-block-components-address-form__country {
	display: none !important;
}

/* Pure CSS billing heading text replacement in pickup mode */
body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block .wc-block-components-title,
body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block h2,
body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block h3,
body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block legend,
body.bloom-mode-pickup .wc-block-checkout__billing-fields .wc-block-components-title,
body.bloom-mode-pickup .wc-block-checkout__billing-fields h2,
body.bloom-mode-pickup .wc-block-checkout__billing-fields h3,
body.bloom-mode-pickup .wc-block-checkout__billing-fields legend {
	position: relative !important;
	visibility: hidden !important;
}

body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block .wc-block-components-title::after,
body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block h2::after,
body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block h3::after,
body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block legend::after,
body.bloom-mode-pickup .wc-block-checkout__billing-fields .wc-block-components-title::after,
body.bloom-mode-pickup .wc-block-checkout__billing-fields h2::after,
body.bloom-mode-pickup .wc-block-checkout__billing-fields h3::after,
body.bloom-mode-pickup .wc-block-checkout__billing-fields legend::after {
	content: "VOS INFORMATIONS" !important;
	visibility: visible !important;
	position: absolute !important;
	left: 0 !important;
	top: 0 !important;
	display: inline-block !important;
	width: 100% !important;
	height: 100% !important;
}

/* Streamlined Checkout Styles */
body.bloom-checkout-page .bloom-fulfilment-switch {
	display: none !important;
}

body.bloom-checkout-page .wc-block-checkout__shipping-options,
body.bloom-checkout-page .wc-block-checkout__shipping-option,
body.bloom-checkout-page fieldset[class*="shipping-options"],
body.bloom-checkout-page fieldset[class*="shipping-option"],
body.bloom-checkout-page .wp-block-woocommerce-checkout-shipping-options-block,
body.bloom-checkout-page .wp-block-woocommerce-checkout-shipping-methods-block,
body.bloom-checkout-page .wp-block-woocommerce-checkout-shipping-method-block,
body.bloom-checkout-page .wp-block-woocommerce-checkout-order-note-block,
body.bloom-checkout-page .wc-block-checkout__order-notes {
	display: none !important;
}

.bloom-checkout-selection-summary {
	background: #FAF8F5;
	border: 1px solid #EAE5DC;
	border-radius: 8px;
	padding: 18px;
	margin-bottom: 24px;
	font-family: inherit;
}

.bloom-checkout-selection-summary .bloom-summary-title {
	font-size: 11px;
	font-weight: 700;
	color: #8A7E72;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 6px;
}

.bloom-checkout-selection-summary .bloom-summary-value {
	font-size: 14px;
	font-weight: 600;
	color: #111;
	line-height: 1.4;
}

.bloom-checkout-selection-summary .bloom-summary-address {
	font-size: 12px;
	color: #666;
	margin-top: 4px;
}

/* Replace "Saisir l'adresse pour procéder au calcul" with "Hors zone (sur devis)" when out of zone */
body.bloom-out-of-zone .wc-block-components-totals-shipping .wc-block-components-totals-item__value {
	visibility: hidden !important;
	position: relative !important;
}

body.bloom-out-of-zone .wc-block-components-totals-shipping .wc-block-components-totals-item__value::after {
	content: "Hors zone (sur devis)" !important;
	visibility: visible !important;
	position: absolute !important;
	right: 0 !important;
	white-space: nowrap !important;
	color: #d32f2f !important;
	font-weight: 600 !important;
}

/* Hide Region / Department (State) fields globally */
.wc-block-components-address-form__state,
.wc-block-components-state-input,
#billing_state_field,
#shipping_state_field,
p[id*="state_field"] {
	display: none !important;
}

/* Hide "Utiliser la même adresse pour la facturation" checkbox in pickup mode */
body.bloom-mode-pickup .wc-block-checkout__use-address-for-billing,
body.bloom-mode-pickup .wc-block-components-checkbox-control:has(input[id*="use-same-address"]),
body.bloom-mode-pickup .form-row:has(input[id*="same_as_billing"]),
body.bloom-mode-pickup label:has(input[id*="same_as_billing"]),
body.bloom-mode-pickup #ship-to-different-address,
body.bloom-mode-pickup .woocommerce-shipping-fields,
body.bloom-mode-pickup .wc-block-checkout__billing-address,
body.bloom-mode-pickup .wp-block-woocommerce-checkout-billing-address-block,
body.bloom-mode-pickup .woocommerce-billing-fields {
	display: none !important;
}

/* Explicit layout and display rules for injected address_1 fields */
#bloom_injected_shipping_address_1,
#bloom_injected_billing_address_1 {
	order: 6 !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	margin-bottom: 16px !important;
	clear: both !important;
}

/* Force display of address_1 and address_2 in delivery mode */
body.bloom-mode-delivery #billing_address_1_field,
body.bloom-mode-delivery #billing_address_2_field,
body.bloom-mode-delivery #shipping_address_1_field,
body.bloom-mode-delivery #shipping_address_2_field,
body.bloom-mode-delivery .wc-block-components-address-form__address_1,
body.bloom-mode-delivery .wc-block-components-address-form__address_2,
body.bloom-mode-delivery [class*="address-form__address_1"],
body.bloom-mode-delivery [class*="address-form__address_2"],
body.bloom-checkout-page:not(.bloom-mode-pickup) #billing_address_1_field,
body.bloom-checkout-page:not(.bloom-mode-pickup) #billing_address_2_field,
body.bloom-checkout-page:not(.bloom-mode-pickup) #shipping_address_1_field,
body.bloom-checkout-page:not(.bloom-mode-pickup) #shipping_address_2_field,
body.bloom-checkout-page:not(.bloom-mode-pickup) .wc-block-components-address-form__address_1,
body.bloom-checkout-page:not(.bloom-mode-pickup) .wc-block-components-address-form__address_2,
body.bloom-checkout-page:not(.bloom-mode-pickup) [class*="address-form__address_1"],
body.bloom-checkout-page:not(.bloom-mode-pickup) [class*="address-form__address_2"] {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* Hide native duplicate un-injected address_1 fields */
.wc-block-components-address-form__address_1:not(#bloom_injected_shipping_address_1):not(#bloom_injected_billing_address_1) {
	display: none !important;
}



/* Hide global top notice banners and section error boxes */
.wc-block-components-notices,
.wc-block-components-notice-banner,
.wc-block-components-notices__notice,
.woocommerce-NoticeGroup,
.woocommerce-error {
	display: none !important;
}

/* Ensure inline validation errors are displayed cleanly below the input fields */
.bloom-error-message,
.wc-block-components-validation-error,
.wc-block-components-text-input__error-message {
	display: block !important;
	color: #b81c23 !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	margin-top: 4px !important;
	width: 100% !important;
}

/* Thank you page order summary styles */
.bloom-thankyou-summary {
	background-color: #fff !important;
	border: 1px solid #eae5dc !important;
	border-radius: 8px !important;
	padding: 24px !important;
	margin: 30px auto !important;
	max-width: 800px !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important;
	font-family: inherit !important;
	clear: both !important;
}

.bloom-summary-title {
	font-size: 20px !important;
	font-weight: 600 !important;
	color: #111 !important;
	margin-top: 0 !important;
	margin-bottom: 20px !important;
	border-bottom: 1px solid #eae5dc !important;
	padding-bottom: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

.bloom-summary-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
	gap: 16px !important;
	margin-bottom: 24px !important;
}

.bloom-grid-item {
	display: flex !important;
	flex-direction: column !important;
	background-color: #faf9f6 !important;
	padding: 12px 16px !important;
	border-radius: 6px !important;
	border: 1px solid #f0ede6 !important;
}

.bloom-grid-label {
	font-size: 12px !important;
	color: #666 !important;
	text-transform: uppercase !important;
	margin-bottom: 4px !important;
	letter-spacing: 0.5px !important;
}

.bloom-grid-value {
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #111 !important;
}

.bloom-fulfillment-card {
	background-color: #fdfbf7 !important;
	border-left: 4px solid #a3b86c !important;
	padding: 16px !important;
	border-radius: 0 6px 6px 0 !important;
	margin-bottom: 24px !important;
	border-top: 1px solid #f0ede6 !important;
	border-right: 1px solid #f0ede6 !important;
	border-bottom: 1px solid #f0ede6 !important;
}

.bloom-fulfillment-card h3 {
	margin: 0 0 8px 0 !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #111 !important;
}

.bloom-fulfillment-card p {
	margin: 0 0 4px 0 !important;
	font-size: 14px !important;
	color: #444 !important;
}

.bloom-fulfillment-card p:last-child {
	margin-bottom: 0 !important;
}

.bloom-summary-table {
	width: 100% !important;
	border-collapse: collapse !important;
	margin-top: 16px !important;
	border: none !important;
}

.bloom-summary-table th,
.bloom-summary-table td {
	padding: 12px 16px !important;
	font-size: 14px !important;
	border-bottom: 1px solid #eae5dc !important;
}

.bloom-summary-table th {
	font-weight: 600 !important;
	color: #111 !important;
	background-color: #faf9f6 !important;
}

.bloom-summary-table td {
	color: #333 !important;
}

.bloom-summary-table tfoot td {
	font-weight: 600 !important;
	border-bottom: none !important;
}

.bloom-summary-table tfoot tr:last-child td {
	font-size: 16px !important;
	color: #111 !important;
	border-top: 2px solid #eae5dc !important;
	padding-top: 16px !important;
}

/* Hide raw WooCommerce default thank-you elements for an ultra-clean luxury card layout */
.woocommerce-order-received .woocommerce-order-overview,
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-notice--success,
.woocommerce-order-received .woocommerce-thankyou-order-received,
.woocommerce-order-received .wc-block-order-confirmation,
.woocommerce-order-received .wp-block-woocommerce-order-confirmation-summary,
.woocommerce-order-received .wp-block-woocommerce-order-confirmation-totals-wrapper,
.woocommerce-order-received .wp-block-woocommerce-order-confirmation-billing-wrapper,
.woocommerce-order-received .wp-block-woocommerce-order-confirmation-shipping-wrapper,
.woocommerce-order-received .woocommerce-order > p,
.woocommerce-order-received .woocommerce-order > ul.order_details,
.woocommerce-order-received .woocommerce-order > section {
	display: none !important;
}

/* Modern Bloom Thank You Container */
.bloom-thankyou-card-wrapper {
	max-width: 820px !important;
	margin: 30px auto 60px auto !important;
	padding: 0 15px !important;
	font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif !important;
	color: #2D2727 !important;
}

.bloom-thankyou-hero {
	background: linear-gradient(135deg, #2D3A29 0%, #3B4D36 100%) !important;
	border-radius: 24px !important;
	padding: 44px 28px 36px 28px !important;
	text-align: center !important;
	margin-bottom: 28px !important;
	box-shadow: 0 14px 35px rgba(45, 58, 41, 0.18) !important;
	color: #FFFFFF !important;
}

.bloom-thankyou-hero-icon {
	width: 64px !important;
	height: 64px !important;
	background: rgba(255, 255, 255, 0.15) !important;
	border: 2px solid rgba(255, 255, 255, 0.35) !important;
	color: #D4A373 !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 28px !important;
	margin: 0 auto 16px auto !important;
	backdrop-filter: blur(4px) !important;
}

.bloom-thankyou-hero-title {
	font-size: 26px !important;
	font-weight: 700 !important;
	color: #FFFFFF !important;
	margin: 0 0 8px 0 !important;
	letter-spacing: -0.3px !important;
	text-transform: none !important;
	line-height: 1.3 !important;
}

.bloom-thankyou-hero-sub {
	font-size: 15px !important;
	color: #E0D8C3 !important;
	margin: 0 0 20px 0 !important;
	font-weight: 400 !important;
}

.bloom-thankyou-order-pill {
	display: inline-block !important;
	background: rgba(255, 255, 255, 0.12) !important;
	border: 1px solid rgba(255, 255, 255, 0.25) !important;
	padding: 8px 24px !important;
	border-radius: 50px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #F5EBE0 !important;
	letter-spacing: 0.5px !important;
}

.bloom-thankyou-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
	gap: 20px !important;
	margin-bottom: 24px !important;
}

.bloom-thankyou-box {
	background: #ffffff !important;
	border: 1px solid #EBE5DB !important;
	border-radius: 18px !important;
	padding: 24px !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
}

.bloom-thankyou-box-title {
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #2D3A29 !important;
	margin: 0 0 16px 0 !important;
	padding-bottom: 12px !important;
	border-bottom: 2px solid #F3EDE3 !important;
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.8px !important;
}

.bloom-thankyou-row {
	display: flex !important;
	justify-content: space-between !important;
	align-items: baseline !important;
	padding: 10px 0 !important;
	border-bottom: 1px dashed #F0EAE1 !important;
	font-size: 14px !important;
}

.bloom-thankyou-row:last-child {
	border-bottom: none !important;
}

.bloom-thankyou-row-label {
	color: #706863 !important;
	font-weight: 500 !important;
}

.bloom-thankyou-row-val {
	color: #1A1A1A !important;
	font-weight: 600 !important;
	text-align: right !important;
}

.bloom-thankyou-table-box {
	background: #ffffff !important;
	border: 1px solid #EBE5DB !important;
	border-radius: 18px !important;
	padding: 24px !important;
	margin-bottom: 28px !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03) !important;
}

.bloom-thankyou-table {
	width: 100 !important;
	width: 100% !important;
	border-collapse: collapse !important;
	margin-top: 10px !important;
}

.bloom-thankyou-table th {
	text-align: left !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.8px !important;
	color: #706863 !important;
	padding: 12px 16px !important;
	background: #FAF7F2 !important;
	border-bottom: 1px solid #E8E2D8 !important;
}

.bloom-thankyou-table td {
	padding: 16px !important;
	font-size: 14px !important;
	color: #2D2727 !important;
	border-bottom: 1px solid #F3EDE3 !important;
	vertical-align: middle !important;
}

.bloom-thankyou-total-row {
	background: #FAF7F2 !important;
	font-weight: 700 !important;
}

.bloom-thankyou-total-row td {
	font-size: 16px !important;
	color: #1A1A1A !important;
	border-bottom: none !important;
	padding: 18px 16px !important;
}

.bloom-thankyou-actions {
	text-align: center !important;
	margin-top: 32px !important;
	display: flex !important;
	gap: 16px !important;
	justify-content: center !important;
	align-items: center !important;
	flex-wrap: wrap !important;
}

.bloom-thankyou-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 14px 28px !important;
	border-radius: 50px !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	text-decoration: none !important;
	transition: all 0.3s ease !important;
	cursor: pointer !important;
	border: none !important;
}

.bloom-download-btn {
	background: #2D3A29 !important;
	color: #ffffff !important;
	box-shadow: 0 6px 18px rgba(45, 58, 41, 0.2) !important;
}

.bloom-download-btn:hover {
	background: #3B4D36 !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 10px 24px rgba(45, 58, 41, 0.3) !important;
}

.bloom-home-btn {
	background: #FAF6F0 !important;
	color: #2D3A29 !important;
	border: 1px solid #DFD5C6 !important;
}

.bloom-home-btn:hover {
	background: #F2E8DC !important;
	transform: translateY(-2px) !important;
}

/* Reposition WooCommerce Blocks Checkout fields */
[class*="address-form__first-name"] {
	order: 1 !important;
}
[class*="address-form__last-name"] {
	order: 2 !important;
}
[class*="address-form__city"] {
	order: 3 !important;
}
[class*="address-form__phone"] {
	order: 4 !important;
}
[class*="address-form__postcode"] {
	order: 5 !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
}
[class*="address-form__address_1"] {
	order: 6 !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
}
[class*="address-form__address_2"] {
	order: 7 !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
}
[class*="address-form__state"] {
	order: 8 !important;
}
[class*="address-form__country"] {
	order: 9 !important;
}

/* Styling for our injected floating-label address fields to match WooCommerce Blocks exactly */
.wc-block-components-text-input.wc-block-components-address-form__address_1,
.wc-block-components-text-input.wc-block-components-address-form__address_2 {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	margin-bottom: 16px !important;
}

.wc-block-components-text-input.wc-block-components-address-form__address_1 input,
.wc-block-components-text-input.wc-block-components-address-form__address_2 input {
	width: 100% !important;
	height: 48px !important;
	padding: 20px 12px 4px 12px !important; /* Spacing for label */
	border: 1px solid #ccc !important;
	border-radius: 4px !important;
	font-size: 16px !important;
	background: #fff !important;
	color: #000 !important;
	box-sizing: border-box !important;
	outline: none !important;
	margin: 0 !important;
}

.wc-block-components-text-input.wc-block-components-address-form__address_1 label,
.wc-block-components-text-input.wc-block-components-address-form__address_2 label {
	position: absolute !important;
	left: 12px !important;
	top: 14px !important;
	font-size: 16px !important;
	color: #757575 !important;
	pointer-events: none !important;
	transition: all 0.15s ease-out-in, transform 0.15s ease-out-in !important;
	margin: 0 !important;
	transform-origin: left top !important;
	line-height: 1.2 !important;
	display: inline-block !important;
}

/* Float label when focused or filled */
.wc-block-components-text-input.wc-block-components-address-form__address_1 input:focus ~ label,
.wc-block-components-text-input.wc-block-components-address-form__address_1 input:not(:placeholder-shown) ~ label,
.wc-block-components-text-input.wc-block-components-address-form__address_1.is-active label,
.wc-block-components-text-input.wc-block-components-address-form__address_2 input:focus ~ label,
.wc-block-components-text-input.wc-block-components-address-form__address_2 input:not(:placeholder-shown) ~ label,
.wc-block-components-text-input.wc-block-components-address-form__address_2.is-active label {
	transform: translateY(-8px) scale(0.75) !important;
	color: #757575 !important;
}

/* Custom field error styles matching WooCommerce validation */
.wc-block-components-text-input.has-error input,
.form-row.has-error input {
	border-color: #cc0000 !important;
}
.wc-block-components-text-input.has-error label,
.form-row.has-error label {
	color: #cc0000 !important;
}
.wc-block-components-validation-error.bloom-validation-error p {
	color: #cc0000 !important;
	font-size: 13px !important;
	margin-top: 4px !important;
	margin-bottom: 0 !important;
}

/* Print CSS for Download PDF / Print Receipt */
@media print {
	body * {
		visibility: hidden !important;
	}
	.bloom-thankyou-card-wrapper,
	.bloom-thankyou-card-wrapper * {
		visibility: visible !important;
	}
	.bloom-thankyou-card-wrapper {
		position: absolute !important;
		left: 0 !important;
		top: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 20px !important;
		box-shadow: none !important;
		border: none !important;
	}
	.bloom-thankyou-actions {
		display: none !important;
	}
}