/*
Theme Name: Beaver Builder Child Theme
Theme URI: https://www.wpbeaverbuilder.com
Version: 1.0
Description: An example child theme that can be used as a starting point for custom development.
Author: The Beaver Builder Team
Author URI: https://www.fastlinemedia.com
template: bb-theme
*/

/* Add your custom styles here...Remember to change the Version number above! */

/* ============================================
   WooCommerce Checkout Block Template Styles
   ============================================ */

/* Apply Lexend Deca font to all WooCommerce pages */
.woocommerce,
.woocommerce-page,
body.woocommerce-checkout,
body.woocommerce-page,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-checkout * {
	font-family: "Lexend Deca", sans-serif;
}

/* DJ van Zon: Checkout Form Design (matching CF7 style) */
.wp-block-woocommerce-checkout {
	--dvz-bg: #faf7f4;
	/* off-white background */
	--dvz-surface: #ffffff;
	/* input surface */
	--dvz-border: rgba(17, 24, 39, 0.12);
	--dvz-text: #0f172a;
	/* slate/near-black */
	--dvz-muted: rgba(15, 23, 42, 0.65);
	--dvz-accent: #416bd6;
	/* blue button from screenshot */
	--dvz-accent-hover: #365fc8;
	--dvz-ring: rgba(65, 107, 214, 0.28);
}

/* Override any parent container constraints */
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-page .wp-block-woocommerce-checkout {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0 !important;
}

/* Main checkout container - matches block template design */
.wp-block-woocommerce-checkout {
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
	width: 100%;
	box-sizing: border-box;
}

.wp-block-woocommerce-checkout.alignwide {
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	margin-top: 2rem;
	width: 100%;
}

/* Ensure form doesn't constrain width */
.wp-block-woocommerce-checkout form.checkout {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Override default WooCommerce column layout */
.wp-block-woocommerce-checkout #customer_details {
	width: 100%;
	display: block;
}

/* Checkout fields block */
.wp-block-woocommerce-checkout-fields-block {
	margin-bottom: 2rem;
	width: 100%;
	box-sizing: border-box;
}

/* Contact information block */
.wp-block-woocommerce-checkout-contact-information-block {
	margin-bottom: 2rem;
	padding: 1.5rem;
	background: var(--dvz-surface);
	border: 1px solid var(--dvz-border);
	border-radius: 10px;
}

/* Hide contact information block when empty */
.wp-block-woocommerce-checkout-contact-information-block:empty {
	display: none;
}

/* Billing and shipping address blocks */
.wp-block-woocommerce-checkout-billing-address-block,
.wp-block-woocommerce-checkout-shipping-address-block {
	margin-bottom: 2rem;
	padding: 0 !important;
	background: var(--dvz-surface);
	border: none !important;
	border-radius: 10px;
	width: 100%;
	box-sizing: border-box;
}

/* Ensure WooCommerce billing/shipping fields containers have proper width */
.wp-block-woocommerce-checkout-billing-address-block .woocommerce-billing-fields,
.wp-block-woocommerce-checkout-shipping-address-block .woocommerce-shipping-fields {
	width: 100%;
}

.wp-block-woocommerce-checkout-billing-address-block .woocommerce-billing-fields h3,
.wp-block-woocommerce-checkout-shipping-address-block .woocommerce-shipping-fields h3 {
	width: 100% !important;
	min-width: 200px;
	writing-mode: horizontal-tb !important;
	white-space: normal !important;
	word-wrap: break-word;
	display: block;
}

.wp-block-woocommerce-checkout-billing-address-block h3,
.wp-block-woocommerce-checkout-shipping-address-block h3 {
	margin-top: 0;
	margin-bottom: 1.5rem;
	font-size: 1.25rem;
	font-weight: 500;
	width: 100% !important;
	min-width: 200px;
	writing-mode: horizontal-tb !important;
	white-space: normal !important;
	word-wrap: break-word;
	display: block;
}

