/* WooCommerce in the JoinMyIn look */
.shop-body { padding-top: 32px; }
.woocommerce .woocommerce-result-count { color: var(--muted); font-size: 14px; margin: 8px 0 18px; }
.woocommerce .woocommerce-ordering select { min-height: 42px; border: 2px solid var(--rule); border-radius: var(--r); padding: 0 10px; background: #fff; font: 500 14px var(--body); }
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 0 28px !important; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; background: var(--sheet); border: 1px solid var(--rule); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow 200ms var(--ease-out); }
.woocommerce ul.products li.product:hover { box-shadow: var(--shadow); }
.woocommerce ul.products li.product a img { margin: 0 !important; aspect-ratio: 1 / 1; object-fit: cover; background: var(--teal-wash); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font: 600 15px/1.3 var(--body) !important; padding: 12px 14px 4px !important; color: var(--ink); text-transform: none; }
.woocommerce ul.products li.product .price { color: var(--ink) !important; font-weight: 700; padding: 0 14px; font-size: 15px !important; }
.woocommerce ul.products li.product .button { margin: auto 14px 14px !important; }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce-page .wc-block-components-button:not(.is-link) {
  background: var(--yellow) !important; color: var(--ink) !important; border-radius: var(--r) !important; font: 800 15px/1 var(--body) !important;
  min-height: 46px; padding: 0 20px !important; display: inline-flex !important; align-items: center; justify-content: center; border: 0 !important; box-shadow: 0 1px 0 rgba(15,26,46,.25);
  transition: transform 140ms var(--ease-out), background-color 160ms var(--ease-out);
}
.woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--yellow-press) !important; }
.woocommerce a.button:active, .woocommerce button.button:active { transform: scale(.97); }
.woocommerce a.added_to_cart { display: block; padding: 0 14px 14px; font-size: 14px; }

.woocommerce span.onsale { background: var(--ink); color: #fff; border-radius: var(--r); min-height: 0; min-width: 0; line-height: 1; padding: 6px 8px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; top: 10px; left: 10px; }

/* Single product */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images img { border-radius: var(--r); background: var(--teal-wash); }
.woocommerce div.product .product_title { font-size: clamp(2rem, 4vw, 3rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink) !important; font-size: 1.6rem !important; font-weight: 700; }
.woocommerce div.product form.cart { display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; margin: 20px 0; }
.woocommerce .quantity .qty { min-height: 46px; width: 76px; border: 2px solid var(--rule); border-radius: var(--r); font: 600 16px var(--body); }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 16px; border-bottom: 2px solid var(--ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0 !important; background: transparent !important; margin: 0 !important; border-radius: var(--r) var(--r) 0 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--ink) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-weight: 600; padding: 12px 16px !important; color: var(--muted); }
.woocommerce .related h2, .woocommerce .upsells h2 { font-size: 2rem; margin-top: 32px; }
.product_meta { font-size: 14px; color: var(--muted); display: grid; gap: 4px; }
@media (max-width: 860px) { .woocommerce div.product { grid-template-columns: 1fr; } }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { border: 2px solid var(--rule) !important; border-radius: var(--r) !important; background: #fff !important; color: var(--ink) !important; padding: 14px 16px 14px 48px !important; }
.woocommerce-message { border-color: var(--ok) !important; }
.woocommerce-error { border-color: var(--bad) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--cobalt) !important; }

/* Cart / checkout / account (classic + blocks) */
.wide-content { max-width: none; }
.woocommerce table.shop_table { border-radius: var(--r); border: 1px solid var(--rule); background: var(--sheet); border-collapse: separate; }
.woocommerce table.shop_table th { font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.woocommerce table.shop_table td { border-top: 1px dashed var(--rule-strong); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container .select2-selection--single,
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select select {
  border: 2px solid var(--rule) !important; border-radius: var(--r) !important; min-height: 48px; background: #fff !important; font-family: var(--body) !important;
}
.wc-block-components-title, .wc-block-cart__totals-title { font-family: var(--display) !important; font-weight: 900 !important; letter-spacing: -.01em !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 4px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 12px; border-radius: var(--r); text-decoration: none; color: var(--ink); font-weight: 600; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--ink); color: #fff; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { border: 2px solid var(--rule); border-radius: var(--r); min-width: 40px; padding: 10px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: #fff; border-color: var(--ink); }
.woocommerce-breadcrumb { font-size: 14px; color: var(--muted) !important; margin-bottom: 20px !important; }
.woocommerce-breadcrumb a { color: var(--cobalt) !important; }

/* WCFM enquiry button in the JoinMyIn look */
.wcfm_catalog_enquiry { background: transparent !important; color: var(--ink) !important; box-shadow: inset 0 0 0 2px var(--ink) !important; border: 0 !important; border-radius: var(--r) !important; font: 800 15px/1 var(--body) !important; padding: 14px 18px !important; display: inline-flex !important; align-items: center; gap: 8px; transition: background-color 160ms var(--ease-out), color 160ms var(--ease-out); }
.wcfm_catalog_enquiry:hover { background: var(--ink) !important; color: var(--sheet) !important; }
.wcfm_catalog_enquiry .wcfmfa, .wcfm_catalog_enquiry i { color: inherit !important; }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: var(--orange); }
.woocommerce div.product .stock.out-of-stock { color: var(--bad); font-weight: 700; }
.woocommerce .woocommerce-loop-product__title + .star-rating { margin: 0 14px 4px !important; }
