/* ==========================================================================
   Carespot theme — WooCommerce: shop landing, product cards, single product,
   cart, checkout, My account. Tokens and base classes live in main.css.
   Every shop page wraps its WooCommerce output in .cs-shop, so all rules are
   scoped to it (no fight with WooCommerce's own stylesheets, which are disabled).
   ========================================================================== */

/* ---------- Shop sections ---------- */
.cs-shop { padding: var(--section-y) 0; }
.cs-shop--single { padding-top: 40px; }
.cs-shop__head { margin-bottom: 32px; }
.cs-shop__title { margin-bottom: 12px; }
.cs-shop--page .cs-shop__title { margin-bottom: 32px; }
.cs-shop__desc { max-width: 760px; }
.cs-shop__back { display: inline-flex; align-items: center; gap: 4px; margin-bottom: 24px; font-family: var(--font-ui); font-weight: 600; font-size: 14px; line-height: 20px; color: var(--c-teal); transition: color .2s var(--ease); }
.cs-shop__back:hover { color: var(--c-teal-dark); }
.cs-shop__back .cs-icon { width: 18px; height: 18px; }
.cs-shop .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.cs-shop .clear { clear: both; }

/* Landing tweaks (shop page only) */
.post-type-archive-product .cs-hero .cs-hero__eyebrow { letter-spacing: 0.55em; }
#about-webshop .cs-intro__title .accent { font-weight: 400; }
@media (max-width: 640px) { .post-type-archive-product .cs-hero__title br { display: none; } }

/* ---------- Buttons: WooCommerce .button -> design-system pill ---------- */
.cs-shop a.button, .cs-shop button.button, .cs-shop input.button, .cs-shop .button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 14px 32px;
  border-radius: var(--radius-pill);
  font-family: var(--font-ui); font-weight: 600; font-size: 16px; line-height: 24px;
  color: var(--c-white); background: var(--c-orange);
  border: 2px solid transparent; text-align: center; white-space: nowrap; cursor: pointer; text-decoration: none;
  transition: background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);
}
.cs-shop .button:hover { background: var(--c-orange-dark); color: var(--c-white); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(249, 123, 21, .25); }
.cs-shop .button:active { transform: translateY(0); box-shadow: none; }
.cs-shop .button:disabled, .cs-shop .button.disabled, .cs-shop .button.loading { opacity: .55; pointer-events: none; }
.cs-shop a.button.cs-btn--sm, .cs-shop .cs-btn--sm { min-height: 44px; padding: 10px 20px; font-size: 14px; line-height: 20px; }
/* Secondary (outline) actions */
.cs-shop button.button[name="update_cart"], .cs-shop button.button[name="apply_coupon"], .cs-shop a.cs-cart__continue,
.cs-shop .return-to-shop .button, .cs-shop .woocommerce-MyAccount-content .button.view, .cs-shop .woocommerce-MyAccount-content .button.cancel,
.cs-shop .shipping-calculator-form .button, .cs-shop .order-again .button {
  background: var(--c-white); color: var(--c-navy); border-color: var(--c-border);
}
.cs-shop button.button[name="update_cart"]:hover, .cs-shop button.button[name="apply_coupon"]:hover, .cs-shop a.cs-cart__continue:hover,
.cs-shop .return-to-shop .button:hover, .cs-shop .woocommerce-MyAccount-content .button.view:hover, .cs-shop .woocommerce-MyAccount-content .button.cancel:hover,
.cs-shop .shipping-calculator-form .button:hover, .cs-shop .order-again .button:hover {
  background: var(--c-bg); color: var(--c-navy); box-shadow: none;
}
.cs-shop a.added_to_cart { display: inline-flex; align-items: center; font-family: var(--font-ui); font-weight: 600; font-size: 14px; line-height: 20px; color: var(--c-teal); }
.cs-shop a.added_to_cart:hover { color: var(--c-teal-dark); }