/* Additional information block */
.wp-block-woocommerce-checkout-additional-information-block {
	margin-bottom: 2rem;
	padding: 1.5rem;
	background: var(--dvz-surface);
	border: 1px solid var(--dvz-border);
	border-radius: 10px;
	width: 100%;
	box-sizing: border-box;
}

/* Hide additional information block when empty */
.wp-block-woocommerce-checkout-additional-information-block:empty {
	display: none;
}

.wp-block-woocommerce-checkout-additional-information-block h3,
.wp-block-woocommerce-checkout-additional-information-block .woocommerce-additional-fields h3 {
	margin-top: 0;
	margin-bottom: 1.5rem;
	font-size: 1.25rem;
	font-weight: 500;
	width: 100% !important;
	min-width: 200px;
	writing-mode: horizontal-tb !important;
	white-space: normal !important;
	word-wrap: break-word;
	display: block;
}

/* Order summary block */
.wp-block-woocommerce-checkout-order-summary-block {
	padding: 0;
	background: transparent !important;
	border: 0;
	border-radius: 10px;
	margin-bottom: 2rem;
	width: 100%;
	box-sizing: border-box;
}

.wp-block-woocommerce-checkout-order-summary-heading-block h3 {
	margin-top: 0;
	margin-bottom: 1.5rem;
	font-size: 1.25rem;
	font-weight: 500;
}

/* Remove margin-top from order review heading */
.woocommerce #order_review_heading,
.woocommerce-page #order_review_heading {
	margin-top: 0;
}

/* Order review styling */
.woocommerce #order_review,
.woocommerce-page #order_review {
	background: #fff;
	padding: 0;
	-moz-border-radius: 6px;
	-webkit-border-radius: 6px;
	border-radius: 6px;
}

/* Shop table styling */
.woocommerce table.shop_table,
.woocommerce-page table.shop_table {
	background: #f0f0fe;
	border: 1px solid rgba(61, 103, 230, 0.5) !important;
	-moz-border-radius: 6px;
	-webkit-border-radius: 6px;
	border-radius: 6px;
}

/* Order summary cart items */
.wp-block-woocommerce-checkout-order-summary-cart-items-block {
	margin-bottom: 1.5rem;
}

.wp-block-woocommerce-checkout-order-summary-cart-items-block table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1rem;
}

.wp-block-woocommerce-checkout-order-summary-cart-items-block table thead th {
	padding: 0.75rem 0;
	border-bottom: 2px solid #e0e0e0;
	text-align: left;
	font-weight: 500;
}

.wp-block-woocommerce-checkout-order-summary-cart-items-block table tbody td {
	padding: 0.75rem 0;
	border-bottom: 1px solid #e0e0e0;
}

.wp-block-woocommerce-checkout-order-summary-cart-items-block table tfoot th,
.wp-block-woocommerce-checkout-order-summary-cart-items-block table tfoot td {
	padding: 0.75rem 0;
	border-top: 1px solid #e0e0e0;
}

.wp-block-woocommerce-checkout-order-summary-cart-items-block table tfoot tr.order-total th,
.wp-block-woocommerce-checkout-order-summary-cart-items-block table tfoot tr.order-total td {
	border-top: 2px solid #e0e0e0;
	font-weight: 500;
	font-size: 1.1rem;
}

/* Order summary subtotal, discount, shipping, fee, taxes blocks */
/* Styles applied via table rows - no additional CSS needed */

/* Responsive design */
@media (min-width: 768px) {
	.wp-block-woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: 3fr 2fr;
		gap: 2rem;
		align-items: start;
	}

	.wp-block-woocommerce-checkout-fields-block {
		grid-column: 1;
		width: 100%;
		max-width: 100%;
	}

	.wp-block-woocommerce-checkout-order-summary-block {
		grid-column: 2;
		position: sticky;
		top: 2rem;
		align-self: start;
		width: 100%;
		max-width: 100%;
	}
}

