/*
Theme Name: Svenska Hantverksbastun
Theme URI: http://64.112.125.196:8088
Description: Child of Hello Elementor. One-product storefront for Hantverksbastun, an electric sauna for two built by hand in Kristianstad.
Author: Marqeter
Template: hello-elementor
Version: 0.8.0
Text Domain: svenska-hantverksbastun
*/

/* ==========================================================================
   Design tokens — mirror Elementor Site Settings (kit). Change colours and
   type there; these variables serve the WooCommerce/PHP templates.
   ========================================================================== */
:root {
  --shb-paper: #f4f2ed;
  --shb-band: #eae6de;
  --shb-ink: #1c1b19;
  --shb-muted: #5c5850;
  --shb-accent: #8a5a33;
  --shb-line: #ddd8ce;
  --shb-line-band: #cfc8bc;
  --shb-tile: #e4dfd6;
  --shb-img: #e9e6e0;
  --shb-footer: #141312;
  --shb-on-dark: #b9b3a8;
  --shb-white: #ffffff;
  --shb-green: #3f4a3c;
  --shb-serif: "Source Serif 4", Georgia, serif;
  --shb-sans: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  --shb-radius: 3px;
  --shb-radius-img: 4px;
  --shb-wrap: 1280px;
  --shb-gutter: 48px;
  --shb-section: 140px;
}

@media (max-width: 767px) {
  :root { --shb-gutter: 24px; --shb-section: 72px; }
}

/* Base ===================================================================== */
html { background: var(--shb-paper); scroll-padding-top: 24px; overflow-x: clip; }

