/* Gleichweit USA redesign - v2 preview theme only. One navy, one gold, one cream; serif headings, sans body. */
:root {
  --gw-navy: #1F2A36;
  --gw-navy-deep: #12161C;
  --gw-gold: #C9A84C;
  --gw-gold-text: #8A6B22;
  --gw-gold-light: #E3C77A;
  --gw-cream: #FAF7F1;
  --gw-line: #E8E1D3;
  --gw-ink: #1F2A36;
  --gw-muted: #4A5560;
  --gw-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --gw-sans: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- Type ---------- */
body { font-family: var(--gw-sans) !important; color: var(--gw-ink); background: var(--gw-cream); }
body :is(p, a, li, td, th, label, input, select, textarea, button, small, strong, em, dd, dt, blockquote, figcaption),
body .elementor-widget-text-editor, body .elementor-widget-text-editor *,
body .elementor-button, body .woocommerce, body .woocommerce * :not(.star-rating):not([class*="icon"]) {
  font-family: var(--gw-sans) !important;
}
body :is(h1, h2, h3),
body .elementor-heading-title,
body .product_title,
body .woocommerce-loop-product__title,
body .woocommerce-loop-category__title {
  font-family: var(--gw-serif) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  color: var(--gw-ink);
}
body h4, body h5, body h6 { font-family: var(--gw-sans) !important; font-weight: 700 !important; }
body .woocommerce-loop-product__title { font-size: 22px !important; line-height: 1.15 !important; }
body .product_title { font-size: clamp(34px, 6vw, 54px) !important; line-height: 1.02 !important; }

/* ---------- Links ---------- */
body a { color: var(--gw-ink); }
body a:hover { color: var(--gw-gold-text); }

/* ---------- Buttons: no underlines, readable contrast ---------- */
body .elementor-button,
body a.button, body button.button, body input.button,
body .wp-element-button,
body .woocommerce a.add_to_cart_button,
body .woocommerce a.product_type_variable,
body .woocommerce a.product_type_simple {
  background: var(--gw-gold) !important;
  color: var(--gw-navy) !important;
  border: 0 !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  min-height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 18px !important;
}
body .elementor-button * { text-decoration: none !important; color: inherit !important; }
body .single_add_to_cart_button,
body .checkout-button,
body #place_order,
body .woocommerce-cart .wc-proceed-to-checkout a {
  background: var(--gw-navy) !important;
  color: var(--gw-cream) !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
  min-height: 50px;
  text-decoration: none !important;
}
body .elementor-button:hover, body a.button:hover, body button.button:hover { filter: brightness(0.95); }

/* ---------- Header (theme-coded, replaces the Elementor header in v2) ---------- */
.gw-hdr { background: var(--gw-navy); color: var(--gw-cream); position: sticky; top: 0; z-index: 999; }
body.admin-bar .gw-hdr { top: 32px; }
@media (max-width: 782px) { body.admin-bar .gw-hdr { top: 46px; } }
.gw-hdr__bar { max-width: 1240px; margin: 0 auto; height: 64px; padding: 0 8px; display: flex; align-items: center; gap: 8px; }
.gw-ico { width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; color: var(--gw-cream) !important; cursor: pointer; position: relative; list-style: none; }
.gw-ico::-webkit-details-marker { display: none; }
.gw-ico:hover { color: var(--gw-gold-light) !important; }
.gw-logo { display: flex; align-items: center; gap: 8px; text-decoration: none !important; margin-right: auto; }
.gw-logo img { height: 36px; width: auto; display: block; }
.gw-logo__usa { font-family: var(--gw-serif) !important; font-weight: 600; font-size: 17px; letter-spacing: 2px; color: var(--gw-gold-light); }
.gw-desk { display: none; gap: 26px; margin-right: 12px; }
.gw-desk a { color: var(--gw-cream) !important; text-decoration: none !important; font-weight: 600; font-size: 16px; padding: 8px 0; }
.gw-desk a:hover { color: var(--gw-gold-light) !important; }
.gw-icons { display: flex; align-items: center; }
.gw-cart-count { position: absolute; top: 6px; right: 4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--gw-gold); color: var(--gw-navy); font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.gw-cart-count[hidden] { display: none; }

/* Mobile drawer */
.gw-nav { position: static; }
.gw-drawer { position: fixed; left: 0; right: 0; top: 64px; bottom: 0; background: var(--gw-navy); overflow-y: auto; padding: 8px 20px 32px; z-index: 998; border-top: 1px solid #33414f; }
body.admin-bar .gw-drawer { top: 96px; }
@media (max-width: 782px) { body.admin-bar .gw-drawer { top: 110px; } }
.gw-menu, .gw-menu ul { list-style: none; margin: 0; padding: 0; }
.gw-menu a { display: block; padding: 14px 0; color: var(--gw-cream) !important; text-decoration: none !important; font-size: 18px; font-weight: 600; border-bottom: 1px solid #33414f; }
.gw-menu .sub-menu a { padding-left: 16px; font-size: 16px; font-weight: 400; color: #D6CDBB !important; }
.gw-menu .sub-menu .sub-menu a { padding-left: 32px; }
.gw-drawer__mail { display: block; margin-top: 24px; color: var(--gw-gold-light) !important; font-weight: 600; }

@media (min-width: 1024px) {
  .gw-nav { display: none; }
  .gw-desk { display: flex; }
  .gw-hdr__bar { height: 76px; padding: 0 24px; }
  .gw-logo img { height: 44px; }
}

/* ---------- Small trust fixes ---------- */
body h2 .emoji, body h2 img.emoji { display: none !important; }

/* ---------- Phone fixes ---------- */
@media (max-width: 600px) {
  /* WP admin bar is not fixed on small screens, so the sticky header must sit at 0. */
  body.admin-bar .gw-hdr { top: 0; }
  body.admin-bar .gw-drawer { top: 64px; }
}
@media (max-width: 480px) {
  .gw-hdr__bar { gap: 2px; padding: 0 4px; }
  .gw-logo { gap: 5px; min-width: 0; }
  .gw-logo img { height: 28px; }
  .gw-logo__usa { font-size: 14px; letter-spacing: 1px; }
  .gw-ico--search { display: none; }
  .gw-ico { width: 44px; height: 44px; }
}

/* Drawer anchored to the header itself (works with or without the admin bar). */
.gw-drawer, body.admin-bar .gw-drawer { position: absolute; top: 100%; left: 0; right: 0; bottom: auto; height: calc(100vh - 64px); height: calc(100dvh - 64px); }

/* =================== Homepage v2 =================== */
.gw-v2-hero, .gw-v2-band { --pad: clamp(20px, 4vw, 24px); }
.gw-v2-hero > .e-con-inner, .gw-v2-band > .e-con-inner { max-width: 1200px; margin: 0 auto; }
.e-con.gw-v2-hero { max-width: 1200px; margin: 0 auto; padding: 48px var(--pad) 56px; gap: 48px; flex-wrap: wrap; align-items: center; flex-direction: row-reverse; }
.e-con.gw-v2-hero__img { flex: 1 1 420px; min-width: 0; height: 540px; border-radius: 6px; overflow: hidden; background: var(--gw-navy-deep); padding: 0; }
.e-con.gw-v2-hero__txt { flex: 1 1 440px; min-width: 0; gap: 16px; padding: 0; }
.gw-v2-cover, .gw-v2-cover .elementor-widget-container, .gw-v2-cover a { height: 100%; width: 100%; }
.gw-v2-cover img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; border-radius: inherit; }
.gw-kicker { font-size: 13px; font-weight: 700; letter-spacing: 3px; color: var(--gw-gold-text); }
.gw-kicker p, .gw-lead p, .gw-trust p, .gw-link p, .gw-ticks p { margin: 0; }
.gw-v2-h1 .elementor-heading-title { font-size: clamp(38px, 5.4vw, 64px) !important; line-height: 1.02 !important; }
.gw-v2-h2 .elementor-heading-title { font-size: clamp(30px, 4vw, 44px) !important; line-height: 1.05 !important; }
.gw-v2-h3 .elementor-heading-title { font-size: clamp(24px, 3vw, 30px) !important; line-height: 1.1 !important; }
.gw-lead { font-size: clamp(17px, 2vw, 20px); color: #3D4752; max-width: 560px; }
.gw-trust { font-size: 14px; color: var(--gw-muted); }
.e-con.gw-btn-row { flex-wrap: wrap; gap: 12px; padding: 4px 0 0; }
.gw-btn-row .elementor-widget-button { flex: 1 1 220px; }
.gw-btn-row .elementor-button { width: 100%; min-height: 52px; font-size: 16px; }
body .gw-btn-primary .elementor-button { background: var(--gw-navy) !important; color: var(--gw-cream) !important; }
body .gw-btn-ghost .elementor-button { background: transparent !important; color: var(--gw-navy) !important; box-shadow: inset 0 0 0 2px var(--gw-navy); }
body .gw-btn-light .elementor-button { background: var(--gw-cream) !important; color: var(--gw-navy) !important; }
.gw-center, .gw-center .elementor-heading-title { text-align: center; }
.gw-link a { font-weight: 600; color: var(--gw-navy); text-decoration: none; }
.gw-link a:hover { color: var(--gw-gold-text); }
.gw-link-row a { display: inline-block; margin: 0 22px 8px 0; }

.e-con.gw-v2-band { padding: 56px 0; gap: 24px; }
.e-con.gw-v2-band > * { width: 100%; max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: var(--pad); padding-right: var(--pad); box-sizing: border-box; }
.e-con.gw-v2-white { background: #FFFFFF; border-top: 1px solid var(--gw-line); border-bottom: 1px solid var(--gw-line); }
.e-con.gw-v2-navy { background: var(--gw-navy); }
.gw-v2-navy .elementor-heading-title, .gw-v2-navy .gw-lead { color: var(--gw-cream) !important; }
.gw-v2-navy .gw-lead { color: #D6CDBB !important; }
.gw-v2-navy .gw-kicker { color: var(--gw-gold-light); }

.e-con.gw-v2-artists { flex-wrap: wrap; gap: 20px; }
.e-con.gw-v2-artist { flex: 1 1 300px; align-items: center; gap: 14px; padding: 0; }
.gw-v2-avatar { width: 72px !important; flex-shrink: 0; }
.gw-v2-avatar img { width: 72px !important; height: 72px !important; border-radius: 36px; object-fit: cover; }

.e-con.gw-v2-head-row { justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.e-con.gw-v2-head-row > * { width: auto; }
.gw-v2-products ul.products { margin: 0 !important; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.gw-v2-products ul.products::before, .gw-v2-products ul.products::after { display: none !important; }
.gw-v2-products ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; background: #fff; border: 1px solid var(--gw-line); border-radius: 6px; padding: 0 0 16px !important; overflow: hidden; display: flex; flex-direction: column; }
.gw-v2-products li.product img { background: #F1F1F0; aspect-ratio: 1 / 1; object-fit: contain; margin: 0 0 12px !important; }
.gw-v2-products li.product .woocommerce-loop-product__title, .gw-v2-products li.product .price { padding: 0 16px !important; }
.gw-v2-products li.product .button { margin: auto 16px 0 !important; }

.e-con.gw-v2-find { flex-wrap: wrap; gap: 20px; align-items: stretch; }
.e-con.gw-v2-find__mm { flex: 3 1 420px; min-width: 0; gap: 12px; padding: 24px; background: #2A3644; border-radius: 6px; }
.e-con.gw-v2-find__tb { flex: 2 1 300px; min-width: 0; gap: 10px; padding: 24px; border: 1px solid #4A5866; border-radius: 6px; color: #D6CDBB; }
.gw-v2-tb-img img { width: 100%; height: 200px; object-fit: cover; object-position: 50% 70%; border-radius: 4px; }
.gw-v2-find__mm .gwm-sub { color: #D6CDBB; }

.e-con.gw-v2-cats { flex-wrap: wrap; gap: 20px; }
.e-con.gw-v2-cat { flex: 1 1 240px; min-width: 0; gap: 10px; padding: 0; }
.gw-v2-cat .gw-v2-cover { height: 320px; border-radius: 6px; overflow: hidden; }
.gw-v2-cat__t .elementor-heading-title, .gw-v2-cat__t a { font-size: 22px !important; color: var(--gw-navy) !important; text-decoration: none !important; }
.gw-ticks { font-size: 16px; line-height: 1.9; }

@media (max-width: 1024px) { .gw-v2-products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .e-con.gw-v2-hero { padding: 0 0 28px; gap: 20px; }
  .e-con.gw-v2-hero__img { flex-basis: 100%; height: 300px; border-radius: 0; }
  .e-con.gw-v2-hero__txt { padding: 0 20px; }
  .e-con.gw-v2-band { padding: 36px 0; }
  .e-con.gw-v2-artists { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
  .e-con.gw-v2-artist { flex: 0 0 280px; scroll-snap-align: start; background: var(--gw-cream); border-radius: 6px; padding: 14px; }
  .gw-v2-products ul.products { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 210px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .gw-v2-products li.product { scroll-snap-align: start; }
  .e-con.gw-v2-cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .gw-v2-cat .gw-v2-cover { height: 190px; }
  .gw-v2-cat__t .elementor-heading-title, .gw-v2-cat__t a { font-size: 18px !important; }
}

/* =================== Footer v2 =================== */
.gw-ftr { background: var(--gw-navy); color: #D6CDBB; font-size: 15px; margin-top: 0; }
.gw-ftr__in { max-width: 1200px; margin: 0 auto; padding: 48px 20px 28px; display: flex; flex-wrap: wrap; gap: 32px 40px; }
.gw-ftr__brand { flex: 2 1 260px; display: flex; flex-direction: column; gap: 10px; }
.gw-ftr__brand img { height: 40px; width: auto; align-self: flex-start; }
.gw-ftr__brand p { margin: 0; }
.gw-ftr a { color: #FAF7F1 !important; text-decoration: none !important; }
.gw-ftr a:hover { color: var(--gw-gold-light) !important; }
.gw-ftr__brand a[href^="mailto"] { font-weight: 600; }
.gw-ftr__social a { margin-right: 16px; }
.gw-ftr__col { flex: 1 1 150px; display: flex; flex-direction: column; gap: 6px; }
.gw-ftr__col h2 { font-family: var(--gw-sans) !important; font-size: 13px !important; letter-spacing: 2px; text-transform: uppercase; color: var(--gw-gold-light) !important; margin: 0 0 6px; font-weight: 700 !important; }
.gw-ftr__col a { color: #D6CDBB !important; padding: 4px 0; }
.gw-ftr__legal { max-width: 1200px; margin: 0 auto; padding: 16px 20px 28px; border-top: 1px solid #33414f; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; font-size: 13px; color: #B9B0A0; }
.gw-ftr__legal a { color: #B9B0A0 !important; margin-left: 14px; }
@media (max-width: 600px) { .gw-ftr__col { flex: 1 1 40%; } .gw-ftr__legal a { margin: 0 14px 0 0; } }

/* =================== Shop grids & Mouthpieces page (v2) =================== */
/* Product cards everywhere (category pages, homepage, related products) */
body ul.products li.product { background: #fff; border: 1px solid var(--gw-line); border-radius: 6px; overflow: hidden; padding-bottom: 16px !important; text-align: left; }
body ul.products li.product a img { background: #F1F1F0; aspect-ratio: 1 / 1; object-fit: contain; margin: 0 0 12px !important; }
body ul.products li.product .woocommerce-loop-product__title { padding: 0 16px !important; }
body ul.products li.product .price { padding: 0 16px; color: var(--gw-ink) !important; font-weight: 700; font-size: 17px; }
body ul.products li.product .button { margin: 12px 16px 0 !important; }
body ul.products li.product .onsale { background: var(--gw-gold) !important; color: var(--gw-navy) !important; border-radius: 3px !important; min-height: 0; line-height: 1.6; padding: 2px 8px !important; font-weight: 700; }
.gw-specs { display: flex; gap: 14px; padding: 4px 16px 6px; font-size: 14px; color: var(--gw-muted); }
.gw-specs strong { color: var(--gw-ink); }

/* Mouthpieces archive */
.mcs-mp-wrap { padding: 0 20px; }
.gw-mp-intro { margin: 4px 0 14px; }
.gw-mp-lead { font-size: clamp(16px, 2vw, 19px); color: #3D4752; max-width: 640px; margin: 0 0 8px; }
.gw-mp-facts { display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 14px; color: var(--gw-gold-text); font-weight: 600; margin: 0; }
a.gw-mp-help { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--gw-gold); color: var(--gw-navy) !important; text-decoration: none !important; border-radius: 6px; padding: 14px 16px; margin: 0 0 16px; font-size: 15px; }
.gw-mp-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 12px; scrollbar-width: none; }
.gw-mp-chips a { flex-shrink: 0; min-height: 40px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 999px; border: 1px solid #D9CFBC; background: #fff; color: var(--gw-navy) !important; text-decoration: none !important; font-weight: 600; font-size: 15px; }
.gw-mp-chips a:first-child { background: var(--gw-navy); color: var(--gw-cream) !important; border-color: var(--gw-navy); }
.gw-mp-tips { position: sticky; top: 64px; z-index: 5; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; background: #fff; border: 1px solid #D9CFBC; border-radius: 8px; padding: 3px; margin: 0 0 24px; }
body.admin-bar .gw-mp-tips { top: 96px; }
.gw-mp-tips a { display: flex; flex-direction: column; align-items: center; padding: 8px 4px; border-radius: 6px; text-decoration: none !important; color: var(--gw-navy) !important; line-height: 1.2; }
.gw-mp-tips a span { font-size: 12px; color: var(--gw-muted); }
.gw-mp-tips a:hover { background: var(--gw-cream); }
.mcs-mp-sec, .mcs-mp-grouphead { scroll-margin-top: 150px; }
.mcs-mp-head { border-bottom-color: var(--gw-gold) !important; }
.mcs-mp-all { color: var(--gw-gold-text) !important; font-weight: 600; }
.mcs-mp-grouphead h2, .mcs-mp-head h2 { font-family: var(--gw-serif) !important; }
.mcs-mp-head h3 { font-family: var(--gw-sans) !important; }
@media (min-width: 1024px) { .gw-mp-tips { top: 76px; max-width: 640px; } body.admin-bar .gw-mp-tips { top: 108px; } }
@media (max-width: 600px) { body.admin-bar .gw-mp-tips { top: 64px; } }
@media (max-width: 767px) {
  body ul.products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  body ul.products::before, body ul.products::after { display: none !important; }
  body ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }
  body ul.products li.product .woocommerce-loop-product__title { font-size: 19px !important; padding: 0 10px !important; }
  body ul.products li.product .price, .gw-specs { padding-left: 10px; padding-right: 10px; }
  .gw-specs { flex-direction: column; gap: 0; font-size: 13px; }
  body ul.products li.product .button { margin: 10px 10px 0 !important; font-size: 14px; padding: 8px 10px !important; }
}

/* =================== Product page (v2) =================== */
.gw-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; padding: 0 !important; margin: -1px !important; }
body.single-product .custom-product-title, body.single-product .product_title { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: clamp(34px, 6vw, 52px) !important; line-height: 1.02 !important; margin: 0 0 6px; color: var(--gw-ink); }
body.single-product .product-subtitle { font-family: var(--gw-sans) !important; font-size: 16px !important; font-weight: 400 !important; color: var(--gw-muted) !important; margin: 0 0 10px; }
.gw-specs--single { padding: 4px 0 12px; gap: 8px; flex-wrap: wrap; }
.gw-specs--single span { background: #fff; border: 1px solid var(--gw-line); border-radius: 4px; padding: 5px 10px; }
body.single-product .summary .price { font-size: 28px !important; font-weight: 700; color: var(--gw-ink) !important; }

/* Variation rows: label above, cards below */
body.single-product table.variations, body.single-product table.variations tbody, body.single-product table.variations tr, body.single-product table.variations th, body.single-product table.variations td { display: block; width: 100%; padding: 0; border: 0; background: none; }
body.single-product table.variations tr { margin: 0 0 14px; }
body.single-product table.variations th label { font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gw-ink); margin: 0 0 8px; display: block; }
.gw-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.gw-opts--version { display: grid; grid-template-columns: 1fr; }
.gw-opt { min-height: 48px; padding: 8px 14px; border: 2px solid #E0D7C5; border-radius: 6px; background: #fff; color: var(--gw-ink); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; text-align: left; display: flex; align-items: center; gap: 10px; }
.gw-opts--version .gw-opt { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "t p" "d p"; row-gap: 0; padding: 10px 14px; }
.gw-opt__t { grid-area: t; }
.gw-opt__d { grid-area: d; font-size: 13px; font-weight: 400; color: var(--gw-muted); }
.gw-opt__p { grid-area: p; font-weight: 700; align-self: center; }
.gw-opt.is-on { border-color: var(--gw-navy); box-shadow: inset 0 0 0 2px var(--gw-gold); }
.gw-opt:disabled { opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.gw-opt:focus-visible { outline: 3px solid var(--gw-gold); outline-offset: 2px; }
.gw-attn { animation: gw-attn .7s ease 2; }
@keyframes gw-attn { 50% { transform: translateX(4px); } }
body.single-product .reset_variations { font-size: 14px; color: var(--gw-muted) !important; }
body.single-product .single_variation_wrap .woocommerce-variation-price .price { font-size: 26px !important; }
body.single-product form.cart .quantity input.qty { min-height: 50px; border-radius: 4px; border: 1px solid #C9BFAA; }
body.single-product .single_add_to_cart_button { min-height: 52px !important; padding: 0 28px !important; font-size: 17px !important; }
body.single-product .single_add_to_cart_button.disabled { opacity: .55 !important; }

/* "Test before buying" block from the theme */
#testen { background: #F3EBD6; border-radius: 6px; padding: 14px 16px; margin: 16px 0; }
#testen p { margin: 0 0 8px; }
#testen .testen-price { font-weight: 700; font-size: 18px; }
#testen-form { display: flex; gap: 8px; flex-wrap: wrap; }
#testen-form .custom-quantity { width: 70px; min-height: 46px; border-radius: 4px; border: 1px solid #C9BFAA; }
#testen-form .custom-add-to-cart { min-height: 46px; background: var(--gw-gold); color: var(--gw-navy); border: 0; border-radius: 4px; font-weight: 700; padding: 0 18px; }
#testen a { display: inline-block; margin-top: 8px; font-size: 14px; }

/* Sticky buy bar (phones only) */
.gw-buybar { display: none; }
@media (max-width: 767px) {
  .gw-buybar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 990; background: #fff; border-top: 1px solid #E0D7C5; box-shadow: 0 -6px 16px rgba(31,42,54,.08); padding: 10px 14px calc(12px + env(safe-area-inset-bottom)); gap: 12px; align-items: center; transform: translateY(110%); transition: transform .2s ease; }
  .gw-buybar.is-shown { transform: none; }
  .gw-buybar__p { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
  .gw-buybar__v { font-size: 12px; color: var(--gw-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 150px; }
  .gw-buybar__price { font-size: 20px; }
  .gw-buybar__btn { flex: 1; min-height: 50px; background: var(--gw-navy); color: var(--gw-cream); border: 0; border-radius: 4px; font: inherit; font-weight: 700; font-size: 17px; }
  body.single-product { padding-bottom: 80px; }
}

/* ---- Product page fixes (buy row alignment, contrast, spacing) ---- */
body.single-product .summary > * { margin-top: 0; margin-bottom: 14px; }
body.single-product .summary .woocommerce-product-details__short-description p { margin: 0 0 8px; }
body.single-product table.variations { margin: 0 0 6px !important; }
body.single-product table.variations tr { margin: 0 0 10px; }
body.single-product table.variations tr.gw-row-auto { display: none !important; }
body.single-product .single_variation_wrap { margin: 0 !important; }
body.single-product .woocommerce-variation.single_variation { margin: 0 0 8px; }
body.single-product .woocommerce-variation-add-to-cart,
body.single-product form.cart:not(.variations_form) { display: flex !important; flex-wrap: wrap; gap: 10px; align-items: stretch; margin: 0 0 6px; }
body.single-product form.cart .quantity { margin: 0 !important; float: none !important; flex: 0 0 76px; }
body.single-product form.cart .quantity input.qty { width: 76px !important; height: 52px !important; min-height: 52px; padding: 0 !important; text-align: center; font-size: 17px; border: 1px solid #C9BFAA !important; border-radius: 4px !important; background: #fff; }
body.single-product form.cart .single_add_to_cart_button,
body.single-product form.cart .pisol_buy_now_button {
  flex: 1 1 150px; height: 52px !important; min-height: 52px !important; margin: 0 !important; float: none !important; vertical-align: top;
  display: inline-flex !important; align-items: center; justify-content: center; padding: 0 18px !important;
  border-radius: 4px !important; font-size: 17px !important; font-weight: 700 !important; line-height: 1 !important; text-decoration: none !important;
}
body.single-product form.cart .single_add_to_cart_button,
body.single-product form.cart .single_add_to_cart_button.disabled,
body.single-product form.cart .single_add_to_cart_button.wc-variation-selection-needed {
  background: var(--gw-navy) !important; color: var(--gw-cream) !important; border: 0 !important;
}
body.single-product form.cart .single_add_to_cart_button.disabled,
body.single-product form.cart .single_add_to_cart_button.wc-variation-selection-needed { opacity: .6 !important; }
body.single-product form.cart .pisol_buy_now_button,
body.single-product form.cart .pisol_buy_now_button.disabled {
  background: #fff !important; color: var(--gw-navy) !important; border: 0 !important; box-shadow: inset 0 0 0 2px var(--gw-navy) !important; opacity: 1 !important;
}
body.single-product form.cart .pisol_buy_now_button.disabled { opacity: .6 !important; }
#testen-form .custom-add-to-cart, #testen .custom-add-to-cart { background: var(--gw-gold) !important; color: var(--gw-navy) !important; opacity: 1 !important; font-size: 16px !important; min-height: 48px !important; border-radius: 4px !important; }
#testen { text-align: left; }
#testen-form { justify-content: flex-start; }
#testen-form .custom-quantity { border-radius: 4px !important; text-align: center; }
body.single-product .product_meta { font-size: 14px; color: var(--gw-muted); }
@media (max-width: 767px) {
  body.single-product form.cart .single_add_to_cart_button, body.single-product form.cart .pisol_buy_now_button { flex: 1 1 calc(50% - 50px); font-size: 16px !important; padding: 0 10px !important; }
}

/* ---- Product page: buy section first, extras after (so paying needs no scroll) ---- */
body.single-product div.product .summary { display: flex !important; flex-direction: column; }
body.single-product .summary > .custom-product-title { order: 1; margin-bottom: 6px; }
body.single-product .summary > .gw-specs { order: 2; }
body.single-product .summary > .price { order: 3; margin-bottom: 4px; }
body.single-product .summary > .woocommerce-product-rating { order: 4; margin-bottom: 10px; font-size: 14px; }
body.single-product .summary > form.cart { order: 5; }
body.single-product .summary > #wc-stripe-express-checkout-element { order: 6; }
body.single-product .summary > .product_meta { order: 7; border: 0; padding: 0; margin: 4px 0 12px; }
body.single-product .summary > div:not([class]):not([id]) { order: 8; font-size: 13px; color: var(--gw-muted); }
body.single-product .summary > .ppc-button-wrapper { order: 9; }
body.single-product .summary > .woocommerce-product-details__short-description { order: 10; margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--gw-line); }
body.single-product .summary > .mcs-testbox-banner { order: 11; }
body.single-product .summary > * { order: 20; }
/* Categories / SKU / tags: not needed to buy */
body.single-product .product_meta .sku_wrapper,
body.single-product .product_meta .posted_in,
body.single-product .product_meta .tagged_as { display: none !important; }
/* Test-before-buying block: one compact line under the buy buttons */
body.single-product .product_meta #testen { margin: 0 !important; padding: 12px 14px !important; border-radius: 6px; }

/* ---- Product cards: no fixed height (old theme forced 470/490px and cut off the buttons) ---- */
body ul.products li.product,
body .products.columns-3 li.product,
body .products.columns-4 li.product { height: auto !important; min-height: 0 !important; display: flex !important; flex-direction: column !important; justify-content: flex-start !important; position: relative; }
body ul.products li.product > a.woocommerce-LoopProduct-link { display: block; }
body ul.products li.product .button,
body ul.products li.product .added_to_cart { margin: auto 16px 0 !important; align-self: center; position: relative; z-index: 1; }
body ul.products li.product .price { display: block; margin-bottom: 12px !important; }
/* Tip / facing on one line: "1.04 mm tip · 21 mm facing" */
.gw-specs { flex-direction: row !important; flex-wrap: wrap; gap: 4px 12px !important; justify-content: center; }
.gw-specs span, .gw-specs strong { display: inline !important; }
.gw-specs strong { color: var(--gw-navy); }
.gw-specs--single { justify-content: flex-start; }
/* Sale badge stays under the sticky Closed/Medium/Open bar */
body ul.products li.product .onsale { z-index: 2 !important; }
.gw-mp-tips { z-index: 30 !important; }

/* =================== Test Box page (v2) =================== */
.gw-tb { max-width: 1120px; margin: 0 auto; padding: 0 20px 40px; color: var(--gw-navy); }
.gw-tb h1, .gw-tb h2, .gw-tb h3 { font-family: 'Cormorant Garamond', serif; font-weight: 600; color: var(--gw-navy); }
.gw-tb-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; padding: 32px 0 24px; }
.gw-tb-hero__media img { width: 100%; height: auto; max-height: 460px; object-fit: cover; border-radius: 8px; display: block; }
.gw-tb-kicker { font-size: 13px; font-weight: 700; letter-spacing: 3px; color: var(--gw-gold-text); }
.gw-tb-hero h1 { font-size: 52px; line-height: 1.02; margin: 10px 0 14px; }
.gw-tb-lead { font-size: 18px; color: var(--gw-muted); margin: 0 0 20px; }
.gw-tb-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 22px; background: var(--gw-gold); color: var(--gw-navy) !important; font-weight: 700; font-size: 17px; border-radius: 4px; text-decoration: none !important; }
.gw-tb-btn:hover { background: var(--gw-gold-light); }
.gw-tb-steps { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.gw-tb-steps li { background: #fff; border: 1px solid var(--gw-line); border-radius: 6px; padding: 16px; display: flex; gap: 10px; font-size: 15px; line-height: 1.4; }
.gw-tb-steps strong { color: var(--gw-gold-text); font-size: 20px; line-height: 1; }
.gw-tb-steps li.is-dark { background: var(--gw-navy); color: var(--gw-cream); border-color: var(--gw-navy); }
.gw-tb-steps li.is-dark strong { color: var(--gw-gold-light); }
.gw-tb-boxes { padding: 40px 0 8px; scroll-margin-top: 90px; }
.gw-tb-boxes h2, .gw-tb-faq h2 { font-size: 36px; margin: 0 0 16px; }
.gw-tb-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: #fff; border: 1px solid #D9CFBC; border-radius: 8px; padding: 4px; max-width: 640px; }
.gw-tb-tabs button { min-height: 44px; border: 0; border-radius: 6px; background: transparent; color: var(--gw-navy); font: inherit; font-weight: 600; font-size: 16px; cursor: pointer; }
.gw-tb-tabs button[aria-selected="true"] { background: var(--gw-navy); color: var(--gw-cream); }
.gw-tb-tabs button:focus-visible { outline: 2px solid var(--gw-gold); outline-offset: 2px; }
.gw-tb-panel { margin-top: 14px; background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; padding: 22px 24px; }
.gw-tb-panel__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.gw-tb-panel__head h3 { font-size: 30px; margin: 0; }
.gw-tb-range { font-weight: 600; font-size: 15px; }
.gw-tb-badge { background: var(--gw-gold); color: var(--gw-navy); font-size: 11px; font-weight: 700; letter-spacing: 1px; padding: 3px 8px; border-radius: 3px; align-self: center; }
.gw-tb-who { margin: 6px 0 10px; color: var(--gw-muted); }
.gw-tb-scale { display: flex; align-items: center; gap: 10px; margin: 6px 0 12px; font-size: 12px; color: var(--gw-muted); }
.gw-tb-scale__line { position: relative; flex: 1; height: 2px; background: var(--gw-line); }
.gw-tb-dot { position: absolute; top: -6px; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: var(--gw-navy); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--gw-navy); }
.gw-tb-models { list-style: none; margin: 0; padding: 0; }
.gw-tb-models li { display: grid; grid-template-columns: 70px 80px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px dashed #E0D7C5; font-size: 15px; }
.gw-tb-models__n { font-weight: 700; }
.gw-tb-models__n a { color: var(--gw-navy); }
.gw-tb-models__c { color: var(--gw-muted); }
.gw-tb-reeds { font-size: 14px; color: var(--gw-muted); margin: 12px 0 0; }
.gw-tb-order { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 18px; }
.gw-tb-more { color: var(--gw-navy); font-weight: 600; }
.gw-tb-faq { padding: 36px 0 0; max-width: 760px; }
.gw-tb-faq details { border-bottom: 1px solid var(--gw-line); padding: 14px 0; }
.gw-tb-faq summary { font-weight: 700; font-size: 17px; cursor: pointer; }
.gw-tb-faq p { margin: 10px 0 0; color: var(--gw-muted); }
.gw-tb-costs { width: 100%; margin: 10px 0 0; border-collapse: collapse; font-size: 15px; }
.gw-tb-costs td { padding: 8px 6px; border-bottom: 1px solid var(--gw-line); vertical-align: top; }
.gw-tb-costs td:nth-child(2) { font-weight: 700; white-space: nowrap; }
.gw-tb-terms { font-size: 14px; }
.gw-tb-bar { display: none; }
@media (max-width: 767px) {
  .gw-tb { padding: 0 0 90px; }
  .gw-tb-hero { grid-template-columns: 1fr; gap: 0; padding: 0; }
  .gw-tb-hero__media img { max-height: 240px; border-radius: 0; }
  .gw-tb-hero__text { padding: 18px 20px 4px; }
  .gw-tb-hero h1 { font-size: 36px; }
  .gw-tb-lead { font-size: 16px; }
  .gw-tb-hero .gw-tb-btn { display: none; }
  .gw-tb-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 8px 20px 0; }
  .gw-tb-steps li { padding: 12px; font-size: 14px; }
  .gw-tb-boxes, .gw-tb-faq { padding-left: 20px; padding-right: 20px; }
  .gw-tb-boxes h2, .gw-tb-faq h2 { font-size: 28px; }
  .gw-tb-panel { padding: 16px; }
  .gw-tb-panel__head h3 { font-size: 26px; }
  .gw-tb-models li { grid-template-columns: 56px 70px; }
  .gw-tb-models__c { grid-column: 1 / -1; font-size: 13px; margin-top: -4px; }
  .gw-tb-order .gw-tb-btn { width: 100%; }
  .gw-tb-bar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: #fff; border-top: 1px solid #E0D7C5; padding: 10px 16px 14px; align-items: center; gap: 12px; box-shadow: 0 -6px 16px rgba(31,42,54,.08); }
  .gw-tb-bar__p { display: flex; flex-direction: column; line-height: 1.15; }
  .gw-tb-bar__n { font-size: 12px; color: var(--gw-muted); }
  .gw-tb-bar__p strong { font-size: 22px; }
  .gw-tb-bar__btn { flex: 1; }
}

/* Colour swatches on option cards */
.gw-opt--swatch { flex-direction: row !important; align-items: center; gap: 8px; }
.gw-sw { width: 18px; height: 18px; border-radius: 50%; flex: 0 0 18px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.25); }
.gw-opt--swatch:disabled .gw-sw { opacity: .35; }

/* ---- Star ratings: keep WooCommerce's star font (the global font rule turned them into letters) ---- */
body .star-rating, body .star-rating span, body .star-rating::before, body .star-rating span::before,
body .woocommerce .star-rating, body .woocommerce .star-rating span { font-family: 'star' !important; }
body .star-rating { color: var(--gw-gold) !important; }
body .star-rating::before { color: #D9CFBC !important; }
body ul.products li.product .star-rating { float: none !important; margin: 4px auto 6px !important; font-size: 14px !important; }
/* Card text centred and the name in the serif everywhere */
body ul.products li.product { text-align: center !important; }
body ul.products li.product h2.woocommerce-loop-product__title,
body ul.products li.product .woocommerce-loop-product__title { font-family: var(--gw-serif) !important; font-weight: 600 !important; text-align: center !important; }
body ul.products li.product .price { text-align: center !important; }

/* =================== Artists page (v2) =================== */
.gw-art { max-width: 1180px; margin: 0 auto; padding: 0 20px 48px; color: var(--gw-navy); }
.gw-art h1, .gw-art h2, .gw-art h3 { font-family: var(--gw-serif) !important; font-weight: 600; color: var(--gw-navy); }
.gw-art-hero { padding: 48px 0 24px; max-width: 900px; }
.gw-art-kicker { font-size: 13px; font-weight: 700; letter-spacing: 3px; color: var(--gw-gold-text); }
.gw-art-hero h1 { font-size: clamp(34px, 5vw, 54px); line-height: 1.04; margin: 10px 0 14px; }
.gw-art-lead { font-size: 18px; color: var(--gw-muted); margin: 0 0 18px; }
.gw-art-orch { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gw-art-orch li { font-size: 13px; font-weight: 600; padding: 5px 10px; border: 1px solid #D9CFBC; border-radius: 999px; background: #fff; }
.gw-art-feat { padding: 28px 0 8px; }
.gw-art h2 { font-size: clamp(28px, 3.4vw, 38px); margin: 0 0 16px; }
.gw-art-feat__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.gw-art-feat__card { background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; overflow: hidden; }
.gw-art-feat__link { display: block; color: inherit !important; text-decoration: none !important; }
.gw-art-feat__img { aspect-ratio: 4 / 5; overflow: hidden; background: #EFE8DA; }
.gw-art-feat__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; display: block; transition: transform .3s; }
.gw-art-feat__link:hover img { transform: scale(1.03); }
.gw-art-feat__txt { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 2px; }
.gw-art-feat__txt h3 { font-size: 24px; margin: 0; line-height: 1.1; }
.gw-art-feat__txt span { font-size: 14px; color: var(--gw-muted); }
.gw-art-us { margin: 36px 0 0; background: var(--gw-navy); color: var(--gw-cream); border-radius: 10px; padding: 28px 24px; }
.gw-art-us__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 18px; }
.gw-art-us__head h2 { color: var(--gw-cream) !important; margin: 0; }
.gw-art-us__head span { color: var(--gw-gold-light); font-size: 15px; }
.gw-art-us__row { list-style: none; margin: 0; padding: 0 0 4px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; }
.gw-art-us__row li { scroll-snap-align: start; }
.gw-art-us__row a, .gw-art-us__row li > * { color: var(--gw-cream) !important; text-decoration: none !important; }
.gw-art-us__row a { display: flex; flex-direction: column; gap: 3px; }
.gw-art-us__img { width: 96px !important; height: 96px !important; border-radius: 50%; object-fit: cover; object-position: 50% 25%; display: flex; margin-bottom: 8px; border: 2px solid var(--gw-gold); }
.gw-art-us__row strong { font-size: 15px; }
.gw-art-us__row span:not(.gw-art-ini) { font-size: 13px; color: #C9D0D6; line-height: 1.3; }
.gw-art-all { padding: 40px 0 0; scroll-margin-top: 90px; }
.gw-art-all__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; }
.gw-art-all__head h2 { margin: 0; }
.gw-art-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.gw-art-sys { display: inline-grid; grid-template-columns: repeat(3, auto); background: #fff; border: 1px solid #D9CFBC; border-radius: 8px; padding: 3px; }
.gw-art-sys button { min-height: 40px; padding: 0 16px; border: 0; border-radius: 6px; background: transparent; color: var(--gw-navy); font: inherit; font-weight: 600; cursor: pointer; }
.gw-art-sys button[aria-pressed="true"] { background: var(--gw-navy); color: var(--gw-cream); }
#gw-art-q { min-height: 46px; min-width: 260px; padding: 0 14px; border: 1px solid #C9BFAA; border-radius: 6px; background: #fff; font-size: 16px; }
.gw-art-count { font-size: 14px; color: var(--gw-muted); margin: 12px 0 14px; }
.gw-art-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.gw-art-grid li[hidden] { display: none; }
.gw-art-grid a, .gw-art-card { display: flex; align-items: center; gap: 12px; padding: 10px; background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; color: var(--gw-navy) !important; text-decoration: none !important; height: 100%; }
.gw-art-grid a:hover { border-color: var(--gw-gold); }
.gw-art-grid__img { width: 56px !important; height: 56px !important; flex: 0 0 56px; border-radius: 50%; object-fit: cover; object-position: 50% 25%; }
.gw-art-ini { display: flex; align-items: center; justify-content: center; background: #EFE8DA; color: var(--gw-gold-text); font-weight: 700; font-size: 18px; border-radius: 50%; }
.gw-art-grid__t { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.gw-art-grid__t strong { font-size: 15px; }
.gw-art-grid__t span { font-size: 13px; color: var(--gw-muted); }
.gw-art-empty { color: var(--gw-muted); }
.gw-art-cta { margin-top: 44px; background: #F3EBD6; border-radius: 10px; padding: 28px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; }
.gw-art-cta h2 { margin: 0 0 4px; }
.gw-art-cta span { color: var(--gw-muted); }
.gw-art-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.gw-art-cta__ghost { display: inline-flex; align-items: center; min-height: 50px; padding: 0 18px; border-radius: 4px; box-shadow: inset 0 0 0 2px var(--gw-navy); color: var(--gw-navy) !important; font-weight: 700; text-decoration: none !important; }
@media (max-width: 900px) { .gw-art-feat__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .gw-art { padding: 0 16px 40px; }
  .gw-art-hero { padding-top: 28px; }
  .gw-art-lead { font-size: 16px; }
  .gw-art-feat__grid { gap: 10px; }
  .gw-art-feat__txt { padding: 10px 12px 12px; }
  .gw-art-feat__txt h3 { font-size: 19px; }
  .gw-art-feat__txt span { font-size: 13px; }
  .gw-art-us { margin-left: -16px; margin-right: -16px; border-radius: 0; padding: 24px 16px; }
  .gw-art-us__row { grid-auto-columns: 128px; }
  .gw-art-us__img { width: 80px !important; height: 80px !important; }
  .gw-art-tools, .gw-art-sys { width: 100%; }
  .gw-art-sys { grid-template-columns: repeat(3, 1fr); }
  #gw-art-q { width: 100%; min-width: 0; }
  .gw-art-grid { grid-template-columns: 1fr; }
  .gw-art-cta__btns, .gw-art-cta__btns a { width: 100%; justify-content: center; }
}

/* =================== Cart & Checkout (v2) — layout and look only; payment fields untouched =================== */
body.woocommerce-cart .woocommerce, body.woocommerce-checkout .woocommerce { max-width: 1120px; margin: 0 auto; padding: 0 0 40px; color: var(--gw-navy); }
body.woocommerce-cart .woocommerce input.input-text, body.woocommerce-checkout .woocommerce input.input-text,
body.woocommerce-checkout .woocommerce textarea, body.woocommerce-checkout .woocommerce select,
body.woocommerce-checkout .select2-container .select2-selection--single {
  min-height: 48px; border: 1px solid #C9BFAA !important; border-radius: 6px !important; background: #fff !important; font-size: 16px !important; padding: 10px 12px;
}
body.woocommerce-checkout .select2-container .select2-selection--single { display: flex; align-items: center; }
body.woocommerce-checkout .select2-container .select2-selection__arrow { height: 46px !important; }
body.woocommerce-cart .woocommerce input.input-text:focus, body.woocommerce-checkout .woocommerce input.input-text:focus,
body.woocommerce-checkout .woocommerce textarea:focus { outline: 2px solid var(--gw-gold); outline-offset: 1px; border-color: var(--gw-navy) !important; }
body.woocommerce-checkout .form-row label { font-size: 14px; font-weight: 600; color: var(--gw-navy); margin-bottom: 4px; }
body.woocommerce-checkout .form-row { margin-bottom: 14px; }
body.woocommerce-checkout h3, body.woocommerce-cart .cart_totals h2 { font-family: var(--gw-serif) !important; font-size: 28px !important; margin: 8px 0 14px !important; }
/* Cart table */
body.woocommerce-cart table.shop_table { border: 1px solid var(--gw-line) !important; border-radius: 8px !important; background: #fff; border-collapse: separate !important; overflow: hidden; }
body.woocommerce-cart table.shop_table th { font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: var(--gw-muted); background: #FBF8F2; }
body.woocommerce-cart table.shop_table td { border-top: 1px solid var(--gw-line) !important; padding: 14px 12px !important; vertical-align: middle; }
body.woocommerce-cart table.cart img { width: 72px !important; border-radius: 6px; }
body.woocommerce-cart td.product-name a { color: var(--gw-navy) !important; font-weight: 700; text-decoration: none; }
body.woocommerce-cart td.product-name .variation { font-size: 14px; color: var(--gw-muted); }
body.woocommerce-cart a.remove { color: var(--gw-muted) !important; font-size: 22px !important; }
body.woocommerce-cart a.remove:hover { background: #F3EBD6 !important; color: #A33 !important; }
body.woocommerce-cart td.actions .coupon { display: flex; gap: 8px; flex-wrap: wrap; }
body.woocommerce-cart td.actions .coupon .input-text { width: 200px !important; }
body.woocommerce-cart .cart-collaterals .cart_totals { background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; padding: 20px; }
body.woocommerce-cart .cart_totals table.shop_table { border: 0 !important; }
body.woocommerce-cart .cart_totals .order-total th, body.woocommerce-cart .cart_totals .order-total td { font-size: 20px; }
/* Primary actions: navy, big, full width */
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-checkout #place_order {
  display: flex !important; align-items: center; justify-content: center; width: 100%; min-height: 56px; background: var(--gw-navy) !important; color: var(--gw-cream) !important;
  border: 0 !important; border-radius: 6px !important; font-size: 18px !important; font-weight: 700 !important; text-decoration: none !important; opacity: 1 !important;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover, body.woocommerce-checkout #place_order:hover { background: var(--gw-navy-deep) !important; }
body.woocommerce-cart button[name="update_cart"], body.woocommerce-cart button[name="apply_coupon"], body.woocommerce-checkout button[name="apply_coupon"] {
  min-height: 48px; background: #fff !important; color: var(--gw-navy) !important; box-shadow: inset 0 0 0 2px var(--gw-navy) !important; border: 0 !important; border-radius: 6px !important; font-weight: 700 !important;
}
body.woocommerce-cart button[name="update_cart"]:disabled { opacity: .45 !important; }
/* Checkout: order summary card, sticky on desktop */
body.woocommerce-checkout #order_review_heading { margin-top: 0 !important; }
body.woocommerce-checkout #order_review { background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; padding: 18px; }
body.woocommerce-checkout #order_review table.shop_table { border: 0 !important; }
body.woocommerce-checkout #order_review .order-total th, body.woocommerce-checkout #order_review .order-total td { font-size: 20px; }
body.woocommerce-checkout #payment { background: #FBF8F2 !important; border-radius: 8px !important; }
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info { background: #fff; border: 1px solid var(--gw-line); border-top: 3px solid var(--gw-gold); color: var(--gw-navy); }
body.woocommerce-checkout .woocommerce-info a, body.woocommerce-cart .woocommerce-info a { color: var(--gw-gold-text) !important; font-weight: 700; }
@media (min-width: 1024px) {
  body.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0 40px; align-items: start; }
  body.woocommerce-checkout form.checkout > * { grid-column: 1; }
  body.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 2 / span 3; }
  body.woocommerce-checkout form.checkout #customer_details .col-1, body.woocommerce-checkout form.checkout #customer_details .col-2 { width: 100% !important; float: none !important; }
  body.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 2; }
  body.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 3; position: sticky; top: 96px; }
  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup, body.woocommerce-checkout form.checkout > .woocommerce-error, body.woocommerce-checkout form.checkout > .woocommerce-message, body.woocommerce-checkout form.checkout > .woocommerce-info { grid-column: 1 / -1; grid-row: 1; }
  body.admin-bar.woocommerce-checkout form.checkout #order_review { top: 128px; }
}
@media (max-width: 767px) {
  body.woocommerce-cart .woocommerce, body.woocommerce-checkout .woocommerce { padding: 0 16px 32px; }
  body.woocommerce-cart table.shop_table_responsive tr td { padding: 10px 12px !important; }
  body.woocommerce-cart td.actions .coupon, body.woocommerce-cart td.actions .coupon .input-text { width: 100% !important; }
  body.woocommerce-cart td.actions .coupon button, body.woocommerce-cart button[name="update_cart"] { width: 100%; }
  body.woocommerce-checkout h3 { font-size: 24px !important; }
}

/* Homepage "Shop by category": heading, tile names and the extra links row centred under the tiles */
.e-con.gw-v2-band:has(.gw-v2-cats) > .gw-v2-h2 .elementor-heading-title { text-align: center !important; }
.gw-v2-cat__t, .gw-v2-cat__t .elementor-heading-title { text-align: center !important; }
.gw-v2-cat__t .elementor-heading-title, .gw-v2-cat__t a { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: 26px !important; }
.gw-link-row, .gw-link-row p { text-align: center !important; }
.gw-link-row { margin-top: 8px; }
@media (max-width: 600px) { .gw-v2-cat__t .elementor-heading-title, .gw-v2-cat__t a { font-size: 20px !important; } }

/* =================== Blog articles (plain posts) =================== */
body.single-post main.site-main:not(:has(.elementor)) { max-width: 760px; margin: 0 auto; padding: 32px 20px 56px; }
body.single-post main.site-main .page-header .entry-title { font-size: clamp(34px, 5vw, 50px) !important; line-height: 1.05 !important; margin: 0 0 18px; color: var(--gw-navy); }
body.single-post main.site-main .page-content { font-size: 18px; line-height: 1.7; color: #2B3540; }
body.single-post main.site-main .page-content p, body.single-post main.site-main .page-content li { font-size: 18px !important; line-height: 1.7; }
body.single-post main.site-main .page-content h2 { font-size: clamp(28px, 3.6vw, 36px) !important; line-height: 1.12 !important; margin: 40px 0 12px; scroll-margin-top: 96px; }
body.single-post main.site-main .page-content h3 { font-size: 24px !important; margin: 28px 0 8px; scroll-margin-top: 96px; }
body.single-post main.site-main .page-content a { color: var(--gw-gold-text) !important; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
body.single-post main.site-main .page-content a:hover { color: var(--gw-navy) !important; }
body.single-post main.site-main .page-content > p:first-child:has(> strong:first-child) { background: #F3EBD6; border-left: 4px solid var(--gw-gold); padding: 14px 18px; border-radius: 0 6px 6px 0; }
body.single-post main.site-main .page-content #table-of-contents + ul { background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; padding: 16px 20px 16px 36px; }
body.single-post main.site-main .page-content #table-of-contents + ul li { font-size: 16px !important; margin: 4px 0; }
body.single-post main.site-main .page-content img { border-radius: 8px; height: auto; }
body.single-post main.site-main .page-content blockquote { border-left: 3px solid var(--gw-gold); margin: 24px 0; padding: 4px 0 4px 18px; font-family: var(--gw-serif); font-size: 22px; font-style: italic; color: var(--gw-navy); }
body.single-post main.site-main .page-content table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--gw-line); border-radius: 8px; overflow: hidden; background: #fff; margin: 20px 0; font-size: 16px; display: block; overflow-x: auto; }
body.single-post main.site-main .page-content th { background: var(--gw-navy); color: var(--gw-cream); text-align: left; font-size: 14px !important; padding: 10px 12px; }
body.single-post main.site-main .page-content td { padding: 10px 12px; border-top: 1px solid var(--gw-line); font-size: 16px !important; vertical-align: top; }
body.single-post main.site-main .page-content tr:nth-child(even) td { background: #FBF8F2; }
@media (max-width: 600px) { body.single-post main.site-main .page-content p, body.single-post main.site-main .page-content li { font-size: 17px !important; } }

/* =================== Artist profile posts (Elementor) =================== */
body.single-post .elementor-widget-image img { border-radius: 8px; }
body.single-post .elementor-widget-text-editor p { font-size: 18px !important; line-height: 1.7; }
body.single-post .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(32px, 4.6vw, 46px) !important; }

/* =================== Blog index cards (Magical Posts grid) =================== */
.mgp-card.mg-card { background: #fff !important; border: 1px solid var(--gw-line) !important; border-radius: 8px !important; box-shadow: none !important; overflow: hidden; transition: border-color .2s; }
.mgp-card.mg-card:hover { border-color: var(--gw-gold) !important; }
.mgp-card .mgp-ptitle, .mgp-card .mgp-ptitle a { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: 23px !important; line-height: 1.15 !important; color: var(--gw-navy) !important; text-decoration: none !important; }
.mgp-card .mg-card-text.mgp-card-body p { color: var(--gw-muted) !important; font-size: 15px !important; line-height: 1.55; }
.mgp-card a.mgp-pbtn, .mgp-card .mgp-btn, .mgp-card a[class*="btn"] { color: var(--gw-gold-text) !important; font-weight: 700 !important; background: none !important; padding-left: 0 !important; }
.mgp-card .mgp-meta, .mgp-card .mgp-meta a, .mgp-card [class*="category"] a { color: var(--gw-gold-text) !important; font-size: 12px !important; letter-spacing: 1px; text-transform: uppercase; }

/* =================== Custom HTML pages (FAQ, About, Contact, Team, Newsletter, Test before buying) =================== */
.elementor-widget-html :is(p, li, td, summary, label) { font-size: 16px !important; line-height: 1.65 !important; }
.elementor-widget-html :is(.faq-answer, .faq-answer *) { font-size: 16px !important; }
.elementor-widget-html summary { font-weight: 700 !important; }
.elementor-widget-html h1 { font-size: clamp(32px, 4.6vw, 46px) !important; line-height: 1.08 !important; }
.elementor-widget-html h2 { font-size: clamp(26px, 3.4vw, 34px) !important; line-height: 1.15 !important; }
.elementor-widget-html h3 { font-size: 22px !important; }
.elementor-widget-html [class*="tag"], .elementor-widget-html [class*="section-title"], .elementor-widget-html [class*="eyebrow"], .elementor-widget-html [class*="kicker"] { font-size: 12px !important; }
.elementor-widget-html a[style*="background"], .elementor-widget-html [class*="cta"] a, .elementor-widget-html a[class*="btn"] { min-height: 48px; display: inline-flex !important; align-items: center; justify-content: center; padding: 0 20px !important; border-radius: 4px !important; font-weight: 700 !important; font-size: 16px !important; }

/* =================== Forms (Contact Form 7, newsletter) =================== */
.wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select, textarea) {
  width: 100%; min-height: 48px; border: 1px solid #C9BFAA !important; border-radius: 6px !important; background: #fff !important; font-size: 16px !important; padding: 10px 12px !important; color: var(--gw-navy);
}
.wpcf7 textarea { min-height: 140px; }
.wpcf7 :is(input, select, textarea):focus { outline: 2px solid var(--gw-gold); outline-offset: 1px; border-color: var(--gw-navy) !important; }
.wpcf7 label { font-weight: 600; font-size: 15px !important; color: var(--gw-navy); }
.wpcf7 input[type="submit"], .wpcf7 .wpcf7-submit { min-height: 52px; padding: 0 28px !important; background: var(--gw-navy) !important; color: var(--gw-cream) !important; border: 0 !important; border-radius: 6px !important; font-size: 17px !important; font-weight: 700 !important; cursor: pointer; }
.wpcf7 input[type="submit"]:hover { background: var(--gw-navy-deep) !important; }
.wpcf7 .wpcf7-not-valid-tip { font-size: 14px; }
.wpcf7 form .wpcf7-response-output { border-radius: 6px; font-size: 15px; }

/* =================== My Account =================== */
body.woocommerce-account .woocommerce { max-width: 1120px; margin: 0 auto; color: var(--gw-navy); }
body.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; overflow: hidden; }
body.woocommerce-account .woocommerce-MyAccount-navigation li { border-top: 1px solid var(--gw-line); margin: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li:first-child { border-top: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 16px; color: var(--gw-navy) !important; text-decoration: none !important; font-weight: 600; }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--gw-navy); color: var(--gw-cream) !important; }
body.woocommerce-account .woocommerce input.input-text, body.woocommerce-account .woocommerce select { min-height: 48px; border: 1px solid #C9BFAA !important; border-radius: 6px !important; background: #fff !important; font-size: 16px !important; padding: 10px 12px; }
body.woocommerce-account .woocommerce .button { min-height: 48px; background: var(--gw-navy) !important; color: var(--gw-cream) !important; border-radius: 6px !important; font-weight: 700 !important; border: 0 !important; }
body.woocommerce-account table.shop_table { border: 1px solid var(--gw-line) !important; border-radius: 8px !important; background: #fff; border-collapse: separate !important; overflow: hidden; }
body.woocommerce-account .woocommerce-orders-table .button { min-height: 36px; padding: 0 12px !important; font-size: 14px !important; }
body.woocommerce-account h2, body.woocommerce-account h3 { font-size: 28px !important; }

/* =================== Generic Elementor bits used across old pages =================== */
.elementor-widget-divider .elementor-divider-separator { border-color: var(--gw-line) !important; }
.elementor-widget-button:not([class*="gw-btn"]) .elementor-button { background: var(--gw-gold) !important; color: var(--gw-navy) !important; border-radius: 4px !important; font-weight: 700 !important; min-height: 48px; display: inline-flex !important; align-items: center; }
.elementor-widget-button:not([class*="gw-btn"]) .elementor-button:hover { background: var(--gw-gold-light) !important; }

/* =================== Shared page pieces (v2 redesigned pages) =================== */
.gw-kicker { font-size: 13px; font-weight: 700; letter-spacing: 3px; color: var(--gw-gold-text); }
.gw-page { max-width: 1120px; margin: 0 auto; padding: 0 20px 56px; color: var(--gw-navy); }
.gw-page h1, .gw-page h2, .gw-page h3, .gw-faq h1, .gw-faq h2 { font-family: var(--gw-serif) !important; font-weight: 600 !important; color: var(--gw-navy); }

/* =================== FAQ (v2) =================== */
.gw-faq { max-width: 1120px; margin: 0 auto; padding: 0 20px 56px; color: var(--gw-navy); }
.gw-faq-hero { padding: 48px 0 28px; max-width: 760px; }
.gw-faq-hero h1 { font-size: clamp(36px, 5vw, 56px) !important; line-height: 1.02 !important; margin: 10px 0 12px; }
.gw-faq-lead { font-size: 18px !important; color: var(--gw-muted); margin: 0 0 20px; }
.gw-faq-search { position: relative; max-width: 560px; }
.gw-faq-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--gw-muted); }
.gw-faq-search input { width: 100%; min-height: 54px; padding: 0 16px 0 44px; border: 1px solid #C9BFAA; border-radius: 8px; background: #fff; font-size: 17px; }
.gw-faq-search input:focus { outline: 2px solid var(--gw-gold); outline-offset: 1px; border-color: var(--gw-navy); }
.gw-faq-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; align-items: start; }
.gw-faq-nav { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 2px; }
body.admin-bar .gw-faq-nav { top: 128px; }
.gw-faq-nav a { display: flex; justify-content: space-between; padding: 10px 12px; border-radius: 6px; color: var(--gw-navy) !important; text-decoration: none !important; font-weight: 600; }
.gw-faq-nav a:hover { background: #fff; }
.gw-faq-nav a span { color: var(--gw-muted); font-weight: 400; font-size: 14px; }
.gw-faq-sec { background: #fff; border: 1px solid var(--gw-line); border-radius: 10px; padding: 8px 24px 12px; margin-bottom: 16px; scroll-margin-top: 96px; }
.gw-faq-sec h2 { font-size: 28px !important; margin: 14px 0 4px !important; }
.gw-faq-item { border-top: 1px solid var(--gw-line); }
.gw-faq-sec h2 + .gw-faq-item { border-top: 0; }
.gw-faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; font-size: 18px !important; font-weight: 700 !important; color: var(--gw-navy); }
.gw-faq-item summary::-webkit-details-marker { display: none; }
.gw-faq-item summary:hover span { color: var(--gw-gold-text); }
.gw-faq-item summary i { flex: 0 0 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--gw-gold); position: relative; }
.gw-faq-item summary i::before, .gw-faq-item summary i::after { content: ''; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: var(--gw-gold-text); transform: translate(-50%, -50%); transition: transform .2s; }
.gw-faq-item summary i::after { transform: translate(-50%, -50%) rotate(90deg); }
.gw-faq-item[open] summary i::after { transform: translate(-50%, -50%) rotate(0deg); }
.gw-faq-item summary:focus-visible { outline: 2px solid var(--gw-gold); outline-offset: 2px; border-radius: 4px; }
.gw-faq-a { padding: 0 44px 18px 0; font-size: 17px; line-height: 1.7; color: #2B3540; }
.gw-faq-a a { color: var(--gw-gold-text) !important; text-decoration: underline; }
.gw-faq-none { font-size: 17px; }
.gw-faq-cta { margin-top: 24px; background: var(--gw-navy); color: var(--gw-cream); border-radius: 10px; padding: 28px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; }
.gw-faq-cta h2 { color: var(--gw-cream) !important; font-size: 30px !important; margin: 0 0 4px !important; }
.gw-faq-cta p { margin: 0; color: #C9D0D6; }
.gw-faq-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.gw-faq-cta .gw-art-cta__ghost { box-shadow: inset 0 0 0 2px var(--gw-cream); color: var(--gw-cream) !important; }
@media (max-width: 860px) {
  .gw-faq-layout { grid-template-columns: 1fr; gap: 12px; }
  .gw-faq-nav { position: sticky; top: 60px; z-index: 5; flex-direction: row; overflow-x: auto; gap: 8px; background: var(--gw-cream); padding: 8px 0; margin: 0 -20px; padding-left: 20px; padding-right: 20px; }
  body.admin-bar .gw-faq-nav { top: 60px; }
  .gw-faq-nav a { flex: 0 0 auto; background: #fff; border: 1px solid var(--gw-line); border-radius: 999px; padding: 8px 14px; gap: 8px; }
  .gw-faq-sec { padding: 4px 16px 8px; }
  .gw-faq-item summary { font-size: 17px !important; }
  .gw-faq-a { padding-right: 0; font-size: 16px; }
  .gw-faq-cta__btns, .gw-faq-cta__btns a { width: 100%; }
}

/* =================== Category landing pages: Barrels & Ligatures (v2) =================== */
.gw-cat-hero { padding: 48px 0 24px; max-width: 780px; }
.gw-cat h1 { font-size: clamp(36px, 5vw, 56px) !important; line-height: 1.03 !important; margin: 10px 0 12px; }
.gw-cat h2 { font-size: clamp(28px, 3.4vw, 38px) !important; margin: 0 0 14px; }
.gw-cat-lead { font-size: 18px !important; color: var(--gw-muted); margin: 0 0 18px; max-width: 680px; }
.gw-btn-navy { background: var(--gw-navy) !important; color: var(--gw-cream) !important; }
.gw-btn-navy:hover { background: var(--gw-navy-deep) !important; }
.gw-bar-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.gw-bar-card { background: #fff; border: 1px solid var(--gw-line); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; }
.gw-bar-card__img { display: block; aspect-ratio: 4 / 3; background: #12161C; overflow: hidden; }
.gw-bar-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.gw-bar-card__img:hover img { transform: scale(1.03); }
.gw-bar-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gw-bar-card h2 { margin: 0 !important; font-size: 34px !important; }
.gw-bar-card h2 a { color: var(--gw-navy) !important; text-decoration: none !important; }
.gw-bar-card__for { margin: 0; color: var(--gw-muted); font-size: 16px !important; }
.gw-bar-specs { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 6px 0 4px; font-size: 16px; }
.gw-bar-specs dt { font-weight: 700; }
.gw-bar-specs dd { margin: 0; }
.gw-bar-card__buy { margin-top: auto; padding-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.gw-bar-card__buy strong { font-size: 22px; }
.gw-cat-guide { margin: 36px 0 0; background: #fff; border: 1px solid var(--gw-line); border-radius: 10px; padding: 26px; }
.gw-steps3 { list-style: none; counter-reset: s; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gw-steps3 li { counter-increment: s; position: relative; padding-top: 42px; font-size: 16px !important; color: var(--gw-muted); }
.gw-steps3 li::before { content: counter(s); position: absolute; top: 0; left: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--gw-navy); color: var(--gw-gold-light); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.gw-steps3 strong { display: block; color: var(--gw-navy); font-size: 17px; margin-bottom: 4px; }
.gw-cat-fits { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--gw-line); font-size: 16px !important; }
.gw-lig-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 40px 0 16px; }
.gw-lig-hero__img img { width: 100%; height: auto; border-radius: 10px; display: block; }
.gw-lig-points { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 8px; }
.gw-lig-points li { position: relative; padding-left: 26px; font-size: 16px !important; }
.gw-lig-points li::before { content: ''; position: absolute; left: 0; top: 7px; width: 12px; height: 12px; border-radius: 50%; background: var(--gw-gold); }
.gw-lig-colours { padding: 36px 0 0; scroll-margin-top: 90px; }
.gw-lig-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.gw-lig-grid a { display: block; background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; overflow: hidden; color: var(--gw-navy) !important; text-decoration: none !important; transition: border-color .2s, transform .2s; }
.gw-lig-grid a:hover { border-color: var(--gw-gold); transform: translateY(-2px); }
.gw-lig-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.gw-lig-grid span { display: block; padding: 8px 10px; font-weight: 700; font-size: 15px; text-align: center; }
@media (max-width: 860px) {
  .gw-bar-grid, .gw-lig-hero { grid-template-columns: 1fr; gap: 16px; }
  .gw-steps3 { grid-template-columns: 1fr; }
  .gw-lig-hero { padding-top: 20px; }
  .gw-lig-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .gw-lig-grid span { font-size: 13px; padding: 6px 4px; }
  .gw-bar-card__buy .gw-tb-btn { width: 100%; }
}

/* =================== Custom-HTML pages restyled to the v2 system =================== */
/* (Test before buying: tbb/gtb, Shipping & payment: sp, Contact: cf, About: ab, Team: tm, Newsletter: nl) */
.elementor-widget-html :is(.sp-wrap, .cf-wrap, .ab-wrap, .tm-wrap, .nl-wrap) { max-width: 1040px !important; margin: 0 auto !important; padding: 0 20px 48px !important; font-family: var(--gw-sans) !important; color: var(--gw-navy) !important; }
.elementor-widget-html .gtb-steps-wrap { max-width: 1040px; margin: 0 auto; padding: 0 20px; }

/* Heroes: dark box -> open editorial hero */
.elementor-widget-html :is(.tbb-hero, .sp-hero, .cf-hero, .ab-hero, .tm-hero, .nl-hero) {
  background: transparent !important; border-radius: 0 !important; padding: 44px 0 20px !important; margin: 0 auto 8px !important; max-width: 1040px; box-shadow: none !important; text-align: left !important;
}
.elementor-widget-html .tbb-hero { padding-left: 20px !important; padding-right: 20px !important; }
.elementor-widget-html .ab-hero::before, .elementor-widget-html .ab-hero::after { display: none !important; }
.elementor-widget-html :is(.tbb-hero, .sp-hero, .cf-hero, .ab-hero, .tm-hero, .nl-hero) :is(h1, h2) {
  color: var(--gw-navy) !important; font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: clamp(36px, 5vw, 56px) !important; line-height: 1.03 !important; margin: 10px 0 12px !important; max-width: 820px;
}
.elementor-widget-html :is(.tbb-hero, .sp-hero, .cf-hero, .ab-hero, .tm-hero, .nl-hero) p,
.elementor-widget-html :is(.ab-hero-sub, .ab-hero-body) { color: var(--gw-muted) !important; font-size: 18px !important; line-height: 1.6 !important; max-width: 720px; }
.elementor-widget-html :is(.tbb-hero-tag, .sp-hero-tag, .cf-hero-tag, .ab-hero-label, .tm-hero-tag, .nl-hero-tag) {
  color: var(--gw-gold-text) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 3px !important; text-transform: uppercase;
}

/* Cards */
.elementor-widget-html :is(.sp-section, .sp-card, .sp-pay-card, .gtb-step, .ab-card, .tm-card, .nl-card, .cf-form-wrap, .nl-form-wrap, .ab-stat) {
  background: #fff !important; border: 1px solid var(--gw-line) !important; border-radius: 10px !important; box-shadow: none !important;
}
.elementor-widget-html :is(.cf-form-wrap, .nl-form-wrap) { padding: 24px !important; }
.elementor-widget-html .gtb-step { padding: 20px 22px !important; margin-bottom: 12px !important; gap: 16px !important; }
.elementor-widget-html :is(.sp-section) { padding: 4px 0 !important; margin-bottom: 16px !important; overflow: hidden; }

/* Small labels -> readable kickers */
.elementor-widget-html :is(.sp-card-label, .ab-tl-header, .ab-endorsement-label, .tm-role, .nl-card h4, .ab-stat-label, .cf-label) {
  font-size: 12px !important; letter-spacing: 2px !important; text-transform: uppercase; color: var(--gw-gold-text) !important; font-weight: 700 !important;
}
.elementor-widget-html .ab-endorsement-label { color: var(--gw-gold-light) !important; }

/* Titles inside cards */
.elementor-widget-html :is(.step-title, .ab-card-title, .tm-name, .sp-sec-title, .gtb-warning-title) { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: 24px !important; line-height: 1.15 !important; color: var(--gw-navy) !important; display: block; }
.elementor-widget-html .ab-stat-num { font-family: var(--gw-serif) !important; font-size: 44px !important; color: var(--gw-navy) !important; }

/* Body text sizes */
.elementor-widget-html :is(.step-desc, .gtb-sub p, .sp-card p, .sp-sec-body, .ab-card-body p, .ab-tl-text, .tm-bio, .nl-card p, .sp-note, .sp-dark-note, .gtb-warning-desc, .cf-footer, .nl-footer, .cf-req-note, .nl-sub, .sp-pay-info span, .sp-pay-info strong) { font-size: 16px !important; line-height: 1.6 !important; }
.elementor-widget-html .gtb-sub .addr { font-size: 15px !important; }
.elementor-widget-html .ab-artist-chip { font-size: 14px !important; }

/* Step numbers and icons */
.elementor-widget-html .gtb-step-num { width: 40px !important; height: 40px !important; min-width: 40px; border-radius: 50% !important; background: var(--gw-navy) !important; color: var(--gw-gold-light) !important; font-weight: 700 !important; font-size: 17px !important; display: flex !important; align-items: center; justify-content: center; }
.elementor-widget-html :is(.sp-sec-icon, .ab-card-icon) { background: var(--gw-navy) !important; border-radius: 50% !important; }
.elementor-widget-html .gtb-warning { background: #F3EBD6 !important; border: 0 !important; border-left: 4px solid var(--gw-gold) !important; border-radius: 0 10px 10px 0 !important; padding: 18px 20px !important; }

/* Buttons inside these pages */
.elementor-widget-html :is(.ab-cta-btn, .faq-cta a) { min-height: 48px; display: inline-flex !important; align-items: center; padding: 0 22px !important; background: var(--gw-gold) !important; color: var(--gw-navy) !important; border-radius: 4px !important; font-size: 16px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important; }
.elementor-widget-html :is(.ab-cta, .faq-cta) { background: #F3EBD6 !important; border: 0 !important; border-radius: 10px !important; }

@media (max-width: 600px) {
  .elementor-widget-html :is(.tbb-hero, .sp-hero, .cf-hero, .ab-hero, .tm-hero, .nl-hero) { padding-top: 28px !important; }
  .elementor-widget-html :is(.tbb-hero, .sp-hero, .cf-hero, .ab-hero, .tm-hero, .nl-hero) p { font-size: 16px !important; }
  .elementor-widget-html .gtb-step { padding: 16px !important; }
  .elementor-widget-html :is(.step-title, .ab-card-title, .tm-name, .sp-sec-title) { font-size: 21px !important; }
}

/* =================== Shared simple-page layout (v2) =================== */
.gw-text-hero { padding: 44px 0 18px; max-width: 820px; }
.gw-text-hero h1 { font-size: clamp(36px, 5vw, 54px) !important; line-height: 1.04 !important; margin: 10px 0 10px; }
.gw-text-body { max-width: 900px; }
.gw-text-body .e-con, .gw-text-body .elementor-section .elementor-container { --content-width: 100%; max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
.gw-text-body .elementor-widget-text-editor :is(p, li) { font-size: 17px !important; line-height: 1.7 !important; color: #2B3540; }
.gw-text-body .elementor-widget-image img { border-radius: 10px; }
.gw-text--matchmaker .gw-text-body, body.page-id-6678 .gw-text-body { max-width: 1120px; }
@media (max-width: 600px) { .gw-text-hero { padding-top: 26px; } }

/* Legal & info pages (Imprint: imp, Data protection & Damaged product: dp, Terms: tos, Withdrawal: row) */
.elementor-widget-html :is(.imp-wrap, .dp-wrap, .tos-wrap, .row-wrap) { max-width: 1040px !important; margin: 0 auto !important; font-family: var(--gw-sans) !important; color: var(--gw-navy) !important; }
.gw-text-body .elementor-widget-html :is(.dp-wrap, .tos-wrap, .row-wrap) { padding: 0 !important; }
.elementor-widget-html :is(.imp-hero, .dp-hero) { background: transparent !important; border-radius: 0 !important; padding: 44px 0 20px !important; box-shadow: none !important; text-align: left !important; }
.gw-text-body .elementor-widget-html .dp-hero { padding-top: 0 !important; }
.elementor-widget-html :is(.imp-hero, .dp-hero) :is(h1, h2) { color: var(--gw-navy) !important; font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: clamp(36px, 5vw, 54px) !important; line-height: 1.04 !important; margin: 10px 0 12px !important; }
.elementor-widget-html :is(.imp-hero, .dp-hero) p { color: var(--gw-muted) !important; font-size: 18px !important; }
.elementor-widget-html :is(.imp-hero-tag, .dp-hero-tag) { color: var(--gw-gold-text) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 3px !important; }
.elementor-widget-html :is(.imp-card, .dp-card, .dp-right-card, .dp-controller, .dp-section, .tos-section, .row-section, .imp-form-section, .dp-form-wrap) { background: #fff !important; border: 1px solid var(--gw-line) !important; border-radius: 10px !important; box-shadow: none !important; overflow: hidden; }
.elementor-widget-html :is(.tos-section, .row-section, .dp-section) { margin-bottom: 12px !important; }
.elementor-widget-html :is(.tos-section-header, .row-header, .dp-sec-head) { background: transparent !important; border-bottom: 1px solid var(--gw-line) !important; padding: 16px 20px !important; gap: 12px; }
.elementor-widget-html :is(.tos-section.dark .tos-section-header, .row-section.dark .row-header) { background: var(--gw-navy) !important; }
.elementor-widget-html :is(.tos-section.dark .tos-section-title, .row-section.dark .row-title) { color: var(--gw-cream) !important; }
.elementor-widget-html :is(.tos-num, .row-num, .dp-sec-num) { width: 34px !important; height: 34px !important; min-width: 34px; border-radius: 50% !important; background: var(--gw-navy) !important; color: var(--gw-gold-light) !important; font-weight: 700 !important; font-size: 15px !important; display: inline-flex !important; align-items: center; justify-content: center; }
.elementor-widget-html :is(.tos-section-title, .row-title, .dp-sec-title) { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: 24px !important; color: var(--gw-navy) !important; }
.elementor-widget-html :is(.tos-section-body, .row-body, .dp-sec-body) { padding: 16px 20px 18px !important; }
.elementor-widget-html :is(.imp-card h4, .dp-card h4, .dp-controller-label, .dp-sub-title, .dp-updated, .tos-meta, .row-meta) { font-size: 12px !important; letter-spacing: 2px !important; text-transform: uppercase; color: var(--gw-gold-text) !important; font-weight: 700 !important; }
.elementor-widget-html :is(.imp-card p, .imp-card address, .dp-card p, .dp-controller-info, .dp-sec-body, .dp-right-card span, .dp-right-card strong, .tos-callout, .tos-alert, .row-alert, .row-callout, .tos-address, .tos-footer p, .row-footer p, .dp-dark-note, .dp-contact-box p, .imp-sub, .imp-req-note, .dp-req-note, .dp-footer) { font-size: 16px !important; line-height: 1.6 !important; }
.elementor-widget-html :is(.tos-callout, .row-callout) { background: #F3EBD6 !important; border-left: 4px solid var(--gw-gold) !important; border-radius: 0 8px 8px 0 !important; }
.elementor-widget-html :is(.tos-footer, .row-footer, .dp-contact-box, .dp-dark-note) { border-radius: 10px !important; }

/* Blog index: full width grid under the new header */
body.page-id-2973 .gw-text-body { max-width: 1120px; }
/* Standard category pages (Bass clarinet, E-flat, Copies, O-Rings, Sale...): new header style */
body.tax-product_cat .woocommerce-products-header { max-width: 1120px; margin: 0 auto; padding: 40px 20px 8px; }
body.tax-product_cat .woocommerce-products-header__title.page-title { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: clamp(36px, 5vw, 54px) !important; line-height: 1.04 !important; color: var(--gw-navy) !important; margin: 0 0 8px !important; }
body.tax-product_cat .woocommerce-products-header .term-description p { font-size: 18px !important; color: var(--gw-muted); max-width: 720px; }
body.tax-product_cat .woocommerce-result-count { font-size: 14px; color: var(--gw-muted); }
body.tax-product_cat .woocommerce-ordering select { min-height: 44px; border: 1px solid #C9BFAA; border-radius: 6px; background: #fff; padding: 0 12px; font-size: 15px; }
body.tax-product_cat .woocommerce-breadcrumb { font-size: 14px; color: var(--gw-muted); }
body.tax-product_cat .woocommerce-breadcrumb a { color: var(--gw-gold-text) !important; }

/* ---- Product page: "Test before buying" block on one clean line ---- */
body.single-product #testen { text-align: left !important; padding: 16px 18px !important; background: #F3EBD6 !important; border-radius: 8px !important; max-width: none !important; }
body.single-product #testen > p { display: flex !important; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; justify-content: flex-start !important; text-align: left !important; margin: 0 0 10px !important; }
body.single-product #testen .testen-price { font-size: 20px !important; font-weight: 700 !important; color: var(--gw-navy) !important; }
body.single-product #testen .paus { font-size: 15px !important; color: var(--gw-muted) !important; }
body.single-product #testen-form { display: flex !important; flex-wrap: nowrap !important; gap: 10px !important; align-items: stretch !important; justify-content: flex-start !important; margin: 0 !important; }
body.single-product #testen-form .custom-quantity { flex: 0 0 76px !important; width: 76px !important; height: 48px !important; min-height: 48px !important; margin: 0 !important; font-size: 17px !important; text-align: center; }
body.single-product #testen-form .custom-add-to-cart { flex: 1 1 auto !important; width: auto !important; margin: 0 !important; height: 48px !important; }
body.single-product #testen > a { display: inline-block !important; margin-top: 10px !important; font-size: 15px !important; color: var(--gw-gold-text) !important; text-align: left !important; }

body.single-product #testen-form .custom-add-to-cart:disabled, body.single-product #testen-form .custom-quantity:disabled { opacity: .5 !important; cursor: not-allowed; }
body.single-product .gw-test-hint { margin: 8px 0 0 !important; font-size: 15px !important; color: var(--gw-gold-text) !important; font-weight: 600; }
body.single-product .gw-test-hint:empty { display: none; }

/* =================== Test before buying (v2 rebuild) =================== */
.gw-tbb-hero { padding: 48px 0 24px; max-width: 760px; }
.gw-tbb h1 { font-size: clamp(38px, 5.4vw, 60px) !important; line-height: 1.02 !important; margin: 10px 0 12px; }
.gw-tbb h2 { font-size: clamp(28px, 3.4vw, 38px) !important; margin: 0 0 16px; }
.gw-tbb-ways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.gw-tbb-way { background: #fff; border: 1px solid var(--gw-line); border-radius: 12px; padding: 26px; display: flex; flex-direction: column; gap: 10px; }
.gw-tbb-way--box { background: var(--gw-navy); border-color: var(--gw-navy); color: var(--gw-cream); }
.gw-tbb-way--box h2, .gw-tbb-way--box .gw-tbb-price strong { color: var(--gw-cream) !important; }
.gw-tbb-way--box p { color: #C9D0D6; }
.gw-tbb-way--box .gw-btn-navy { background: var(--gw-gold) !important; color: var(--gw-navy) !important; }
.gw-tbb-way h2 { margin: 0 !important; font-size: 36px !important; }
.gw-tbb-way p { margin: 0; font-size: 17px !important; }
.gw-tbb-way .gw-tb-btn { margin-top: auto; align-self: flex-start; }
.gw-tbb-price strong { font-size: 26px; color: var(--gw-navy); }
.gw-tbb-badge { align-self: flex-start; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; padding: 4px 9px; border-radius: 3px; background: var(--gw-gold); color: var(--gw-navy); }
.gw-tbb-badge--light { background: #F3EBD6; color: var(--gw-gold-text); }
.gw-tbb-note { margin: 14px 0 0; font-size: 15px !important; color: var(--gw-muted); max-width: 860px; }
.gw-tbb-how { margin-top: 44px; }
.gw-tbb-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; position: relative; }
.gw-tbb-steps li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding: 0 0 22px; position: relative; }
.gw-tbb-steps li::before { content: ''; position: absolute; left: 21px; top: 44px; bottom: 0; width: 2px; background: var(--gw-line); }
.gw-tbb-steps li:last-child::before { display: none; }
.gw-tbb-n { width: 44px; height: 44px; border-radius: 50%; background: var(--gw-navy); color: var(--gw-gold-light); font-weight: 700; font-size: 18px; display: flex; align-items: center; justify-content: center; position: relative; z-index: 1; }
.gw-tbb-steps h3 { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: 26px !important; margin: 6px 0 4px !important; color: var(--gw-navy); }
.gw-tbb-body, .gw-tbb-body p { font-size: 17px !important; line-height: 1.65; color: #2B3540; margin: 0 0 6px; }
.gw-tbb-body a { color: var(--gw-gold-text) !important; }
.gw-tbb-body .addr { display: inline-block; margin-top: 6px; background: #fff; border: 1px solid var(--gw-line); border-radius: 8px; padding: 10px 14px; font-size: 16px !important; }
.gw-tbb-care { margin: 8px 0 0; background: #F3EBD6; border-left: 4px solid var(--gw-gold); border-radius: 0 10px 10px 0; padding: 18px 22px; }
.gw-tbb-care h3 { font-family: var(--gw-serif) !important; font-size: 24px !important; margin: 0 0 4px !important; }
.gw-tbb-care p { margin: 0; font-size: 17px !important; }
@media (max-width: 760px) {
  .gw-tbb-ways { grid-template-columns: 1fr; gap: 12px; }
  .gw-tbb-way { padding: 20px; }
  .gw-tbb-way .gw-tb-btn { width: 100%; }
  .gw-tbb-steps li { grid-template-columns: 36px minmax(0, 1fr); gap: 12px; }
  .gw-tbb-steps li::before { left: 17px; top: 36px; }
  .gw-tbb-n { width: 36px; height: 36px; font-size: 16px; }
  .gw-tbb-steps h3 { font-size: 22px !important; }
  .gw-tbb-hero { padding-top: 28px; }
}

/* =================== Info pages (v2 rebuild): Shipping, Contact, About, Team, Newsletter, Defective, Returns =================== */
.gw-info-hero { padding: 48px 0 22px; max-width: 780px; }
.gw-info h1 { font-size: clamp(38px, 5.2vw, 58px) !important; line-height: 1.03 !important; margin: 10px 0 12px; }
.gw-info h2 { font-size: clamp(26px, 3.2vw, 34px) !important; margin: 0 0 14px; }
.gw-info h3 { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: 23px !important; margin: 0 0 6px; color: var(--gw-navy); }
.gw-info p, .gw-info li { font-size: 17px !important; line-height: 1.65; }
.gw-info a { color: var(--gw-gold-text); }
.gw-info .gw-tb-btn, .gw-info .gw-art-cta__ghost { color: var(--gw-navy) !important; }
.gw-info-card { background: #fff; border: 1px solid var(--gw-line); border-radius: 12px; padding: 24px 26px; margin-bottom: 16px; }
.gw-info-card > :last-child { margin-bottom: 0; }
.gw-small { font-size: 15px !important; color: var(--gw-muted); }
.gw-privacy { margin-top: 8px; }
.gw-note { background: #F3EBD6; border-left: 4px solid var(--gw-gold); border-radius: 0 8px 8px 0; padding: 12px 16px; margin: 12px 0 0; }
.gw-note--dark { background: var(--gw-navy); color: var(--gw-cream); border-left-color: var(--gw-gold-light); }
.gw-note--dark strong { color: var(--gw-gold-light); }
/* Shipping facts + payment chips */
.gw-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 4px; }
.gw-facts > div { background: var(--gw-cream); border-radius: 10px; padding: 14px 16px; }
.gw-facts dt { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--gw-gold-text); font-weight: 700; margin-bottom: 6px; }
.gw-facts dd { margin: 0; font-size: 16px; line-height: 1.45; }
.gw-facts dd strong { font-family: var(--gw-serif); font-size: 22px; display: block; color: var(--gw-navy); }
.gw-pay { list-style: none; margin: 0 0 4px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.gw-pay li { border: 1px solid var(--gw-line); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; font-size: 16px !important; }
.gw-pay span { font-size: 14px; color: var(--gw-muted); }
/* Contact & defective: form + side cards */
.gw-contact { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.gw-contact__side .gw-info-card { padding: 20px 22px; }
.gw-mail { font-weight: 700; font-size: 18px; word-break: break-all; }
.gw-links { list-style: none; margin: 0; padding: 0; }
.gw-links li { border-top: 1px solid var(--gw-line); }
.gw-links li:first-child { border-top: 0; }
.gw-links a { display: block; padding: 10px 0; color: var(--gw-navy) !important; font-weight: 600; text-decoration: none; }
.gw-links a::after { content: ' →'; color: var(--gw-gold-text); }
.gw-contact__form .wpcf7 form > p, .gw-nl__form .wpcf7 form > p { margin: 0 0 14px; }
.gw-contact__form .wpcf7 :is(.inp-1, .inp-2) { width: 100%; }
/* About */
.gw-about-intro { max-width: 820px; font-size: 19px !important; color: #2B3540; margin: 0 0 24px; }
.gw-stats { list-style: none; margin: 0 0 32px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.gw-stats li { background: var(--gw-navy); color: var(--gw-cream); border-radius: 12px; padding: 20px 22px; display: flex; flex-direction: column; gap: 4px; }
.gw-stats strong { font-family: var(--gw-serif); font-size: 46px; line-height: 1; color: var(--gw-gold-light); }
.gw-stats span { font-size: 15px; color: #C9D0D6; }
.gw-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gw-feature-grid .gw-info-card { margin: 0; }
.gw-timeline { margin: 40px 0 0; }
.gw-timeline ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--gw-line); margin-left: 8px; }
.gw-timeline li { position: relative; padding: 0 0 20px 26px; }
.gw-timeline li::before { content: ''; position: absolute; left: -8px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--gw-gold); border: 2px solid var(--gw-cream); }
.gw-timeline__y { font-family: var(--gw-serif); font-weight: 600; font-size: 26px; color: var(--gw-navy); }
.gw-timeline li p { margin: 2px 0 0; }
.gw-played { margin: 28px 0 0; background: var(--gw-navy); border-radius: 12px; padding: 26px; }
.gw-played h2 { color: var(--gw-cream) !important; }
.gw-played ul { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gw-played li { color: var(--gw-cream); border: 1px solid #3A4A5A; border-radius: 999px; padding: 6px 14px; font-size: 15px !important; }
.gw-on-dark { box-shadow: inset 0 0 0 2px var(--gw-cream) !important; color: var(--gw-cream) !important; }
/* Team */
.gw-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.gw-team__card { background: #fff; border: 1px solid var(--gw-line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }
.gw-team__photo { aspect-ratio: 4 / 5; background: #EFE8DA; overflow: hidden; }
.gw-team__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; display: block; }
.gw-team__info { padding: 18px 20px 22px; }
.gw-team__info h2 { font-size: 28px !important; margin: 0 0 4px; }
.gw-team__role { font-size: 13px !important; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gw-gold-text); font-weight: 700; margin: 0 0 10px; }
.gw-team__info p:last-child { font-size: 16px !important; color: #2B3540; margin: 0; }
/* Newsletter */
.gw-nl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 20px; align-items: start; }
.gw-nl__benefits { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.gw-nl__benefits li { background: #fff; border: 1px solid var(--gw-line); border-left: 4px solid var(--gw-gold); border-radius: 10px; padding: 16px 18px; }
.gw-nl__benefits h3 { font-size: 21px !important; }
.gw-nl__benefits p { margin: 0; font-size: 16px !important; color: var(--gw-muted); }
/* Returns */
.gw-rule h2 { font-size: 28px !important; }
.gw-rule--key { border: 2px solid var(--gw-navy); }
.gw-rule--tip { background: #FBF8F2; }
.gw-rule__body ul { padding-left: 20px; }
.gw-rule__body :is(.row-alert, .row-callout) { background: #F3EBD6; border-left: 4px solid var(--gw-gold); border-radius: 0 8px 8px 0; padding: 12px 16px; margin: 0 0 12px; font-size: 17px; }
@media (max-width: 900px) {
  .gw-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gw-contact, .gw-nl { grid-template-columns: 1fr; }
  .gw-team { grid-template-columns: 1fr; }
  .gw-team__photo { aspect-ratio: 1 / 1; }
  .gw-feature-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .gw-info-hero { padding-top: 28px; }
  .gw-info-card { padding: 18px; }
  .gw-stats { grid-template-columns: 1fr; }
  .gw-stats li { flex-direction: row; align-items: baseline; gap: 12px; }
  .gw-stats strong { font-size: 36px; }
}

/* =================== Blog (v2 rebuild) =================== */
.gw-blog h1 { font-size: clamp(38px, 5.2vw, 58px) !important; line-height: 1.03 !important; margin: 10px 0 12px; }
.gw-blog-topics { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.gw-blog-topics a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border: 1px solid #D9CFBC; border-radius: 999px; background: #fff; color: var(--gw-navy) !important; text-decoration: none !important; font-weight: 600; font-size: 15px; }
.gw-blog-topics a span { color: var(--gw-muted); font-weight: 400; font-size: 13px; }
.gw-blog-topics a[aria-current] { background: var(--gw-navy); border-color: var(--gw-navy); color: var(--gw-cream) !important; }
.gw-blog-topics a[aria-current] span { color: var(--gw-gold-light); }
.gw-blog-feat { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); background: #fff; border: 1px solid var(--gw-line); border-radius: 12px; overflow: hidden; margin-bottom: 24px; }
.gw-blog-feat__img { display: block; min-height: 300px; background: #EFE8DA; }
.gw-blog-feat__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gw-blog-feat__txt { padding: 28px; display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.gw-blog-feat h2 { font-size: clamp(28px, 3.4vw, 38px) !important; line-height: 1.1 !important; margin: 0 !important; }
.gw-blog-feat h2 a { color: var(--gw-navy) !important; text-decoration: none !important; }
.gw-blog-feat p { margin: 0; font-size: 17px !important; color: #2B3540; }
.gw-blog-meta { font-size: 14px; color: var(--gw-muted); }
.gw-blog-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.gw-blog-card { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--gw-line); border-radius: 12px; overflow: hidden; color: var(--gw-navy) !important; text-decoration: none !important; transition: border-color .2s, transform .2s; }
.gw-blog-card:hover { border-color: var(--gw-gold); transform: translateY(-2px); }
.gw-blog-card__img { display: block; aspect-ratio: 16 / 10; background: #EFE8DA; overflow: hidden; }
.gw-blog-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gw-blog-card__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.gw-blog-card__cat { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gw-gold-text); font-weight: 700; }
.gw-blog-card__t { font-family: var(--gw-serif); font-weight: 600; font-size: 23px; line-height: 1.15; }
.gw-blog-card__x { font-size: 15px; color: var(--gw-muted); line-height: 1.5; }
.gw-blog-card .gw-blog-meta { margin-top: auto; }
.gw-blog-pages { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 32px 0 0; }
.gw-blog-pages a { min-width: 44px; min-height: 44px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #D9CFBC; border-radius: 8px; background: #fff; color: var(--gw-navy) !important; text-decoration: none !important; font-weight: 600; }
.gw-blog-pages a[aria-current] { background: var(--gw-navy); border-color: var(--gw-navy); color: var(--gw-cream) !important; }
@media (max-width: 900px) { .gw-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gw-blog-feat { grid-template-columns: 1fr; } .gw-blog-feat__img { min-height: 0; aspect-ratio: 16 / 9; } }
@media (max-width: 600px) {
  .gw-blog-topics { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px 20px; padding: 0 16px 4px; }
  .gw-blog-topics a { flex: 0 0 auto; }
  .gw-blog-grid { grid-template-columns: 1fr; gap: 14px; }
  .gw-blog-feat__txt { padding: 18px; }
}

/* Copies & refacing (v2) */
.gw-svc { margin: 0 0 36px; }
.gw-svc h2 { margin: 0 0 6px !important; }
.gw-svc__lead { font-size: 17px !important; color: var(--gw-muted); max-width: 760px; margin: 0 0 18px; }
.gw-svc__t { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: 28px !important; margin: 0 !important; line-height: 1.12; }
.gw-svc__t a { color: var(--gw-navy) !important; text-decoration: none !important; }

/* Refacing request form (v2) */
body.page-id-9372 .gw-text-body { max-width: 820px; }
body.page-id-9372 .gw-text-body > p { font-size: 18px !important; color: #2B3540; }
body.page-id-9372 .wpcf7 { background: #fff; border: 1px solid var(--gw-line); border-radius: 12px; padding: 24px; margin-top: 12px; }
.wpcf7 .inp-1, .wpcf7 .inp-2 { margin: 0 0 14px; }
.wpcf7 .inp-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.wpcf7 .inp-1 label, .wpcf7 .inp-2 label { display: flex; flex-direction: column; gap: 6px; }
.wpcf7 .cf-label { font-weight: 600; font-size: 15px; color: var(--gw-navy); }
.wpcf7 .cf-req { color: var(--gw-gold-text); }
.wpcf7 input[type="file"] { font-size: 15px; padding: 10px 0; }
@media (max-width: 600px) { .wpcf7 .inp-2 { grid-template-columns: 1fr; } body.page-id-9372 .wpcf7 { padding: 16px; } }

/* Mouthpieces page: bass clarinet grouped by facing, synthetic + hard rubber side by side */
.gw-bass-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gw-bass-facing { background: #fff; border: 1px solid var(--gw-line); border-radius: 12px; padding: 14px 14px 16px; }
.gw-bass-facing h4 { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: 26px !important; margin: 0 0 2px !important; color: var(--gw-navy); }
.gw-bass-facing h4 span { font-family: var(--gw-sans); font-size: 14px; font-weight: 600; color: var(--gw-muted); }
.gw-bass-facing .gw-bass-spec { justify-content: flex-start !important; padding: 0 0 10px !important; }
body .gw-bass-facing ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
.gw-bass-facing ul.products li.product { border-color: var(--gw-line); }
.gw-bass-facing ul.products li.product .woocommerce-loop-product__title { font-size: 16px !important; }
.gw-bass-facing ul.products li.product .gw-specs { display: none; }
@media (max-width: 900px) { .gw-bass-grid { grid-template-columns: 1fr; } }

/* Bass clarinet: one clean card per facing (replaces the 6 narrow cards) */
.gw-bass-facing { padding: 0 !important; overflow: hidden; display: flex; flex-direction: column; }
.gw-bass-img { display: block; aspect-ratio: 4 / 3; background: #F2F1EF; overflow: hidden; }
.gw-bass-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.gw-bass-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 4px; }
.gw-bass-facing h4 { font-size: 30px !important; }
.gw-bass-opts { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.gw-bass-opts a { display: grid; grid-template-columns: 44px 1fr auto 16px; align-items: center; gap: 12px; padding: 8px 12px 8px 8px; border: 1px solid var(--gw-line); border-radius: 10px; color: var(--gw-navy) !important; text-decoration: none !important; transition: border-color .2s, background .2s; }
.gw-bass-opts a:hover { border-color: var(--gw-gold); background: #FBF8F2; }
.gw-bass-opts img { width: 44px !important; height: 44px !important; object-fit: contain; border-radius: 6px; background: #F2F1EF; }
.gw-bass-mat { font-weight: 700; font-size: 16px; }
.gw-bass-price { font-size: 16px; color: var(--gw-navy); white-space: nowrap; }
.gw-bass-price del { color: var(--gw-muted); font-size: 13px; margin-right: 4px; }
.gw-bass-go { color: var(--gw-gold-text); font-weight: 700; }
@media (max-width: 900px) { .gw-bass-facing { flex-direction: row; } .gw-bass-img { flex: 0 0 38%; aspect-ratio: auto; } .gw-bass-body { flex: 1; min-width: 0; } }
@media (max-width: 520px) { .gw-bass-facing { flex-direction: column; } .gw-bass-img { aspect-ratio: 16 / 9; } }

/* Bass clarinet v3: a Synthetic row and a Hard rubber row, each card with its own uncropped photo */
.gw-bass-row { margin: 0 0 22px; }
.gw-bass-row__t { font-family: var(--gw-sans) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 2px; text-transform: uppercase; color: var(--gw-gold-text) !important; margin: 0 0 10px !important; }
.gw-bass-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gw-bass-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--gw-line); border-radius: 12px; overflow: hidden; color: var(--gw-navy) !important; text-decoration: none !important; transition: border-color .2s, transform .2s; }
.gw-bass-card:hover { border-color: var(--gw-gold); transform: translateY(-2px); }
.gw-bass-card__img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: #F2F1EF; padding: 12px; overflow: hidden; }
.gw-bass-card__img img { width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; object-fit: contain !important; display: block; }
.gw-bass-card__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 4px; }
.gw-bass-card__name { font-family: var(--gw-serif); font-weight: 600; font-size: 28px; line-height: 1.1; }
.gw-bass-card__name small { font-family: var(--gw-sans); font-size: 14px; font-weight: 600; color: var(--gw-muted); }
.gw-bass-card .gw-bass-spec { display: flex !important; justify-content: flex-start !important; padding: 0 !important; }
.gw-bass-card__price { font-size: 20px; font-weight: 600; margin-top: 4px; }
.gw-bass-card__go { margin-top: 6px; font-size: 15px; font-weight: 700; color: var(--gw-gold-text); }
@media (max-width: 900px) { .gw-bass-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .gw-bass-card__name { font-size: 22px; } .gw-bass-card__go { display: none; } }
@media (max-width: 600px) {
  .gw-bass-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 62%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; }
  .gw-bass-card { scroll-snap-align: start; }
  .gw-bass-card__body { padding: 12px; }
  .gw-bass-card .gw-bass-spec { flex-direction: column !important; gap: 0 !important; }
}

/* Homepage hero photo: keep the mouthpiece tip in view (portrait photo, crop from the bottom instead) */
.gw-v2-hero__img .gw-v2-cover img, .gw-v2-hero__img img { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: 50% 18% !important; }
.gw-v2-hero__img .elementor-widget-container, .gw-v2-hero__img .gw-v2-cover { height: 100%; }
@media (max-width: 767px) {
  .e-con.gw-v2-hero__img { height: auto !important; aspect-ratio: 4 / 5; max-height: 72vh; }
}

/* Product page buy row: quantity + Add to cart + Buy Now side by side (old theme stacked them in a centred column) */
body.single-product div.product .summary, body.single-product div.product .summary > * { text-align: left !important; }
body.single-product .summary .price { justify-content: flex-start !important; }
body.single-product .summary .price ins { text-decoration: none !important; font-weight: 600; }
body.single-product .summary .price del { opacity: .6; margin-right: 8px; }
body.single-product .summary .stock { margin: 0 0 10px !important; font-size: 15px !important; color: var(--gw-gold-text) !important; }
body.single-product form.cart:not(.variations_form),
body.single-product .woocommerce-variation-add-to-cart {
  display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: stretch !important; justify-content: flex-start !important; gap: 8px !important; width: 100% !important; max-width: 560px;
}
body.single-product form.cart .quantity { flex: 0 0 64px !important; width: 64px !important; margin: 0 !important; }
body.single-product form.cart .quantity input.qty { width: 64px !important; }
body.single-product form.cart .single_add_to_cart_button,
body.single-product form.cart .pisol_buy_now_button { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; margin: 0 !important; white-space: nowrap; }
@media (max-width: 400px) {
  body.single-product form.cart .single_add_to_cart_button, body.single-product form.cart .pisol_buy_now_button { font-size: 15px !important; padding: 0 8px !important; }
}

/* Beat the old theme's "#page ... { width: 180px !important; display: table }" rule */
body.single-product #page form.cart .quantity { width: 64px !important; flex: 0 0 64px !important; display: block !important; margin: 0 !important; }
body.single-product #page form.cart .single_add_to_cart_button,
body.single-product #page form.cart .pisol_single_buy_now,
body.single-product #page form.cart .pisol_buy_now_button,
body.single-product #page .variations_form button.single_add_to_cart_button { width: auto !important; flex: 1 1 0 !important; min-width: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; margin: 0 !important; }
body.single-product #page .variations_form .gw-opt { width: auto !important; display: flex !important; }

/* Side margins on all rebuilt pages (phones included), cannot be overridden */
body main#content.gw-page, body main#content.gw-faq, body main#content.gw-art, body main#content.gw-tb { box-sizing: border-box !important; padding-left: 20px !important; padding-right: 20px !important; }
@media (max-width: 600px) { body main#content.gw-page, body main#content.gw-faq, body main#content.gw-art { padding-left: 16px !important; padding-right: 16px !important; } }
@media (max-width: 767px) { body main#content.gw-tb { padding-left: 0 !important; padding-right: 0 !important; } }
/* Blog: topic buttons + navy serif headlines, stronger than the global link rule */
body .gw-blog .gw-blog-topics a { display: inline-flex !important; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px !important; border: 1px solid #D9CFBC !important; border-radius: 999px !important; background: #fff !important; color: var(--gw-navy) !important; font-size: 15px !important; font-weight: 600 !important; text-decoration: none !important; white-space: nowrap; }
body .gw-blog .gw-blog-topics a[aria-current] { background: var(--gw-navy) !important; border-color: var(--gw-navy) !important; color: var(--gw-cream) !important; }
body .gw-blog .gw-blog-feat h2 a, body .gw-blog .gw-blog-card__t { font-family: var(--gw-serif) !important; font-weight: 600 !important; color: var(--gw-navy) !important; text-decoration: none !important; }
body .gw-blog .gw-blog-feat h2 { font-size: clamp(28px, 7vw, 38px) !important; line-height: 1.1 !important; }

/* Colour row hidden when the chosen version only comes in black (BE, BES, B) */
body.single-product table.variations tr.gw-row-bore-auto { display: none !important; }

/* Product page: "Complete your setup" + related headings */
.gw-setup { max-width: 1200px; margin: 32px auto 8px; padding: 0 20px; clear: both; }
.gw-setup h2, body.single-product .related.products > h2 { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: clamp(26px, 3.2vw, 34px) !important; color: var(--gw-navy) !important; margin: 0 0 14px !important; text-align: left !important; }
.gw-setup__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.gw-setup__list a { display: grid; grid-template-columns: 64px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 10px; background: #fff; border: 1px solid var(--gw-line); border-radius: 10px; color: var(--gw-navy) !important; text-decoration: none !important; height: 100%; transition: border-color .2s; }
.gw-setup__list a:hover { border-color: var(--gw-gold); }
.gw-setup__list img { grid-row: 1 / span 2; width: 64px !important; height: 64px !important; object-fit: cover; border-radius: 8px; background: #F2F1EF; }
.gw-setup__t { font-weight: 700; font-size: 15px; line-height: 1.25; align-self: end; }
.gw-setup__p { font-size: 14px; color: var(--gw-muted); align-self: start; }
.gw-setup__p del { opacity: .6; }
@media (max-width: 900px) { .gw-setup__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .gw-setup__list { grid-template-columns: 1fr; } .gw-setup { padding: 0 16px; } }

/* Home matchmaker: keep the gold form inside its card on phones (old snippet made it full-bleed) */
.gw-v2-find #gw-mm { width: auto !important; position: static !important; left: auto !important; margin: 0 !important; border-radius: 10px !important; }
.gw-v2-find .gwm-sub { display: none !important; }
@media (max-width: 767px) { .gw-v2-find #gw-mm { padding: 16px !important; } .gw-v2-find .gwm-row { gap: 12px !important; } }

/* Test before buying: Test Box is the one main option; custom test moved to the bottom */
.gw-tbb-ways.gw-tbb-ways--single { grid-template-columns: 1fr !important; max-width: 760px; margin-left: auto; margin-right: auto; }
.gw-tbb-custom { margin-top: 40px; }
.gw-tbb-custom .gw-tbb-note { font-size: 14px; color: var(--gw-muted); margin: 10px 0 16px; }
.gw-tb-custom { padding-top: 28px; border-top: 1px solid var(--gw-line); }

/* Home Test Box photo: show the whole (square) photo, no crop */
.gw-v2-tb-img img { height: auto !important; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 50%; max-width: 100%; }

/* Test Box hero: show the whole square photo (box title was cropped) */
.gw-tb-hero__media img { max-height: none !important; height: auto !important; aspect-ratio: 1 / 1; object-fit: cover; }
@media (min-width: 768px) { .gw-tb-hero__media img { max-height: 520px !important; width: auto !important; max-width: 100%; margin: 0 auto; } }

/* Product cards: button text centred in the button, calmer price */
body ul.products li.product a.button,
body ul.products li.product .button,
body ul.products li.product .added_to_cart { display: inline-flex !important; align-items: center !important; justify-content: center !important; min-height: 46px !important; height: auto !important; padding: 0 22px !important; line-height: 1.2 !important; font-size: 16px !important; border-radius: 6px !important; margin-bottom: 18px !important; }
body ul.products li.product .price { font-size: 19px !important; font-weight: 600 !important; color: var(--gw-navy) !important; }
body ul.products li.product .price .gw-from, .price .gw-from { font-size: .8em; font-weight: 400; color: var(--gw-muted); }

/* Product card buttons: same look everywhere as on the home page (old style.css forced pill/Roboto via #page/#primary) */
html body #page ul.products li.product .button,
html body #primary ul.products li.product .button,
html body #primary .related .button,
html body #page .related ul.products li.product .button,
html body ul.products li.product .button {
  background: var(--gw-gold) !important; color: var(--gw-navy) !important;
  font-family: var(--gw-sans) !important; font-weight: 700 !important; font-size: 16px !important;
  border-radius: 6px !important; border: 0 !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  min-height: 46px !important; height: auto !important; width: auto !important; max-width: calc(100% - 32px);
  padding: 0 22px !important; line-height: 1.2 !important; white-space: nowrap; text-align: center;
}
html body #page ul.products li.product .button:hover,
html body #primary ul.products li.product .button:hover,
html body ul.products li.product .button:hover { background: var(--gw-gold-light) !important; color: var(--gw-navy) !important; }
html body ul.products li.product .price, html body #primary ul.products li.product .price { color: var(--gw-navy) !important; font-family: var(--gw-sans) !important; }

/* ===== One button system across the new site: same shape, font and height everywhere.
   Colours: gold = main action, navy = buy now / checkout / send, outline = secondary. ===== */
html body .button:not(.wc-forward),
html body #page .button:not(.wc-forward),
html body #primary .button:not(.wc-forward),
html body a.button,
html body #page a.button,
html body #primary a.button,
html body button.button,
html body #page button.button,
html body #primary button.button,
html body input.button,
html body #page input.button,
html body #primary input.button,
html body .single_add_to_cart_button,
html body #page .single_add_to_cart_button,
html body #primary .single_add_to_cart_button,
html body.single-product #primary form.cart .single_add_to_cart_button,
html body .pisol_single_buy_now,
html body #page .pisol_single_buy_now,
html body #primary .pisol_single_buy_now,
html body.single-product #primary form.cart .pisol_single_buy_now,
html body .pisol_buy_now_button,
html body #page .pisol_buy_now_button,
html body #primary .pisol_buy_now_button,
html body.single-product #primary form.cart .pisol_buy_now_button,
html body .checkout-button,
html body #page .checkout-button,
html body #primary .checkout-button,
html body #place_order,
html body #page #place_order,
html body #primary #place_order,
html body .wpcf7-submit,
html body #page .wpcf7-submit,
html body #primary .wpcf7-submit,
html body input[type="submit"].wpcf7-submit,
html body #page input[type="submit"].wpcf7-submit,
html body #primary input[type="submit"].wpcf7-submit,
html body .elementor-button,
html body #page .elementor-button,
html body #primary .elementor-button,
html body .gw-tb-btn,
html body #page .gw-tb-btn,
html body #primary .gw-tb-btn,
html body .gw-art-cta__ghost,
html body #page .gw-art-cta__ghost,
html body #primary .gw-art-cta__ghost,
html body .custom-add-to-cart,
html body #page .custom-add-to-cart,
html body #primary .custom-add-to-cart,
html body .wc-block-components-checkout-place-order-button,
html body #page .wc-block-components-checkout-place-order-button,
html body #primary .wc-block-components-checkout-place-order-button {
  border-radius: 6px !important; font-family: var(--gw-sans) !important; font-weight: 700 !important; font-size: 16px !important;
  min-height: 50px !important; height: auto !important; line-height: 1.2 !important; letter-spacing: 0 !important; text-transform: none !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important; text-align: center !important; border: 0 !important;
}
html body #page ul.products li.product .button, html body ul.products li.product .button { min-height: 50px !important; }
html body #page .woocommerce-orders-table .button, html body .woocommerce-orders-table .button.button { min-height: 38px !important; font-size: 14px !important; border-radius: 6px !important; }
#custom-quantity, #testen-form .custom-quantity { border-radius: 6px !important; }

/* Product cards: image is a plain square, no extra grey space above/below; mouthpieces shown a bit larger */
html body ul.products li.product a img,
html body #page ul.products li.product a img,
html body #primary ul.products li.product a img {
  width: 100% !important; height: auto !important; min-height: 0 !important; max-height: none !important;
  aspect-ratio: 1 / 1 !important; object-fit: contain !important; object-position: 50% 50% !important; margin: 0 0 10px !important;
}

/* Top bar: free US shipping */
.gw-topbar { background: var(--gw-gold); color: var(--gw-navy); text-align: center; font-family: var(--gw-sans); font-size: 14px; font-weight: 600; line-height: 1.3; padding: 7px 16px; }
.gw-topbar strong { font-weight: 800; }
/* Cart / checkout: progress to free shipping */
.gw-ship-note { display: flex; flex-direction: column; gap: 8px; background: #fff; border: 1px solid var(--gw-line); border-left: 4px solid var(--gw-gold); border-radius: 6px; padding: 12px 14px; margin: 0 0 18px; font-size: 15px; color: var(--gw-navy); }
.gw-ship-note.is-free { border-left-color: #3C7A4E; }
.gw-ship-note__bar { display: block; height: 6px; background: #EFE8DA; border-radius: 3px; overflow: hidden; }
.gw-ship-note__bar i { display: block; height: 100%; background: var(--gw-gold); }
.gw-ship-note.is-free .gw-ship-note__bar i { background: #3C7A4E; }

/* Shop notices (errors / messages / info): readable, same look everywhere */
html body .woocommerce-error, html body #primary .woocommerce-error, html body .woocommerce-notices-wrapper .woocommerce-error,
html body .woocommerce-message, html body #primary .woocommerce-message,
html body .woocommerce-info, html body #primary .woocommerce-info {
  background: #fff !important; color: var(--gw-navy) !important; border: 1px solid var(--gw-line) !important; border-left: 4px solid var(--gw-gold) !important; border-top: 1px solid var(--gw-line) !important;
  border-radius: 6px !important; padding: 14px 16px 14px 46px !important; font-family: var(--gw-sans) !important; font-size: 15px !important; list-style: none !important;
}
html body .woocommerce-error { border-left-color: #B3261E !important; }
html body .woocommerce-error li, html body .woocommerce-error li * { color: var(--gw-navy) !important; }
html body :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) a { color: var(--gw-navy) !important; font-weight: 700; text-decoration: underline !important; }
html body .woocommerce-error::before { color: #B3261E !important; }

/* ===== Checkout: compact fields + clear "ship to a different address" ===== */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); column-gap: 12px; }
body.woocommerce-checkout :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) > .form-row { grid-column: span 6; width: auto !important; float: none !important; margin: 0 0 10px !important; padding: 0 !important; }
body.woocommerce-checkout :is(#billing_first_name_field, #billing_last_name_field, #shipping_first_name_field, #shipping_last_name_field, #billing_company_field, #billing_phone_field, #shipping_company_field) { grid-column: span 3 !important; }
body.woocommerce-checkout :is(#billing_address_1_field, #shipping_address_1_field) { grid-column: span 4 !important; }
body.woocommerce-checkout :is(#billing_address_2_field, #shipping_address_2_field) { grid-column: span 2 !important; }
body.woocommerce-checkout :is(#billing_city_field, #billing_state_field, #billing_postcode_field, #shipping_city_field, #shipping_state_field, #shipping_postcode_field) { grid-column: span 2 !important; }
body.woocommerce-checkout .woocommerce :is(input.input-text, select) { min-height: 44px !important; height: 44px; padding-top: 8px !important; padding-bottom: 8px !important; }
body.woocommerce-checkout .select2-container .select2-selection--single { height: 44px !important; min-height: 44px !important; }
body.woocommerce-checkout .select2-container .select2-selection__arrow { height: 42px !important; }
body.woocommerce-checkout .form-row label { font-size: 13px !important; margin-bottom: 3px !important; line-height: 1.3; }
body.woocommerce-checkout #customer_details h3:not(#ship-to-different-address) { font-size: 22px !important; margin: 0 0 10px !important; }
body.woocommerce-checkout .woocommerce-billing-fields, body.woocommerce-checkout .woocommerce-shipping-fields, body.woocommerce-checkout .woocommerce-additional-fields { margin-bottom: 6px; }
/* address_2 label is visually hidden by WooCommerce; keep its row aligned */
body.woocommerce-checkout #billing_address_2_field label.screen-reader-text + span input, body.woocommerce-checkout #billing_address_2_field { align-self: end; }

/* "Ship to a different address?" as a clear, tappable box */
body.woocommerce-checkout h3#ship-to-different-address { margin: 8px 0 12px !important; padding: 0 !important; font-family: var(--gw-sans) !important; font-size: 17px !important; }
body.woocommerce-checkout h3#ship-to-different-address label { display: flex !important; align-items: center; gap: 12px; margin: 0 !important; padding: 14px 16px; background: #FBF8F2; border: 2px solid var(--gw-gold); border-radius: 8px; cursor: pointer; font-weight: 700 !important; font-size: 17px !important; color: var(--gw-navy) !important; }
body.woocommerce-checkout h3#ship-to-different-address label:hover { background: #F3EBD6; }
body.woocommerce-checkout h3#ship-to-different-address input[type=checkbox] { width: 22px; height: 22px; margin: 0 !important; accent-color: var(--gw-navy); flex: 0 0 22px; }
body.woocommerce-checkout h3#ship-to-different-address span::after { content: "  (gift, work or other address)"; font-weight: 400; font-size: 14px; color: var(--gw-muted); }

/* Shipping options: radio, name and price on one line, delivery date underneath */
body.woocommerce-checkout #shipping_method { margin: 0 !important; padding: 0 !important; list-style: none !important; }
body.woocommerce-checkout #shipping_method li { display: grid !important; grid-template-columns: 22px 1fr; column-gap: 8px; align-items: start; margin: 0 0 8px !important; padding: 0 !important; text-align: left; }
body.woocommerce-checkout #shipping_method li input.shipping_method { margin: 3px 0 0 !important; width: 18px; height: 18px; grid-column: 1; accent-color: var(--gw-navy); }
body.woocommerce-checkout #shipping_method li label { grid-column: 2; display: inline !important; margin: 0 !important; font-size: 15px; line-height: 1.35; }
body.woocommerce-checkout #shipping_method li > :not(input):not(label) { grid-column: 2; font-size: 12px; color: var(--gw-muted); }
body.woocommerce-checkout #order_review tr.woocommerce-shipping-totals th { vertical-align: top; }
body.woocommerce-checkout #order_review table.shop_table :is(th, td) { padding-top: 10px !important; padding-bottom: 10px !important; }

@media (max-width: 767px) {
  body.woocommerce-checkout :is(#billing_company_field, #billing_phone_field, #shipping_company_field, #billing_address_1_field, #shipping_address_1_field, #billing_address_2_field, #shipping_address_2_field, #billing_city_field, #shipping_city_field) { grid-column: span 6 !important; }
  body.woocommerce-checkout :is(#billing_state_field, #billing_postcode_field, #shipping_state_field, #shipping_postcode_field) { grid-column: span 3 !important; }
  body.woocommerce-checkout h3#ship-to-different-address span::after { content: ""; }
}

@media (min-width: 768px) { body.woocommerce-checkout :is(#billing_address_2_field, #shipping_address_2_field):has(label.screen-reader-text) { padding-top: 20px !important; } }
body.woocommerce-checkout #billing_phone_field { grid-column: span 6 !important; }

/* ===== Cart on phones: one tidy card per item (photo, name, ×) / (price × qty = subtotal) ===== */
@media (max-width: 768px) {
  body.woocommerce-cart table.shop_table_responsive { border: 0 !important; background: transparent !important; }
  body.woocommerce-cart table.shop_table_responsive thead { display: none; }
  body.woocommerce-cart table.shop_table_responsive tr.cart_item {
    display: grid !important; grid-template-columns: 64px 1fr auto; grid-template-areas: "thumb name remove" "thumb price price" "qty qty sub";
    column-gap: 12px; row-gap: 6px; align-items: center; background: #fff !important; border: 1px solid var(--gw-line); border-radius: 10px; padding: 14px !important; margin: 0 0 12px;
  }
  body.woocommerce-cart table.shop_table_responsive tr.cart_item td { display: block !important; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left !important; }
  body.woocommerce-cart table.shop_table_responsive tr.cart_item td::before { display: none !important; content: none !important; }
  body.woocommerce-cart tr.cart_item td.product-remove { grid-area: remove; align-self: start; }
  body.woocommerce-cart tr.cart_item td.product-remove a.remove { font-size: 22px !important; width: 32px; height: 32px; line-height: 30px; text-align: center; color: var(--gw-muted) !important; border-radius: 50%; }
  body.woocommerce-cart tr.cart_item td.product-thumbnail { grid-area: thumb; display: block !important; }
  body.woocommerce-cart tr.cart_item td.product-thumbnail img { width: 64px !important; height: 64px !important; object-fit: contain; background: #F1F1F0; border-radius: 8px; }
  body.woocommerce-cart tr.cart_item td.product-name { grid-area: name; font-weight: 700; font-size: 16px; line-height: 1.3; }
  body.woocommerce-cart tr.cart_item td.product-name a { color: var(--gw-navy) !important; }
  body.woocommerce-cart tr.cart_item td.product-name dl.variation { font-weight: 400; font-size: 13px; color: var(--gw-muted); margin: 2px 0 0; }
  body.woocommerce-cart tr.cart_item td.product-price { grid-area: price; font-size: 14px; color: var(--gw-muted); }
  body.woocommerce-cart tr.cart_item td.product-price::after { content: " each"; }
  body.woocommerce-cart tr.cart_item td.product-quantity { grid-area: qty; padding-top: 8px !important; border-top: 1px solid var(--gw-line) !important; }
  body.woocommerce-cart tr.cart_item td.product-subtotal { grid-area: sub; padding-top: 8px !important; border-top: 1px solid var(--gw-line) !important; text-align: right !important; font-weight: 700; font-size: 18px; align-self: stretch; display: flex !important; align-items: center; justify-content: flex-end; }
  body.woocommerce-cart tr.cart_item td.product-quantity .quantity { display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; float: none !important; }
  body.woocommerce-cart tr.cart_item td.product-quantity .quantity::before { content: "Qty"; font-size: 14px; color: var(--gw-muted); }
  body.woocommerce-cart tr.cart_item td.product-quantity input.qty { width: 64px !important; min-width: 0 !important; height: 40px !important; min-height: 40px !important; padding: 0 6px !important; text-align: center; font-size: 16px; border: 1px solid #C9BFAA !important; border-radius: 6px !important; position: static !important; }
  /* actions row (coupon / update) stays a normal block */
  body.woocommerce-cart table.shop_table_responsive tr:not(.cart_item) { display: block; }
  body.woocommerce-cart table.shop_table_responsive tr:not(.cart_item) td { display: block !important; }
}
/* Free-shipping note: amount same size as the text */
.gw-ship-note .woocommerce-Price-amount, .gw-ship-note bdi { font-size: inherit !important; font-weight: 700; }

/* Notices everywhere (account, cart, checkout, shop): a filter plugin forced a dark purple background via ".woocommerce .woocommerce-info" */
html body .woocommerce :is(.woocommerce-info, .woocommerce-message, .woocommerce-error),
html body #page .woocommerce :is(.woocommerce-info, .woocommerce-message, .woocommerce-error),
html body #page :is(.woocommerce-info, .woocommerce-message, .woocommerce-error) {
  background-color: #fff !important; background-image: none !important; color: var(--gw-navy) !important;
  border: 1px solid var(--gw-line) !important; border-left: 4px solid var(--gw-gold) !important; border-radius: 6px !important;
  padding: 14px 16px 14px 46px !important; margin: 0 0 18px !important; font-family: var(--gw-sans) !important; font-size: 15px !important;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; position: relative;
}
html body .woocommerce .woocommerce-error, html body #page .woocommerce-error { border-left-color: #B3261E !important; }
html body .woocommerce :is(.woocommerce-info, .woocommerce-message)::before { color: var(--gw-gold-text) !important; top: 50% !important; transform: translateY(-50%); left: 16px !important; }
html body .woocommerce .woocommerce-error::before { color: #B3261E !important; }
html body .woocommerce :is(.woocommerce-info, .woocommerce-message, .woocommerce-error) .button {
  order: 2; margin: 0 !important; float: none !important; background: var(--gw-navy) !important; color: var(--gw-cream) !important; text-decoration: none !important;
  min-height: 42px !important; padding: 0 18px !important; border-radius: 6px !important; font-size: 15px !important;
}

/* My Account: clean side menu (no grey box) */
body.woocommerce-account .woocommerce-MyAccount-navigation { background: transparent !important; padding: 0 !important; }
body.woocommerce-account .woocommerce-MyAccount-navigation ul { background: #fff !important; border: 1px solid var(--gw-line) !important; border-radius: 8px !important; overflow: hidden; margin: 0 !important; padding: 0 !important; list-style: none !important; box-shadow: none !important; }
body.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0 !important; border-bottom: 1px solid var(--gw-line); }
body.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 18px !important; color: var(--gw-navy) !important; font-weight: 600; text-decoration: none !important; }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--gw-navy) !important; color: var(--gw-cream) !important; }

/* Outline button on dark sections (e.g. 'See all artists' in Played by): light text + light outline */
html body .gw-art-cta__ghost.gw-on-dark, html body .gw-played .gw-art-cta__ghost, html body #page .gw-info .gw-art-cta__ghost.gw-on-dark { background: transparent !important; color: var(--gw-cream) !important; box-shadow: inset 0 0 0 2px var(--gw-cream) !important; }
html body .gw-art-cta__ghost.gw-on-dark:hover, html body .gw-played .gw-art-cta__ghost:hover { background: var(--gw-cream) !important; color: var(--gw-navy) !important; }

/* ===== Product page: price, stock and buy row (phone + desktop) ===== */
html body.single-product #primary .summary p.price,
html body.single-product #primary .summary .woocommerce-variation-price .price {
  display: flex !important; flex-wrap: wrap; align-items: baseline; justify-content: flex-start !important; gap: 4px 12px; text-align: left !important;
  margin: 14px 0 6px !important; font-family: var(--gw-sans) !important; font-size: 32px !important; font-weight: 700 !important; line-height: 1.1; color: var(--gw-navy) !important;
}
html body.single-product #primary .summary .price ins { text-decoration: none !important; background: none !important; font-weight: 700 !important; color: var(--gw-navy) !important; order: 1; }
html body.single-product #primary .summary .price del { order: 2; font-size: 19px !important; font-weight: 400 !important; color: var(--gw-muted) !important; opacity: 1 !important; margin: 0 !important; }
html body.single-product #primary .summary .price del bdi, html body.single-product #primary .summary .price del span { color: inherit !important; }
html body.single-product #primary .summary .price .gw-save { order: 3; align-self: center; font-size: 13px; font-weight: 700; letter-spacing: .3px; color: #fff; background: #B3261E; border-radius: 999px; padding: 4px 10px; line-height: 1.2; }
html body.single-product #primary .summary p.stock { text-align: left !important; margin: 0 0 14px !important; font-size: 14px !important; font-weight: 600; color: #3C7A4E !important; }
html body.single-product #primary .summary p.stock.out-of-stock { color: #B3261E !important; }
html body.single-product #primary .summary p.stock::before { content: "● "; font-size: 11px; vertical-align: 1px; }

/* Simple products: qty + Add to cart + Buy now on one even row */
html body.single-product #primary .summary form.cart:not(.variations_form):not(.grouped_form) { display: flex !important; flex-wrap: nowrap !important; align-items: stretch !important; gap: 10px !important; margin: 0 0 16px !important; }
html body.single-product #primary .summary form.cart:not(.variations_form)::before, html body.single-product #primary .summary form.cart:not(.variations_form)::after { display: none !important; }
html body.single-product #primary .summary form.cart:not(.variations_form) .quantity { flex: 0 0 74px !important; width: 74px !important; margin: 0 !important; float: none !important; }
html body.single-product #primary .summary form.cart:not(.variations_form) .quantity input.qty { width: 100% !important; min-width: 0 !important; height: 50px !important; min-height: 50px !important; margin: 0 !important; padding: 0 6px !important; text-align: center; font-size: 17px !important; border: 1px solid #C9BFAA !important; border-radius: 6px !important; background: #fff !important; }
html body.single-product #primary .summary form.cart:not(.variations_form) :is(.single_add_to_cart_button, .pisol_single_buy_now, .pisol_buy_now_button) { flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; margin: 0 !important; float: none !important; height: 50px !important; min-height: 50px !important; padding: 0 12px !important; white-space: nowrap; }
@media (max-width: 380px) { html body.single-product #primary .summary form.cart:not(.variations_form) :is(.single_add_to_cart_button, .pisol_single_buy_now, .pisol_buy_now_button) { font-size: 15px !important; padding: 0 8px !important; } }

/* Mouthpieces page: matchmaker inline (gold card) */
.gw-mp-match { background: var(--gw-gold); border-radius: 10px; padding: 16px 18px 14px; margin: 0 0 18px; }
.gw-mp-match__t { margin: 0 0 10px !important; color: var(--gw-navy); font-size: 16px; line-height: 1.4; }
.gw-mp-match .gwm-sub { display: none !important; }
html body .gw-mp-match #gw-mm { background: transparent !important; padding: 0 !important; width: auto !important; position: static !important; left: auto !important; margin: 0 !important; border-radius: 0 !important; }
.gw-mp-match .gwm-label { color: var(--gw-navy) !important; }
.gw-mp-match .gwm-fallback { margin-top: 10px !important; color: var(--gw-navy) !important; }
.gw-mp-match .gwm-fallback a { color: var(--gw-navy) !important; }
.gw-mp-match .gwm-sel-wrap select { min-height: 44px; font-size: 16px !important; }
@media (max-width: 767px) { .gw-mp-match { padding: 14px; } .gw-mp-match .gwm-row { gap: 10px !important; } }

/* ===== Variable products: chosen version's price, stock and buttons in one buy box ===== */
html body.single-product #primary .summary .single_variation_wrap { background: #fff; border: 1px solid var(--gw-line); border-radius: 10px; padding: 14px 16px 16px; margin: 12px 0 0 !important; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation.single_variation { display: flex !important; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin: 0 0 12px !important; padding: 0 !important; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation:empty,
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation[style*="display: none"] { margin: 0 !important; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-description { flex: 1 0 100%; order: 3; font-size: 14px; color: var(--gw-muted); }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-description:empty { display: none; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-price { order: 1; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-price .price { margin: 0 !important; font-size: 30px !important; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-availability { order: 2; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-availability p.stock { margin: 0 !important; text-align: right !important; }
/* buttons row inside the box */
html body.single-product #primary .summary .woocommerce-variation-add-to-cart { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: stretch !important; gap: 10px !important; margin: 0 !important; }
html body.single-product #primary .summary .woocommerce-variation-add-to-cart .quantity { flex: 0 0 74px !important; width: 74px !important; margin: 0 !important; float: none !important; }
html body.single-product #primary .summary .woocommerce-variation-add-to-cart .quantity input.qty { width: 100% !important; min-width: 0 !important; height: 50px !important; min-height: 50px !important; margin: 0 !important; padding: 0 6px !important; text-align: center; font-size: 17px !important; border: 1px solid #C9BFAA !important; border-radius: 6px !important; background: #fff !important; }
html body.single-product #primary .summary .woocommerce-variation-add-to-cart :is(.single_add_to_cart_button, .pisol_single_buy_now, .pisol_buy_now_button) { flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; margin: 0 !important; float: none !important; height: 50px !important; min-height: 50px !important; padding: 0 12px !important; white-space: nowrap; }
@media (max-width: 380px) { html body.single-product #primary .summary .woocommerce-variation-add-to-cart :is(.single_add_to_cart_button, .pisol_single_buy_now, .pisol_buy_now_button) { font-size: 15px !important; padding: 0 8px !important; } }

/* Price + stock centred (buy box and simple products) */
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation.single_variation { justify-content: center !important; text-align: center !important; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-price, html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-availability { flex: 1 0 100%; text-align: center !important; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-price .price, html body.single-product #primary .summary p.price { justify-content: center !important; text-align: center !important; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-availability p.stock, html body.single-product #primary .summary p.stock { text-align: center !important; }
html body.single-product #primary .summary .single_variation_wrap .woocommerce-variation-description { text-align: center; }
html body.single-product #primary .summary form.cart:not(.variations_form):not(.grouped_form), html body.single-product #primary .summary .woocommerce-variation-add-to-cart { justify-content: center !important; }

/* Chosen version card: dark fill, all text readable */
html body.single-product .gw-opt.is-on { background: var(--gw-navy) !important; color: var(--gw-cream) !important; }
html body.single-product .gw-opt.is-on * { color: var(--gw-cream) !important; }
html body.single-product .gw-opt.is-on .gw-opt__d { color: #C9D0D6 !important; }

/* Products with versions: no 'From $245' under the title, each version card shows its price */
html body.single-product #primary div.product.product-type-variable:not(.gw-one-price) .summary > p.price { display: none !important; }

/* New logo (Gleichweit / Clarinet Products) */
html body .gw-logo img { height: 52px !important; width: auto !important; }
@media (max-width: 767px) { html body .gw-logo img { height: 40px !important; } }
html body .gw-ftr__brand img { height: 56px !important; width: auto !important; }

/* Mouthpieces hero = Barrels hero */
.gw-mp-hero { padding: 40px 0 20px !important; max-width: 820px; }
.gw-mp-hero h1 { font-family: var(--gw-serif) !important; font-weight: 600 !important; font-size: clamp(36px, 5vw, 58px) !important; line-height: 1.05 !important; color: var(--gw-navy) !important; margin: 10px 0 14px !important; }
@media (max-width: 600px) { .gw-mp-hero { padding: 24px 0 12px !important; } }

/* Mouthpieces: no empty title box above the hero, same top spacing as Barrels */
body.term-mouthpieces .woocommerce-products-header { display: none !important; }
body.term-mouthpieces #primary, body.term-mouthpieces #main { padding-top: 0 !important; margin-top: 0 !important; }
html body.term-mouthpieces .gw-mp-hero { padding: 48px 0 24px !important; }
@media (max-width: 600px) { html body.term-mouthpieces .gw-mp-hero { padding: 28px 0 14px !important; } }

/* Mouthpieces hero: tighter to the header and to the matchmaker */
html body.term-mouthpieces .gw-mp-hero { padding: 16px 0 4px !important; }
html body.term-mouthpieces .gw-mp-hero .gw-cat-lead { margin-bottom: 8px !important; }
html body.term-mouthpieces .mcs-mp-wrap { padding-top: 0 !important; margin-top: 0 !important; }
@media (max-width: 600px) { html body.term-mouthpieces .gw-mp-hero { padding: 12px 0 4px !important; } }