/* Ensure proper width on larger screens */
@media (min-width: 992px) {
	.wp-block-woocommerce-checkout {
		max-width: 100%;
		padding: 0;
	}
}

@media (max-width: 767px) {
	.wp-block-woocommerce-checkout {
		padding: 0;
		max-width: 100%;
	}

	.wp-block-woocommerce-checkout form.checkout {
		display: block;
	}

	.wp-block-woocommerce-checkout-billing-address-block,
	.wp-block-woocommerce-checkout-shipping-address-block,
	.wp-block-woocommerce-checkout-contact-information-block,
	.wp-block-woocommerce-checkout-additional-information-block {
		padding: 1rem;
	}

	.wp-block-woocommerce-checkout-order-summary-block {
		position: static !important;
	}
}

/* Form field styling */
.wp-block-woocommerce-checkout .form-row {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

/* Grid layout for billing and shipping fields - 50/50 layout */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5px;
	width: 100%;
	box-sizing: border-box;
}

/* Additional fields wrapper - display block */
.woocommerce-additional-fields__field-wrapper {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

/* Single field wrapper - ensure full width within grid column */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper,
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper,
.woocommerce-additional-fields__field-wrapper .single-field-wrapper {
	width: 100%;
	box-sizing: border-box;
}

/* Wide fields span both columns - check for form-row-wide class inside */
/* But exclude name and address fields that should be 50/50 */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper:has(.form-row-wide):not([data-priority="10"]):not([data-priority="20"]):not([data-priority="50"]):not([data-priority="60"]):not([data-priority="65"]):not([data-priority="70"]),
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper:has(.form-row-wide):not([data-priority="10"]):not([data-priority="20"]):not([data-priority="50"]):not([data-priority="60"]):not([data-priority="65"]):not([data-priority="70"]) {
	grid-column: span 2;
}

/* Name fields: 50/50 layout using data-priority */
/* First name (priority 10) - column 1 */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper[data-priority="10"],
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper[data-priority="10"] {
	grid-column: 1 !important;
}

/* Last name (priority 20) - column 2 */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper[data-priority="20"],
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper[data-priority="20"] {
	grid-column: 2 !important;
}

/* Address fields: 50/50 layout using data-priority - override wide field rule */
/* Street address (priority 50) - column 1 */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper[data-priority="50"],
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper[data-priority="50"] {
	grid-column: 1 !important;
}

/* Apartment (priority 60) - column 2 */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper[data-priority="60"],
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper[data-priority="60"] {
	grid-column: 2 !important;
}

/* Postcode (priority 65) - column 1 */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper[data-priority="65"],
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper[data-priority="65"] {
	grid-column: 1 !important;
}

/* City (priority 70) - column 2 */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper[data-priority="70"],
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper[data-priority="70"] {
	grid-column: 2 !important;
}

/* All other fields span full width by default */
.woocommerce-billing-fields__field-wrapper .single-field-wrapper:not([data-priority="10"]):not([data-priority="20"]):not([data-priority="50"]):not([data-priority="60"]):not([data-priority="65"]):not([data-priority="70"]),
.woocommerce-shipping-fields__field-wrapper .single-field-wrapper:not([data-priority="10"]):not([data-priority="20"]):not([data-priority="50"]):not([data-priority="60"]):not([data-priority="65"]):not([data-priority="70"]) {
	grid-column: span 2;
}

.woocommerce form .form-row-first:not(.wp-block-woocommerce-checkout .form-row-first),
.woocommerce-page form .form-row-first:not(.wp-block-woocommerce-checkout .form-row-first),
.woocommerce form .form-row-last:not(.wp-block-woocommerce-checkout .form-row-last),
.woocommerce-page form .form-row-last:not(.wp-block-woocommerce-checkout .form-row-last) {
	width: 100% !important;
	float: none !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

/* Global fix for all h3 headings in checkout form - prevent vertical text */
.wp-block-woocommerce-checkout h3 {
	width: 100% !important;
	min-width: 200px !important;
	writing-mode: horizontal-tb !important;
	white-space: normal !important;
	word-wrap: break-word;
	display: block;
	overflow: visible;
}

.wp-block-woocommerce-checkout .form-row {
	margin-bottom: 0;
}

.wp-block-woocommerce-checkout .form-row p {
	margin-bottom: 0;
}

.wp-block-woocommerce-checkout .form-row label {
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	line-height: 1.2;
	font-weight: 500;
	color: var(--dvz-text);
	min-height: 27.5px;
}

/* Ensure screen-reader labels maintain spacing for alignment */
.wp-block-woocommerce-checkout .form-row label.screen-reader-text {
	position: absolute;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px;
	height: 1px;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

/* Add spacer for fields with screen-reader labels to maintain alignment */
.wp-block-woocommerce-checkout .form-row:has(label.screen-reader-text)::before {
	content: '';
	display: block;
	height: 27.5px;
	margin-bottom: 8px;
	visibility: hidden;
}

.wp-block-woocommerce-checkout .form-row label .required {
	color: rgba(15, 23, 42, 0.75);
	font-weight: 500;
}

.wp-block-woocommerce-checkout .form-row label .optional {
	color: var(--dvz-muted);
	font-weight: 500;
}

.wp-block-woocommerce-checkout .form-row input[type="text"],
.wp-block-woocommerce-checkout .form-row input[type="email"],
.wp-block-woocommerce-checkout .form-row input[type="tel"],
.wp-block-woocommerce-checkout .form-row input[type="password"],
.wp-block-woocommerce-checkout .form-row select,
.wp-block-woocommerce-checkout .form-row textarea {
	width: 100% !important;
	background: var(--dvz-surface) !important;
	border: 1px solid var(--dvz-border) !important;
	border-radius: 10px !important;
	padding: 12px 14px !important;
	font-size: 15px !important;
	color: var(--dvz-text) !important;
	outline: none !important;
	transition: box-shadow .18s ease, border-color .18s ease, transform .18s ease !important;
	box-sizing: border-box !important;
	height: auto !important;
}

/* Override WooCommerce default height: 34px */
.woocommerce form .form-row input.input-text,
.woocommerce-page form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-page form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row select,
.woocommerce table.cart td.actions .coupon .input-text,
.woocommerce-page table.cart td.actions .coupon .input-text {
	height: auto !important;
}

.wp-block-woocommerce-checkout .form-row textarea {
	min-height: 140px;
	resize: vertical;
	padding-top: 12px;
}

/* Nice select caret spacing */
.wp-block-woocommerce-checkout .form-row select {
	appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, rgba(15, 23, 42, .55) 50%),
		linear-gradient(135deg, rgba(15, 23, 42, .55) 50%, transparent 50%);
	background-position:
		calc(100% - 18px) 50%,
		calc(100% - 12px) 50%;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	padding-right: 42px;
}

.wp-block-woocommerce-checkout .form-row input::placeholder,
.wp-block-woocommerce-checkout .form-row textarea::placeholder {
	color: rgba(15, 23, 42, 0.45);
}

.wp-block-woocommerce-checkout .form-row input:focus,
.wp-block-woocommerce-checkout .form-row select:focus,
.wp-block-woocommerce-checkout .form-row textarea:focus {
	border-color: rgba(65, 107, 214, 0.55);
	box-shadow: 0 0 0 3px var(--dvz-ring);
}

/* Payment section styling */
.woocommerce #payment,
.woocommerce-page #payment {
	background: #f0f0fe;
	border: 1px solid rgba(61, 103, 230, 0.5) !important;
	-moz-border-radius: 6px;
	-webkit-border-radius: 6px;
	border-radius: 6px;
	margin-top: 1.5rem;
	padding-top: 1.5rem;
}

#payment .wc_payment_methods {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem 0;
}

