/* Go-live fixes and WooCommerce checkout styling.
   Kept in a separate file so changed styles reach visitors even while the
   hosting edge cache serves stale copies of the older CSS files. */

/* Complianz renders this button at wp_body_open; it should stay hidden. */
#cmplz-manage-consent { display: none !important; }

/* --- Newsletter (MC4WP markup does not use .newsletter-row) --- */
.newsletter .mc4wp-form-fields { display: flex; align-items: stretch; border-bottom: 1px solid var(--ink); }
.newsletter .mc4wp-form-fields p { display: contents; margin: 0; }
.newsletter .mc4wp-form-fields label { position: static; width: auto; height: auto; clip: auto; overflow: visible; display: flex; flex: 1; min-width: 0; font-size: 0; }
.newsletter .mc4wp-form-fields input[type="email"] { flex: 1; min-width: 0; width: 100%; padding: 16px 3px; border: 0; background: none; font-size: 18px; }
.newsletter .mc4wp-form-fields input[type="email"]:focus { outline: none; }
.newsletter .mc4wp-form-fields:focus-within { border-color: var(--ink); box-shadow: 0 1px 0 var(--ink); }
.newsletter .mc4wp-form-fields input[type="submit"] { padding: 0 6px 0 24px; border: 0; background: none; font-size: 17px; text-decoration: underline; text-underline-offset: 7px; cursor: pointer; }
.newsletter .mc4wp-form-fields input[type="submit"]:hover { color: #66635e; }
.newsletter .mc4wp-response { margin-top: 14px; font-size: 15px; }

/* --- Checkout: full width like the cart page --- */
body.woocommerce-checkout .flo-page-woo { max-width: none; padding: 0; }
body.woocommerce-checkout .flo-page-woo > .woocommerce > .woocommerce-notices-wrapper { padding: 20px var(--gutter) 0; }
body.woocommerce-checkout .article-body, body.woocommerce-checkout .flo-page-woo > * { max-width: none; }

/* Coupon/login toggles above the form. */
.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info { padding: 20px 24px; background: var(--checkout-paper); font-size: 14px; margin: 0 auto 30px; max-width: 1370px; }
.woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-form-coupon-toggle .woocommerce-info a { text-decoration: underline; text-underline-offset: 4px; }
.checkout_coupon.woocommerce-form-coupon { max-width: 1370px; margin: 0 auto 40px; display: flex; flex-wrap: wrap; gap: 14px; align-items: stretch; }
.checkout_coupon .form-row { margin: 0; padding: 0; }
.checkout_coupon .form-row-first { flex: 1; min-width: 220px; }
.checkout_coupon input.input-text { width: 100%; border: 1px solid var(--checkout-border); border-radius: 0; background: white; padding: 13px 14px; min-height: 51px; font: inherit; font-size: 15px; color: var(--ink); }
.checkout_coupon button.button { min-height: 51px; padding: 13px 26px; border: 1px solid var(--checkout-dark); background: var(--checkout-dark); color: white; font-size: 13px; cursor: pointer; }
.checkout_coupon button.button:hover { background: #404b36; border-color: #404b36; }

/* Two-column checkout layout: fields left, order card right. */
.flo-checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .8fr); gap: clamp(45px, 6.2vw, 100px); align-items: start; }
.flo-checkout-fields { min-width: 0; }
.flo-checkout-order { position: sticky; top: 30px; min-width: 0; background: var(--checkout-paper); padding: 24px; }