/* ---------- Notices ---------- */
.cs-shop .woocommerce-notices-wrapper:empty { display: none; }
.cs-shop .woocommerce-message, .cs-shop .woocommerce-info, .cs-shop .woocommerce-error, .cs-shop .woocommerce-notice {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 12px 24px;
  margin: 0 0 24px; padding: 16px 20px; list-style: none;
  border: 1px solid var(--c-border); border-left: 4px solid var(--c-teal); border-radius: var(--radius-sm);
  background: var(--c-bg); color: var(--c-navy);
  font-family: var(--font-ui); font-size: 16px; line-height: 24px;
}
.cs-shop .woocommerce-info { border-left-color: var(--c-navy); }
.cs-shop .woocommerce-error { display: grid; gap: 6px; border-left-color: #c62828; border-color: #f2c4c4; background: #fff6f6; color: #8a1f1f; }
.cs-shop .woocommerce-error li { display: block; }
.cs-shop .woocommerce-message a:not(.button), .cs-shop .woocommerce-info a:not(.button), .cs-shop .woocommerce-error a:not(.button) { color: var(--c-teal-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.cs-shop .woocommerce-message .button, .cs-shop .woocommerce-info .button { order: 2; margin-left: auto; min-height: 40px; padding: 8px 20px; font-size: 14px; line-height: 20px; }
.cs-shop .woocommerce-notice--success { border-left-color: var(--c-teal); }

/* ---------- Toolbar, chips, grid ---------- */
[data-shop-results] ul.products { transition: opacity .2s var(--ease); }
[data-shop-results][aria-busy="true"] ul.products { opacity: .45; pointer-events: none; }
.cs-shop__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.cs-shop .woocommerce-result-count { margin: 0; font-family: var(--font-ui); font-size: 14px; line-height: 20px; color: var(--c-muted); }
.cs-shop .woocommerce-ordering { margin: 0; }
.cs-shop .woocommerce-ordering select {
  appearance: none; -webkit-appearance: none; min-height: 44px; padding: 8px 44px 8px 16px;
  border: 2px solid var(--c-border-2); border-radius: var(--radius-input); background: var(--c-white);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231b2b51' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
  font-family: var(--font-ui); font-weight: 500; font-size: 14px; line-height: 20px; color: var(--c-navy); cursor: pointer;
}
.cs-shop .woocommerce-ordering select:focus { outline: none; border-color: var(--c-teal); box-shadow: 0 0 0 4px rgba(4, 184, 199, .15); }

.cs-chips { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; }
.cs-shop--landing .cs-chips { justify-content: center; }
.cs-shop__request { margin-top: 56px; padding: 40px 32px; border: 1px solid var(--c-border); border-radius: var(--radius-card); background: var(--c-bg); text-align: center; }
.cs-shop__request-title { margin-bottom: 8px; }
.cs-shop__request .cs-btn { margin-top: 24px; }
.cs-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 18px; border-radius: var(--radius-pill); border: 1px solid var(--c-border); background: var(--c-white); font-family: var(--font-ui); font-weight: 600; font-size: 14px; line-height: 20px; color: var(--c-navy); transition: border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease); }
.cs-chip:hover { border-color: var(--c-teal); color: var(--c-teal-dark); }
.cs-chip.is-active { background: var(--c-navy); border-color: var(--c-navy); color: var(--c-white); }
.cs-chip__count { padding: 0 7px; border-radius: 8px; background: var(--c-bg); font-size: 12px; line-height: 18px; color: var(--c-muted); }
.cs-chip.is-active .cs-chip__count { background: rgba(255, 255, 255, .18); color: var(--c-white); }

.cs-shop ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.cs-shop ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cs-shop ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cs-shop .woocommerce-no-products-found { padding: 8px 0; }

/* ---------- Product card ---------- */
.cs-product { display: flex; flex-direction: column; margin: 0; padding: 16px 16px 24px; background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--radius-card); transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.cs-product:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(27, 43, 81, .10); }
.cs-product__media { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: 16px; overflow: hidden; background: var(--c-bg); }
.cs-product__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.cs-product:hover .cs-product__media img { transform: scale(1.04); }
.cs-product__body { display: flex; flex-direction: column; flex: 1; padding: 20px 8px 0; }
.cs-product__cat { margin-bottom: 8px; font-family: var(--font-ui); font-weight: 600; font-size: 12px; line-height: 16px; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.cs-product__cat a:hover { color: var(--c-teal-dark); }
.cs-product__title { font-family: var(--font-head); font-weight: 600; font-size: 20px; line-height: 28px; color: var(--c-navy); }
.cs-product__title a:hover { color: var(--c-teal-dark); }
.cs-product__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: auto; padding-top: 20px; }
.cs-product__footer .added_to_cart { flex-basis: 100%; justify-content: flex-end; }
/* A sale price takes two prices and wraps the button onto its own line; keep it on the right. */
.cs-product__footer .button { margin-left: auto; }
.cs-product__price { font-family: var(--font-ui); font-weight: 700; font-size: 20px; line-height: 28px; color: var(--c-navy); }
.cs-shop .price del, .cs-product__price del { margin-right: 6px; font-weight: 500; font-size: .8em; color: var(--c-muted); text-decoration: line-through; }
.cs-shop .price ins, .cs-product__price ins { text-decoration: none; }
.cs-shop .onsale { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 4px 12px; border-radius: var(--radius-pill); background: var(--c-orange); color: var(--c-white); font-family: var(--font-ui); font-weight: 700; font-size: 12px; line-height: 20px; letter-spacing: .04em; text-transform: uppercase; }

/* ---------- Pagination ---------- */
.cs-shop .woocommerce-pagination { margin-top: 48px; }
.cs-shop .woocommerce-pagination ul.page-numbers { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cs-shop .woocommerce-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--c-border); border-radius: 12px; font-family: var(--font-ui); font-weight: 600; font-size: 14px; line-height: 20px; color: var(--c-navy); }
.cs-shop .woocommerce-pagination a.page-numbers:hover { border-color: var(--c-teal); color: var(--c-teal-dark); }
.cs-shop .woocommerce-pagination .page-numbers.current { background: var(--c-navy); border-color: var(--c-navy); color: var(--c-white); }

/* ---------- Single product ---------- */
.cs-shop--single div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px 72px; align-items: start; }
.cs-shop--single .woocommerce-product-gallery { grid-column: 1; position: relative; }
.cs-shop--single .summary { grid-column: 2; }
.cs-shop--single .woocommerce-tabs, .cs-shop--single .related, .cs-shop--single .up-sells { grid-column: 1 / -1; }

.cs-shop .woocommerce-product-gallery__wrapper { margin: 0; }
.cs-shop .woocommerce-product-gallery__image, .cs-shop .woocommerce-product-gallery__image--placeholder { border-radius: var(--radius-img); overflow: hidden; background: var(--c-bg); border: 1px solid var(--c-border); }
.cs-shop .woocommerce-product-gallery__image a { display: block; }
.cs-shop .woocommerce-product-gallery__image img { width: 100%; height: auto; }
.cs-shop .flex-viewport { border-radius: var(--radius-img); }
.cs-shop .woocommerce-product-gallery__trigger { position: absolute; top: 16px; right: 16px; z-index: 5; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--c-border); background: rgba(255, 255, 255, .92) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%231b2b51' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4M11 8v6M8 11h6'/%3E%3C/svg%3E") no-repeat center; font-size: 0; color: transparent; overflow: hidden; }
.cs-shop .woocommerce-product-gallery__trigger:hover { border-color: var(--c-teal); }
.cs-shop ol.flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 12px; margin: 12px 0 0; padding: 0; list-style: none; }
.cs-shop ol.flex-control-thumbs li { flex: 0 0 calc(25% - 9px); margin: 0; }
.cs-shop ol.flex-control-thumbs img { width: 100%; border-radius: 12px; border: 2px solid transparent; cursor: pointer; opacity: .6; transition: opacity .2s var(--ease), border-color .2s var(--ease); }
.cs-shop ol.flex-control-thumbs img.flex-active, .cs-shop ol.flex-control-thumbs img:hover { opacity: 1; border-color: var(--c-teal); }