body,
body.hello-elementor,
body.hello-elementor-default {
  background: var(--shb-paper);
  color: var(--shb-ink);
  font-family: var(--shb-sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

@media (max-width: 767px) { body { font-size: 16px; } }

a { color: var(--shb-ink); }
a:hover { color: var(--shb-accent); }
::selection { background: var(--shb-ink); color: var(--shb-paper); }
:focus-visible { outline: 2px solid var(--shb-accent); outline-offset: 3px; }
img { max-width: 100%; height: auto; }
input[type="radio"], input[type="checkbox"] { accent-color: var(--shb-ink); }

.shb-content, .site-main, .elementor { background: transparent; }
.page-template-elementor_header_footer .shb-content { padding: 0; }
.elementor-page .page-header { display: none; }

.screen-reader-text:focus, .skip-link:focus {
  background: var(--shb-white); color: var(--shb-ink); padding: 12px 16px; z-index: 100;
}

/* Shared text helpers ====================================================== */
.shb-muted { color: var(--shb-muted); }
.shb-eyebrow {
  margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--shb-accent);
}
.shb-h2 {
  margin: 0; font-family: var(--shb-serif); font-weight: 400; font-size: 48px; line-height: 1.08; letter-spacing: -0.02em;
}
@media (max-width: 767px) { .shb-eyebrow { font-size: 12px; } .shb-h2 { font-size: 30px; line-height: 1.1; } }

/* Text link: weight 500, generous underline offset (design) */
.shb-link, .elementor-widget-text-editor a.shb-link {
  color: var(--shb-ink); font-weight: 500; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px;
}
.shb-link:hover { color: var(--shb-accent); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Elementor widgets ======================================================== */
.elementor-heading-title a { color: inherit; text-decoration: none; }
.elementor-heading-title a:hover { color: var(--shb-accent); }
.elementor-widget-heading .elementor-heading-title { text-wrap: balance; }

/* Buttons: one shape (3px radius, 500 weight). Sizes: lg 60px, md 54px, sm 44px. */
.elementor-button {
  border-radius: var(--shb-radius); display: inline-flex; align-items: center; justify-content: center;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.shb-btn--lg .elementor-button { min-height: 60px; padding: 0 36px; font-size: 17px; }
.shb-btn--md .elementor-button { min-height: 54px; padding: 0 28px; font-size: 16px; }
.shb-btn--sm .elementor-button { min-height: 44px; padding: 0 22px; font-size: 15px; }
@media (max-width: 767px) {
  .shb-btn--lg .elementor-button { min-height: 56px; }
  .shb-btn--block-m, .shb-btn--block-m .elementor-button { width: 100%; }
}

/* Image aspect ratios from the design */
.shb-img img { display: block; width: 100%; border-radius: var(--shb-radius-img); background: var(--shb-img); }
.shb-ratio-4x5 img { aspect-ratio: 4 / 5; height: auto !important; object-fit: cover; }
.shb-ratio-3x4 img { aspect-ratio: 3 / 4; height: auto !important; object-fit: cover; }
.shb-img a { display: block; }

/* Numbered captions (01 Spanten böjs …) */
.shb-num { display: block; font-family: var(--shb-serif); font-size: 22px; line-height: 1.3; color: var(--shb-accent); }
@media (max-width: 767px) { .shb-num { display: inline; font-size: 15px; margin-right: 6px; } .shb-build__card .elementor-heading-title { font-size: 15px; } }

/* Horizontal scroller on phones (build steps) */
@media (max-width: 767px) {
  .e-grid.shb-scroller, .e-con.shb-scroller {
    display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px !important;
    margin-right: calc(var(--shb-gutter) * -1); padding-right: var(--shb-gutter) !important; scrollbar-width: none;
  }
  .shb-scroller::-webkit-scrollbar { display: none; }
  .shb-scroller > .e-con { flex: 0 0 248px !important; width: 248px !important; scroll-snap-align: start; }
}

/* Statement and quotes keep a readable measure */
.shb-statement .elementor-heading-title { max-width: 860px; margin: 0 auto; }
.shb-review blockquote { margin: 0; font-style: normal; }
.shb-quote .elementor-heading-title { font-style: normal; }

/* Trust strip: hairlines between cells */
.shb-trust > .e-con + .e-con { border-left: 1px solid var(--shb-line); }

/* Spec rows */
.shb-specs .elementor-heading-title { margin: 0; }
.shb-spec .elementor-widget:not(:last-child) { margin-bottom: 0; }

/* Startkit price row */
.shb-kitprice { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin: 0; }
.shb-kitprice__now { font-family: var(--shb-serif); font-size: 32px; letter-spacing: -0.02em; }
.shb-kitprice s { color: var(--shb-muted); }
.shb-kitprice__save { font-size: 14px; font-weight: 600; color: var(--shb-accent); }
@media (max-width: 767px) { .shb-kitprice__now { font-size: 26px; } }

/* Check list */
.shb-checks .elementor-icon-list-icon svg, .shb-checks .elementor-icon-list-icon i { color: var(--shb-green); fill: var(--shb-green); }

/* FAQ accordion: hairlines, rotating plus */
.shb-faq .elementor-accordion { border-top: 1px solid var(--shb-line); }
.shb-faq .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid var(--shb-line) !important; }
.shb-faq .elementor-tab-title { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 44px; cursor: pointer; }
.shb-faq .elementor-tab-title a { color: inherit; text-decoration: none; order: 1; }
.shb-faq .elementor-accordion-icon { order: 2; flex: none; transition: transform 0.2s ease; }
.shb-faq .elementor-accordion-icon svg { width: 18px; height: 18px; }
.shb-faq .elementor-tab-title.elementor-active .elementor-accordion-icon { transform: rotate(45deg); }
.shb-faq .elementor-accordion-icon-opened { display: none !important; }
.shb-faq .elementor-accordion-icon-closed { display: block !important; }
.shb-faq .elementor-tab-content { border: 0 !important; max-width: 40em; }
.shb-faq .elementor-tab-content p { margin: 0; }

/* Prose (legal, delivery, blog posts) */
.shb-prose p, .shb-prose li { max-width: 68ch; }
.shb-prose a { text-underline-offset: 4px; }
.shb-prose strong { font-weight: 600; }

/* Dark sections (final call to action) */
.shb-dark .shb-link, .shb-dark a { color: var(--shb-white); }
.shb-final__img img { border-radius: 0; }
@media (max-width: 767px) { .shb-final > .e-con-inner > .e-grid, .shb-final .e-grid { gap: 0 !important; } }

/* Home hero: photo spans up to 1440px */
.shb-hero .shb-hero__img { width: 100%; max-width: 1440px; margin: 0 auto; }
.shb-hero .shb-hero__img img { border-radius: 0; }
.shb-hero__lead p { max-width: 32em; margin-left: auto; margin-right: auto; }
@media (max-width: 767px) {
  .shb-hero__copy, .shb-hero__copy .elementor-widget-heading, .shb-hero__copy .elementor-widget-text-editor { text-align: left !important; }
  .shb-hero__copy .elementor-heading-title, .shb-hero__copy .elementor-widget-text-editor { text-align: left !important; }
  .shb-hero__copy { align-items: stretch !important; }
  .shb-hero__ctas { justify-content: flex-start !important; }
  .shb-hero__ctas > .elementor-widget-text-editor { display: none; }
  .shb-hero__copy > .elementor-widget-text-editor:last-child p { text-align: center; }
}

/* Breadcrumbs */
.shb-crumbs a, .shb-pdp__crumbs a, .shb-breadcrumb a { color: var(--shb-muted); }
.shb-crumbs a:hover, .shb-pdp__crumbs a:hover, .shb-breadcrumb a:hover { color: var(--shb-ink); }

/* Header (Elementor "Navigation" template) ================================= */
.shb-header { position: relative; z-index: 40; }
.shb-announce .elementor-widget-text-editor p { margin: 0; letter-spacing: 0.02em; }
.shb-logo .elementor-heading-title a { color: var(--shb-ink); }
.shb-nav__links .elementor-icon-list-item a { text-decoration: none; }
.shb-nav__links .elementor-icon-list-icon { display: none; }
.shb-nav__links .elementor-icon-list-text { padding-left: 0 !important; }
.shb-tools .elementor-widget-shortcode, .shb-tools .elementor-widget-button { width: auto; }

.shb-cart {
  position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--shb-ink);
}
.shb-cart__count {
  position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: var(--shb-ink); color: var(--shb-paper); font-size: 11px; font-weight: 600; line-height: 18px; text-align: center;
}

.shb-toggle-slot { display: none; }
button.shb-nav-toggle,
button.shb-nav-toggle:hover,
button.shb-nav-toggle:focus {
  appearance: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 0;
  padding: 0 !important; margin: 0; border: 0 !important; border-radius: 0; background: transparent !important; color: var(--shb-ink) !important;
  box-shadow: none !important; cursor: pointer;
}
.shb-nav-toggle > span:first-child { position: relative; display: block; width: 16px; height: 8px; }
.shb-nav-toggle > span:first-child::before,
.shb-nav-toggle > span:first-child::after {
  content: ""; position: absolute; left: 0; width: 16px; height: 1.5px; background: currentColor; transition: transform 0.2s ease, top 0.2s ease;
}
.shb-nav-toggle > span:first-child::before { top: 0; }
.shb-nav-toggle > span:first-child::after { top: 8px; }
.shb-header.is-open .shb-nav-toggle > span:first-child::before { top: 4px; transform: rotate(45deg); }
.shb-header.is-open .shb-nav-toggle > span:first-child::after { top: 4px; transform: rotate(-45deg); }

@media (max-width: 1024px) {
  .shb-toggle-slot { display: block; }
  .shb-header__buy { display: none; }
  .shb-header .shb-nav {
    display: none !important; position: absolute; left: 0; right: 0; top: 100%; width: auto !important;
    background: var(--shb-paper); border-bottom: 1px solid var(--shb-line); padding: 8px 24px 24px !important;
    box-shadow: 0 16px 32px rgba(28, 27, 25, 0.08);
  }
  .shb-header.is-open .shb-nav { display: flex !important; }
  .shb-header .shb-nav__links .elementor-icon-list-items { flex-direction: column; align-items: stretch; }
  .shb-header .shb-nav__links .elementor-icon-list-item { margin: 0 !important; border-bottom: 1px solid var(--shb-line); }
  .shb-header .shb-nav__links .elementor-icon-list-item a { min-height: 52px; font-size: 17px; }
  .shb-header__main { position: relative; }
}

/* Footer (Elementor "Sidfot" template) ===================================== */
.shb-footer .elementor-icon-list-icon { display: none; }
.shb-footer .elementor-icon-list-text { padding-left: 0 !important; }
.shb-footer .elementor-icon-list-item a { text-decoration: none; }
.shb-footer a:focus-visible { outline-color: var(--shb-white); }
@media (max-width: 767px) {
  .shb-footer__brand { grid-column: 1 / -1; }
  .shb-footer .elementor-icon-list-item a { min-height: 40px; }
  .shb-footer__legal .elementor-icon-list-items { justify-content: flex-start; }
}

/* PHP template shell ======================================================= */
.shb-wrap { box-sizing: border-box; max-width: var(--shb-wrap); margin: 0 auto; padding: 0 var(--shb-gutter); }
.shb-band { background: var(--shb-band); }

/* Shared PHP buttons (product page, Woo, forms) */
.shb-btn,
a.shb-btn,
button.shb-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box;
  min-height: 60px; padding: 0 36px; border: 1px solid var(--shb-ink); border-radius: var(--shb-radius);
  background: var(--shb-ink); color: var(--shb-white); font-family: var(--shb-sans); font-size: 17px; font-weight: 500;
  line-height: 1.2; text-decoration: none; text-transform: none; letter-spacing: 0; cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.shb-btn:hover, a.shb-btn:hover, button.shb-btn:hover { background: #3a3833; border-color: #3a3833; color: var(--shb-white); }
a.shb-btn--outline, button.shb-btn--outline { background: transparent; color: var(--shb-ink); min-height: 50px; padding: 0 24px; font-size: 16px; }
.shb-btn--outline:hover, button.shb-btn--outline:hover { background: var(--shb-ink); color: var(--shb-white); }
.shb-btn--outline[aria-pressed="true"] { background: var(--shb-ink); color: var(--shb-white); }
a.shb-btn--sm, button.shb-btn--sm { min-height: 46px; padding: 0 18px; font-size: 15px; }
.shb-btn:disabled { cursor: default; opacity: 1; }
.shb-btn:focus-visible { outline: 2px solid var(--shb-accent); outline-offset: 3px; }

/* Product page ============================================================= */
.shb-pdp { box-sizing: border-box; max-width: var(--shb-wrap); margin: 0 auto; padding: 0 var(--shb-gutter); }
.shb-pdp__crumbs { padding-top: 24px; font-size: 14px; color: var(--shb-muted); }
.shb-pdp__top {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 80px; align-items: start;
  padding: 24px 0 var(--shb-section);
}
.shb-pdp__top--noimg { grid-template-columns: minmax(0, 1fr); max-width: 640px; }
.shb-pdp__mosaic { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.shb-pdp__shot { display: block; width: 100%; height: auto; object-fit: cover; border-radius: var(--shb-radius-img); background: var(--shb-img); }
.shb-pdp__shot--main { grid-column: span 2; aspect-ratio: 4 / 5; object-position: center 55%; }
.shb-pdp__shot--half { aspect-ratio: 3 / 4; }
.shb-pdp__shot--wide { grid-column: span 2; aspect-ratio: 16 / 10; object-position: 30% center; }
.shb-pdp__thumbs { display: none; }

.shb-pdp__buy { position: sticky; top: 32px; display: flex; flex-direction: column; gap: 28px; }
.shb-pdp__intro { display: flex; flex-direction: column; gap: 12px; }
.shb-pdp__title { margin: 0; font-family: var(--shb-serif); font-weight: 400; font-size: 52px; line-height: 1.04; letter-spacing: -0.02em; }
.shb-pdp__lead { margin: 0; font-size: 18px; }
.shb-pdp__revlink { font-size: 15px; text-underline-offset: 4px; align-self: flex-start; }
.shb-pdp__amount { margin: 0; font-family: var(--shb-serif); font-size: 36px; line-height: 1.2; letter-spacing: -0.02em; }
.shb-pdp__amount s { font-family: var(--shb-sans); font-size: 16px; }
.shb-pdp__vat { margin: 4px 0 0; font-size: 14px; }

.shb-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--shb-line); }
.shb-facts > div { padding: 16px 0; border-bottom: 1px solid var(--shb-line); }
.shb-facts > div:nth-child(even) { padding-left: 20px; border-left: 1px solid var(--shb-line); }
.shb-facts dt { font-size: 13px; color: var(--shb-muted); }
.shb-facts dd { margin: 0; }

.shb-buyform { display: flex; flex-direction: column; gap: 24px; margin: 0; }
.shb-buyform fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.shb-buyform legend { padding: 0; margin-bottom: 10px; font-size: 15px; font-weight: 600; }
.shb-wood__opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.shb-wood__opt { position: relative; display: block; cursor: pointer; }
.shb-wood__opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.shb-wood__opt span {
  display: flex; flex-direction: column; min-height: 44px; padding: 10px 12px; border: 1.5px solid var(--shb-line); border-radius: var(--shb-radius-img);
  background: var(--shb-white); font-size: 14px; color: var(--shb-muted);
}
.shb-wood__opt strong { color: var(--shb-ink); font-weight: 600; font-size: 15px; }
.shb-wood__opt input:checked + span { border-color: var(--shb-ink); }
.shb-wood__opt input:focus-visible + span { outline: 2px solid var(--shb-accent); outline-offset: 2px; }

.shb-addons { display: flex; flex-direction: column; gap: 10px; }
.shb-kitopt {
  display: flex; gap: 14px; align-items: flex-start; padding: 18px; cursor: pointer;
  background: var(--shb-white); border: 1.5px solid var(--shb-line); border-radius: var(--shb-radius-img);
}
.shb-kitopt.is-on { border-color: var(--shb-ink); }
.shb-kitopt input { width: 22px; height: 22px; margin: 1px 0 0; flex-shrink: 0; }
.shb-kitopt__body { display: flex; flex-direction: column; gap: 4px; flex-grow: 1; }
.shb-kitopt__row { display: flex; justify-content: space-between; gap: 8px; }
.shb-kitopt__row strong { font-weight: 600; }
.shb-kitopt__row s { font-size: 14px; }
.shb-kitopt__note { font-size: 14px; }

.shb-singles { border-bottom: 1px solid var(--shb-line); }
.shb-singles summary {
  display: flex; justify-content: space-between; align-items: center; min-height: 44px; padding: 12px 0; font-size: 15px; cursor: pointer; list-style: none;
}
.shb-singles summary::-webkit-details-marker { display: none; }
.shb-plus { font-size: 22px; font-weight: 300; line-height: 1; transition: transform 0.2s ease; }
details[open] > summary .shb-plus { transform: rotate(45deg); }
.shb-singles__list { display: flex; flex-direction: column; padding-bottom: 12px; }
.shb-single { display: flex; align-items: center; gap: 12px; min-height: 44px; font-size: 15px; cursor: pointer; }
.shb-single input { width: 20px; height: 20px; margin: 0; }
.shb-single__name { flex-grow: 1; }

.shb-btn--buy, button.shb-btn--buy { width: 100%; min-height: 62px; font-size: 18px; }
.shb-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; color: var(--shb-muted); }
.shb-checklist li { display: flex; gap: 10px; align-items: center; }
.shb-checklist svg { flex: none; }
.shb-pdp__ask { margin: 0; padding-top: 20px; border-top: 1px solid var(--shb-line); font-size: 15px; }