/* Field sections in the design's numbered-section look. */
.flo-checkout-fields .woocommerce-billing-fields,
.flo-checkout-fields .woocommerce-shipping-fields,
.flo-checkout-fields .woocommerce-additional-fields { padding: 32px 0 35px; border-top: 1px solid var(--line); }
.flo-checkout-fields > :first-child { padding-top: 0; border-top: 0; }
.flo-checkout-fields h3 { font-size: 23px; line-height: 1.3; letter-spacing: -.65px; margin-bottom: 24px; }
.flo-checkout-fields .woocommerce-billing-fields__field-wrapper,
.flo-checkout-fields .woocommerce-shipping-fields__field-wrapper,
.flo-checkout-fields .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.flo-checkout-fields .form-row { min-width: 0; margin: 0 0 3px; padding: 0; }
.flo-checkout-fields .form-row.form-row-wide { grid-column: 1 / -1; }
.flo-checkout-fields .form-row label { display: block; font-size: 13px; margin-bottom: 8px; }
.flo-checkout-fields .form-row label .required, .flo-checkout-fields .form-row abbr { color: #7b806e; font-size: 11px; text-decoration: none; }
.flo-checkout-fields .form-row .optional { margin-left: 6px; font-size: 11px; color: #898b81; }
.flo-checkout-fields .form-row input.input-text,
.flo-checkout-fields .form-row select,
.flo-checkout-fields .form-row textarea,
.flo-checkout-fields .form-row .select2-container .select2-selection--single { width: 100%; min-width: 0; border: 1px solid var(--checkout-border); border-radius: 0; background: white; padding: 13px 14px; min-height: 51px; font: inherit; font-size: 15px; color: var(--ink); transition: border-color .2s; }
.flo-checkout-fields .form-row .select2-container .select2-selection--single { display: flex; align-items: center; height: 51px; }
.flo-checkout-fields .form-row input::placeholder, .flo-checkout-fields .form-row textarea::placeholder { color: #a1a397; font-size: 13px; }
.flo-checkout-fields .form-row input:hover, .flo-checkout-fields .form-row select:hover, .flo-checkout-fields .form-row textarea:hover { border-color: #a8ad9d; }
.flo-checkout-fields .form-row input:focus, .flo-checkout-fields .form-row select:focus, .flo-checkout-fields .form-row textarea:focus { border-color: #647057; outline: 1px solid #647057; outline-offset: 0; }
.flo-checkout-fields .form-row textarea { resize: vertical; min-height: 100px; }
.flo-checkout-fields .form-row .description { font-size: 11px; line-height: 1.7; color: var(--muted); margin-top: 8px; }
.flo-checkout-fields .woocommerce-invalid input.input-text, .flo-checkout-fields .woocommerce-invalid select { border-color: #a04642; }
.flo-checkout-fields .woocommerce-validated input.input-text { border-color: #849176; }

/* Ship-to-different-address and newsletter opt-in checkboxes. */
.flo-checkout-fields .woocommerce-shipping-fields #ship-to-different-address,
.flo-checkout-fields .form-row input[type="checkbox"] ~ span,
.flo-checkout-fields .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 11px; font-size: 12px; line-height: 1.8; cursor: pointer; }
.flo-checkout-fields #ship-to-different-address input,
.flo-checkout-fields .woocommerce-form__label-for-checkbox input { flex-shrink: 0; width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--checkout-dark); cursor: pointer; }
.flo-checkout-fields .woocommerce-shipping-fields__field-wrapper { margin-top: 20px; }

/* Order column card, mirroring the cart summary. */
.flo-checkout-order h2#order_review_heading { font-size: 21px; letter-spacing: -.6px; padding-bottom: 16px; border-bottom: 1px solid #dddfd5; margin: 0 0 0; }
.flo-checkout-order .shop_table { width: 100%; border-collapse: collapse; margin: 0; }
.flo-checkout-order .shop_table thead th { font-size: 11px; font-weight: 400; color: var(--muted); text-transform: uppercase; letter-spacing: 1px; text-align: left; padding: 12px 0 9px; border-bottom: 1px solid #dddfd5; }
.flo-checkout-order .shop_table thead th.product-total { text-align: right; }
.flo-checkout-order .shop_table td { padding: 9px 0; border-bottom: 1px solid #dddfd5; font-size: 13px; vertical-align: top; }
.flo-checkout-order .shop_table td.product-total { text-align: right; white-space: nowrap; }
.flo-checkout-order .shop_table .product-quantity { color: var(--muted); font-size: 11px; }
.flo-checkout-order .shop_table .variation { margin: 4px 0 0; font-size: 11px; color: var(--muted); }
.flo-checkout-order .shop_table tfoot th { text-align: left; font-weight: 400; font-size: 13px; padding: 9px 0; border-bottom: 1px solid #dddfd5; }
.flo-checkout-order .shop_table tfoot td { padding: 9px 0; border-bottom: 1px solid #dddfd5; font-size: 13px; text-align: right; }
.flo-checkout-order .shop_table .order-total th, .flo-checkout-order .shop_table .order-total td { padding-top: 16px; font-size: 18px; }
.flo-checkout-order .shop_table .order-total small { font-size: 10px; color: var(--muted); font-weight: 400; }
.flo-checkout-order .shop_table .woocommerce-shipping-totals td { text-align: right; }
.flo-checkout-order .shop_table ul#shipping_method { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.flo-checkout-order .shop_table ul#shipping_method li { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.flo-checkout-order .shop_table ul#shipping_method input { margin: 0; accent-color: var(--checkout-dark); }
.flo-checkout-order .shop_table ul#shipping_method label { display: flex; align-items: baseline; gap: 6px; width: 100%; font-size: 12px; cursor: pointer; }
.flo-checkout-order .shop_table ul#shipping_method label .woocommerce-Price-amount { margin-left: auto; }

/* Payment methods as option tiles, consistent with the design. */
#payment { margin-top: 16px; }
#payment ul.wc_payment_methods { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
#payment li.wc_payment_method { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid var(--checkout-border); }
#payment li.wc_payment_method:has(> input:checked) { border-color: #849176; background: #fafbf8; }
#payment li.wc_payment_method > input.input-radio { width: 16px; height: 16px; margin: 0; accent-color: var(--checkout-dark); flex-shrink: 0; }
#payment li.wc_payment_method > label { flex: 1; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 14px; cursor: pointer; }
#payment li.wc_payment_method > label img { width: 38px; height: 20px; object-fit: contain; }
#payment li.wc_payment_method > label img:first-of-type { margin-left: auto; }
#payment li.wc_payment_method .payment_box { flex-basis: 100%; margin: 2px 0 0; padding: 0; font-size: 12px; line-height: 1.7; color: var(--muted); }
#payment li.wc_payment_method .payment_box:empty { display: none; }
#payment li.wc_payment_method .payment_box fieldset { border: 0; margin: 10px 0 0; padding: 0; display: grid; gap: 10px; }
#payment li.wc_payment_method .payment_box input.input-text, #payment li.wc_payment_method .payment_box select { width: 100%; border: 1px solid var(--checkout-border); border-radius: 0; background: white; padding: 10px 12px; font: inherit; font-size: 14px; color: var(--ink); }
#payment div.form-row.place-order { padding: 0; margin: 16px 0 0; }

/* Place-order button in the cart CTA style. */
#place_order { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; min-height: 52px; padding: 14px 18px; border: 1px solid var(--checkout-dark); background: var(--checkout-dark); color: white; font-size: 13px; text-align: left; cursor: pointer; }
#place_order:hover { background: #404b36; border-color: #404b36; }
#place_order:disabled { opacity: .45; cursor: not-allowed; }

/* Terms and privacy text under the button. */
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; font-size: 11px; color: #606656; }
.woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 11px; font-size: 11px; line-height: 1.8; cursor: pointer; }
.woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { flex-shrink: 0; width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--checkout-dark); cursor: pointer; }
.woocommerce-privacy-policy-text { font-size: 11px; line-height: 1.7; color: var(--muted); margin: 0 0 10px; }
.woocommerce-privacy-policy-text a { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-terms-and-conditions { border: 1px solid var(--checkout-border); padding: 16px; max-height: 200px; overflow: auto; font-size: 12px; background: white; margin-bottom: 10px; }

/* Error/notice styling on checkout. */
.woocommerce-error, .woocommerce-info, .woocommerce-message { list-style: none; margin: 0 0 20px; padding: 16px 20px; background: var(--checkout-paper); font-size: 13px; }
.woocommerce-error { border-left: 3px solid #a04642; }

/* Order-received / thank-you page gets the card too. */
.woocommerce-order .woocommerce-thankyou-order-received { font-size: 23px; letter-spacing: -.6px; }
.woocommerce-order ul.order_details { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 20px 40px; background: var(--checkout-paper); padding: 24px; font-size: 13px; }
.woocommerce-order ul.order_details li { font-size: 15px; }
.woocommerce-order ul.order_details li strong { display: block; margin-top: 4px; font-weight: 400; }

/* Product cards show at most two colour dots plus a small note. */
.card-colors { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.card-colors-more { font-size: 11px; color: var(--muted); margin-left: 2px; }

/* B2B / page-builder polish: banner tiles aligned with the theme. */
.flo-block-banner { border-radius: 0; overflow: hidden; }
.flo-block-banner a.flo-block-banner-link { text-transform: uppercase; letter-spacing: 1px; }

@media (max-width: 900px) {
	.flo-checkout-layout { grid-template-columns: 1fr; gap: 45px; }
	.flo-checkout-order { position: static; }
	.flo-checkout-fields .woocommerce-billing-fields__field-wrapper,
	.flo-checkout-fields .woocommerce-shipping-fields__field-wrapper,
	.flo-checkout-fields .woocommerce-additional-fields__field-wrapper { grid-template-columns: 1fr; gap: 14px; }
	.flo-checkout-order { padding: 24px 20px; }
}
