/*
Theme Name:        5 Star Labs
Theme URI:         https://5starlabs.co
Author:            Cartright Digital
Description:       5 Star Labs commerce theme, built on the proven Core research-store foundation with a distinct Source design system.
Template:          twentytwentyfive
Version:           0.1.0
Requires at least: 6.7
Requires PHP:      8.0
WC requires at least: 8.0
License:           GNU General Public License v2 or later
Text Domain:       five-star-labs
*/

/* ============================================================
   PRE-LAUNCH COMPLIANCE + FUNCTIONAL QA (v2.7.0)
   ============================================================ */
.cc-footer-legal-copy {
  display: grid;
  gap: 8px;
  max-width: 780px;
}

.cc-footer-legal-copy small {
  color: rgba(255,255,255,.52);
  font-size: 11px;
  line-height: 1.55;
}
.cc-footer-bottom { align-items: start; }
.cc-email-capture {
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(360px, 1.2fr);
  gap: 40px;
  align-items: start;
  max-width: 1400px;
  margin: 0 auto 44px;
  padding: 0 0 32px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.cc-email-capture h3 { margin: 0 0 7px; color: #fff; font-size: 18px; }
.cc-email-capture p { margin: 0; color: rgba(255,255,255,.58); font-size: 12px; line-height: 1.55; }
.cc-email-capture form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
}
.cc-email-capture input[type="email"] {
  min-height: 46px;
  box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 7px;
  background: rgba(255,255,255,.06);
  color: #fff;
  padding: 10px 12px;
  font: inherit;
}
.cc-email-capture input[type="email"]::placeholder { color: rgba(255,255,255,.5); }
.cc-email-capture button {
  min-height: 46px;
  border: 0;
  border-radius: 7px;
  padding: 0 20px;
  background: #218985;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.cc-email-capture__privacy {
	grid-column: 1 / -1;
	margin: 1px 0 0;
	color: rgba(255,255,255,.55);
	font-size: 10.5px;
	line-height: 1.45;
}
.cc-email-capture__privacy a { color: rgba(255,255,255,.8); }
.cc-email-capture__status { grid-column: 1 / -1; }
.cc-email-capture__status.is-success { color: #7bd3ce; }
.cc-email-capture__status.is-error { color: #ffaaa3; }

.cc-contact-business {
  margin: 34px 0;
  padding: 22px;
  border: 1px solid #e5e7e8;
  border-radius: 10px;
  background: #f7f9f9;
}
.cc-contact-business h2 { margin-top: 0; }
.cc-contact-business p { margin-bottom: 0; }
.cc-contact-form-wrap {
  width: min(980px, calc(100% - 48px));
  margin: 0 auto 72px;
  padding: 34px;
  border: 1px solid #b9d8d6;
  border-radius: 12px;
  background: #fff;
}
.cc-contact-form-wrap > h2 { margin: 6px 0 8px; }
.cc-contact-form-wrap > p { color: #66707a; }
.cc-contact-form { display: grid; gap: 18px; margin-top: 26px; }
.cc-form-grid,
.cc-form-coa-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.cc-contact-form label { display: grid; gap: 7px; color: #14161c; font-size: 13px; font-weight: 650; }
.cc-contact-form input:not([type="checkbox"]),
.cc-contact-form select,
.cc-contact-form textarea {
  width: 100%;
  min-height: 48px;
  box-sizing: border-box;
  border: 1px solid #d6dadd;
  border-radius: 8px;
  background: #fff;
  color: #14161c;
  font: inherit;
  font-weight: 400;
  padding: 11px 12px;
}
.cc-contact-form textarea { min-height: 150px; resize: vertical; }
.cc-contact-form input:focus,
.cc-contact-form select:focus,
.cc-contact-form textarea:focus {
  outline: 3px solid rgba(30,123,120,.14);
  border-color: #1e7b78;
}
.cc-form-consent { grid-template-columns: 20px 1fr; align-items: start; }
.cc-form-consent input { margin-top: 3px; }
.cc-form-consent span { color: #66707a; font-weight: 400; line-height: 1.5; }
.cc-contact-form .cc-btn-solid { justify-self: start; min-height: 48px; border: 0; cursor: pointer; }
.cc-form-state { margin: 18px 0 0; padding: 13px 14px; border-radius: 8px; }
.cc-form-state.is-success { background: #edf7f5; color: #155e5b; }
.cc-form-state.is-error { background: #fff1f1; color: #8a2525; }
.cc-form-honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cc-contact-alternative { margin: 22px 0 0; font-size: 13px; }

.cc-stock-alert {
  width: 100%;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #e5e7e8;
}
.cc-stock-alert--omnisend > div { width: 100%; }
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-sections-container {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 14px !important;
}
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-624ab2f927652f651edfd0ac,
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e {
  width: 100% !important;
}
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px !important;
}
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e > .omnisend-mobile-container {
  width: auto !important;
}
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd input { width: 100% !important; }
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd button { min-width: 160px; }
.cc-stock-alert form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(190px, 220px);
	gap: 9px;
	align-items: start;
}
.cc-stock-alert input[type="email"] {
  width: 100%;
  min-height: 48px;
  box-sizing: border-box;
  border: 1px solid #d6dadd;
  border-radius: 8px;
  padding: 10px 12px;
  font: inherit;
}
.cc-stock-alert button {
	width: 100%;
	min-height: 48px;
  border: 0;
  border-radius: 8px;
  padding: 0 18px;
  background: #1e7b78;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.cc-stock-alert__privacy {
	grid-column: 1 / -1;
	margin: 1px 0 0;
	color: #66707a !important;
	font-size: 11px !important;
	font-weight: 400 !important;
	line-height: 1.45;
}
.cc-stock-alert__privacy a { color: inherit; }

.cc-product-spec-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border: 1px solid #e5e7e8;
  border-radius: 10px;
  overflow: hidden;
}
.cc-product-spec-list > div {
  display: grid;
  grid-template-columns: minmax(110px, .7fr) minmax(0, 1.3fr);
  gap: 16px;
  padding: 13px 15px;
  border-bottom: 1px solid #e5e7e8;
}
.cc-product-spec-list > div:nth-child(odd) { border-right: 1px solid #e5e7e8; }
.cc-product-spec-list dt {
  color: #66707a;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.cc-product-spec-list dd { margin: 0; color: #14161c; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }

.wc-block-components-product-metadata code,
.wc-block-components-order-summary-item__description code,
.woocommerce-cart code,
.woocommerce-checkout code {
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}

@media (max-width: 767px) {
	#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	#omnisend-embedded-v2-6a70ada8047d0a041993ffdd button { min-width: 0; }
  .cc-contact-form-wrap { width: calc(100% - 32px); }
  .cc-contact-form-wrap { padding: 24px 18px; margin-bottom: 48px; }
  .cc-form-grid,
  .cc-form-coa-fields,
  .cc-product-spec-list { grid-template-columns: 1fr; }
	.cc-stock-alert form { grid-template-columns: 1fr; }
	.cc-stock-alert__privacy { grid-column: auto; }
  .cc-product-spec-list > div:nth-child(odd) { border-right: 0; }
  .cc-product-spec-list > div { grid-template-columns: 1fr; gap: 4px; }
  .cc-footer-legal-copy small { font-size: 10.5px; }
  .cc-email-capture {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px 0;
  }
  .cc-email-capture form { grid-template-columns: 1fr; }
	.cc-email-capture__privacy,
  .cc-email-capture__status { grid-column: auto; }
}

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  --cc-bg:        #ffffff;
  --cc-tile:      #f4f4f5;
  --cc-border:    rgba(0,0,0,0.08);
  --cc-border-2:  rgba(0,0,0,0.16);
  --cc-text:      #14161c;
  --cc-muted:     #8a8d95;
  --cc-muted2:    #55585f;
  --cc-btn:       #14161c;
  --cc-btn-text:  #ffffff;
  --cc-accent:    #116b6b;   /* petrol teal */
  --cc-accent-dk: #0c5050;
  --cc-radius:    14px;
  --cc-cart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E");
}

/* Typeface — Space Grotesk across the whole site (per design spec) */
body,
.woocommerce, .woocommerce-page, .cc-featured,
.cc-announce, .cc-hero, .cc-section, .cc-usp-strip, .cc-panels, .cc-footer {
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
}
body { font-size: 16px; line-height: 1.55; }

/* ============================================================
   18+ RESEARCH-USE GATE
   ============================================================ */
.cc-age-gate[hidden] {
  display: none !important;
}

.cc-age-gate {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  padding: clamp(16px, 4vw, 48px);
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
}

.cc-age-gate__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 22, 28, 0.66);
  -webkit-backdrop-filter: blur(8px) saturate(0.55);
  backdrop-filter: blur(8px) saturate(0.55);
}

.cc-age-gate__dialog {
  position: relative;
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr);
  width: min(720px, 100%);
  overflow: hidden;
  color: var(--cc-text);
  background: #ffffff;
  border: 1px solid var(--cc-border-2);
  border-radius: var(--cc-radius);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.26);
}

.cc-age-gate__marker {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 36px 28px;
  overflow: hidden;
  color: var(--cc-text);
  background: #f7f7f8;
  border-right: 1px solid var(--cc-border);
  font-size: clamp(3.5rem, 6vw, 5.4rem);
  font-weight: 700;
  letter-spacing: -0.09em;
  line-height: 0.9;
  font-variant-numeric: tabular-nums;
}

.cc-age-gate__marker::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: #101114;
  content: '';
}

.cc-age-gate__content {
  padding: clamp(28px, 5vw, 48px);
}

.cc-age-gate__brand {
  min-height: 38px;
  margin: 0 0 32px;
}

.cc-age-gate__logo-plate {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  padding: 8px 12px;
  background: #08090b;
}

.cc-age-gate__logo {
  display: block;
  width: auto;
  max-width: 172px;
  height: auto;
  max-height: 40px;
}

.cc-age-gate__fallback-logo {
  display: inline-flex;
  flex-direction: column;
  color: var(--cc-text);
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 0.9;
}

.cc-age-gate__fallback-logo small {
  margin-top: 8px;
  font-size: 0.48rem;
  font-weight: 600;
  letter-spacing: 0.48em;
}

.cc-age-gate__eyebrow {
  margin: 0 0 8px;
  color: #101114;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1.2;
  text-transform: uppercase;
}

.cc-age-gate__title {
  margin: 0;
  color: var(--cc-text);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1.02;
}

.cc-age-gate__description {
  max-width: 48ch;
  margin: 20px 0 0;
  color: var(--cc-muted2);
  font-size: 1rem;
  line-height: 1.6;
}

.cc-age-gate__confirm {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin: 28px 0 0;
  padding: 16px;
  color: var(--cc-text);
  background: #f7f7f8;
  border: 1px solid var(--cc-border-2);
  border-radius: 8px;
  cursor: pointer;
  font-size: 0.94rem;
  line-height: 1.45;
}

.cc-age-gate__confirm input {
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  accent-color: var(--cc-accent);
  cursor: pointer;
}

.cc-age-gate__confirm:focus-within {
  border-color: var(--cc-accent);
  outline: 2px solid rgba(17, 107, 107, 0.18);
  outline-offset: 2px;
}

.cc-age-gate__actions {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 12px;
  margin: 20px 0 0;
}

.cc-age-gate__button {
  min-height: 52px;
  padding: 12px 20px;
  border: 1px solid var(--cc-btn);
  border-radius: 8px;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, opacity 160ms ease;
}

.cc-age-gate__button--enter {
  color: var(--cc-btn-text);
  background: var(--cc-btn);
}

.cc-age-gate__button--enter:hover:not(:disabled),
.cc-age-gate__button--enter:focus-visible {
  color: #101114;
  background: #d3d7dc;
  border-color: #101114;
}

.cc-age-gate__button--enter:disabled {
  opacity: 0.38;
  cursor: not-allowed;
}

.cc-age-gate__button--leave {
  color: var(--cc-text);
  background: #ffffff;
  border-color: var(--cc-border-2);
}

.cc-age-gate__button--leave:hover,
.cc-age-gate__button--leave:focus-visible {
  border-color: var(--cc-text);
}

.cc-age-gate__button:focus-visible,
.cc-age-gate__legal a:focus-visible {
  outline: 2px solid #101114;
  outline-offset: 3px;
}

.cc-age-gate__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 22px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--cc-border);
  font-size: 0.78rem;
  line-height: 1.4;
}

.cc-age-gate__legal a {
  color: var(--cc-muted2);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.cc-age-gate__legal a:hover {
  color: var(--cc-accent-dk);
}

body.cc-age-gate-open {
  overflow: hidden;
}

@media (max-width: 640px) {
  .cc-age-gate {
    padding: 12px;
  }

  .cc-age-gate__dialog {
    grid-template-columns: 1fr;
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
  }

  .cc-age-gate__marker {
    min-height: 86px;
    padding: 20px 24px;
    border-right: 0;
    border-bottom: 1px solid var(--cc-border);
    font-size: 3.25rem;
  }

  .cc-age-gate__content {
    padding: 24px;
  }

  .cc-age-gate__brand {
    margin-bottom: 24px;
  }

  .cc-age-gate__description {
    margin-top: 16px;
  }
}

/* ============================================================
   HOMEPAGE — image-backed order promises (v2.8.13)
   ============================================================ */
.cc-home-main .cc-trust-section {
  margin-top: 2.25rem;
  padding: clamp(44px, 5vw, 68px) 0;
  border-top: 1px solid var(--cc-border);
  border-bottom: 1px solid var(--cc-border);
  background: #f7f7f8;
}

.cc-home-main .cc-trust-inner {
  width: min(100%, 1504px);
  margin: 0 auto;
  padding: 0 1.5rem;
  box-sizing: border-box;
}

.cc-home-main .cc-trust-head {
  max-width: 820px;
  margin: 0;
  text-align: left;
}

.cc-home-main .cc-trust-head .cc-eyebrow {
  margin: 0 0 10px;
}

.cc-home-main .cc-trust-head h2 {
  margin: 0;
  font-size: clamp(30px, 3vw, 42px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.cc-home-main .cc-trust-head > p:last-child {
  max-width: 720px;
  margin: 15px 0 0;
  color: var(--cc-muted2);
  font-size: 15px;
  line-height: 1.6;
}

.cc-home-main .cc-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid var(--cc-border);
  border-radius: 8px;
  background: #fff;
}

.cc-home-main .cc-trust-pillar {
  position: relative;
  isolation: isolate;
  min-height: clamp(370px, 28vw, 430px);
  padding: 31px 34px 32px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background-color: #f7f7f8;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  text-align: left;
}

.cc-home-main .cc-trust-pillar + .cc-trust-pillar {
  border-left: 1px solid var(--cc-border);
}

.cc-home-main .cc-trust-pillar::before {
  content: none !important;
}

.cc-home-main .cc-trust-pillar::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,.08) 0%,
    rgba(255,255,255,.12) 36%,
    rgba(255,255,255,.9) 68%,
    rgba(255,255,255,.98) 100%
  );
  pointer-events: none;
}

.cc-home-main .cc-trust-testing {
  background-image: none;
  background-position: center 46%;
}

.cc-home-main .cc-trust-dispatch {
  background-image: none;
  background-position: center 47%;
}

.cc-home-main .cc-trust-delivery {
  background-image: none;
  background-position: center 48%;
}

.cc-home-main .cc-trust-number {
  position: relative;
  z-index: 1;
  max-width: none;
  margin: 0;
  color: var(--cc-accent-dk) !important;
  font-size: clamp(52px, 4.35vw, 70px);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.075em;
  line-height: .86;
}

.cc-home-main .cc-trust-copy {
  position: relative;
  z-index: 1;
  max-width: 39ch;
  margin-top: auto;
}

.cc-home-main .cc-trust-copy h3 {
  margin: 0 0 11px;
  color: var(--cc-text);
  font-size: clamp(23px, 2vw, 29px);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.08;
  text-transform: none;
}

.cc-home-main .cc-trust-copy p {
  max-width: 40ch;
  margin: 0;
  color: var(--cc-muted2);
  font-size: 14px;
  line-height: 1.55;
}

.cc-home-main .cc-trust-copy a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 25px;
  color: var(--cc-accent-dk);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 1.3;
  text-decoration: none;
  text-transform: uppercase;
}

.cc-home-main .cc-trust-copy a span {
  transition: transform .18s ease;
}

.cc-home-main .cc-trust-copy a:hover,
.cc-home-main .cc-trust-copy a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.cc-home-main .cc-trust-copy a:hover span,
.cc-home-main .cc-trust-copy a:focus-visible span {
  transform: translateX(3px);
}

@media (max-width: 980px) and (min-width: 701px) {
  .cc-home-main .cc-trust-pillar {
    min-height: 380px;
    padding: 26px 24px 28px;
  }

  .cc-home-main .cc-trust-copy h3 {
    font-size: 22px;
  }

  .cc-home-main .cc-trust-copy p {
    font-size: 13px;
  }
}

@media (max-width: 700px) {
  .cc-home-main .cc-trust-section {
    margin-top: 1.5rem;
    padding: 34px 0 30px;
  }

  .cc-home-main .cc-trust-inner {
    padding: 0 1rem;
  }

  .cc-home-main .cc-trust-head h2 {
    font-size: 27px;
  }

  .cc-home-main .cc-trust-head > p:last-child {
    margin-top: 10px;
    font-size: 13px;
  }

  .cc-home-main .cc-trust-grid {
    grid-template-columns: 1fr;
    margin-top: 24px;
    border-radius: 7px;
  }

  .cc-home-main .cc-trust-pillar {
    min-height: 285px;
    padding: 24px 22px 24px;
  }

  .cc-home-main .cc-trust-pillar + .cc-trust-pillar {
    border-top: 1px solid var(--cc-border);
    border-left: 0;
  }

  .cc-home-main .cc-trust-pillar::after {
    background: linear-gradient(
      180deg,
      rgba(255,255,255,.08) 0%,
      rgba(255,255,255,.2) 34%,
      rgba(255,255,255,.92) 65%,
      rgba(255,255,255,.99) 100%
    );
  }

  .cc-home-main .cc-trust-number {
    font-size: 52px;
  }

  .cc-home-main .cc-trust-copy {
    max-width: 42ch;
  }

  .cc-home-main .cc-trust-copy h3 {
    margin-bottom: 8px;
    font-size: 23px;
  }

  .cc-home-main .cc-trust-copy p {
    font-size: 13px;
    line-height: 1.5;
  }

  .cc-home-main .cc-trust-copy a {
    margin-top: 18px;
    font-size: 11px;
  }
}

/* ============================================================
   COMPACT PDP SPECIFICATIONS (v2.8.16)
   One permanent source of technical, documentation and RUO data.
   ============================================================ */
body.single-product .cc-product-facts {
  --cc-facts-text: #111318;
  --cc-facts-muted: #667176;
  --cc-facts-teal: #1e8985;
  --cc-facts-dark: #172124;
  --cc-facts-pale: #eff8f7;
  --cc-facts-border: #dfe5e5;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 56px 0 36px;
  box-sizing: border-box;
  color: var(--cc-facts-text);
  background: #fff;
  border-top: 1px solid var(--cc-facts-border);
  border-bottom: 1px solid var(--cc-facts-border);
}

body.single-product .cc-product-trust-strip + .cc-product-facts {
  border-top: 0;
}

.cc-product-facts__intro {
  max-width: 780px;
  margin: 0 0 30px;
}

.cc-product-facts__intro h2 {
  margin: 0 !important;
  color: var(--cc-facts-text);
  font-size: clamp(30px, 3.5vw, 42px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.045em;
}

.cc-product-facts__intro p {
  max-width: 68ch;
  margin: 14px 0 0 !important;
  color: var(--cc-facts-muted);
  font-size: 15px;
  line-height: 1.6;
}

.cc-product-facts__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.78fr) minmax(300px, .98fr);
  align-items: stretch;
  gap: 18px;
  min-width: 0;
}

.cc-product-facts__specification,
.cc-product-facts__card,
.cc-product-facts__ruo {
  box-sizing: border-box;
  border-radius: 12px;
}

.cc-product-facts__specification {
  min-width: 0;
  padding: 34px;
  color: #fff;
  background: var(--cc-facts-dark);
  border: 1px solid var(--cc-facts-dark);
}

.cc-product-facts__label {
  margin: 0 0 10px !important;
  color: var(--cc-facts-teal);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.cc-product-facts__specification .cc-product-facts__label {
  color: #79c9c5;
}

.cc-product-facts__specification h3,
.cc-product-facts__card h3 {
  margin: 0 !important;
  font-size: clamp(21px, 2.1vw, 27px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.035em;
}

.cc-product-facts__specification h3 {
  color: #fff;
}

.cc-product-facts__specification dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 22px;
  margin: 24px 0 0;
}

.cc-product-facts__specification dl > div {
  min-width: 0;
  padding: 14px 0 15px;
  border-top: 1px solid rgba(255, 255, 255, .15);
}

.cc-product-facts__specification dt {
  margin: 0 0 6px;
  color: #86c9c6;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cc-product-facts__specification dd {
  min-width: 0;
  margin: 0;
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.cc-product-facts__side {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
}

.cc-product-facts__card {
  flex: 1 1 0;
  min-width: 0;
  padding: 28px 29px;
  background: #fff;
  border: 1px solid var(--cc-facts-border);
}

.cc-product-facts__coa {
  background: var(--cc-facts-pale);
  border-color: #d2e7e5;
}

.cc-product-facts__card h3 {
  color: var(--cc-facts-text);
}

.cc-product-facts__card > p:not(.cc-product-facts__label) {
  margin: 15px 0 19px !important;
  color: var(--cc-facts-muted);
  font-size: 13px;
  line-height: 1.6;
}

.cc-product-facts__coa a {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--cc-facts-teal);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: underline;
  text-decoration-color: #8abebb;
  text-underline-offset: 4px;
}

.cc-product-facts__coa a:hover {
  color: #176f6c;
}

.cc-product-facts__coa a:focus-visible {
  outline: 3px solid rgba(30, 137, 133, .24);
  outline-offset: 4px;
}

.cc-product-facts__storage ol {
  margin: 19px 0 0;
  padding: 0;
  list-style: none;
}

.cc-product-facts__storage li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin: 0;
}

.cc-product-facts__storage li + li {
  margin-top: 17px;
}

.cc-product-facts__storage li > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: var(--cc-facts-teal);
  background: #fff;
  border: 1px solid #c7dedc;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.cc-product-facts__storage strong {
  display: block;
  margin: 1px 0 4px;
  color: var(--cc-facts-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.cc-product-facts__storage li p {
  margin: 0 !important;
  color: var(--cc-facts-muted);
  font-size: 12px;
  line-height: 1.5;
}

.cc-product-facts__ruo {
  display: flex;
  align-items: center;
  gap: 17px;
  width: 100%;
  min-width: 0;
  margin-top: 18px;
  padding: 20px 26px;
  background: #fff;
  border: 1px solid var(--cc-facts-border);
  border-left: 4px solid var(--cc-facts-teal);
}

.cc-product-facts__ruo > span {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 46px;
  height: 46px;
  color: var(--cc-facts-teal);
  background: var(--cc-facts-pale);
  border-radius: 50%;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
}

.cc-product-facts__ruo strong {
  display: block;
  margin: 0 0 3px;
  color: var(--cc-facts-text);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
}

.cc-product-facts__ruo p {
  margin: 0 !important;
  color: var(--cc-facts-muted);
  font-size: 13px;
  line-height: 1.55;
}

@media (max-width: 900px) {
  .cc-product-facts__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-product-facts__side {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-product-facts__side--single {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 680px) {
  body.single-product .cc-product-facts {
    padding: 42px 0;
  }

  .cc-product-facts__intro {
    margin-bottom: 25px;
  }

  .cc-product-facts__intro h2 {
    font-size: clamp(28px, 8vw, 36px);
  }

  .cc-product-facts__side,
  .cc-product-facts__specification dl {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-product-facts__specification,
  .cc-product-facts__card {
    padding: 25px 23px;
  }

  .cc-product-facts__ruo {
    align-items: flex-start;
    padding: 19px;
  }
}

@media (max-width: 400px) {
  .cc-product-facts__intro h2 {
    font-size: 27px;
  }

  .cc-product-facts__ruo {
    gap: 13px;
  }

  .cc-product-facts__ruo > span {
    width: 40px;
    height: 40px;
  }
}

/* Inline product FAQ close above the footer (v2.8.19). */
.cc-product-page-faq {
  width: 100%;
  min-width: 0;
  margin: 34px 0 0;
  padding: 0;
}

.cc-product-page-faq > h2 {
  margin: 0 0 22px !important;
  color: #111318;
  font-size: clamp(25px, 2.8vw, 34px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.04em;
}

.cc-product-page-faq__items {
  width: 100%;
  border-top: 1px solid #dfe5e5;
}

.cc-product-page-faq__item {
  margin: 0;
  padding: 0;
  background: #fff;
  border-bottom: 1px solid #dfe5e5;
}

.cc-product-page-faq__item summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px;
  gap: 22px;
  align-items: center;
  min-height: 66px;
  padding: 15px 4px;
  box-sizing: border-box;
  color: #111318;
  cursor: pointer;
  list-style: none;
}

.cc-product-page-faq__item summary::-webkit-details-marker {
  display: none;
}

.cc-product-page-faq__item summary > span:first-child {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.cc-product-page-faq__item summary:hover {
  color: #1e8985;
}

.cc-product-page-faq__item summary:focus-visible {
  outline: 3px solid rgba(30, 137, 133, .24);
  outline-offset: -3px;
}

.cc-product-page-faq__toggle {
  position: relative;
  display: block;
  width: 30px;
  height: 30px;
  color: #1e8985;
  border: 1px solid #c7dedc;
  border-radius: 50%;
}

.cc-product-page-faq__toggle::before,
.cc-product-page-faq__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%);
  transition: transform 150ms ease, opacity 150ms ease;
}

.cc-product-page-faq__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.cc-product-page-faq__item[open] .cc-product-page-faq__toggle::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0deg);
}

.cc-product-page-faq__answer {
  max-width: 820px;
  padding: 0 56px 24px 4px;
}

.cc-product-page-faq__answer p {
  margin: 0 !important;
  color: #667176;
  font-size: 14px;
  line-height: 1.65;
}

.cc-product-page-faq__answer a {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  margin-top: 13px;
  color: #1e8985;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: underline;
  text-decoration-color: #8abebb;
  text-underline-offset: 4px;
}

.cc-product-page-faq__answer a:hover {
  color: #176f6c;
}

@media (max-width: 580px) {
  .cc-product-page-faq {
    margin-top: 28px;
  }

  .cc-product-page-faq > h2 {
    margin-bottom: 18px !important;
    font-size: 27px;
  }

  .cc-product-page-faq__item summary {
    gap: 16px;
    min-height: 62px;
    padding: 14px 2px;
  }

  .cc-product-page-faq__item summary > span:first-child {
    font-size: 15px;
  }

  .cc-product-page-faq__answer {
    padding: 0 42px 21px 2px;
  }

  .cc-product-page-faq__answer p {
    font-size: 13px;
  }
}

/*
 * v2.5.97 — WordPress Shortcode blocks can auto-wrap inline fragments from a
 * product template in paragraph tags. A direct-child paragraph is never part
 * of the Core card contract (media link + card body), so remove that injected
 * wrapper. The two inner rules neutralise the same formatting around the CAS
 * spacer and action link without affecting legitimate card content.
 */
.woocommerce ul.products li.product > p,
.woocommerce-page ul.products li.product > p,
.cc-featured ul.products li.product > p {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce ul.products li.product .cc-card-body > p:empty,
.woocommerce-page ul.products li.product .cc-card-body > p:empty,
.cc-featured ul.products li.product .cc-card-body > p:empty {
  display: none !important;
  margin: 0 !important;
}

.woocommerce ul.products li.product .cc-card-cas > br:first-child,
.woocommerce-page ul.products li.product .cc-card-cas > br:first-child,
.cc-featured ul.products li.product .cc-card-cas > br:first-child {
  display: none !important;
}

.woocommerce ul.products li.product .cc-card-foot > p,
.woocommerce-page ul.products li.product .cc-card-foot > p,
.cc-featured ul.products li.product .cc-card-foot > p {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 2.5.95 — natural two-part product cards; no implicit grid/clearfix rows */
.cc-product-catalog ul.products,
.cc-home-featured ul.products,
.cc-related-grid ul.products,
.cc-product-support-grid ul.products,
.cc-featured ul.products,
.woocommerce ul.products,
.woocommerce-page ul.products {
  align-items: start !important;
  align-content: start !important;
  grid-auto-rows: auto !important;
}

.cc-product-catalog ul.products::before,
.cc-product-catalog ul.products::after,
.cc-home-featured ul.products::before,
.cc-home-featured ul.products::after,
.cc-related-grid ul.products::before,
.cc-related-grid ul.products::after,
.cc-product-support-grid ul.products::before,
.cc-product-support-grid ul.products::after,
.cc-featured ul.products::before,
.cc-featured ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
.cc-product-catalog ul.products li.product::before,
.cc-product-catalog ul.products li.product::after,
.cc-home-featured ul.products li.product::before,
.cc-home-featured ul.products li.product::after,
.cc-related-grid ul.products li.product::before,
.cc-related-grid ul.products li.product::after,
.cc-product-support-grid ul.products li.product::before,
.cc-product-support-grid ul.products li.product::after,
.cc-featured ul.products li.product::before,
.cc-featured ul.products li.product::after,
.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after,
.woocommerce-page ul.products li.product::before,
.woocommerce-page ul.products li.product::after {
  content: none !important;
  display: none !important;
}

body .cc-product-catalog ul.products li.product,
body .cc-home-featured ul.products li.product,
body .cc-related-grid ul.products li.product,
body .cc-product-support-grid ul.products li.product,
body .cc-featured ul.products li.product,
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  align-self: start !important;
  align-content: normal !important;
  justify-content: flex-start !important;
  overflow: hidden !important;
}

body .cc-product-catalog ul.products li.product > .cc-card-media-link,
body .cc-home-featured ul.products li.product > .cc-card-media-link,
body .cc-related-grid ul.products li.product > .cc-card-media-link,
body .cc-product-support-grid ul.products li.product > .cc-card-media-link,
body .cc-featured ul.products li.product > .cc-card-media-link,
body.woocommerce ul.products li.product > .cc-card-media-link,
body.woocommerce-page ul.products li.product > .cc-card-media-link {
  display: block !important;
  flex: 0 0 220px !important;
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  align-self: stretch !important;
}

body .cc-product-catalog ul.products li.product > .cc-card-body,
body .cc-home-featured ul.products li.product > .cc-card-body,
body .cc-related-grid ul.products li.product > .cc-card-body,
body .cc-product-support-grid ul.products li.product > .cc-card-body,
body .cc-featured ul.products li.product > .cc-card-body,
body.woocommerce ul.products li.product > .cc-card-body,
body.woocommerce-page ul.products li.product > .cc-card-body {
  display: flex !important;
  flex: 0 0 auto !important;
  flex-direction: column !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  align-self: stretch !important;
}

@media (max-width: 640px) {
  body .cc-product-catalog ul.products li.product > .cc-card-media-link,
  body .cc-home-featured ul.products li.product > .cc-card-media-link,
  body .cc-related-grid ul.products li.product > .cc-card-media-link,
  body .cc-product-support-grid ul.products li.product > .cc-card-media-link,
  body .cc-featured ul.products li.product > .cc-card-media-link,
  body.woocommerce ul.products li.product > .cc-card-media-link,
  body.woocommerce-page ul.products li.product > .cc-card-media-link {
    flex-basis: 180px !important;
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
  }
}

@media (max-width: 430px) {
  .cc-age-gate__actions {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-age-gate__button {
    transition: none;
  }
}

/* ============================================================
   PRODUCT GRID (list columns)
   ============================================================ */
.woocommerce ul.products,
.woocommerce-page ul.products,
.cc-featured ul.products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; display: none; }
@media (min-width: 1000px) {
  .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
  .cc-featured ul.products { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1200px) {
  /* Catalogue and featured grid both run four across on desktop */
  .woocommerce ul.products,
  .cc-featured ul.products { grid-template-columns: repeat(4, 1fr) !important; }
}
/* Equal card heights so the price/action rows align across the row */
.woocommerce ul.products,
.cc-featured ul.products { align-items: stretch; }

.cc-featured { max-width: 1400px; margin: 0 auto; padding: 0 1.5rem; }
.cc-front .wp-block-group.alignfull { margin-left: auto; margin-right: auto; }

/* ============================================================
   PRODUCT CARD (mockup design)
   ============================================================ */
.woocommerce ul.products li.product,
.cc-featured ul.products li.product {
  width: 100%;
  margin: 0;
  float: none;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  background: #fff;
  border: 1px solid #e3e6e7;
  border-radius: 9px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.03);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.woocommerce ul.products li.product:hover,
.cc-featured ul.products li.product:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,.06);
  border-color: #c9ccce;
}

/* ---- Media: fixed height, pale plate, image contained ---- */
.cc-card-media-link { display: block; }
.cc-card-media {
  position: relative;
  background: #f5f5f3;
  height: 205px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.woocommerce ul.products li.product .cc-card-media img,
.cc-featured ul.products li.product .cc-card-media img {
  width: 100%; height: 100%;
  object-fit: contain;
  padding: 10px;
  box-sizing: border-box;
  background: transparent;
  margin: 0;
  transition: transform .18s ease;
}
.woocommerce ul.products li.product:hover .cc-card-media img { transform: scale(1.02); }
.cc-card-media .onsale {
  position: absolute;
  top: 12px; left: 12px; right: auto;
  background: var(--cc-text); color: #fff;
  border-radius: 5px;
  font-size: 10px; font-weight: 700; letter-spacing: .08em;
  padding: .3rem .5rem; margin: 0;
  min-width: 0; min-height: 0; line-height: 1;
}

/* ---- Content: flex column so the footer can pin to the bottom ---- */
.cc-card-body {
  display: flex; flex-direction: column;
  flex: 1;
  padding: 14px 14px 12px;
  gap: 0;
}
/* The parent theme injects block-gap margins onto descendants — strip them so the
   explicit margins below are the single source of truth. */
.cc-card-body > *,
.cc-card-body > * + * { margin: 0 !important; }

.cc-card-cat {
  color: var(--cc-accent);
  font-size: 12px; font-weight: 500; line-height: 1.2;
  text-transform: none;
  margin-bottom: 4px !important;
}
.cc-card-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--cc-text);
  font-size: 17.5px; font-weight: 600; line-height: 1.25;
  text-decoration: none;
  margin-bottom: 6px !important;
}
.cc-card-title:hover { color: var(--cc-accent-dk); }
.cc-card-cas.is-empty { visibility: hidden; }
.cc-card-cas {
  color: var(--cc-muted);
  font-size: 13px; line-height: 1.2;
  font-variant-numeric: tabular-nums;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  margin-bottom: 9px !important;
}
.cc-card-tags { display: flex; gap: 7px; flex-wrap: wrap; }
.cc-card-tags .cc-chip-size { text-transform: lowercase; }
.cc-card-tags span {
  display: inline-flex; align-items: center;
  height: 29px; padding: 0 10px;
  border: 1px solid #e3e6e7; border-radius: 6px;
  background: #fff;
  font-size: 12px; color: var(--cc-text);
  white-space: nowrap;
}

/* ---- Footer: price left, action right, pinned to the bottom ---- */
.cc-card-foot {
  margin-top: auto !important;
  padding-top: 8px;
  display: flex; align-items: center; justify-content: space-between;
  gap: .75rem;
  height: 52px;              /* 44px control + 8px padding-top: fixed, never grows */
  box-sizing: content-box;
}
.cc-card-foot > * { margin: 0 !important; }
.cc-card-price {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem;
  font-weight: 600; font-size: 22px; line-height: 1; color: var(--cc-text);
  font-variant-numeric: tabular-nums;
  align-self: center;
}
.cc-card-price del { order: 2; color: var(--cc-muted); font-weight: 400; font-size: 14px; }
.cc-card-price ins { order: 1; text-decoration: none; }
.cc-card-price .cc-discount-chip {
  order: 3; flex-basis: 100%;
  background: none; color: var(--cc-accent);
  font-size: 12px; font-weight: 600; padding: 0; letter-spacing: 0;
}
.cc-card-price .screen-reader-text { position: absolute; left: -9999px; }

/* ---- Action button: one consistent 44x44 control ---- */
.cc-card-btn {
  position: relative;
  box-sizing: border-box;
  width: 44px; height: 44px; flex: none;
  border-radius: 7px;
  display: inline-block;
  padding: 0; font-size: 0; line-height: 0;
  border: none;
  transition: background .18s ease, transform .18s ease;
}
.cc-card-btn::after {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; font-weight: 400; line-height: 1;
}