/* Reviews */
.shb-reviews { padding: var(--shb-section) 0; }
.shb-reviews__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 56px; }
.shb-reviews__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.shb-review { margin: 0; padding-top: 24px; border-top: 1px solid var(--shb-line-band); display: flex; flex-direction: column; gap: 14px; }
.shb-review[hidden] { display: none; }
.shb-review__stars { margin: 0; color: var(--shb-accent); letter-spacing: 2px; font-size: 14px; }
.shb-review blockquote { margin: 0; }
.shb-review figcaption { font-size: 14px; }

/* Accessories row */
.shb-accessories { padding: var(--shb-section) 0; }
.shb-accessories--border { border-top: 1px solid var(--shb-line); }
.shb-accessories .shb-h2 { margin-bottom: 48px; }
.shb-accessories__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.shb-accessory { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 1px solid var(--shb-ink); }
.shb-accessory__img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--shb-radius-img); margin-bottom: 6px; }
.shb-accessory__name { font-weight: 600; text-decoration: none; }
.shb-accessory__note { margin: 0; font-size: 15px; flex-grow: 1; }
.shb-accessory__price { font-size: 15px; }
.shb-accessory .shb-btn { width: 100%; }

/* Sticky buy bar (phones) */
.shb-dock {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: none; align-items: center; gap: 12px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--shb-paper); border-top: 1px solid var(--shb-line);
  box-shadow: 0 -8px 24px rgba(28, 27, 25, 0.08);
}
.shb-dock[hidden] { display: none !important; }
.shb-dock__price { flex-grow: 1; display: flex; flex-direction: column; line-height: 1.3; }
.shb-dock__price .shb-muted { font-size: 12px; }
.shb-dock__price strong { font-weight: 600; }
.shb-btn--dock, a.shb-btn--dock { min-height: 50px; padding: 0 22px; font-size: 16px; }

