.sodsrc-zip { margin: 1em 0; padding: 1em; border: 1px solid #ddd; border-radius: 6px; max-width: 420px; }
.sodsrc-zip__label { display: block; font-weight: 600; margin-bottom: .4em; }
.sodsrc-zip__row { display: flex; gap: .5em; }
.sodsrc-zip__row input { flex: 1; min-width: 0; }

/* Check button: match the site's green buttons. High specificity + !important to beat Divi's .button styles. */
body .sodsrc-zip .sodsrc-zip__row button.button,
body .sodsrc-zip .sodsrc-zip__row button.button:hover,
body .sodsrc-zip .sodsrc-zip__row button.button:focus {
	background-color: #58a045 !important;
	border: 2px solid #58a045 !important;
	border-radius: 3px !important;
	color: #ffffff !important;
	font-size: 18px !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	padding: .4em 1.2em !important;
	cursor: pointer;
	transition: filter .2s ease;
}
body .sodsrc-zip .sodsrc-zip__row button.button:hover { filter: brightness(.92); }
body .sodsrc-zip .sodsrc-zip__row button.button::after,
body .sodsrc-zip .sodsrc-zip__row button.button::before { display: none !important; content: none !important; }
.sodsrc-zip__result { margin: .6em 0 0; font-size: .95em; }
.sodsrc-zip__result:empty { display: none; }
.sodsrc-zip__result.is-ok { color: #2e7d32; }
.sodsrc-zip__result.is-bad { color: #b3261e; }

/* Block cart: hidden until JS moves it below the product list (avoids a jump). */
.sodsrc-zip[data-place="after-cart-items"]:not(.is-placed) { display: none; }
.wc-block-cart .sodsrc-zip { margin-top: 1.5em; }

/* Add to Cart gate (product page) */
body.sodsrc-zip-gate:not(.sodsrc-zip-ok) form.cart .quantity,
body.sodsrc-zip-gate:not(.sodsrc-zip-ok) form.cart .single_add_to_cart_button { display: none !important; }
.sodsrc-zip-gate-note { display: none; margin: 0 0 1em; font-style: italic; }
body.sodsrc-zip-gate:not(.sodsrc-zip-ok) .sodsrc-zip-gate-note { display: block; }