.cs-shop--single .summary .product_title { font-family: var(--font-head); font-weight: 700; font-size: clamp(32px, 3.34vw, 48px); line-height: 1.17; letter-spacing: -1px; color: var(--c-navy); margin-bottom: 16px; }
.cs-shop--single .summary .price { display: block; margin-bottom: 20px; font-family: var(--font-ui); font-weight: 700; font-size: 28px; line-height: 36px; color: var(--c-navy); }
.cs-shop--single .summary .woocommerce-product-details__short-description { margin-bottom: 28px; font-size: 18px; line-height: 30px; color: var(--c-ink); }
.cs-shop--single .summary .woocommerce-product-details__short-description p + p { margin-top: 12px; }
.cs-shop .stock { margin: 0 0 16px; font-family: var(--font-ui); font-weight: 600; font-size: 14px; line-height: 20px; color: var(--c-teal-dark); }
.cs-shop .stock.out-of-stock { color: #c62828; }
.cs-shop form.cart { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 0 0 28px; }
.cs-shop .quantity { display: inline-flex; }
.cs-shop .quantity input.qty { width: 92px; min-height: 52px; padding: 10px 12px; border: 2px solid var(--c-border-2); border-radius: var(--radius-input); background: var(--c-white); font-family: var(--font-ui); font-weight: 600; font-size: 16px; line-height: 20px; color: var(--c-navy); text-align: center; }
.cs-shop .quantity input.qty:focus { outline: none; border-color: var(--c-teal); box-shadow: 0 0 0 4px rgba(4, 184, 199, .15); }
.cs-shop .product_meta { display: grid; gap: 6px; padding-top: 24px; border-top: 1px solid var(--c-border); font-family: var(--font-ui); font-weight: 500; font-size: 14px; line-height: 20px; color: var(--c-muted); }
.cs-shop .product_meta .sku, .cs-shop .product_meta a { color: var(--c-navy); font-weight: 600; }
.cs-shop .product_meta a:hover { color: var(--c-teal-dark); }

.cs-shop .woocommerce-tabs { margin-top: 8px; }
.cs-shop ul.wc-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; padding: 0; list-style: none; border-bottom: 1px solid var(--c-border); }
.cs-shop ul.wc-tabs li a { display: inline-block; margin-bottom: -1px; padding: 12px 20px; border-bottom: 3px solid transparent; font-family: var(--font-ui); font-weight: 600; font-size: 16px; line-height: 24px; color: var(--c-muted); transition: color .2s var(--ease); }
.cs-shop ul.wc-tabs li a:hover { color: var(--c-navy); }
.cs-shop ul.wc-tabs li.active a { color: var(--c-navy); border-bottom-color: var(--c-orange); }
.cs-shop .woocommerce-Tabs-panel { max-width: 832px; font-size: 18px; line-height: 30px; color: var(--c-ink); }
.cs-shop .woocommerce-Tabs-panel > * + * { margin-top: 12px; }
.cs-shop .woocommerce-Tabs-panel ul { list-style: disc; padding-left: 1.25em; }
.cs-shop .woocommerce-Tabs-panel li + li { margin-top: 6px; }
.cs-shop table.woocommerce-product-attributes { width: 100%; border-collapse: collapse; font-family: var(--font-ui); font-size: 16px; line-height: 24px; }
.cs-shop .woocommerce-product-attributes th, .cs-shop .woocommerce-product-attributes td { padding: 12px 16px; border-bottom: 1px solid var(--c-border); text-align: left; vertical-align: top; }
.cs-shop .woocommerce-product-attributes th { width: 30%; font-weight: 600; color: var(--c-navy); }
.cs-shop .woocommerce-product-attributes td p { margin: 0; }