#payment .place-order {
	margin-top: 1.5rem;
}

#payment .button.alt {
	width: 100%;
	padding: 12px 22px;
	margin-top: 1rem;
	margin-bottom: 1rem;
	font-size: 15px;
	font-weight: 500;
	background: var(--dvz-accent);
	color: #fff;
	border: 0;
	border-radius: 10px;
	cursor: pointer;
	transition: box-shadow .18s ease, transform .18s ease, background-color .18s ease;
}

#payment .button.alt:hover {
	background: var(--dvz-accent-hover);
	transform: translateY(-1px);
	box-shadow: 0 14px 24px rgba(65, 107, 214, 0.22);
}

#payment .button.alt:active {
	transform: translateY(0);
}

/* Loading state */
.wp-block-woocommerce-checkout.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* Error and notice styling */
.woocommerce-error,
.woocommerce-message {
	padding: 1rem;
	margin-bottom: 1.5rem;
	border-radius: 10px;
}

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

/* Coupon info styling - specific styling for coupon notice */
.woocommerce-info {
	background: #f0f0fe !important;
	border: 1px solid rgba(61, 103, 230, 0.5) !important;
	color: #0c5460 !important;
	padding: 1rem !important;
	margin-bottom: 20px !important;
	border-radius: 10px;
	font-weight: 500 !important;
}