@media (max-width: 1024px) {
  .shb-pdp__top { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .shb-pdp__buy { position: static; }
  .shb-reviews__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shb-accessories__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .shb-pdp { padding: 0; }
  .shb-pdp__crumbs { display: none; }
  .shb-pdp__top { padding: 0 0 56px; gap: 32px; }
  .shb-pdp__mosaic { display: block; }
  .shb-pdp__mosaic .shb-pdp__shot { display: none; aspect-ratio: 4 / 5; border-radius: 0; object-position: center 55%; }
  .shb-pdp__mosaic .shb-pdp__shot.is-current { display: block; }
  .shb-pdp__thumbs { display: flex; gap: 8px; padding: 12px 24px 0; overflow-x: auto; scrollbar-width: none; }
  .shb-pdp__thumb {
    flex: 0 0 56px; width: 56px; height: 56px; padding: 0; border: 1.5px solid transparent; border-radius: var(--shb-radius);
    overflow: hidden; background: var(--shb-img); cursor: pointer;
  }
  .shb-pdp__thumb[aria-pressed="true"] { border-color: var(--shb-ink); }
  .shb-pdp__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .shb-pdp__buy { padding: 0 24px; gap: 24px; }
  .shb-pdp--acc .shb-pdp__top { padding-top: 32px; }
  .shb-pdp__title { font-size: 36px; line-height: 1.05; }
  .shb-pdp__lead { font-size: 16px; }
  .shb-pdp__amount { font-size: 30px; }
  .shb-facts > div:nth-child(even) { padding-left: 16px; }
  .shb-wood__opts { grid-template-columns: 1fr; }
  .shb-btn--buy, button.shb-btn--buy { min-height: 58px; font-size: 17px; }
  .shb-reviews__head { margin-bottom: 28px; }
  .shb-reviews__grid { grid-template-columns: 1fr; gap: 28px; }
  .shb-review { padding-top: 20px; gap: 10px; }
  .shb-accessories .shb-h2 { margin-bottom: 24px; }
  .shb-accessories__grid { display: flex; overflow-x: auto; gap: 14px; margin-right: -24px; padding-right: 24px; scrollbar-width: none; }
  .shb-accessory { flex: 0 0 164px; }
  .shb-dock { display: flex; }
  body.shb-pdp-page .shb-footer { padding-bottom: 112px !important; }
}

/* WooCommerce: notices, cart, checkout, account, shop ===================== */
.woocommerce-page .shb-content,
.woocommerce .shb-content { box-sizing: border-box; }
.woocommerce-cart .shb-content > *,
.woocommerce-checkout .shb-content > *,
.woocommerce-account .shb-content > *,
.post-type-archive-product .shb-content > * {
  box-sizing: border-box; max-width: var(--shb-wrap); margin-left: auto; margin-right: auto; padding-left: var(--shb-gutter); padding-right: var(--shb-gutter);
}
.woocommerce-cart .page-header, .woocommerce-checkout .page-header, .woocommerce-account .page-header,
.woocommerce-products-header { padding-top: 64px; }
.woocommerce-cart h1, .woocommerce-checkout h1, .woocommerce-account h1, .woocommerce-products-header__title,
.woocommerce-cart .entry-title, .woocommerce-checkout .entry-title {
  font-family: var(--shb-serif); font-weight: 400; font-size: 48px; line-height: 1.08; letter-spacing: -0.02em; margin: 0 0 32px;
}
.woocommerce-cart .page-content, .woocommerce-checkout .page-content, .woocommerce-account .page-content { padding-bottom: var(--shb-section); }
@media (max-width: 767px) {
  .woocommerce-cart h1, .woocommerce-checkout h1, .woocommerce-account h1, .woocommerce-products-header__title { font-size: 34px; }
  .woocommerce-cart .page-header, .woocommerce-checkout .page-header, .woocommerce-account .page-header, .woocommerce-products-header { padding-top: 40px; }
}

.woocommerce-message, .woocommerce-info, .woocommerce-error,
.wc-block-components-notice-banner {
  border: 1px solid var(--shb-line) !important; border-radius: var(--shb-radius-img) !important; background: var(--shb-white) !important;
  color: var(--shb-ink) !important; font-size: 15px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--shb-green) !important; }
.woocommerce-message a.button, .woocommerce-info a.button { float: right; }

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link), .wp-block-button__link, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
  min-height: 54px; padding: 0 28px !important; border: 1px solid var(--shb-ink) !important; border-radius: var(--shb-radius) !important;
  background: var(--shb-ink) !important; color: var(--shb-white) !important; font-family: var(--shb-sans) !important; font-size: 16px !important;
  font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; text-decoration: none !important;
  display: inline-flex; align-items: center; justify-content: center; box-shadow: none !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .wc-block-components-button:not(.is-link):hover { background: #3a3833 !important; }
.wc-block-components-text-input input, .wc-block-components-textarea, .wc-block-components-combobox input,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
  border: 1px solid var(--shb-line) !important; border-radius: var(--shb-radius) !important; background: var(--shb-white) !important;
  font-family: var(--shb-sans) !important;
}
.wc-block-components-text-input.is-active input:focus, .woocommerce form .form-row input.input-text:focus { border-color: var(--shb-ink) !important; box-shadow: none !important; }
.wc-block-cart__empty-cart__title, .wp-block-woocommerce-empty-cart-block h2 {
  font-family: var(--shb-serif) !important; font-weight: 400 !important; font-size: 28px !important;
}
.wc-block-components-product-name { color: var(--shb-ink) !important; font-weight: 500; text-decoration: none; }
.wc-block-components-totals-item__label, .wc-block-components-totals-item__value { font-size: 16px; }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-right: 48px; }

