/* Sunpics Storefront — shop pages style layer (category, product, cart, checkout, account, registration).
   Scoped by body classes. Rule for the Sunpics configurator (form.cart), payment methods and User
   Registration forms: only typography, colour, border, radius, padding, shadow and transitions —
   never display / position / visibility / order / size (except 44px touch targets on swatch terms). */

/* ---------- page canvas ---------- */
body.sps-shop { background: #fff; }
body.sps-shop :is(#content, [data-elementor-type]) { font-family: var(--sps-sans); color: var(--sps-ink); }
body.sps-shop :is(#content, [data-elementor-type]) .site-container,
body.sps-shop :is(#content, [data-elementor-type]) .zita-article,
body.sps-shop :is(#content, [data-elementor-type]) .content-area { background: transparent; box-shadow: none; }
body.sps-shop.woocommerce-page #content .zita-article,
body.sps-shop.woocommerce-page #content article { padding-left: 0; padding-right: 0; }
body.sps-shop :is(#content, [data-elementor-type]) { padding-top: clamp(20px, 3vw, 40px); padding-bottom: clamp(40px, 6vw, 80px); }
body.sps-shop :is(#content, [data-elementor-type]) h1, body.sps-shop :is(#content, [data-elementor-type]) h2, body.sps-shop :is(#content, [data-elementor-type]) h3 { color: var(--sps-ink); letter-spacing: -.01em; }
body.sps-shop :is(#content, [data-elementor-type]) a { transition: color .2s; }
body.sps-shop :is(#content, [data-elementor-type]) :focus-visible { outline: 3px solid var(--sps-orange); outline-offset: 2px; }

/* shared buttons (WooCommerce + plugins): dark pill */
body.sps-shop :is(#content, [data-elementor-type]) .button:not([class*="sunpics-"]),
body.sps-shop :is(#content, [data-elementor-type]) button.button:not([class*="sunpics-"]),
body.sps-shop :is(#content, [data-elementor-type]) input.button:not([class*="sunpics-"]),
body.sps-shop :is(#content, [data-elementor-type]) .woocommerce-button,
body.sps-shop :is(#content, [data-elementor-type]) a.checkout-button,
body.sps-shop :is(#content, [data-elementor-type]) #place_order,
body.sps-shop :is(#content, [data-elementor-type]) .single_add_to_cart_button,
body.sps-shop :is(#content, [data-elementor-type]) .ur-submit-button,
body.sps-shop :is(#content, [data-elementor-type]) .woocommerce-form-login__submit,
body.sps-shop :is(#content, [data-elementor-type]) .woocommerce-form-register__submit {
  background: var(--sps-ink) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
  font: 600 .95rem/1.1 var(--sps-sans) !important; letter-spacing: 0 !important; text-transform: none !important;
  padding: .95em 1.6em !important; box-shadow: var(--sps-shadow-sm); transition: transform .25s var(--sps-ease), background-color .25s, box-shadow .25s !important;
}
body.sps-shop :is(#content, [data-elementor-type]) .button:not([class*="sunpics-"]):hover,
body.sps-shop :is(#content, [data-elementor-type]) .single_add_to_cart_button:hover,
body.sps-shop :is(#content, [data-elementor-type]) a.checkout-button:hover,
body.sps-shop :is(#content, [data-elementor-type]) #place_order:hover { background: #000 !important; transform: translateY(-2px); box-shadow: var(--sps-shadow); }
body.sps-shop :is(#content, [data-elementor-type]) .button.disabled, body.sps-shop :is(#content, [data-elementor-type]) .button:disabled { opacity: .45 !important; transform: none; }

/* Sunpics UI buttons (e.g. the "What do you want to do?" modal): colours and shape only, the plugin keeps their size */
body.sps-shop .button[class*="sunpics-"] { background: var(--sps-ink) !important; color: #fff !important; border-color: var(--sps-ink) !important; border-radius: 999px !important; font-family: var(--sps-sans) !important; }
body.sps-shop .button[class*="sunpics-"]:hover { background: #000 !important; }

/* shared fields */
body.sps-shop :is(#content, [data-elementor-type]) input.input-text,
body.sps-shop :is(#content, [data-elementor-type]) input[type="text"], body.sps-shop :is(#content, [data-elementor-type]) input[type="email"], body.sps-shop :is(#content, [data-elementor-type]) input[type="tel"],
body.sps-shop :is(#content, [data-elementor-type]) input[type="password"], body.sps-shop :is(#content, [data-elementor-type]) input[type="number"], body.sps-shop :is(#content, [data-elementor-type]) input[type="date"],
body.sps-shop :is(#content, [data-elementor-type]) textarea, body.sps-shop :is(#content, [data-elementor-type]) select {
  border: 1px solid var(--sps-field) !important; border-radius: 12px !important; background-color: #fff !important; color: var(--sps-ink) !important;
  font: 400 1rem/1.3 var(--sps-sans) !important; padding: .7em .9em !important; min-height: 46px; box-shadow: none !important;
  transition: border-color .2s, box-shadow .2s !important;
}
body.sps-shop :is(#content, [data-elementor-type]) textarea { min-height: 96px; }
body.sps-shop :is(#content, [data-elementor-type]) input:focus, body.sps-shop :is(#content, [data-elementor-type]) textarea:focus, body.sps-shop :is(#content, [data-elementor-type]) select:focus {
  border-color: var(--sps-orange) !important; box-shadow: 0 0 0 3px rgba(var(--sps-accent-rgb), .18) !important; outline: none;
}
body.sps-shop :is(#content, [data-elementor-type]) label { font: 500 .88rem/1.4 var(--sps-sans); color: var(--sps-text-2); }
body.sps-shop :is(#content, [data-elementor-type]) .required { color: var(--sps-orange-text); }

/* notices */
body.sps-shop .woocommerce-message, body.sps-shop .woocommerce-info, body.sps-shop .woocommerce-error {
  border: 1px solid var(--sps-line) !important; border-left: 4px solid var(--sps-orange) !important; border-radius: 12px !important;
  background: var(--sps-cream) !important; color: var(--sps-ink) !important; font-family: var(--sps-sans);
}
body.sps-shop .woocommerce-error { border-left-color: #c0392b !important; }
body.sps-shop .woocommerce-message::before, body.sps-shop .woocommerce-info::before { color: var(--sps-orange) !important; }

/* breadcrumb */
body.sps-shop .woocommerce-breadcrumb, body.sps-shop .sps-crumb { font: 500 .8rem/1.4 var(--sps-sans); color: var(--sps-muted); letter-spacing: .02em; }
body.sps-shop .woocommerce-breadcrumb a, body.sps-shop .sps-crumb a { color: var(--sps-muted) !important; }
body.sps-shop .woocommerce-breadcrumb a:hover, body.sps-shop .sps-crumb a:hover { color: var(--sps-orange-text) !important; }

/* ---------- category / shop ---------- */
body.sps-has-hero .zita-article > h1.page-title,
body.sps-has-hero h1.woocommerce-products-header__title,
body.sps-has-hero .woocommerce-products-header { display: none !important; }

.sps-cathero {
  display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: center;
  margin: 0 0 clamp(18px, 2.5vw, 30px); padding: clamp(20px, 3vw, 34px) clamp(20px, 3.5vw, 44px); border-radius: 22px;
  background: linear-gradient(135deg, #fff 0%, var(--sps-cream) 70%); position: relative; overflow: hidden;
  font-family: var(--sps-sans); animation: sps-rise .8s var(--sps-ease) both;
}
.sps-cathero::before, .sps-cathero::after { content: none !important; display: none !important; }
.sps-cathero { background-image: radial-gradient(circle at 100% 0%, rgba(var(--sps-accent-rgb), .14), rgba(var(--sps-accent-rgb), 0) 38%), linear-gradient(135deg, #fff 0%, var(--sps-cream) 70%); }
.sps-cathero > * { min-width: 0; }
.sps-cathero--noimg { grid-template-columns: 1fr; }
.sps-cathero__title { font-family: var(--sps-serif) !important; font-weight: 400 !important; font-size: clamp(2rem, 1.3rem + 2.4vw, 3.1rem) !important; line-height: 1.04 !important; margin: 8px 0 10px !important; text-align: left !important; }
.sps-cathero__desc { color: var(--sps-muted); font-size: 1.02rem; line-height: 1.6; max-width: 36em; }
.sps-cathero__desc p { margin: 0 0 .6em; }
.sps-cathero__media { position: relative; z-index: 1; border-radius: 16px; overflow: hidden; height: clamp(150px, 17vw, 230px); box-shadow: var(--sps-shadow); background: #fff; }
.sps-cathero__media img { width: 100%; height: 100% !important; object-fit: cover; animation: sps-heroimg 1.2s var(--sps-ease) both; }
@keyframes sps-heroimg { from { transform: scale(1.08); } to { transform: none; } }
.sps-chips { list-style: none; margin: 18px 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.sps-chips a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--sps-line-2); border-radius: 999px; background: #fff; color: var(--sps-ink) !important; font: 500 .88rem/1 var(--sps-sans); transition: background-color .2s, border-color .2s, transform .2s; }
.sps-chips a span { color: var(--sps-muted); font-size: .78rem; }
.sps-chips a:hover { border-color: var(--sps-ink); transform: translateY(-1px); }
body.sps-has-chips ul.products li.product-category { display: none !important; }

/* toolbar: result count + ordering + grid switcher */
body.sps-shop .woocommerce-result-count { font: 500 .88rem/46px var(--sps-sans) !important; color: var(--sps-muted) !important; margin: 0 0 18px !important; }
body.sps-shop .woocommerce-ordering select { border-radius: 999px !important; padding-right: 2.2em !important; }
body.sps-shop .zita-list-grid-switcher a { border-radius: 10px !important; }
body.sps-shop .zita-list-grid-switcher a.selected { background: var(--sps-ink) !important; border-color: var(--sps-ink) !important; }

/* product cards (archives, related, upsells) */
body.sps-shop ul.products { gap: 0; }
body.sps-shop ul.products li.product {
  position: relative; background: transparent !important; box-shadow: none !important; border: 0 !important; text-align: left !important;
  transition: transform .35s var(--sps-ease);
}
body.sps-shop ul.products li.product:hover { transform: translateY(-4px); box-shadow: none !important; }
body.sps-shop ul.products li.product .zita-shop-thumbnail-wrap,
body.sps-shop ul.products li.product > a.woocommerce-LoopProduct-link { display: block; border-radius: var(--sps-radius); overflow: hidden; background: var(--sps-cream); }
body.sps-shop ul.products li.product .my_new_wrapper { padding: 0 !important; margin: 0 !important; background: transparent !important; }
body.sps-shop ul.products li.product img { display: block; width: 100% !important; border-radius: 0 !important; transition: transform .8s var(--sps-ease) !important; margin: 0 !important; }
body.sps-shop ul.products li.product:hover img { transform: scale(1.06); }
body.sps-shop ul.products li.product .zita-shop-summary-wrap { padding: 12px 2px 0 !important; background: transparent !important; }
body.sps-shop ul.products li.product .zta-woo-product-category { display: block; font: 600 .7rem/1.2 var(--sps-sans) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--sps-muted) !important; margin: 0 0 4px; }
body.sps-shop ul.products li.product .woocommerce-loop-product__title,
body.sps-shop ul.products li.product .woocommerce-loop-category__title { font: 500 1rem/1.3 var(--sps-sans) !important; color: var(--sps-ink) !important; padding: 0 !important; margin: 0 0 4px !important; }
body.sps-shop ul.products li.product .price { font: 600 .95rem/1.3 var(--sps-sans) !important; color: var(--sps-orange-text) !important; }
body.sps-shop ul.products li.product .price del { color: var(--sps-muted) !important; font-weight: 400; opacity: .8; }
body.sps-shop ul.products li.product .price ins { text-decoration: none; }
/* the whole card is the link */
body.sps-shop ul.products li.product .zta-loop-product__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
/* the real loop button becomes a pill over the image, shown on hover / focus */
body.sps-shop :is(#content, [data-elementor-type]) ul.products li.product .button {
  position: absolute !important; z-index: 2; right: 12px; top: 12px; margin: 0 !important;
  background: rgba(255, 255, 255, .94) !important; color: var(--sps-ink) !important; box-shadow: var(--sps-shadow-sm) !important;
  font-size: .8rem !important; padding: .7em 1.1em !important; opacity: 0; transform: translateY(-6px);
  transition: opacity .3s, transform .3s var(--sps-ease) !important;
}
body.sps-shop :is(#content, [data-elementor-type]) ul.products li.product:hover .button, body.sps-shop :is(#content, [data-elementor-type]) ul.products li.product .button:focus-visible { opacity: 1; transform: none; }
@media (hover: none) { body.sps-shop :is(#content, [data-elementor-type]) ul.products li.product .button { opacity: 0; pointer-events: none; } }
body.sps-shop ul.products li.product .onsale {
  background: var(--sps-orange) !important; color: var(--sps-ink) !important; border-radius: 999px !important; min-width: 0 !important; min-height: 0 !important;
  padding: 6px 12px !important; font: 700 .72rem/1 var(--sps-sans) !important; left: 12px !important; right: auto !important; top: 12px !important; z-index: 2;
}
/* reveal cascade (JS adds data-reveal) */
.js body.sps-shop ul.products li.product[data-reveal] { opacity: 0; transform: translateY(22px); }
.js body.sps-shop ul.products li.product[data-reveal].is-in { opacity: 1; transform: none; transition: opacity .7s var(--sps-ease), transform .7s var(--sps-ease); transition-delay: var(--d, 0ms); }

/* pagination */
body.sps-shop .woocommerce-pagination ul { border: 0 !important; display: inline-flex; gap: 6px; }
body.sps-shop .woocommerce-pagination ul li { border: 0 !important; }
body.sps-shop .woocommerce-pagination ul li a, body.sps-shop .woocommerce-pagination ul li span {
  display: grid !important; place-items: center; min-width: 42px; height: 42px; border-radius: 999px; border: 1px solid var(--sps-line) !important;
  font: 600 .9rem var(--sps-sans); color: var(--sps-ink) !important; background: #fff !important;
}
body.sps-shop .woocommerce-pagination ul li span.current { background: var(--sps-ink) !important; color: #fff !important; border-color: var(--sps-ink) !important; }

/* ---------- product ---------- */
body.sps-shop.single-product div.product .woocommerce-product-gallery { border-radius: 20px; }
body.sps-shop.single-product div.product .woocommerce-product-gallery__image img,
body.sps-shop.single-product div.product .woocommerce-product-gallery .flex-viewport { border-radius: 20px; }
body.sps-shop.single-product div.product .flex-control-thumbs li img { border-radius: 12px; border: 2px solid transparent; opacity: .75; transition: opacity .2s, border-color .2s; }
body.sps-shop.single-product div.product .flex-control-thumbs li img.flex-active,
body.sps-shop.single-product div.product .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--sps-orange); }
body.sps-shop.single-product div.product .product_title {
  font-family: var(--sps-serif) !important; font-weight: 400 !important; font-size: clamp(1.9rem, 1.3rem + 2vw, 2.8rem) !important; line-height: 1.08 !important; margin-bottom: 10px !important;
}
body.sps-shop.single-product div.product .summary > .price, body.sps-shop.single-product div.product .summary .woocommerce-variation-price .price {
  font: 600 1.3rem/1.3 var(--sps-sans) !important; color: var(--sps-orange-text) !important;
}
/* configurator: variation table + swatches (typography, colour, borders only) */
body.sps-shop.single-product form.cart .variations th, body.sps-shop.single-product form.cart .variations td.label,
body.sps-shop.single-product form.cart .variations label {
  font: 600 .74rem/1.3 var(--sps-sans) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--sps-muted) !important;
}
body.sps-shop.single-product form.cart .rtwpvs-term {
  min-width: 44px; min-height: 44px; border-radius: 12px !important; border: 1.5px solid var(--sps-line) !important;
  box-shadow: none !important; background: #fff !important; transition: border-color .2s, box-shadow .2s, transform .2s !important;
}
body.sps-shop.single-product form.cart .rtwpvs-term:hover { border-color: var(--sps-line-2) !important; transform: translateY(-1px); }
body.sps-shop.single-product form.cart .rtwpvs-term.selected {
  border-color: var(--sps-ink) !important; box-shadow: 0 0 0 3px rgba(var(--sps-accent-rgb), .25) !important;
}
body.sps-shop.single-product form.cart .rtwpvs-term img { border-radius: 8px; }
body.sps-shop.single-product form.cart .reset_variations { color: var(--sps-muted) !important; font-size: .82rem; }
body.sps-shop.single-product form.cart .sun-go-back, body.sps-shop.single-product form.cart .button.sun-go-back {
  background: transparent !important; color: var(--sps-ink) !important; border: 1px solid var(--sps-line-2) !important; box-shadow: none !important;
}
body.sps-shop.single-product form.cart .wapf-field-label, body.sps-shop.single-product form.cart .wapf-field-label label { font: 600 .9rem/1.3 var(--sps-sans) !important; color: var(--sps-ink) !important; }
body.sps-shop.single-product form.cart .wapf-product-totals { font-family: var(--sps-sans); }
body.sps-shop.single-product form.cart .quantity .qty { border-radius: 999px !important; text-align: center; }

/* short description under the price + the Description tab: reading size */
body.sps-shop.single-product .woocommerce-product-details__short-description,
body.sps-shop.single-product .woocommerce-product-details__short-description :is(p, li, span, div, h1, h2, h3, h4, h5, h6) {
  font: 400 .95rem/1.6 var(--sps-sans) !important; color: var(--sps-muted) !important; letter-spacing: 0 !important;
}
body.sps-shop.single-product .woocommerce-product-details__short-description { margin: 4px 0 18px !important; max-width: 60ch; }
body.sps-shop.single-product .woocommerce-Tabs-panel--description,
body.sps-shop.single-product .woocommerce-Tabs-panel--description :is(p, li, span, div, td, h1, h2, h3, h4, h5, h6) {
  font: 400 .95rem/1.7 var(--sps-sans) !important; color: var(--sps-text-2) !important; letter-spacing: 0 !important;
}
body.sps-shop.single-product .woocommerce-Tabs-panel--description { max-width: none; }
body.sps-shop.single-product .woocommerce-Tabs-panel--description :is(p, h1, h2, h3, h4, h5, h6), body.sps-shop.single-product .woocommerce-product-details__short-description :is(h1, h2, h3, h4, h5, h6) { margin: 0 0 .8em !important; text-transform: none !important; }

/* variation price equal to the summary price: hidden visually (kept in the DOM for the configurator) */
body.sps-shop .woocommerce-variation-price.sps-dup-price { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* trust row under the configurator */
.sps-ptrust { list-style: none; margin: 18px 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; font-family: var(--sps-sans); }
.sps-ptrust { align-items: stretch !important; grid-auto-rows: 1fr; }
.sps-ptrust li { display: flex; align-items: center; gap: 8px; padding: 10px 12px; height: 100%; box-sizing: border-box; margin: 0 !important; border-radius: 12px; background: var(--sps-cream); font: 500 .8rem/1.25 var(--sps-sans); color: var(--sps-text-2); }
.sps-ptrust svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--sps-orange); }
body.sps-shop.single-product .product_meta { font: 400 .82rem/1.6 var(--sps-sans); color: var(--sps-muted); }
body.sps-shop.single-product .product_meta a { color: var(--sps-ink) !important; }

/* tabs → accordion (JS adds .sps-acc) */
body.sps-shop .woocommerce-tabs.sps-acc ul.tabs { display: none !important; }
body.sps-shop .woocommerce-tabs.sps-acc { border-top: 1px solid var(--sps-line); margin-top: 32px; }
body.sps-shop .woocommerce-tabs.sps-acc .panel { display: block !important; margin: 0 !important; padding: 4px 2px 22px !important; border: 0 !important; box-shadow: none !important; background: transparent !important; }
body.sps-shop .woocommerce-tabs.sps-acc .panel[hidden] { display: none !important; }
body.sps-shop .woocommerce-tabs.sps-acc .panel > h2:first-child { display: none; }
.sps-acc__btn {
  display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 2px; background: none; border: 0;
  border-bottom: 1px solid var(--sps-line); font: 500 1.15rem/1.2 var(--sps-serif); color: var(--sps-ink); cursor: pointer; text-align: left;
}
.sps-acc__btn::after { content: "+"; font: 400 1.4rem/1 var(--sps-sans); color: var(--sps-orange); transition: transform .3s var(--sps-ease); }
.sps-acc__btn[aria-expanded="true"]::after { transform: rotate(45deg); }
body.sps-shop .woocommerce-tabs:not(.sps-acc) ul.tabs li { border-radius: 999px 999px 0 0 !important; }
/* attributes table */
body.sps-shop table.woocommerce-product-attributes { border: 0 !important; border-radius: 14px; overflow: hidden; }
body.sps-shop table.woocommerce-product-attributes th, body.sps-shop table.woocommerce-product-attributes td {
  font: 400 .9rem/1.5 var(--sps-sans) !important; border: 0 !important; border-bottom: 1px solid var(--sps-line) !important; padding: 12px 14px !important; text-align: left !important; background: transparent !important;
}
body.sps-shop table.woocommerce-product-attributes th { font-weight: 600 !important; width: 32%; color: var(--sps-ink) !important; }
body.sps-shop table.woocommerce-product-attributes td { color: var(--sps-muted) !important; font-style: normal !important; }
body.sps-shop table.woocommerce-product-attributes td p { margin: 0; font-style: normal; }
.sps-clamp { max-height: 4.6em; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent); mask-image: linear-gradient(180deg, #000 55%, transparent); }
.sps-clamp-btn { margin-top: 6px; background: none; border: 0; padding: 0; font: 600 .82rem var(--sps-sans); color: var(--sps-orange-text); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
/* related / upsells heading */
body.sps-shop .related.products > h2, body.sps-shop .upsells.products > h2, body.sps-shop .cross-sells > h2 {
  font-family: var(--sps-serif) !important; font-weight: 400 !important; font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem) !important; margin: 40px 0 20px !important; text-align: left !important;
}

/* ---------- checkout steps ---------- */
.sps-stepsnav { list-style: none; display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 8px 22px; margin: 0 0 26px !important; padding: 0 !important; font: 500 .9rem/1 var(--sps-sans); color: var(--sps-muted); counter-reset: none; }
.sps-stepsnav__item { display: inline-flex; align-items: center; gap: 10px; }
.sps-stepsnav__item:not(:last-child)::after { content: ""; width: 34px; height: 2px; background: var(--sps-line); margin-left: 12px; border-radius: 2px; }
.sps-stepsnav__num { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--sps-line); font: 600 .8rem/1 var(--sps-sans); color: var(--sps-muted); background: #fff; }
.sps-stepsnav__item.is-current { color: var(--sps-ink); font-weight: 600; }
.sps-stepsnav__item.is-current .sps-stepsnav__num { background: var(--sps-orange); border-color: var(--sps-orange); color: var(--sps-ink); }
.sps-stepsnav__item.is-done .sps-stepsnav__num { background: var(--sps-ink); border-color: var(--sps-ink); color: #fff; }
.sps-stepsnav__item.is-done:not(:last-child)::after { background: var(--sps-ink); }

/* ---------- cart ---------- */
body.sps-shop.woocommerce-cart :is(#content, [data-elementor-type]) h1, body.sps-shop.woocommerce-checkout :is(#content, [data-elementor-type]) h1, body.sps-shop.woocommerce-account :is(#content, [data-elementor-type]) .entry-title {
  font-family: var(--sps-serif) !important; font-weight: 400 !important; font-size: clamp(2rem, 1.4rem + 2vw, 2.8rem) !important;
  color: var(--sps-ink) !important; text-align: left !important; margin: 0 0 18px !important;
}
body.sps-shop.woocommerce-cart .entry-header, body.sps-shop.woocommerce-checkout .entry-header, body.sps-shop.woocommerce-account .entry-header { text-align: left !important; justify-content: flex-start !important; padding-left: 0 !important; padding-right: 0 !important; }

/* WooCommerce focuses notices programmatically (for screen readers): no focus ring on them */
body.sps-shop .woocommerce-notices-wrapper :focus, body.sps-shop .woocommerce-message:focus, body.sps-shop .woocommerce-info:focus,
body.sps-shop .woocommerce-error:focus, body.sps-shop [role="alert"]:focus { outline: none !important; box-shadow: none !important; }
body.sps-shop .woocommerce-message .button { float: right; margin: -6px 0 0 16px !important; white-space: nowrap; }
@media (max-width: 599px) { body.sps-shop .woocommerce-message .button { float: none; display: table !important; margin: 0 0 12px !important; } }
body.sps-shop .coupon .button { white-space: nowrap; }
/* only the outer cart/checkout tables — the Sunpics item details inside a cell are a table too */
body.sps-shop table.shop_table, body.sps-shop table.shop_table thead, body.sps-shop table.shop_table tbody, body.sps-shop table.shop_table tr,
body.sps-shop table.shop_table > * > tr > td, body.sps-shop table.shop_table > * > tr > th { background: transparent !important; }
body.sps-shop table.shop_table { border: 0 !important; border-radius: 0 !important; font-family: var(--sps-sans); border-collapse: collapse; }
body.sps-shop table.shop_table > thead > tr > th, body.sps-shop table.shop_table > tbody > tr > th, body.sps-shop table.shop_table > tfoot > tr > th {
  font: 600 .72rem/1.3 var(--sps-sans) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--sps-muted) !important; border: 0 !important; padding: 12px !important;
}
body.sps-shop table.shop_table > thead > tr > th { border-bottom: 1px solid var(--sps-line) !important; }
body.sps-shop table.shop_table > tbody > tr > td, body.sps-shop table.shop_table > tfoot > tr > td {
  border: 0 !important; border-bottom: 1px solid var(--sps-line) !important; padding: 18px 12px !important; vertical-align: middle; font-size: .95rem;
}
body.sps-shop table.shop_table td.product-thumbnail img { width: 72px !important; border-radius: 12px; }
body.sps-shop table.shop_table td.product-name > a { color: var(--sps-ink) !important; font-weight: 600; }
/* item details (Pages, Format, Cover…): compact two-column list */
body.sps-shop table.shop_table td.product-name table, body.sps-shop table.shop_table td.product-name table * { background: transparent !important; }
body.sps-shop table.shop_table td.product-name table { margin: 8px 0 0 !important; border: 0 !important; width: auto; }
body.sps-shop table.shop_table td.product-name table td, body.sps-shop table.shop_table td.product-name table th {
  border: 0 !important; padding: 2px 16px 2px 0 !important; font: 400 .84rem/1.45 var(--sps-sans) !important; color: var(--sps-muted) !important;
  text-transform: none !important; letter-spacing: 0 !important; text-align: left !important;
}
body.sps-shop table.shop_table td.product-name table td:first-child, body.sps-shop table.shop_table td.product-name table th { color: var(--sps-ink) !important; font-weight: 500 !important; }
body.sps-shop table.shop_table td.product-name dl.variation, body.sps-shop table.shop_table td.product-name .wc-item-meta {
  display: grid; grid-template-columns: auto 1fr; gap: 2px 14px; margin: 8px 0 0 !important; font: 400 .84rem/1.45 var(--sps-sans); color: var(--sps-muted);
}
body.sps-shop table.shop_table td.product-name dl.variation dt, body.sps-shop table.shop_table td.product-name dl.variation dd {
  float: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important;
}
body.sps-shop table.shop_table td.product-name dl.variation dt { color: var(--sps-ink); font-weight: 500; }
body.sps-shop table.shop_table td.product-name dl.variation dd p { margin: 0 !important; }
body.sps-shop table.shop_table a.remove { color: var(--sps-muted) !important; border-radius: 50%; }
body.sps-shop table.shop_table a.remove:hover { background: var(--sps-ink) !important; color: #fff !important; }
/* Sunpics item details (div.sun-variation-attributes > .sun-item-attribute-wrap > name + slug): compact list */
body.sps-shop table.shop_table td.product-name .sun-variation-attributes {
  display: grid !important; grid-template-columns: max-content 1fr; gap: 3px 18px; margin: 10px 0 0 !important; padding: 0 !important; border: 0 !important;
}
body.sps-shop table.shop_table td.product-name .sun-item-attribute-wrap { display: contents !important; }
body.sps-shop table.shop_table td.product-name .sun-item-attribute-name,
body.sps-shop table.shop_table td.product-name .sun-item-attribute-slug {
  margin: 0 !important; padding: 0 !important; border: 0 !important; font: 400 .84rem/1.45 var(--sps-sans) !important; text-align: left !important; float: none !important;
}
body.sps-shop table.shop_table td.product-name .sun-item-attribute-name { color: var(--sps-ink) !important; font-weight: 500 !important; }
body.sps-shop table.shop_table td.product-name .sun-item-attribute-slug { color: var(--sps-muted) !important; }
body.sps-shop table.shop_table td.product-name > a { display: inline-block; border: 0 !important; padding: 0 !important; margin: 0 !important; }

/* coupon: the "Coupon:" label is for screen readers only */
body.sps-shop .coupon { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
body.sps-shop .coupon label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.sps-shop table.shop_table td.actions { border-bottom: 0 !important; padding-top: 22px !important; }
body.sps-shop .cart-collaterals .cart_totals, body.sps-shop #order_review, body.sps-shop .woocommerce-order-overview {
  background: var(--sps-cream); border-radius: 20px; padding: clamp(18px, 3vw, 28px) !important; border: 0 !important;
}
body.sps-shop .cart-collaterals .cart_totals h2, body.sps-shop #order_review_heading, body.sps-shop .woocommerce-order-details__title, body.sps-shop .woocommerce-column__title {
  font-family: var(--sps-serif) !important; font-weight: 400 !important; font-size: 1.5rem !important;
}
/* totals: full-width card right under the cart table — rows on the left, checkout button on the right */
body.sps-shop.woocommerce-cart .cart-collaterals { width: 100% !important; float: none !important; margin-top: 20px !important; }
body.sps-shop.woocommerce-cart .cart-collaterals .cart_totals { width: 100% !important; float: none !important; }
@media (min-width: 900px) {
  body.sps-shop.woocommerce-cart .cart-collaterals .cart_totals { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 360px); column-gap: clamp(24px, 4vw, 56px); align-items: end; }
  body.sps-shop.woocommerce-cart .cart_totals > h2 { grid-column: 1 / -1; margin-top: 0 !important; }
  body.sps-shop.woocommerce-cart .cart_totals > table { grid-column: 1; margin: 0 !important; }
  body.sps-shop.woocommerce-cart .cart_totals > .wc-proceed-to-checkout { grid-column: 2; grid-row: 2; padding: 0 !important; }
}
body.sps-shop .cart_totals table.shop_table > tbody > tr > *, body.sps-shop #order_review table.shop_table > * > tr > * { border-bottom-color: var(--sps-line-2) !important; background: transparent !important; padding-left: 0 !important; }
body.sps-shop .cart_totals table.shop_table > tbody > tr > th { width: 38%; }
body.sps-shop .cart_totals .order-total td, body.sps-shop #order_review .order-total td { font-size: 1.15rem !important; font-weight: 700 !important; color: var(--sps-ink) !important; }
body.sps-shop .cart_totals .order-total th, body.sps-shop #order_review .order-total th { color: var(--sps-ink) !important; }
body.sps-shop a.checkout-button { display: block !important; text-align: center; width: 100%; font-size: 1rem !important; padding: 1.1em !important; }
body.sps-shop .coupon input.input-text { border-radius: 999px !important; }
body.sps-shop .cart-empty { font-family: var(--sps-sans); }
body.sps-shop .return-to-shop .button { margin-top: 10px; }

/* ---------- checkout ---------- */
body.sps-shop :is(#content, [data-elementor-type]) input[type="radio"], body.sps-shop :is(#content, [data-elementor-type]) input[type="checkbox"] { accent-color: var(--sps-orange); }
body.sps-shop.woocommerce-checkout #customer_details h3, body.sps-shop.woocommerce-checkout #order_review_heading, body.sps-shop.woocommerce-checkout .woocommerce-additional-fields > h3 {
  font-family: var(--sps-serif) !important; font-weight: 400 !important; font-size: clamp(1.5rem, 1.2rem + .8vw, 1.9rem) !important;
  text-transform: none !important; letter-spacing: -.01em !important; color: var(--sps-ink) !important; border: 0 !important; padding-bottom: 0 !important; margin: 0 0 18px !important;
}
body.sps-shop.woocommerce-checkout #ship-to-different-address, body.sps-shop.woocommerce-checkout #ship-to-different-address label {
  font: 600 .95rem/1.4 var(--sps-sans) !important; text-transform: none !important; letter-spacing: 0 !important; border: 0 !important; color: var(--sps-ink) !important;
}
body.sps-shop.woocommerce-checkout #ship-to-different-address input { width: 18px; height: 18px; vertical-align: -3px; margin-right: 8px; }
body.sps-shop.woocommerce-checkout .form-row { margin-bottom: 14px !important; }
body.sps-shop.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  text-align: left !important; text-transform: none !important; letter-spacing: 0 !important; font: 400 .95rem/1.5 var(--sps-sans) !important; padding: 14px 18px 14px 46px !important;
}
body.sps-shop.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--sps-orange-text) !important; text-transform: none !important; font-weight: 600; }
body.sps-shop.woocommerce-checkout form.checkout_coupon { border: 1px solid var(--sps-line) !important; border-radius: 16px !important; padding: 18px !important; }
/* select2 (country / state) */
body.sps-shop .select2-container .select2-selection--single {
  border: 1px solid var(--sps-field) !important; border-radius: 12px !important; height: 46px !important; background: #fff !important;
}
body.sps-shop .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 44px !important; padding-left: 14px !important; padding-top: 0 !important; color: var(--sps-ink) !important; font: 400 1rem/44px var(--sps-sans) !important;
}
body.sps-shop .select2-container .select2-selection--single .select2-selection__arrow { height: 44px !important; right: 8px !important; }
body.sps-shop .select2-container--open .select2-selection--single { border-color: var(--sps-orange) !important; }
body.sps-shop .select2-dropdown { border-color: var(--sps-field) !important; border-radius: 12px !important; overflow: hidden; font-family: var(--sps-sans); }
body.sps-shop .select2-results__option--highlighted[aria-selected], body.sps-shop .select2-results__option--highlighted { background: var(--sps-orange) !important; color: var(--sps-ink) !important; }
/* order review: full-width row lines, plain labels */
body.sps-shop #order_review table.shop_table > * > tr > th, body.sps-shop #order_review table.shop_table > * > tr > td,
body.sps-shop .cart_totals table.shop_table > tbody > tr > th, body.sps-shop .cart_totals table.shop_table > tbody > tr > td {
  border: 0 !important; border-bottom: 1px solid var(--sps-line-2) !important; padding: 14px 0 !important; vertical-align: top;
}
body.sps-shop #order_review table.shop_table > tfoot > tr > th, body.sps-shop .cart_totals table.shop_table > tbody > tr > th {
  font: 500 .95rem/1.4 var(--sps-sans) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--sps-ink) !important;
}
body.sps-shop #order_review table.shop_table > thead > tr > th { padding-top: 0 !important; }
body.sps-shop #order_review table.shop_table td.product-name { padding-right: 16px !important; }
body.sps-shop #order_review table.shop_table .product-total, body.sps-shop #order_review table.shop_table tfoot td { text-align: right !important; }
body.sps-shop #order_review .order-total > * { border-bottom: 0 !important; padding-top: 18px !important; }
body.sps-shop #order_review #shipping_method, body.sps-shop .cart_totals #shipping_method { list-style: none; margin: 0 !important; padding: 0 !important; }
body.sps-shop #order_review #shipping_method li, body.sps-shop .cart_totals #shipping_method li { margin: 0 0 6px !important; }
/* Sunpics item details inside the order review (same compact list as the cart) */
body.sps-shop #order_review td.product-name .sun-variation-attributes {
  display: grid !important; grid-template-columns: max-content 1fr; gap: 3px 18px; margin: 10px 0 0 !important; padding: 0 !important; border: 0 !important;
}
body.sps-shop #order_review td.product-name .sun-item-attribute-wrap { display: contents !important; }
body.sps-shop #order_review td.product-name .sun-item-attribute-name, body.sps-shop #order_review td.product-name .sun-item-attribute-slug {
  margin: 0 !important; padding: 0 !important; border: 0 !important; font: 400 .84rem/1.45 var(--sps-sans) !important; text-align: left !important;
}
body.sps-shop #order_review td.product-name .sun-item-attribute-slug { color: var(--sps-muted) !important; }
/* payment block */
body.sps-shop.woocommerce-checkout #payment { background: #fff !important; border-radius: 16px !important; border: 1px solid var(--sps-line) !important; overflow: hidden; margin-top: 22px; }
body.sps-shop.woocommerce-checkout #payment ul.payment_methods { padding: 18px 20px 8px !important; border-bottom: 1px solid var(--sps-line) !important; }
body.sps-shop.woocommerce-checkout #payment ul.payment_methods li { font: 500 .95rem/1.5 var(--sps-sans); margin-bottom: 10px; }
body.sps-shop.woocommerce-checkout #payment div.payment_box { background: var(--sps-cream) !important; border-radius: 12px; color: var(--sps-ink) !important; font-size: .9rem; }
body.sps-shop.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--sps-cream) !important; }
body.sps-shop.woocommerce-checkout #payment div.place-order { padding: 18px 20px 22px !important; margin: 0 !important; }
body.sps-shop.woocommerce-checkout #payment .about_paypal { color: var(--sps-muted) !important; font-size: .8rem; }
body.sps-shop.woocommerce-checkout #place_order { width: 100%; font-size: 1rem !important; padding: 1.1em !important; }
body.sps-shop.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: .85rem; color: var(--sps-muted); }

/* ---------- account / login / registration (Elementor pages + WooCommerce + User Registration) ---------- */
body.sps-shop.woocommerce-account .elementor > .elementor-section:first-child,
body.sps-shop.user-registration-page .elementor > .elementor-section:first-child,
body.sps-shop.woocommerce-account .elementor > .e-con:first-child,
body.sps-shop.user-registration-page .elementor > .e-con:first-child {
  background-color: var(--sps-cream) !important; background-image: linear-gradient(180deg, #fff 0%, var(--sps-cream) 100%) !important;
}
body.sps-shop.woocommerce-account .elementor > .elementor-section:first-child .elementor-background-overlay,
body.sps-shop.user-registration-page .elementor > .elementor-section:first-child .elementor-background-overlay { opacity: 0 !important; }
body.sps-shop.woocommerce-account .elementor-heading-title,
body.sps-shop.user-registration-page .elementor-heading-title { color: var(--sps-ink) !important; }
body.sps-shop.woocommerce-account .elementor h1.elementor-heading-title, body.sps-shop.woocommerce-account .elementor h2.elementor-heading-title,
body.sps-shop.user-registration-page .elementor h1.elementor-heading-title, body.sps-shop.user-registration-page .elementor h2.elementor-heading-title {
  font-family: var(--sps-serif) !important; font-weight: 400 !important; letter-spacing: -.01em !important;
}
body.sps-shop .elementor-widget-icon-box > .elementor-widget-container {
  background: #fff !important; border: 1px solid var(--sps-line) !important; border-radius: 18px !important; box-shadow: var(--sps-shadow-sm) !important;
  transition: transform .3s var(--sps-ease), box-shadow .3s !important;
}
body.sps-shop .elementor-widget-icon-box > .elementor-widget-container:hover { transform: translateY(-4px); box-shadow: var(--sps-shadow) !important; }
body.sps-shop .elementor-widget-icon-box .elementor-icon { color: var(--sps-orange) !important; fill: var(--sps-orange) !important; }
body.sps-shop .elementor-widget-icon-box .elementor-icon svg { fill: var(--sps-orange) !important; }
body.sps-shop .elementor-widget-icon-box .elementor-icon-box-title, body.sps-shop .elementor-widget-icon-box .elementor-icon-box-title a {
  font: 600 .95rem/1.3 var(--sps-sans) !important; color: var(--sps-ink) !important;
}
/* My account: the Elementor icon tiles give way to the pill navigation (Shop::account_nav) */
body.sps-shop.woocommerce-account .elementor-section:has(.elementor-widget-icon-box),
body.sps-shop.woocommerce-account .e-con:has(.elementor-widget-icon-box) { display: none !important; }
body.sps-shop.woocommerce-account .elementor > .elementor-section:first-child > .elementor-container,
body.sps-shop.user-registration-page .elementor > .elementor-section:first-child > .elementor-container { min-height: 0 !important; }
body.sps-shop.woocommerce-account .elementor > .elementor-section:first-child,
body.sps-shop.user-registration-page .elementor > .elementor-section:first-child { padding: clamp(18px, 2.5vw, 32px) 0 clamp(18px, 2.5vw, 28px) !important; margin: 0 !important; }
body.sps-shop.woocommerce-account .elementor > .elementor-section:first-child .elementor-widget-wrap,
body.sps-shop.user-registration-page .elementor > .elementor-section:first-child .elementor-widget-wrap { padding-top: 0 !important; padding-bottom: 0 !important; }
body.sps-shop.woocommerce-account .elementor .elementor-element .elementor-widget-heading:first-child .elementor-heading-title,
body.sps-shop.user-registration-page .elementor .elementor-element .elementor-widget-heading:first-child .elementor-heading-title {
  font-family: var(--sps-serif) !important; font-weight: 400 !important; font-size: clamp(2.2rem, 1.5rem + 2.4vw, 3.2rem) !important; letter-spacing: -.015em !important; line-height: 1.05 !important;
}
body.sps-shop.woocommerce-account .elementor .elementor-element .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title,
body.sps-shop.user-registration-page .elementor .elementor-element .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title {
  font: 400 1.05rem/1.5 var(--sps-sans) !important; color: var(--sps-muted) !important;
}
.sps-accnav { margin: 0 0 28px; font-family: var(--sps-sans); }
.sps-accnav ul { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.sps-accnav li { margin: 0 !important; }
.sps-accnav a {
  display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border: 1px solid var(--sps-line); border-radius: 999px; background: #fff; white-space: nowrap;
  color: var(--sps-ink) !important; font: 500 .88rem/1 var(--sps-sans); transition: border-color .2s, background-color .2s, transform .2s;
}
.sps-accnav a svg { width: 17px; height: 17px; color: var(--sps-orange); }
.sps-accnav a:hover { border-color: var(--sps-ink); transform: translateY(-1px); }
.sps-accnav a.is-current { background: var(--sps-ink); border-color: var(--sps-ink); color: #fff !important; }
.sps-accnav a.is-current svg { color: var(--sps-accent-light); }
body.sps-shop.woocommerce-account .woocommerce-MyAccount-content { width: 100% !important; float: none !important; }
body.sps-shop.woocommerce-account .woocommerce-MyAccount-navigation { display: none !important; }
/* headings typed in Elementor with <b>/<strong>: the theme gives those another font */
body.sps-shop.woocommerce-account .elementor-heading-title :is(b, strong),
body.sps-shop.user-registration-page .elementor-heading-title :is(b, strong) { font: inherit !important; }
/* dashboard / endpoint text: readable contrast */
body.sps-shop.woocommerce-account .woocommerce-MyAccount-content,
body.sps-shop.woocommerce-account .woocommerce-MyAccount-content p { color: var(--sps-ink) !important; font: 400 1rem/1.65 var(--sps-sans) !important; }
body.sps-shop.woocommerce-account .woocommerce-MyAccount-content a:not(.button) { color: var(--sps-orange-text) !important; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }

/* order detail: back link, plain address blocks aligned with their headings, full-width summary rows */
.sps-back { margin: 0 0 16px !important; }
.sps-back a { display: inline-flex; align-items: center; gap: 8px; font: 600 .92rem/1 var(--sps-sans); color: var(--sps-ink) !important; text-decoration: none !important; padding: 8px 14px 8px 10px; border-radius: 999px; transition: background-color .2s; }
.sps-back a:hover { background: var(--sps-cream); }
body.sps-shop .woocommerce-customer-details address {
  border: 0 !important; border-radius: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important;
  font: 400 .98rem/1.65 var(--sps-sans) !important; font-style: normal !important; color: var(--sps-ink) !important;
}
body.sps-shop .woocommerce-customer-details address p { margin: 6px 0 0 !important; }
body.sps-shop .woocommerce-customer-details .woocommerce-column__title { margin: 0 0 10px !important; }
body.sps-shop table.woocommerce-table--order-details > tfoot > tr > th, body.sps-shop table.woocommerce-table--order-details > tfoot > tr > td {
  border: 0 !important; border-bottom: 1px solid var(--sps-line) !important; padding: 14px 12px !important;
}
body.sps-shop table.woocommerce-table--order-details > tfoot > tr > th {
  font: 500 .95rem/1.4 var(--sps-sans) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--sps-ink) !important;
}
body.sps-shop table.woocommerce-table--order-details > tfoot > tr:last-child > * { border-bottom: 0 !important; font-weight: 700 !important; }

/* edit-account: the password fieldset as a card */
body.sps-shop.woocommerce-account fieldset {
  border: 1px solid var(--sps-line) !important; border-radius: 18px !important; padding: 18px 22px 8px !important; margin: 26px 0 !important; background: var(--sps-cream) !important;
}
body.sps-shop.woocommerce-account fieldset legend { font: 400 1.25rem/1 var(--sps-serif) !important; color: var(--sps-ink) !important; padding: 0 10px !important; background: transparent !important; }
body.sps-shop.woocommerce-account form .form-row span em, body.sps-shop.woocommerce-account #account_display_name_description { font-style: normal; font-size: .8rem; color: var(--sps-muted); }
@media (max-width: 899px) {
  .sps-accnav ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--sps-gutter) * -1) !important; padding: 2px var(--sps-gutter) 6px !important; }
  .sps-accnav ul::-webkit-scrollbar { display: none; }
}

/* Sunpics My projects: filter icons readable, cards sized inside their grid cells */
body.sps-shop.woocommerce-account #mp-filters-container { border-color: var(--sps-line) !important; border-radius: 18px !important; background: #fff !important; }
body.sps-shop.woocommerce-account #mp-filters-top .mp-search { display: none !important; }
/* no extra panel around the Sunpics one: the .contained box spans the same width as the account pills */
body.sps-shop.woocommerce-account .woocommerce-MyAccount-content:has(#mp-category-filter) { background: transparent !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body.sps-shop.woocommerce-account .woocommerce-MyAccount-content .contained { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; box-sizing: border-box !important; border: 1px solid var(--sps-line) !important; border-radius: 22px !important; box-shadow: var(--sps-shadow-sm) !important; }
/* the page's own CSS gives each card margin: 20px 10px !important — the 10px shifted the grid and clipped the third column */
body.sps-shop.woocommerce-account .woocommerce-MyAccount-content .row-fluid.sunpics-projects-list > li.sunpics-projects-wrap { margin: 0 !important; }
/* 1fr never shrinks below the card's min-content width, so the third column overflowed the list and was clipped */
body.sps-shop.woocommerce-account .row-fluid.sunpics-projects-list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; box-sizing: border-box !important; margin-left: 0 !important; margin-right: 0 !important; padding: 0 !important; }
body.sps-shop.woocommerce-account .row-fluid.sunpics-projects-list > li { min-width: 0 !important; max-width: 100% !important; }
/* every thumbnail fits the same box (portrait images used to overflow onto the text) */
body.sps-shop.woocommerce-account .sunpics-projects-list li.sunpics-projects-wrap .thumbnail-image {
  height: 170px !important; display: flex !important; align-items: center; justify-content: center; overflow: hidden; border-radius: 12px; background: var(--sps-cream);
}
body.sps-shop.woocommerce-account .sunpics-projects-list li.sunpics-projects-wrap .thumbnail-image img {
  max-width: 100% !important; max-height: 100% !important; width: auto !important; height: auto !important; object-fit: contain; margin: 0 auto !important; box-shadow: none !important;
}
/* Sunpics fades unselected categories to 40% opacity; colour states do that job instead */
body.sps-shop.woocommerce-account #mp-category-filter .mp-category { opacity: 1 !important; }
body.sps-shop.woocommerce-account #mp-category-filter .mp-category .icon { background-color: var(--sps-muted) !important; }
body.sps-shop.woocommerce-account #mp-category-filter .mp-category p { color: var(--sps-text-2) !important; font: 500 .78rem/1.3 var(--sps-sans) !important; }
body.sps-shop.woocommerce-account #mp-category-filter .mp-category:hover .icon { background-color: var(--sps-ink) !important; }
body.sps-shop.woocommerce-account #mp-category-filter .mp-category.selected .icon { background-color: var(--sps-orange) !important; }
body.sps-shop.woocommerce-account #mp-category-filter .mp-category.selected p { color: var(--sps-ink) !important; font-weight: 600 !important; }
body.sps-shop.woocommerce-account .sunpics-projects-list li.sunpics-projects-wrap {
  box-sizing: border-box !important; border-color: var(--sps-line) !important; border-radius: 18px !important; box-shadow: var(--sps-shadow-sm) !important;
  transition: box-shadow .3s !important;
}
/* no lift on hover: the list clips overflow, so moving the card cut its top border */
body.sps-shop.woocommerce-account .sunpics-projects-list li.sunpics-projects-wrap:hover { box-shadow: var(--sps-shadow) !important; }
body.sps-shop.woocommerce-account .sunpics-projects-list li.sunpics-projects-wrap * { box-sizing: border-box; }
@media (max-width: 899px) { body.sps-shop.woocommerce-account .row-fluid.sunpics-projects-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 599px) { body.sps-shop.woocommerce-account .row-fluid.sunpics-projects-list { grid-template-columns: minmax(0, 1fr) !important; } }

/* WooCommerce account navigation + forms */
body.sps-shop .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0 !important; margin: 0 !important; }
body.sps-shop .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 14px; border-radius: 10px; color: var(--sps-ink) !important; font: 500 .95rem var(--sps-sans); }
body.sps-shop .woocommerce-MyAccount-navigation li.is-active a, body.sps-shop .woocommerce-MyAccount-navigation li a:hover { background: var(--sps-cream); }
body.sps-shop form.woocommerce-form-login, body.sps-shop form.woocommerce-form-register, body.sps-shop form.woocommerce-ResetPassword,
body.sps-shop .ur-frontend-form {
  border: 1px solid var(--sps-line) !important; border-radius: 20px !important; background: #fff !important; box-shadow: var(--sps-shadow-sm) !important;
  padding: clamp(18px, 3vw, 32px) !important; font-family: var(--sps-sans);
}
body.sps-shop .ur-frontend-form .ur-label, body.sps-shop .ur-frontend-form label { font: 500 .88rem/1.4 var(--sps-sans) !important; color: var(--sps-text-2) !important; }
body.sps-shop .ur-frontend-form .ur-form-row .ur-form-grid { background: transparent !important; }
body.sps-shop .woocommerce-LostPassword a, body.sps-shop .ur-frontend-form a { color: var(--sps-orange-text) !important; }

/* ---------- responsive ---------- */
@media (max-width: 899px) {
  .sps-cathero { grid-template-columns: 1fr; border-radius: 18px; }
  .sps-cathero__media { order: -1; height: 150px; }
  .sps-ptrust { grid-template-columns: 1fr; }
  .sps-stepsnav__item:not(:last-child)::after { width: 16px; margin-left: 6px; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  body.sps-shop *, .sps-cathero, .sps-cathero__media img { animation: none !important; transition: none !important; }
  .js body.sps-shop ul.products li.product[data-reveal] { opacity: 1 !important; transform: none !important; }
}
