/* skin/woo.css (WP5a): WooCommerce output (DESIGN 6.6). Loads on product, cart, checkout, account, shop and the pages of RGN_SKIN_WOO (50-skin.php).
   Primary buttons orange #FF7F08 with the dark ink label (6.90:1), secondary actions (update cart, apply coupon) navy outline, notices with a 4 px rule, 1 px table rules, 44 px swatches.
   Scope: `.woocommerce` is the BODY class on product and shop pages and a wrapper div on cart, checkout and account, so `body.rgn-theme .woocommerce x` misses the body case; these rules use
   `body.rgn-theme` and WooCommerce's own unique class names instead. compat.css (WP0) turned the red Simple Custom CSS buttons orange at (0,3,3) inside `.woocommerce`; the generic button
   colours below are `html body.rgn-theme` (0,3,3) too, so they also cover buttons outside a wrapper (Elementor Pro Woo widgets) and still lose to a designer's per-element colour (0,4,0).
   Never put an id selector inside :is() (it raises the whole selector to the id's specificity). The main product form (widget woocommerce-product-add-to-cart) belongs to the mu-plugin
   selector p2 and is excluded by a zero-specificity :where() (WP5c). */

/* buttons: primary look for every Woo button; colours only when not disabled */
body.rgn-theme :is(a.button,button.button):not(:where(.elementor-widget-woocommerce-product-add-to-cart *)){display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:48px;padding:12px 24px;
  border-radius:var(--rgn-radius);font-family:var(--rgn-font-body);font-size:var(--rgn-fs-base);font-weight:700;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer;transition:filter var(--rgn-dur-fast) var(--rgn-ease)}
body.rgn-theme input.button:not(:where(.elementor-widget-woocommerce-product-add-to-cart *)),
body.rgn-theme #respond input#submit{box-sizing:border-box;min-height:48px;padding:12px 24px;border-radius:var(--rgn-radius);font-family:var(--rgn-font-body);font-size:var(--rgn-fs-base);font-weight:700;line-height:1.25;text-align:center;cursor:pointer}
html body.rgn-theme :is(a.button,button.button,input.button):not(.disabled,:disabled,[disabled]):not(:where(.elementor-widget-woocommerce-product-add-to-cart *)){background-color:var(--rgn-orange);color:var(--rgn-cta-ink)}
html body.rgn-theme :is(a.button,button.button,input.button):not(.disabled,:disabled,[disabled]):not(:where(.elementor-widget-woocommerce-product-add-to-cart *)):is(:hover,:focus){filter:brightness(.93);color:var(--rgn-cta-ink)}
html body.rgn-theme :is(a.button,button.button,input.button):is(.disabled,:disabled,[disabled]):not(:where(.elementor-widget-woocommerce-product-add-to-cart *)){background-color:var(--rgn-bg-alt);color:var(--rgn-muted);cursor:not-allowed;filter:none}
body.rgn-theme .woocommerce :is(a.button,button.button,input.button):not(.disabled,:disabled,[disabled]){border:1px solid var(--rgn-orange-edge)}   /* the 1 px edge (4.29:1) only where the colours are ours (inside the Woo wrapper) */
body.rgn-theme .wc-proceed-to-checkout a.checkout-button{display:flex;width:100%;min-height:56px;font-size:var(--rgn-fs-lg)}
body.rgn-theme #payment #place_order{min-height:56px;font-size:var(--rgn-fs-lg)}

/* buttons: secondary actions (navy outline) */
html body.rgn-theme .woocommerce-cart-form :is(button[name="update_cart"],input[name="update_cart"]):not(:disabled),
html body.rgn-theme .coupon button[name="apply_coupon"]:not(:disabled){padding:11px 23px;border:2px solid var(--rgn-navy);background-color:transparent;color:var(--rgn-navy)}
html body.rgn-theme .woocommerce-cart-form :is(button[name="update_cart"],input[name="update_cart"]):not(:disabled):is(:hover,:focus),
html body.rgn-theme .coupon button[name="apply_coupon"]:not(:disabled):is(:hover,:focus){background-color:var(--rgn-navy);color:var(--rgn-on-dark);filter:none}
body.rgn-theme .coupon .input-text{min-width:11rem}
body.rgn-theme .quantity .qty{width:5rem;text-align:center}