/* Shop archive (Butik) */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 24px; margin: 0 0 var(--shb-section); padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.shb-loopcard { width: auto !important; margin: 0 !important; float: none !important; display: flex; flex-direction: column; gap: 10px; }
.shb-loopcard__link { display: flex; flex-direction: column; gap: 16px; text-decoration: none; color: var(--shb-ink); }
.shb-loopcard__img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--shb-radius-img); }
.shb-loopcard__name { font-family: var(--shb-serif); font-size: 26px; letter-spacing: -0.02em; }
.shb-loopcard__note { margin: 0; font-size: 15px; }
.shb-loopcard__price { margin: 0; font-size: 17px; }
.shb-loopcard .shb-btn { align-self: flex-start; min-height: 50px; padding: 0 24px; font-size: 16px; }
@media (max-width: 767px) { .woocommerce ul.products { grid-template-columns: 1fr; } }

/* Contact form (shortcode) ================================================= */
.shb-form { display: grid; gap: 16px; margin: 0; max-width: none; }
.shb-form label { display: grid; gap: 6px; font-size: 15px; font-weight: 500; }
.shb-form input, .shb-form textarea {
  font: inherit; font-weight: 400; padding: 14px 16px; border: 1px solid var(--shb-line); border-radius: var(--shb-radius);
  background: var(--shb-white); color: var(--shb-ink);
}
.shb-form input:focus, .shb-form textarea:focus { outline: none; border-color: var(--shb-ink); box-shadow: 0 0 0 1px var(--shb-ink); }
.shb-form .shb-btn { justify-self: start; min-height: 54px; padding: 0 28px; font-size: 16px; }
.shb-form__ok { color: var(--shb-green); }
.shb-form__err { color: #8a2a2a; }

/* Blog (index + single post templates) ===================================== */
.shb-guide { box-sizing: border-box; max-width: var(--shb-wrap); margin: 0 auto; padding: 64px var(--shb-gutter) var(--shb-section); }
.shb-breadcrumb { font-size: 14px; color: var(--shb-muted); margin: 0 0 32px; }
.shb-breadcrumb .sep { margin: 0 0.35em; }
.shb-guide__article { max-width: 760px; }
.shb-guide__article > h1 {
  margin: 0 0 16px; font-family: var(--shb-serif); font-weight: 400; font-size: 56px; line-height: 1.05; letter-spacing: -0.02em; text-wrap: balance;
}
.shb-blog__head { display: flex; flex-direction: column; gap: 20px; margin-bottom: 72px; }
.shb-blog__head > h1 { margin: 0; }
.shb-blog__head > p:last-child { margin: 0; color: var(--shb-muted); font-size: 19px; }
.shb-blog__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.shb-blog__list .navigation { grid-column: 1 / -1; }
.shb-blog__card { display: flex; flex-direction: column; gap: 12px; padding-top: 24px; border-top: 1px solid var(--shb-ink); }
.shb-blog__card h2 { margin: 0; font-family: var(--shb-serif); font-weight: 400; font-size: 26px; line-height: 1.2; letter-spacing: -0.02em; }
.shb-blog__card h2 a { color: var(--shb-ink); text-decoration: none; }
.shb-blog__card h2 a:hover { color: var(--shb-accent); }
.shb-blog__card p { margin: 0; color: var(--shb-muted); }
.shb-blog__meta { font-size: 14px; color: var(--shb-muted); }
.single-post .shb-guide__article > .shb-blog__meta { margin: 0 0 48px; }
.single-post .shb-blog__meta a { color: var(--shb-ink); }
.single-post .shb-guide__article .elementor { max-width: 720px; }
@media (max-width: 1024px) { .shb-blog__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .shb-guide { padding-top: 40px; }
  .shb-guide__article > h1 { font-size: 36px; }
  .shb-blog__head { margin-bottom: 40px; }
  .shb-blog__list { grid-template-columns: 1fr; gap: 32px; }
}

/* PHP header/footer fallbacks (only when Elementor templates are missing) == */
.shb-footer__grid { max-width: var(--shb-wrap); margin: 0 auto; padding: 48px var(--shb-gutter); color: var(--shb-on-dark); background: var(--shb-footer); }
.shb-footer__grid a { color: var(--shb-on-dark); }

/* Header row: items centred in the 80/64 px bar */
.shb-header__main .e-grid { align-content: center; }
.shb-logo .elementor-widget { margin-bottom: 0 !important; }
.shb-logo .elementor-heading-title { line-height: 1.2; }

/* Wood choice stays three across on phones */
@media (max-width: 767px) {
  .shb-wood__opts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .shb-wood__opt span { padding: 8px 10px; font-size: 13px; }
  .shb-wood__opt strong { font-size: 14px; }
}

/* Headings rendered as <p> (eyebrows, prices, logo) must not take the kit's paragraph spacing */
.elementor-widget-heading p.elementor-heading-title { margin: 0; }

/* Total in the buy button never breaks onto its own line */
[data-shb-total] { white-space: nowrap; }

/* ==========================================================================
   QA round 1
   ========================================================================== */

/* Hello Elementor caps .site-main at 1140px on PHP templates; use the 1280 measure */
body:not([class*="elementor-page-"]) .shb-content .site-main { max-width: none; padding-left: 0; padding-right: 0; }
body:not([class*="elementor-page-"]) .shb-content .site-main.shb-guide {
  max-width: var(--shb-wrap); padding-left: var(--shb-gutter); padding-right: var(--shb-gutter);
}
.woocommerce-cart .shb-content > .site-main,
.woocommerce-checkout .shb-content > .site-main,
.woocommerce-account .shb-content > .site-main {
  max-width: var(--shb-wrap) !important; margin: 0 auto; padding-left: var(--shb-gutter) !important; padding-right: var(--shb-gutter) !important;
}

/* Header: button sits on the content edge */
.shb-tools .shb-header__buy { width: auto !important; flex: 0 0 auto; }

/* Headings marked centre on desktop, left on phones (design) */
@media (max-width: 767px) {
  .shb-left-m, .shb-left-m .elementor-heading-title, .shb-left-m p { text-align: left !important; }
}

/* Spec rows: single column, label left / value right on phones */
@media (max-width: 767px) {
  .shb-specs--m-inline { grid-template-columns: 1fr !important; }
  .shb-specs--m-inline > .shb-spec {
    flex-direction: row !important; justify-content: space-between; gap: 16px; align-items: baseline;
    padding: 16px 0 !important; border-left: 0 !important;
  }
}

/* "Passar den hos dig?": serif values on desktop, sans 600 on phones; band background on phones */
@media (max-width: 767px) {
  .shb-fit__value .elementor-heading-title { font-family: var(--shb-sans) !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0 !important; }
  .e-con.shb-band-m { background-color: var(--shb-band) !important; }
}

/* Square image break, edge to edge */
.shb-ratio-1x1 img { aspect-ratio: 1 / 1; height: auto !important; object-fit: cover; }
.shb-img--bleed img { border-radius: 0; }

/* FAQ: thin "+" glyph (weight 300) instead of the icon font */
.shb-faq .elementor-accordion-icon { display: none !important; }
.shb-faq .elementor-tab-title { font-weight: 400 !important; }
.shb-faq .elementor-tab-title a { font-weight: 400; }
.shb-faq .elementor-tab-title::after {
  content: "+"; order: 2; flex: none; font-family: var(--shb-sans); font-size: 28px; font-weight: 300; line-height: 1;
  transition: transform 0.2s ease;
}
.shb-faq .elementor-tab-title.elementor-active::after { transform: rotate(45deg); }
@media (max-width: 767px) { .shb-faq .elementor-tab-title::after { font-size: 26px; } }

/* Spec list inside the phone accordion */
.shb-acc-specs { margin: 0; }
.shb-acc-specs > div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; }
.shb-acc-specs dt { color: var(--shb-muted); }
.shb-acc-specs dd { margin: 0; text-align: right; color: var(--shb-ink); }