.woocommerce-info a,
.woocommerce-info .showcoupon {
	font-weight: 500 !important;
}

/* Coupon form styling */
#woocommerce-checkout-form-coupon,
.checkout_coupon.woocommerce-form-coupon {
	background: #f0f0fe !important;
	border: 1px solid rgba(61, 103, 230, 0.5) !important;
	margin-top: 0 !important;
	margin-bottom: 1.5rem;
	border-radius: 10px;
}

/* Coupon code input field styling */
#coupon_code,
.woocommerce-checkout #coupon_code,
.woocommerce-checkout .input-text[name="coupon_code"] {
	padding: 12px 14px;
	border-radius: 10px;
	height: auto !important;
}

.woocommerce-message {
	background: #d4edda;
	border: 1px solid #c3e6cb;
	color: #155724;
}

/* WooCommerce button styling */
.woocommerce-page ul.products li.product a.button,
.woocommerce-page .woocommerce-message a.button,
.woocommerce-page .woocommerce-message a.button.wc-forward,
.woocommerce-page .woocommerce a.button.wc-forward,
.woocommerce-page button.button,
.woocommerce-page button.button.alt,
.woocommerce-page a.button,
.woocommerce-page a.button.alt,
.woocommerce-page .woocommerce button[type=submit],
.woocommerce-page button[type=submit].alt.disabled {
	color: #fff;
	background-color: #3f6ae6;
	font-family: "Lexend Deca", sans-serif;
	font-weight: normal;
	outline: none !important;
	line-height: 1.2;
	border-radius: 20px !important;
	text-transform: none;
	border: #3f6ae6;
	font-size: 14px !important;
	padding: 12px 24px;
}

/* Customer details address section */
.woocommerce-customer-details {
	background: #f0f0fe;
	border: 1px solid rgba(61, 103, 230, 0.5) !important;
	-moz-border-radius: 6px;
	-webkit-border-radius: 6px;
	border-radius: 6px;
	padding: 1.5rem;
	margin-bottom: 2rem;
}

.woocommerce-customer-details .woocommerce-column__title {
	margin-top: 0;
	margin-bottom: 1rem;
	font-size: 1.25rem;
	font-weight: 500;
}

.woocommerce-customer-details address {
	font-style: normal;
	line-height: 1.6;
	margin-bottom: 0;
}

.woocommerce-customer-details--email {
	margin-top: 0.5rem;
	margin-bottom: 0;
}

/* ============================================
   Checkout Quantity Selector UI
   ============================================ */