/* Reviews tab. WooCommerce's star icon font is not loaded, so stars are drawn with the ★ glyph. */
.cs-shop .woocommerce-Reviews-title { margin: 0 0 8px; font-family: var(--font-head); font-weight: 700; font-size: 24px; line-height: 32px; color: var(--c-navy); }
.cs-shop .woocommerce-noreviews { color: var(--c-muted); }
.cs-shop #review_form_wrapper { margin-top: 24px; padding: 32px; background: var(--c-bg-2); border: 1px solid var(--c-border); border-radius: var(--radius-card); }
.cs-shop .comment-reply-title { display: block; margin-bottom: 8px; font-family: var(--font-head); font-weight: 600; font-size: 20px; line-height: 28px; color: var(--c-navy); }
.cs-shop .comment-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 16px; }
.cs-shop .comment-form > * { grid-column: 1 / -1; margin: 0; }
.cs-shop .comment-form > .comment-form-author, .cs-shop .comment-form > .comment-form-email { grid-column: auto; }
.cs-shop .comment-form .comment-notes { font-family: var(--font-ui); font-size: 14px; line-height: 20px; color: var(--c-muted); }
.cs-shop .comment-form label { display: block; margin-bottom: 6px; font-family: var(--font-ui); font-weight: 600; font-size: 14px; line-height: 20px; color: var(--c-navy); }
.cs-shop .comment-form .required { color: var(--c-orange); }
.cs-shop .comment-form input[type="text"], .cs-shop .comment-form input[type="email"], .cs-shop .comment-form textarea {
  display: block; width: 100%; min-height: 52px; padding: 12px 16px;
  background: var(--c-white); border: 2px solid var(--c-border-2); border-radius: var(--radius-input);
  font-family: var(--font-ui); font-weight: 500; font-size: 16px; line-height: 24px; color: var(--c-ink);
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.cs-shop .comment-form textarea { min-height: 140px; resize: vertical; }
.cs-shop .comment-form input:focus, .cs-shop .comment-form textarea:focus { outline: none; border-color: var(--c-teal); box-shadow: 0 0 0 4px rgba(4, 184, 199, .15); }
.cs-shop .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 10px; }
.cs-shop .comment-form-cookies-consent label { margin: 0; font-weight: 500; color: var(--c-muted-2); }
.cs-shop .comment-form > .form-submit { margin-top: 8px; }

.cs-shop p.stars { margin: 0; line-height: 0; }
.cs-shop p.stars span { display: inline-flex; gap: 4px; }
.cs-shop p.stars a { display: inline-block; width: 32px; height: 32px; font-size: 0; text-decoration: none; }
.cs-shop p.stars a::before { content: "\2605"; font-size: 32px; line-height: 32px; color: var(--c-border-2); transition: color .15s var(--ease); }
.cs-shop p.stars.selected a::before, .cs-shop p.stars:hover a::before, .cs-shop p.stars.selected:hover a.active ~ a::before { color: var(--c-orange); }
.cs-shop p.stars.selected a.active ~ a::before, .cs-shop p.stars:hover a:hover ~ a::before, .cs-shop p.stars.selected:hover a:hover ~ a::before { color: var(--c-border-2); }

.cs-shop .star-rating { position: relative; display: inline-block; font-size: 0; line-height: 1; }
.cs-shop .star-rating::before { content: "\2605\2605\2605\2605\2605"; font-size: 18px; letter-spacing: 2px; color: var(--c-border-2); }
.cs-shop .star-rating span { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; }
.cs-shop .star-rating span::before { content: "\2605\2605\2605\2605\2605"; font-size: 18px; letter-spacing: 2px; color: var(--c-orange); }
.cs-shop .star-rating span strong, .cs-shop .star-rating span .rating { display: none; }

.cs-shop ol.commentlist { margin: 16px 0 0; padding: 0; list-style: none; }
.cs-shop ol.commentlist li.review + li.review { margin-top: 16px; }
.cs-shop ol.commentlist .comment_container { display: flex; gap: 16px; padding: 20px 24px; border: 1px solid var(--c-border); border-radius: var(--radius-sm); background: var(--c-white); }
.cs-shop ol.commentlist img.avatar { width: 48px; height: 48px; border-radius: 50%; flex: none; }
.cs-shop ol.commentlist .comment-text { flex: 1; min-width: 0; }
.cs-shop ol.commentlist .meta { margin: 6px 0 8px; font-family: var(--font-ui); font-size: 14px; line-height: 20px; color: var(--c-muted); }
.cs-shop ol.commentlist .meta strong { color: var(--c-navy); }
.cs-shop ol.commentlist .description p { margin: 0; font-size: 16px; line-height: 26px; }

.cs-shop .related.products, .cs-shop .up-sells.products { margin-top: 24px; padding-top: 48px; border-top: 1px solid var(--c-border); }
.cs-shop .related.products > h2, .cs-shop .up-sells.products > h2 { margin-bottom: 24px; font-family: var(--font-head); font-weight: 700; font-size: 32px; line-height: 40px; color: var(--c-navy); }