/* Product buy box: tighter rhythm (design) and no kit paragraph spacing */
.shb-pdp p { margin: 0; }
.shb-pdp__buy { gap: 24px; }
.shb-pdp__intro { gap: 12px; }
.shb-pdp__vat { margin-top: 4px !important; }
.woocommerce .shb-buyform, .shb-buyform { margin: 0 !important; gap: 20px; }
.shb-pdp__intro .shb-pdp__revlink { margin-top: 0; }
@media (min-width: 1025px) and (max-height: 1040px) { .shb-pdp__buy { position: static; } }

/* Gallery thumbnails: undo the global button style */
.shb-pdp .shb-pdp__thumb, .shb-pdp button.shb-pdp__thumb:hover, .shb-pdp button.shb-pdp__thumb:focus {
  min-height: 0 !important; padding: 0 !important; background: var(--shb-img) !important; color: inherit !important;
  border-radius: var(--shb-radius) !important; box-shadow: none !important;
}
.shb-pdp .shb-pdp__thumb { border: 1.5px solid transparent !important; }
.shb-pdp .shb-pdp__thumb[aria-pressed="true"] { border-color: var(--shb-ink) !important; }
.shb-pdp__thumb img { min-width: 100%; }

/* Reviews: upright captions; "Visa alla" under the list on phones */
.shb-review figcaption, .shb-review blockquote { font-style: normal; }
.shb-reviews__more--bottom { display: none; }
@media (max-width: 767px) {
  .shb-reviews__more--top { display: none; }
  .shb-reviews__more--bottom { display: flex; width: 100%; margin-top: 28px; min-height: 52px; }
}

/* Accessory page without photo: details aside instead of an empty half */
.shb-pdp__top--noimg { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); max-width: none; }
.shb-pdp__top--noimg .shb-pdp__buy { position: static; }
.shb-pdp__aside { display: flex; flex-direction: column; gap: 20px; padding: 40px; background: var(--shb-band); border-radius: var(--shb-radius-img); }
.shb-pdp__aside .shb-prose p { margin: 0 0 12px; }
.shb-pdp--acc .shb-pdp__crumbs { padding-top: 40px; }
@media (max-width: 1024px) { .shb-pdp__top--noimg { grid-template-columns: 1fr; } }
@media (max-width: 767px) {
  .shb-pdp__aside { margin: 0 24px; padding: 24px; }
  .shb-accessories--border .shb-accessories__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; margin-right: 0; padding-right: 0; overflow: visible; }
}

/* Tillbehör page: buttons share a baseline */
.shb-acc { height: 100%; }
.shb-acc > .elementor-widget-button { margin-top: auto; }

/* Footer on phones: compact link rows */
@media (max-width: 767px) {
  .shb-footer .elementor-icon-list-item a { min-height: 36px; }
  .shb-footer .elementor-icon-list-items .elementor-icon-list-item:not(:last-child) { padding-bottom: 0 !important; margin-bottom: 0 !important; }
}

/* WooCommerce account login and notices in the design's style */
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon, .woocommerce form.lost_reset_password {
  border: 1px solid var(--shb-line) !important; border-radius: var(--shb-radius-img) !important; padding: 32px !important; margin: 0 0 32px !important;
  background: var(--shb-white);
}
.woocommerce form .form-row label { font-size: 15px; font-weight: 500; }
.woocommerce form .form-row .required { color: var(--shb-accent); text-decoration: none; }
.woocommerce form.login .form-row:has(.woocommerce-form-login__rememberme) { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; }
.woocommerce-form-login__rememberme input { width: 18px; height: 18px; margin: 0; }
.woocommerce .lost_password { margin: 16px 0 0; }
.woocommerce .lost_password a { font-weight: 500; text-decoration: underline; text-underline-offset: 6px; }
.woocommerce-info, .woocommerce-message, .woocommerce-error, .cart-empty.woocommerce-info {
  padding: 20px 24px !important; background: var(--shb-band) !important; border: 0 !important; border-radius: var(--shb-radius-img) !important;
}
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { display: none !important; }
.woocommerce .return-to-shop { margin-top: 24px; }

/* Header button flush with the content edge */
.shb-header__buy .elementor-button-wrapper { display: flex; justify-content: flex-end; }