/* Quick-add */
.cc-btn-add { background: #111318; color: #fff; }
.cc-btn-add::after { content: "+"; color: #fff; }
.cc-btn-add:hover { background: #2b2f36; transform: translateY(-1px); }
.cc-btn-add.cc-added { background: var(--cc-accent); }
.cc-btn-add.cc-added::after { content: "\2713"; font-size: 19px; }

/* View options — identical size and treatment */
.cc-btn-options { background: #111318; color: #fff; }
.cc-btn-options::after { content: "\2192"; color: #fff; font-size: 19px; }
.cc-btn-options:hover { background: #2b2f36; transform: translateY(-1px); }

/* Unavailable — an explicit label, never an ambiguous icon */
.cc-oos-label {
  display: inline-flex; align-items: center; justify-content: center;
  box-sizing: border-box;          /* border must not add to the 44px height */
  width: 110px; height: 44px; flex: none;
  line-height: 1;
  border: 1px solid #e3e6e7; border-radius: 7px;
  background: #f5f5f3; color: var(--cc-muted);
  font-size: 12px; font-weight: 500; white-space: nowrap;
}

/* Tooltip (desktop only) */
@media (hover: hover) and (min-width: 782px) {
  .cc-card-btn[data-tip]::before {
    content: attr(data-tip);
    position: absolute; bottom: calc(100% + 8px); right: 0;
    background: var(--cc-text); color: #fff;
    font-size: 11px; font-weight: 500; line-height: 1;
    white-space: nowrap; padding: .45rem .55rem; border-radius: 4px;
    opacity: 0; transform: translateY(3px);
    transition: opacity .15s ease, transform .15s ease;
    pointer-events: none;
  }
  .cc-card-btn[data-tip]:hover::before { opacity: 1; transform: translateY(0); }
}

/* Keyboard focus — teal, and the only place a card shows teal */
.cc-card-btn:focus-visible,
.cc-card-title:focus-visible,
.cc-card-media-link:focus-visible {
  outline: 2px solid var(--cc-accent);
  outline-offset: 2px;
}
.woocommerce ul.products li.product:focus-within { border-color: var(--cc-accent); }

/* Result count + ordering */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { color: var(--cc-muted); font-size: .85rem; }
.woocommerce .woocommerce-ordering select {
  font-family: 'Space Grotesk', sans-serif; border: 1px solid var(--cc-border-2);
  border-radius: 6px; padding: .4rem .7rem; font-size: .82rem;
}

/* ============================================================
   SINGLE PRODUCT (light touch)
   ============================================================ */
.single-product div.product .product_title { font-weight: 700; letter-spacing: -0.01em; }
.single-product div.product .price { color: var(--cc-text); font-weight: 700; }
.single-product div.product .price del { color: var(--cc-muted); font-weight: 400; }
.single-product .single_add_to_cart_button.button {
  background: var(--cc-text) !important; color: #fff !important; border: none !important;
  border-radius: 9px !important; font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 600 !important; padding: .85rem 1.7rem !important;
}
.single-product .single_add_to_cart_button.button:hover { background: var(--cc-accent) !important; }
.single-product .product_meta a { color: var(--cc-accent-dk); }
.woocommerce .woocommerce-breadcrumb { color: var(--cc-muted); font-size: .82rem; margin-bottom: 1.2rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--cc-muted); }

/* ============================================================
   ANNOUNCEMENT BAR
   ============================================================ */
.cc-announce {
  background: var(--cc-text); color: #fff;
  font-size: 12px; font-weight: 500;
  min-height: 40px;
  padding: 0 clamp(18px, 4vw, 64px);
  display: flex; align-items: center;
}
/* Three trust badges: left, centre, right across the full bar */
.cc-announce .cc-usps {
  display: flex; width: 100%;
  justify-content: space-between; align-items: center;
}
.cc-announce .cc-usps span { display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap; }
.cc-announce .cc-usps span:nth-child(2) { justify-self: center; }
.cc-announce .cc-usps span::before {
  content: ""; width: 16px; height: 16px; flex: none;
  background: #fff;
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
}
.cc-announce .cc-ruo { color: #a9acb3; white-space: nowrap; }
@media (max-width: 980px) {
  .cc-announce { min-height: 52px; padding: 0 10px; font-size: 12px; }
  .cc-announce .cc-usps { justify-content: space-evenly; }
  .cc-announce .cc-usps span {
    flex: 1; justify-content: center; gap: .4rem; font-weight: 600;
  }
  /* thin vertical dividers between the three badges */
  .cc-announce .cc-usps span + span { border-left: 1px solid rgba(255,255,255,.22); }
  .cc-announce .cc-usps span::before { width: 15px; height: 15px; }
}
@media (max-width: 520px) {
  .cc-announce { font-size: 10px; }
  .cc-announce .cc-usps span { gap: .3rem; padding: 0 .35rem; }
  .cc-announce .cc-usps span::before { width: 13px; height: 13px; }
}

/* ============================================================
   HOMEPAGE HERO
   ============================================================ */
.cc-hero {
  position: relative;
  background-color: #f4f4f2;                       /* spec neutral; image is feathered so it blends */
  padding: 0 clamp(18px, 4vw, 64px);
  min-height: 660px;
  display: flex; align-items: center;
}
/* Image lives on its own layer so it can be faded independently of the copy */
.cc-hero::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  /* Constrain the image layer to the same container width as the copy, so on
     ultrawide screens the vials stay beside the text instead of drifting to
     the far right edge of the viewport. */
  left: 50%;
  transform: translateX(-50%);
  width: min(100%, 1520px);
  background-image: url('assets/img/glp-3r.jpg');
  background-repeat: no-repeat;
  background-position: right center;
  background-size: min(78%, 1180px) auto;
  z-index: 0;
  pointer-events: none;
}
.cc-hero-copy { position: relative; z-index: 1; }
.cc-hero-grid { position: relative; z-index: 1; }
.cc-hero-grid {
  max-width: 1400px; margin: 0 auto; width: 100%;
  display: grid; grid-template-columns: 40% 60%; gap: 1rem;
  align-items: center;
}
.cc-eyebrow {
  color: var(--cc-accent); font-size: 12px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; margin: 0 0 1.25rem;
}
.cc-hero h1 {
  font-size: clamp(36px, 4.1vw, 58px);
  font-weight: 700; line-height: 1.05; letter-spacing: -0.02em;
  margin: 0 0 1.4rem;
  max-width: 19ch;          /* three balanced lines, never four */
  text-wrap: balance;
}
.cc-hero h1 .cc-pink { color: var(--cc-accent); }
.cc-hero-sub { color: var(--cc-muted2); font-size: 17px; line-height: 1.55; max-width: 44ch; margin: 0 0 2rem; }
.cc-hero-cta { display: flex; gap: 1rem; margin-bottom: 2.4rem; }
.cc-btn-solid, .cc-btn-outline {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 50px; padding: 0 28px; border-radius: 5px;
  font-weight: 600; font-size: 15px; text-decoration: none;
  transition: opacity .18s ease, background .18s ease, border-color .18s ease;
}
.cc-btn-solid { background: var(--cc-text); color: #fff; }
.cc-btn-solid:hover { opacity: .86; }
.cc-btn-outline { border: 1px solid var(--cc-border-2); color: var(--cc-text); background: #fff; }
.cc-btn-outline:hover { border-color: var(--cc-text); }
.cc-btn-solid, .cc-btn-outline { box-sizing: border-box; max-width: 100%; }
.cc-hero-trust { display: flex; gap: clamp(1rem, 2.5vw, 2.25rem); flex-wrap: wrap; font-size: 13px; font-weight: 500; color: var(--cc-text); }

.cc-hero-trust span { display: inline-flex; align-items: center; gap: .5rem; }
.cc-hero-trust span::before {
  content: ""; width: 16px; height: 16px; flex: none;
  background: var(--cc-text);
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
}
/* .cc-hero-visual sizing is defined in the responsive block at the end */


/* Section head */
.cc-section { max-width: 1400px; margin: 0 auto; padding: 3.25rem 1.5rem 0.5rem; }
.cc-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.cc-section-head h2 { font-size: 1.7rem; font-weight: 700; letter-spacing: -0.01em; margin: .4rem 0 0; }
.cc-view-all { font-size: .85rem; font-weight: 600; color: var(--cc-text); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }

/* USP strip */
.cc-usp-strip {
  max-width: 1400px; margin: 2.25rem auto 0; padding: 28px 1.5rem;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  border-top: 1px solid var(--cc-border); border-bottom: 1px solid var(--cc-border);
}
.cc-usp-strip > div { padding: 0 2rem; }
.cc-usp-strip > div + div { border-left: 1px solid var(--cc-border); }
.cc-usp-strip > div:first-child { padding-left: 0; }
.cc-usp-strip > div:last-child  { padding-right: 0; }
.cc-usp-strip h3 {
  display: flex; align-items: center; gap: .55rem;
  font-size: 12.5px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; margin: 0 0 .55rem;
}
.cc-usp-strip h3::before {
  content: ""; width: 19px; height: 19px; flex: none;
  background: var(--cc-accent);
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
}
.cc-usp-strip > div:nth-child(1) h3 { --i: var(--i-award); }
.cc-usp-strip > div:nth-child(2) h3 { --i: var(--i-truck); }
.cc-usp-strip > div:nth-child(3) h3 { --i: var(--i-box); }
.cc-usp-strip > div:nth-child(4) h3 { --i: var(--i-shield); }
.cc-usp-strip p { font-size: 12.5px; color: var(--cc-muted2); line-height: 1.65; margin: 0; }
.cc-trust-policy-link {
  color: var(--cc-accent-dk); font-weight: 600;
  text-decoration: underline; text-underline-offset: 3px;
  white-space: nowrap;
}
@media (max-width: 900px) {
  .cc-usp-strip { grid-template-columns: repeat(2, 1fr); gap: 2rem 0; }
  .cc-usp-strip > div { padding: 0 1.25rem; }
  .cc-usp-strip > div:nth-child(odd) { padding-left: 0; border-left: none; }
}
@media (max-width: 540px) {
  .cc-usp-strip {
    grid-template-columns: 1fr; gap: 24px;
    background: #fafafa;
    border-top: 1px solid var(--cc-border);
    border-bottom: 1px solid var(--cc-border);
    padding: 26px 20px;
  }
  .cc-usp-strip > div { padding: 0; border-left: none; }
  .cc-usp-strip h3 { align-items: flex-start; font-size: 12px; }
  .cc-usp-strip h3::before { width: 18px; height: 18px; margin-top: 1px; }
  .cc-usp-strip p { margin-top: 4px; font-size: 12.5px; }
}

/* Promo panels */
.cc-panels { max-width: 1400px; margin: 0 auto; padding: 2.25rem 1.5rem 3rem; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); }
@media (max-width: 880px) { .cc-panels { grid-template-columns: 1fr; } }
.cc-panel { padding: .6rem 0 .6rem 1.75rem; }
.cc-panel h2 { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.01em; margin: .4rem 0 .8rem; }
.cc-panel p { font-size: .9rem; color: var(--cc-muted2); line-height: 1.6; margin: 0 0 1.4rem; }
.cc-panel .cc-btn-outline { font-size: .85rem; min-height: 41px; padding: 0 1.2rem; }

/* ============================================================
   FOOTER
   ============================================================ */
.cc-footer {
  background: #101318;
  color: #fff;
  padding: 68px clamp(18px, 4vw, 64px) 28px;
}
.cc-footer-grid {
  max-width: 1400px; margin: 0 auto 48px;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 2.5rem;
}

/* Brand column */
.cc-footer-logo {
  display: block;
  width: 190px; height: 54px;
  background: url('assets/img/five-star-wordmark.svg') -8px center / contain no-repeat;
}
.cc-footer .cc-tagline {
  color: #9a9da5;
  font-size: 14px; line-height: 1.6;
  margin-top: 18px;
}

/* Link columns */
.cc-footer h4 {
  font-size: 12px; font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; color: #fff;
  margin: 0 0 18px;
}
.cc-footer ul { list-style: none; margin: 0; padding: 0; }
.cc-footer li { margin-bottom: 11px; }
.cc-footer a {
  color: #9a9da5; text-decoration: none;
  font-size: 14px; line-height: 1.6;
  transition: color .16s ease;
}
.cc-footer a:hover { color: #fff; }
.cc-footer a:focus-visible { outline: 2px solid var(--cc-accent); outline-offset: 3px; }

/* Bottom row */
.cc-footer-bottom {
  max-width: 1400px; margin: 0 auto;
  border-top: 1px solid rgba(255,255,255,.10);
  padding-top: 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap;
  font-size: 12.5px; color: #71757d;
}
.cc-footer-payments {
  display: block;
  width: min(390px, 100%);
  height: auto;
  margin-left: auto;
}

.cc-footer-checkout-options {
  flex: 0 1 390px;
  width: min(390px, 100%);
  aspect-ratio: 1823 / 169;
  margin-left: auto;
  background: none center / contain no-repeat;
}

/* Responsive */
@media (max-width: 1000px) {
  .cc-footer-grid { grid-template-columns: 1fr 1fr 1fr; gap: 2.25rem; }
  .cc-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .cc-footer { padding: 48px 20px 24px; }
  .cc-footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; margin-bottom: 36px; }
  .cc-footer-logo { width: 165px; height: 48px; background-position: -7px center; }
  .cc-footer-bottom { flex-direction: column; gap: .5rem; font-size: 11.5px; }
  .cc-footer-payments { width: min(320px, 100%); margin: 8px 0 0; }
  .cc-footer-checkout-options {
    flex-basis: auto;
    width: min(320px, 100%);
    margin: 12px 0 0;
  }
}

/* ============================================================
   RESPONSIVE STICKY PURCHASE BAR (v2.8.52)
   The original WooCommerce form remains the single source of truth.
   ============================================================ */
body.single-product.cc-mobile-purchase-visible {
  padding-bottom: calc(var(--cc-mobile-purchase-height, 74px) + 12px) !important;
}

body.single-product.cc-mobile-purchase-visible .cky-btn-revisit-wrapper,
body.single-product.cc-mobile-purchase-visible #cookie-law-info-again,
body.single-product.cc-mobile-purchase-visible .cmplz-manage-consent {
  bottom: calc(var(--cc-mobile-purchase-height, 74px) + 18px) !important;
}

.cc-mobile-purchase-bar {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 850;
  display: block !important;
  padding: 11px 24px calc(11px + env(safe-area-inset-bottom));
  border-top: 1px solid #d7dfdf;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 -8px 24px rgba(20, 22, 28, .09);
  opacity: 0;
  visibility: hidden;
  transform: translateY(100%);
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.cc-mobile-purchase-bar[hidden] {
  display: none !important;
}

.cc-mobile-purchase-bar.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.cc-mobile-purchase-bar__inner {
  display: flex;
  align-items: center;
  gap: 16px;
  width: min(100%, 1200px);
  margin: 0 auto;
}

.cc-mobile-purchase-bar__identity {
  display: flex;
  flex: 1 1 220px;
  align-items: baseline;
  gap: 9px;
  min-width: 0;
}

.cc-mobile-purchase-bar__name {
  overflow: hidden;
  color: #171c20;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cc-mobile-purchase-bar__size {
  flex: 0 0 auto;
  color: #687276;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .05em;
}

.cc-mobile-purchase-bar__options {
  display: flex;
  flex: 0 1 220px;
  align-items: flex-end;
  gap: 8px;
  min-width: 150px;
}

.cc-mobile-purchase-bar__options[hidden] {
  display: none !important;
}

.cc-mobile-purchase-bar__field {
  display: grid;
  flex: 1 1 0;
  gap: 3px;
  min-width: 0;
  margin: 0;
}

.cc-mobile-purchase-bar__field > span {
  overflow: hidden;
  color: #687276;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: .07em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.cc-mobile-purchase-bar__select {
  width: 100%;
  min-width: 0;
  height: 38px;
  margin: 0;
  padding: 0 30px 0 10px;
  border: 1px solid #d7dfdf;
  border-radius: 7px;
  background-color: #f7f9f9;
  color: #171c20;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
}

.cc-mobile-purchase-bar__select:focus-visible {
  border-color: #208b87;
  outline: 3px solid rgba(32, 139, 135, .16);
  outline-offset: 1px;
}

.cc-mobile-purchase-bar__price {
  flex: 0 0 auto;
  color: #171c20;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
}

.cc-mobile-purchase-bar__price .price {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: 0;
}

.cc-mobile-purchase-bar__price del {
  color: #7a8387;
  font-size: 11px;
  font-weight: 600;
}

.cc-mobile-purchase-bar__price ins {
  color: #171c20;
  text-decoration: none;
}

.cc-mobile-purchase-bar__stock {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #cfe9df;
  border-radius: 999px;
  background: #edf8f4;
  color: #176f6c;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.cc-mobile-purchase-bar__stock.is-out {
  border-color: #dfe3e4;
  background: #f2f4f4;
  color: #687276;
}

.cc-mobile-purchase-bar__stock.is-out .cc-stock-dot {
  background: #8a9396;
}

.cc-mobile-purchase-bar__button {
  flex: 0 0 176px;
  min-width: 176px;
  min-height: 48px;
  margin: 0;
  padding: 11px 18px;
  border: 1px solid #208b87;
  border-radius: 7px;
  background: #208b87;
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.15;
  cursor: pointer;
}

.cc-mobile-purchase-bar__button:hover {
  border-color: #176f6c;
  background: #176f6c;
}

.cc-mobile-purchase-bar__button:focus-visible {
  outline: 3px solid rgba(32, 139, 135, .24);
  outline-offset: 2px;
}

.cc-mobile-purchase-bar__button:disabled {
  border-color: #d6dddd;
  background: #e9eeee;
  color: #6c777a;
  cursor: not-allowed;
}

.cc-mobile-purchase-bar__button.is-selecting {
  border-color: #208b87;
  background: #208b87;
  color: #fff;
}

@media (min-width: 768px) and (max-width: 980px) {
  .cc-mobile-purchase-bar {
    padding-inline: 16px;
  }

  .cc-mobile-purchase-bar__inner {
    gap: 11px;
  }

  .cc-mobile-purchase-bar__identity {
    display: none;
  }

  .cc-mobile-purchase-bar__options {
    margin-right: auto;
  }
}

@media (max-width: 767px) {
  .cc-mobile-purchase-bar {
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  }

  .cc-mobile-purchase-bar__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    width: min(100%, 560px);
  }

  .cc-mobile-purchase-bar__identity,
  .cc-mobile-purchase-bar__price,
  .cc-mobile-purchase-bar__stock {
    display: none;
  }

  .cc-mobile-purchase-bar__options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 8px;
    width: 100%;
    min-width: 0;
  }

  .cc-mobile-purchase-bar__button {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding: 12px 16px;
    font-size: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-mobile-purchase-bar {
    transition: none;
  }
}

/* ============================================================
   LINE ICONS (inline SVG data URIs, driven by --i custom prop)
   ============================================================ */
:root {
  --i-pin:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  --i-truck:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='3' width='15' height='13'/%3E%3Cpolygon points='16 8 20 8 23 11 23 16 16 16 16 8'/%3E%3Ccircle cx='5.5' cy='18.5' r='2.5'/%3E%3Ccircle cx='18.5' cy='18.5' r='2.5'/%3E%3C/svg%3E");
  --i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpolyline points='9 12 11 14 15 10'/%3E%3C/svg%3E");
  --i-lock:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
  --i-award:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M8.21 13.89 7 23l5-3 5 3-1.21-9.12'/%3E%3C/svg%3E");
  --i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E");
  --i-user:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
  --i-cart:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E");
  --i-box:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpolyline points='3.27 6.96 12 12.01 20.73 6.96'/%3E%3C/svg%3E");
}
/* Utility bar icon assignment */
.cc-announce .cc-usps span:nth-child(1) { --i: var(--i-award); }
.cc-announce .cc-usps span:nth-child(2) { --i: var(--i-truck); }
.cc-announce .cc-usps span:nth-child(3) { --i: var(--i-box); }
/* Hero trust points */
.cc-hero-trust span:nth-child(1) { --i: var(--i-pin); }
.cc-hero-trust span:nth-child(2) { --i: var(--i-shield); }
.cc-hero-trust span:nth-child(3) { --i: var(--i-truck); }


/* Spec: no horizontal overflow anywhere.
   `clip` rather than `hidden`: hidden creates a scroll container on the root,
   which silently breaks `position: sticky` further down the page. */
html, body { overflow-x: clip; }


/* ============================================================
   RESPONSIVE — HERO
   Kept at the end of the file so these rules always win over the
   base declarations above, regardless of edit order.
   ============================================================ */

/* Desktop: the right column is just a spacer; the image is on .cc-hero::before */
@media (min-width: 981px) {
  /* Keep the copy on the shared page grid, but move the vial composition
     slightly right so the hero's visual weight is centred on desktop. */
  .cc-hero::before { background-position: calc(100% + 36px) center; }
  .cc-hero-visual { min-height: 620px; background: none; }
}

/* Mobile / tablet: centred copy, vials in their own block below the CTA */
@media (max-width: 980px) {
  .cc-hero {
    display: block;
    min-height: 0;
    padding-top: 3rem;
    padding-bottom: 0;
  }
  .cc-hero::before { display: none; }
  .cc-hero::after  { display: none; }

  .cc-hero-grid {
    display: block;
    text-align: center;
  }
  .cc-hero-copy { text-align: center; }
  .cc-hero .cc-eyebrow { font-size: 13px; max-width: 24ch; margin-left: auto; margin-right: auto; }
  .cc-hero h1 { font-size: clamp(32px, 8.5vw, 44px); max-width: 14ch; margin-left: auto; margin-right: auto; }
  .cc-hero-sub { max-width: 36ch; margin-left: auto; margin-right: auto; }
  .cc-hero-cta { justify-content: center; margin-bottom: 0; }
  .cc-hero-cta .cc-btn-solid { min-width: 260px; }
  .cc-hero-trust { display: none !important; }

  .cc-hero-visual {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 1400 / 700;
    margin: 1.75rem 0 0;
    background: url('assets/img/glp-3r.jpg') center bottom / contain no-repeat;
  }
}

/* ============================================================
   PRODUCT CARDS — unified neutral image stage (v2.5.81)
   The locked catalogue masters resolve to #f1f1f1 at their
   outer edges. Matching the media stage removes the visible
   bitmap square while preserving a white information surface.
   Shared by homepage, catalogue and recommended-product loops.
   ============================================================ */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.cc-featured ul.products li.product,
.single-product .related ul.products li.product,
.single-product .up-sells ul.products li.product {
  background: #ffffff !important;
  border-color: #d7dcdb !important;
  box-shadow: 0 8px 22px rgba(17,19,24,.025);
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
.cc-featured ul.products li.product:hover,
.single-product .related ul.products li.product:hover,
.single-product .up-sells ul.products li.product:hover {
  border-color: #a9cecb !important;
  box-shadow: 0 10px 28px rgba(17,19,24,.05);
}

.woocommerce ul.products li.product .cc-card-media,
.woocommerce-page ul.products li.product .cc-card-media,
.cc-featured ul.products li.product .cc-card-media,
.single-product .related ul.products li.product .cc-card-media,
.single-product .up-sells ul.products li.product .cc-card-media {
  background: #f1f1f1 !important;
  border-bottom: 1px solid #e4e7e6 !important;
}

.woocommerce ul.products li.product .cc-card-media img,
.woocommerce-page ul.products li.product .cc-card-media img,
.cc-featured ul.products li.product .cc-card-media img,
.single-product .related ul.products li.product .cc-card-media img,
.single-product .up-sells ul.products li.product .cc-card-media img {
  padding: 0 !important;
  background: transparent !important;
}

.woocommerce ul.products li.product .cc-card-body,
.woocommerce-page ul.products li.product .cc-card-body,
.cc-featured ul.products li.product .cc-card-body,
.single-product .related ul.products li.product .cc-card-body,
.single-product .up-sells ul.products li.product .cc-card-body {
  background: #ffffff !important;
}

@media (max-width: 560px) {
  .cc-hero-cta .cc-btn-solid { min-width: 0; width: 100%; max-width: 320px; }
}


/* ============================================================
   RESPONSIVE — PRODUCT CARDS
   Kept at the end of the file so these always beat the base
   declarations above, regardless of edit order.
   ============================================================ */
@media (max-width: 999px) {
  .cc-card-media { height: 180px; }
  .cc-card-title { font-size: 16.5px; }
}
@media (max-width: 600px) {
  .woocommerce ul.products,
  .cc-featured ul.products { gap: 14px; }
  .cc-featured { padding: 0 1rem; }

  .cc-card-media { height: 150px; }
  .cc-card-media img { padding: 8px; }
  .cc-card-body { padding: 13px; }

  /* Name and price stay dominant; CAS and chips recede */
  .cc-card-cat   { font-size: 10.5px; }
  .cc-card-title { font-size: 14px; font-weight: 600; }
  .cc-card-cas   { font-size: 9.5px; margin-bottom: 7px !important; }
  .cc-card-tags  { gap: 5px; }
  .cc-card-tags span { height: 22px; padding: 0 6px; font-size: 9.5px; }
  .cc-card-price { font-size: 16px; font-weight: 600; }

  /* Price and control stay on one line, never stacked */
  .cc-card-foot { height: 40px; padding-top: 10px; gap: .4rem; flex-wrap: nowrap; }
  .cc-card-btn { width: 40px; height: 40px; }
  .cc-card-btn::after { font-size: 19px; }
  .cc-oos-label { width: auto; min-width: 72px; padding: 0 8px; height: 40px; font-size: 10px; }
}
@media (max-width: 359px) {
  .woocommerce ul.products,
  .cc-featured ul.products { grid-template-columns: 1fr; }
}


/* ============================================================
   GRID WIDTH OVERRIDE
   WooCommerce ships `ul.products.columns-N li.product { width: 22.05% }`
   (and friends), which is more specific than our card rule and fights the
   CSS grid. Neutralise it so the grid alone controls card width.
   ============================================================ */
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product,
.cc-featured ul.products[class*="columns-"] li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
}


/* ============================================================
   HEADER
   ============================================================ */
.cc-header {
  border-bottom: 1px solid rgba(0,0,0,.07);
  background: #fff;
}
.cc-header-inner {
  max-width: 1400px;
  margin: 0 auto;
  min-height: 85px;
  padding: 0 clamp(18px, 4vw, 64px);
  display: flex; align-items: center; justify-content: space-between;
  gap: 2rem;
}
.cc-header .wp-block-site-logo img { max-width: 150px; height: auto; }

/* Nav is burger-only on every breakpoint; links live inside the overlay */
.cc-header .cc-nav .wp-block-navigation__responsive-container-open {
  color: var(--cc-text);
}
.cc-header .cc-nav a { color: var(--cc-text); text-decoration: none; }
.cc-header .cc-nav a:hover { color: var(--cc-accent-dk); }
.cc-header-right { display: flex; align-items: center; gap: 1.35rem; }

.cc-header-icons { display: flex; align-items: center; gap: 1.35rem; }
/* The icon's colour IS its background (it fills a CSS mask), so a button reset
   must not clear background-color — only the border, padding and appearance. */
button.cc-icon {
  border: 0;
  padding: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.cc-icon {
  position: relative;
  width: 22px; height: 22px;
  display: inline-block;
  background: var(--cc-text);
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
  transition: opacity .16s ease;
}
.cc-icon:hover { opacity: .6; }
.cc-icon-search  { --i: var(--i-search); }
.cc-icon-account { --i: var(--i-user); }
.cc-icon-cart    { --i: var(--i-cart); }
/* The cart icon is a masked element, so the count sits alongside it rather
   than inside the mask (a masked parent would clip its children). */
.cc-icon-cart { overflow: visible; }
.cc-cart-count {
  position: absolute; top: -7px; right: -9px;
  min-width: 17px; height: 17px;
  border-radius: 999px;
  background: var(--cc-text); color: #fff;
  font-size: 10px; font-weight: 600; line-height: 17px; text-align: center;
}
@media (max-width: 900px) {
  .cc-header-inner { min-height: 66px; gap: 1rem; }
  .cc-header .wp-block-site-logo img { max-width: 120px; }
  .cc-header-icons { gap: 1rem; }
}


/* ============================================================
   FOOTER POLISH
   ============================================================ */
.cc-footer h4 { color: #fff; letter-spacing: .12em; }
.cc-footer li { margin-bottom: 13px; }
.cc-footer a { line-height: 1.75; }
@media (max-width: 600px) {
  .cc-footer-grid { gap: 2.5rem 1.5rem; }
  .cc-footer-bottom { border-top: 1px solid rgba(255,255,255,.14); padding-top: 20px; }
}


/* ============================================================
   FINAL SPACING PASS
   ============================================================ */
/* Mobile trust items: tighter, icons top-aligned, one shared background */
@media (max-width: 540px) {
  .cc-usp-strip { gap: 14px; }
}
/* Footer: a little more air between mobile groups */
@media (max-width: 600px) {
  .cc-footer-grid { gap: 2.9rem 1.5rem; }
}


/* ============================================================
   HEADER SEARCH — inline expanding field
   ============================================================ */
.cc-header-left { display: flex; align-items: center; gap: 1.1rem; }

.cc-search { display: flex; align-items: center; flex-direction: row; }
.cc-search-form {
  display: flex; align-items: center;
  overflow: hidden;
  max-width: 0;
  opacity: 0;
  transition: max-width .3s ease, opacity .25s ease;
  background: #f5f5f3;
  border: 1px solid transparent;
  border-radius: 8px;
  white-space: nowrap;
}
.cc-search.open .cc-search-form {
  max-width: 260px;
  opacity: 1;
  border-color: var(--cc-border-2);
  margin-left: .5rem;
}
.cc-search-input {
  background: none; border: none; outline: none;
  color: var(--cc-text);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  padding: .55rem .8rem;
  width: 100%;
  box-sizing: border-box;
}
.cc-search-input::placeholder { color: var(--cc-muted); }
.cc-search-input:focus-visible { outline: none; }
.cc-search.open .cc-search-form:focus-within { border-color: var(--cc-accent); }

@media (max-width: 600px) {
  .cc-search.open .cc-search-form { max-width: 150px; }
  .cc-search-input { font-size: 13px; padding: .5rem .6rem; }
  .cc-header-left { gap: .75rem; }
}


/* ============================================================
   HEADER CART BUTTON (filled, rounded, badged)
   ============================================================ */
.cc-header-icons .cc-icon-cart {
  width: 40px; height: 40px;
  border-radius: 9px;
  background-color: var(--cc-text);
  /* the icon glyph is drawn by a mask over the fill, so mask a white cart
     onto a dark plate rather than masking the plate itself */
  -webkit-mask: none; mask: none;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background-color .16s ease;
  overflow: visible;
}
.cc-header-icons .cc-icon-cart::before {
  content: "";
  width: 20px; height: 20px;
  background: #fff;
  -webkit-mask: var(--i-cart) center / contain no-repeat;
  mask: var(--i-cart) center / contain no-repeat;
}
.cc-header-icons .cc-icon-cart:hover { background-color: var(--cc-accent-dk); opacity: 1; }
.cc-header-icons .cc-cart-count {
  top: -6px; right: -6px;
  background: var(--cc-accent);
  border: 2px solid #fff;
  min-width: 19px; height: 19px; line-height: 15px;
}
@media (max-width: 600px) {
  .cc-header-icons .cc-icon-cart { width: 36px; height: 36px; }
  .cc-header-icons .cc-icon-cart::before { width: 18px; height: 18px; }
}





/* ============================================================
   HEADER — icons built with core/WooCommerce blocks
   (Used when the header is assembled in the Site Editor rather than via
   the [cc_header_icons] shortcode.)
   ============================================================ */
.cc-header .cc-header-inner > .wp-block-group,
.cc-header .wp-block-group.cc-header-right {
  display: flex; align-items: center; gap: 1.25rem;
}

/* Even out the three controls */
.cc-header .wp-block-search,
.cc-header .wp-block-woocommerce-customer-account,
.cc-header .wp-block-woocommerce-mini-cart {
  display: flex; align-items: center; margin: 0;
}

/* Search block: icon-only trigger that expands a clean field */
.cc-header .wp-block-search__button,
.cc-header .wp-block-search .wp-block-search__button {
  background: transparent;
  border: none;
  padding: 0;
  color: var(--cc-text);
  min-width: 22px;
}
.cc-header .wp-block-search__input {
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--cc-border-2);
  border-radius: 8px;
  background: #f5f5f3;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  box-sizing: border-box;
}
.cc-header .wp-block-search__input:focus-visible {
  outline: none; border-color: var(--cc-accent);
}
.cc-header .wp-block-search__inside-wrapper { border: none; padding: 0; }

/* Account + cart icons: consistent size and hover */
.cc-header .wp-block-woocommerce-customer-account svg,
.cc-header .wp-block-woocommerce-mini-cart svg {
  width: 22px; height: 22px;
}
.cc-header .wp-block-woocommerce-customer-account a,
.cc-header .wp-block-woocommerce-mini-cart button {
  color: var(--cc-text);
  transition: opacity .16s ease;
}
.cc-header .wp-block-woocommerce-customer-account a:hover,
.cc-header .wp-block-woocommerce-mini-cart button:hover { opacity: .6; }


/* ============================================================
   HEADER — vertically centre the core Search block's icon
   The block's button carries its own line-height and padding, which pushes
   the glyph off the shared baseline with the account and cart icons.
   ============================================================ */
.cc-header .wp-block-search,
.cc-header .wp-block-search__inside-wrapper {
  display: flex;
  align-items: center;
  line-height: 0;
}
.cc-header .wp-block-search__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  margin: 0;
  line-height: 0;
}
.cc-header .wp-block-search__button svg {
  display: block;
  width: 22px;
  height: 22px;
  margin: 0;
}
/* Keep all three controls on one centred row */
.cc-header .cc-header-inner,
.cc-header .cc-header-inner > * {
  align-items: center;
}


/* ============================================================
   SHOP ARCHIVE
   ============================================================ */
.woocommerce .cc-shop-head,
.woocommerce .cc-shop-toolbar,
.woocommerce ul.products { max-width: 1400px; margin-left: auto; margin-right: auto; }

.cc-shop-head { margin-bottom: 18px; }
.cc-shop-head-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.cc-shop-eyebrow {
  display: inline-block;
  background: #eef4f4; color: var(--cc-accent);
  font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  padding: 5px 9px; border-radius: 5px;
  margin-bottom: 12px;
}
.cc-shop-title {
  font-size: clamp(30px, 3.2vw, 42px);
  font-weight: 700; letter-spacing: -0.02em; line-height: 1.1;
  margin: 0;
}

/* Category filter pills */
.cc-filter-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.cc-pill {
  display: inline-flex; align-items: center;
  height: 40px; padding: 0 18px;
  border: 1px solid var(--cc-border-2); border-radius: 999px;
  background: #fff; color: var(--cc-text);
  font-size: 13.5px; font-weight: 500; text-decoration: none;
  transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.cc-pill:hover { border-color: var(--cc-text); }
.cc-pill.is-active { background: var(--cc-text); border-color: var(--cc-text); color: #fff; }
.cc-pill:focus-visible { outline: 2px solid var(--cc-accent); outline-offset: 2px; }

/* Result count + sorting row */
.cc-shop-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin: 6px 0 24px;
}
.cc-shop-toolbar .woocommerce-result-count { margin: 0; }
.cc-shop-toolbar .woocommerce-ordering { margin: 0; }

/* Badges (SALE / NEW / BESTSELLER) */
.cc-card-media .cc-badge {
  position: absolute; top: 12px; left: 12px; right: auto; z-index: 2;
  background: var(--cc-text); color: #fff;
  border-radius: 5px;
  font-size: 10px; font-weight: 700; letter-spacing: .08em;
  padding: 5px 8px; line-height: 1;
  min-width: 0; min-height: 0; margin: 0;
}
.cc-cas-none { color: var(--cc-muted); }

/* ---- Catalogue card action: full-width teal Add to cart ---- */
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-foot,
.woocommerce-page:not(.cc-featured) ul.products li.product .cc-card-foot {
  height: auto;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  padding-top: 14px;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn,
.woocommerce-page:not(.cc-featured) ul.products li.product .cc-card-btn {
  width: 100%;
  height: 48px;
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  border-radius: 8px;
  background: #fff;
  border: 1.5px solid var(--cc-accent);
  color: var(--cc-accent);
  font-size: 14px; font-weight: 600; line-height: 1;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn::after { content: none; }
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn::before {
  content: ""; width: 18px; height: 18px; flex: none;
  background: currentColor;
  -webkit-mask: var(--i-cart) center / contain no-repeat;
  mask: var(--i-cart) center / contain no-repeat;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn .cc-btn-label { font-size: 14px; }
.woocommerce:not(.cc-featured) ul.products li.product:hover .cc-card-btn,
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn:hover {
  background: var(--cc-accent-dk); border-color: var(--cc-accent-dk); color: #fff;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn.cc-added {
  background: var(--cc-accent); border-color: var(--cc-accent); color: #fff;
}
/* Out of stock spans the row on the catalogue too */
.woocommerce:not(.cc-featured) ul.products li.product .cc-oos-label {
  width: 100%; height: 48px; border-radius: 8px;
}

/* The featured grid keeps the compact icon button, so hide its label */
.cc-featured .cc-btn-label { position: absolute; left: -9999px; }

@media (max-width: 600px) {
  .cc-shop-head-top { flex-direction: column; }
  .cc-shop-toolbar { flex-direction: column; align-items: flex-start; gap: .6rem; }
  .cc-filter-pills { gap: 8px; }
  .cc-pill { height: 36px; padding: 0 14px; font-size: 12.5px; }
  .woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn { height: 44px; font-size: 13px; }
  .woocommerce:not(.cc-featured) ul.products li.product .cc-oos-label { height: 44px; }
}


/* ============================================================
   CLASSIC TEMPLATE WRAPPER (shop archive / single product)
   ============================================================ */
.cc-main {
  padding: 40px clamp(18px, 4vw, 64px) 64px;
}
.cc-main .woocommerce-breadcrumb { max-width: 1400px; margin: 0 auto 22px; }
.cc-main .cc-usp-shop { margin-top: 44px; }


/* ============================================================
   CATALOGUE CARD — left-align price (WooCommerce centres by default)
   ============================================================ */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.cc-featured ul.products li.product { text-align: left; }

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price,
.cc-card-price {
  text-align: left;
  justify-content: flex-start;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-foot { align-items: flex-start; }
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-price { width: 100%; }

/* Breathing room between price and the discount chip */
.cc-card-price .cc-discount-chip { margin-left: 0; }
.cc-card-price ins, .cc-card-price > .amount { margin-right: .15rem; }


/* ============================================================
   CARD — suppress WooCommerce's "View cart" link after AJAX add
   Core appends <a class="added_to_cart wc-forward">View cart</a> beside the
   button. Our cards already show an Added state and the header carries a cart
   icon, so the extra link only breaks the card layout.
   ============================================================ */
.woocommerce ul.products li.product a.added_to_cart,
.cc-featured ul.products li.product a.added_to_cart {
  display: none !important;
}

/* Catalogue button "Added" state */
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn.cc-added::before {
  -webkit-mask: none; mask: none;
  content: "\2713";
  background: none;
  width: auto; height: auto;
  font-size: 15px; line-height: 1;
  color: currentColor;
}


/* ============================================================
   CATALOGUE POLISH PASS (v1.9.0)
   ============================================================ */

/* --- 4. Header spacing: pills -> toolbar tightened; toolbar on one row --- */
.cc-shop-head { margin-bottom: 0; }
.cc-filter-pills { margin-top: 18px; }
.cc-shop-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem;
  margin: 14px 0 22px;
}
.cc-shop-toolbar .woocommerce-result-count { margin: 0; text-align: left; order: 1; }
.cc-shop-toolbar .woocommerce-ordering    { margin: 0; order: 2; }
@media (max-width: 700px) {
  .cc-shop-toolbar { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* --- 5. Cards: two-line title reserve, equal heights, pinned CTA --- */
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-title {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(2 * 1.25 * 17.5px);
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-body { padding: 16px; }

/* --- 6. Sale pricing: old / new / discount, spaced and wrapping --- */
.cc-card-price { gap: 7px; align-items: baseline; flex-wrap: wrap; }
.cc-card-price del {
  order: 1;
  font-size: 13px; color: var(--cc-muted); font-weight: 400;
  text-decoration: line-through;
}
.cc-card-price ins {
  order: 2;
  font-size: 20px; font-weight: 650; color: var(--cc-text);
  text-decoration: none;
}
.cc-card-price .cc-discount-chip {
  order: 3;
  flex-basis: auto;
  font-size: 11.5px; font-weight: 600; color: var(--cc-accent);
  background: none; padding: 0; letter-spacing: 0;
}

/* --- 7. Badges --- */
.cc-card-media .cc-badge {
  top: 12px; left: 12px;
  background: #111318; color: #fff;
  border-radius: 4px;
  font-size: 10.5px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase;
  padding: 5px 8px; line-height: 1;
}

/* --- 2. Catalogue buttons: solid black, full width --- */
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn,
.woocommerce-page:not(.cc-featured) ul.products li.product .cc-card-btn {
  width: 100%;
  height: 48px;
  border: none;
  border-radius: 6px;
  background: #111318;
  color: #fff;
  font-size: 14px; font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  transition: background .16s ease;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn::before { content: none; }
.woocommerce:not(.cc-featured) ul.products li.product:hover .cc-card-btn,
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn:hover {
  background: #2b2f36; color: #fff; border: none;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn:focus-visible {
  outline: 3px solid var(--cc-accent);
  outline-offset: 2px;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn.cc-added {
  background: var(--cc-accent); color: #fff;
}
.woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn.cc-added::before { content: none; }

/* Out of stock: neutral, clearly disabled */
.woocommerce:not(.cc-featured) ul.products li.product .cc-oos-label {
  width: 100%; height: 48px;
  border-radius: 6px;
  background: #f1f1f2; border: 1px solid #e3e6e7;
  color: var(--cc-muted);
  font-size: 13px; font-weight: 500;
  cursor: not-allowed;
}

/* --- 8. Responsive grid --- */
@media (min-width: 1200px) {
  .woocommerce ul.products, .cc-featured ul.products { gap: 22px; }
}
@media (min-width: 900px) and (max-width: 1199px) {
  .woocommerce ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (min-width: 620px) and (max-width: 899px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 619px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 14px; }
  .woocommerce:not(.cc-featured) ul.products li.product .cc-card-btn { height: 44px; font-size: 13px; }
  .woocommerce:not(.cc-featured) ul.products li.product .cc-oos-label { height: 44px; font-size: 12px; }
  .woocommerce:not(.cc-featured) ul.products li.product .cc-card-title { font-size: 15px; min-height: calc(2 * 1.25 * 15px); }
}
@media (max-width: 380px) {
  .woocommerce ul.products { grid-template-columns: 1fr !important; }
}

/* --- 9. Header aligned to the catalogue's content width --- */
.cc-header-inner { max-width: 1400px; }
.cc-main > .woocommerce,
.cc-main .cc-shop-head,
.cc-main .cc-shop-toolbar { max-width: 1400px; margin-left: auto; margin-right: auto; }

/* --- 1. Never show the default WordPress footer credit --- */
.wp-block-site-tagline,
.cc-main + .wp-block-template-part .wp-block-site-title { display: none; }


/* Hide WooCommerce's own archive title on category pages — ours is in the
   catalogue header block above the pills. */
.cc-main > .woocommerce > .woocommerce-products-header,
.cc-main .woocommerce-products-header__title,
.cc-main .term-description { display: none; }


/* ============================================================
   SINGLE PRODUCT PAGE
   ============================================================ */
.single-product .cc-main { max-width: 1400px; margin: 0 auto; }
.single-product div.product { max-width: 1400px; margin: 0 auto; }

/* --- Gallery / summary split --- */
.single-product div.product {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 56px;
  align-items: start;
}
.single-product div.product .cc-sp-gallery { grid-column: 1; }
.single-product div.product .cc-sp-summary { grid-column: 2; }
.single-product div.product .woocommerce-product-gallery { width: 100% !important; float: none; margin: 0; opacity: 1 !important; }
.single-product div.product .entry-summary { width: 100% !important; float: none; margin: 0; }
.single-product div.product .woocommerce-tabs,
.single-product div.product .cc-sp-trust,
.single-product div.product .related,
.single-product div.product .up-sells { grid-column: 1 / -1; }

/* Gallery image plate */
.single-product .woocommerce-product-gallery__image img {
  background: #f5f5f3;
  border-radius: 10px;
}
.single-product .flex-control-thumbs { display: flex; gap: 12px; margin-top: 12px; padding: 0; }
.single-product .flex-control-thumbs li { width: 82px; list-style: none; margin: 0; }
.single-product .flex-control-thumbs img {
  border: 1px solid var(--cc-border); border-radius: 8px; background: #f5f5f3;
  opacity: .7; transition: opacity .15s ease, border-color .15s ease;
}
.single-product .flex-control-thumbs img.flex-active,
.single-product .flex-control-thumbs img:hover { opacity: 1; border-color: var(--cc-text); }

/* --- Summary --- */
.cc-sp-eyebrow {
  color: var(--cc-accent);
  font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  margin: 0 0 10px;
}
.single-product div.product .product_title {
  font-size: clamp(30px, 3vw, 40px); font-weight: 700; letter-spacing: -0.02em;
  line-height: 1.1; margin: 0 0 12px;
}
.single-product div.product .woocommerce-product-rating { margin: 0 0 16px; }
.single-product div.product p.price {
  font-size: 26px; font-weight: 650; color: var(--cc-text); margin: 0 0 16px;
}
.single-product div.product p.price del { font-size: 16px; color: var(--cc-muted); font-weight: 400; }
.single-product div.product p.price ins { text-decoration: none; }
.single-product .woocommerce-product-details__short-description {
  color: var(--cc-muted2); font-size: 15.5px; line-height: 1.65; margin-bottom: 22px;
}

/* Stock + dispatch row */
.cc-sp-assurance {
  display: flex; gap: 28px; flex-wrap: wrap;
  padding: 16px 0; margin-bottom: 20px;
  border-top: 1px solid var(--cc-border);
  border-bottom: 1px solid var(--cc-border);
}
.cc-sp-assure { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.cc-sp-assure::before {
  content: ""; width: 20px; height: 20px; flex: none;
  background: var(--cc-text);
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
}
.cc-assure-stock { --i: var(--i-box); }
.cc-assure-van   { --i: var(--i-truck); }
.cc-sp-assure strong { display: block; font-weight: 600; }
.cc-sp-assure span { color: var(--cc-muted2); line-height: 1.4; }
.cc-sp-assure strong { color: var(--cc-text); }

/* Size chip */
.cc-sp-size { margin-bottom: 20px; }
.cc-sp-size-label { display: block; font-size: 12.5px; color: var(--cc-muted2); margin-bottom: 8px; }
.cc-sp-chip {
  display: inline-flex; align-items: center; height: 40px; padding: 0 16px;
  border: 1.5px solid var(--cc-accent); border-radius: 7px;
  font-size: 13.5px; font-weight: 500; color: var(--cc-text);
}

/* Quantity + add to cart */
.single-product form.cart { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 8px; }
.single-product form.cart .quantity { display: flex; }
.single-product form.cart .quantity input.qty {
  width: 84px; height: 52px; text-align: center;
  border: 1px solid var(--cc-border-2); border-radius: 7px;
  font-family: 'Space Grotesk', sans-serif; font-size: 15px;
  box-sizing: border-box;
}
.single-product .single_add_to_cart_button.button {
  flex: 1; min-width: 240px;
  height: 52px !important; padding: 0 32px !important;
  background: #111318 !important; color: #fff !important;
  border: none !important; border-radius: 7px !important;
  font-size: 15px !important; font-weight: 600 !important;
}
.single-product .single_add_to_cart_button.button:hover { background: #2b2f36 !important; }
.single-product .single_add_to_cart_button.button:focus-visible { outline: 3px solid var(--cc-accent); outline-offset: 2px; }
.cc-sp-secure {
  width: 100%; text-align: center;
  font-size: 12px; line-height: 1.2; color: var(--cc-muted); margin: 3px 0 0;
}

/* Meta row */
.single-product .product_meta {
  display: flex; flex-wrap: wrap; gap: 28px;
  padding-top: 20px; margin-top: 20px;
  border-top: 1px solid var(--cc-border);
  font-size: 12.5px; color: var(--cc-muted2);
}
.single-product .product_meta > span,
.single-product .product_meta .cc-meta-item { display: flex; flex-direction: column; gap: 4px; }
.single-product .product_meta em,
.single-product .product_meta .sku_wrapper,
.single-product .product_meta .posted_in,
.single-product .product_meta .tagged_as {
  font-style: normal; font-size: 11.5px; color: var(--cc-muted); text-transform: none;
}
.single-product .product_meta a { color: var(--cc-muted2); }

/* --- Tabs --- */
.single-product .woocommerce-tabs { margin-top: 56px; }
.single-product .woocommerce-tabs ul.tabs {
  display: flex; gap: 30px; padding: 0; margin: 0 0 28px;
  border-bottom: 1px solid var(--cc-border);
}
.single-product .woocommerce-tabs ul.tabs::before { display: none; }
.single-product .woocommerce-tabs ul.tabs li {
  background: none; border: none; border-radius: 0; margin: 0; padding: 0;
}
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after { display: none; }
.single-product .woocommerce-tabs ul.tabs li a {
  display: block; padding: 0 0 14px;
  font-size: 14.5px; font-weight: 500; color: var(--cc-muted2);
  border-bottom: 2px solid transparent;
}
.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--cc-text); font-weight: 600; border-bottom-color: var(--cc-text);
}
.single-product .woocommerce-Tabs-panel h2 { font-size: 20px; font-weight: 700; margin: 0 0 14px; }
.single-product .woocommerce-Tabs-panel { color: var(--cc-muted2); line-height: 1.7; font-size: 15px; }
.cc-sp-subhead { font-size: 15px; font-weight: 700; color: var(--cc-text); margin: 26px 0 12px; }
.cc-feature-list { list-style: none; padding: 0; margin: 0; }
.cc-feature-list li {
  position: relative; padding-left: 26px; margin-bottom: 9px;
  font-size: 14.5px; color: var(--cc-muted2);
}
.cc-feature-list li::before {
  content: ""; position: absolute; left: 0; top: 3px;
  width: 16px; height: 16px;
  background: var(--cc-accent);
  -webkit-mask: var(--i-shield) center / contain no-repeat;
  mask: var(--i-shield) center / contain no-repeat;
}
.cc-area-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cc-area-chips span {
  border: 1px solid var(--cc-border-2); border-radius: 7px;
  padding: 7px 12px; font-size: 12.5px; color: var(--cc-text);
}

/* --- Trust panel beside the tabs --- */
.single-product div.product .woocommerce-tabs { grid-column: 1; }
.cc-sp-trust {
  grid-column: 2; margin-top: 56px;
  display: flex; flex-direction: column; gap: 14px;
}
.cc-sp-trust-card {
  border: 1px solid var(--cc-border); border-radius: 10px;
  padding: 18px 20px 18px 56px; position: relative;
  background: #fff;
}
.cc-sp-trust-card::before {
  content: ""; position: absolute; left: 20px; top: 20px;
  width: 22px; height: 22px;
  background: var(--cc-text);
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
}
.cc-i-shield { --i: var(--i-shield); }
.cc-i-truck  { --i: var(--i-truck); }
.cc-i-box    { --i: var(--i-box); }
.cc-i-pin    { --i: var(--i-pin); }
.cc-i-award  { --i: var(--i-award); }
.cc-sp-trust-card h4 { font-size: 14px; font-weight: 600; margin: 0 0 5px; color: var(--cc-text); }
.cc-sp-trust-card p { font-size: 13px; color: var(--cc-muted2); line-height: 1.55; margin: 0; }
.cc-sp-trust-link {
  display: inline-block; margin-top: 7px;
  color: var(--cc-accent-dk); font-size: 12px; font-weight: 600;
  text-decoration: underline; text-underline-offset: 3px;
}

/* --- Related / upsells reuse the catalogue cards --- */
.single-product .related > h2,
.single-product .up-sells > h2 {
  font-size: 20px; font-weight: 700; margin: 14px 0 20px;
}
.single-product .related ul.products,
.single-product .up-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: min(100%, 720px) !important;
  max-width: 720px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
  justify-content: start !important;
}
.single-product .related ul.products li.product,
.single-product .up-sells ul.products li.product {
  float: none !important;
  clear: none !important;
  width: auto !important;
  margin: 0 !important;
  grid-column: auto !important;
}

@media (max-width: 600px) {
  .single-product .related ul.products,
  .single-product .up-sells ul.products {
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }
}

/* --- Responsive --- */
@media (max-width: 980px) {
  .single-product div.product { grid-template-columns: 1fr; row-gap: 32px; }
  .single-product div.product .woocommerce-tabs,
  .cc-sp-trust { grid-column: 1; margin-top: 32px; }
  .single-product form.cart { flex-direction: column; }
  .single-product .single_add_to_cart_button.button { width: 100%; }
}


/* Gallery must not stay hidden if its script fails to initialise */
.single-product .woocommerce-product-gallery { opacity: 1 !important; }
@media (max-width: 980px) {
  .single-product div.product .cc-sp-gallery,
  .single-product div.product .cc-sp-summary { grid-column: 1; }
}


/* ============================================================
   SINGLE PRODUCT — layout + detail fixes (v2.0.2)
   ============================================================ */

/* The classic wrapper sets its own width; the parent theme must not constrain it */
.cc-main {
  max-width: 1400px;
  margin-left: auto; margin-right: auto;
  padding: 40px clamp(18px, 4vw, 64px) 64px;
}

/* WooCommerce prints its own stock line inside the add-to-cart form — ours is
   already in the assurance row above, so hide the duplicate. */
.single-product .entry-summary p.stock { display: none; }

/* Sale price: breathing room before the discount chip */
.single-product p.price .cc-discount-chip { margin-left: 8px; }
.single-product p.price ins { margin-left: 6px; }
.single-product p.price del { margin-right: 2px; }
.cc-card-price .cc-discount-chip { margin-left: 2px; }

/* Tabs: keep our styling ahead of WooCommerce's default panel chrome */
.single-product .woocommerce-tabs ul.tabs li { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.single-product .woocommerce-tabs ul.tabs li a { text-decoration: none; }
.single-product .woocommerce-tabs .panel { padding: 0; margin: 0; border: 0; box-shadow: none; }


/* ============================================================
   SINGLE PRODUCT — CTA BOX (CORE palette)
   ============================================================ */
.cc-cta-box {
  background: #ffffff;
  border: 1px solid #1e7b78;
  border-radius: 12px;
  padding: 20px 24px;
  box-shadow: 0 10px 28px rgba(17,19,24,.05);
}
.cc-cta-box .cc-sp-eyebrow { margin-bottom: 5px; }
.cc-sp-title-row {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 14px;
  margin-bottom: 4px;
}
.cc-cta-box .cc-sp-title-row .product_title { margin: 0; }
.cc-sp-size-line {
  font-size: 12.5px; font-weight: 600; letter-spacing: .08em;
  color: var(--cc-muted2); margin: 0;
}
.cc-cta-box .woocommerce-product-details__short-description {
  margin: 0 0 8px !important;
}
.cc-cta-box .woocommerce-product-details__short-description p {
  margin: 0 !important;
}
.cc-cta-box p.price { font-size: 30px; font-weight: 700; margin: 0 0 10px; }
.cc-sp-price-row {
  display: flex; align-items: center; justify-content: flex-start; gap: 18px;
  min-height: 44px; margin: 0 0 4px;
}
.cc-cta-box .cc-sp-price-row p.price { margin: 0; }
.cc-stock-inline {
  display: inline-flex; align-items: center; gap: 7px; flex: none;
  color: #17795e; font-size: 12px; font-weight: 600;
}
.cc-cta-box form.cart .quantity,
.cc-cta-box form.cart .cc-stock-inline { vertical-align: middle; }
.cc-cta-box form.cart .cc-stock-inline { margin-left: 12px; }

/* Urgency strip — teal-tinted, never pink */
.cc-sp-urgency {
  display: flex; align-items: center; gap: 8px;
  background: #eef5f5; border: 1px solid #d5e6e6; border-radius: 8px;
  color: var(--cc-accent-dk);
  font-size: 13px; font-weight: 500;
  padding: 9px 12px; margin: 0 0 10px;
}
.cc-sp-urgency::before {
  content: ""; width: 16px; height: 16px; flex: none;
  background: var(--cc-accent-dk);
  -webkit-mask: var(--i-shield) center / contain no-repeat;
  mask: var(--i-shield) center / contain no-repeat;
}

.cc-sp-urgency.has-free-delivery {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  column-gap: 10px;
  row-gap: 2px;
  padding-block: 11px;
}

.cc-sp-urgency.has-free-delivery::before {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  width: 18px;
  height: 18px;
  -webkit-mask-image: var(--i-truck);
  mask-image: var(--i-truck);
}

.cc-sp-free-delivery {
  grid-column: 2;
  color: #075f59;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
}

.cc-sp-urgency.has-free-delivery .cc-urgency-text {
  grid-column: 2;
  color: #4e6868;
  font-size: 12px;
  line-height: 1.35;
}

.single-product .cc-sp-urgency.has-free-delivery.is-closed {
  color: var(--cc-accent-dk) !important;
  background: #eef5f5 !important;
  border-color: #d5e6e6 !important;
}

.single-product .cc-sp-urgency.has-free-delivery.is-closed::before {
  background: var(--cc-accent-dk) !important;
}

/* Quantity + stock pill row */
.cc-sp-buyrow { position: relative; }
.cc-cta-box form.cart {
  display: block; margin: 0 0 8px;
}
.cc-cta-box form.cart .quantity {
  display: inline-flex; align-items: center;
  border: 1px solid var(--cc-border-2); border-radius: 8px;
  overflow: hidden; height: 46px; background: #fff;
  margin-bottom: 10px;
}
.cc-qty-btn {
  width: 38px; height: 44px;
  background: transparent; border: none; cursor: pointer;
  font-size: 17px; font-weight: 500; color: var(--cc-text);
  line-height: 1;
}
.cc-qty-btn:hover { background: rgba(0,0,0,.05); }
.cc-cta-box form.cart .quantity input.qty {
  width: 54px; height: 44px; border: none !important;
  border-left: 1px solid var(--cc-border) !important;
  border-right: 1px solid var(--cc-border) !important;
  border-radius: 0 !important;
  text-align: center; font-size: 15px;
  -moz-appearance: textfield;
}
.cc-cta-box form.cart .quantity input.qty::-webkit-outer-spin-button,
.cc-cta-box form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.cc-stock-pill {
  position: absolute; right: 0; top: 11px;
  display: inline-flex; align-items: center; gap: 7px;
  border-radius: 999px; padding: 6px 12px;
  font-size: 12px; font-weight: 600;
}
.cc-stock-pill.is-in  { background: #eaf6f2; color: #17795e; }
.cc-stock-pill.is-out { background: #f3f3f4; color: var(--cc-muted); }
.cc-stock-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }

/* Add to basket */
.cc-cta-box .single_add_to_cart_button.button {
  display: flex !important; align-items: center; justify-content: center; gap: 10px;
  width: 100% !important; min-width: 0;
  height: 52px !important;
  background: #111318 !important; color: #fff !important;
  border-radius: 8px !important;
  font-size: 16px !important; font-weight: 600 !important;
}
.cc-cta-box .single_add_to_cart_button.button::before {
  content: ""; width: 20px; height: 20px;
  background: #fff;
  -webkit-mask: var(--i-cart) center / contain no-repeat;
  mask: var(--i-cart) center / contain no-repeat;
}
.cc-cta-box .single_add_to_cart_button.button:hover { background: #2b2f36 !important; }
.cc-cta-box .single_add_to_cart_button.button.is-adding {
  background: #2b2f36 !important;
  cursor: wait;
}

/* Single-product add-to-basket confirmation. The success notice is fixed so
   it remains visible after WooCommerce reloads the product page. */
.cc-toast-host { position: relative; z-index: 10050; }
.cc-toast-host .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message.cc-cart-toast {
  display: block !important;
  position: fixed !important;
  right: 24px !important;
  bottom: 24px !important;
  left: auto !important;
  top: auto !important;
  z-index: 10050;
  width: min(420px, calc(100vw - 48px)) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  color: #fff !important;
  background: var(--cc-accent) !important;
  border: 1px solid var(--cc-accent) !important;
  border-left: 4px solid #0b5756 !important;
  border-radius: 8px;
  box-shadow: 0 14px 38px rgba(20, 22, 28, .16);
  animation: cc-cart-toast-in .24s ease-out both;
}
.woocommerce-message.cc-cart-toast::before,
.woocommerce-message.cc-cart-toast::after {
  display: none !important;
}
.cc-cart-toast__content {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto 28px;
  gap: 12px;
  align-items: center;
  padding: 16px;
}
.cc-cart-toast__icon {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .16);
}
.cc-cart-toast__icon::after {
  content: "";
  position: absolute;
  left: 10px;
  top: 7px;
  width: 8px;
  height: 13px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.cc-cart-toast__copy {
  display: grid;
  min-width: 0;
  gap: 2px;
  line-height: 1.3;
}
.cc-cart-toast__copy strong {
  font-size: 14px;
  font-weight: 700;
}
.cc-cart-toast__copy span {
  overflow: hidden;
  color: rgba(255, 255, 255, .78);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cc-cart-toast__link {
  color: #fff !important;
  font-size: 13px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.cc-cart-toast__close {
  position: relative;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.cc-cart-toast__close::before,
.cc-cart-toast__close::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 13px;
  width: 14px;
  height: 1px;
  background: rgba(255, 255, 255, .82);
}
.cc-cart-toast__close::before { transform: rotate(45deg); }
.cc-cart-toast__close::after { transform: rotate(-45deg); }
.cc-cart-toast__close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 1px;
}
.woocommerce-message.cc-cart-toast.is-leaving {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .2s ease, transform .2s ease;
}
@keyframes cc-cart-toast-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 600px) {
  .woocommerce-message.cc-cart-toast {
    right: 12px !important;
    bottom: 12px !important;
    width: calc(100vw - 24px) !important;
  }
  .cc-cart-toast__content {
    grid-template-columns: 34px minmax(0, 1fr) 28px;
    gap: 10px;
    padding: 14px;
  }
  .cc-cart-toast__link {
    grid-column: 2;
    justify-self: start;
  }
  .cc-cart-toast__close {
    grid-column: 3;
    grid-row: 1 / span 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce-message.cc-cart-toast {
    animation: none;
  }
  .woocommerce-message.cc-cart-toast.is-leaving {
    transition: none;
  }
}

/* Assurance icons under the button */
.cc-cta-box .cc-sp-assurance {
  display: flex; flex-wrap: wrap; gap: 18px;
  border: none; padding: 18px 0 0; margin: 0;
}
.cc-cta-box .cc-sp-assure {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12px; color: var(--cc-muted2);
}
.cc-cta-box .cc-sp-assure::before { width: 15px; height: 15px; background: var(--cc-muted2); }
.cc-assure-shield { --i: var(--i-shield); }

/* Meta inside the box */
.cc-cta-box .product_meta {
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--cc-border);
  gap: 20px;
}

@media (max-width: 980px) {
  .cc-cta-box { padding: 22px; }
  .cc-stock-pill { position: static; margin-left: 12px; }
}


/* Countdown: neutral styling once the cut-off has passed */
.cc-sp-urgency.is-closed {
  background: #f4f4f5; border-color: var(--cc-border); color: var(--cc-muted2);
}
.cc-sp-urgency.is-closed::before { background: var(--cc-muted2); }
.cc-urgency-text { font-variant-numeric: tabular-nums; }


/* ============================================================
   SINGLE PRODUCT — CTA box refinements (v2.1.2)
   ============================================================ */

/* Meta now sits above the price: divider below it, not above */
.cc-cta-box .product_meta {
  margin: 0 0 10px;
  padding: 8px 0;
  border-top: 1px solid var(--cc-border);
  border-bottom: 1px solid var(--cc-border);
  gap: 18px;
}
.cc-cta-box .product_meta .cc-meta-item {
  gap: 2px;
  line-height: 1.25;
}

/* Space between the quantity row and Add to Basket */
.cc-cta-box form.cart .quantity { margin-bottom: 12px; }
.cc-stock-pill { top: 17px; }


/* ============================================================
   SINGLE PRODUCT — v2.1.3
   ============================================================ */

/* Gallery matches the CTA box height */
.single-product div.product { align-items: stretch; }
.single-product div.product .cc-sp-gallery { display: flex; flex-direction: column; }
.single-product .woocommerce-product-gallery__wrapper { height: 100%; }
.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery__image {
  height: 100%;
}
.single-product .woocommerce-product-gallery__image a,
.single-product .woocommerce-product-gallery__image img {
  height: 100%;
  width: 100%;
  object-fit: contain;
  background: #f5f5f3;
  border-radius: 12px;
  display: block;
}
/* Thumbnails, when present, sit under the main image without stretching it */
.single-product .cc-sp-gallery .flex-control-thumbs { flex: none; }

/* Trust badges centred under the button */
.cc-cta-box .cc-sp-assurance {
  justify-content: center;
  gap: 22px;
}

/* Keep the purchase controls compact and let the CTA box's own 20px inset
   provide the bottom spacing. WooCommerce otherwise adds a second form gap. */
.single-product div.product .cc-cta-box form.cart {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0 16px;
  margin-bottom: 0 !important;
}
.single-product div.product .cc-cta-box form.cart .quantity {
  grid-column: 1; grid-row: 1;
  margin-bottom: 12px !important;
}
.single-product div.product .cc-cta-box form.cart .cc-stock-inline {
  grid-column: 2; grid-row: 1;
  justify-self: end; align-self: center;
  margin: 0 0 12px;
}
.single-product div.product .cc-cta-box form.cart .single_add_to_cart_button {
  grid-column: 1 / -1; grid-row: 2;
}
.single-product div.product .cc-cta-box form.cart .cc-sp-secure {
  grid-column: 1 / -1; grid-row: 3;
}
.cc-stock-pill { top: 19px; }

@media (max-width: 980px) {
  .single-product div.product { align-items: start; }
  .single-product .woocommerce-product-gallery,
  .single-product .woocommerce-product-gallery__image,
  .single-product .woocommerce-product-gallery__image img { height: auto; }
  .cc-cta-box .cc-sp-assurance { justify-content: flex-start; gap: 16px; }
}


/* ============================================================
   SINGLE PRODUCT — fixed gallery plate (v2.1.4)
   The image no longer stretches to match the CTA box, so a wordy product
   can't inflate it. Predictable height, vial stays centred and undistorted.
   ============================================================ */
.single-product div.product { align-items: start; }
.single-product div.product .cc-sp-gallery { display: block; }

.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery__wrapper { height: auto; }

.single-product .woocommerce-product-gallery__image {
  height: 560px;
}
.single-product .woocommerce-product-gallery__image a,
.single-product .woocommerce-product-gallery__image img {
  height: 560px;
  width: 100%;
  object-fit: contain;
  padding: 28px;
  box-sizing: border-box;
  background: #f5f5f3;
  border-radius: 12px;
}

@media (max-width: 1200px) {
  .single-product .woocommerce-product-gallery__image,
  .single-product .woocommerce-product-gallery__image a,
  .single-product .woocommerce-product-gallery__image img { height: 460px; }
}
@media (max-width: 980px) {
  .single-product .woocommerce-product-gallery__image,
  .single-product .woocommerce-product-gallery__image a,
  .single-product .woocommerce-product-gallery__image img { height: 380px; padding: 20px; }
}


/* ============================================================
   SINGLE PRODUCT — gallery plate fix (v2.1.5)
   The plate (background, radius, padding) belongs to the container only.
   Applying it to the <img> as well produced two offset grey boxes.
   ============================================================ */
.single-product .woocommerce-product-gallery__image {
  height: 560px;
  padding: 28px;
  box-sizing: border-box;
  background: #f5f5f3;
  border-radius: 12px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.single-product .woocommerce-product-gallery__image a {
  display: block;
  width: 100%; height: 100%;
  background: none;
  border-radius: 0;
  padding: 0;
}
.single-product .woocommerce-product-gallery__image img {
  width: 100%; height: 100%;
  object-fit: contain;
  background: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0;
}

@media (max-width: 1200px) {
  .single-product .woocommerce-product-gallery__image { height: 460px; }
}
@media (max-width: 980px) {
  .single-product .woocommerce-product-gallery__image { height: 380px; padding: 20px; }
}


/* ============================================================
   SINGLE PRODUCT — gallery plate, definitive (v2.1.6)
   Forcing height:100% down the chain can leave the <img> at its natural
   height, which overflow:hidden then crops. Cap it with max-height instead
   and centre it — the image can never be clipped or distorted.
   ============================================================ */
.single-product .woocommerce-product-gallery { position: relative; }

.single-product .woocommerce-product-gallery__image {
  height: 520px !important;
  padding: 26px !important;
  box-sizing: border-box !important;
  background: #f5f5f3 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.single-product .woocommerce-product-gallery__image a {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  background: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
.single-product .woocommerce-product-gallery__image img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  background: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

@media (max-width: 1200px) {
  .single-product .woocommerce-product-gallery__image { height: 440px !important; }
}
@media (max-width: 980px) {
  .single-product .woocommerce-product-gallery__image { height: 360px !important; padding: 18px !important; }
}


/* Product page discount: a quiet annotation, not a second price (v2.1.7) */
.cc-cta-box p.price .cc-discount-chip,
.single-product p.price .cc-discount-chip {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--cc-accent);
  background: none;
  padding: 0;
  margin-left: 10px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}
.cc-cta-box p.price del {
  font-size: 15px;
  font-weight: 400;
  color: var(--cc-muted);
}
.cc-cta-box p.price ins { font-weight: 700; }


/* ============================================================
   SINGLE PRODUCT — out of stock state (v2.1.8)
   Without an add-to-cart form there is nothing for the absolutely positioned
   pill to sit against, so it drifted into the trust row. Lay it out normally.
   ============================================================ */
.cc-sp-buyrow.is-unavailable { position: static; margin-bottom: 18px; }

.cc-sp-buyrow.is-unavailable .cc-stock-pill {
  position: static;
  display: inline-flex;
  margin-bottom: 14px;
}

.cc-sp-oos {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 56px;
  border: 1px solid var(--cc-border-2);
  border-radius: 8px;
  background: #f1f1f2;
  color: var(--cc-muted);
  font-size: 15px; font-weight: 600;
  cursor: not-allowed;
  box-sizing: border-box;
}
.cc-sp-oos-note {
  margin: 12px 0 0;
  font-size: 12.5px; line-height: 1.55;
  color: var(--cc-muted);
  text-align: center;
}


/* ============================================================
   SINGLE PRODUCT — trust panel beside the tabs, compact (v2.1.9)
   An earlier `grid-column: 1 / -1` was winning, so the cards spanned the full
   width and stacked. Pin them to the right column and tighten them.
   ============================================================ */
.single-product div.product .woocommerce-tabs { grid-column: 1 !important; margin-top: 44px; }
.single-product div.product .cc-sp-trust {
  grid-column: 2 !important;
  margin-top: 44px;
  display: flex; flex-direction: column; gap: 10px;
  align-self: start;
}
.single-product div.product .related,
.single-product div.product .up-sells { grid-column: 1 / -1 !important; }

.cc-sp-trust-card {
  padding: 14px 16px 14px 50px;
  border-radius: 9px;
}
.cc-sp-trust-card::before { left: 17px; top: 16px; width: 19px; height: 19px; }
.cc-sp-trust-card h4 { font-size: 13px; margin-bottom: 3px; }
.cc-sp-trust-card p { font-size: 12px; line-height: 1.5; }

@media (max-width: 980px) {
  .single-product div.product .woocommerce-tabs,
  .single-product div.product .cc-sp-trust { grid-column: 1 !important; margin-top: 28px; }
  /* Two across on tablet so they don't run down the page */
  .single-product div.product .cc-sp-trust {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  }
}
@media (max-width: 600px) {
  .single-product div.product .cc-sp-trust { grid-template-columns: 1fr; }
}


/* ============================================================
   SINGLE PRODUCT — sticky CTA + full-width trust grid (v2.2.0)
   ============================================================ */

/* The purchase panel is regular content in the product grid. */
.single-product div.product .cc-sp-summary { align-self: start; }

/* Tabs span the full width now that the trust panel has moved below */
.single-product div.product .woocommerce-tabs { grid-column: 1 !important; }

/* Trust panel: full-width grid under Additional information */
.single-product div.product .cc-sp-trust {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 40px;
  align-self: auto;
}
.single-product div.product .cc-sp-trust .cc-sp-trust-card {
  padding: 18px 18px 18px 18px;
}
.single-product div.product .cc-sp-trust .cc-sp-trust-card::before {
  position: static;
  display: block;
  margin-bottom: 12px;
  width: 22px; height: 22px;
}
.single-product div.product .cc-sp-trust .cc-sp-trust-card h4 { font-size: 13.5px; margin-bottom: 5px; }
.single-product div.product .cc-sp-trust .cc-sp-trust-card p { font-size: 12.5px; line-height: 1.55; }

@media (max-width: 1100px) {
  .single-product div.product .cc-sp-trust { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 780px) {
  .single-product div.product .cc-sp-trust { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .single-product div.product .cc-sp-trust { grid-template-columns: 1fr; }
}


/* ============================================================
   SINGLE PRODUCT — sticky CTA + 4-up trust grid (v2.2.0)
   The summary spans both content rows so the sticky box has a scroll runway
   alongside the tabs; without that it would have nothing to stick against.
   ============================================================ */
.single-product div.product {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
}
.single-product div.product .cc-sp-gallery { grid-column: 1; grid-row: 1; }
.single-product div.product .cc-sp-summary {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
}
.single-product div.product .woocommerce-tabs {
  grid-column: 1 !important;
  grid-row: 2;
  margin-top: 44px;
}

/* Trust badges: four across, full width, beneath the tabs */
.single-product div.product .cc-sp-trust {
  grid-column: 1 / -1 !important;
  grid-row: 3;
  margin-top: 48px;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.cc-sp-trust-card { padding: 18px 18px 18px 52px; }
.cc-sp-trust-card::before { left: 18px; top: 19px; }

.single-product div.product .up-sells,
.single-product div.product .related { grid-column: 1 / -1 !important; }

@media (max-width: 980px) {
  .single-product div.product { grid-template-columns: 1fr; }
  .single-product div.product .cc-sp-gallery,
  .single-product div.product .cc-sp-summary,
  .single-product div.product .woocommerce-tabs {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  .single-product div.product .cc-sp-summary { position: static; }
  .single-product div.product .cc-sp-trust {
    grid-row: auto; grid-template-columns: 1fr 1fr; margin-top: 32px;
  }
}
@media (max-width: 600px) {
  .single-product div.product .cc-sp-trust { grid-template-columns: 1fr; }
}


/* ============================================================
   PRODUCT PAGE OVERFLOW SAFEGUARDS (v2.2.1)
   ============================================================ */
html, body { overflow-x: clip; }
.wp-site-blocks,
.cc-main,
.single-product div.product,
.single-product .cc-sp-summary { overflow: visible; }

/* Safety net for browsers without overflow: clip support */
@supports not (overflow-x: clip) {
  html, body { overflow-x: visible; }
}

/* ============================================================
   SINGLE PRODUCT — trust badges 2x2 in the left column (v2.2.2)
   A full-width grid ran underneath the sticky CTA box and collided with it.
   Constraining the badges to column 1 keeps both intact.
   ============================================================ */
.single-product div.product .cc-sp-trust {
  grid-column: 1 !important;
  grid-row: 3;
  margin-top: 36px;
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-self: start;
}
.single-product div.product .cc-sp-summary { z-index: 2; }
.single-product div.product .cc-sp-trust,
.single-product div.product .woocommerce-tabs { z-index: 1; }

@media (max-width: 980px) {
  .single-product div.product .cc-sp-trust {
    grid-row: auto; margin-top: 28px;
  }
}
@media (max-width: 600px) {
  .single-product div.product .cc-sp-trust { grid-template-columns: 1fr; }
}


/* ============================================================
   SINGLE PRODUCT — tabs become stacked sections (v2.2.3)
   With only a couple of short panels, the tab strip is a click for nothing.
   Hide the nav and show every panel, each keeping its own heading.
   ============================================================ */
.single-product .woocommerce-tabs ul.tabs { display: none !important; }
.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
  display: block !important;
  margin-bottom: 34px;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel:last-child { margin-bottom: 0; }
.single-product .woocommerce-tabs { margin-top: 40px; }
.single-product .woocommerce-Tabs-panel h2 {
  font-size: 19px; font-weight: 700; color: var(--cc-text);
  margin: 0 0 14px; padding-bottom: 12px;
  border-bottom: 1px solid var(--cc-border);
}


/* ============================================================
   SINGLE PRODUCT — mobile refinements (v2.2.4)
   ============================================================ */
@media (max-width: 980px) {
  /* Keep the stock pill on the quantity row rather than dropping below the button */
  .cc-sp-buyrow { position: relative; }
  .cc-stock-pill {
    position: absolute !important;
    right: 0;
    top: 19px;
    margin-left: 0;
  }
  .cc-sp-buyrow.is-unavailable .cc-stock-pill { position: static !important; }
}

@media (max-width: 600px) {
  /* Trust badges stay 2x2; the supporting line is dropped so the titles fit */
  .single-product div.product .cc-sp-trust {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px;
  }
  .cc-sp-trust-card {
    padding: 14px 12px 14px 12px;
    text-align: left;
  }
  .cc-sp-trust-card::before {
    position: static;
    display: block;
    margin-bottom: 8px;
    width: 20px; height: 20px;
  }
  .cc-sp-trust-card h4 { font-size: 12.5px; line-height: 1.35; margin: 0; }
  .cc-sp-trust-card p { display: none; }
  .cc-sp-trust-link { margin-top: 6px; font-size: 11px; }
}


/* ============================================================
   SINGLE PRODUCT — compact preparation-supply cards (v2.5.41)
   Keep the two quick-add cards within the left-hand content column rather
   than allowing the recommendations module to span beneath the sticky CTA.
   ============================================================ */
@media (min-width: 981px) {
  .single-product div.product .up-sells,
  .single-product div.product .related {
    grid-column: 1 !important;
    width: 100%;
    max-width: none;
  }

  .single-product .up-sells ul.products,
  .single-product .related ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: none !important;
  }

  .single-product .up-sells ul.products li.product .cc-card-media,
  .single-product .related ul.products li.product .cc-card-media {
    height: 124px;
  }
  .single-product .up-sells ul.products li.product .cc-card-media img,
  .single-product .related ul.products li.product .cc-card-media img {
    padding: 7px;
  }
  .single-product .up-sells ul.products li.product .cc-card-body,
  .single-product .related ul.products li.product .cc-card-body {
    padding: 10px !important;
  }
  .single-product .up-sells .cc-card-cat,
  .single-product .related .cc-card-cat {
    font-size: 10px;
    margin-bottom: 3px !important;
  }
  .single-product .up-sells .cc-card-title,
  .single-product .related .cc-card-title {
    min-height: calc(2 * 1.25 * 13px);
    font-size: 13px;
    margin-bottom: 5px !important;
  }
  .single-product .up-sells .cc-card-cas,
  .single-product .related .cc-card-cas {
    font-size: 9.5px;
    margin-bottom: 6px !important;
  }
  .single-product .up-sells .cc-card-tags,
  .single-product .related .cc-card-tags {
    gap: 4px;
  }
  .single-product .up-sells .cc-card-tags span,
  .single-product .related .cc-card-tags span {
    height: 22px;
    padding: 0 6px;
    font-size: 9.5px;
  }
  .single-product .up-sells ul.products li.product .cc-card-foot,
  .single-product .related ul.products li.product .cc-card-foot {
    gap: 7px;
    padding-top: 8px;
  }
  .single-product .up-sells .cc-card-price,
  .single-product .related .cc-card-price {
    font-size: 16px;
    gap: 4px;
  }
  .single-product .up-sells .cc-card-price del,
  .single-product .related .cc-card-price del {
    font-size: 10px;
  }
  .single-product .up-sells .cc-card-price .cc-discount-chip,
  .single-product .related .cc-card-price .cc-discount-chip {
    font-size: 9px;
  }
  .single-product .up-sells ul.products li.product .cc-card-btn,
  .single-product .related ul.products li.product .cc-card-btn {
    height: 38px;
  }
  .single-product .up-sells ul.products li.product .cc-card-btn .cc-btn-label,
  .single-product .related ul.products li.product .cc-card-btn .cc-btn-label {
    font-size: 11px;
  }
  .single-product .up-sells .cc-card-media .cc-badge,
  .single-product .related .cc-card-media .cc-badge {
    top: 8px;
    left: 8px;
    font-size: 8px;
    padding: .25rem .4rem;
  }
}


/* ============================================================
   SINGLE PRODUCT — mobile CTA polish (v2.2.5)
   ============================================================ */
@media (max-width: 980px) {
  /* Stock pill: vertically centred against the 46px quantity stepper */
  .cc-stock-pill {
    top: 50% !important;
    transform: translateY(-50%);
  }
  /* The buy row's positioning context must be the stepper row, not the form */
  .cc-sp-buyrow { position: relative; }
  .cc-sp-buyrow .cc-stock-pill { top: 23px !important; transform: translateY(-50%); }
  .cc-sp-buyrow.is-unavailable .cc-stock-pill { position: static !important; transform: none; }
}

@media (max-width: 600px) {
  /* Assurance badges: all three on one centred row */
  .cc-cta-box .cc-sp-assurance {
    flex-wrap: nowrap;
    justify-content: center;
    gap: 14px;
  }
  .cc-cta-box .cc-sp-assure {
    font-size: 10.5px;
    gap: 5px;
    white-space: nowrap;
  }
  .cc-cta-box .cc-sp-assure::before { width: 13px; height: 13px; }
}
@media (max-width: 360px) {
  .cc-cta-box .cc-sp-assure { font-size: 9.5px; }
  .cc-cta-box .cc-sp-assurance { gap: 10px; }
}


/* ============================================================
   CATALOGUE CARDS — sale price row on mobile (v2.2.6)
   The old/new/discount trio doesn't fit a half-width card at full size, and
   the discount chip was breaking mid-text ("8% / OFF"). Scale the row down
   and let the chip wrap only as a whole.
   ============================================================ */
.cc-card-price .cc-discount-chip { white-space: nowrap; }

@media (max-width: 600px) {
  .cc-card-price { gap: 5px; row-gap: 2px; }
  .cc-card-price del { font-size: 11px; }
  .cc-card-price ins { font-size: 16px; }
  .cc-card-price .cc-discount-chip { font-size: 10px; }
}
@media (max-width: 400px) {
  /* Very narrow: old price above, sale price + chip together below */
  .cc-card-price del { flex-basis: 100%; }
}


/* ============================================================
   MOBILE HERO — vials tucked up to the CTA (v2.2.8)
   The image file carries feathered-empty space above the vials; `contain`
   renders all of it as a gap. Pin the image to the bottom of a shorter box
   so the empty top is cropped, and pull the box closer to the button.
   ============================================================ */
@media (max-width: 980px) {
  .cc-hero-visual {
    aspect-ratio: auto !important;
    height: clamp(230px, 38vw, 330px) !important;
    margin-top: 0.75rem !important;
    background-size: 100% auto !important;
    background-position: center bottom !important;
  }
}
@media (max-width: 600px) {
  .cc-hero-visual {
    height: clamp(200px, 42vw, 280px) !important;
    margin-top: 0.5rem !important;
  }
}


/* ============================================================
   ABOUT PAGE (v2.3.0)
   ============================================================ */
.cc-about { font-family: 'Space Grotesk', system-ui, sans-serif; }
.cc-about-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 clamp(18px, 4vw, 64px);
}
.cc-about-hero {
  background: #f4f4f2;
  padding: clamp(56px, 7vw, 96px) 0;
  text-align: center;
}
.cc-about-hero h1 {
  font-size: clamp(34px, 4.4vw, 54px);
  font-weight: 700; letter-spacing: -0.02em; line-height: 1.06;
  margin: 0 0 22px;
}
.cc-about-lead {
  max-width: 62ch; margin: 0 auto;
  font-size: 17px; line-height: 1.65; color: var(--cc-muted2);
}
.cc-about-body { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(48px, 6vw, 80px); }
.cc-about-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 56px);
  margin-bottom: clamp(48px, 6vw, 72px);
}
.cc-about h2 { font-size: 24px; font-weight: 700; margin: 0 0 14px; }
.cc-about-grid p { font-size: 15.5px; line-height: 1.7; color: var(--cc-muted2); margin: 0 0 14px; }
.cc-about-standards { margin-bottom: clamp(48px, 6vw, 72px); }
.cc-about-cards {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 14px; margin-top: 22px;
}
.cc-about-ruo {
  background: #f6f6f7; border-radius: 12px;
  padding: clamp(28px, 4vw, 44px);
  text-align: center;
}
.cc-about-ruo p {
  max-width: 68ch; margin: 0 auto 22px;
  font-size: 15px; line-height: 1.7; color: var(--cc-muted2);
}
@media (max-width: 900px) {
  .cc-about-grid { grid-template-columns: 1fr; }
  .cc-about-cards { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .cc-about-cards { grid-template-columns: 1fr; }
}


/* ============================================================
   LEGAL / POLICY PAGES (shared: RUO, terms, privacy, disclaimer)
   ============================================================ */
.cc-legal { font-family: 'Space Grotesk', system-ui, sans-serif; }
.cc-legal-inner {
  max-width: 780px;
  margin: 0 auto;
  padding: clamp(48px, 6vw, 80px) clamp(18px, 4vw, 64px);
}
.cc-legal h1 {
  font-size: clamp(30px, 3.6vw, 42px);
  font-weight: 700; letter-spacing: -0.02em;
  margin: 0 0 8px;
}
.cc-legal-updated { font-size: 13px; color: var(--cc-muted); margin: 0 0 28px; }
.cc-legal-callout {
  background: #eef5f5; border: 1px solid #d5e6e6; border-radius: 10px;
  padding: 20px 22px;
  font-size: 15px; line-height: 1.65; color: var(--cc-accent-dk);
  margin-bottom: 36px;
}
.cc-legal h2 {
  font-size: 19px; font-weight: 700;
  margin: 34px 0 12px;
}
.cc-legal p, .cc-legal li {
  font-size: 15px; line-height: 1.75; color: var(--cc-muted2);
}
.cc-legal p { margin: 0 0 14px; }
.cc-legal ul { margin: 0 0 14px; padding-left: 22px; }
.cc-legal li { margin-bottom: 8px; }
.cc-legal a { color: var(--cc-accent-dk); }


/* ============================================================
   CONTACT + FAQS (v2.3.2)
   ============================================================ */
.cc-contact-lead {
  font-size: 16px; line-height: 1.65; color: var(--cc-muted2);
  margin: 0 0 34px !important;
}
.cc-contact-cards {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 14px; margin-bottom: 40px;
}
.cc-contact-card {
  border: 1px solid var(--cc-border); border-radius: 10px;
  background: #fff;
  padding: 20px;
  position: relative; padding-top: 52px;
}
.cc-contact-card::before {
  content: ""; position: absolute; left: 20px; top: 20px;
  width: 22px; height: 22px;
  background: var(--cc-text);
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
}
.cc-contact-card h4 { font-size: 14.5px; font-weight: 600; margin: 0 0 6px; color: var(--cc-text); }
.cc-contact-card p { font-size: 13px; line-height: 1.55; margin: 0 0 12px; }
.cc-contact-card a { font-size: 13.5px; font-weight: 600; color: var(--cc-accent-dk); word-break: break-all; }

/* FAQ accordions — native details/summary, no JS */
.cc-faq {
  border: 1px solid var(--cc-border);
  border-radius: 9px;
  background: #fff;
  margin-bottom: 10px;
}
.cc-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 16px 46px 16px 18px;
  font-size: 15px; font-weight: 600; color: var(--cc-text);
  position: relative;
}
.cc-faq summary::-webkit-details-marker { display: none; }
.cc-faq summary::after {
  content: "+";
  position: absolute; right: 18px; top: 50%;
  transform: translateY(-50%);
  font-size: 20px; font-weight: 400; color: var(--cc-muted);
  transition: transform .15s ease;
}
.cc-faq[open] summary::after { content: "\2212"; }
.cc-faq summary:focus-visible { outline: 2px solid var(--cc-accent); outline-offset: 2px; border-radius: 9px; }
.cc-faq-body { padding: 0 18px 16px; }
.cc-faq-body p { margin: 0; font-size: 14.5px; }
.cc-faqs h2 { margin-top: 40px; }
.cc-faqs h2:first-of-type { margin-top: 0; }

@media (max-width: 780px) {
  .cc-contact-cards { grid-template-columns: 1fr; }
}


/* ============================================================
   SINGLE PRODUCT — multi-image gallery (v2.3.9)
   With the slider script enqueued, WooCommerce turns the images into a
   flexslider with a thumbnail row. Before JS runs (or if it fails), constrain
   the raw images so they don't stack as full-width strips down the column.
   ============================================================ */

/* Thumbnail row under the main image */
.single-product .flex-control-thumbs {
  display: flex !important;
  flex-wrap: wrap;
  gap: 12px;
  margin: 14px 0 0 !important;
  padding: 0;
  list-style: none;
}
.single-product .flex-control-thumbs li {
  width: 84px !important;
  height: 84px;
  margin: 0 !important;
  list-style: none;
}
.single-product .flex-control-thumbs img {
  width: 84px !important;
  height: 84px !important;
  object-fit: contain;
  padding: 8px;
  box-sizing: border-box;
  background: #f5f5f3;
  border: 1px solid var(--cc-border);
  border-radius: 8px;
  cursor: pointer;
  opacity: .65;
  transition: opacity .15s ease, border-color .15s ease;
}
.single-product .flex-control-thumbs img.flex-active,
.single-product .flex-control-thumbs img:hover {
  opacity: 1;
  border-color: var(--cc-text);
}

/* Before flexslider initialises, hide all but the first image so the raw
   markup doesn't render as a tall stack. flexslider reveals them as slides. */
.single-product .woocommerce-product-gallery:not(.woocommerce-product-gallery--with-images) .woocommerce-product-gallery__image:not(:first-child) {
  display: none;
}
.single-product .woocommerce-product-gallery__wrapper {
  margin: 0; padding: 0;
}

/* Lightbox trigger button */
.single-product .woocommerce-product-gallery__trigger {
  z-index: 5;
  top: 18px; right: 18px;
}


/* ============================================================
   SINGLE PRODUCT — gallery: simple swap layout (v2.4.5)
   Built by cc-cards.js as .cc-gallery-swap: one full-width image plate with
   a compact horizontal contact sheet beneath it. No flexslider, so nothing
   fights the plate sizing.
   ============================================================ */
.single-product .woocommerce-product-gallery.cc-gallery-swap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  opacity: 1 !important;
}
.cc-gallery-thumbs {
  order: 2;
  width: 100%;
  flex: none;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  padding: 2px 0 0;
  box-sizing: border-box;
}
.cc-gallery-thumb {
  flex: 0 0 76px;
  width: 76px;
  height: 76px;
  object-fit: contain;
  padding: 7px;
  box-sizing: border-box;
  background: #f5f5f3;
  border: 1px solid var(--cc-border);
  border-radius: 8px;
  cursor: pointer;
  opacity: .65;
  transition: opacity .15s ease, border-color .15s ease;
}
.cc-gallery-thumb.is-active,
.cc-gallery-thumb:hover { opacity: 1; border-color: var(--cc-text); }

.cc-gallery-main {
  order: 1;
  flex: none;
  width: 100%;
  height: 520px;
  background: #f5f5f3;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 26px;
  box-sizing: border-box;
  cursor: zoom-in;
  position: relative;
}
.cc-gallery-main img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.cc-gallery-swap .cc-gallery-thumbs:empty { display: none; }

@media (max-width: 1200px) { .cc-gallery-main { height: 440px; } }
@media (max-width: 600px) {
  .cc-gallery-thumbs {
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 10px;
    padding: 2px 0 5px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: thin;
  }
  .cc-gallery-thumb {
    flex: 0 0 68px;
    width: 68px;
    height: 68px;
    padding: 6px;
    scroll-snap-align: start;
  }
  .cc-gallery-main { height: 340px; padding: 18px; }

  /* Progressive fallback while delayed JavaScript is waiting for the slides:
     show one full-width image at a time in a horizontal snap track. */
  .single-product .woocommerce-product-gallery:not(.cc-gallery-swap) .woocommerce-product-gallery__wrapper {
    display: flex !important;
    width: 100% !important;
    transform: none !important;
    overflow-x: auto;
    scroll-snap-type: inline mandatory;
    overscroll-behavior-inline: contain;
  }
  .single-product .woocommerce-product-gallery:not(.cc-gallery-swap) .woocommerce-product-gallery__image {
    display: block !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    margin: 0 !important;
    scroll-snap-align: start;
  }
}


/* ============================================================
   SINGLE PRODUCT — breadcrumb (v2.4.6)
   ============================================================ */
.cc-sp-breadcrumb {
  max-width: 1400px;
  margin: 0 auto 22px;
  font-size: 13px;
  color: var(--cc-muted);
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.cc-sp-breadcrumb a { color: var(--cc-muted2); text-decoration: none; }
.cc-sp-breadcrumb a:hover { color: var(--cc-accent-dk); }
.cc-sp-breadcrumb .cc-sep { color: var(--cc-border-2); }
.cc-sp-breadcrumb .cc-current { color: var(--cc-text); font-weight: 500; }


/* ============================================================
   CART — hide cross-sell suggestions (v2.4.7)
   Display-only: the "You may be interested in" cross-sell block adds length
   with weak recommendations on a small catalogue. This hides that block and
   nothing else — no cart or checkout logic is touched.
   ============================================================ */
.woocommerce-cart .cross-sells,
.wp-block-woocommerce-cart-cross-sells-block,
.wc-block-cart__cross-sells,
.wc-block-cart-cross-sells {
  display: none !important;
}


/* ============================================================
   PRODUCT FAMILIES â€” size selector + grouped cards (v2.5.0)
   ============================================================ */
.cc-size-selector {
  margin: -2px 0 10px;
  padding: 10px;
  border: 1px solid var(--cc-border);
  border-radius: 10px;
  background: #fff;
}
.cc-size-selector__options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.cc-size-option {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  min-height: 48px;
  padding: 8px 10px;
  box-sizing: border-box;
  border: 1px solid var(--cc-border-2);
  border-radius: 8px;
  background: #f7f7f7;
  color: var(--cc-text);
  text-decoration: none;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}
.cc-size-option:hover {
  border-color: var(--cc-text);
  background: #fff;
}
.cc-size-option:active { transform: scale(.985); }
.cc-size-option:focus-visible {
  outline: 2px solid var(--cc-accent);
  outline-offset: 2px;
}
.cc-size-option.is-active {
  border-color: var(--cc-accent);
  background: #eef7f6;
  box-shadow: inset 0 0 0 1px rgba(17,107,107,.08);
}
.cc-size-option.is-unavailable:not(.is-active) { opacity: .58; }
.cc-size-option > span {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.1;
}
.cc-size-option > small {
  color: inherit;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  opacity: .7;
}
.cc-size-option small .single-price-wrap,
.cc-size-option small .price-with-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
}
.cc-size-option small .cc-discount-chip { display: none; }
.cc-option-stock::before { content: " · "; }
.cc-family-price-prefix {
  color: var(--cc-muted2);
  font-size: .72em;
  font-weight: 600;
}
.cc-card-tags .cc-chip-family {
  text-transform: uppercase;
  letter-spacing: .02em;
}

@media (max-width: 600px) {
  .cc-size-selector { padding: 12px; }
  .cc-size-selector__options { grid-template-columns: 1fr 1fr; gap: 7px; }
  .cc-size-option { min-height: 52px; padding: 9px 10px; }
}


/* ============================================================
   HOMEPAGE â€” navigation and conversion polish (v2.5.2)
   ============================================================ */
.cc-hero-cta .cc-btn-outline {
  background: rgba(255,255,255,.84);
  backdrop-filter: blur(4px);
}

.cc-category-nav {
  max-width: 1400px;
  margin: 0 auto;
  padding: 38px 1.5rem 0;
}
.cc-category-head {
  margin-bottom: 18px;
}
.cc-category-head .cc-eyebrow { margin-bottom: 8px; }
.cc-category-head h2 {
  max-width: 660px;
  margin: 0;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -.015em;
}
.cc-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--cc-border);
  border-bottom: 1px solid var(--cc-border);
}
.cc-category-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 104px;
  padding: 18px 22px;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--cc-text);
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.cc-category-card:hover {
  transform: none;
  background: #f7f9f9;
  box-shadow: none;
}
.cc-category-card + .cc-category-card { border-left: 1px solid var(--cc-border); }
.cc-category-card:focus-visible {
  outline: 3px solid var(--cc-accent);
  outline-offset: 3px;
}
.cc-category-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #e8f2f2;
  color: var(--cc-accent-dk);
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.cc-category-copy { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.cc-category-copy strong { font-size: 17px; line-height: 1.15; }
.cc-category-copy small { color: var(--cc-muted2); font-size: 12.5px; line-height: 1.4; }
.cc-category-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid #d4e5e4;
  border-radius: 50%;
  background: #f3f8f7;
  color: var(--cc-accent);
  font-size: 18px;
  line-height: 1;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}
.cc-category-card:hover .cc-category-arrow {
  transform: translateX(3px);
  border-color: var(--cc-accent);
  background: #e8f2f2;
}

/* Editorial information blocks: deliberately flatter than product cards. */
.cc-panel {
  position: relative;
  border: 0;
  border-left: 2px solid rgba(17,107,107,.65);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.cc-panel::before { content: none; }

@media (max-width: 980px) {
  .cc-category-nav { padding-top: 30px; }
  .cc-category-grid { grid-template-columns: 1fr; }
  .cc-category-card { min-height: 92px; }
  .cc-category-card + .cc-category-card {
    border-left: 0;
    border-top: 1px solid var(--cc-border);
  }
}

@media (max-width: 560px) {
  .cc-hero-cta {
    width: 100%;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
    flex-direction: column;
    gap: 10px;
  }
  .cc-hero-cta .cc-btn-solid,
  .cc-hero-cta .cc-btn-outline { width: 100%; min-width: 0; }
  .cc-category-nav { padding: 28px 1rem 0; }
  .cc-category-head { display: block; margin-bottom: 14px; }
  .cc-category-card {
    gap: 12px;
    min-height: 82px;
    padding: 15px 4px;
    background: linear-gradient(90deg, rgba(232,242,242,.32), rgba(255,255,255,0) 38%);
  }
  .cc-category-index { width: 30px; height: 30px; }
  .cc-category-copy strong { font-size: 16px; }
  .cc-category-copy small { font-size: 12px; }
  .cc-category-arrow { width: 30px; height: 30px; font-size: 16px; }
}


/* ============================================================
   HOMEPAGE â€” full-width research-use notice (v2.5.6)
   ============================================================ */
.cc-ruo-banner {
  width: 100%;
  max-width: none;
  min-height: 48px;
  margin: 0;
  padding: 8px clamp(18px, 4vw, 64px);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  border: 0;
  border-radius: 0;
  background: var(--cc-accent);
  color: #fff;
}
.cc-ruo-banner-primary { margin-top: 0; }
.cc-ruo-label {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.32);
  background: rgba(255,255,255,.13);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}
.cc-ruo-content {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.cc-ruo-banner p {
  margin: 0;
  color: rgba(255,255,255,.88);
  font-size: 12.5px;
  line-height: 1.45;
}
.cc-ruo-banner a {
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.cc-ruo-banner a:hover { color: #fff; text-decoration-thickness: 2px; }
.cc-ruo-banner a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
@media (max-width: 700px) {
  .cc-hero { padding-bottom: clamp(16px, 4vw, 22px); }
  .cc-ruo-banner {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 9px 12px;
    padding: 14px;
  }
  .cc-ruo-content { display: block; }
  .cc-ruo-banner p { display: block; }
  .cc-ruo-banner a { display: none; }
}
@media (max-width: 560px) {
  .cc-ruo-banner p { font-size: 12px; }
}

/* Keep supporting content compact on mobile so the products remain the
   page's main card treatment. */
@media (max-width: 540px) {
  .cc-usp-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 14px;
    padding: 24px 1rem;
    background: transparent;
  }
  .cc-usp-strip > div { min-width: 0; }
  .cc-usp-strip h3 {
    gap: 7px;
    margin-bottom: 3px;
    font-size: 10.5px;
    letter-spacing: .045em;
  }
  .cc-usp-strip h3::before { width: 16px; height: 16px; }
  .cc-usp-strip p { margin-top: 0; font-size: 11.5px; line-height: 1.5; }
  .cc-panels { padding: 1.8rem 1rem 2.5rem; gap: 2.25rem; }
  .cc-panel { padding: .25rem 0 .25rem 1.25rem; }
  .cc-panel h2 { font-size: 1.3rem; }
}


/* ============================================================
   HOMEPAGE â€” three trust pillars (v2.5.11)
   ============================================================ */
.cc-trust-section {
  margin-top: 2.25rem;
  padding: clamp(44px, 5vw, 64px) 0;
  border-top: 1px solid var(--cc-border);
  border-bottom: 1px solid var(--cc-border);
  background: #f7f8f8;
}
.cc-trust-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1.5rem;
  box-sizing: border-box;
}
.cc-trust-head {
  max-width: 760px;
  margin: 0;
  text-align: left;
}
.cc-trust-head .cc-eyebrow { margin: 0 0 10px; }
.cc-trust-head h2 {
  margin: 0;
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.02em;
}
.cc-trust-head > p:last-child {
  max-width: 580px;
  margin: 14px 0 0;
  color: var(--cc-muted2);
  font-size: 14.5px;
  line-height: 1.6;
}
.cc-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 32px;
}
.cc-trust-pillar {
  position: relative;
  min-height: 210px;
  padding: 32px 28px 28px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  border: 1px solid var(--cc-border);
  border-radius: 10px;
  background: #fff;
  text-align: left;
}
.cc-trust-pillar::before {
  content: "";
  width: 34px;
  height: 34px;
  margin-bottom: 20px;
  flex: none;
  background: var(--cc-accent-dk);
  -webkit-mask: var(--cc-trust-icon) center / contain no-repeat;
  mask: var(--cc-trust-icon) center / contain no-repeat;
}
.cc-trust-testing { --cc-trust-icon: var(--i-award); }
.cc-trust-dispatch { --cc-trust-icon: var(--i-truck); }
.cc-trust-delivery { --cc-trust-icon: var(--i-box); }
.cc-trust-pillar h3 {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 1.35;
  text-transform: uppercase;
}
.cc-trust-pillar p {
  max-width: 40ch;
  margin: 0;
  color: var(--cc-muted2);
  font-size: 13.5px;
  line-height: 1.65;
}

@media (max-width: 700px) {
  .cc-trust-section { margin-top: 1.5rem; padding: 34px 0 28px; }
  .cc-trust-inner { padding: 0 1rem; }
  .cc-trust-head h2 { font-size: 25px; }
  .cc-trust-head > p:last-child { margin-top: 10px; font-size: 13px; }
  .cc-trust-grid {
    grid-template-columns: 1fr;
    gap: 0;
    margin-top: 24px;
    border-top: 1px solid var(--cc-border);
    border-bottom: 1px solid var(--cc-border);
    background: #fff;
  }
  .cc-trust-pillar {
    min-height: 0;
    padding: 18px 10px 18px 56px;
    display: block;
    border: 0;
    border-radius: 0;
    background: transparent;
    text-align: left;
  }
  .cc-trust-pillar + .cc-trust-pillar { border-top: 1px solid var(--cc-border); }
  .cc-trust-pillar::before {
    position: absolute;
    left: 14px;
    top: 19px;
    width: 26px;
    height: 26px;
    margin: 0;
  }
  .cc-trust-pillar h3 { margin-bottom: 5px; font-size: 11.5px; }
  .cc-trust-pillar p { max-width: none; font-size: 12px; line-height: 1.5; }
}


/* ============================================================
   CATALOGUE — factual archive introduction (v2.5.45)
   ============================================================ */
.cc-main .cc-shop-head {
  max-width: 1400px;
  margin: 0 auto;
}
.cc-shop-head-top {
  display: block;
}
.cc-shop-intro { max-width: 760px; }
.cc-shop-summary {
  max-width: 680px;
  margin: 13px 0 0;
  color: var(--cc-muted2);
  font-size: 14px;
  line-height: 1.55;
}
.cc-shop-head .cc-filter-pills { margin-top: 26px; }
.cc-shop-toolbar {
  padding: 15px 0;
  border-top: 1px solid var(--cc-border);
  border-bottom: 1px solid var(--cc-border);
}
.cc-shop-sort {
  order: 2;
  display: flex;
  align-items: center;
  gap: 10px;
}
.cc-shop-sort > span {
  color: var(--cc-muted2);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.cc-shop-sort .woocommerce-ordering { margin: 0; }
.cc-catalog-policy {
  max-width: 1400px;
  margin: 30px auto 0;
  padding: 15px 18px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border: 1px solid var(--cc-border);
  border-radius: 8px;
  background: #f7f7f8;
}
.cc-catalog-policy p {
  margin: 0;
  color: var(--cc-muted2);
  font-size: 12px;
  line-height: 1.5;
}
.cc-catalog-policy p strong { color: var(--cc-text); }
.cc-catalog-policy a {
  flex: none;
  color: var(--cc-text);
  font-size: 12px;
  font-weight: 650;
  text-underline-offset: 3px;
}

@media (max-width: 700px) {
  .cc-shop-toolbar {
    align-items: stretch;
    gap: 12px;
  }
  .cc-shop-sort { justify-content: space-between; }
  .cc-catalog-policy {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    margin-top: 22px;
    padding: 14px 15px;
  }
}
@media (max-width: 520px) {
  .cc-shop-title { font-size: 31px; }
  .cc-shop-summary { font-size: 13px; }
}


/* ============================================================
   HOMEPAGE FEATURED — evidence-led editorial cards (v2.5.46)
   ============================================================ */
.cc-featured-intro {
  padding-top: clamp(50px, 6vw, 78px);
  padding-bottom: 26px;
}
.cc-featured-proof-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: clamp(32px, 6vw, 84px);
  padding-bottom: 30px;
  border-bottom: 1px solid var(--cc-border);
}
.cc-featured-proof-copy { max-width: 740px; }
.cc-featured-proof-copy .cc-eyebrow { margin-bottom: 14px; }
.cc-featured-proof-copy h2 {
  max-width: 21ch;
  margin: 0;
  color: var(--cc-text);
  font-size: clamp(30px, 3.3vw, 46px);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.04;
}
.cc-featured-proof-copy h2 span { color: var(--cc-accent-dk); }
.cc-featured-proof-copy > p:last-child {
  max-width: 66ch;
  margin: 18px 0 0;
  color: var(--cc-muted2);
  font-size: 14px;
  line-height: 1.6;
}
.cc-featured-browse {
  align-self: end;
  min-height: 40px;
  margin: 0 0 2px;
  padding: 0 18px;
  font-size: 12px;
}

.cc-featured ul.products { gap: 16px; }
.cc-featured ul.products li.product {
  background: #f7f7f8;
  border-color: var(--cc-border);
  border-radius: 8px;
  box-shadow: none;
}
.cc-featured ul.products li.product:hover {
  border-color: #cfd3d5;
  box-shadow: 0 5px 14px rgba(16,19,24,.045);
}
.cc-featured ul.products li.product .cc-card-media {
  height: 220px;
  background: #ffffff;
  border-bottom: 1px solid var(--cc-border);
}
.cc-featured ul.products li.product .cc-card-body {
  padding: 24px 20px 20px;
  background: #f7f7f8;
}
.cc-featured .cc-card-cat {
  margin-bottom: 7px !important;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.cc-featured .cc-card-title { margin-bottom: 11px !important; }
.cc-featured .cc-card-cas { margin-bottom: 14px !important; }
.cc-featured .cc-card-tags { margin-top: 3px !important; }
.cc-featured .cc-card-tags span { background: #ffffff; }
.cc-featured .cc-card-tags .cc-chip-purity {
  color: #ffffff;
  background: var(--cc-accent-dk);
  border-color: var(--cc-accent-dk);
}
.cc-featured .cc-card-foot {
  height: 40px;
  padding-top: 18px;
  border-top: 1px solid var(--cc-border);
}
.cc-featured .cc-card-btn {
  width: 40px;
  height: 40px;
  border-radius: 6px;
}
.cc-featured .cc-card-price { font-size: 20px; }

.cc-featured-footer {
  max-width: 1400px;
  margin: 22px auto 0;
  padding: 18px 1.5rem 0;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  border-top: 1px solid var(--cc-border);
}
.cc-featured-footer p {
  margin: 0;
  color: var(--cc-muted2);
  font-size: 12px;
  line-height: 1.55;
}
.cc-featured-footer p strong { color: var(--cc-text); }
.cc-featured-footer p a {
  margin-left: .35rem;
  color: var(--cc-text);
  font-weight: 650;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.cc-featured-footer > .cc-btn-outline {
  min-height: 40px;
  padding: 0 18px;
  flex: none;
  font-size: 12px;
}

@media (max-width: 860px) {
  .cc-featured-proof-head {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 28px;
  }
  .cc-featured-proof-copy h2 { max-width: 24ch; }
  .cc-featured-browse { align-self: flex-start; }
}
@media (max-width: 600px) {
  .cc-featured-intro {
    padding: 38px 1rem 20px;
  }
  .cc-featured-proof-head {
    gap: 22px;
    padding-bottom: 22px;
  }
  .cc-featured-proof-copy h2 { font-size: 29px; }
  .cc-featured-proof-copy > p:last-child {
    margin-top: 14px;
    font-size: 13px;
  }
  .cc-featured ul.products { gap: 12px; }
  .cc-featured ul.products li.product .cc-card-media { height: 150px; }
  .cc-featured ul.products li.product .cc-card-body { padding: 17px 14px 15px; }
  .cc-featured .cc-card-cat { margin-bottom: 5px !important; }
  .cc-featured .cc-card-title { margin-bottom: 8px !important; }
  .cc-featured .cc-card-cas { margin-bottom: 11px !important; }
  .cc-featured .cc-card-tags .cc-chip-purity { padding: 0 7px; }
  .cc-featured .cc-card-foot { height: 38px; padding-top: 14px; }
  .cc-featured .cc-card-btn { width: 38px; height: 38px; }
  .cc-featured .cc-card-price { font-size: 16px; }
  .cc-featured-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
    margin-top: 18px;
    padding: 15px 1rem 0;
  }
}


/* ============================================================
   HOMEPAGE — stronger information hierarchy (v2.5.44)
   ============================================================ */
.cc-home-main .cc-category-grid {
  gap: 1px;
  padding: 1px;
  border: 0;
  background: var(--cc-border);
}
.cc-home-main .cc-category-card {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto 1fr auto;
  align-items: start;
  gap: 24px 16px;
  min-height: 240px;
  padding: 28px 30px;
  background: #f7f7f8;
}
.cc-home-main .cc-category-card + .cc-category-card { border: 0; }
.cc-home-main .cc-category-card:hover { background: #ffffff; }
.cc-home-main .cc-category-index {
  grid-column: 1;
  grid-row: 1;
  justify-content: flex-start;
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  color: var(--cc-accent);
  font-size: 12px;
  letter-spacing: .12em;
  line-height: 1;
}
.cc-home-main .cc-category-copy {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: center;
  gap: 10px;
}
.cc-home-main .cc-category-copy strong {
  font-size: clamp(22px, 2vw, 27px);
  letter-spacing: -.025em;
  line-height: 1.08;
}
.cc-home-main .cc-category-copy small {
  max-width: 36ch;
  font-size: 13.5px;
  line-height: 1.55;
}
.cc-category-action {
  grid-column: 1 / -1;
  grid-row: 3;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--cc-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}
.cc-home-main .cc-category-arrow { width: 32px; height: 32px; }
.cc-home-main .cc-category-card:hover .cc-category-arrow { transform: translateX(3px); }

.cc-home-main .cc-trust-pillar {
  min-height: 250px;
  padding: 34px 30px 30px;
  overflow: hidden;
}
.cc-home-main .cc-trust-pillar::before {
  position: absolute;
  top: 30px;
  right: 28px;
  width: 30px;
  height: 30px;
  margin: 0;
  opacity: .82;
}
.cc-home-main .cc-trust-stat {
  max-width: calc(100% - 48px);
  margin: 0 0 32px;
  color: var(--cc-accent);
  font-size: clamp(30px, 3vw, 43px);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.055em;
  line-height: .98;
  text-transform: none;
}
.cc-home-main .cc-trust-pillar h3 { margin-bottom: 10px; }

.cc-home-main .cc-panels {
  gap: 18px;
  padding-top: clamp(38px, 5vw, 62px);
  padding-bottom: clamp(48px, 6vw, 76px);
}
.cc-home-main .cc-panel {
  min-height: 390px;
  padding: clamp(30px, 4vw, 48px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--cc-border);
  border-left: 1px solid var(--cc-border);
  border-radius: 10px;
  background: #ffffff;
}
.cc-home-main .cc-panel h2 {
  max-width: 22ch;
  margin: 12px 0 14px;
  font-size: clamp(24px, 2.4vw, 34px);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.cc-home-main .cc-panel > p:not(.cc-eyebrow) { max-width: 48ch; }
.cc-home-main .cc-panel .cc-btn-outline {
  align-self: flex-start;
  margin-top: auto;
}
.cc-panel-list {
  display: grid;
  gap: 12px;
  max-width: 48ch;
  margin: 26px 0 30px;
  padding: 24px 0 0;
  border-top: 1px solid var(--cc-border);
  list-style: none;
}
.cc-panel-list li {
  position: relative;
  padding-left: 28px;
  color: var(--cc-text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}
.cc-panel-list li::before {
  position: absolute;
  left: 2px;
  top: .14em;
  color: var(--cc-accent);
  content: '\2713';
  font-size: 16px;
  font-weight: 700;
}
.cc-home-main .cc-panel--dark {
  color: #ffffff;
  background: var(--cc-text);
  border-color: var(--cc-text);
}
.cc-home-main .cc-panel--dark .cc-eyebrow { color: #72c2bf; }
.cc-home-main .cc-panel--dark h2 { color: #ffffff; }
.cc-home-main .cc-panel--dark > p:not(.cc-eyebrow) { color: rgba(255,255,255,.7); }
.cc-home-main .cc-panel--dark .cc-btn-outline {
  color: #ffffff;
  background: transparent;
  border-color: rgba(255,255,255,.65);
}
.cc-home-main .cc-panel--dark .cc-btn-outline:hover {
  color: var(--cc-text);
  background: #ffffff;
  border-color: #ffffff;
}

@media (max-width: 980px) {
  .cc-home-main .cc-category-grid { grid-template-columns: 1fr; }
  .cc-home-main .cc-category-card { min-height: 190px; }
}
@media (max-width: 880px) {
  .cc-home-main .cc-panel { min-height: 0; }
}
@media (max-width: 700px) {
  .cc-home-main .cc-trust-grid { gap: 0; }
  .cc-home-main .cc-trust-pillar {
    min-height: 0;
    padding: 24px 58px 22px 16px;
  }
  .cc-home-main .cc-trust-pillar::before {
    top: 26px;
    right: 16px;
    left: auto;
    width: 24px;
    height: 24px;
  }
  .cc-home-main .cc-trust-stat {
    max-width: none;
    margin-bottom: 18px;
    font-size: 30px;
  }
  .cc-home-main .cc-trust-pillar h3 { font-size: 11.5px; }
}
@media (max-width: 560px) {
  .cc-home-main .cc-category-card {
    gap: 18px 12px;
    min-height: 170px;
    padding: 22px 18px;
    background: #f7f7f8;
  }
  .cc-home-main .cc-category-copy strong { font-size: 21px; }
  .cc-home-main .cc-category-copy small { font-size: 12.5px; }
  .cc-home-main .cc-panels {
    gap: 14px;
    padding: 30px 1rem 44px;
  }
  .cc-home-main .cc-panel { padding: 28px 24px; }
  .cc-home-main .cc-panel h2 { font-size: 24px; }
}

/* ============================================================
   HOMEPAGE TYPE SCALE (v2.5.49)
   Keep section headings consistent and quieten the closing policy cards.
   ============================================================ */
.cc-home-main .cc-category-head h2,
.cc-home-main .cc-trust-head h2,
.cc-home-main .cc-featured-proof-copy h2 {
  font-size: clamp(27px, 2.5vw, 34px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.02em;
}
.cc-home-main .cc-panel h2 {
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.14;
  letter-spacing: -.02em;
}
.cc-home-main .cc-featured .cc-card-tags {
  margin-bottom: 14px !important;
}

@media (max-width: 700px) {
  .cc-home-main .cc-category-head h2,
  .cc-home-main .cc-trust-head h2,
  .cc-home-main .cc-featured-proof-copy h2 {
    font-size: 25px;
  }
  .cc-home-main .cc-panel h2 { font-size: 22px; }
}

@media (max-width: 600px) {
  .cc-home-main .cc-featured .cc-card-tags {
    margin-bottom: 10px !important;
  }
}

/* ============================================================
   CATALOGUE CARDS — featured visual system, full catalogue CTA (v2.5.53)
   ============================================================ */
.cc-product-catalog ul.products li.product {
  background: #f7f7f8;
  border-color: #cfd4d5;
  border-radius: 8px;
  box-shadow: none;
}
.cc-product-catalog ul.products li.product:hover {
  border-color: #aeb8ba;
  box-shadow: 0 5px 14px rgba(16,19,24,.045);
}
.cc-product-catalog ul.products li.product .cc-card-media {
  height: 220px;
  background: #ffffff;
  border-bottom: 1px solid var(--cc-border);
}
.cc-product-catalog ul.products li.product .cc-card-body {
  padding: 24px 20px 20px;
  background: #f7f7f8;
}
.cc-product-catalog .cc-card-cat {
  margin-bottom: 7px !important;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.cc-product-catalog .cc-card-title {
  margin-bottom: 11px !important;
}
.cc-product-catalog .cc-card-cas {
  margin-bottom: 14px !important;
}
.cc-product-catalog .cc-card-tags {
  margin-top: 3px !important;
  margin-bottom: 14px !important;
}
.cc-product-catalog .cc-card-tags span {
  background: #ffffff;
}
.cc-product-catalog .cc-card-tags .cc-chip-purity {
  color: #ffffff;
  background: var(--cc-accent-dk);
  border-color: var(--cc-accent-dk);
}
.cc-product-catalog ul.products li.product .cc-card-foot {
  padding-top: 18px;
  border-top: 1px solid var(--cc-border);
}

@media (max-width: 619px) {
  .cc-product-catalog ul.products li.product .cc-card-media {
    height: 150px;
  }
  .cc-product-catalog ul.products li.product .cc-card-body {
    padding: 17px 14px 15px;
  }
  .cc-product-catalog .cc-card-cat { margin-bottom: 5px !important; }
  .cc-product-catalog .cc-card-title { margin-bottom: 8px !important; }
  .cc-product-catalog .cc-card-cas { margin-bottom: 11px !important; }
  .cc-product-catalog .cc-card-tags {
    margin-bottom: 10px !important;
  }
  .cc-product-catalog ul.products li.product .cc-card-foot {
    padding-top: 14px;
  }
}

/* ============================================================
   HOMEPAGE CLOSING PANELS — compact, aligned pair (v2.5.54)
   ============================================================ */
.cc-home-main .cc-panels {
  gap: 20px;
  padding-top: clamp(34px, 4vw, 50px);
  padding-bottom: clamp(44px, 5vw, 64px);
}
.cc-home-main .cc-panel {
  min-height: 342px;
  padding: clamp(28px, 3.2vw, 40px);
  display: grid;
  grid-template-rows: auto auto auto 1fr auto;
  align-content: start;
  border-radius: 14px;
}
.cc-home-main .cc-panel--standards {
  background: #e7f1f0;
  border-color: #d7e6e4;
}
.cc-home-main .cc-panel h2 {
  margin-top: 10px;
  margin-bottom: 10px;
}
.cc-home-main .cc-panel > p:not(.cc-eyebrow) {
  margin-bottom: 0;
}
.cc-home-main .cc-panel-list {
  align-self: start;
  gap: 8px;
  margin: 18px 0 0;
  padding: 0;
  border-top: 0;
}
.cc-home-main .cc-panel-list li {
  padding-left: 22px;
  font-size: 13px;
  line-height: 1.4;
}
.cc-home-main .cc-panel-list li::before {
  left: 0;
  top: .08em;
  font-size: 14px;
}
.cc-home-main .cc-panel .cc-btn-outline {
  grid-row: 5;
  align-self: end;
  justify-self: start;
  margin-top: 20px;
}
.cc-home-main .cc-panel--standards .cc-btn-outline {
  color: #ffffff;
  background: var(--cc-text);
  border-color: var(--cc-text);
}
.cc-home-main .cc-panel--standards .cc-btn-outline:hover {
  color: #ffffff;
  background: #292d34;
  border-color: #292d34;
}

@media (max-width: 880px) {
  .cc-home-main .cc-panel { min-height: 320px; }
}

@media (max-width: 560px) {
  .cc-home-main .cc-panel {
    min-height: 0;
    padding: 26px 22px;
    grid-template-rows: auto;
  }
  .cc-home-main .cc-panel .cc-btn-outline {
    grid-row: auto;
    margin-top: 20px;
  }
}

/* ============================================================
   SINGLE PRODUCT INFORMATION CARDS — clinical spec stack (v2.5.56)
   Keep the purchase area open and convert the long-form supporting content
   into a calm set of scan-friendly sections.
   ============================================================ */
.single-product div.product .woocommerce-tabs {
  display: grid;
  gap: 16px;
  margin-top: 34px;
  padding-bottom: 30px;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
  color: var(--cc-muted2);
  background: #ffffff;
  border: 1px solid #e5e7e8;
  border-radius: 10px;
  overflow: hidden;
  transition: border-color .18s ease;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel:hover {
  border-color: #cdd2d3;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel:has(.cc-product-section[open]) {
  border-color: #b9d8d6;
}
.single-product .cc-product-section {
  margin: 0;
  background: #ffffff;
}
.single-product .cc-product-section[open] {
  border-left: 3px solid #1e7b78;
}
.single-product .cc-product-section summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 26px;
  align-items: center;
  gap: 16px;
  min-height: 70px;
  padding: 20px;
  box-sizing: border-box;
  color: var(--cc-text);
  cursor: pointer;
  list-style: none;
  background: #ffffff;
  transition: background-color .18s ease;
}
.single-product .cc-product-section summary::-webkit-details-marker {
  display: none;
}
.single-product .cc-product-section summary:hover {
  background: #f7faf9;
}
.single-product .cc-product-section summary:focus-visible {
  outline: 2px solid var(--cc-accent);
  outline-offset: -3px;
}
.single-product .cc-product-section-heading {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.single-product .cc-product-section-kicker {
  color: var(--cc-accent-dk);
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.single-product .cc-product-section-title {
  font-size: 15.5px;
  font-weight: 700;
  line-height: 1.25;
}
.single-product .cc-product-section-toggle {
  position: relative;
  width: 26px;
  height: 26px;
  background: #f2f8f7;
  border: 1px solid #b9d8d6;
  border-radius: 50%;
}
.single-product .cc-product-section-toggle::before,
.single-product .cc-product-section-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 1px;
  background: var(--cc-accent-dk);
  transform: translate(-50%, -50%);
}
.single-product .cc-product-section-toggle::after {
  width: 1px;
  height: 10px;
  transition: transform .18s ease, opacity .18s ease;
}
.single-product .cc-product-section[open] .cc-product-section-toggle::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}
.single-product .cc-product-section[open] summary {
  background: #f2f8f7;
  border-bottom: 1px solid #b9d8d6;
}
.single-product .cc-product-section-body {
  padding: 24px;
  background: #ffffff;
}
.single-product .cc-product-overview-title {
  margin: 0 0 15px !important;
  padding: 0 !important;
  color: var(--cc-text) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  border: 0 !important;
}
.single-product .cc-product-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 20px;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.single-product .cc-product-metric {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  min-height: 72px;
  padding: 13px 14px;
  background: #f2f8f7;
  border: 0;
  border-radius: 8px;
}
.single-product .cc-product-metric:nth-child(even) {
  background: #f6f7f7;
}
.single-product .cc-product-metric span,
.single-product .cc-product-notice > span,
.single-product .cc-product-shipping-facts span {
  display: block;
  margin-bottom: 5px;
  color: #747a80;
  font-size: 8.5px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.single-product .cc-product-notice > span,
.single-product .cc-product-shipping-facts span {
  color: var(--cc-accent-dk);
}
.single-product .cc-product-metric strong,
.single-product .cc-product-shipping-facts strong {
  display: block;
  color: var(--cc-text);
  font-size: 11.5px;
  font-weight: 650;
  line-height: 1.35;
}
.single-product .cc-product-about-copy {
  padding-top: 1px;
}
.single-product .cc-product-inset,
.single-product .cc-product-notice {
  margin-top: 18px;
  padding: 14px 15px;
  background: #eef4f3;
  border: 1px solid #dce9e7;
  border-radius: 7px;
}
.single-product .cc-product-inset h3 {
  margin: 0 0 9px !important;
  padding: 0 !important;
  border: 0 !important;
}
.single-product .cc-product-inset p,
.single-product .cc-product-notice p {
  margin-bottom: 0;
}
.single-product .cc-product-shipping-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 12px;
}
.single-product .cc-product-shipping-facts > div {
  padding: 13px 14px;
  background: #eef4f3;
  border-left: 2px solid var(--cc-accent-dk);
  border-radius: 4px;
}
.single-product .woocommerce-tabs #tab-cc_coa .cc-product-section-body > p {
  padding: 12px 14px;
  background: #eef4f3;
  border-left: 2px solid var(--cc-accent-dk);
  border-radius: 4px;
}
.single-product .woocommerce-Tabs-panel > :last-child {
  margin-bottom: 0;
}
.single-product .woocommerce-Tabs-panel p {
  max-width: 66ch;
  margin: 0 0 14px;
}
.single-product .woocommerce-Tabs-panel h3,
.single-product .woocommerce-Tabs-panel .cc-sp-subhead {
  margin-top: 22px;
  padding-top: 18px;
  color: var(--cc-text);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .07em;
  text-transform: uppercase;
  border-top: 1px solid var(--cc-border);
}
.single-product .woocommerce-Tabs-panel ul:not(.tabs) {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
}
.single-product .woocommerce-Tabs-panel ul:not(.tabs) li {
  margin: 0;
  line-height: 1.5;
}
.single-product .woocommerce-Tabs-panel .cc-feature-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 24px;
  row-gap: 8px;
  padding-left: 0;
}
.single-product .woocommerce-Tabs-panel .cc-feature-list li {
  margin-bottom: 0;
  padding-left: 18px;
}
.single-product .woocommerce-Tabs-panel .cc-feature-list li::before {
  top: 3px;
  left: 2px;
  width: 6px;
  height: 10px;
  background: transparent;
  border-right: 1.5px solid var(--cc-accent-dk);
  border-bottom: 1.5px solid var(--cc-accent-dk);
  -webkit-mask: none;
  mask: none;
  transform: rotate(45deg);
}
.single-product .woocommerce-Tabs-panel table.shop_attributes {
  width: 100%;
  margin-bottom: 0;
  background: transparent;
  border: 0;
  border-collapse: collapse;
}
.single-product .woocommerce-Tabs-panel table.shop_attributes th,
.single-product .woocommerce-Tabs-panel table.shop_attributes td {
  padding: 10px 0 !important;
  background: transparent !important;
  border-top: 1px solid var(--cc-border);
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
}
.single-product .woocommerce-Tabs-panel table.shop_attributes tr:first-child th,
.single-product .woocommerce-Tabs-panel table.shop_attributes tr:first-child td {
  border-top: 0;
}
.single-product .woocommerce-Tabs-panel table.shop_attributes th {
  width: 34%;
  padding-right: 20px !important;
  color: var(--cc-text);
  font-weight: 600;
}
.single-product .woocommerce-Tabs-panel .cc-product-section-link {
  display: inline-block;
  margin-top: 4px;
  color: var(--cc-accent-dk);
  font-size: 12.5px;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.single-product .woocommerce-Tabs-panel .cc-product-section-link:hover {
  color: var(--cc-text);
}
.single-product .woocommerce-Tabs-panel .cc-product-section-link:focus-visible {
  outline: 2px solid var(--cc-accent);
  outline-offset: 3px;
}
.single-product div.product .cc-sp-trust .cc-sp-trust-card {
  background: #e7f1f0;
  border-color: #d7e6e4;
  box-shadow: none;
}

@media (max-width: 600px) {
  .single-product div.product .woocommerce-tabs {
    gap: 16px;
    margin-top: 26px;
  }
  .single-product .woocommerce-tabs .woocommerce-Tabs-panel {
    padding: 0 !important;
    border-radius: 8px;
  }
  .single-product .cc-product-section summary {
    grid-template-columns: minmax(0, 1fr) 24px;
    gap: 11px;
    min-height: 66px;
    padding: 18px;
  }
  .single-product .cc-product-section-title {
    font-size: 14px;
  }
  .single-product .cc-product-section-toggle {
    width: 24px;
    height: 24px;
  }
  .single-product .cc-product-section-body {
    padding: 22px;
  }
  .single-product .cc-product-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .single-product .woocommerce-Tabs-panel .cc-feature-list,
  .single-product .cc-product-shipping-facts {
    grid-template-columns: 1fr;
  }
  .single-product .woocommerce-Tabs-panel .cc-sp-subhead {
    margin-top: 18px;
    padding-top: 15px;
  }
}


/* ============================================================
   STICKY SITE HEADER (v2.5.14)
   The announcement bar scrolls away; the navigation remains available.
   ============================================================ */
.cc-header {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 3px 14px rgba(16,19,24,.055);
}
body.admin-bar .cc-header { top: 32px; }

/* Block templates wrap the actual .cc-header in a core/template-part header.
   That outer element must own the sticky positioning; otherwise the inner
   header is constrained by a parent exactly its own height. */
header.wp-block-template-part {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
  box-shadow: 0 3px 14px rgba(16,19,24,.055);
}
header.wp-block-template-part .cc-header {
  position: relative;
  top: auto;
  z-index: auto;
  box-shadow: none;
}
body.admin-bar header.wp-block-template-part { top: 32px; }

/* Twenty Twenty-Five adds a global gap between top-level template blocks.
   The RUO utility bar should sit directly beneath the navigation. */
.cc-home-main { margin-block-start: 0 !important; }

@media (max-width: 782px) {
  body.admin-bar .cc-header { top: 46px; }
  body.admin-bar header.wp-block-template-part { top: 46px; }
}
/* WordPress changes the mobile admin bar from fixed to absolute at 600px.
   Once it scrolls away, the site header must anchor to the viewport itself. */
@media (max-width: 600px) {
  body.admin-bar .cc-header,
  body.admin-bar header.wp-block-template-part { top: 0; }
}

/* ============================================================
   HOMEPAGE RESEARCH-USE PLACEMENT (v2.5.17)
   ============================================================ */
.cc-hero-ruo {
  position: absolute;
  right: clamp(18px, 4vw, 64px);
  left: auto;
  bottom: 14px;
  z-index: 2;
  margin: 0;
  color: rgba(20,22,28,.55);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .11em;
  line-height: 1.2;
  text-transform: uppercase;
}
.cc-product-ruo {
  max-width: 1400px;
  margin: 0 auto;
  padding: 18px 1.5rem 0;
  box-sizing: border-box;
}
.cc-product-ruo p {
  margin: 0;
  padding-top: 16px;
  border-top: 1px solid var(--cc-border);
  color: var(--cc-muted2);
  font-size: 12.5px;
  line-height: 1.55;
}
.cc-product-ruo a {
  margin-left: .35rem;
  color: var(--cc-text);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.cc-product-ruo a:hover { color: var(--cc-accent-dk); }
.cc-product-ruo a:focus-visible { outline: 2px solid var(--cc-accent); outline-offset: 3px; }

@media (max-width: 700px) {
  .cc-hero { padding-bottom: 36px; }
  .cc-hero-ruo { right: 1rem; left: auto; bottom: 11px; font-size: 9.5px; }
  .cc-product-ruo { padding: 14px 1rem 0; }
  .cc-product-ruo p { padding-top: 13px; font-size: 12px; }
}

/* ============================================================
   FREE DELIVERY PROGRESS (v2.5.63)
   ============================================================ */
.cc-shipping-progress {
  box-sizing: border-box;
  width: 100%;
  margin: 0 0 24px;
  padding: 15px 17px 16px;
  color: var(--cc-text);
  background: #eef5f4;
  border: 1px solid rgba(17, 107, 107, .16);
  border-radius: 10px;
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
}

.cc-shipping-progress__status {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 10px;
}

.cc-shipping-progress__message {
  color: var(--cc-accent-dk);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
}

.cc-shipping-progress__message .woocommerce-Price-amount {
  color: inherit;
  font: inherit;
}

.cc-shipping-progress__percent {
  flex: 0 0 auto;
  color: var(--cc-muted2);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
}

.cc-shipping-progress__track {
  position: relative;
  height: 6px;
  overflow: hidden;
  background: rgba(17, 107, 107, .14);
  border-radius: 999px;
}

.cc-shipping-progress__fill {
  display: block;
  height: 100%;
  min-width: 0;
  background: var(--cc-accent);
  border-radius: inherit;
  transition: width .24s ease;
}

.cc-shipping-progress.is-unlocked {
  background: #e7f3f0;
  border-color: rgba(17, 107, 107, .25);
}

.cc-shipping-progress.is-unlocked .cc-shipping-progress__fill {
  background: #16866f;
}

/* The Cart block inherits the full-width page template. Bring its title,
   progress state and two-column grid back onto the site's content measure. */
main[data-page="cart"] > .wp-block-post-title,
main[data-page="cart"] > .wp-block-post-content,
.woocommerce-cart .wp-block-post-title,
.woocommerce-cart .wp-block-post-content {
  box-sizing: border-box;
  width: min(1120px, calc(100% - clamp(36px, 8vw, 96px)));
  max-width: 1120px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.wc-block-mini-cart__items > .cc-shipping-progress {
  margin: 4px 0 20px;
  padding: 14px 16px 15px;
  border-radius: 8px;
}

.wc-block-cart__sidebar > .cc-shipping-progress,
.wp-block-woocommerce-cart-totals-block > .cc-shipping-progress {
  width: 100%;
  margin: 0 0 22px;
  padding: 16px 18px 17px;
  border-radius: 8px;
}

.cc-cart-payments {
  display: block;
  width: min(100%, 360px);
  height: auto;
  margin: 12px auto 0;
  opacity: .92;
}

.widget_shopping_cart .cc-shipping-progress {
  margin: 0 0 18px;
  padding: 14px 16px 15px;
  border-radius: 8px;
}

@media (max-width: 600px) {
  main[data-page="cart"] > .wp-block-post-title,
  main[data-page="cart"] > .wp-block-post-content,
  .woocommerce-cart .wp-block-post-title,
  .woocommerce-cart .wp-block-post-content {
    width: calc(100% - 28px);
  }
  .cc-shipping-progress {
    margin-bottom: 18px;
    padding: 14px 15px 15px;
  }
  .cc-shipping-progress__status { gap: 12px; }
  .cc-shipping-progress__message { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .cc-shipping-progress__fill { transition: none; }
}

/* ============================================================
   FINAL VISUAL CONSISTENCY PASS (v2.5.71)
   A restrained Swiss-clinical system shared by home, catalogue
   and single-product templates.
   ============================================================ */
:root {
  --cc-bg: #ffffff;
  --cc-tile: #f5f5f3;
  --cc-border: #e5e7e8;
  --cc-border-2: #cdd2d3;
  --cc-text: #111318;
  --cc-muted: #66707a;
  --cc-muted2: #66707a;
  --cc-btn: #0d1117;
  --cc-accent: #1e7b78;
  --cc-accent-dk: #155f5d;
  --cc-radius: 10px;
}

html { scroll-behavior: smooth; }
body { color: var(--cc-text); background: var(--cc-bg); }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--cc-accent) !important;
  outline-offset: 3px !important;
}

.cc-btn-solid,
.cc-btn-outline,
.woocommerce a.button,
.woocommerce button.button,
.cc-card-btn,
.cc-oos-label {
  min-height: 44px;
}

/* Hero and homepage navigation. */
.cc-hero-ruo { display: none !important; }
.cc-hero-copy { max-width: 560px; }
.cc-hero-cta { align-items: stretch; }
.cc-hero-cta .cc-btn-solid,
.cc-hero-cta .cc-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cc-category-card {
  border-radius: 10px;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.cc-category-card:hover {
  border-color: #b9d8d6;
  box-shadow: 0 10px 28px rgba(17,19,24,.045);
  transform: translateY(-1px);
}
.cc-category-card:focus-visible {
  outline: 2px solid var(--cc-accent) !important;
  outline-offset: 3px !important;
}

/* One product-card language across homepage and catalogue. */
.woocommerce ul.products,
.cc-featured ul.products {
  align-items: stretch;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.cc-featured ul.products li.product {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  color: var(--cc-text);
  background: var(--cc-tile);
  border: 1px solid var(--cc-border);
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(17,19,24,.025);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
.cc-featured ul.products li.product:hover {
  border-color: #cdd2d3;
  box-shadow: 0 10px 28px rgba(17,19,24,.05);
  transform: translateY(-1px);
}
.woocommerce ul.products li.product .cc-card-media,
.cc-featured ul.products li.product .cc-card-media {
  background: #ffffff;
}
.woocommerce ul.products li.product .cc-card-media img,
.cc-featured ul.products li.product .cc-card-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.woocommerce ul.products li.product .cc-card-body,
.cc-featured ul.products li.product .cc-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  box-sizing: border-box;
  padding: 20px 18px 18px;
  background: var(--cc-tile);
}
.cc-card-cat {
  color: var(--cc-accent) !important;
  font-family: 'Space Grotesk', system-ui, sans-serif !important;
  font-weight: 650 !important;
  text-decoration: none !important;
}
.cc-card-cat:hover { color: var(--cc-accent-dk) !important; }
.cc-card-title {
  color: var(--cc-text) !important;
  text-decoration: none !important;
}
.cc-card-title:hover { text-decoration: underline !important; text-underline-offset: 3px; }
.cc-card-cas {
  display: -webkit-box !important;
  min-height: 2.8em;
  max-height: 2.8em;
  overflow: hidden;
  color: var(--cc-muted) !important;
  font-family: 'Space Grotesk', system-ui, sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.cc-card-cas.is-empty { visibility: hidden; }
.cc-card-tags {
  min-height: 30px;
  margin-top: 4px !important;
  margin-bottom: 18px !important;
}
.cc-card-tags span {
  min-height: 28px;
  box-sizing: border-box;
  color: var(--cc-text);
  font-family: 'Space Grotesk', system-ui, sans-serif !important;
  font-size: 11px;
  font-weight: 500;
  background: #ffffff;
  border-color: #d9ddde;
}
.cc-card-tags .cc-chip-purity {
  color: #ffffff !important;
  background: var(--cc-accent) !important;
  border-color: var(--cc-accent) !important;
}
.cc-card-foot {
  width: 100%;
  margin-top: auto !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--cc-border);
}
.cc-card-price { color: var(--cc-text); }
.cc-badge {
  color: #fff;
  background: #0d1117;
  border-radius: 4px;
}
.cc-card-btn,
.cc-oos-label {
  border-radius: 6px !important;
}
.cc-oos-label {
  color: #7a8188 !important;
  background: #eceeed !important;
}

/* Homepage featured grid keeps its compact control while sharing card surfaces. */
.cc-featured ul.products li.product .cc-card-body { padding: 21px 18px 17px; }
.cc-featured .cc-card-foot { min-height: 44px; }
.cc-featured .cc-card-btn { min-width: 44px; min-height: 44px; }
.cc-featured-footer {
  color: var(--cc-muted);
  border-top-color: var(--cc-border);
}

/* Homepage proof and standards hierarchy. */
.cc-trust-pillar {
  border: 1px solid var(--cc-border);
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(17,19,24,.025);
}
.cc-trust-stat { color: var(--cc-accent) !important; }
.cc-trust-pillar > p:last-child { color: var(--cc-muted); }
.cc-home-main .cc-panels { align-items: stretch; }
.cc-home-main .cc-panel {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
}
.cc-home-main .cc-panel .cc-btn-outline { margin-top: auto; align-self: flex-start; }
.cc-home-main .cc-panel-list { margin-bottom: 20px; }

/* Catalogue header, filters and compliance strip. */
.cc-filter-pills a,
.cc-filter-pills .cc-filter-pill {
  min-height: 44px;
  box-sizing: border-box;
}
.cc-shop-summary,
.woocommerce-result-count,
.cc-catalog-policy { color: var(--cc-muted); }
.cc-product-catalog .cc-catalog-policy {
  display: flex !important;
  max-width: 1400px;
  margin: 28px auto 0 !important;
  padding: 14px 18px;
  background: var(--cc-tile);
  border: 1px solid var(--cc-border);
  border-radius: 8px;
}
.cc-product-catalog .cc-card-body { padding: 20px 18px 18px !important; }
.cc-product-catalog .cc-card-btn,
.cc-product-catalog .cc-oos-label {
  display: inline-flex !important;
  width: 100% !important;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}

/* Single product purchase panel: primary conversion area, quietly prominent. */
.single-product .cc-cta-box {
  box-sizing: border-box;
  padding: 24px;
  background: #ffffff !important;
  border: 1px solid #1e7b78 !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 28px rgba(17,19,24,.05) !important;
}
.single-product .cc-cta-box .product_title { color: var(--cc-text); }
.single-product .cc-cta-box .cc-sp-size-line,
.single-product .cc-cta-box .cc-sp-meta { color: var(--cc-muted); }
.single-product .cc-cta-box .single_add_to_cart_button.button {
  min-height: 48px;
  color: #ffffff !important;
  background: #0d1117 !important;
  border-color: #0d1117 !important;
}
.single-product .cc-sp-urgency,
.single-product .cc-stock-inline { color: var(--cc-accent-dk); }

/* Product information accordions. */
.single-product div.product .woocommerce-tabs {
  gap: 16px !important;
  margin-top: 34px;
  padding-bottom: 30px;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
  color: var(--cc-muted2);
  background: #ffffff !important;
  border: 1px solid #e5e7e8 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel:hover {
  border-color: #cdd2d3 !important;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel:has(.cc-product-section[open]) {
  border-color: #b9d8d6 !important;
}
.single-product .cc-product-section { background: #ffffff; }
.single-product .cc-product-section[open] { border-left: 3px solid #1e7b78; }
.single-product .cc-product-section summary {
  min-height: 68px;
  padding: 20px;
  color: var(--cc-text);
  background: #ffffff;
}
.single-product .cc-product-section summary:hover { background: #f8faf9; }
.single-product .cc-product-section[open] summary {
  background: #f2f8f7;
  border-bottom: 1px solid #b9d8d6;
}
.single-product .cc-product-section-kicker {
  color: var(--cc-accent);
  font-size: 10px;
}
.single-product .cc-product-section-title {
  color: var(--cc-text);
  font-size: 16px;
}
.single-product .cc-product-section-toggle {
  width: 28px;
  height: 28px;
  background: #f2f8f7;
  border-color: #b9d8d6;
}
.single-product .cc-product-section-body {
  padding: 24px;
  background: #ffffff;
  animation: cc-section-reveal .2s ease both;
}
@keyframes cc-section-reveal {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
@supports (interpolate-size: allow-keywords) {
  .single-product .cc-product-section {
    interpolate-size: allow-keywords;
  }
  .single-product .cc-product-section::details-content {
    block-size: 0;
    overflow: clip;
    opacity: 0;
    transition: block-size .22s ease, opacity .18s ease, content-visibility .22s allow-discrete;
  }
  .single-product .cc-product-section[open]::details-content {
    block-size: auto;
    opacity: 1;
  }
}
.single-product .cc-product-metrics {
  grid-template-columns: repeat(4, minmax(0,1fr));
  align-items: stretch;
  gap: 10px;
}
.single-product .cc-product-metric {
  min-height: 76px;
  padding: 13px 14px;
  background: #f2f8f7;
  border: 0;
  border-radius: 8px;
}
.single-product .cc-product-metric:nth-child(even) { background: #f5f5f3; }
.single-product .cc-product-metric span { color: var(--cc-muted); }
.single-product .cc-product-metric strong { color: var(--cc-text); }
.single-product .related,
.single-product .up-sells {
  margin-top: 44px !important;
}
.single-product .related > h2,
.single-product .up-sells > h2 { margin-bottom: 20px !important; }

/* Footer taxonomy and readability. */
.cc-footer a { color: #aeb6c2; }
.cc-footer a:hover { color: #ffffff; }
.cc-footer a:focus-visible { outline-color: #72c2bf !important; }

@media (max-width: 980px) {
  .single-product .cc-sp-summary { position: static !important; top: auto !important; }
  .single-product .cc-product-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 768px) {
  .cc-home-main,
  .cc-main,
  .cc-footer-grid,
  .cc-footer-bottom {
    --wp--style--root--padding-left: 16px;
    --wp--style--root--padding-right: 16px;
  }
  .cc-hero-copy { max-width: none; }
  .cc-hero-cta { display: grid; grid-template-columns: 1fr; }
  .cc-category-card { min-height: 112px; }
  .cc-featured-proof-head { gap: 22px; }
  .cc-featured-browse { width: auto; }
  .cc-product-catalog .cc-catalog-policy { margin-right: 16px !important; margin-left: 16px !important; }
  .cc-filter-pills {
    display: flex !important;
    flex-wrap: nowrap !important;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .cc-filter-pills::-webkit-scrollbar { display: none; }
  .cc-filter-pills .cc-pill { flex: 0 0 auto; }
  .single-product .cc-cta-box { padding: 20px; }
}

@media (max-width: 430px) {
  body { font-size: 15px; }
  .cc-hero-cta .cc-btn-solid,
  .cc-hero-cta .cc-btn-outline { width: 100%; }
  .cc-card-cas { min-height: 2.7em; max-height: 2.7em; }
  .woocommerce ul.products li.product .cc-card-body,
  .cc-featured ul.products li.product .cc-card-body,
  .cc-product-catalog .cc-card-body { padding: 16px 14px 14px !important; }
  .cc-card-tags { margin-bottom: 14px !important; }
  .single-product .cc-product-section summary { padding: 18px; }
  .single-product .cc-product-section-body { padding: 22px; }
  .single-product .cc-product-metrics { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cc-category-card,
  .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product,
  .cc-product-section-body { transition: none !important; animation: none !important; }
}

/* ============================================================
   SINGLE PRODUCT — purchase confidence polish (v2.5.79)
   ============================================================ */

/* Match the quiet neutral frame used on the reference product image. */
.single-product .cc-gallery-main {
  border: 1px solid #e5e7e8;
}
.single-product .woocommerce-product-gallery:not(.cc-gallery-swap)
  .woocommerce-product-gallery__image:first-child {
  border: 1px solid #e5e7e8;
}

/* Keep availability compact, explicit and visually tied to fulfilment. */
.single-product .cc-stock-inline {
  min-height: 32px;
  box-sizing: border-box;
  padding: 6px 12px;
  color: #17795e;
  background: #eaf6f2;
  border: 1px solid #cde8de;
  border-radius: 999px;
  white-space: nowrap;
}

/* Research-use note, trust divider and accepted payment methods. */
.single-product div.product .cc-cta-box form.cart .cc-sp-secure {
  grid-column: 1 / -1;
  grid-row: 3;
  margin: 12px 0 0;
  color: var(--cc-muted2);
  font-size: 12px;
  line-height: 1.45;
}
.single-product div.product .cc-cta-box form.cart .cc-sp-conversion-trust {
  grid-column: 1 / -1;
  grid-row: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
  width: 100%;
  box-sizing: border-box;
  margin-top: 18px;
  padding: 16px 0 10px;
  border-top: 1px solid #e5e7e8;
  color: var(--cc-muted2);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}
.single-product .cc-sp-conversion-trust span + span::before {
  content: "·";
  display: inline-block;
  margin-right: 7px;
  color: var(--cc-muted);
}
.single-product div.product .cc-cta-box form.cart .cc-sp-payments {
  grid-column: 1 / -1;
  grid-row: 5;
  display: block;
  justify-self: center;
  width: min(100%, 430px);
  height: auto;
  margin: 0 auto;
  opacity: .92;
}

/* ============================================================
   DYNAMIC PAYMENT MARKS (v2.8.49)
   Each mark is an independent element. Stripe-backed marks disappear
   together when Stripe is disabled; bank and Amazon marks follow their
   own WooCommerce gateways.
   ============================================================ */
.cc-payment-methods {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
}

.cc-payment-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 58px;
  min-height: 34px;
  box-sizing: border-box;
  padding: 6px 9px;
  color: #111827;
  background: #ffffff;
  border: 1px solid #e1e5e7;
  border-radius: 5px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.cc-payment-mark__visa {
  color: #1434cb;
  font-size: 16px;
  font-style: italic;
  font-weight: 900;
  letter-spacing: -.08em;
}

.cc-payment-mark--mastercard {
  min-width: 82px;
}

.cc-payment-mark__mastercard-symbol {
  position: relative;
  width: 28px;
  height: 17px;
  flex: 0 0 28px;
}

.cc-payment-mark__mastercard-symbol::before,
.cc-payment-mark__mastercard-symbol::after {
  content: "";
  position: absolute;
  top: 0;
  width: 17px;
  height: 17px;
  border-radius: 50%;
}

.cc-payment-mark__mastercard-symbol::before {
  left: 0;
  background: #eb001b;
}

.cc-payment-mark__mastercard-symbol::after {
  right: 0;
  background: #f79e1b;
  mix-blend-mode: multiply;
}

.cc-payment-mark__mastercard-word {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: -.03em;
}

.cc-payment-mark--apple-pay svg {
  width: 15px;
  height: 18px;
  fill: currentColor;
}

.cc-payment-mark--apple-pay span,
.cc-payment-mark--google-pay span,
.cc-payment-mark--amazon-pay span {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -.03em;
}

.cc-payment-mark__google-g {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
}

.cc-payment-mark--google-pay span.cc-payment-mark__google-pay-word {
  color: #5f6368;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: -.045em;
}

.cc-payment-mark--pay-by-bank svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: #16896f;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.cc-payment-mark--pay-by-bank {
  color: #16896f;
}

body.single-product .cc-cta-box > .cc-sp-payments,
.single-product div.product .cc-cta-box form.cart .cc-sp-payments {
  display: flex;
  width: min(100%, 430px);
  height: auto;
  padding: 0;
  margin: 14px auto 0;
  background: transparent;
  opacity: .96;
}

.cc-footer-checkout-options {
  display: none;
  flex: 0 1 390px;
  width: min(390px, 100%);
  min-height: 34px;
  aspect-ratio: auto;
  margin-left: auto;
  background: none;
}

body.cc-payment-methods-enabled .cc-footer-checkout-options {
  display: flex;
}

.cc-footer-checkout-options .cc-payment-mark {
  display: none;
}

body.cc-payment-stripe-enabled .cc-footer-checkout-options .cc-payment-mark--stripe,
body.cc-payment-wallid-enabled .cc-footer-checkout-options .cc-payment-mark--wallid,
body.cc-payment-amazon-enabled .cc-footer-checkout-options .cc-payment-mark--amazon {
  display: inline-flex;
}

@media (max-width: 600px) {
  .cc-payment-methods {
    gap: 5px;
  }

  .cc-payment-mark {
    min-height: 32px;
    padding: 5px 8px;
  }

  .cc-footer-checkout-options {
    width: min(320px, 100%);
    margin: 12px 0 0;
  }
}

@media (max-width: 520px) {
  .single-product .cc-stock-inline {
    padding-inline: 10px;
    font-size: 11px;
  }
  .single-product div.product .cc-cta-box form.cart .cc-sp-conversion-trust {
    gap: 5px;
    padding-top: 14px;
    font-size: 10.5px;
  }
  .single-product .cc-sp-conversion-trust span + span::before {
    margin-right: 5px;
  }
}

/* ============================================================
   GROUPED CATALOGUE OVERVIEW (v2.5.84)
   The unfiltered shop is organised into product families while
   category archives retain WooCommerce's normal sortable grid.
   ============================================================ */
.cc-product-catalog-grouped .cc-main {
  padding-bottom: 56px;
}

.cc-grouped-catalogue,
.cc-grouped-catalogue__sections,
.cc-grouped-catalogue .cc-catalog-policy {
  width: 100%;
  max-width: 1400px;
  margin-right: auto;
  margin-left: auto;
}

.cc-grouped-catalogue .cc-shop-toolbar.is-grouped {
  justify-content: flex-start;
  margin-bottom: 34px;
}

.cc-grouped-catalogue .cc-shop-toolbar.is-grouped .woocommerce-result-count {
  color: var(--cc-muted2);
}

.cc-catalogue-family {
  margin: 0 0 58px;
}

.cc-catalogue-family__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid #e5e7e8;
}

.cc-catalogue-family__copy {
  min-width: 0;
}

.cc-catalogue-family__eyebrow {
  display: block;
  margin-bottom: 7px;
  color: var(--cc-accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.25;
  text-transform: uppercase;
}

.cc-catalogue-family__title {
  margin: 0;
  color: var(--cc-text);
  font-size: clamp(25px, 2.25vw, 32px);
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.12;
}

.cc-catalogue-family__description {
  max-width: 720px;
  margin: 8px 0 0;
  color: var(--cc-muted2);
  font-size: 14px;
  line-height: 1.55;
}

.cc-catalogue-family__link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 44px;
  padding: 0 2px;
  color: var(--cc-text);
  border-bottom: 1px solid currentColor;
  font-size: 13px;
  font-weight: 650;
  line-height: 1;
  text-decoration: none;
}

.cc-catalogue-family__link:hover {
  color: var(--cc-accent);
}

.cc-catalogue-family__link:focus-visible {
  outline: 2px solid var(--cc-accent);
  outline-offset: 4px;
}

.cc-grouped-catalogue .cc-catalogue-family ul.products {
  width: 100%;
  max-width: none;
  margin: 0;
}

.cc-grouped-catalogue .cc-catalogue-family:last-child {
  margin-bottom: 34px;
}

.cc-grouped-catalogue .cc-catalog-policy {
  margin-top: 0;
}

@media (max-width: 700px) {
  .cc-grouped-catalogue .cc-shop-toolbar.is-grouped {
    margin-bottom: 28px;
  }

  .cc-catalogue-family {
    margin-bottom: 42px;
  }

  .cc-catalogue-family__head {
    display: block;
    margin-bottom: 20px;
    padding-bottom: 16px;
  }

  .cc-catalogue-family__title {
    font-size: 24px;
  }

  .cc-catalogue-family__description {
    margin-top: 7px;
    font-size: 13.5px;
  }

  .cc-catalogue-family__link {
    width: fit-content;
    margin-top: 10px;
  }

  .cc-grouped-catalogue .cc-catalogue-family:last-child {
    margin-bottom: 28px;
  }
}

/* ============================================================
   HYBRID CATALOGUE STUDY (v2.5.88)
   Catalogue-only visual test. The pale product-image wells and
   graphite cards sit on the site's restrained light canvas.
   Homepage, product, cart and checkout surfaces are unaffected.
   ============================================================ */
body.cc-product-catalog {
  background: #f7f8f7;
}

.cc-product-catalog .cc-main {
  --cc-catalogue-canvas: #f7f8f7;
  --cc-catalogue-surface: #181e20;
  --cc-catalogue-surface-raised: #222a2c;
  --cc-catalogue-border: #3c494c;
  --cc-catalogue-border-strong: #526064;
  --cc-catalogue-page-text: #111318;
  --cc-catalogue-page-muted: #6f797c;
  --cc-catalogue-card-text: #f4f6f5;
  --cc-catalogue-card-muted: #a8b2b2;
  --cc-catalogue-teal: #57b8b2;
  --cc-catalogue-cta: #1e7b78;
  --cc-catalogue-cta-hover: #24918d;
  --cc-catalogue-image: #f1f1f1;
  color: var(--cc-catalogue-page-text);
  background: var(--cc-catalogue-canvas);
  border-top: 1px solid #e1e5e4;
}

.cc-product-catalog .cc-shop-title,
.cc-product-catalog .cc-catalogue-family__title {
  color: var(--cc-catalogue-page-text);
}

.cc-product-catalog .cc-shop-summary,
.cc-product-catalog .woocommerce-result-count,
.cc-product-catalog .cc-catalogue-family__description,
.cc-product-catalog .cc-shop-sort > span {
  color: var(--cc-catalogue-page-muted);
}

.cc-product-catalog .cc-shop-eyebrow,
.cc-product-catalog .cc-catalogue-family__eyebrow {
  color: var(--cc-catalogue-teal);
}

.cc-product-catalog .cc-shop-toolbar,
.cc-product-catalog .cc-catalogue-family__head {
  border-color: #d9dedc;
}

.cc-product-catalog .cc-filter-pills a,
.cc-product-catalog .cc-filter-pills .cc-filter-pill,
.cc-product-catalog .cc-filter-pills .cc-pill {
  color: var(--cc-catalogue-page-text);
  background: #ffffff;
  border-color: #cbd2d0;
}

.cc-product-catalog .cc-filter-pills a:hover,
.cc-product-catalog .cc-filter-pills .cc-filter-pill:hover,
.cc-product-catalog .cc-filter-pills .cc-pill:hover {
  color: #0b1112;
  background: #e9f4f3;
  border-color: var(--cc-catalogue-teal);
}

.cc-product-catalog .cc-filter-pills .is-active,
.cc-product-catalog .cc-filter-pills .active,
.cc-product-catalog .cc-filter-pills [aria-current="page"] {
  color: #071011;
  background: var(--cc-catalogue-teal);
  border-color: var(--cc-catalogue-teal);
}

.cc-product-catalog .woocommerce-ordering select {
  color: var(--cc-catalogue-page-text);
  background-color: #ffffff;
  border-color: #cbd2d0;
}

.cc-product-catalog .cc-catalogue-family__link {
  color: var(--cc-catalogue-page-text);
}

.cc-product-catalog .cc-catalogue-family__link:hover {
  color: var(--cc-catalogue-teal);
}

.cc-product-catalog ul.products li.product,
.cc-product-catalog.woocommerce-page ul.products li.product {
  color: var(--cc-catalogue-card-text);
  background: var(--cc-catalogue-surface);
  border-color: var(--cc-catalogue-border);
  box-shadow: 0 8px 20px rgba(17,19,24,.06);
}

.cc-product-catalog ul.products li.product:hover,
.cc-product-catalog.woocommerce-page ul.products li.product:hover {
  border-color: var(--cc-catalogue-border-strong);
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
}

.cc-product-catalog ul.products li.product .cc-card-media {
  background: var(--cc-catalogue-image);
  border-bottom: 1px solid var(--cc-catalogue-border);
}

.cc-product-catalog ul.products li.product .cc-card-body {
  background: var(--cc-catalogue-surface) !important;
}

.cc-product-catalog .cc-card-cat {
  color: var(--cc-catalogue-teal) !important;
}

.cc-product-catalog .cc-card-title,
.cc-product-catalog .cc-card-price {
  color: var(--cc-catalogue-card-text) !important;
}

.cc-product-catalog .cc-card-price ins,
.cc-product-catalog .cc-card-price > .amount {
  color: var(--cc-catalogue-card-text) !important;
}

.cc-product-catalog .cc-card-price del {
  color: var(--cc-catalogue-card-muted) !important;
}

.cc-product-catalog .cc-card-cas {
  color: var(--cc-catalogue-card-muted) !important;
}

.cc-product-catalog .cc-card-tags span {
  color: var(--cc-catalogue-card-text);
  background: #22292b;
  border-color: #465255;
}

.cc-product-catalog .cc-card-tags .cc-chip-purity {
  color: #071011 !important;
  background: var(--cc-catalogue-teal) !important;
  border-color: var(--cc-catalogue-teal) !important;
}

.cc-product-catalog .cc-card-foot {
  border-top-color: var(--cc-catalogue-border);
}

.cc-product-catalog .cc-card-btn {
  color: #ffffff !important;
  background: var(--cc-catalogue-cta) !important;
  border: 1px solid var(--cc-catalogue-cta) !important;
}

.cc-product-catalog .cc-card-btn:hover {
  color: #ffffff !important;
  background: var(--cc-catalogue-cta-hover) !important;
  border-color: var(--cc-catalogue-cta-hover) !important;
}

.cc-product-catalog .cc-oos-label {
  color: #9da6a7 !important;
  background: #22282a !important;
  border: 1px solid var(--cc-catalogue-border) !important;
}

.cc-product-catalog .cc-catalog-policy {
  color: var(--cc-catalogue-page-muted);
  background: #ffffff !important;
  border-color: #d9dedc !important;
}

.cc-product-catalog .cc-catalog-policy p strong,
.cc-product-catalog .cc-catalog-policy a {
  color: var(--cc-catalogue-page-text);
}

.cc-product-catalog .cc-catalog-policy a:hover {
  color: var(--cc-catalogue-teal);
}

.cc-product-catalog .woocommerce-breadcrumb,
.cc-product-catalog .woocommerce-breadcrumb a,
.cc-product-catalog .woocommerce-info,
.cc-product-catalog .woocommerce-message {
  color: var(--cc-catalogue-page-muted);
}

.cc-product-catalog .woocommerce-pagination .page-numbers {
  color: var(--cc-catalogue-page-text);
  background: #ffffff;
  border-color: #cbd2d0;
}

/* ============================================================
   SITEWIDE GRAPHITE COMMERCE SYSTEM (v2.5.89)
   Extends the approved hybrid catalogue language across shared
   product-card variants while preserving light page canvases,
   purchase panels, cart and checkout.
   ============================================================ */
:root {
  --cc-commerce-surface: #181e20;
  --cc-commerce-surface-raised: #222a2c;
  --cc-commerce-border: #3c494c;
  --cc-commerce-border-hover: #526064;
  --cc-commerce-text: #f4f6f5;
  --cc-commerce-muted: #a8b2b2;
  --cc-commerce-image: #f1f1f1;
  --cc-commerce-teal: #57b8b2;
  --cc-commerce-cta: #1e7b78;
  --cc-commerce-cta-hover: #24918d;
}

/* Dark navigation: a deliberate graphite frame above the light canvas. */
.cc-header,
.cc-header.has-base-background-color,
header.wp-block-template-part {
  color: var(--cc-commerce-text);
  background: var(--cc-commerce-surface) !important;
  border-bottom-color: #303a3d !important;
  box-shadow: 0 4px 18px rgba(17,19,24,.16);
}

header.wp-block-template-part .cc-header {
  background: var(--cc-commerce-surface) !important;
}

.cc-header .wp-block-site-logo img {
  filter: brightness(0) invert(1);
}

.cc-header .cc-nav .wp-block-navigation__responsive-container-open,
.cc-header .cc-nav .wp-block-navigation-item__content,
.cc-header .cc-nav a,
.cc-header .wp-block-search__button,
.cc-header .wp-block-woocommerce-customer-account a,
.cc-header .wp-block-woocommerce-mini-cart button {
  color: var(--cc-commerce-text) !important;
}

.cc-header .cc-nav .wp-block-navigation-item__content:hover,
.cc-header .cc-nav a:hover {
  color: var(--cc-commerce-teal) !important;
}

.cc-header .cc-icon:not(.cc-icon-cart) {
  background-color: var(--cc-commerce-text) !important;
}

.cc-header-icons .cc-icon-cart {
  background-color: var(--cc-commerce-cta) !important;
}

.cc-header-icons .cc-icon-cart:hover {
  background-color: var(--cc-commerce-cta-hover) !important;
}

.cc-header-icons .cc-cart-count {
  color: #071011 !important;
  background: var(--cc-commerce-teal) !important;
  border-color: var(--cc-commerce-surface) !important;
}

.cc-header .cc-search-form,
.cc-header .wp-block-search__inside-wrapper {
  color: var(--cc-commerce-text);
  background: var(--cc-commerce-surface-raised);
  border-color: var(--cc-commerce-border);
}

.cc-header .cc-search-form input,
.cc-header .wp-block-search__input {
  color: var(--cc-commerce-text);
  background: transparent;
}

.cc-header .cc-search-form input::placeholder,
.cc-header .wp-block-search__input::placeholder {
  color: var(--cc-commerce-muted);
}

/* Shared commerce cards: homepage, catalogue, related and recommended. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.cc-featured ul.products li.product {
  color: var(--cc-commerce-text);
  background: var(--cc-commerce-surface);
  border-color: var(--cc-commerce-border) !important;
  box-shadow: 0 8px 20px rgba(17,19,24,.07);
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
.cc-featured ul.products li.product:hover {
  border-color: var(--cc-commerce-border-hover) !important;
  box-shadow: 0 14px 30px rgba(17,19,24,.17);
}

.woocommerce ul.products li.product .cc-card-media,
.woocommerce-page ul.products li.product .cc-card-media,
.cc-featured ul.products li.product .cc-card-media {
  background: var(--cc-commerce-image);
  border-bottom-color: var(--cc-commerce-border) !important;
}

.woocommerce ul.products li.product .cc-card-body,
.woocommerce-page ul.products li.product .cc-card-body,
.cc-featured ul.products li.product .cc-card-body {
  background: var(--cc-commerce-surface) !important;
}

.woocommerce .cc-card-cat,
.woocommerce-page .cc-card-cat,
.cc-featured .cc-card-cat {
  color: var(--cc-commerce-teal) !important;
}

.woocommerce .cc-card-title,
.woocommerce .cc-card-price,
.woocommerce-page .cc-card-title,
.woocommerce-page .cc-card-price,
.cc-featured .cc-card-title,
.cc-featured .cc-card-price {
  color: var(--cc-commerce-text) !important;
}

.woocommerce .cc-card-price ins,
.woocommerce .cc-card-price > .amount,
.woocommerce-page .cc-card-price ins,
.woocommerce-page .cc-card-price > .amount,
.cc-featured .cc-card-price ins,
.cc-featured .cc-card-price > .amount {
  color: var(--cc-commerce-text) !important;
}

.woocommerce .cc-card-price del,
.woocommerce-page .cc-card-price del,
.cc-featured .cc-card-price del,
.woocommerce .cc-card-cas,
.woocommerce-page .cc-card-cas,
.cc-featured .cc-card-cas {
  color: var(--cc-commerce-muted) !important;
}

.woocommerce .cc-card-tags span,
.woocommerce-page .cc-card-tags span,
.cc-featured .cc-card-tags span {
  color: var(--cc-commerce-text);
  background: var(--cc-commerce-surface-raised);
  border-color: #465255;
}

.woocommerce .cc-card-tags .cc-chip-purity,
.woocommerce-page .cc-card-tags .cc-chip-purity,
.cc-featured .cc-card-tags .cc-chip-purity {
  color: #071011 !important;
  background: var(--cc-commerce-teal) !important;
  border-color: var(--cc-commerce-teal) !important;
}

.woocommerce .cc-card-foot,
.woocommerce-page .cc-card-foot,
.cc-featured .cc-card-foot {
  border-top-color: var(--cc-commerce-border) !important;
}

.woocommerce .cc-card-btn,
.woocommerce-page .cc-card-btn,
.cc-featured .cc-card-btn {
  color: #ffffff !important;
  background: var(--cc-commerce-cta) !important;
  border-color: var(--cc-commerce-cta) !important;
}

.woocommerce .cc-card-btn:hover,
.woocommerce-page .cc-card-btn:hover,
.cc-featured .cc-card-btn:hover {
  color: #ffffff !important;
  background: var(--cc-commerce-cta-hover) !important;
  border-color: var(--cc-commerce-cta-hover) !important;
}

.woocommerce .cc-oos-label,
.woocommerce-page .cc-oos-label,
.cc-featured .cc-oos-label {
  color: #9da6a7 !important;
  background: #22282a !important;
  border-color: var(--cc-commerce-border) !important;
}

/* Preserve a calm white responsive-menu canvas for readability. */
@media (max-width: 800px) {
  .cc-header .wp-block-navigation__responsive-container.is-menu-open {
    color: var(--cc-text);
    background: #ffffff !important;
  }

  .cc-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    color: var(--cc-text) !important;
  }
}

.cc-product-catalog .woocommerce-pagination .page-numbers:hover,
.cc-product-catalog .woocommerce-pagination .page-numbers.current {
  color: #071011;
  background: var(--cc-catalogue-teal);
  border-color: var(--cc-catalogue-teal);
}

@media (max-width: 700px) {
  .cc-product-catalog .cc-main {
    border-top: 0;
  }

  .cc-product-catalog .cc-filter-pills a,
  .cc-product-catalog .cc-filter-pills .cc-filter-pill,
  .cc-product-catalog .cc-filter-pills .cc-pill {
    background: #ffffff;
  }
}

/* ============================================================
   DARK HEADER + COMMERCE CARD REFINEMENT (v2.5.90)
   Keep the light editorial canvas, but make the graphite
   navigation and commerce surfaces feel intentional and calm.
   ============================================================ */
:root {
  --cc-commerce-surface: #1b2224;
  --cc-commerce-surface-raised: #252e30;
  --cc-commerce-border: #354245;
  --cc-commerce-border-hover: #536266;
  --cc-commerce-image: #f3f4f2;
}

/* The block editor may retain any previously selected Site Logo.
   Use the theme's transparent reversed master in the dark header
   while preserving the original linked image for accessibility. */
.cc-header .wp-block-site-logo {
  flex: 0 0 auto;
  width: 150px;
  max-width: 100%;
  line-height: 0;
}

.cc-header .wp-block-site-logo a {
  display: block;
  width: 100%;
  aspect-ratio: 516 / 150;
  background: url("assets/img/five-star-wordmark.svg") center / contain no-repeat;
}

.cc-header .wp-block-site-logo img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: contain;
  opacity: 0 !important;
  filter: none !important;
}

/* A slightly softer frame and cleaner image-to-body transition. */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.cc-featured ul.products li.product {
  overflow: hidden;
  border: 1px solid var(--cc-commerce-border) !important;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(17,19,24,.09);
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
.cc-featured ul.products li.product:hover {
  border-color: var(--cc-commerce-border-hover) !important;
  box-shadow: 0 15px 34px rgba(17,19,24,.16);
  transform: translateY(-2px);
}

.woocommerce ul.products li.product .cc-card-media,
.woocommerce-page ul.products li.product .cc-card-media,
.cc-featured ul.products li.product .cc-card-media {
  background: var(--cc-commerce-image) !important;
  border-bottom: 1px solid #d8dddb !important;
}

.woocommerce ul.products li.product .cc-card-body,
.woocommerce-page ul.products li.product .cc-card-body,
.cc-featured ul.products li.product .cc-card-body {
  padding: 22px 18px 18px;
}

.woocommerce .cc-card-title,
.woocommerce-page .cc-card-title,
.cc-featured .cc-card-title {
  line-height: 1.25;
}

.woocommerce .cc-card-cas,
.woocommerce-page .cc-card-cas,
.cc-featured .cc-card-cas {
  margin-top: 12px !important;
}

.woocommerce .cc-card-tags,
.woocommerce-page .cc-card-tags,
.cc-featured .cc-card-tags {
  margin-top: 10px !important;
  margin-bottom: 18px !important;
}

.woocommerce .cc-card-foot,
.woocommerce-page .cc-card-foot,
.cc-featured .cc-card-foot {
  padding-top: 17px !important;
}

.cc-featured ul.products li.product .cc-card-body {
  padding: 22px 18px 18px;
}

@media (max-width: 900px) {
  .cc-header .wp-block-site-logo {
    width: 120px;
  }
}

/* ============================================================
   NAVIGATION + CARD MEDIA CORRECTIONS (v2.5.91)
   ============================================================ */

/*
 * The responsive navigation is rendered outside parts of the header in some
 * WordPress versions. Keep the white menu panel independent from the dark
 * header palette so every navigation item remains legible.
 */
@media (max-width: 800px) {
  .wp-block-navigation__responsive-container.is-menu-open,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    color: #111318 !important;
    background: #ffffff !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .wp-block-navigation__responsive-container.is-menu-open a,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    color: #111318 !important;
    opacity: 1 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content,
  .wp-block-navigation__responsive-container.is-menu-open .current-menu-ancestor > .wp-block-navigation-item__content {
    color: #1e7b78 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    color: #111318 !important;
  }
}

/*
 * Draw the search glyph directly. This prevents the dark-header icon colour
 * override from collapsing the masked search icon into a white dot.
 */
.cc-header .cc-icon-search {
  position: relative;
  box-sizing: border-box;
  background: transparent !important;
  -webkit-mask: none !important;
  mask: none !important;
  border-radius: 0 !important;
}

.cc-header .cc-icon-search::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 10px;
  height: 10px;
  box-sizing: border-box;
  border: 2px solid var(--cc-commerce-text);
  border-radius: 50%;
}

.cc-header .cc-icon-search::after {
  content: "";
  position: absolute;
  right: 1px;
  bottom: 3px;
  width: 7px;
  height: 2px;
  border-radius: 2px;
  background: var(--cc-commerce-text);
  transform: rotate(45deg);
  transform-origin: center;
}

/*
 * Let the square catalogue artwork fill the complete media stage. Removing
 * inherited inline spacing and using cover eliminates the white strip between
 * the image and the dark information panel.
 */
.woocommerce ul.products li.product .cc-card-media-link,
.woocommerce-page ul.products li.product .cc-card-media-link,
.cc-featured ul.products li.product .cc-card-media-link {
  display: block;
  width: 100%;
  line-height: 0;
}

.woocommerce ul.products li.product .cc-card-media,
.woocommerce-page ul.products li.product .cc-card-media,
.cc-featured ul.products li.product .cc-card-media {
  width: 100%;
  padding: 0 !important;
  line-height: 0;
}

.woocommerce ul.products li.product .cc-card-media img,
.woocommerce-page ul.products li.product .cc-card-media img,
.cc-featured ul.products li.product .cc-card-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
}

/* ============================================================
   LIVE NAVIGATION + MEDIA FIXES (v2.5.92)
   The WordPress overlay is not limited to mobile widths, and the
   live search control is the core Search block rather than cc-icon.
   ============================================================ */

/* The menu overlay is white at every viewport, so its links must stay dark. */
body .wp-block-navigation__responsive-container.is-menu-open,
body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  color: #111318 !important;
  background: #ffffff !important;
}

body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
body .wp-block-navigation__responsive-container.is-menu-open a,
body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  color: #111318 !important;
  -webkit-text-fill-color: #111318 !important;
  opacity: 1 !important;
}

body .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content,
body .wp-block-navigation__responsive-container.is-menu-open .current-menu-ancestor > .wp-block-navigation-item__content {
  color: #1e7b78 !important;
  -webkit-text-fill-color: #1e7b78 !important;
}

body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  color: #111318 !important;
  background: transparent !important;
  opacity: 1 !important;
}

/* Restore the actual WordPress search icon on the dark navigation bar. */
.cc-header .wp-block-search__inside-wrapper {
  background: transparent !important;
  border: 0 !important;
}

.cc-header .wp-block-search__button,
.cc-header .wp-block-search__button.has-background,
.cc-header button.wp-block-search__button {
  min-width: 22px !important;
  width: 22px !important;
  height: 22px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #f4f6f5 !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

.cc-header .wp-block-search__button svg,
.cc-header .wp-block-search__button .search-icon,
.cc-header .wp-block-search__button svg path {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  color: inherit !important;
  fill: currentColor !important;
  stroke: none !important;
  opacity: 1 !important;
}

/*
 * Keep every card variant on the same media stage. The artwork is contained,
 * not cropped, and the link/media/image share one background so no white seam
 * appears between the photograph and the dark information panel.
 */
.cc-product-catalog ul.products li.product .cc-card-media-link,
.cc-home-featured ul.products li.product .cc-card-media-link,
.cc-related-grid ul.products li.product .cc-card-media-link,
.cc-product-support-grid ul.products li.product .cc-card-media-link,
.woocommerce ul.products li.product .cc-card-media-link,
.woocommerce-page ul.products li.product .cc-card-media-link,
.cc-featured ul.products li.product .cc-card-media-link {
  display: block !important;
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  flex: 0 0 220px !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
  background: #f3f4f2 !important;
}

.cc-product-catalog ul.products li.product .cc-card-media,
.cc-home-featured ul.products li.product .cc-card-media,
.cc-related-grid ul.products li.product .cc-card-media,
.cc-product-support-grid ul.products li.product .cc-card-media,
.woocommerce ul.products li.product .cc-card-media,
.woocommerce-page ul.products li.product .cc-card-media,
.cc-featured ul.products li.product .cc-card-media {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  flex: 0 0 220px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
  background: #f3f4f2 !important;
  border-bottom: 0 !important;
}

.cc-product-catalog ul.products li.product .cc-card-media img,
.cc-home-featured ul.products li.product .cc-card-media img,
.cc-related-grid ul.products li.product .cc-card-media img,
.cc-product-support-grid ul.products li.product .cc-card-media img,
.woocommerce ul.products li.product .cc-card-media img,
.woocommerce-page ul.products li.product .cc-card-media img,
.cc-featured ul.products li.product .cc-card-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #f3f4f2 !important;
}

@media (max-width: 640px) {
  .cc-product-catalog ul.products li.product .cc-card-media-link,
  .cc-home-featured ul.products li.product .cc-card-media-link,
  .cc-related-grid ul.products li.product .cc-card-media-link,
  .cc-product-support-grid ul.products li.product .cc-card-media-link,
  .woocommerce ul.products li.product .cc-card-media-link,
  .woocommerce-page ul.products li.product .cc-card-media-link,
  .cc-featured ul.products li.product .cc-card-media-link,
  .cc-product-catalog ul.products li.product .cc-card-media,
  .cc-home-featured ul.products li.product .cc-card-media,
  .cc-related-grid ul.products li.product .cc-card-media,
  .cc-product-support-grid ul.products li.product .cc-card-media,
  .woocommerce ul.products li.product .cc-card-media,
  .woocommerce-page ul.products li.product .cc-card-media,
  .cc-featured ul.products li.product .cc-card-media {
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
    flex-basis: 180px !important;
  }
}

/* ============================================================
   SINGLE PRODUCT COMMERCE SYSTEM (v2.5.98)
   Carry the approved graphite catalogue language through the
   purchase, specification and preparation-supplies experience.
   ============================================================ */

/* Keep the gallery and purchase panel paired, then let supporting
   information use the full content width instead of a half-width rail. */
.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .up-sells {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
}

.single-product div.product .woocommerce-tabs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 16px !important;
  margin-top: 42px !important;
  padding-bottom: 0;
}

.single-product .woocommerce-tabs > ul.tabs {
  display: none !important;
}

.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
  min-width: 0;
}

.single-product .woocommerce-tabs #tab-description,
.single-product .woocommerce-tabs .woocommerce-Tabs-panel:has(.cc-product-section[open]) {
  grid-column: 1 / -1;
}

/* Purchase panel: the strongest commerce surface on the page. */
.single-product .cc-cta-box {
  color: var(--cc-commerce-text);
  background: var(--cc-commerce-surface) !important;
  border: 1px solid var(--cc-commerce-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 36px rgba(17, 19, 24, .14) !important;
}

.single-product .cc-cta-box .product_title,
.single-product .cc-cta-box p.price,
.single-product .cc-cta-box p.price ins,
.single-product .cc-cta-box p.price > .amount,
.single-product .cc-cta-box .cc-sp-size-line {
  color: var(--cc-commerce-text) !important;
}

.single-product .cc-cta-box .cc-sp-size-line {
  color: var(--cc-commerce-muted) !important;
}

.single-product .cc-cta-box .product_meta {
  border-color: var(--cc-commerce-border) !important;
}

.single-product .cc-cta-box .product_meta,
.single-product .cc-cta-box .product_meta a,
.single-product .cc-cta-box .cc-sp-meta,
.single-product .cc-cta-box .woocommerce-product-details__short-description,
.single-product .cc-cta-box .cc-sp-secure,
.single-product .cc-cta-box .cc-sp-conversion-trust {
  color: var(--cc-commerce-muted) !important;
}

.single-product .cc-cta-box .product_meta strong,
.single-product .cc-cta-box .product_meta b {
  color: var(--cc-commerce-text);
}

.single-product .cc-sp-urgency {
  color: #bce8e5 !important;
  background: #243234 !important;
  border-color: #3b5556 !important;
}

.single-product .cc-sp-urgency::before {
  background: var(--cc-commerce-teal) !important;
}

.single-product .cc-sp-urgency.is-closed {
  color: var(--cc-commerce-muted) !important;
  background: var(--cc-commerce-surface-raised) !important;
  border-color: var(--cc-commerce-border) !important;
}

.single-product .cc-cta-box form.cart .quantity {
  background: var(--cc-commerce-surface-raised) !important;
  border-color: var(--cc-commerce-border) !important;
}

.single-product .cc-cta-box .cc-qty-btn,
.single-product .cc-cta-box form.cart .quantity input.qty {
  color: var(--cc-commerce-text) !important;
  background: transparent !important;
}

.single-product .cc-cta-box .cc-qty-btn:hover {
  background: rgba(255, 255, 255, .06) !important;
}

.single-product .cc-cta-box form.cart .quantity input.qty {
  border-color: var(--cc-commerce-border) !important;
}

.single-product .cc-stock-inline,
.single-product .cc-stock-pill.is-in {
  color: #bce8e5 !important;
  background: #243634 !important;
  border-color: #365653 !important;
}

.single-product .cc-stock-pill.is-out {
  color: var(--cc-commerce-muted) !important;
  background: var(--cc-commerce-surface-raised) !important;
}

.single-product .cc-cta-box .single_add_to_cart_button.button {
  min-height: 50px;
  color: #ffffff !important;
  background: var(--cc-commerce-cta) !important;
  border-color: var(--cc-commerce-cta) !important;
  box-shadow: none !important;
}

.single-product .cc-cta-box .single_add_to_cart_button.button:hover,
.single-product .cc-cta-box .single_add_to_cart_button.button:focus-visible,
.single-product .cc-cta-box .single_add_to_cart_button.button.is-adding {
  background: var(--cc-commerce-cta-hover) !important;
  border-color: var(--cc-commerce-cta-hover) !important;
}

.single-product div.product .cc-cta-box form.cart .cc-sp-conversion-trust {
  border-top-color: var(--cc-commerce-border) !important;
}

.single-product .cc-sp-conversion-trust span + span::before {
  color: #657174;
}

.single-product div.product .cc-cta-box form.cart .cc-sp-payments {
  padding: 7px 10px;
  background: #ffffff;
  border-radius: 5px;
}

/* A graphite specification rail with a calm light reading surface. */
.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
  color: var(--cc-muted2);
  background: var(--cc-commerce-surface) !important;
  border: 1px solid var(--cc-commerce-border) !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 22px rgba(17, 19, 24, .06) !important;
}

.single-product .woocommerce-tabs .woocommerce-Tabs-panel:hover,
.single-product .woocommerce-tabs .woocommerce-Tabs-panel:has(.cc-product-section[open]) {
  border-color: var(--cc-commerce-border-hover) !important;
}

.single-product .cc-product-section,
.single-product .cc-product-section[open] {
  background: var(--cc-commerce-surface) !important;
  border-left: 0 !important;
}

.single-product .cc-product-section summary,
.single-product .cc-product-section summary:hover,
.single-product .cc-product-section[open] summary {
  min-height: 76px;
  color: var(--cc-commerce-text) !important;
  background: var(--cc-commerce-surface) !important;
  border-bottom-color: var(--cc-commerce-border) !important;
}

.single-product .cc-product-section summary:hover,
.single-product .cc-product-section[open] summary {
  background: var(--cc-commerce-surface-raised) !important;
}

.single-product .cc-product-section-kicker {
  color: var(--cc-commerce-teal) !important;
}

.single-product .cc-product-section-title {
  color: var(--cc-commerce-text) !important;
}

.single-product .cc-product-section-toggle {
  background: #243634 !important;
  border-color: #3f625f !important;
}

.single-product .cc-product-section-toggle::before,
.single-product .cc-product-section-toggle::after {
  background: var(--cc-commerce-teal) !important;
}

.single-product .cc-product-section-body {
  color: var(--cc-muted2);
  background: #ffffff !important;
}

.single-product .cc-product-metric {
  color: var(--cc-commerce-text);
  background: var(--cc-commerce-surface) !important;
  border: 1px solid var(--cc-commerce-border);
}

.single-product .cc-product-metric:nth-child(even) {
  background: var(--cc-commerce-surface-raised) !important;
}

.single-product .cc-product-metric span {
  color: var(--cc-commerce-teal) !important;
}

.single-product .cc-product-metric strong {
  color: var(--cc-commerce-text) !important;
}

/* Preparation supplies now align with the catalogue and use the full grid. */
.single-product .related,
.single-product .up-sells {
  margin-top: 54px !important;
}

.single-product .related > h2,
.single-product .up-sells > h2 {
  margin-bottom: 22px !important;
  color: var(--cc-text) !important;
  font-size: clamp(24px, 2vw, 32px) !important;
  letter-spacing: -.025em;
}

.single-product .related ul.products,
.single-product .up-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.single-product .related ul.products li.product,
.single-product .up-sells ul.products li.product {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  margin: 0 !important;
  color: var(--cc-commerce-text) !important;
  background: var(--cc-commerce-surface) !important;
  border: 1px solid var(--cc-commerce-border) !important;
  border-radius: 10px !important;
  box-shadow: 0 10px 24px rgba(17, 19, 24, .09) !important;
  overflow: hidden;
}

.single-product .related ul.products li.product:hover,
.single-product .up-sells ul.products li.product:hover {
  border-color: var(--cc-commerce-border-hover) !important;
  box-shadow: 0 15px 34px rgba(17, 19, 24, .16) !important;
}

.single-product .related .cc-card-body,
.single-product .up-sells .cc-card-body {
  color: var(--cc-commerce-text) !important;
  background: var(--cc-commerce-surface) !important;
}

.single-product .related .cc-card-cat,
.single-product .up-sells .cc-card-cat {
  color: var(--cc-commerce-teal) !important;
}

.single-product .related .cc-card-title,
.single-product .related .cc-card-price,
.single-product .related .cc-card-price ins,
.single-product .related .cc-card-price > .amount,
.single-product .up-sells .cc-card-title,
.single-product .up-sells .cc-card-price,
.single-product .up-sells .cc-card-price ins,
.single-product .up-sells .cc-card-price > .amount {
  color: var(--cc-commerce-text) !important;
}

.single-product .related .cc-card-cas,
.single-product .related .cc-card-price del,
.single-product .up-sells .cc-card-cas,
.single-product .up-sells .cc-card-price del {
  color: var(--cc-commerce-muted) !important;
}

.single-product .related .cc-card-tags span,
.single-product .up-sells .cc-card-tags span {
  color: var(--cc-commerce-text) !important;
  background: var(--cc-commerce-surface-raised) !important;
  border-color: #465255 !important;
}

.single-product .related .cc-card-tags .cc-chip-purity,
.single-product .up-sells .cc-card-tags .cc-chip-purity {
  color: #071011 !important;
  background: var(--cc-commerce-teal) !important;
  border-color: var(--cc-commerce-teal) !important;
}

.single-product .related .cc-card-foot,
.single-product .up-sells .cc-card-foot {
  border-top-color: var(--cc-commerce-border) !important;
}

.single-product .related .cc-card-btn,
.single-product .up-sells .cc-card-btn {
  color: #ffffff !important;
  background: var(--cc-commerce-cta) !important;
  border-color: var(--cc-commerce-cta) !important;
}

.single-product .related .cc-card-btn:hover,
.single-product .up-sells .cc-card-btn:hover {
  color: #ffffff !important;
  background: var(--cc-commerce-cta-hover) !important;
  border-color: var(--cc-commerce-cta-hover) !important;
}

@media (max-width: 980px) {
  .single-product div.product .woocommerce-tabs,
  .single-product div.product .related,
  .single-product div.product .up-sells {
    grid-column: 1 !important;
  }
}

@media (max-width: 700px) {
  .single-product div.product .woocommerce-tabs {
    grid-template-columns: 1fr;
    margin-top: 30px !important;
  }

  .single-product .woocommerce-tabs #tab-description,
  .single-product .woocommerce-tabs .woocommerce-Tabs-panel,
  .single-product .woocommerce-tabs .woocommerce-Tabs-panel:has(.cc-product-section[open]) {
    grid-column: 1;
  }

  .single-product .related ul.products,
  .single-product .up-sells ul.products {
    grid-template-columns: 1fr !important;
  }

  .single-product .cc-product-section summary {
    min-height: 70px;
  }
}

/* ============================================================
   STICKY PRODUCT RAIL CORRECTION (v2.5.99)
   The supporting content deliberately remains in column one so
   the sticky purchase panel can occupy column two without covering it.
   ============================================================ */
@media (min-width: 981px) {
  .single-product div.product .woocommerce-tabs,
  .single-product div.product .related,
  .single-product div.product .up-sells {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .single-product div.product .woocommerce-tabs {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .single-product .woocommerce-tabs #tab-description,
  .single-product .woocommerce-tabs .woocommerce-Tabs-panel,
  .single-product .woocommerce-tabs .woocommerce-Tabs-panel:has(.cc-product-section[open]) {
    grid-column: 1 !important;
  }

  .single-product .cc-sp-summary {
    z-index: 3;
  }
}

/* ============================================================
   LIGHT PURCHASE PANEL BALANCE (v2.5.100)
   Keep graphite for technical content and return the sticky
   conversion surface to white for clearer page hierarchy.
   ============================================================ */
.single-product .cc-cta-box {
  color: var(--cc-text);
  background: #ffffff !important;
  border: 1px solid #1e7b78 !important;
  box-shadow: 0 12px 30px rgba(17, 19, 24, .08) !important;
}

.single-product .cc-cta-box .product_title,
.single-product .cc-cta-box p.price,
.single-product .cc-cta-box p.price ins,
.single-product .cc-cta-box p.price > .amount {
  color: var(--cc-text) !important;
}

.single-product .cc-cta-box .cc-sp-size-line,
.single-product .cc-cta-box .product_meta,
.single-product .cc-cta-box .product_meta a,
.single-product .cc-cta-box .cc-sp-meta,
.single-product .cc-cta-box .woocommerce-product-details__short-description,
.single-product .cc-cta-box .cc-sp-secure,
.single-product .cc-cta-box .cc-sp-conversion-trust {
  color: var(--cc-muted2) !important;
}

.single-product .cc-cta-box .product_meta {
  border-color: var(--cc-border) !important;
}

.single-product .cc-cta-box .product_meta strong,
.single-product .cc-cta-box .product_meta b {
  color: var(--cc-text);
}

.single-product .cc-sp-urgency {
  color: var(--cc-accent-dk) !important;
  background: #eef5f5 !important;
  border-color: #d5e6e6 !important;
}

.single-product .cc-sp-urgency::before {
  background: var(--cc-accent-dk) !important;
}

.single-product .cc-sp-urgency.is-closed {
  color: var(--cc-muted2) !important;
  background: #f4f4f5 !important;
  border-color: var(--cc-border) !important;
}

.single-product .cc-cta-box form.cart .quantity {
  background: #ffffff !important;
  border-color: var(--cc-border-2) !important;
}

.single-product .cc-cta-box .cc-qty-btn,
.single-product .cc-cta-box form.cart .quantity input.qty {
  color: var(--cc-text) !important;
  background: transparent !important;
}

.single-product .cc-cta-box .cc-qty-btn:hover {
  background: rgba(0, 0, 0, .05) !important;
}

.single-product .cc-cta-box form.cart .quantity input.qty {
  border-color: var(--cc-border) !important;
}

.single-product .cc-stock-inline,
.single-product .cc-stock-pill.is-in {
  color: #17795e !important;
  background: #eaf6f2 !important;
  border-color: #cde8de !important;
}

.single-product .cc-stock-pill.is-out {
  color: var(--cc-muted) !important;
  background: #f3f3f4 !important;
}

.single-product div.product .cc-cta-box form.cart .cc-sp-conversion-trust {
  border-top-color: #e5e7e8 !important;
}

.single-product .cc-sp-conversion-trust span + span::before {
  color: var(--cc-muted);
}

.single-product div.product .cc-cta-box form.cart .cc-sp-payments {
  padding: 0;
  background: transparent;
}

/* ============================================================
   PRODUCT SUPPORT CARD BODY CORRECTION (v2.5.101)
   Override the legacy single-product white-body rule at its
   actual specificity so support cards match the catalogue.
   ============================================================ */
body.single-product .related ul.products li.product .cc-card-body,
body.single-product .up-sells ul.products li.product .cc-card-body {
  color: var(--cc-commerce-text) !important;
  background: var(--cc-commerce-surface) !important;
}

/* ============================================================
   PRODUCT IMAGE FOCAL LIFT (v2.5.102)
   Use the full gallery plate and give the vial stronger presence
   without changing the source artwork or the light CTA balance.
   ============================================================ */
.single-product .cc-gallery-main {
  padding: 0 !important;
  overflow: hidden;
  background: #f5f5f3;
  border-color: #cbd3d1 !important;
  box-shadow: 0 12px 28px rgba(17, 19, 24, .08);
}

.single-product .cc-gallery-main > img {
  width: auto !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  transform: scale(1.04);
  filter: contrast(1.035);
}

/* ============================================================
   EDITORIAL PRODUCT DETAIL PAGE (v2.6.0)
   A dedicated 58/42 top row, permanently visible product overview
   and restrained light technical accordions.
   ============================================================ */

body.single-product .cc-main {
  width: 100%;
  max-width: 1220px;
}

body.single-product div.product {
  display: block !important;
  width: 100%;
  max-width: none;
  min-width: 0;
}

body.single-product .cc-product-top {
  display: grid;
  grid-template-columns: minmax(0, 1.38fr) minmax(380px, 1fr);
  align-items: start;
  gap: 36px;
  width: 100%;
  min-width: 0;
}

body.single-product .cc-product-top .cc-sp-gallery,
body.single-product .cc-product-top .cc-sp-summary,
body.single-product .cc-product-top .woocommerce-product-gallery {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  margin: 0 !important;
}

body.single-product .cc-product-top .cc-sp-summary {
  position: static;
  z-index: 3;
}

body.single-product .cc-product-top .cc-cta-box {
  width: 100%;
  max-width: none;
}

/* Preserve the approved source image consistently: contain, centre, no crop. */
body.single-product .cc-gallery-main {
  padding: 0 !important;
  overflow: hidden;
}

body.single-product .cc-gallery-main > img {
  width: auto !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
  filter: none !important;
}

/* Permanently visible evidence layer. */
body.single-product .cc-product-overview {
  width: 100%;
  min-width: 0;
  margin: 56px 0 0;
  padding: 48px 0 54px;
  color: var(--cc-text);
  background: #ffffff;
  border-top: 1px solid #e5e7e8;
  border-bottom: 1px solid #e5e7e8;
}

.cc-product-overview-header {
  max-width: 760px;
  margin-bottom: 28px;
}

.cc-product-overview-eyebrow {
  margin: 0 0 8px !important;
  color: var(--cc-accent-dk);
  font-size: 10px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.cc-product-overview-header h2 {
  margin: 0 !important;
  color: var(--cc-text);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.035em;
}

.cc-product-overview-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  margin: 0 0 36px;
}

.cc-product-overview-metric {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  min-height: 92px;
  padding: 17px 18px;
  box-sizing: border-box;
  background: #f2f8f7;
  border: 1px solid #e1ecea;
  border-radius: 9px;
}

.cc-product-overview-metric:nth-child(even) {
  background: #f6f7f7;
  border-color: #e8ebea;
}

.cc-product-overview-metric span {
  display: block;
  margin-bottom: 7px;
  color: #747a80;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.cc-product-overview-metric strong {
  display: block;
  color: var(--cc-text);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.cc-product-overview-editorial {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  align-items: start;
  gap: clamp(36px, 5vw, 68px);
  padding-top: 36px;
  border-top: 1px solid #e5e7e8;
}

.cc-product-overview-copy {
  min-width: 0;
  max-width: 72ch;
  color: var(--cc-muted2);
}

.cc-product-overview-copy > p {
  margin: 0 0 18px;
  font-size: 16px;
  line-height: 1.72;
}

.cc-product-overview-copy > p:last-of-type {
  margin-bottom: 0;
}

.cc-product-overview-focus {
  margin-top: 30px;
  padding-top: 24px;
  border-top: 1px solid #e5e7e8;
}

.cc-product-overview-focus h3,
.cc-product-overview-panel h3 {
  margin: 0 0 15px !important;
  color: var(--cc-text);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
}

.cc-product-overview-focus ul,
.cc-product-overview-panel ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cc-product-overview-focus li,
.cc-product-overview-panel li {
  position: relative;
  margin: 0;
  padding-left: 19px;
  color: var(--cc-muted2);
  line-height: 1.5;
}

.cc-product-overview-focus li::before,
.cc-product-overview-panel li::before {
  content: "";
  position: absolute;
  top: .42em;
  left: 2px;
  width: 6px;
  height: 10px;
  border-right: 1.5px solid var(--cc-accent-dk);
  border-bottom: 1.5px solid var(--cc-accent-dk);
  transform: rotate(45deg);
}

.cc-product-overview-aside {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.cc-product-overview-panel {
  min-width: 0;
  padding: 23px 24px;
  background: #f7f9f8;
  border: 1px solid #e5e7e8;
  border-radius: 10px;
}

.cc-product-overview-composition {
  background: #f2f8f7;
  border-color: #dce9e7;
}

.cc-product-overview-workflow dl {
  display: grid;
  gap: 0;
  margin: 0;
}

.cc-product-overview-workflow dl > div {
  display: grid;
  grid-template-columns: minmax(110px, .42fr) minmax(0, 1fr);
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid #e1e6e4;
}

.cc-product-overview-workflow dl > div:first-child {
  padding-top: 0;
  border-top: 0;
}

.cc-product-overview-workflow dl > div:last-child {
  padding-bottom: 0;
}

.cc-product-overview-workflow dt {
  color: #747a80;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cc-product-overview-workflow dd {
  min-width: 0;
  margin: 0;
  color: var(--cc-text);
  font-weight: 650;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

/* Four full-width, restrained technical accordions. */
body.single-product div.product .woocommerce-tabs {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 16px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 48px 0 0 !important;
  padding: 0 !important;
}

body.single-product .woocommerce-tabs > ul.tabs {
  display: none !important;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel,
body.single-product .woocommerce-tabs #tab-additional_information,
body.single-product .woocommerce-tabs #tab-cc_handling,
body.single-product .woocommerce-tabs #tab-cc_coa,
body.single-product .woocommerce-tabs #tab-cc_shipping {
  display: block !important;
  grid-column: 1 !important;
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--cc-muted2);
  background: #ffffff !important;
  border: 1px solid #e5e7e8 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  overflow: hidden;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel:hover {
  border-color: #d4dfdc !important;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel:has(.cc-product-section[open]) {
  border-color: #b9d8d6 !important;
}

body.single-product .cc-product-section,
body.single-product .cc-product-section[open] {
  width: 100%;
  margin: 0;
  box-sizing: border-box;
  color: var(--cc-muted2);
  background: #ffffff !important;
  border-left: 0 !important;
}

body.single-product .cc-product-section[open] {
  border-left: 3px solid #1e7b78 !important;
}

body.single-product .cc-product-section summary,
body.single-product .cc-product-section summary:hover,
body.single-product .cc-product-section[open] summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  gap: 16px;
  min-height: 64px;
  padding: 16px 18px;
  box-sizing: border-box;
  color: var(--cc-text) !important;
  background: #ffffff !important;
  border-bottom: 0 !important;
}

body.single-product .cc-product-section summary:hover,
body.single-product .cc-product-section summary:focus-visible {
  background: #f2f8f7 !important;
}

body.single-product .cc-product-section summary:focus-visible {
  outline: 2px solid #57b8b2;
  outline-offset: -3px;
}

body.single-product .cc-product-section[open] summary {
  background: #f2f8f7 !important;
  border-bottom: 1px solid #b9d8d6 !important;
}

body.single-product .cc-product-section-kicker {
  color: var(--cc-accent-dk) !important;
  font-size: 10px;
}

body.single-product .cc-product-section-title {
  color: var(--cc-text) !important;
  font-size: 16px;
}

body.single-product .cc-product-section-toggle {
  width: 28px;
  height: 28px;
  background: #f2f8f7 !important;
  border: 1px solid #b9d8d6 !important;
  border-radius: 50%;
}

body.single-product .cc-product-section-toggle::before,
body.single-product .cc-product-section-toggle::after {
  background: var(--cc-accent-dk) !important;
}

body.single-product .cc-product-section-body {
  padding: 26px 28px;
  color: var(--cc-muted2);
  background: #ffffff !important;
}

body.single-product .cc-product-section-body p,
body.single-product .cc-product-section-body li,
body.single-product .cc-product-section-body td {
  color: var(--cc-muted2);
}

body.single-product .cc-product-section-body h2,
body.single-product .cc-product-section-body h3,
body.single-product .cc-product-section-body h4,
body.single-product .cc-product-section-body th,
body.single-product .cc-product-section-body strong {
  color: var(--cc-text);
}

.cc-product-technical-copy {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #e5e7e8;
}

.cc-product-technical-copy > :first-child {
  margin-top: 0 !important;
}

body.single-product .related,
body.single-product .up-sells {
  width: 100% !important;
  max-width: none !important;
  margin-top: 54px !important;
}

@media (max-width: 900px) {
  body.single-product .cc-product-top {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .cc-product-overview-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-product-overview-editorial {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }

  .cc-product-overview-copy {
    max-width: 78ch;
  }
}

@media (max-width: 600px) {
  body.single-product .cc-main {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }

  body.single-product .cc-product-top {
    gap: 22px;
  }

  body.single-product .cc-product-overview {
    margin-top: 38px;
    padding: 36px 0 40px;
  }

  .cc-product-overview-header {
    margin-bottom: 22px;
  }

  .cc-product-overview-header h2 {
    font-size: 28px;
  }

  .cc-product-overview-metrics {
    gap: 10px;
    margin-bottom: 28px;
  }

  .cc-product-overview-metric {
    min-height: 86px;
    padding: 15px;
  }

  .cc-product-overview-editorial {
    gap: 24px;
    padding-top: 28px;
  }

  .cc-product-overview-copy > p {
    font-size: 15px;
    line-height: 1.65;
  }

  .cc-product-overview-panel {
    padding: 20px;
  }

  .cc-product-overview-workflow dl > div {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  body.single-product div.product .woocommerce-tabs {
    gap: 14px !important;
    margin-top: 36px !important;
  }

  body.single-product .cc-product-section summary,
  body.single-product .cc-product-section summary:hover,
  body.single-product .cc-product-section[open] summary {
    min-height: 56px;
    padding: 15px 16px;
  }

  body.single-product .cc-product-section-body {
    padding: 21px 20px;
  }
}

@media (max-width: 420px) {
  .cc-product-overview-metrics {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ============================================================
   PURCHASE BAR BASE (v2.6.1)
   v2.8.52 promotes this control to desktop in the final cascade.
   ============================================================ */
.cc-mobile-purchase-bar {
  display: none;
}

body.single-product .cc-product-top .cc-sp-summary,
body.admin-bar.single-product .cc-product-top .cc-sp-summary {
  position: static !important;
  inset: auto !important;
  transform: none;
}

@media (max-width: 767px) {
  body.single-product.cc-mobile-purchase-visible {
    padding-bottom: calc(var(--cc-mobile-purchase-height, 78px) + 12px) !important;
  }

  body.single-product.cc-mobile-purchase-visible .cky-btn-revisit-wrapper,
  body.single-product.cc-mobile-purchase-visible #cookie-law-info-again,
  body.single-product.cc-mobile-purchase-visible .cmplz-manage-consent {
    bottom: calc(var(--cc-mobile-purchase-height, 78px) + 18px) !important;
  }

  .cc-mobile-purchase-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 850;
    display: block;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid #e5e7e8;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -8px 24px rgba(20, 22, 28, .09);
    opacity: 0;
    visibility: hidden;
    transform: translateY(100%);
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
  }

  .cc-mobile-purchase-bar[hidden] {
    display: none !important;
  }

  .cc-mobile-purchase-bar.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .cc-mobile-purchase-bar__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(148px, auto);
    align-items: center;
    gap: 9px 12px;
    width: min(100%, 560px);
    margin: 0 auto;
  }

  .cc-mobile-purchase-bar__options {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 8px;
  }

  .cc-mobile-purchase-bar__options[hidden] {
    display: none !important;
  }

  .cc-mobile-purchase-bar__field {
    display: grid;
    gap: 4px;
    min-width: 0;
    margin: 0;
  }

  .cc-mobile-purchase-bar__field > span {
    color: #687276;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .cc-mobile-purchase-bar__select {
    width: 100%;
    min-width: 0;
    height: 38px;
    margin: 0;
    padding: 0 32px 0 10px;
    border: 1px solid #d7dfdf;
    border-radius: 8px;
    background-color: #f7f9f9;
    color: #171c20;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
  }

  .cc-mobile-purchase-bar__select:focus-visible {
    border-color: #208b87;
    outline: 3px solid rgba(32, 139, 135, .16);
    outline-offset: 1px;
  }

  .cc-mobile-purchase-bar__price {
    min-width: 0;
    color: #171c20;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.15;
  }

  .cc-mobile-purchase-bar__price .price {
    margin: 0;
  }

  .cc-mobile-purchase-bar__price del {
    display: block;
    color: #7a8387;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.1;
  }

  .cc-mobile-purchase-bar__price ins {
    color: #171c20;
    text-decoration: none;
  }

  .cc-mobile-purchase-bar__button {
    min-width: 148px;
    min-height: 48px;
    margin: 0;
    padding: 11px 16px;
    border: 1px solid #208b87;
    border-radius: 8px;
    background: #208b87;
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.15;
    cursor: pointer;
  }

  .cc-mobile-purchase-bar__button:hover {
    border-color: #176f6c;
    background: #176f6c;
  }

  .cc-mobile-purchase-bar__button:focus-visible {
    outline: 3px solid rgba(32, 139, 135, .24);
    outline-offset: 2px;
  }

  .cc-mobile-purchase-bar__button:disabled {
    border-color: #d6dddd;
    background: #e9eeee;
    color: #6c777a;
    cursor: not-allowed;
  }

  .cc-mobile-purchase-bar__button.is-selecting {
    background: #208b87;
    color: #fff;
  }
}

@media (min-width: 768px) {
  .cc-mobile-purchase-bar {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-mobile-purchase-bar {
    transition: none;
  }
}

/* ============================================================
   RESEARCH DOSSIER (v2.6.2)
   Swiss editorial structure using the approved CORE palette.
   ============================================================ */
body.single-product .cc-research-dossier {
  --cc-dossier-text: #111318;
  --cc-dossier-teal: #1e7b78;
  --cc-dossier-charcoal: #172124;
  --cc-dossier-pale-teal: #f1f8f7;
  --cc-dossier-neutral: #f5f6f5;
  --cc-dossier-border: #e3e7e7;
  width: 100%;
  min-width: 0;
  margin: 64px 0 0;
  padding: 58px 0 56px;
  color: var(--cc-dossier-text);
  background: #fff;
  border-top: 1px solid var(--cc-dossier-border);
  border-bottom: 1px solid var(--cc-dossier-border);
}

.cc-dossier-intro {
  max-width: 760px;
  margin: 0 0 38px;
}

.cc-dossier-eyebrow,
.cc-dossier-panel-index {
  margin: 0 0 9px !important;
  color: var(--cc-dossier-teal);
  font-size: 10px;
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.cc-dossier-intro h2 {
  max-width: 900px;
  margin: 0 !important;
  color: var(--cc-dossier-text);
  font-size: clamp(34px, 4.2vw, 50px);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -.048em;
}

.cc-dossier-intro > p:last-child {
  max-width: 670px;
  margin: 18px 0 0 !important;
  color: #5f686c;
  font-size: 16px;
  line-height: 1.65;
}

.cc-dossier-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: stretch;
  gap: 22px;
  width: 100%;
  min-width: 0;
}

.cc-dossier-panel {
  min-width: 0;
  padding: 30px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid var(--cc-dossier-border);
  border-radius: 12px;
}

.cc-dossier-panel h3 {
  margin: 0 !important;
  color: var(--cc-dossier-text);
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 700;
  line-height: 1.13;
  letter-spacing: -.035em;
}

.cc-dossier-overview {
  grid-column: span 7;
  padding: 34px 36px;
}

.cc-dossier-overview-copy {
  max-width: 68ch;
  margin-top: 22px;
}

.cc-dossier-overview-copy p {
  margin: 0 0 17px;
  color: #4f5a5e;
  font-size: 16px;
  line-height: 1.75;
}

.cc-dossier-overview-copy > :last-child {
  margin-bottom: 0;
}

/* The dossier's only charcoal information panel. */
.cc-dossier-identity {
  grid-column: span 5;
  color: #fff;
  background: var(--cc-dossier-charcoal);
  border-color: var(--cc-dossier-charcoal);
}

.cc-dossier-identity .cc-dossier-panel-index {
  color: #72c2bf;
}

.cc-dossier-identity h3 {
  color: #fff;
}

.cc-dossier-identity-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 22px;
  margin: 22px 0 0;
}

.cc-dossier-identity-list > div {
  min-width: 0;
  padding: 15px 0;
  border-top: 1px solid rgba(255, 255, 255, .14);
}

.cc-dossier-identity-list dt,
.cc-dossier-components > span {
  display: block;
  margin: 0 0 6px;
  color: #aebabc;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.cc-dossier-identity-list dd {
  min-width: 0;
  margin: 0;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.cc-dossier-components {
  margin-top: 12px;
  padding-top: 17px;
  border-top: 1px solid rgba(255, 255, 255, .14);
}

.cc-dossier-components ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cc-dossier-components li {
  margin: 0;
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
}

.cc-dossier-focus {
  grid-column: 1 / -1;
  padding: 0;
  overflow: hidden;
}

.cc-dossier-section-heading {
  padding: 28px 30px 24px;
}

.cc-dossier-focus-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--cc-dossier-border);
}
.cc-dossier-focus-grid--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cc-dossier-focus-grid--count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.cc-dossier-focus-card {
  min-width: 0;
  min-height: 205px;
  padding: 25px 24px 27px;
  box-sizing: border-box;
  background: #fff;
  border-left: 1px solid var(--cc-dossier-border);
  transition: background-color 150ms ease;
}

.cc-dossier-focus-card:first-child {
  border-left: 0;
}

.cc-dossier-focus-card:hover {
  background: var(--cc-dossier-pale-teal);
}

.cc-dossier-focus-number {
  display: block;
  margin-bottom: 30px;
  color: #c9dcda;
  font-size: 42px;
  font-weight: 650;
  line-height: .85;
  letter-spacing: -.06em;
  font-variant-numeric: tabular-nums;
}

.cc-dossier-focus-card h4 {
  margin: 0 !important;
  color: var(--cc-dossier-text);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
}

.cc-dossier-focus-card p {
  margin: 9px 0 0 !important;
  color: #626c70;
  font-size: 13px;
  line-height: 1.55;
}

.cc-dossier-features {
  grid-column: span 7;
  background: var(--cc-dossier-pale-teal);
  border-color: #d9e9e7;
}

.cc-dossier-features ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 24px;
  margin: 23px 0 0;
  padding: 0;
  list-style: none;
}

.cc-dossier-features li {
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 2px 0 2px 30px;
  color: #2e393c;
  font-size: 14px;
  line-height: 1.55;
}

.cc-dossier-features li::before {
  content: "";
  position: absolute;
  top: 1px;
  left: 0;
  width: 20px;
  height: 20px;
  border: 1px solid #9dc9c6;
  border-radius: 50%;
  background: #fff;
}

.cc-dossier-features li::after {
  content: "";
  position: absolute;
  top: 5px;
  left: 7px;
  width: 5px;
  height: 9px;
  border-right: 2px solid var(--cc-dossier-teal);
  border-bottom: 2px solid var(--cc-dossier-teal);
  transform: rotate(45deg);
}

.cc-dossier-handling {
  grid-column: span 5;
}

.cc-dossier-span-full {
  grid-column: 1 / -1;
}

.cc-dossier-handling ol {
  margin: 23px 0 0;
  padding: 0;
  list-style: none;
}

.cc-dossier-handling li {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 13px;
  min-height: 68px;
  margin: 0;
  padding: 0 0 18px;
}

.cc-dossier-handling li:last-child {
  min-height: 0;
  padding-bottom: 0;
}

.cc-dossier-handling li::before {
  content: "";
  position: absolute;
  top: 27px;
  bottom: -1px;
  left: 16px;
  width: 1px;
  background: #9dc9c6;
}

.cc-dossier-handling li:last-child::before {
  display: none;
}

.cc-dossier-handling li > span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: var(--cc-dossier-teal);
  background: var(--cc-dossier-pale-teal);
  border: 1px solid #b9d8d6;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.cc-dossier-handling strong {
  display: block;
  margin: 0 0 5px;
  color: var(--cc-dossier-text);
  font-size: 13px;
  font-weight: 750;
}

.cc-dossier-handling p {
  margin: 0 !important;
  color: #626c70;
  font-size: 13px;
  line-height: 1.5;
}

.cc-dossier-coa {
  grid-column: span 5;
  background: var(--cc-dossier-pale-teal);
  border-color: #d9e9e7;
}

.cc-dossier-coa-status {
  display: block;
  margin-top: 22px;
  color: var(--cc-dossier-text);
  font-size: 15px;
  line-height: 1.4;
}

.cc-dossier-coa > p:not(.cc-dossier-panel-index) {
  max-width: 46ch;
  margin: 10px 0 20px !important;
  color: #5d686b;
  font-size: 14px;
  line-height: 1.6;
}

.cc-dossier-coa a {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--cc-dossier-text);
  font-size: 13px;
  font-weight: 750;
  text-decoration: underline;
  text-decoration-color: #85b9b5;
  text-underline-offset: 4px;
}

.cc-dossier-coa a:hover {
  color: var(--cc-dossier-teal);
}

.cc-dossier-coa a:focus-visible {
  outline: 3px solid rgba(30, 123, 120, .22);
  outline-offset: 4px;
}

.cc-dossier-fulfilment {
  grid-column: span 7;
  padding: 0;
  background: var(--cc-dossier-neutral);
  overflow: hidden;
}

.cc-dossier-fulfilment-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--cc-dossier-border);
}

.cc-dossier-fulfilment-grid > div {
  min-width: 0;
  min-height: 130px;
  padding: 24px 22px;
  box-sizing: border-box;
  border-left: 1px solid var(--cc-dossier-border);
}

.cc-dossier-fulfilment-grid > div:first-child {
  border-left: 0;
}

.cc-dossier-fulfilment-grid strong,
.cc-dossier-fulfilment-grid span {
  display: block;
}

.cc-dossier-fulfilment-grid strong {
  margin-bottom: 10px;
  color: var(--cc-dossier-teal);
  font-size: 19px;
  font-weight: 750;
  line-height: 1.15;
  letter-spacing: -.025em;
}

.cc-dossier-fulfilment-grid span {
  color: #5d676b;
  font-size: 12px;
  line-height: 1.5;
}

/* Compact light technical accordions below the dossier. */
body.single-product div.product .woocommerce-tabs {
  gap: 14px !important;
  margin-top: 40px !important;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel,
body.single-product .woocommerce-tabs #tab-additional_information,
body.single-product .woocommerce-tabs #tab-cc_handling,
body.single-product .woocommerce-tabs #tab-cc_coa,
body.single-product .woocommerce-tabs #tab-cc_shipping {
  border-color: #e3e7e7 !important;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel:has(.cc-product-section[open]) {
  border-color: #b9d8d6 !important;
}

body.single-product .cc-product-section summary,
body.single-product .cc-product-section summary:hover,
body.single-product .cc-product-section[open] summary {
  min-height: 58px;
  padding: 14px 17px;
}

body.single-product .cc-product-section[open] summary {
  background: #f1f8f7 !important;
}

body.single-product .cc-product-section summary:focus-visible {
  outline: 3px solid rgba(30, 123, 120, .24);
  outline-offset: -4px;
}

/* Related setup products stay compact instead of filling the dossier width. */
body.single-product .cc-related-supplies {
  margin-top: 60px !important;
}

.cc-related-supplies__header {
  max-width: 680px;
  margin-bottom: 23px;
}

body.single-product .cc-related-supplies__header h2 {
  margin: 0 !important;
  color: #111318 !important;
  font-size: clamp(25px, 2.6vw, 34px) !important;
  line-height: 1.1;
  letter-spacing: -.035em;
}

.cc-related-supplies__header p {
  margin: 10px 0 0 !important;
  color: #687276;
  font-size: 14px;
  line-height: 1.55;
}

body.single-product .cc-related-supplies ul.products {
  grid-template-columns: repeat(2, minmax(340px, 370px)) !important;
  justify-content: start;
  gap: 24px !important;
  width: auto !important;
  max-width: 764px !important;
}

body.single-product .cc-related-supplies ul.products li.product {
  width: 100% !important;
  max-width: 370px !important;
}

@media (max-width: 1020px) {
  .cc-dossier-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-dossier-overview,
  .cc-dossier-identity,
  .cc-dossier-focus,
  .cc-dossier-features,
  .cc-dossier-handling,
  .cc-dossier-coa,
  .cc-dossier-fulfilment,
  .cc-dossier-span-full {
    grid-column: 1 / -1;
  }

  .cc-dossier-focus-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-dossier-focus-card:nth-child(odd) {
    border-left: 0;
  }

  .cc-dossier-focus-card:nth-child(n+3) {
    border-top: 1px solid var(--cc-dossier-border);
  }
}

@media (max-width: 780px) {
  body.single-product .cc-research-dossier {
    margin-top: 46px;
    padding: 42px 0 44px;
  }

  .cc-dossier-intro {
    margin-bottom: 28px;
  }

  .cc-dossier-intro h2 {
    font-size: clamp(31px, 9vw, 40px);
  }

  .cc-dossier-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .cc-dossier-panel {
    grid-column: 1;
    padding: 24px;
  }

  .cc-dossier-overview {
    padding: 26px 24px;
  }

  .cc-dossier-identity-list,
  .cc-dossier-components ul,
  .cc-dossier-features ul {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-dossier-focus {
    padding: 0;
  }

  .cc-dossier-section-heading {
    padding: 24px 22px 21px;
  }

  .cc-dossier-focus-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-dossier-focus-card {
    min-height: 0;
    padding: 22px;
    border-top: 1px solid var(--cc-dossier-border);
    border-left: 0;
  }

  .cc-dossier-focus-card:first-child {
    border-top: 0;
  }

  .cc-dossier-focus-number {
    margin-bottom: 20px;
    font-size: 36px;
  }

  .cc-dossier-fulfilment {
    padding: 0;
  }

  .cc-dossier-fulfilment-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-dossier-fulfilment-grid > div {
    min-height: 0;
    padding: 19px 22px;
    border-top: 1px solid var(--cc-dossier-border);
    border-left: 0;
  }

  .cc-dossier-fulfilment-grid > div:first-child {
    border-top: 0;
  }

  body.single-product .cc-related-supplies ul.products {
    grid-template-columns: minmax(0, 370px) !important;
    width: 100% !important;
    max-width: 370px !important;
    gap: 18px !important;
  }

  body.single-product .cc-related-supplies ul.products li.product {
    max-width: 370px !important;
  }
}

@media (max-width: 420px) {
  .cc-dossier-intro > p:last-child,
  .cc-dossier-overview-copy p {
    font-size: 15px;
  }

  .cc-dossier-panel {
    padding: 21px 19px;
  }

  .cc-dossier-focus,
  .cc-dossier-fulfilment {
    padding: 0;
  }
}

/* ============================================================
   PDP TRUST BRIDGE + UNIFIED OUTLINE ICONS (v2.6.3)
   ============================================================ */
.cc-outline-icon {
  display: block;
  flex: 0 0 auto;
  color: #1e7b78;
}

body.single-product .cc-main {
  box-sizing: border-box;
}

body.single-product .cc-product-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  min-height: 94px;
  margin: 32px 0 0;
  box-sizing: border-box;
  background: #f7f8f7;
  border-top: 1px solid #e3e7e7;
  border-bottom: 1px solid #e3e7e7;
}

.cc-product-trust-item {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  padding: 20px 24px;
  box-sizing: border-box;
}

.cc-product-trust-item + .cc-product-trust-item {
  border-left: 1px solid #e3e7e7;
}

.cc-product-trust-icon {
  width: 20px;
  height: 20px;
}

.cc-product-trust-item > div {
  min-width: 0;
}

.cc-product-trust-item strong,
.cc-product-trust-item span {
  display: block;
}

.cc-product-trust-item strong {
  margin: 0 0 6px;
  color: #111318;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cc-product-trust-item span {
  color: #66707a;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.45;
}

body.single-product .cc-product-trust-strip + .cc-research-dossier {
  margin-top: 0;
  border-top: 0;
}

/* Dossier type is intentionally quieter than the conversion area. */
.cc-dossier-intro h2 {
  font-size: clamp(30px, 3vw, 36px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.038em;
}

.cc-dossier-panel h3 {
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 700;
  line-height: 1.2;
}

.cc-dossier-overview-copy p {
  font-size: 16px;
  line-height: 1.65;
}

.cc-dossier-identity {
  position: relative;
}

.cc-dossier-identity h3 {
  max-width: calc(100% - 48px);
}

.cc-dossier-identity-icon {
  position: absolute;
  top: 28px;
  right: 28px;
  width: 30px;
  height: 30px;
  color: #72c2bf;
  opacity: .85;
}

.cc-dossier-identity-list dt,
.cc-dossier-components > span {
  font-size: 10px;
  letter-spacing: .07em;
}

.cc-dossier-focus-card {
  position: relative;
}

.cc-dossier-focus-icon {
  position: absolute;
  top: 24px;
  right: 23px;
  width: 22px;
  height: 22px;
  color: #1e7b78;
}

.cc-dossier-features li::before {
  width: 18px;
  height: 18px;
}

.cc-dossier-features li::after {
  top: 4px;
  left: 6px;
  width: 4px;
  height: 8px;
}

.cc-dossier-features li {
  padding-left: 27px;
}

.cc-dossier-handling li > span {
  color: #1e7b78;
}

.cc-dossier-handling-icon {
  width: 18px;
  height: 18px;
}

.cc-dossier-coa {
  position: relative;
}

.cc-dossier-coa h3 {
  max-width: calc(100% - 58px);
}

.cc-dossier-coa-icon {
  position: absolute;
  top: 27px;
  right: 27px;
  width: 42px;
  height: 42px;
  color: #1e7b78;
  opacity: .62;
}

.cc-dossier-fulfilment-icon {
  width: 20px;
  height: 20px;
  margin-bottom: 16px;
  color: #1e7b78;
}

body.single-product .cc-product-section summary,
body.single-product .cc-product-section summary:hover,
body.single-product .cc-product-section[open] summary {
  grid-template-columns: 18px minmax(0, 1fr) 28px;
  gap: 13px;
  transition: background-color 150ms ease;
}

body.single-product .cc-product-section-icon {
  width: 18px;
  height: 18px;
  color: #1e7b78;
}

body.single-product .cc-product-section-kicker {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1.2;
}

@media (max-width: 900px) {
  body.single-product .cc-product-trust-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cc-product-trust-item {
    min-height: 88px;
  }

  .cc-product-trust-item + .cc-product-trust-item {
    border-left: 0;
  }

  .cc-product-trust-item:nth-child(even) {
    border-left: 1px solid #e3e7e7;
  }

  .cc-product-trust-item:nth-child(n+3) {
    border-top: 1px solid #e3e7e7;
  }

  .cc-dossier-intro h2 {
    font-size: clamp(26px, 4vw, 30px);
  }
}

@media (max-width: 600px) {
  body.single-product .cc-product-trust-strip {
    margin-top: 26px;
  }

  .cc-product-trust-item {
    padding: 19px 18px;
  }

  .cc-dossier-intro h2 {
    font-size: clamp(24px, 7vw, 28px);
  }

  .cc-dossier-panel h3 {
    font-size: clamp(18px, 5.5vw, 21px);
  }

  .cc-dossier-overview-copy p {
    font-size: 15px;
    line-height: 1.62;
  }
}

@media (max-width: 480px) {
  .cc-dossier-identity-icon {
    top: 22px;
    right: 20px;
  }

  .cc-dossier-coa-icon {
    top: 22px;
    right: 20px;
    width: 36px;
    height: 36px;
  }
}

@media (max-width: 360px) {
  body.single-product .cc-product-trust-strip {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-product-trust-item {
    min-height: 76px;
  }

  .cc-product-trust-item:nth-child(even) {
    border-left: 0;
  }

  .cc-product-trust-item:nth-child(n+2) {
    border-top: 1px solid #e3e7e7;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-dossier-focus-card,
  body.single-product .cc-product-section summary {
    transition: none;
  }
}

/* ============================================================
   BALANCED PRODUCT TOP GRID (v2.6.4)
   Keep the approved two-column composition while matching the
   gallery plate to the square product artwork. The released width
   is transferred directly to the purchase panel.
   ============================================================ */
@media (min-width: 901px) {
  body.single-product .cc-product-top {
    grid-template-columns: minmax(0, 520px) minmax(380px, 1fr);
  }

  body.single-product .cc-gallery-main {
    height: auto !important;
    aspect-ratio: 1 / 1;
  }
}

/* ============================================================
   PRODUCT-FOCUSED PURCHASE PANEL (v2.6.5)
   A category cue and concise descriptor replace duplicated
   technical metadata without changing the approved panel geometry.
   ============================================================ */
body.single-product .cc-cta-box .cc-sp-category-eyebrow {
  margin: 0 0 9px !important;
  color: #1e7b78;
  font-family: inherit;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .09em;
  text-transform: uppercase;
}

body.single-product .cc-cta-box .cc-sp-title-row {
  min-width: 0;
  margin-bottom: 0;
}

body.single-product .cc-cta-box .cc-sp-product-descriptor {
  max-width: 100%;
  margin: 8px 0 14px !important;
  color: #66707a !important;
  font-family: inherit !important;
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

/* Safety net for third-party hooks: technical product meta belongs below. */
body.single-product .cc-cta-box .product_meta,
body.single-product .cc-cta-box .cc-sp-meta {
  display: none !important;
}

@media (max-width: 767px) {
  body.single-product .cc-cta-box .cc-sp-category-eyebrow {
    font-size: 10px;
  }

  body.single-product .cc-cta-box .cc-sp-title-row {
    align-items: baseline;
    gap: 6px 10px;
  }

  body.single-product .cc-cta-box .cc-sp-product-descriptor {
    margin-top: 7px !important;
    font-size: 13.5px;
    line-height: 1.5;
  }
}

/* ============================================================
   CHECKOUT HEADER WORDMARK
   Rendered directly by inc/checkout-branding.php. The image and link
   no longer depend on a media-library attachment or CSS replacement.
   ============================================================ */
body.woocommerce-checkout .srs-checkout-logo {
  flex: 0 0 196px;
  width: 196px;
  max-width: calc(100% - 60px);
  margin: 0;
  line-height: 0;
}

body.woocommerce-checkout .srs-checkout-logo a {
  display: block;
  width: 100%;
  min-height: 44px;
}

body.woocommerce-checkout .srs-checkout-logo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
body.woocommerce-checkout .is-layout-flex:has(> .srs-checkout-logo) {
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px;
}
body.woocommerce-checkout .srs-checkout-logo ~ .wp-block-woocommerce-cart-link {
  flex: 0 0 auto;
  margin-inline-start: auto;
}
body.woocommerce-checkout .srs-checkout-logo ~ .wp-block-woocommerce-cart-link a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
}
body.woocommerce-checkout .srs-checkout-logo a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media (max-width: 900px) {
  body.woocommerce-checkout .srs-checkout-logo {
    flex-basis: 164px;
    width: 164px;
  }
}

/* ============================================================
   EMPTY BASKET EXPERIENCE (v2.8.0)
   An intentional industrial empty state replaces the stock sad-face
   treatment while leaving WooCommerce's native product block intact.
   ============================================================ */
body.cc-cart-is-empty main {
  color: #ffffff;
  background: #0b0c0a;
}

body.cc-cart-is-empty main > .wp-block-post-title,
body.cc-cart-is-empty main .wp-block-post-title {
  margin-bottom: 24px !important;
  color: #ffffff;
  font-family: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;
  font-size: clamp(28px, 4vw, 46px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.cc-empty-cart-shell {
  --cc-empty-surface: #0b0c0a;
  --cc-empty-line: #343833;
  --cc-empty-muted: #aeb5ac;
  --cc-empty-signal: #00e676;
  width: 100%;
  padding-bottom: clamp(54px, 8vw, 92px);
  color: #ffffff;
  background: var(--cc-empty-surface);
  font-family: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;
}

.cc-empty-cart-hero {
  display: grid;
  grid-template-columns: minmax(150px, .34fr) minmax(0, 1fr) auto;
  align-items: center;
  min-height: 280px;
  border: 1px solid var(--cc-empty-line);
  border-top: 5px solid var(--cc-empty-signal);
}

.cc-empty-cart-hero__count {
  display: grid;
  place-items: center;
  align-self: stretch;
  padding: 24px;
  color: var(--cc-empty-signal);
  border-right: 1px solid var(--cc-empty-line);
  font-size: clamp(92px, 11vw, 168px);
  font-weight: 700;
  letter-spacing: -.1em;
  line-height: .75;
}

.cc-empty-cart-hero__copy {
  max-width: 630px;
  padding: clamp(32px, 5vw, 64px);
}

.cc-empty-cart-hero__status {
  margin: 0 0 14px;
  color: var(--cc-empty-signal);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
}

.cc-empty-cart-hero h2 {
  max-width: 12ch;
  margin: 0;
  color: #ffffff;
  font-family: inherit;
  font-size: clamp(32px, 5vw, 62px);
  font-weight: 600;
  letter-spacing: -.055em;
  line-height: .98;
}

.cc-empty-cart-hero__copy > p:last-child {
  max-width: 54ch;
  margin: 22px 0 0;
  color: var(--cc-empty-muted);
  font-size: 14px;
  line-height: 1.7;
}

.cc-empty-cart-hero__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  margin-right: clamp(28px, 4vw, 54px);
  padding: 0 24px;
  color: #000000 !important;
  background: var(--cc-empty-signal) !important;
  border: 1px solid var(--cc-empty-signal);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  transition: color 150ms ease, background-color 150ms ease;
}

.cc-empty-cart-hero__action:hover {
  color: var(--cc-empty-signal) !important;
  background: transparent !important;
}

.cc-empty-cart-hero__action:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 4px;
}

.cc-empty-cart-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-right: 1px solid var(--cc-empty-line);
  border-bottom: 1px solid var(--cc-empty-line);
  border-left: 1px solid var(--cc-empty-line);
}

.cc-empty-cart-facts > span {
  min-width: 0;
  padding: 18px 22px;
  color: var(--cc-empty-muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
}

.cc-empty-cart-facts > span + span {
  border-left: 1px solid var(--cc-empty-line);
}

.cc-empty-cart-native {
  padding-top: clamp(42px, 7vw, 76px);
}

.cc-empty-cart-native .wc-block-cart__empty-cart__title,
.cc-empty-cart-native .wp-block-separator.is-style-dots {
  display: none !important;
}

.cc-empty-cart-native .wp-block-woocommerce-empty-cart-block > .wp-block-heading,
.cc-empty-cart-native .wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title) {
  margin: 0 0 24px !important;
  padding: 0 0 18px;
  color: #ffffff;
  border-bottom: 3px solid var(--cc-empty-signal);
  font-family: inherit;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1.1;
  text-align: left !important;
}

.cc-empty-cart-native .wc-block-grid__products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px !important;
  margin: 0 !important;
  padding: 1px !important;
  background: var(--cc-empty-line);
  border: 0 !important;
}

.cc-empty-cart-native .wc-block-grid__product {
  display: flex;
  flex-direction: column;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 24px !important;
  color: #ffffff;
  background: var(--cc-empty-surface);
  border: 0 !important;
  text-align: left !important;
}

.cc-empty-cart-native .wc-block-grid__product-image {
  margin: 0 0 20px !important;
  overflow: hidden;
  background: #ffffff;
}

.cc-empty-cart-native .wc-block-grid__product-image img {
  display: block;
  width: 100%;
  transition: transform 260ms ease;
}

.cc-empty-cart-native .wc-block-grid__product:hover .wc-block-grid__product-image img {
  transform: scale(1.025);
}

.cc-empty-cart-native .wc-block-grid__product-title,
.cc-empty-cart-native .wc-block-grid__product-price,
.cc-empty-cart-native .wc-block-grid__product-rating,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart {
  margin-right: 20px !important;
  margin-left: 20px !important;
}

.cc-empty-cart-native .wc-block-grid__product-title {
  color: #ffffff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  text-decoration: none;
}

.cc-empty-cart-native .wc-block-grid__product-price {
  margin-top: 8px !important;
  color: var(--cc-empty-muted);
  font-family: inherit;
  font-size: 12px;
}

.cc-empty-cart-native .wc-block-grid__product-add-to-cart {
  margin-top: auto !important;
  padding-top: 18px;
}

.cc-empty-cart-native .wc-block-grid__product-add-to-cart .wp-block-button__link,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart a,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart button {
  width: 100%;
  min-height: 44px;
  padding: 11px 14px;
  color: var(--cc-empty-signal) !important;
  background: transparent !important;
  border: 1px solid var(--cc-empty-signal) !important;
  border-radius: 0 !important;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  text-align: center;
  text-decoration: none !important;
}

.cc-empty-cart-native .wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart a:hover,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart button:hover {
  color: #000000 !important;
  background: var(--cc-empty-signal) !important;
}

@media (max-width: 900px) {
  .cc-empty-cart-hero {
    grid-template-columns: 130px minmax(0, 1fr);
  }

  .cc-empty-cart-hero__action {
    grid-column: 2;
    justify-self: start;
    margin: 0 0 38px clamp(32px, 5vw, 64px);
  }

  .cc-empty-cart-native .wc-block-grid__products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  body.cc-cart-is-empty main > .wp-block-post-title,
  body.cc-cart-is-empty main .wp-block-post-title {
    margin-bottom: 18px !important;
  }

  .cc-empty-cart-hero {
    grid-template-columns: 82px minmax(0, 1fr);
    min-height: 0;
  }

  .cc-empty-cart-hero__count {
    padding: 18px 10px;
    font-size: 70px;
  }

  .cc-empty-cart-hero__copy {
    padding: 30px 24px;
  }

  .cc-empty-cart-hero h2 {
    font-size: clamp(28px, 9vw, 42px);
  }

  .cc-empty-cart-hero__copy > p:last-child {
    margin-top: 16px;
    font-size: 12px;
  }

  .cc-empty-cart-hero__action {
    grid-column: 1 / -1;
    width: calc(100% - 40px);
    margin: 0 20px 24px;
  }

  .cc-empty-cart-facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .cc-empty-cart-facts > span {
    padding: 13px 18px;
  }

  .cc-empty-cart-facts > span + span {
    border-top: 1px solid var(--cc-empty-line);
    border-left: 0;
  }

  .cc-empty-cart-native .wp-block-woocommerce-empty-cart-block > .wp-block-heading,
  .cc-empty-cart-native .wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title) {
    margin-bottom: 18px !important;
  }
}

@media (max-width: 460px) {
  .cc-empty-cart-native .wc-block-grid__products {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-empty-cart-hero__action,
  .cc-empty-cart-native .wc-block-grid__product-image img {
    transition: none;
  }
}

/* ============================================================
   EMPTY BASKET CORRECTION (v2.8.1)
   Return the page to the storefront's restrained white system.
   ============================================================ */
body.cc-cart-is-empty main {
  color: var(--cc-text);
  background: #ffffff;
}

body.cc-cart-is-empty main > .wp-block-post-title,
body.cc-cart-is-empty main .wp-block-post-title {
  margin-bottom: 22px !important;
  color: var(--cc-text);
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
  font-size: clamp(30px, 3.2vw, 42px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.08;
}

.cc-empty-cart-shell {
  --cc-empty-surface: #ffffff;
  --cc-empty-soft: #f7f7f8;
  --cc-empty-line: #e3e7e7;
  --cc-empty-muted: #66707a;
  --cc-empty-signal: #1e7b78;
  padding-bottom: clamp(56px, 7vw, 84px);
  color: var(--cc-text);
  background: #ffffff;
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
}

.cc-empty-cart-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(22px, 3.5vw, 42px);
  min-height: 0;
  padding: clamp(30px, 4vw, 48px);
  background: var(--cc-empty-soft);
  border: 1px solid var(--cc-empty-line);
  border-top: 3px solid var(--cc-empty-signal);
  border-radius: 12px;
}

.cc-empty-cart-hero__icon {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  color: var(--cc-empty-signal);
  background: #ffffff;
  border: 1px solid #d7dddd;
  border-radius: 50%;
}

.cc-empty-cart-hero__icon svg {
  display: block;
  width: 38px;
  height: 38px;
}

.cc-empty-cart-hero__copy {
  max-width: 600px;
  padding: 0;
}

.cc-empty-cart-hero h2 {
  max-width: none;
  margin: 0;
  color: var(--cc-text);
  font-family: inherit;
  font-size: clamp(28px, 3.6vw, 42px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1.04;
}

.cc-empty-cart-hero__copy > p:last-child {
  max-width: 50ch;
  margin: 13px 0 0;
  color: var(--cc-empty-muted);
  font-size: 14px;
  line-height: 1.6;
}

.cc-empty-cart-hero__action {
  min-height: 48px;
  margin: 0;
  padding: 0 22px;
  color: #ffffff !important;
  background: var(--cc-btn) !important;
  border: 1px solid var(--cc-btn);
  border-radius: 7px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  transition: border-color 150ms ease, background-color 150ms ease;
}

.cc-empty-cart-hero__action:hover {
  color: #ffffff !important;
  background: var(--cc-empty-signal) !important;
  border-color: var(--cc-empty-signal);
}

.cc-empty-cart-hero__action:focus-visible {
  outline: 2px solid var(--cc-empty-signal);
  outline-offset: 3px;
}

.cc-empty-cart-native {
  padding-top: clamp(42px, 5.5vw, 64px);
}

.cc-empty-cart-native .wp-block-woocommerce-empty-cart-block > .wp-block-heading,
.cc-empty-cart-native .wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title) {
  margin: 0 0 22px !important;
  padding: 0 0 14px;
  color: var(--cc-text);
  border-bottom: 1px solid var(--cc-empty-line);
  font-family: inherit;
  font-size: clamp(22px, 2.6vw, 28px);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.15;
}

.cc-empty-cart-native .wc-block-grid__products {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px !important;
  padding: 0 !important;
  background: transparent;
}

.cc-empty-cart-native .wc-block-grid__product {
  padding: 0 0 18px !important;
  color: var(--cc-text);
  background: #ffffff;
  border: 1px solid var(--cc-empty-line) !important;
  border-radius: 10px;
  overflow: hidden;
}

.cc-empty-cart-native .wc-block-grid__product-image {
  margin: 0 0 17px !important;
  background: #f5f5f3;
}

.cc-empty-cart-native .wc-block-grid__product-title,
.cc-empty-cart-native .wc-block-grid__product-price,
.cc-empty-cart-native .wc-block-grid__product-rating,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart {
  margin-right: 16px !important;
  margin-left: 16px !important;
}

.cc-empty-cart-native .wc-block-grid__product-title {
  color: var(--cc-text);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
}

.cc-empty-cart-native .wc-block-grid__product-price {
  margin-top: 7px !important;
  color: var(--cc-muted2);
  font-family: inherit;
  font-size: 12px;
}

.cc-empty-cart-native .wc-block-grid__product-add-to-cart {
  padding-top: 16px;
}

.cc-empty-cart-native .wc-block-grid__product-add-to-cart .wp-block-button__link,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart a,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart button {
  min-height: 42px;
  color: #ffffff !important;
  background: var(--cc-btn) !important;
  border: 1px solid var(--cc-btn) !important;
  border-radius: 6px !important;
  font-family: inherit;
  font-size: 11px;
}

.cc-empty-cart-native .wc-block-grid__product-add-to-cart .wp-block-button__link:hover,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart a:hover,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart button:hover {
  color: #ffffff !important;
  background: var(--cc-empty-signal) !important;
  border-color: var(--cc-empty-signal) !important;
}

@media (max-width: 900px) {
  .cc-empty-cart-hero {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .cc-empty-cart-hero__action {
    grid-column: 2;
    justify-self: start;
    margin: 0;
  }
}

@media (max-width: 600px) {
  .cc-empty-cart-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 26px 22px;
  }

  .cc-empty-cart-hero__icon {
    width: 58px;
    height: 58px;
  }

  .cc-empty-cart-hero__icon svg {
    width: 31px;
    height: 31px;
  }

  .cc-empty-cart-hero h2 {
    font-size: clamp(27px, 8vw, 36px);
  }

  .cc-empty-cart-hero__action {
    grid-column: 1;
    width: 100%;
    margin: 0;
  }
}

/* ============================================================
   EMPTY BASKET PRODUCT BUTTON WIDTH FIX (v2.8.2)
   WooCommerce gives the button wrapper a full width; its card margins
   must be included inside that width rather than added on top of it.
   ============================================================ */
.cc-empty-cart-native .wc-block-grid__product-add-to-cart {
  align-self: stretch;
  box-sizing: border-box !important;
  width: auto !important;
  max-width: none !important;
}

.cc-empty-cart-native .wc-block-grid__product-add-to-cart .wp-block-button__link,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart a,
.cc-empty-cart-native .wc-block-grid__product-add-to-cart button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  line-height: 1.2;
}

/* ============================================================
   STOREFRONT BUG FIXES (v2.8.8)
   Compact the native Omnisend form and keep its controls inside the PDP panel.
   ============================================================ */
.cc-stock-alert--omnisend {
  margin-top: 16px;
  padding-top: 18px;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd,
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd [class*="-content"],
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd form {
  box-sizing: border-box !important;
  width: 100% !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-sections-container {
  gap: 12px !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-624ab2f927652f651edfd0ac,
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-624ab2f927652f651edfd0ac > .omnisend-mobile-container,
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e > .omnisend-mobile-container {
  box-sizing: border-box !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-text-624ab2f927652f651edfd0b0 {
  box-sizing: border-box !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-text-624ab2f927652f651edfd0b0 h3 {
  margin: 0 !important;
  color: var(--cc-text) !important;
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -.02em !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e {
  grid-template-columns: minmax(0, 1fr) minmax(136px, 160px) !important;
  align-items: start !important;
  gap: 10px !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-field-container-62a3147776d81914aa87ed98,
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-action-container-627932485028ebd8c6660c51 {
  box-sizing: border-box !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd input,
#omnisend-embedded-v2-6a70ada8047d0a041993ffdd button {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  border-radius: 7px !important;
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif !important;
  font-size: 14px !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd input {
  padding: 0 14px !important;
}

#omnisend-embedded-v2-6a70ada8047d0a041993ffdd button {
  padding: 0 18px !important;
  font-weight: 700 !important;
}

/* WooCommerce renders both Cart block branches before its server-side cart
   object is always reliable. Use the rendered item rows as the final source of
   truth so the empty design cannot sit underneath a filled basket. */
body.woocommerce-cart:has(.wc-block-cart-items__row) .cc-empty-cart-shell {
  display: none !important;
}

/* Conservative fallback for older browsers without relational selectors. */
@supports not selector(body:has(.wc-block-cart-items__row)) {
  body.woocommerce-cart:not(.cc-cart-is-empty) .cc-empty-cart-shell {
    display: none !important;
  }
}

@media (max-width: 767px) {
  #omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #omnisend-embedded-v2-6a70ada8047d0a041993ffdd .omnisend-form-6a70ada8047d0a041993ffdd-section-63808409c46165400eef0e9e > .omnisend-mobile-container {
    width: 100% !important;
  }
}

/* v2.8.13 cascade lock: these dimensions intentionally follow the legacy
   homepage refinement rules so the approved image-backed layout wins. */
.cc-home-main .cc-trust-pillar {
  min-height: clamp(370px, 28vw, 430px);
  padding: 31px 34px 32px;
}

.cc-home-main .cc-trust-copy h3 {
  margin: 0 0 11px;
  font-size: clamp(23px, 2vw, 29px);
}

@media (max-width: 980px) and (min-width: 701px) {
  .cc-home-main .cc-trust-pillar {
    min-height: 380px;
    padding: 26px 24px 28px;
  }

  .cc-home-main .cc-trust-copy h3 { font-size: 22px; }
}

@media (max-width: 700px) {
  .cc-home-main .cc-trust-pillar {
    min-height: 285px;
    padding: 24px 22px;
  }

  .cc-home-main .cc-trust-copy h3 {
    margin-bottom: 8px;
    font-size: 23px;
  }
}

/* ============================================================
   INTEGRATED TRACKED 24 DELIVERY BAND (v2.8.23)
   Calculated delivery evidence inside the purchase card.
   ============================================================ */
body.single-product .cc-cta-box .cc-sp-delivery-estimate {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) minmax(118px, auto);
  gap: 15px;
  align-items: center;
  width: calc(100% + 48px);
  min-width: 0;
  margin: 18px -24px 0;
  padding: 15px 18px;
  box-sizing: border-box;
  color: #111318;
  background: #f7f9f8;
  border: 0;
  border-top: 1px solid #dfe5e5;
  border-bottom: 1px solid #dfe5e5;
  border-radius: 0;
}

.cc-sp-delivery-estimate__icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  color: #1e8985;
  background: #eff8f7;
  border: 1px solid #d2e7e5;
  border-radius: 8px;
}

.cc-sp-delivery-estimate__copy {
  min-width: 0;
}

.cc-sp-delivery-estimate__service,
.cc-sp-delivery-estimate__copy > strong,
.cc-sp-delivery-estimate__caveat,
.cc-sp-delivery-estimate__tracking span,
.cc-sp-delivery-estimate__tracking strong {
  display: block;
}

.cc-sp-delivery-estimate__service,
.cc-sp-delivery-estimate__tracking span {
  color: #1e7b78;
  font-size: 9.5px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cc-sp-delivery-estimate__copy > strong {
  margin-top: 4px;
  color: #111318;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
}

.cc-sp-delivery-estimate__copy > strong span {
  white-space: nowrap;
}

.cc-sp-delivery-estimate__caveat {
  margin-top: 4px;
  color: #66707a;
  font-size: 11px;
  line-height: 1.4;
}

.cc-sp-delivery-estimate__tracking {
  min-width: 0;
  margin: 0 !important;
  padding-left: 15px;
  border-left: 1px solid #dfe5e5;
}

.cc-sp-delivery-estimate__tracking strong {
  margin-top: 5px;
  color: #111318;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
}

@media (min-width: 901px) {
  body.single-product .cc-cta-box .cc-sp-delivery-estimate {
    grid-template-columns: 36px minmax(0, 1fr) minmax(118px, auto);
    min-height: 78px;
    padding: 12px 16px;
  }

  .cc-sp-delivery-estimate__icon {
    width: 36px;
    height: 36px;
  }
}

@media (max-width: 980px) {
  body.single-product .cc-cta-box .cc-sp-delivery-estimate {
    width: calc(100% + 44px);
    margin: 18px -22px 0;
  }
}

@media (max-width: 768px) {
  body.single-product .cc-cta-box .cc-sp-delivery-estimate {
    width: calc(100% + 40px);
    margin: 16px -20px 0;
  }
}

@media (max-width: 520px) {
  body.single-product .cc-cta-box .cc-sp-delivery-estimate {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 13px;
    padding: 15px;
  }

  .cc-sp-delivery-estimate__icon {
    width: 38px;
    height: 38px;
  }

  .cc-sp-delivery-estimate__copy > strong span {
    white-space: normal;
  }

  .cc-sp-delivery-estimate__tracking {
    grid-column: 2;
    padding: 11px 0 0;
    border-top: 1px solid #dfe5e5;
    border-left: 0;
  }
}

/* Purchase-card reading order: CTA, delivery, payment methods, RUO notice. */
body.single-product .cc-cta-box > .cc-sp-payments {
  display: block;
  width: min(100%, 430px);
  height: auto;
  margin: 14px auto 0;
  opacity: .92;
}

body.single-product .cc-cta-box > .cc-sp-secure {
  margin: 7px 0 0 !important;
  color: #66707a;
  font-size: 11.5px;
  line-height: 1.45;
  text-align: center;
}

/* ============================================================
   PDP TRUST PILLS + EVIDENCE-LED SPECIFICATIONS (v2.8.25)
   Short assurances support the decision near the price; detailed
   evidence remains below in a clearer purity-first hierarchy.
   ============================================================ */
body.single-product .cc-sp-trust-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-width: 100%;
  margin: -3px 0 15px;
}

body.single-product .cc-sp-trust-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 27px;
  padding: 5px 9px;
  box-sizing: border-box;
  color: #176f6c;
  background: #eff8f7;
  border: 1px solid #d2e7e5;
  border-radius: 999px;
  font-size: 10.25px;
  font-weight: 700;
  line-height: 1.2;
}

body.single-product .cc-sp-trust-pill svg {
  flex: 0 0 auto;
  stroke-width: 1.8;
}

body.single-product .cc-product-facts__evidence {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(310px, .82fr);
  gap: 24px;
  align-items: stretch;
  min-width: 0;
  margin-bottom: 18px;
  padding: 28px;
  box-sizing: border-box;
  background: #eff8f7;
  border: 1px solid #d2e7e5;
  border-radius: 12px;
}

body.single-product .cc-product-facts__evidence--documentation-only {
  grid-template-columns: minmax(0, 1fr);
}

body.single-product .cc-product-facts__purity {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 4px 2px;
}

body.single-product .cc-product-facts__purity-value {
  display: block;
  margin: 1px 0 13px;
  color: #1e8985;
  font-size: clamp(50px, 6vw, 72px);
  font-weight: 750;
  line-height: .92;
  letter-spacing: -.065em;
  font-variant-numeric: tabular-nums;
}

body.single-product .cc-product-facts__purity > p:last-child {
  max-width: 56ch;
  margin: 0 !important;
  color: #667176;
  font-size: 12.5px;
  line-height: 1.55;
}

body.single-product .cc-product-facts__purity > p:last-child strong {
  color: #111318;
  font-weight: 700;
}

body.single-product .cc-product-facts__evidence .cc-product-facts__coa {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 25px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #dfe5e5;
  border-radius: 9px;
}

body.single-product .cc-product-facts__evidence .cc-product-facts__coa h3,
body.single-product .cc-product-facts__storage h3 {
  margin: 0 !important;
  color: #111318;
  font-size: clamp(20px, 2.1vw, 25px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.035em;
}

body.single-product .cc-product-facts__evidence .cc-product-facts__coa > p:not(.cc-product-facts__label) {
  margin: 13px 0 18px !important;
  color: #667176;
  font-size: 12.5px;
  line-height: 1.55;
}

body.single-product .cc-product-facts__evidence .cc-product-facts__coa a {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 43px;
  margin-top: auto;
  padding: 10px 15px;
  box-sizing: border-box;
  color: #fff;
  background: #1e8985;
  border: 1px solid #1e8985;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
}

body.single-product .cc-product-facts__evidence .cc-product-facts__coa a:hover {
  color: #fff;
  background: #176f6c;
  border-color: #176f6c;
}

body.single-product .cc-product-facts__specification {
  width: 100%;
}

body.single-product .cc-product-facts__specification dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.single-product .cc-product-facts__storage {
  display: grid;
  grid-template-columns: minmax(210px, .7fr) minmax(0, 1.8fr);
  gap: 28px;
  align-items: center;
  width: 100%;
  min-width: 0;
  margin-top: 18px;
  padding: 26px 28px;
  box-sizing: border-box;
  background: #f7f7f8;
  border: 1px solid #dfe5e5;
  border-radius: 12px;
}

body.single-product .cc-product-facts__storage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
  border-left: 1px solid #dfe5e5;
}

body.single-product .cc-product-facts__storage-item {
  display: grid;
  grid-template-columns: minmax(84px, auto) minmax(0, 1fr);
  gap: 17px;
  align-items: center;
  min-width: 0;
  padding: 5px 22px;
}

body.single-product .cc-product-facts__storage-item + .cc-product-facts__storage-item {
  border-left: 1px solid #dfe5e5;
}

body.single-product .cc-product-facts__temperature {
  display: block;
  margin: 0;
  color: #1e8985;
  font-size: clamp(28px, 3.2vw, 39px);
  font-weight: 750;
  line-height: 1;
  letter-spacing: -.055em;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

body.single-product .cc-product-facts__storage-item > div > strong {
  display: block;
  margin: 0 0 5px;
  color: #111318;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.35;
}

body.single-product .cc-product-facts__storage-item p {
  margin: 0 !important;
  color: #667176;
  font-size: 11.5px;
  line-height: 1.45;
}

@media (max-width: 900px) {
  body.single-product .cc-product-facts__evidence {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
  }

  body.single-product .cc-product-facts__storage {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  body.single-product .cc-product-facts__storage-grid {
    border-top: 1px solid #dfe5e5;
    border-left: 0;
  }

  body.single-product .cc-product-facts__storage-item {
    padding-top: 20px;
  }
}

@media (max-width: 680px) {
  body.single-product .cc-sp-trust-pills {
    margin-bottom: 14px;
  }

  body.single-product .cc-sp-trust-pill {
    min-height: 25px;
    padding: 4px 8px;
    font-size: 9.5px;
  }

  body.single-product .cc-product-facts__evidence {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 22px;
  }

  body.single-product .cc-product-facts__purity-value {
    font-size: 52px;
  }

  body.single-product .cc-product-facts__specification dl,
  body.single-product .cc-product-facts__storage-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.single-product .cc-product-facts__storage {
    padding: 23px;
  }

  body.single-product .cc-product-facts__storage-grid {
    border-top: 1px solid #dfe5e5;
  }

  body.single-product .cc-product-facts__storage-item {
    grid-template-columns: minmax(92px, auto) minmax(0, 1fr);
    padding: 18px 0;
  }

  body.single-product .cc-product-facts__storage-item + .cc-product-facts__storage-item {
    border-top: 1px solid #dfe5e5;
    border-left: 0;
  }
}

/* ============================================================
   SIDE-BY-SIDE TECHNICAL + STORAGE CARDS (v2.8.26)
   The storage card uses stacked temperature records to match the
   visual density of the technical specification beside it.
   ============================================================ */
body.single-product .cc-product-facts__details {
  display: grid;
  grid-template-columns: minmax(0, 1.72fr) minmax(330px, .88fr);
  gap: 18px;
  align-items: stretch;
  min-width: 0;
}

body.single-product .cc-product-facts__details--single {
  grid-template-columns: minmax(0, 1fr);
}

body.single-product .cc-product-facts__details .cc-product-facts__specification,
body.single-product .cc-product-facts__details .cc-product-facts__storage {
  height: 100%;
  margin: 0;
}

body.single-product .cc-product-facts__details .cc-product-facts__storage {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 28px;
  text-align: left;
}

body.single-product .cc-product-facts__details .cc-product-facts__storage > header,
body.single-product .cc-product-facts__details .cc-product-facts__storage-item > div {
  width: 100%;
  min-width: 0;
  text-align: left;
}

body.single-product .cc-product-facts__details .cc-product-facts__storage-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  flex: 1 1 auto;
  margin-top: 22px;
  border-top: 1px solid #dfe5e5;
  border-left: 0;
}

body.single-product .cc-product-facts__details .cc-product-facts__storage-item {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  min-width: 0;
  padding: 22px 0;
}

body.single-product .cc-product-facts__details .cc-product-facts__storage-item + .cc-product-facts__storage-item {
  border-top: 1px solid #dfe5e5;
  border-left: 0;
}

body.single-product .cc-product-facts__details .cc-product-facts__temperature {
  font-size: clamp(31px, 3vw, 40px);
  text-align: left;
}

body.single-product .cc-product-facts__details .cc-product-facts__storage-item p {
  max-width: 24ch;
  font-size: 12px;
  line-height: 1.5;
}

@media (max-width: 980px) {
  body.single-product .cc-product-facts__details {
    grid-template-columns: minmax(0, 1fr);
  }

  body.single-product .cc-product-facts__details .cc-product-facts__storage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1fr);
  }

  body.single-product .cc-product-facts__details .cc-product-facts__storage-item {
    padding: 20px 22px;
  }

  body.single-product .cc-product-facts__details .cc-product-facts__storage-item:first-child {
    padding-left: 0;
  }

  body.single-product .cc-product-facts__details .cc-product-facts__storage-item + .cc-product-facts__storage-item {
    border-top: 0;
    border-left: 1px solid #dfe5e5;
  }
}

@media (max-width: 680px) {
  body.single-product .cc-product-facts__details .cc-product-facts__storage {
    padding: 23px;
  }

  body.single-product .cc-product-facts__details .cc-product-facts__storage-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }

  body.single-product .cc-product-facts__details .cc-product-facts__storage-item,
  body.single-product .cc-product-facts__details .cc-product-facts__storage-item:first-child {
    grid-template-columns: 124px minmax(0, 1fr);
    padding: 18px 0;
  }

  body.single-product .cc-product-facts__details .cc-product-facts__storage-item + .cc-product-facts__storage-item {
    border-top: 1px solid #dfe5e5;
    border-left: 0;
  }
}

@media (max-width: 400px) {
  body.single-product .cc-product-facts__details .cc-product-facts__storage-item,
  body.single-product .cc-product-facts__details .cc-product-facts__storage-item:first-child {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 14px;
  }

  body.single-product .cc-product-facts__details .cc-product-facts__temperature {
    font-size: 29px;
  }
}

/* Balance supply products that need one room-temperature storage instruction. */
body.single-product .cc-product-facts__details .cc-product-facts__storage--single .cc-product-facts__storage-grid {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
}

body.single-product .cc-product-facts__details .cc-product-facts__storage--single .cc-product-facts__storage-item,
body.single-product .cc-product-facts__details .cc-product-facts__storage--single .cc-product-facts__storage-item:first-child {
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  align-content: center;
  padding: 30px 0;
}

body.single-product .cc-product-facts__details .cc-product-facts__storage--single .cc-product-facts__temperature {
  font-size: clamp(34px, 3.5vw, 46px);
  white-space: nowrap;
}

body.single-product .cc-product-facts__details .cc-product-facts__storage--single .cc-product-facts__storage-item > div {
  max-width: 24ch;
}

@media (max-width: 980px) {
  body.single-product .cc-product-facts__details .cc-product-facts__storage--single .cc-product-facts__storage-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
  }

  body.single-product .cc-product-facts__details .cc-product-facts__storage--single .cc-product-facts__storage-item,
  body.single-product .cc-product-facts__details .cc-product-facts__storage--single .cc-product-facts__storage-item:first-child {
    padding: 24px 0;
  }
}

/* Mobile featured cards: keep sale pricing and the cart control within the card. */
@media (max-width: 600px) {
  .cc-featured .cc-discount-chip {
    display: none !important;
  }
}

/* ============================================================
   HOMEPAGE FEATURED CARDS — explicit full-width purchase action (v2.8.48)
   Keep catalogue and related-product cards unchanged.
   ============================================================ */
body.cc-front .cc-featured .cc-card-foot {
  height: auto !important;
  min-height: 0 !important;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 14px;
  padding-top: 17px !important;
  box-sizing: border-box;
}

body.cc-front .cc-featured .cc-card-price {
  width: 100%;
  align-self: stretch;
}

body.cc-front .cc-featured .cc-card-btn,
body.cc-front .cc-featured .cc-oos-label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  min-width: 100% !important;
  height: 46px !important;
  min-height: 46px !important;
  padding: 0 16px !important;
  border-radius: 6px;
  font-size: 13px !important;
  font-weight: 650;
  line-height: 1 !important;
  text-align: center;
  text-decoration: none;
}

body.cc-front .cc-featured .cc-card-btn::before,
body.cc-front .cc-featured .cc-card-btn::after {
  content: none !important;
}

body.cc-front .cc-featured .cc-card-btn .cc-btn-label {
  position: static !important;
  inset: auto !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  transform: none !important;
  white-space: normal !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  text-align: center;
}

@media (max-width: 600px) {
  body.cc-front .cc-featured .cc-card-foot {
    gap: 11px;
    padding-top: 14px !important;
  }

  body.cc-front .cc-featured .cc-card-btn,
  body.cc-front .cc-featured .cc-oos-label {
    height: 44px !important;
    min-height: 44px !important;
    padding-inline: 10px !important;
    font-size: 12px !important;
  }

  body.cc-front .cc-featured .cc-card-btn .cc-btn-label {
    font-size: 12px !important;
  }
}

/* Final cascade position for the v2.8.49 payment component. */
body.single-product .cc-cta-box > .cc-sp-payments,
.single-product div.product .cc-cta-box form.cart .cc-sp-payments {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
}

/* Footer payment marks: keep every enabled method on one compact row. */
.cc-footer-checkout-options {
  flex: 0 0 auto;
  width: max-content;
  max-width: 100%;
  flex-wrap: nowrap;
  gap: 5px;
}

.cc-footer-checkout-options .cc-payment-mark {
  flex: 0 0 auto;
}

@media (max-width: 600px) {
  .cc-footer-checkout-options {
    width: max-content;
    max-width: 100%;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 3px;
  }

  .cc-footer-checkout-options .cc-payment-mark {
    min-width: 0;
    min-height: 30px;
    padding: 4px 6px;
    gap: 3px;
  }

  .cc-footer-checkout-options .cc-payment-mark--mastercard {
    min-width: 42px;
  }

  .cc-footer-checkout-options .cc-payment-mark__mastercard-word {
    display: none;
  }

  .cc-footer-checkout-options .cc-payment-mark--pay-by-bank {
    font-size: 10px;
  }

  .cc-footer-checkout-options .cc-payment-mark--pay-by-bank svg {
    width: 14px;
    height: 14px;
  }
}

/* Final cascade position for the v2.8.54 responsive purchase bar. */
@media (min-width: 768px) {
  .cc-mobile-purchase-bar {
    display: block !important;
  }
}

@media (max-width: 767px) {
  .cc-mobile-purchase-bar__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .cc-mobile-purchase-bar__identity,
  .cc-mobile-purchase-bar__price,
  .cc-mobile-purchase-bar__stock {
    display: none;
  }

  .cc-mobile-purchase-bar__button {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding: 12px 16px;
    font-size: 15px;
  }
}

/* Sticky purchase bar: keep regular, sale and discount values distinct. */
.cc-mobile-purchase-bar__price .single-price-wrap {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
}

.cc-mobile-purchase-bar__price .single-price-wrap del,
.cc-mobile-purchase-bar__price .single-price-wrap ins,
.cc-mobile-purchase-bar__price .cc-discount-chip {
  margin: 0;
}

.cc-mobile-purchase-bar__price .cc-discount-chip {
  flex: 0 0 auto;
  color: #208b87;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

/* Keep Complianz's reopen control from competing with the sticky purchase bar.
   The control returns as soon as the purchase bar is hidden. */
body.single-product.cc-mobile-purchase-visible .cmplz-manage-consent {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ============================================================
   PRODUCT CARDS — two-corner media pills + stronger CTA (v2.8.55)
   Category remains fixed at the left. Availability or sale state
   occupies the right, creating one predictable scan line.
   ============================================================ */
.woocommerce ul.products li.product .cc-card-media-pill,
.woocommerce-page ul.products li.product .cc-card-media-pill,
.cc-featured ul.products li.product .cc-card-media-pill {
  position: absolute;
  top: 12px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  min-width: 0;
  min-height: 24px;
  box-sizing: border-box;
  padding: 4px 9px;
  overflow: hidden;
  border: 1px solid rgba(17, 19, 24, .08);
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(17, 19, 24, .06);
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.cc-card-media-pill--category {
  left: 12px;
  max-width: calc(50% - 18px);
  color: #31383a;
  background: rgba(255, 255, 255, .94);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.cc-card-media-pill--status {
  right: 12px;
  max-width: calc(54% - 18px);
  gap: 5px;
  letter-spacing: .01em;
}

.cc-card-media-pill--status:not(.is-sale)::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: currentColor;
}

.cc-card-media-pill--status.is-sale {
  color: #ffffff;
  background: #0d1117;
  border-color: #0d1117;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cc-card-media-pill--status.is-in {
  color: #17795e;
  background: rgba(239, 249, 246, .96);
  border-color: #cfe8df;
}

.cc-card-media-pill--status.is-low {
  color: #985f0d;
  background: rgba(255, 248, 231, .97);
  border-color: #eed9ad;
}

.cc-card-media-pill--status.is-out {
  color: #b42318;
  background: rgba(255, 246, 245, .97);
  border-color: #f0cfcb;
}

/* Use one full-width purchase action on homepage, catalogue and related cards. */
.woocommerce ul.products li.product .cc-card-foot,
.woocommerce-page ul.products li.product .cc-card-foot,
.cc-featured ul.products li.product .cc-card-foot {
  height: auto !important;
  min-height: 0 !important;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 13px;
  padding-top: 16px !important;
  box-sizing: border-box;
}

.woocommerce ul.products li.product .cc-card-price,
.woocommerce-page ul.products li.product .cc-card-price,
.cc-featured ul.products li.product .cc-card-price {
  width: 100%;
  align-self: stretch;
}

.woocommerce ul.products li.product .cc-card-btn,
.woocommerce-page ul.products li.product .cc-card-btn,
.cc-featured ul.products li.product .cc-card-btn,
.woocommerce ul.products li.product .cc-oos-label,
.woocommerce-page ul.products li.product .cc-oos-label,
.cc-featured ul.products li.product .cc-oos-label {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  min-width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 0 16px !important;
  gap: 9px;
  border-radius: 7px;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-align: center;
  text-decoration: none;
}

.woocommerce ul.products li.product .cc-card-btn::before,
.woocommerce ul.products li.product .cc-card-btn::after,
.woocommerce-page ul.products li.product .cc-card-btn::before,
.woocommerce-page ul.products li.product .cc-card-btn::after,
.cc-featured ul.products li.product .cc-card-btn::before,
.cc-featured ul.products li.product .cc-card-btn::after {
  content: none !important;
}

.cc-card-btn .cc-card-btn-icon {
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  background: currentColor;
  -webkit-mask: var(--i-cart) center / contain no-repeat;
  mask: var(--i-cart) center / contain no-repeat;
}

.woocommerce ul.products li.product .cc-card-btn .cc-btn-label,
.woocommerce-page ul.products li.product .cc-card-btn .cc-btn-label,
.cc-featured ul.products li.product .cc-card-btn .cc-btn-label {
  position: static !important;
  inset: auto !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  transform: none !important;
  white-space: nowrap !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  text-align: center;
}

@media (max-width: 600px) {
  .woocommerce ul.products li.product .cc-card-media-pill,
  .woocommerce-page ul.products li.product .cc-card-media-pill,
  .cc-featured ul.products li.product .cc-card-media-pill {
    top: 10px;
    min-height: 22px;
    padding: 4px 8px;
    font-size: 9.5px;
  }

  .cc-card-media-pill--category { left: 10px; }
  .cc-card-media-pill--status { right: 10px; }

  .woocommerce ul.products li.product .cc-card-btn,
  .woocommerce-page ul.products li.product .cc-card-btn,
  .cc-featured ul.products li.product .cc-card-btn,
  .woocommerce ul.products li.product .cc-oos-label,
  .woocommerce-page ul.products li.product .cc-oos-label,
  .cc-featured ul.products li.product .cc-oos-label {
    height: 46px !important;
    min-height: 46px !important;
    padding-inline: 12px !important;
    gap: 8px;
    font-size: 15px !important;
  }

  .cc-card-btn .cc-card-btn-icon {
    width: 19px;
    height: 19px;
    flex-basis: 19px;
  }

  .woocommerce ul.products li.product .cc-card-btn .cc-btn-label,
  .woocommerce-page ul.products li.product .cc-card-btn .cc-btn-label,
  .cc-featured ul.products li.product .cc-card-btn .cc-btn-label {
    font-size: 15px !important;
  }
}