/* ---------- Forms (cart, checkout, account) ---------- */
.cs-shop form .form-row, .cs-shop .woocommerce-form-row { display: block; margin: 0 0 16px; padding: 0; }
.cs-shop form .form-row label, .cs-shop .woocommerce-form-row label { display: block; margin-bottom: 6px; font-family: var(--font-ui); font-weight: 600; font-size: 14px; line-height: 20px; color: var(--c-navy); }
.cs-shop form .form-row .required { color: var(--c-orange); text-decoration: none; }
.cs-shop form .form-row .optional { font-weight: 400; color: var(--c-muted); }
.cs-shop .woocommerce-input-wrapper { display: block; }
.cs-shop .input-text, .cs-shop form .form-row select, .cs-shop form .form-row textarea, .cs-shop select {
  width: 100%; min-height: 52px; padding: 12px 16px;
  background: var(--c-white); border: 2px solid var(--c-border-2); border-radius: var(--radius-input);
  font-family: var(--font-ui); font-weight: 500; font-size: 16px; line-height: 20px; color: var(--c-ink);
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.cs-shop .input-text::placeholder, .cs-shop textarea::placeholder { color: var(--c-placeholder); }
.cs-shop .input-text:focus, .cs-shop form .form-row select:focus, .cs-shop form .form-row textarea:focus { outline: none; border-color: var(--c-teal); box-shadow: 0 0 0 4px rgba(4, 184, 199, .15); }
.cs-shop form .form-row textarea { min-height: 120px; resize: vertical; }
.cs-shop form .form-row.woocommerce-invalid .input-text, .cs-shop form .form-row.woocommerce-invalid select, .cs-shop form .form-row.woocommerce-invalid .select2-selection { border-color: #c62828; }
.cs-shop form .form-row input[type="checkbox"], .cs-shop form .form-row input[type="radio"], .cs-shop input[type="checkbox"], .cs-shop input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--c-teal); flex: none; }
.cs-shop .woocommerce-form__label-for-checkbox, .cs-shop label.checkbox { display: inline-flex; align-items: flex-start; gap: 10px; font-weight: 500; cursor: pointer; }
.cs-shop .woocommerce-form__label-for-checkbox input { margin-top: 2px; }
.cs-shop .password-input { position: relative; display: block; }
.cs-shop .show-password-input { display: none; }
.cs-shop .woocommerce-password-strength, .cs-shop .woocommerce-password-hint { display: block; margin-top: 8px; font-family: var(--font-ui); font-size: 13px; line-height: 18px; color: var(--c-muted); }
.cs-shop .woocommerce-password-strength.strong { color: var(--c-teal-dark); }
.cs-shop .woocommerce-password-strength.short, .cs-shop .woocommerce-password-strength.bad { color: #c62828; }
/* Select2 / selectWoo country and state dropdowns */
.cs-shop .select2-container .select2-selection--single { height: 52px; border: 2px solid var(--c-border-2); border-radius: var(--radius-input); background: var(--c-white); transition: border-color .2s var(--ease); }
.cs-shop .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0 44px 0 16px; font-family: var(--font-ui); font-weight: 500; font-size: 16px; line-height: 48px; color: var(--c-ink); }
.cs-shop .select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; right: 12px; height: 48px; }
.cs-shop .select2-container--default.select2-container--open .select2-selection--single, .cs-shop .select2-container--default.select2-container--focus .select2-selection--single { border-color: var(--c-teal); }
.select2-container .select2-dropdown { border: 2px solid var(--c-border-2); border-radius: var(--radius-input); overflow: hidden; font-family: var(--font-ui); font-size: 15px; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--c-teal); color: var(--c-white); }
.select2-container--default .select2-search--dropdown .select2-search__field { padding: 8px 12px; border: 1px solid var(--c-border); border-radius: 6px; font: inherit; }

/* Headings inside WooCommerce shortcodes */
.cs-shop--page h2, .cs-shop--page h3, .cs-shop #order_review_heading { margin: 0 0 20px; font-family: var(--font-head); font-weight: 700; font-size: 24px; line-height: 32px; color: var(--c-navy); }

/* ---------- Tables ---------- */
.cs-shop table.shop_table { width: 100%; border-collapse: collapse; border: 0; margin: 0; font-family: var(--font-ui); font-size: 16px; line-height: 24px; color: var(--c-ink); }
.cs-shop table.shop_table th, .cs-shop table.shop_table td { padding: 16px 12px; border: 0; border-bottom: 1px solid var(--c-border); text-align: left; vertical-align: middle; }
.cs-shop table.shop_table thead th { padding-top: 0; font-weight: 600; font-size: 13px; line-height: 20px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); }
.cs-shop table.shop_table th:first-child, .cs-shop table.shop_table td:first-child { padding-left: 0; }
.cs-shop table.shop_table th:last-child, .cs-shop table.shop_table td:last-child { padding-right: 0; }
.cs-shop table.shop_table .woocommerce-Price-amount { white-space: nowrap; }

/* ---------- Cart ---------- */
.woocommerce-cart .cs-shop__content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 32px 48px; align-items: start; }
.woocommerce-cart .cs-shop__content > .woocommerce > .woocommerce-notices-wrapper, .woocommerce-cart .cart-empty, .woocommerce-cart .return-to-shop { grid-column: 1 / -1; }
.woocommerce-cart .woocommerce-cart-form { grid-column: 1; min-width: 0; }
.woocommerce-cart .cart-collaterals { grid-column: 2; position: sticky; top: calc(var(--header-h) + 24px); }
.cs-shop .cart-empty { margin-bottom: 8px; }
.cs-shop .return-to-shop { margin: 0; }
.cs-shop table.cart td.product-remove { width: 40px; }
.cs-shop table.cart a.remove { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 1px solid var(--c-border); border-radius: 50%; font-size: 18px; line-height: 1; color: var(--c-muted); transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); }
.cs-shop table.cart a.remove:hover { background: #c62828; border-color: #c62828; color: var(--c-white); }
.cs-shop table.cart td.product-thumbnail { width: 96px; }
.cs-shop table.cart td.product-thumbnail img { width: 72px; height: 72px; object-fit: cover; border: 1px solid var(--c-border); border-radius: 12px; background: var(--c-bg); }
.cs-shop table.cart td.product-name a { font-family: var(--font-head); font-weight: 600; color: var(--c-navy); }
.cs-shop table.cart td.product-name a:hover { color: var(--c-teal-dark); }
.cs-shop table.cart .variation, .cs-shop table.cart .backorder_notification { margin: 4px 0 0; font-size: 13px; line-height: 18px; color: var(--c-muted); }
.cs-shop table.cart td.product-price, .cs-shop table.cart td.product-subtotal { font-weight: 600; color: var(--c-navy); white-space: nowrap; }
.cs-shop table.cart th.product-subtotal, .cs-shop table.cart td.product-subtotal { text-align: right; }
.cs-shop table.cart td.product-quantity .quantity input.qty { width: 80px; min-height: 48px; }
.cs-shop table.cart td.actions { padding: 24px 0 0; border-bottom: 0; text-align: right; }
.cs-shop table.cart td.actions .coupon { float: left; display: inline-flex; align-items: center; gap: 12px; }
.cs-shop table.cart td.actions .coupon .input-text { width: 200px; }
.cs-shop table.cart td.actions > .button + .button { margin-left: 12px; }
.cs-shop .cart_totals { padding: 24px; background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--radius-card); }
.cs-shop .cart_totals > h2 { margin-bottom: 8px; }
.cs-shop .cart_totals table.shop_table th { width: 40%; padding-left: 0; font-weight: 600; color: var(--c-navy); }
.cs-shop .cart_totals table.shop_table td { padding-right: 0; text-align: right; }
.cs-shop .cart_totals tr.order-total th, .cs-shop .cart_totals tr.order-total td { padding-bottom: 0; border-bottom: 0; font-size: 20px; font-weight: 700; color: var(--c-navy); }
.cs-shop .cart_totals tr.order-total td small, .cs-shop .includes_tax { display: block; font-size: 13px; font-weight: 400; color: var(--c-muted); }
.cs-shop .wc-proceed-to-checkout { margin-top: 24px; }
.cs-shop .wc-proceed-to-checkout a.checkout-button { width: 100%; }
.cs-shop ul.woocommerce-shipping-methods { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; text-align: left; }
.cs-shop ul.woocommerce-shipping-methods li { display: flex; align-items: flex-start; gap: 10px; }
.cs-shop ul.woocommerce-shipping-methods li input { margin-top: 4px; }
.cs-shop ul.woocommerce-shipping-methods label { display: inline; margin: 0; font-weight: 500; font-size: 15px; line-height: 24px; color: var(--c-ink); }
.cs-shop .woocommerce-shipping-totals td { text-align: left; }
.cs-shop .woocommerce-shipping-destination, .cs-shop .woocommerce-shipping-contents { margin: 8px 0 0; font-size: 13px; line-height: 18px; color: var(--c-muted); }
.cs-shop .shipping-calculator-button { display: inline-block; margin-top: 8px; font-weight: 600; font-size: 14px; color: var(--c-teal-dark); text-decoration: underline; text-underline-offset: 3px; }
.cs-shop .shipping-calculator-form { margin-top: 12px; }
.cs-shop .cart-discount .woocommerce-remove-coupon { margin-left: 6px; font-size: 13px; color: var(--c-teal-dark); }