/* Woo pages: Hello's page header/content wrappers must not add their own inset */
.shb-content .page-header, .shb-content .page-content { max-width: none; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0; margin-right: 0; }
.shb-content .page-header .entry-title { padding: 0; }
.woocommerce-account .u-column1 > h2, .woocommerce-account .woocommerce > h2 {
  font-family: var(--shb-serif); font-weight: 400; font-size: 28px; letter-spacing: -0.02em; margin: 0 0 16px;
}
.woocommerce .lost_password { padding-left: 0; }
.shb-content .page-header .entry-title { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
.shb-header .shb-header__buy { text-align: right; }
.shb-header .shb-header__buy .elementor-button { margin-left: auto; }

.shb-ratio-5x4 img { aspect-ratio: 5 / 4; height: auto !important; object-fit: cover; }

/* Campaign label (temporary free shipping) */
.shb-tag {
  display: inline-block; margin-right: 8px; padding: 2px 8px; border-radius: 2px; background: var(--shb-accent); color: var(--shb-white);
  font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; vertical-align: 1px;
}
.shb-campaign { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 0; margin: 10px 0 0 !important; font-size: 14px; color: var(--shb-ink); }

/* ==========================================================================
   Cart and checkout (classic WooCommerce) in the design's style
   ========================================================================== */
.woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce { font-size: 16px; }
.woocommerce table.shop_table {
  border: 0 !important; border-radius: 0 !important; border-collapse: collapse !important; margin: 0 0 24px !important; background: transparent;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td {
  border: 0 !important; border-bottom: 1px solid var(--shb-line) !important; background: transparent !important; padding: 18px 12px !important; vertical-align: middle;
}
.woocommerce table.shop_table thead th {
  font-size: 13px; font-weight: 500; color: var(--shb-muted); padding-top: 0 !important; padding-bottom: 12px !important; border-bottom-color: var(--shb-ink) !important;
}
.woocommerce table.shop_table tr:nth-child(2n) td, .woocommerce table.shop_table tbody th { background: transparent !important; }
.woocommerce table.shop_table td:first-child, .woocommerce table.shop_table th:first-child { padding-left: 0 !important; }
.woocommerce table.shop_table td:last-child, .woocommerce table.shop_table th:last-child { padding-right: 0 !important; }
.woocommerce table.shop_table .product-name a { color: var(--shb-ink); font-weight: 500; text-decoration: none; }
.woocommerce table.shop_table .product-name a:hover { color: var(--shb-accent); }
.woocommerce table.shop_table .product-name .variation, .woocommerce table.shop_table .product-name dl { font-size: 14px; color: var(--shb-muted); }
.woocommerce table.cart img, .woocommerce table.shop_table .product-thumbnail img {
  width: 72px !important; height: 72px; object-fit: cover; border-radius: var(--shb-radius-img); background: var(--shb-img);
}
.woocommerce table.cart .product-thumbnail { width: 96px; }
.woocommerce a.remove {
  width: 32px !important; height: 32px !important; line-height: 30px !important; font-size: 22px !important; font-weight: 300 !important;
  color: var(--shb-muted) !important; border: 1px solid var(--shb-line); border-radius: 50% !important; background: transparent !important;
}
.woocommerce a.remove:hover { color: var(--shb-ink) !important; border-color: var(--shb-ink); background: transparent !important; }
.woocommerce .quantity input.qty { width: 64px !important; min-height: 44px; border-radius: var(--shb-radius) !important; text-align: center; }
.woocommerce table.cart td.actions { padding: 20px 0 0 !important; border-bottom: 0 !important; }
.woocommerce table.cart td.actions .coupon { display: flex; gap: 8px; align-items: center; }
.woocommerce table.cart td.actions .coupon .input-text {
  width: 220px !important; min-height: 48px; padding: 0 14px !important; margin: 0 !important; border: 1px solid var(--shb-line) !important;
  border-radius: var(--shb-radius) !important; background: var(--shb-white); font-size: 15px;
}
.woocommerce table.cart td.actions .button, .woocommerce button[name="update_cart"] {
  min-height: 48px !important; padding: 0 20px !important; font-size: 15px !important; background: transparent !important; color: var(--shb-ink) !important;
}
.woocommerce table.cart td.actions .button:hover { background: var(--shb-ink) !important; color: var(--shb-white) !important; }
.woocommerce button[name="update_cart"]:disabled { opacity: 0.4 !important; }

/* Cart: items left, summary card right */
@media (min-width: 1025px) {
  .woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 0 64px; align-items: start; }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  .woocommerce-cart .woocommerce > .cart-empty, .woocommerce-cart .woocommerce > .return-to-shop { grid-column: 1 / -1; }
}
.woocommerce .cart-collaterals { width: 100%; }
.woocommerce .cart-collaterals .cart_totals { float: none !important; width: 100% !important; padding: 32px; background: var(--shb-band); border-radius: var(--shb-radius-img); box-sizing: border-box; }
.woocommerce .cart_totals > h2 { margin: 0 0 16px; font-family: var(--shb-serif); font-weight: 400; font-size: 28px; letter-spacing: -0.02em; }
.woocommerce .cart_totals table.shop_table th { width: 40%; font-weight: 400; color: var(--shb-muted); }
.woocommerce .cart_totals table.shop_table td, .woocommerce .cart_totals table.shop_table th { border-bottom-color: var(--shb-line-band) !important; padding: 14px 0 !important; }
.woocommerce .cart_totals .order-total th, .woocommerce .cart_totals .order-total td { border-bottom: 0 !important; color: var(--shb-ink); font-size: 18px; }
.woocommerce .cart_totals .order-total .amount { font-family: var(--shb-serif); font-size: 24px; font-weight: 400; }
.woocommerce ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce ul#shipping_method li { margin: 0; padding: 0; }
.woocommerce-shipping-destination, .woocommerce-shipping-calculator { display: none !important; }
.woocommerce .wc-proceed-to-checkout { padding: 8px 0 0 !important; }
.woocommerce .wc-proceed-to-checkout a.checkout-button {
  display: flex !important; align-items: center; justify-content: center; width: 100%; min-height: 58px !important; margin: 0 !important;
  font-size: 17px !important; line-height: 1.2 !important;
}

/* Checkout: form left, order summary right */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info { margin-bottom: 12px !important; font-size: 15px; }
.woocommerce-checkout .woocommerce-info a { color: var(--shb-ink); font-weight: 500; text-underline-offset: 4px; }
@media (min-width: 1025px) {
  .woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 0 72px; align-items: start; margin-top: 24px; }
  .woocommerce form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
  .woocommerce form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
  .woocommerce form.checkout #order_review_heading, .woocommerce form.checkout #order_review { grid-column: 2; }
  .woocommerce form.checkout #order_review_heading { padding: 32px 32px 0; margin: 0 !important; background: var(--shb-band); border-radius: var(--shb-radius-img) var(--shb-radius-img) 0 0; }
  .woocommerce form.checkout #order_review { padding: 8px 32px 32px; background: var(--shb-band); border-radius: 0 0 var(--shb-radius-img) var(--shb-radius-img); }
}
.woocommerce form.checkout .col2-set .col-1, .woocommerce form.checkout .col2-set .col-2 { float: none !important; width: 100% !important; }
.woocommerce form.checkout .col2-set .col-2 { margin-top: 24px; }
.woocommerce-checkout h3, .woocommerce form.checkout #order_review_heading {
  margin: 0 0 20px; font-family: var(--shb-serif); font-weight: 400; font-size: 28px; letter-spacing: -0.02em;
}
.woocommerce form.checkout #ship-to-different-address { font-family: var(--shb-sans); font-size: 16px; font-weight: 500; letter-spacing: 0; }
.woocommerce form.checkout #ship-to-different-address label { display: inline-flex; align-items: center; gap: 10px; }
.woocommerce form .form-row { padding: 0 !important; margin: 0 0 16px !important; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px) !important; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce form .form-row .select2-container .select2-selection {
  min-height: 50px; padding: 12px 14px !important; font-size: 16px !important;
}
.woocommerce form .form-row textarea { min-height: 120px; }
.woocommerce form .form-row .woocommerce-input-wrapper strong { font-weight: 500; }
.woocommerce form .form-row label.checkbox, .woocommerce-form__label-for-checkbox { display: inline-flex !important; align-items: center; gap: 10px; }
.woocommerce form .form-row input[type="checkbox"] { width: 18px; height: 18px; margin: 0; }
#order_review table.shop_table th, #order_review table.shop_table td { border-bottom-color: var(--shb-line-band) !important; padding: 14px 0 !important; }
#order_review table.shop_table thead th { border-bottom-color: var(--shb-ink) !important; }
#order_review .product-quantity { color: var(--shb-muted); font-weight: 400; }
#order_review .order-total th, #order_review .order-total td { border-bottom: 0 !important; font-size: 18px; }
#order_review .order-total .amount { font-family: var(--shb-serif); font-size: 24px; font-weight: 400; }
.woocommerce-checkout #payment { background: transparent !important; border-radius: 0 !important; }
.woocommerce-checkout #payment ul.payment_methods { padding: 16px 0 !important; border-bottom: 1px solid var(--shb-line-band) !important; }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; font-weight: 500; }
.woocommerce-checkout #payment div.payment_box {
  margin: 12px 0 0 !important; padding: 14px 16px !important; background: var(--shb-white) !important; color: var(--shb-muted) !important;
  border-radius: var(--shb-radius) !important; font-size: 15px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #payment div.form-row.place-order { padding: 16px 0 0 !important; margin: 0 !important; }
