body.cw-commerce #main { background: var(--cw-bg); color: var(--cw-text); min-height: 60vh; }
body.cw-flatsome #main { padding-top: 100px; }
body.cw-commerce #main > #content { padding: 32px 20px 64px; }
body.cw-commerce #main .woocommerce { box-sizing: border-box; max-width: 1160px; margin-inline: auto; }
body.cw-commerce #main .woocommerce .woocommerce { padding: 0; }
body.cw-commerce #main :where(.woocommerce) { line-height: 1.6; }
body.cw-commerce #main :where(input, select, textarea, button, a, td, th, img, .cart_totals, #customer_details, #order_review, .woocommerce-order, .woocommerce-MyAccount-content, .cw-mobile-summary) { box-sizing: border-box; }
body.cw-commerce #main :where(img) { max-width: 100%; height: auto; }
body.cw-commerce #main :where(.woocommerce) :where(td, th, p, a) { overflow-wrap: anywhere; }
body.cw-commerce #main :where(h1, h2, h3) { letter-spacing: -.035em; font-weight: 700; }
body.cw-commerce .cw-page-heading { margin: 0 0 28px; text-align: left; }
body.cw-commerce .cw-page-heading h1 { font-size: clamp(26px, 3vw, 36px); margin: 6px 0 8px; }
body.cw-commerce .cw-page-heading p { margin: 0; }
body.cw-commerce .cw-eyebrow { font-size: 11px; letter-spacing: .14em; font-weight: 700; color: var(--cw-primary); }
/* No generic PG button selector: iframe / Npay / gateway-owned controls retain their skin. */
body.cw-commerce #main :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(a.button, button.button, input.button, #place_order, .wc-block-components-button) {
  min-height: 48px; height: auto; padding: 12px 20px; margin: 0; line-height: 1.5;
  border: 1px solid var(--cw-primary); border-radius: var(--cw-button-radius);
  background: var(--cw-primary); color: var(--cw-surface); text-align: center;
  text-transform: none; letter-spacing: 0; box-shadow: none; white-space: normal;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  max-width: 100%; text-decoration: none;
}
body.cw-commerce #main :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(a.button, button.button, #place_order, .wc-block-components-button):hover { background: var(--cw-primary-hover); border-color: var(--cw-primary-hover); }
body.cw-commerce #main :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(.cw-secondary, .button-continue-shopping) { background: var(--cw-surface); color: var(--cw-primary); }
body.cw-commerce #main :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(button, input):disabled { opacity: .5; cursor: not-allowed; }
body.cw-commerce #main :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--cw-primary); outline-offset: 3px;
}
body.cw-commerce #main :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(input.input-text, input[type="password"], input[type="email"], input[type="tel"], select, textarea) {
  width: 100%; max-width: 100%; min-height: 48px; padding: 11px 14px;
  border: 1px solid var(--cw-border); border-radius: var(--cw-radius-sm);
  background: var(--cw-surface); color: var(--cw-text); box-shadow: none; font-size: 16px;
}
body.cw-commerce #main :is(.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) :is(input, select, textarea):focus { border-color: var(--cw-primary); box-shadow: var(--cw-focus); }
body.cw-commerce #main .woocommerce input:is([type="radio"], [type="checkbox"]) { accent-color: var(--cw-primary); min-width: 18px; min-height: 18px; vertical-align: middle; }
body.cw-commerce #main .woocommerce .form-row label { display: inline-block; font-size: 14px; margin-bottom: 7px; }
body.cw-commerce #main .woocommerce .form-row { margin-bottom: 18px; padding: 0; }
body.cw-commerce #main .woocommerce .form-row.woocommerce-invalid :is(input, select, textarea),
body.cw-commerce #main .woocommerce [aria-invalid="true"] { border-color: var(--cw-error); }
body.cw-commerce #main .woocommerce .required { color: var(--cw-error); }
body.cw-commerce #main :is(.woocommerce-error, .woocommerce-info, .woocommerce-message) {
  margin: 0 0 20px; padding: 18px 20px; border: 1px solid var(--cw-border);
  border-radius: var(--cw-radius-md); background: var(--cw-surface); box-shadow: var(--cw-shadow-sm);
  line-height: 1.6; color: var(--cw-text);
}
body.cw-commerce #main .woocommerce-error { border-color: var(--cw-error); background: var(--cw-error-bg); color: var(--cw-error); }
body.cw-commerce #main .woocommerce-message { border-color: var(--cw-success); background: var(--cw-success-bg); color: var(--cw-success); }
body.cw-commerce #main :is(.woocommerce-error, .woocommerce-info, .woocommerce-message)::before { position: static; margin-right: 8px; }
body.cw-commerce #main .message-wrapper { margin: 0; padding: 0; }
body.cw-commerce #main .message-wrapper li { margin-top: 0; }
body.cw-commerce #main .shop_table { border: 0; border-collapse: separate; border-spacing: 0; margin: 0 0 18px; table-layout: auto; width: 100%; }
body.cw-commerce #main .shop_table :is(td, th) { padding: 14px 10px; border: 0; border-bottom: 1px solid var(--cw-border); text-align: left; vertical-align: top; }
body.cw-commerce #main .shop_table .amount { color: var(--cw-text); font-weight: 700; }
body.cw-commerce #main .shop_table .order-total :is(td, th) { padding-top: 22px; font-size: 20px; }
body.cw-commerce #main ul#shipping_method { list-style: none; margin: 0; padding: 0; }
body.cw-commerce #main ul#shipping_method li { margin: 0 0 8px; }
body.cw-commerce #main ul#shipping_method label { white-space: normal; }
body.cw-commerce #main .variation { margin: 10px 0 0; font-size: 13px; }
body.cw-commerce #main .variation dt { float: none; display: inline; }
body.cw-commerce #main .variation dd { display: inline; margin: 0 8px 0 0; }
body.cw-commerce #main .variation dd p { display: inline; }
body.cw-commerce #main .variation img, body.cw-commerce #main .lumise-cart-thumbnail { width: 84px; height: auto; object-fit: contain; border-radius: var(--cw-radius-sm); }
/* Existing site has !important background rules for this link. One narrowly scoped override. */
body.cw-commerce #main .woocommerce a.lumise-edit-design.button { background: var(--cw-primary) !important; min-height: 40px; padding: 8px 12px; border-radius: var(--cw-radius-sm); }
body.cw-commerce #main .woocommerce a.lumise-edit-design.button:hover { background: var(--cw-primary-hover) !important; }
body.cw-commerce #main .wc-item-meta { list-style: none; padding: 0; }
body.cw-commerce #main .wc-item-meta img { max-width: 100px; }
/* Official documented Blocks styling surfaces; avoid private nested DOM selectors. */
body.cw-block .wc-block-cart__submit-container { background: var(--cw-surface); }
body.cw-block .wc-block-components-order-summary-item__quantity { color: var(--cw-text); background: var(--cw-soft); border-color: var(--cw-border); box-shadow: 0 0 0 2px var(--cw-surface); }

/* Themes may print a page title before the shortcode. Show the contextual heading once. */
body.cw-classic #main:has(.cw-page-heading) .entry-header { display: none; }

body.cw-block #main :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) { padding: 24px; background: var(--cw-surface); border: 1px solid var(--cw-border); border-radius: var(--cw-radius-lg); min-width: 0; box-sizing: border-box; }
body.cw-block #main .cw-empty-cart .button { min-height: 48px; display: inline-flex; align-items: center; padding: 12px 20px; background: var(--cw-primary); color: var(--cw-surface); border-radius: var(--cw-button-radius); text-decoration: none; }