/* ---------- Checkout ---------- */
.cs-shop .woocommerce-form-login-toggle, .cs-shop .woocommerce-form-coupon-toggle { margin-bottom: 16px; }
.cs-shop form.checkout_coupon, .cs-shop form.woocommerce-form-login { margin-bottom: 24px; padding: 24px; background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--radius-card); }
.cs-shop form.checkout_coupon { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; }
.cs-shop form.checkout_coupon .form-row { margin: 0; }
.cs-shop form.checkout_coupon .form-row-first { flex: 1 1 220px; }
.cs-shop form.checkout_coupon .form-row-last { flex: 0 0 auto; }
.cs-shop form.woocommerce-form-login > p:first-child, .cs-shop form.woocommerce-form-register > p:not(.form-row):not(.woocommerce-form-row) { margin-bottom: 16px; font-family: var(--font-ui); font-size: 15px; line-height: 22px; color: var(--c-muted); }
.cs-shop form.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 440px; grid-template-areas: "details heading" "details review"; gap: 0 56px; align-items: start; }
.cs-shop #customer_details { grid-area: details; min-width: 0; }
.cs-shop #order_review_heading { grid-area: heading; }
.cs-shop #order_review { grid-area: review; position: sticky; top: calc(var(--header-h) + 24px); padding: 24px; background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--radius-card); }
.cs-shop .col2-set { display: grid; gap: 32px; }
.cs-shop .col2-set .col-1, .cs-shop .col2-set .col-2 { width: auto; float: none; }
.cs-shop .col2-set .col-2:empty { display: none; }
.cs-shop .woocommerce-billing-fields__field-wrapper, .cs-shop .woocommerce-shipping-fields__field-wrapper, .cs-shop .woocommerce-additional-fields__field-wrapper, .cs-shop .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.cs-shop .form-row-wide, .cs-shop .form-row.notes, .cs-shop .form-row.create-account, .cs-shop .woocommerce-account-fields, .cs-shop .create-account { grid-column: 1 / -1; }
.cs-shop .woocommerce-account-fields { margin-top: 8px; }
.cs-shop #ship-to-different-address { margin-bottom: 20px; }
.cs-shop #ship-to-different-address label { display: inline-flex; align-items: center; gap: 10px; margin: 0; font-family: var(--font-head); font-weight: 700; font-size: 20px; line-height: 28px; color: var(--c-navy); cursor: pointer; }
.cs-shop .woocommerce-additional-fields { margin-top: 8px; }
.cs-shop table.woocommerce-checkout-review-order-table th.product-total, .cs-shop table.woocommerce-checkout-review-order-table td.product-total, .cs-shop table.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.cs-shop table.woocommerce-checkout-review-order-table td.product-name { font-weight: 600; color: var(--c-navy); }
.cs-shop table.woocommerce-checkout-review-order-table .product-quantity { font-weight: 500; color: var(--c-muted); }
.cs-shop table.woocommerce-checkout-review-order-table tfoot th { font-weight: 600; color: var(--c-navy); }
.cs-shop table.woocommerce-checkout-review-order-table tr.order-total th, .cs-shop table.woocommerce-checkout-review-order-table tr.order-total td { border-bottom: 0; font-size: 20px; font-weight: 700; color: var(--c-navy); }
.cs-shop #payment { margin-top: 20px; }
.cs-shop ul.wc_payment_methods { display: grid; gap: 12px; margin: 0 0 24px; padding: 0; list-style: none; }
.cs-shop li.wc_payment_method { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 6px 12px; align-items: center; padding: 14px 16px; border: 1px solid var(--c-border); border-radius: var(--radius-sm); transition: border-color .2s var(--ease), background .2s var(--ease); }
.cs-shop li.wc_payment_method:has(input:checked) { border-color: var(--c-teal); background: var(--c-bg); }
.cs-shop li.wc_payment_method > label { display: block; margin: 0; font-family: var(--font-ui); font-weight: 600; font-size: 16px; line-height: 24px; color: var(--c-navy); cursor: pointer; }
.cs-shop li.wc_payment_method .payment_box { grid-column: 2; font-family: var(--font-ui); font-size: 14px; line-height: 20px; color: var(--c-muted); }
.cs-shop li.wc_payment_method .payment_box p { margin: 0; }
.cs-shop li.wc_payment_method .payment_box p + p { margin-top: 6px; }
.cs-shop .place-order { margin: 0; }
.cs-shop .woocommerce-terms-and-conditions-wrapper, .cs-shop .woocommerce-privacy-policy-text { margin-bottom: 16px; font-family: var(--font-ui); font-size: 14px; line-height: 20px; color: var(--c-muted); }
.cs-shop .woocommerce-privacy-policy-text p, .cs-shop .woocommerce-terms-and-conditions-wrapper p { margin: 0; }
.cs-shop .woocommerce-privacy-policy-text a, .cs-shop .woocommerce-terms-and-conditions-wrapper a { color: var(--c-teal-dark); text-decoration: underline; text-underline-offset: 3px; }
.cs-shop .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
.cs-shop #place_order { width: 100%; }
.cs-shop .woocommerce-checkout .blockUI.blockOverlay { border-radius: var(--radius-card); }
.cs-shop .woocommerce-NoticeGroup { grid-column: 1 / -1; }