/* Quantity wrapper styling */
.woocommerce-checkout .quantity,
form.checkout .quantity {
	display: inline-flex;
	align-items: center;
	background: var(--dvz-surface, #ffffff);
	border: 1px solid var(--dvz-border, rgba(17, 24, 39, 0.12));
	border-radius: 10px;
	overflow: hidden;
	width: auto;
	min-width: 120px;
	margin: 0;
	vertical-align: middle;
}

/* Quantity input field */
.woocommerce-checkout .quantity input[type="number"],
form.checkout .quantity input[type="number"],
.woocommerce-checkout .quantity input.qty,
form.checkout .quantity input.qty {
	width: 50px !important;
	min-width: 50px;
	text-align: center;
	border: none !important;
	border-left: 1px solid var(--dvz-border, rgba(17, 24, 39, 0.12)) !important;
	border-right: 1px solid var(--dvz-border, rgba(17, 24, 39, 0.12)) !important;
	border-radius: 0 !important;
	padding: 10px 8px !important;
	font-size: 15px !important;
	font-weight: 500;
	color: var(--dvz-text, #0f172a) !important;
	background: transparent !important;
	margin: 0 !important;
	-moz-appearance: textfield;
	appearance: textfield;
	box-shadow: none !important;
	outline: none !important;
}

/* Remove spinner arrows in WebKit browsers */
.woocommerce-checkout .quantity input[type="number"]::-webkit-outer-spin-button,
.woocommerce-checkout .quantity input[type="number"]::-webkit-inner-spin-button,
form.checkout .quantity input[type="number"]::-webkit-outer-spin-button,
form.checkout .quantity input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Quantity buttons (plus/minus) */
.woocommerce-checkout .quantity .qty-button-minus,
.woocommerce-checkout .quantity .qty-button-plus,
.woocommerce-checkout .quantity button.minus,
.woocommerce-checkout .quantity button.plus,
form.checkout .quantity .qty-button-minus,
form.checkout .quantity .qty-button-plus,
form.checkout .quantity button.minus,
form.checkout .quantity button.plus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 40px;
	min-width: 36px;
	padding: 0;
	margin: 0;
	border: none;
	background: var(--dvz-surface, #ffffff);
	color: var(--dvz-text, #0f172a);
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	transition: all 0.2s ease;
	user-select: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	outline: none;
	box-shadow: none;
}

/* Button hover states */
.woocommerce-checkout .quantity .qty-button-minus:hover:not(:disabled),
.woocommerce-checkout .quantity .qty-button-plus:hover:not(:disabled),
.woocommerce-checkout .quantity button.minus:hover:not(:disabled),
.woocommerce-checkout .quantity button.plus:hover:not(:disabled),
form.checkout .quantity .qty-button-minus:hover:not(:disabled),
form.checkout .quantity .qty-button-plus:hover:not(:disabled),
form.checkout .quantity button.minus:hover:not(:disabled),
form.checkout .quantity button.plus:hover:not(:disabled) {
	background: var(--dvz-accent, #416bd6);
	color: #ffffff;
	transform: scale(1.05);
}

/* Button active states */
.woocommerce-checkout .quantity .qty-button-minus:active:not(:disabled),
.woocommerce-checkout .quantity .qty-button-plus:active:not(:disabled),
.woocommerce-checkout .quantity button.minus:active:not(:disabled),
.woocommerce-checkout .quantity button.plus:active:not(:disabled),
form.checkout .quantity .qty-button-minus:active:not(:disabled),
form.checkout .quantity .qty-button-plus:active:not(:disabled),
form.checkout .quantity button.minus:active:not(:disabled),
form.checkout .quantity button.plus:active:not(:disabled) {
	transform: scale(0.95);
}

/* Button disabled states */
.woocommerce-checkout .quantity .qty-button-minus:disabled,
.woocommerce-checkout .quantity .qty-button-plus:disabled,
.woocommerce-checkout .quantity button.minus:disabled,
.woocommerce-checkout .quantity button.plus:disabled,
.woocommerce-checkout .quantity .qty-button-minus.disabled,
.woocommerce-checkout .quantity .qty-button-plus.disabled,
form.checkout .quantity .qty-button-minus:disabled,
form.checkout .quantity .qty-button-plus:disabled,
form.checkout .quantity button.minus:disabled,
form.checkout .quantity button.plus:disabled,
form.checkout .quantity .qty-button-minus.disabled,
form.checkout .quantity .qty-button-plus.disabled {
	opacity: 0.4;
	cursor: not-allowed;
	background: var(--dvz-surface, #ffffff);
	color: var(--dvz-muted, rgba(15, 23, 42, 0.65));
}

/* Input focus state */
.woocommerce-checkout .quantity input[type="number"]:focus,
form.checkout .quantity input[type="number"]:focus {
	border-left-color: var(--dvz-accent, #416bd6) !important;
	border-right-color: var(--dvz-accent, #416bd6) !important;
	box-shadow: inset 0 0 0 1px var(--dvz-ring, rgba(65, 107, 214, 0.28)) !important;
}

/* Quantity in checkout table */
.woocommerce-checkout-review-order-table .quantity,
.woocommerce-checkout-review-order-table .product-name .quantity {
	display: inline-flex;
	margin-left: 8px;
	vertical-align: middle;
}

/* Ensure quantity doesn't break table layout */
.woocommerce-checkout-review-order-table .product-name {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

/* Responsive adjustments */
@media (max-width: 767px) {

	.woocommerce-checkout .quantity,
	form.checkout .quantity {
		min-width: 100px;
	}

	.woocommerce-checkout .quantity input[type="number"],
	form.checkout .quantity input[type="number"] {
		width: 40px !important;
		min-width: 40px;
		padding: 8px 6px !important;
	}

	.woocommerce-checkout .quantity .qty-button-minus,
	.woocommerce-checkout .quantity .qty-button-plus,
	form.checkout .quantity .qty-button-minus,
	form.checkout .quantity .qty-button-plus {
		width: 32px;
		height: 36px;
		min-width: 32px;
		font-size: 18px;
	}
}

/* ============================================
   Signed Book Option Styling
   ============================================ */

.dvz-signed-book-option {
	margin: 20px 0;
	padding: 20px;
	background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
	border: 2px solid #e0e0e0;
	border-radius: 12px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
	transition: all 0.3s ease;
}

.dvz-signed-book-option:hover {
	border-color: var(--dvz-accent, #416bd6);
	box-shadow: 0 4px 12px rgba(65, 107, 214, 0.15);
}

.dvz-signed-book-option label {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-weight: 500;
	margin: 0;
	user-select: none;
	-webkit-user-select: none;
}

.dvz-signed-book-option input[type="checkbox"] {
	margin-right: 12px;
	width: 20px !important;
	height: 20px !important;
	min-width: 20px;
	cursor: pointer;
	accent-color: var(--dvz-accent, #416bd6);
	flex-shrink: 0;
}

.dvz-signed-book-option label span {
	font-size: 16px;
	color: var(--dvz-text, #0f172a);
	line-height: 1.5;
}

.dvz-signed-book-option label span span {
	color: #d32f2f;
	font-size: 14px;
	margin-left: 5px;
	font-weight: 600;
}

.dvz-signed-book-option p {
	margin: 12px 0 0 32px;
	font-size: 14px;
	color: var(--dvz-muted, rgba(15, 23, 42, 0.65));
	font-style: italic;
	line-height: 1.5;
}

/* Responsive adjustments for signed book option */
@media (max-width: 767px) {
	.dvz-signed-book-option {
		padding: 15px;
		margin: 15px 0;
	}

	.dvz-signed-book-option label span {
		font-size: 15px;
	}

	.dvz-signed-book-option p {
		margin-left: 28px;
		font-size: 13px;
	}
}