/* checkout first paint (K17, CLS): the document is painted in pieces and checkout.js runs after the first paint, so the shipping fields show for a moment and are folded a moment later
   (a 0.1 shift of everything below). WooCommerce's own script hides them when "Ship to a different address?" is unchecked; this draws the same state from the first paint. Only when
   JavaScript runs (html.rgn-js is set in <head> by the theme) and only while the box is unchecked; nothing leaves the DOM, the checkbox and WooCommerce's slide-down still work.
   Its own rule: a browser without :has() drops only this line. (The login and coupon forms are handled by 50-skin.php: the JS-state body class is set at the start of <body>.) */
/* rgn-lint-allow: R13 (replays Woo's own hide() of the shipping fields before checkout.js runs; the text stays in the DOM) */
html.rgn-js body.rgn-theme .woocommerce-shipping-fields:has(input[name="ship_to_different_address"]:not(:checked)) .shipping_address{display:none}

/* tables: cart, order review, order details */
body.rgn-theme table.shop_table{border:1px solid var(--rgn-border);border-radius:var(--rgn-radius);border-collapse:separate;border-spacing:0;overflow:hidden;background-color:var(--rgn-bg)}
body.rgn-theme table.shop_table :is(th,td){padding:var(--rgn-space-4);border-top:1px solid var(--rgn-border);color:var(--rgn-ink);vertical-align:middle}
body.rgn-theme table.shop_table thead th{border-top:0;background-color:var(--rgn-bg-alt);font-weight:700}
body.rgn-theme table.shop_table :is(.product-price,.product-subtotal,.amount){color:var(--rgn-navy);font-weight:700}
body.rgn-theme table.shop_table td.product-name a{color:var(--rgn-link);font-weight:700}
body.rgn-theme table.shop_table td.actions{background-color:var(--rgn-bg-alt)}
body.rgn-theme table.shop_table a.remove{display:inline-flex;align-items:center;justify-content:center;width:var(--rgn-tap);height:var(--rgn-tap);font-size:1.5rem;line-height:1;color:var(--rgn-error)}
body.rgn-theme table.shop_table a.remove:hover{background-color:var(--rgn-error);color:var(--rgn-on-dark)}
body.rgn-theme dl.variation :is(dt,dd){color:var(--rgn-ink)}
body.rgn-theme :is(del,.price del){color:var(--rgn-text-muted);opacity:1}
body.rgn-theme :is(.price ins,.woocommerce-Price-amount ins){background-color:transparent;color:var(--rgn-navy);font-weight:700;text-decoration:none}
body.rgn-theme .cart_totals h2{margin-block:var(--rgn-space-5) var(--rgn-space-3)}
body.rgn-theme #payment{border-radius:var(--rgn-radius);background-color:var(--rgn-bg-sky)}
body.rgn-theme #payment div.payment_box{border-radius:var(--rgn-radius);background-color:var(--rgn-bg);color:var(--rgn-ink)}
body.rgn-theme #payment ul.payment_methods{border-bottom-color:var(--rgn-border)}

/* notices: 4 px rule (info navy, success green, error red), ink text; the WooCommerce icon keeps its glyph and takes the rule colour */
body.rgn-theme :is(.woocommerce-message,.woocommerce-info,.woocommerce-error){margin-block:0 var(--rgn-space-5);padding:var(--rgn-space-4) var(--rgn-space-5) var(--rgn-space-4) 3.25em;
  border:1px solid var(--rgn-border);border-inline-start:4px solid var(--rgn-navy);border-radius:var(--rgn-radius);background-color:var(--rgn-bg-sky);color:var(--rgn-ink);line-height:1.5}