/* Order received / order details */
.cs-shop .woocommerce-order { display: grid; gap: 32px; }
.cs-shop .woocommerce-thankyou-order-received { margin: 0; padding: 20px 24px; border-left: 4px solid var(--c-teal); border-radius: var(--radius-sm); background: var(--c-bg); font-family: var(--font-head); font-weight: 600; font-size: 22px; line-height: 30px; color: var(--c-navy); }
.cs-shop ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.cs-shop ul.woocommerce-order-overview li { padding: 16px; border: 1px solid var(--c-border); border-radius: var(--radius-sm); font-family: var(--font-ui); font-weight: 500; font-size: 12px; line-height: 16px; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }
.cs-shop ul.woocommerce-order-overview li strong { display: block; margin-top: 6px; font-weight: 700; font-size: 18px; line-height: 24px; letter-spacing: 0; text-transform: none; color: var(--c-navy); }
.cs-shop .woocommerce-bacs-bank-details, .cs-shop .woocommerce-order-details, .cs-shop .woocommerce-customer-details { font-family: var(--font-ui); font-size: 16px; line-height: 24px; }
.cs-shop .wc-bacs-bank-details-heading, .cs-shop .wc-bacs-bank-details-account-name { font-family: var(--font-head); font-weight: 600; font-size: 18px; line-height: 26px; color: var(--c-navy); margin-bottom: 8px; }
.cs-shop ul.wc-bacs-bank-details { display: grid; gap: 4px; margin: 0 0 16px; padding: 0; list-style: none; }
.cs-shop .woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.cs-shop address { font-style: normal; font-family: var(--font-ui); font-size: 16px; line-height: 26px; color: var(--c-ink); }
.cs-shop .woocommerce-customer-details--phone, .cs-shop .woocommerce-customer-details--email { margin: 6px 0 0; }
.cs-shop table.order_details tfoot th { font-weight: 600; color: var(--c-navy); }
.cs-shop table.order_details tfoot td, .cs-shop table.order_details td.product-total { text-align: right; }
.cs-shop table.order_details tfoot tr:last-child th, .cs-shop table.order_details tfoot tr:last-child td { border-bottom: 0; font-size: 18px; font-weight: 700; color: var(--c-navy); }
.cs-shop table.order_details td.product-name a { font-weight: 600; color: var(--c-navy); }
.cs-shop .wc-item-meta { margin: 4px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--c-muted); }