.woocommerce-checkout .woocommerce-privacy-policy-text p { font-size: 14px; color: var(--shb-muted); margin: 0 0 16px; }
.woocommerce-checkout #place_order { width: 100%; min-height: 58px !important; font-size: 17px !important; float: none !important; }
@media (max-width: 1024px) {
  .woocommerce form.checkout #order_review_heading { margin-top: 40px !important; }
  .woocommerce form.checkout #order_review { padding: 0; }
}
@media (max-width: 767px) {
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100% !important; }
  .woocommerce table.shop_table_responsive tr td { padding: 10px 0 !important; text-align: right !important; }
  .woocommerce table.shop_table_responsive tr td::before { font-weight: 400; color: var(--shb-muted); }
  .woocommerce table.cart tr.cart_item { display: block; padding: 12px 0; border-bottom: 1px solid var(--shb-line); }
  .woocommerce table.cart tr.cart_item td { border-bottom: 0 !important; }
  .woocommerce table.cart td.product-thumbnail { display: block !important; text-align: left !important; }
  .woocommerce table.cart td.actions .coupon { flex-direction: column; align-items: stretch; }
  .woocommerce table.cart td.actions .coupon .input-text { width: 100% !important; }
  .woocommerce table.cart td.actions .button { width: 100%; margin-top: 8px !important; }
  .woocommerce .cart-collaterals .cart_totals { padding: 24px; margin-top: 32px; }
}

/* Cart rows on phones: thumbnail, name, quantity and sum as one compact card */
@media (max-width: 767px) {
  .woocommerce table.cart tr.cart_item {
    display: grid !important; grid-template-columns: 72px minmax(0, 1fr) auto; column-gap: 16px; row-gap: 6px;
    align-items: center; position: relative; padding: 20px 0 !important;
  }
  .woocommerce table.cart tr.cart_item td { display: block; padding: 0 !important; text-align: left !important; }
  .woocommerce table.cart tr.cart_item td::before { display: none !important; }
  .woocommerce table.cart td.product-remove { position: absolute; top: 18px; right: 0; }
  .woocommerce table.cart td.product-thumbnail { grid-column: 1; grid-row: 1 / span 2; display: block !important; }
  .woocommerce table.cart td.product-name { grid-column: 2 / 4; grid-row: 1; padding-right: 44px !important; }
  .woocommerce table.cart td.product-price { display: none !important; }
  .woocommerce table.cart td.product-quantity { grid-column: 2; grid-row: 2; }
  .woocommerce table.cart td.product-quantity:not(:has(input.qty[type="number"])) { visibility: hidden; }
  .woocommerce table.cart td.product-subtotal { grid-column: 3; grid-row: 2; text-align: right !important; }
  .woocommerce table.cart td.actions .button { width: 100%; }
  .woocommerce table.cart td.actions .coupon .button { margin-top: 0 !important; }
}
.woocommerce form .form-row input[type="checkbox"], #ship-to-different-address input { width: 18px !important; height: 18px !important; }
@media (max-width: 767px) { .woocommerce table.cart td.actions .coupon .button { width: 100% !important; } }
button.shb-reviews__more--bottom { display: none; }
@media (max-width: 767px) { button.shb-reviews__more--top { display: none; } button.shb-reviews__more--bottom { display: flex; } }

@media (max-width: 767px) { .shb-pdp--acc .shb-pdp__top > .shb-prose { padding: 0 24px; } }

/* Mobile menu panel: full width under the header, left-aligned rows */
@media (max-width: 1024px) {
  .shb-header { position: relative; }
  .shb-header .shb-header__main, .shb-header .shb-header__main > .e-con-inner, .shb-header .shb-header__main .e-grid { position: static !important; }
  .shb-header .shb-nav { left: 0 !important; right: 0 !important; top: 100% !important; padding: 8px 24px 24px !important; align-items: stretch !important; justify-content: flex-start !important; }
  .shb-header .shb-nav .elementor-widget-icon-list { width: 100%; }
  .shb-header .shb-nav__links .elementor-icon-list-items { justify-content: flex-start !important; width: 100%; }
  .shb-header .shb-nav__links .elementor-icon-list-item { width: 100%; justify-content: flex-start !important; }
  .shb-header .shb-nav__links .elementor-icon-list-item a { width: 100%; justify-content: flex-start; }
}
@media (max-width: 1024px) {
  .shb-header .shb-nav__links .elementor-icon-list-items { margin: 0 !important; }
  .shb-header .shb-nav__links .elementor-icon-list-item { padding: 0 !important; inset: auto !important; left: 0 !important; right: 0 !important; }
  .shb-header .shb-nav__links .elementor-icon-list-item::after { display: none !important; }
}
.shb-campaign { display: block !important; line-height: 1.6; }

/* ---------- 3D model (product page) ---------- */
.shb-3d { position: relative; background: var(--shb-tile, #E4DFD6); }
.shb-3d__viewer { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; background: transparent; --poster-color: transparent; --progress-bar-color: transparent; cursor: grab; }
.shb-3d__viewer:active { cursor: grabbing; }
.shb-3d__viewer:focus-visible { outline: 2px solid #1C1B19; outline-offset: 3px; }
.shb-3d__progress { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: transparent; }
.shb-3d__progress span { display: block; height: 100%; width: 0; background: #8A5A33; transition: width .2s; }
.shb-3d-widget .elementor-shortcode { line-height: 0; }
.shb-pdp__3dlink { display: inline-flex; align-items: center; gap: 10px; margin-top: 16px; font-size: 15px; color: #1C1B19; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #DDD8CE; }
.shb-pdp__3dlink:hover { color: #8A5A33; text-decoration-color: currentColor; }
@media (max-width: 767px) {
  .shb-3d__viewer { aspect-ratio: 1 / 1; }
  .shb-pdp__3dlink { margin: 12px 24px 0; }
}