body.rgn-theme .woocommerce-message{border-inline-start-color:var(--rgn-success)}
body.rgn-theme .woocommerce-error{border-inline-start-color:var(--rgn-error);background-color:var(--rgn-bg)}
body.rgn-theme .woocommerce-message::before{color:var(--rgn-success)}
body.rgn-theme .woocommerce-info::before{color:var(--rgn-navy)}
body.rgn-theme .woocommerce-error::before{color:var(--rgn-error)}
body.rgn-theme :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) a:not(.button){color:var(--rgn-link);text-decoration:underline;text-underline-offset:.18em}

/* Woo Variation Swatches: the plugin sizes the items with these variables (30 px today); selected = 2 px navy + sky tint */
body.rgn-theme{--wvs-single-product-item-width:44px;--wvs-single-product-item-height:44px;--wvs-single-product-item-font-size:16px;--wvs-archive-product-item-width:44px;--wvs-archive-product-item-height:44px}
body.rgn-theme .variable-items-wrapper .variable-item.button-variable-item{min-width:var(--rgn-tap);min-height:var(--rgn-tap);border-radius:var(--rgn-radius);box-shadow:inset 0 0 0 1px var(--rgn-border-strong);background-color:var(--rgn-bg);color:var(--rgn-ink);font-weight:700}
body.rgn-theme .variable-items-wrapper .variable-item.button-variable-item.selected{box-shadow:inset 0 0 0 2px var(--rgn-navy);background-color:var(--rgn-bg-sky)}
body.rgn-theme .variable-items-wrapper .variable-item:focus-visible{outline:3px solid var(--rgn-focus);outline-offset:2px}

/* product loops: the sale badge sizes itself in em (a 56 px circle at 1.17rem); 18.7 px bold is large text for WCAG, which keeps a designer's olive badge (3.41:1) legal */
body.rgn-theme span.onsale{background-color:var(--rgn-navy);color:var(--rgn-on-dark);font-size:1.17rem;font-weight:700}
/* single product: the gallery's zoom trigger sits IN FLOW at the top-left corner of the gallery and the badge (a sibling inside the same widget, which is its containing block) covered it and its text overlapped the
   magnifier (K17, 8 viewports on Q03). The badge takes the top-right corner of the same box (flush: -.5em would stick out 3 px past a 390 px phone); shop loops keep Woo's top-left. */
body.rgn-theme.single-product .elementor-widget span.onsale{left:auto;right:0}
body.rgn-theme ul.products li.product :is(.price,.price .amount){color:var(--rgn-navy);font-weight:700}
body.rgn-theme .woocommerce-ordering select{min-width:12rem}
body.rgn-theme nav.woocommerce-pagination ul li :is(a,span){min-width:var(--rgn-tap);min-height:var(--rgn-tap);display:inline-flex;align-items:center;justify-content:center;border-radius:var(--rgn-radius)}
body.rgn-theme nav.woocommerce-pagination ul li span.current{background-color:var(--rgn-navy);color:var(--rgn-on-dark)}

/* account navigation: vertical list with 48 px rows; content links */
body.rgn-theme .woocommerce-MyAccount-navigation ul{margin:0;padding:0;list-style:none}
body.rgn-theme .woocommerce-MyAccount-navigation li a{display:block;padding:12px 16px;border-radius:var(--rgn-radius);color:var(--rgn-ink);text-decoration:none}
body.rgn-theme .woocommerce-MyAccount-navigation li.is-active a{background-color:var(--rgn-bg-sky);color:var(--rgn-navy);font-weight:700}
body.rgn-theme .woocommerce-MyAccount-navigation li a:hover{background-color:var(--rgn-bg-alt)}
body.rgn-theme :is(.woocommerce-LostPassword a,.woocommerce-privacy-policy-text a,.woocommerce-terms-and-conditions-link){color:var(--rgn-link);text-decoration:underline;text-underline-offset:.18em}