/* ---------- My account ---------- */
.woocommerce-account .cs-shop__content > .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; align-items: start; }
.woocommerce-account .cs-shop__content > .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.cs-shop .woocommerce-MyAccount-navigation ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.cs-shop .woocommerce-MyAccount-navigation a { display: block; padding: 10px 16px; border-radius: 12px; font-family: var(--font-ui); font-weight: 600; font-size: 15px; line-height: 22px; color: var(--c-navy); transition: background .2s var(--ease), color .2s var(--ease); }
.cs-shop .woocommerce-MyAccount-navigation a:hover { background: var(--c-bg); }
.cs-shop .woocommerce-MyAccount-navigation li.is-active a { background: var(--c-navy); color: var(--c-white); }
.cs-shop .woocommerce-MyAccount-content { min-width: 0; font-family: var(--font-ui); font-size: 16px; line-height: 26px; color: var(--c-ink); }
.cs-shop .woocommerce-MyAccount-content > p + p, .cs-shop .woocommerce-MyAccount-content > p + table { margin-top: 12px; }
.cs-shop .woocommerce-MyAccount-content a:not(.button) { color: var(--c-teal-dark); font-weight: 600; }
.cs-shop .woocommerce-MyAccount-content a:not(.button):hover { text-decoration: underline; text-underline-offset: 3px; }
.cs-shop .woocommerce-MyAccount-content .button { min-height: 44px; padding: 10px 20px; font-size: 14px; line-height: 20px; }
.cs-shop .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions { text-align: right; }
.cs-shop .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button + .button { margin-left: 8px; }
.cs-shop .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.cs-shop .woocommerce-Address { padding: 24px; border: 1px solid var(--c-border); border-radius: var(--radius-card); }
.cs-shop .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.cs-shop .woocommerce-Address-title h2, .cs-shop .woocommerce-Address-title h3 { margin: 0; font-size: 20px; line-height: 28px; }
.cs-shop .woocommerce-Address-title .edit { font-size: 14px; }
.cs-shop .woocommerce-EditAccountForm fieldset { margin: 24px 0 0; padding: 0; border: 0; }
.cs-shop .woocommerce-EditAccountForm legend { margin-bottom: 12px; padding: 0; font-family: var(--font-head); font-weight: 700; font-size: 18px; line-height: 26px; color: var(--c-navy); }
.cs-shop .woocommerce-MyAccount-content form .form-row-first, .cs-shop .woocommerce-MyAccount-content form .form-row-last { display: inline-block; width: calc(50% - 8px); vertical-align: top; }
.cs-shop .woocommerce-MyAccount-content form .form-row-first { margin-right: 12px; }
/* Login / register */
.cs-shop #customer_login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.cs-shop #customer_login .col-1, .cs-shop #customer_login .col-2 { width: auto; float: none; }
.cs-shop form.woocommerce-form-login, .cs-shop form.woocommerce-form-register, .cs-shop form.woocommerce-ResetPassword, .cs-shop form.lost_reset_password { padding: 24px; background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--radius-card); }
.cs-shop form.woocommerce-form-login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 16px; }
.cs-shop form.woocommerce-form-login .woocommerce-form-login__submit, .cs-shop form.woocommerce-form-register .woocommerce-form-register__submit { display: inline-flex; }
.cs-shop form.woocommerce-form-login p.form-row:has(.woocommerce-form-login__submit) { display: flex; flex-direction: column; align-items: flex-start; }
.cs-shop .lost_password { margin: 16px 0 0; font-family: var(--font-ui); font-size: 14px; line-height: 20px; }
.cs-shop .lost_password a { color: var(--c-teal-dark); font-weight: 600; }
.cs-shop form.woocommerce-form-register .woocommerce-privacy-policy-text { margin-bottom: 16px; }
.cs-shop .woocommerce-ResetPassword .form-row:last-child, .cs-shop .lost_reset_password .form-row:last-child { margin-bottom: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .cs-shop ul.products, .cs-shop ul.products.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cs-shop--single div.product { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .cs-shop--single .woocommerce-product-gallery, .cs-shop--single .summary { grid-column: 1; }
  .woocommerce-cart .cs-shop__content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-cart .cart-collaterals { grid-column: 1; position: static; }
  .cs-shop form.woocommerce-checkout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "details" "heading" "review"; gap: 0; }
  .cs-shop #order_review_heading { margin-top: 16px; }
  .cs-shop #order_review { position: static; }
  .woocommerce-account .cs-shop__content > .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .cs-shop .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 8px; }
  .cs-shop .woocommerce-MyAccount-navigation a { padding: 8px 14px; }
}
@media (max-width: 768px) {
  .cs-shop .woocommerce-billing-fields__field-wrapper, .cs-shop .woocommerce-shipping-fields__field-wrapper, .cs-shop .woocommerce-address-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
  .cs-shop #customer_login, .cs-shop .woocommerce-Addresses, .cs-shop .woocommerce-columns--addresses { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .cs-shop .woocommerce-MyAccount-content form .form-row-first, .cs-shop .woocommerce-MyAccount-content form .form-row-last { display: block; width: auto; margin-right: 0; }
  .cs-shop table.cart thead { display: none; }
  .cs-shop table.cart tr.cart_item { position: relative; display: block; padding: 16px 0; border-bottom: 1px solid var(--c-border); }
  .cs-shop table.cart tr.cart_item td { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 6px 0; border: 0; text-align: right; }
  .cs-shop table.cart tr.cart_item td::before { content: attr(data-title); font-weight: 600; font-size: 14px; color: var(--c-muted); }
  .cs-shop table.cart tr.cart_item td.product-thumbnail { justify-content: flex-start; padding-right: 48px; }
  .cs-shop table.cart tr.cart_item td.product-thumbnail::before, .cs-shop table.cart tr.cart_item td.product-remove::before { content: none; }
  .cs-shop table.cart tr.cart_item td.product-remove { position: absolute; top: 22px; right: 0; width: auto; padding: 0; }
  .cs-shop table.cart tr.cart_item td.product-name { text-align: left; }
  .cs-shop table.cart td.actions { display: grid; gap: 12px; text-align: left; }
  .cs-shop table.cart td.actions .coupon { float: none; }
  .cs-shop table.cart td.actions > .button + .button { margin-left: 0; }
  .cs-shop .woocommerce-message .button, .cs-shop .woocommerce-info .button { margin-left: 0; }
}
@media (max-width: 640px) {
  .cs-shop ul.products, .cs-shop ul.products.columns-2, .cs-shop ul.products.columns-4 { grid-template-columns: minmax(0, 1fr); }
  .cs-shop form.cart .single_add_to_cart_button { flex: 1 1 auto; }
  .cs-shop table.cart td.actions .coupon { flex-wrap: wrap; }
  .cs-shop table.cart td.actions .coupon .input-text { width: 100%; }
  .cs-shop #review_form_wrapper { padding: 20px; }
  .cs-shop .comment-form > .comment-form-author, .cs-shop .comment-form > .comment-form-email { grid-column: 1 / -1; }
}

/* Shop intro runs 930px wide as in the design, so its first sentence ends the first line. */
.post-type-archive-product .cs-intro__text { max-width: 930px; }
