/*
Theme Name: JOBST 2026
Theme URI: https://www.jobstcompressionstocking.com
Author: OpenClaw / Jobst Manager
Author URI: https://www.jobstcompressionstocking.com
Description: Lightweight WooCommerce-first custom theme for the 2026 Jobst redesign.
Version: 1.0.21
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jobst-2026
*/

/* ── Google Fonts ───────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&display=swap');

/* ── CSS Variables (matches approved React design) ─────────── */
:root {
  --background: #f9f7f4;
  --foreground: #1f2335;
  --card: #ffffff;
  --card-foreground: #1f2335;
  --primary: #1a2c5e;
  --primary-foreground: #f9f7f4;
  --secondary: #ebe4db;
  --secondary-foreground: #1a2c5e;
  --muted: #eee9e3;
  --muted-foreground: #60667a;
  --accent: #c1663d;
  --accent-foreground: #ffffff;
  --destructive: #c22e2e;
  --destructive-foreground: #fafafa;
  --border: #e4ded5;
  --input: #e3dcd3;
  --ring: #1a2c5e;
  --radius: 0.625rem;

  --max-w: 80rem; /* 1280px */
  --header-height: 4rem;
}

/* ── Reset / base ───────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--foreground);
  background: var(--background);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6, p {
  margin: 0;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
a {
  color: inherit;
  text-decoration: none;
}
button {
  font-family: inherit;
  cursor: pointer;
}
ul, ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ── Display font ───────────────────────────────────────────── */
.font-display {
  font-family: 'Fraunces', Georgia, serif;
}

/* ── Container ─────────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--max-w);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 640px) {
  .container {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

/* ── Backgrounds / text ────────────────────────────────────── */
.bg-background { background-color: var(--background); }
.bg-primary   { background-color: var(--primary); }
.bg-secondary { background-color: var(--secondary); }
.bg-accent    { background-color: var(--accent); }
.bg-card      { background-color: var(--card); }
.bg-muted     { background-color: var(--muted); }

.text-primary   { color: var(--primary); }
.text-secondary { color: var(--secondary); }
.text-accent    { color: var(--accent); }
.text-muted     { color: var(--muted-foreground); }
.text-white     { color: #fff; }
.text-primary-foreground { color: var(--primary-foreground); }

/* ── Typography helpers ─────────────────────────────────────── */
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
@media (min-width: 640px) {
  .sm\:text-5xl { font-size: 3rem; line-height: 1; }
}
@media (min-width: 1024px) {
  .lg\:text-6xl { font-size: 3.75rem; line-height: 1; }
}

.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }

.uppercase { text-transform: uppercase; }
.tracking-wide { letter-spacing: 0.025em; }
.tracking-wider { letter-spacing: 0.05em; }
.tracking-widest { letter-spacing: 0.2em; }

.leading-tight { line-height: 1.25; }
.leading-snug { line-height: 1.375; }
.leading-relaxed { line-height: 1.625; }

.text-center { text-align: center; }

/* ── Layout helpers ─────────────────────────────────────────── */
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.hidden { display: none; }
.block { display: block; }

.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: 0.25rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.gap-10 { gap: 2.5rem; }
.gap-12 { gap: 3rem; }

.flex-1 { flex: 1 1 0%; }
.shrink-0 { flex-shrink: 0; }

.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (min-width: 640px) {
  .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .md\:flex-row { flex-direction: row; }
  .md\:block { display: block; }
}
@media (min-width: 1024px) {
  .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lg\:block { display: block; }
  .lg\:hidden { display: none; }
  .lg\:flex { display: flex; }
}

/* ── Spacing ────────────────────────────────────────────────── */
.m-0 { margin: 0; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-7 { margin-top: 1.75rem; }
.mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-12 { margin-top: 3rem; }
.mt-16 { margin-top: 4rem; }
.mt-20 { margin-top: 5rem; }

.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }

.ml-auto { margin-left: auto; }
.mr-auto { margin-right: auto; }
.mx-auto { margin-left: auto; margin-right: auto; }

.max-w-md { max-width: 28rem; }
.max-w-lg { max-width: 32rem; }
.max-w-xl { max-width: 36rem; }
.max-w-sm { max-width: 24rem; }

/* ── Padding ────────────────────────────────────────────────── */
.p-2 { padding: 0.5rem; }
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-7 { padding-left: 1.75rem; padding-right: 1.75rem; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }

.pt-2 { padding-top: 0.5rem; }
.pt-5 { padding-top: 1.25rem; }
.pt-6 { padding-top: 1.5rem; }
.pb-5 { padding-bottom: 1.25rem; }
.pb-6 { padding-bottom: 1.5rem; }
.pl-5 { padding-left: 1.25rem; }
.pr-12 { padding-right: 3rem; }

/* ── Borders / rounded ────────────────────────────────────────── */
.border { border: 1px solid var(--border); }
.border-t { border-top: 1px solid var(--border); }
.border-b { border-bottom: 1px solid var(--border); }
.border-y { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.border-primary-20 { border-color: rgba(26,44,94,0.2); }
.border-white-15 { border-color: rgba(255,255,255,0.15); }
.border-accent-50 { border-color: rgba(193,102,61,0.5); }

.rounded { border-radius: var(--radius); }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 1rem; }
.rounded-2xl { border-radius: 1.25rem; }
.rounded-full { border-radius: 9999px; }

/* ── Shadows / effects ──────────────────────────────────────── */
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1); }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1); }

.backdrop-blur {
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

/* ── Buttons ────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25rem;
  text-align: center;
  transition: transform 150ms ease, opacity 150ms ease, background-color 150ms ease, border-color 150ms ease, color 150ms ease;
  border: 2px solid transparent;
  padding: 0.75rem 1.5rem;
}
.btn:hover {
  transform: scale(1.02);
}
.btn-primary {
  background-color: var(--primary);
  color: var(--primary-foreground);
  border-color: var(--primary);
}
.btn-primary:hover {
  opacity: 0.92;
}
.btn-outline {
  background-color: rgba(255,255,255,0.6);
  color: var(--primary);
  border-color: rgba(26,44,94,0.2);
}
.btn-outline:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.btn-accent {
  background-color: #fff;
  color: var(--accent);
  border-color: #fff;
}
.btn-white-text {
  color: var(--accent);
  background: #fff;
}

/* ── Links / text links ─────────────────────────────────────── */
.link {
  color: var(--primary);
  font-weight: 600;
  font-size: 0.875rem;
}
.link:hover {
  color: var(--accent);
}

/* ── Header / Nav ───────────────────────────────────────────── */
.promo-bar {
  background: var(--primary);
  color: var(--primary-foreground);
  overflow: hidden;
}
.promo-track {
  display: flex;
  width: max-content;
  white-space: nowrap;
  animation: marquee 28s linear infinite;
}
.promo-track:hover {
  animation-play-state: paused;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.promo-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 2rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.14em;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
}
.header-main {
  background: rgba(249,247,244,0.95);
  border-bottom: 1px solid var(--border);
}
@supports (backdrop-filter: blur(12px)) {
  .header-main {
    background: rgba(249,247,244,0.85);
  }
}

.header-logo img {
  height: 2.5rem;
  width: auto;
}

.nav-desktop a,
.nav-desktop button {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 0.75rem;
  border-radius: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  background: transparent;
  border: none;
  color: var(--foreground);
}
.nav-desktop a:hover,
.nav-desktop button:hover {
  color: var(--accent);
}
.nav-desktop .nav-accent {
  color: var(--accent);
  font-weight: 600;
}

.mega-menu {
  position: absolute;
  left: 0;
  top: 100%;
  padding-top: 0.5rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
}
.mega-menu.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.mega-panel {
  width: 40rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-xl);
  padding: 1.5rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.mega-panel p {
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--muted-foreground);
  margin-bottom: 0.75rem;
}
.mega-panel a {
  display: block;
  font-size: 0.8125rem;
  padding: 0.25rem 0;
  color: var(--foreground);
}
.mega-panel a:hover {
  color: var(--accent);
}

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  color: var(--primary);
  background: transparent;
  border: none;
  border-radius: 9999px;
  transition: color 150ms ease;
}
.icon-btn:hover {
  color: var(--accent);
}
.phone-pill {
  display: none;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid var(--border);
  border-radius: 9999px;
  padding: 0.375rem 0.875rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--primary);
}
.phone-pill:hover {
  background: var(--secondary);
}
@media (min-width: 768px) {
  .phone-pill { display: inline-flex; }
}

.cart-count {
  position: absolute;
  top: -0.125rem;
  right: -0.125rem;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 0.25rem;
  background: var(--accent);
  color: #fff;
  border-radius: 9999px;
  font-size: 0.625rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ── Mobile menu ────────────────────────────────────────────── */
.mobile-menu-toggle {
  display: inline-flex;
  padding: 0.5rem;
  margin-left: -0.5rem;
  color: var(--primary);
  background: transparent;
  border: none;
}
@media (min-width: 1024px) {
  .mobile-menu-toggle { display: none; }
}
.mobile-panel {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 50;
  opacity: 0;
  visibility: hidden;
  transition: opacity 200ms ease, visibility 200ms ease;
}
.mobile-panel.is-open {
  opacity: 1;
  visibility: visible;
}
.mobile-drawer {
  position: absolute;
  top: 0;
  left: 0;
  width: 20rem;
  height: 100%;
  background: var(--background);
  transform: translateX(-100%);
  transition: transform 200ms ease;
  overflow-y: auto;
}
.mobile-panel.is-open .mobile-drawer {
  transform: translateX(0);
}
.mobile-drawer header {
  padding: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.mobile-section {
  padding: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.mobile-section h4 {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--muted-foreground);
  margin-bottom: 0.75rem;
}
.mobile-section a {
  display: block;
  padding: 0.4rem 0;
  font-size: 0.9375rem;
  color: var(--foreground);
}
.mobile-section a:hover {
  color: var(--accent);
}

/* ── Hero ───────────────────────────────────────────────────── */
.hero {
  position: relative;
  overflow: hidden;
  background: var(--secondary);
}
.hero-image-desktop {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 50%;
  display: none;
}
.hero-image-desktop img,
.hero-image-mobile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 70% center;
}
.hero-image-desktop .gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, var(--secondary), rgba(235,228,219,0.25), transparent);
}
.hero-content {
  position: relative;
  display: grid;
  max-width: var(--max-w);
  margin: 0 auto;
}
@media (min-width: 1024px) {
  .hero-image-desktop { display: block; }
  .hero-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3.5rem 1rem;
}
@media (min-width: 640px) {
  .hero-copy { padding: 3.5rem 1.5rem; }
}
@media (min-width: 1024px) {
  .hero-copy { padding: 6rem 3rem 6rem 1.5rem; }
}
.hero-image-mobile {
  position: relative;
  min-height: 18rem;
}
.hero-image-mobile .gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, var(--secondary), rgba(235,228,219,0.2), transparent);
}
@media (min-width: 1024px) {
  .hero-image-mobile { display: none; }
}

.kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--accent);
  margin-bottom: 1rem;
}
.kicker svg {
  width: 1rem;
  height: 1rem;
}

.hero-title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 2.25rem;
  font-weight: 500;
  line-height: 1.08;
  color: var(--primary);
}
@media (min-width: 640px) {
  .hero-title { font-size: 3rem; }
}
@media (min-width: 1024px) {
  .hero-title { font-size: 3.4rem; }
}

.hero-body {
  margin-top: 1.25rem;
  max-width: 28rem;
  font-size: 0.9375rem;
  line-height: 1.625;
  color: var(--muted-foreground);
}

.hero-actions {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.hero-trust {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  row-gap: 0.5rem;
  font-size: 0.75rem;
  color: var(--muted-foreground);
}
.hero-trust span {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.hero-trust svg {
  width: 0.875rem;
  height: 0.875rem;
  color: var(--accent);
}

/* ── Insurance strip ────────────────────────────────────────── */
.insurance-strip {
  background: var(--accent);
  color: #fff;
}
.insurance-strip .icon-circle {
  display: none;
  background: rgba(255,255,255,0.15);
  border-radius: 9999px;
  padding: 0.75rem;
}
@media (min-width: 640px) {
  .insurance-strip .icon-circle { display: inline-flex; }
}

/* ── Section header ─────────────────────────────────────────── */
.section-kicker {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--accent);
}
.section-title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.875rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--primary);
  margin-top: 0.5rem;
}
@media (min-width: 640px) {
  .section-title { font-size: 2.25rem; }
}

/* ── Category tiles ─────────────────────────────────────────── */
.category-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
@media (min-width: 1024px) {
  .category-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.cat-tile {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  text-align: left;
  display: block;
}
.cat-tile .media {
  aspect-ratio: 3 / 4;
  overflow: hidden;
}
@media (min-width: 640px) {
  .cat-tile .media { aspect-ratio: 4 / 5; }
}
.cat-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms ease;
}
.cat-tile:hover img {
  transform: scale(1.05);
}
.cat-tile .overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(26,44,94,0.7), transparent, transparent);
  border-radius: 1rem;
}
.cat-tile .label {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 1.25rem;
  color: #fff;
}
.cat-tile .label h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 500;
}
.cat-tile .label p {
  font-size: 0.75rem;
  opacity: 0.8;
  margin-top: 0.125rem;
}

/* ── Condition grid ─────────────────────────────────────────── */
.condition-card {
  display: block;
  border: 1px solid var(--border);
  background: var(--background);
  border-radius: var(--radius);
  padding: 1.25rem;
  text-align: left;
  transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}
.condition-card:hover {
  transform: translateY(-2px);
  border-color: rgba(193,102,61,0.5);
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
}
.condition-card h4 {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.condition-card h4 svg {
  width: 1rem;
  height: 1rem;
  color: var(--accent);
  opacity: 0;
  transition: opacity 150ms ease;
}
.condition-card:hover h4 svg {
  opacity: 1;
}
.condition-card p {
  margin-top: 0.375rem;
  font-size: 0.75rem;
  line-height: 1.5;
  color: var(--muted-foreground);
}

/* ── Product card ───────────────────────────────────────────── */
.product-card {
  display: flex;
  flex-direction: column;
}
.product-card .image-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--secondary);
  border-radius: var(--radius);
  overflow: hidden;
}
.product-card .image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-card .badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  background: var(--accent);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.25rem 0.5rem;
  border-radius: 9999px;
}
.product-card .meta {
  margin-top: 0.75rem;
}
.product-card .line {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
}
.product-card .name {
  margin-top: 0.25rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--foreground);
  line-height: 1.35;
}
.product-card .price {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--primary);
}

/* ── Insurance how it works ─────────────────────────────────── */
.insurance-steps {
  counter-reset: step;
}
.insurance-steps li {
  display: flex;
  gap: 1rem;
}
.insurance-steps .step-num {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: var(--accent);
  color: #fff;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 0.875rem;
  font-weight: 600;
}

/* ── Learn mmHg cards ───────────────────────────────────────── */
.mmhg-card {
  border: 1px solid var(--border);
  background: var(--card);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.mmhg-card .num {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--primary);
}
.mmhg-card .num span {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--muted-foreground);
}
.mmhg-card .label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--accent);
  margin-top: 0.25rem;
}
.mmhg-card .desc {
  font-size: 0.75rem;
  line-height: 1.5;
  color: var(--muted-foreground);
  margin-top: 0.375rem;
}

/* ── Testimonials ───────────────────────────────────────────── */
.testimonial {
  border: 1px solid var(--border);
  background: var(--background);
  border-radius: 1rem;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
}
.testimonial blockquote {
  flex: 1;
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: rgba(31,35,53,0.85);
}
.testimonial figcaption {
  margin-top: 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted-foreground);
}

/* ── Footer ─────────────────────────────────────────────────── */
.footer-trust {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--card);
}
.footer-trust .icon-box {
  background: var(--secondary);
  color: var(--primary);
  border-radius: 0.5rem;
  padding: 0.625rem;
}
.footer-main {
  background: var(--primary);
  color: var(--primary-foreground);
}
.footer-main a {
  color: rgba(249,247,244,0.8);
}
.footer-main a:hover {
  color: #fff;
}
.footer-main h4 {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgba(249,247,244,0.6);
  margin-bottom: 0.75rem;
}
.footer-main ul li {
  margin-bottom: 0.5rem;
}
.footer-main ul a {
  font-size: 0.875rem;
}
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.15);
  padding-top: 1.5rem;
  margin-top: 3rem;
  font-size: 0.75rem;
  color: rgba(249,247,244,0.6);
}

/* ── Aspect ratio helpers ───────────────────────────────────── */
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-\[3\/4\] { aspect-ratio: 3 / 4; }
.object-cover { object-fit: cover; }
.overflow-hidden { overflow: hidden; }
.rounded-2xl { border-radius: 1rem; }
.w-full { width: 100%; }
.h-full { height: 100%; }

/* ── Misc utilities ─────────────────────────────────────────── */
.relative { position: relative; }
.absolute { position: absolute; }
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.z-10 { z-index: 10; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* ── WooCommerce compatibility tweaks ───────────────────────── */
.woocommerce img, .woocommerce-page img {
  height: auto;
  max-width: 100%;
}
.woocommerce .woocommerce-breadcrumb {
  margin: 1rem 0;
  font-size: 0.875rem;
  color: var(--muted-foreground);
}
.woocommerce .woocommerce-breadcrumb a {
  color: var(--primary);
}
.woocommerce .woocommerce-breadcrumb a:hover {
  color: var(--accent);
}

/* ── WordPress alignments ───────────────────────────────────── */
.alignwide {
  max-width: var(--max-w);
  margin-left: auto;
  margin-right: auto;
}
.alignfull {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
}

/* ── Chunk 3: Single Product ────────────────────────────────── */
.single-product .woocommerce-product-gallery {
  max-width: 520px;
}
.single-product .woocommerce-product-gallery img {
  border-radius: var(--radius, 0.75rem);
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.single-product .product_title {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 2rem;
  font-weight: 500;
  color: var(--primary);
  line-height: 1.15;
  margin-bottom: .5rem;
}
.single-product .price {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--primary);
  margin: .75rem 0 1.25rem;
}
.single-product .price del {
  color: var(--muted-foreground);
  font-weight: 400;
  font-size: 1.1rem;
  margin-right: .5rem;
}
.single-product .price ins {
  text-decoration: none;
  color: var(--accent);
}
.single-product .woocommerce-product-details__short-description {
  font-size: .95rem;
  line-height: 1.7;
  color: var(--muted-foreground);
  margin-bottom: 1.5rem;
}
.single-product form.cart .quantity input {
  width: 4.5rem;
  padding: .65rem .5rem;
  border: 2px solid var(--border, #e5e2dc);
  border-radius: 999px;
  text-align: center;
  font-size: .95rem;
}
.single-product form.cart .button,
.single-product .single_add_to_cart_button {
  display: inline-block;
  background: var(--accent);
  color: #fff !important;
  border: none;
  border-radius: 999px;
  padding: .85rem 2.25rem !important;
  font-size: .95rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}
.single-product form.cart .button:hover,
.single-product .single_add_to_cart_button:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
  background: var(--accent);
}
.single-product .product_meta {
  font-size: .8rem;
  color: var(--muted-foreground);
  border-top: 1px solid var(--border, #e5e2dc);
  padding-top: 1rem;
  margin-top: 1.5rem;
}
.single-product .woocommerce-tabs ul.tabs {
  border-bottom: 2px solid var(--border, #e5e2dc);
  padding: 0;
}
.single-product .woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0 1.5rem 0 0 !important;
  padding: 0 !important;
}
.single-product .woocommerce-tabs ul.tabs li a {
  font-weight: 600;
  font-size: .9rem;
  color: var(--muted-foreground);
  padding: .75rem 0;
  display: inline-block;
}
.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--primary);
  border-bottom: 2px solid var(--accent);
}
.single-product .woocommerce-tabs .panel {
  padding: 1.5rem 0;
  font-size: .95rem;
  line-height: 1.7;
}
.related.products > h2,
.single-product .up-sells > h2 {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--primary);
  margin: 2.5rem 0 1.25rem;
}

/* ── Chunk 3: Cart ──────────────────────────────────────────── */
.woocommerce-cart .shop_table {
  border: none;
  border-radius: var(--radius, .75rem);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.woocommerce-cart .shop_table th {
  background: var(--primary);
  color: #fff;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: .9rem 1rem;
}
.woocommerce-cart .shop_table td {
  padding: 1rem;
  border-bottom: 1px solid var(--border, #e5e2dc);
  font-size: .92rem;
}
.woocommerce-cart .product-name a {
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
}
.woocommerce-cart .product-thumbnail img {
  border-radius: .5rem;
  max-width: 64px;
}
.woocommerce-cart .cart-collaterals .cart_totals {
  background: #fff;
  border-radius: var(--radius, .75rem);
  padding: 1.5rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 1.3rem;
  color: var(--primary);
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart .actions .button,
.woocommerce #respond input#submit,
.woocommerce button.button,
.woocommerce input.button {
  background: var(--accent) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: .8rem 2rem !important;
  font-weight: 700 !important;
  font-size: .92rem !important;
  border: none !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  width: 100%;
  text-align: center;
  display: block;
  padding: 1rem 2rem !important;
  font-size: 1rem !important;
}

/* ── Chunk 3: Checkout ──────────────────────────────────────── */
.woocommerce-checkout h3 {
  font-family: var(--font-display, 'Fraunces', serif);
  color: var(--primary);
  font-size: 1.35rem;
  font-weight: 500;
}
.woocommerce-checkout .form-row label {
  font-size: .82rem;
  font-weight: 600;
  color: var(--primary);
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  border: 2px solid var(--border, #e5e2dc);
  border-radius: .5rem;
  padding: .7rem .9rem;
  font-size: .92rem;
  width: 100%;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus {
  border-color: var(--accent);
  outline: none;
}
.woocommerce-checkout #order_review {
  background: #fff;
  border-radius: var(--radius, .75rem);
  padding: 1.5rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.woocommerce-checkout #place_order {
  background: var(--accent) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 1rem 2.5rem !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  width: 100%;
}
.woocommerce-checkout #place_order:hover {
  transform: scale(1.01);
}

/* ── Chunk 3: Insurance page ────────────────────────────────── */
.ins-hero {
  background: var(--primary);
  color: #fff;
  padding: 4rem 1.5rem;
  text-align: center;
  border-radius: 0 0 var(--radius, .75rem) var(--radius, .75rem);
}
.ins-hero h1 {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 2.6rem;
  font-weight: 500;
  margin: .5rem 0 1rem;
}
.ins-hero .ins-kicker {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  opacity: .75;
}
.ins-hero p {
  max-width: 36rem;
  margin: 0 auto 1.5rem;
  opacity: .8;
  font-size: .95rem;
  line-height: 1.7;
}
.ins-section {
  max-width: 48rem;
  margin: 0 auto;
  padding: 3rem 1.5rem;
}
.ins-section h2 {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 1.7rem;
  font-weight: 500;
  color: var(--primary);
  text-align: center;
  margin-bottom: .5rem;
}
.ins-section > p.ins-sub {
  text-align: center;
  color: var(--muted-foreground);
  font-size: .9rem;
  margin-bottom: 2rem;
}
.ins-cards {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .ins-cards { grid-template-columns: 1fr 1fr; } }
.ins-card {
  background: #fff;
  border: 1px solid var(--border, #e5e2dc);
  border-radius: var(--radius, .75rem);
  padding: 1.25rem 1.5rem;
}
.ins-card h3 {
  font-size: 1.05rem;
  color: var(--primary);
  margin-bottom: .35rem;
}
.ins-card p {
  font-size: .88rem;
  color: var(--muted-foreground);
  line-height: 1.65;
  margin: 0;
}
.ins-steps { counter-reset: step; }
.ins-step {
  display: flex;
  gap: 1rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--border, #e5e2dc);
}
.ins-step::before {
  counter-increment: step;
  content: counter(step);
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ins-step h3 { font-size: 1rem; color: var(--primary); margin: 0 0 .25rem; }
.ins-step p { font-size: .88rem; color: var(--muted-foreground); margin: 0; line-height: 1.6; }
.ins-cta {
  text-align: center;
  padding: 3rem 1.5rem 4rem;
}
.ins-cta h2 {
  font-family: var(--font-display, 'Fraunces', serif);
  font-size: 1.7rem;
  color: var(--primary);
  margin-bottom: 1.25rem;
}

/* ── Chunk 3 hotfix: cart thumbnail blowup ───────────────────── */
.woocommerce-cart table.cart td.product-thumbnail,
.woocommerce-cart table.cart td.product-thumbnail a {
  width: 80px !important;
  max-width: 80px !important;
  display: block;
}
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-cart table.cart td.product-thumbnail a img {
  width: 80px !important;
  max-width: 80px !important;
  height: auto !important;
  min-width: 0 !important;
  border-radius: .5rem;
}
.woocommerce-cart form.woocommerce-cart-form {
  width: 58% !important;
  float: left !important;
}
.woocommerce-cart .cart-collaterals {
  width: 38% !important;
  float: right !important;
  clear: right;
}
@media (max-width: 768px) {
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals {
    width: 100% !important;
    float: none !important;
  }
  .woocommerce-cart table.cart td.product-thumbnail,
  .woocommerce-cart table.cart td.product-thumbnail a,
  .woocommerce-cart table.cart td.product-thumbnail img {
    width: 64px !important;
    max-width: 64px !important;
  }
}


/* ── Chunk 3 hotfix v2: hard-stop cart thumbnail blowup ─────── */
.woocommerce-cart form.woocommerce-cart-form table.cart {
  table-layout: fixed !important;
}
.woocommerce-cart form.woocommerce-cart-form table.cart th.product-thumbnail,
.woocommerce-cart form.woocommerce-cart-form table.cart td.product-thumbnail,
.woocommerce-cart table.cart th.product-thumbnail,
.woocommerce-cart table.cart td.product-thumbnail {
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px !important;
  overflow: hidden !important;
  vertical-align: middle !important;
}
.woocommerce-cart form.woocommerce-cart-form table.cart td.product-thumbnail a,
.woocommerce-cart table.cart td.product-thumbnail a {
  display: block !important;
  width: 80px !important;
  max-width: 80px !important;
  max-height: 80px !important;
  overflow: hidden !important;
  margin: 0 auto !important;
  line-height: 0 !important;
}
.woocommerce-cart form.woocommerce-cart-form table.cart td.product-thumbnail img,
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-cart table.cart img.attachment-woocommerce_thumbnail,
.woocommerce-cart table.cart img.size-woocommerce_thumbnail {
  display: block !important;
  width: 80px !important;
  min-width: 80px !important;
  max-width: 80px !important;
  height: 80px !important;
  max-height: 80px !important;
  object-fit: contain !important;
  margin: 0 auto !important;
  border-radius: .5rem !important;
}
@media (max-width: 768px) {
  .woocommerce-cart form.woocommerce-cart-form table.cart {
    table-layout: auto !important;
  }
  .woocommerce-cart form.woocommerce-cart-form table.cart td.product-thumbnail,
  .woocommerce-cart table.cart td.product-thumbnail {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
  }
  .woocommerce-cart form.woocommerce-cart-form table.cart td.product-thumbnail a,
  .woocommerce-cart form.woocommerce-cart-form table.cart td.product-thumbnail img,
  .woocommerce-cart table.cart td.product-thumbnail a,
  .woocommerce-cart table.cart td.product-thumbnail img {
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    height: 64px !important;
    max-height: 64px !important;
  }
}

/* ── Logo asset safety clamp (2026-08-26) ──────────────────── */
/* logo.png was 1311x415 natural size; now 320x101. Clamp prevents */
/* any natural-size blowup if width attrs are ever dropped.       */
.header-logo img,
.site-footer img[alt='JOBST'],
img[src*='assets/images/logo'] {
  max-width: 160px !important;
  height: auto !important;
}

/* ── Chunk 4: blog + my-account (2026-08-26) ─────────────────── */

/* Blog cards (archive/search) */
.post-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
.post-card {
  background: #fff;
  border-radius: var(--radius, .75rem);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
  display: flex;
  flex-direction: column;
}
.post-card-thumb img {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
}
.post-card-body { padding: 1.25rem 1.5rem 1.5rem; }
.post-card-title {
  font-family: var(--font-display, inherit);
  font-size: 1.25rem;
  font-weight: 500;
  margin-bottom: .375rem;
}
.post-card-title a { color: var(--primary); text-decoration: none; }
.post-card-title a:hover { text-decoration: underline; }
.post-card-excerpt { color: var(--muted, #6b7280); font-size: .9375rem; margin: .5rem 0 .75rem; }
.post-card-more { color: var(--primary); font-weight: 600; font-size: .875rem; text-decoration: none; }
.post-card-more:hover { text-decoration: underline; }

/* Single post */
.single-post-wrap { max-width: 52rem; }
.post-hero-img { width: 100%; height: auto; border-radius: var(--radius, .75rem); display: block; }
.post-meta { font-size: .875rem; }
.post-nav { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.post-nav a { color: var(--primary); font-weight: 600; text-decoration: none; }
.post-nav a:hover { text-decoration: underline; }

/* Pagination */
.pagination .nav-links,
.page-links { display: flex; gap: .5rem; flex-wrap: wrap; }
.pagination .page-numbers,
.page-links .post-page-numbers {
  display: inline-block;
  padding: .375rem .75rem;
  border-radius: .375rem;
  background: #fff;
  color: var(--primary);
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(0,0,0,.06);
}
.pagination .page-numbers.current {
  background: var(--primary);
  color: #fff;
}

/* Search form */
.search-form { display: flex; gap: .5rem; max-width: 28rem; }
.search-form .search-field {
  flex: 1;
  padding: .625rem .875rem;
  border: 1px solid #d1d5db;
  border-radius: .5rem;
  font-size: 1rem;
}
.search-form .search-submit {
  padding: .625rem 1.25rem;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: .5rem;
  font-weight: 600;
  cursor: pointer;
}

/* 404 */
.not-found-wrap { max-width: 40rem; }
.btn-primary {
  display: inline-block;
  padding: .75rem 1.5rem;
  background: var(--primary);
  color: #fff !important;
  border-radius: .5rem;
  font-weight: 600;
  text-decoration: none;
}

/* My Account */
.woocommerce-account .woocommerce {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
  flex: 0 0 240px;
  background: #fff;
  border-radius: var(--radius, .75rem);
  padding: 1rem 0;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation-link a {
  display: block;
  padding: .625rem 1.25rem;
  color: var(--primary);
  text-decoration: none;
  font-weight: 500;
  border-left: 3px solid transparent;
}
.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover {
  background: rgba(0,0,0,.04);
  border-left-color: var(--primary);
}
.woocommerce-account .woocommerce-MyAccount-content { flex: 1; min-width: 0; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table,
.woocommerce-account .woocommerce-MyAccount-content table {
  width: 100%;
  background: #fff;
  border-radius: var(--radius, .75rem);
  border-collapse: collapse;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.woocommerce-account .woocommerce-MyAccount-content th,
.woocommerce-account .woocommerce-MyAccount-content td {
  padding: .75rem 1rem;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
}
.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-account form.lost_reset_password,
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account form.woocommerce-form {
  background: #fff;
  border-radius: var(--radius, .75rem);
  padding: 1.5rem;
  max-width: 32rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.woocommerce-account form .form-row { margin-bottom: 1rem; }
.woocommerce-account form label { display: block; font-weight: 500; margin-bottom: .25rem; }
.woocommerce-account form .input-text,
.woocommerce-account form input[type='text'],
.woocommerce-account form input[type='email'],
.woocommerce-account form input[type='password'] {
  width: 100%;
  padding: .625rem .875rem;
  border: 1px solid #d1d5db;
  border-radius: .5rem;
  font-size: 1rem;
  box-sizing: border-box;
}
.woocommerce-account form .button {
  padding: .625rem 1.5rem;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: .5rem;
  font-weight: 600;
  cursor: pointer;
}
@media (max-width: 768px) {
  .woocommerce-account .woocommerce { flex-direction: column; }
  .woocommerce-account .woocommerce-MyAccount-navigation { flex: none; width: 100%; }
}

/* ── Footer responsive grid fix (2026-08-27) — missing variants used by footer.php ── */
@media (min-width: 640px) {
  .sm\:flex-row { flex-direction: row; }
}
@media (min-width: 768px) {
  .md\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .md\:col-span-2 { grid-column: span 2 / span 2; }
  .md\:col-span-3 { grid-column: span 3 / span 3; }
  .md\:col-span-4 { grid-column: span 4 / span 4; }
}

/* ── Missing utility classes audit fix (2026-08-27) ── */
.flex-wrap { flex-wrap: wrap; }
.w-auto { width: auto; }
.h-10 { height: 2.5rem; }
.gap-2\.5 { gap: 0.625rem; }
.gap-y-8 { row-gap: 2rem; }
.ml-4 { margin-left: 1rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mt-0\.5 { margin-top: 0.125rem; }
.pb-3 { padding-bottom: 0.75rem; }
.break-all { word-break: break-all; }
.text-foreground { color: var(--foreground); }
.text-primary-foreground\/60 { color: rgba(249,247,244,0.6); }
.text-primary-foreground\/70 { color: rgba(249,247,244,0.7); }
.text-primary-foreground\/80 { color: rgba(249,247,244,0.8); }
.text-white\/85 { color: rgba(255,255,255,0.85); }
.bg-secondary\/70 { background-color: rgba(235,228,219,0.7); }
.hover\:underline:hover { text-decoration: underline; }
.space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.75rem; }
.space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem; }
@media (min-width: 640px) {
  .sm\:inline-flex { display: inline-flex; }
}
@media (min-width: 768px) {
  .md\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
}


/* ── Cart page redesign (2026-08-27) ── */
.woocommerce-cart .cart-page-header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 0 0 1.5rem; flex-wrap: wrap; }
.woocommerce-cart .cart-page-header h1 { font-size: 1.9rem; color: var(--primary); margin: 0; }
.woocommerce-cart .cart-continue-link { color: var(--accent); text-decoration: none; font-size: .9rem; font-weight: 600; }
.woocommerce-cart .cart-continue-link:hover { text-decoration: underline; }
.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0,1fr); gap: 1.75rem; align-items: start; }
@media (min-width: 992px) {
  .woocommerce-cart .woocommerce { grid-template-columns: minmax(0,1.65fr) minmax(320px,1fr); }
  .woocommerce-cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
}
.woocommerce-cart form.woocommerce-cart-form { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 1.25rem; box-shadow: 0 1px 3px rgba(31,35,53,.06); }
.woocommerce-cart table.shop_table.cart { border: 0; margin: 0; width: 100%; border-collapse: separate; border-spacing: 0; }
.woocommerce-cart table.cart thead th { background: var(--primary); color: var(--primary-foreground); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; padding: .7rem .9rem; border: 0; text-align: left; }
.woocommerce-cart table.cart thead th:first-child { border-radius: 8px 0 0 8px; }
.woocommerce-cart table.cart thead th:last-child { border-radius: 0 8px 8px 0; }
.woocommerce-cart table.cart tbody tr.cart_item td { padding: 1rem .9rem; border-top: 1px solid var(--border); vertical-align: middle; }
.woocommerce-cart table.cart tbody tr.cart_item:first-child td { border-top: 0; }
.woocommerce-cart td.product-remove { width: 44px; }
.woocommerce-cart a.remove { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #f4efec; color: var(--muted-foreground); font-size: 1.05rem; line-height: 1; text-decoration: none; transition: all .15s; }
.woocommerce-cart a.remove:hover { background: var(--destructive); color: var(--destructive-foreground); }
.woocommerce-cart td.product-thumbnail { width: 96px; }
.woocommerce-cart td.product-thumbnail img { border-radius: 8px; border: 1px solid var(--border); display: block; }
.woocommerce-cart td.product-name a { color: var(--primary); font-weight: 600; font-size: .95rem; line-height: 1.4; text-decoration: none; }
.woocommerce-cart td.product-name a:hover { text-decoration: underline; }
.woocommerce-cart .cart_item dl.variation { display: none; }
.woocommerce-cart td.product-price, .woocommerce-cart td.product-subtotal { white-space: nowrap; }
.woocommerce-cart td.product-subtotal { font-weight: 700; color: var(--primary); }
.woocommerce-cart .product-quantity input.qty { width: 64px; height: 40px; text-align: center; border: 1px solid var(--input); border-radius: 8px; background: #fff; -moz-appearance: textfield; appearance: textfield; }
.woocommerce-cart .product-quantity input.qty::-webkit-outer-spin-button, .woocommerce-cart .product-quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce-cart table.cart td.actions { padding: 1rem 0 0; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; }
.woocommerce-cart td.actions .coupon { display: flex; gap: .5rem; flex: 1 1 300px; }
.woocommerce-cart td.actions .coupon input#coupon_code { flex: 1 1 auto; min-width: 0; height: 42px; padding: 0 1rem; border: 1px solid var(--input); border-radius: 999px; background: #fff; }
.woocommerce-cart td.actions .button { height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 0 1.35rem; font-weight: 600; font-size: .88rem; cursor: pointer; }
.woocommerce-cart td.actions button[name="apply_coupon"] { background: var(--accent); color: var(--accent-foreground); border: 0; }
.woocommerce-cart td.actions button[name="apply_coupon"]:hover { background: #a85430; }
.woocommerce-cart td.actions button[name="update_cart"] { background: transparent; border: 1.5px solid var(--primary); color: var(--primary); }
.woocommerce-cart td.actions button[name="update_cart"]:hover { background: var(--primary); color: var(--primary-foreground); }
.woocommerce-cart td.actions button[name="update_cart"]:disabled { opacity: .45; cursor: not-allowed; }
.woocommerce-cart .cart_totals { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; box-shadow: 0 1px 3px rgba(31,35,53,.06); }
.woocommerce-cart .cart_totals h2 { font-size: 1.3rem; color: var(--primary); margin: 0 0 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--border); }
.woocommerce-cart .cart_totals table.shop_table { width: 100%; border: 0; margin: 0; }
.woocommerce-cart .cart_totals table.shop_table th { text-align: left; font-weight: 600; font-size: .9rem; padding: .65rem 0; border: 0; }
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; padding: .65rem 0; border: 0; }
.woocommerce-cart .cart_totals table.shop_table tr { border-bottom: 1px solid var(--border); }
.woocommerce-cart .cart_totals tr.order-total th, .woocommerce-cart .cart_totals tr.order-total td { font-size: 1.15rem; font-weight: 700; color: var(--primary); border-bottom: 0; padding-top: .85rem; }
.woocommerce-cart #shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-cart .woocommerce-shipping-destination { font-size: .82rem; color: var(--muted-foreground); margin: .35rem 0 0; }
.woocommerce-cart .shipping-calculator-button { color: var(--accent); font-size: .85rem; font-weight: 600; text-decoration: none; display: inline-block; margin-top: .35rem; }
.woocommerce-cart .shipping-calculator-button::before { content: none; }
.woocommerce-cart .shipping-calculator-button:hover { text-decoration: underline; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 1rem 0 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; background: var(--accent); color: var(--accent-foreground); border-radius: 999px; font-size: 1.05rem; font-weight: 700; text-decoration: none; transition: background .15s; margin: 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover { background: #a85430; }
.woocommerce-cart .cart-trust-badges { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 1rem 1.25rem; display: flex; flex-direction: column; gap: .55rem; }
.woocommerce-cart .cart-trust-item { display: flex; align-items: center; gap: .6rem; font-size: .82rem; color: var(--muted-foreground); }
.woocommerce-cart .cart-trust-item::before { content: ""; flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.woocommerce-cart .wc-empty-cart-message .cart-empty, .woocommerce-cart .woocommerce-info.cart-empty { background: #fff; border: 1px solid var(--border); border-left: 4px solid var(--accent); border-radius: 10px; padding: 1.25rem 1.5rem; color: var(--foreground); }
.woocommerce-cart .return-to-shop .button { display: inline-flex; align-items: center; height: 46px; padding: 0 1.6rem; background: var(--accent); color: var(--accent-foreground); border-radius: 999px; font-weight: 700; text-decoration: none; }
.woocommerce-cart .return-to-shop .button:hover { background: #a85430; }
@media (max-width: 768px) {
  .woocommerce-cart table.cart thead { display: none; }
  .woocommerce-cart table.cart, .woocommerce-cart table.cart tbody, .woocommerce-cart table.cart tr, .woocommerce-cart table.cart td { display: block; width: 100%; }
  .woocommerce-cart tr.cart_item { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; padding: 1rem 0; border-top: 1px solid var(--border); position: relative; }
  .woocommerce-cart tr.cart_item:first-child { border-top: 0; }
  .woocommerce-cart td.product-remove { position: absolute; top: .85rem; right: 0; width: auto; padding: 0; border: 0; }
  .woocommerce-cart td.product-thumbnail { flex: 0 0 72px; width: 72px; padding: 0; border: 0; }
  .woocommerce-cart td.product-name { flex: 1 1 calc(100% - 120px); padding: 0 1.75rem 0 0; border: 0; }
  .woocommerce-cart td.product-price { display: none; }
  .woocommerce-cart td.product-quantity { flex: 0 0 auto; padding: 0; border: 0; }
  .woocommerce-cart td.product-subtotal { margin-left: auto; padding: 0; border: 0; }
  .woocommerce-cart table.cart td.actions { flex-direction: column; align-items: stretch; }
  .woocommerce-cart td.actions .coupon { flex: 1 1 100%; flex-direction: column; }
  .woocommerce-cart td.actions .coupon .button, .woocommerce-cart td.actions > .button { width: 100%; }
  .woocommerce-cart .cart-page-header h1 { font-size: 1.5rem; }
}

/* ── Cart float override (2026-08-27) — neutralize legacy 58/38 float layout, grid owns it ── */
.woocommerce-cart form.woocommerce-cart-form { width: auto !important; float: none !important; }
.woocommerce-cart .cart-collaterals { width: auto !important; float: none !important; clear: none; }
@media (max-width: 991px) {
  .woocommerce-cart form.woocommerce-cart-form, .woocommerce-cart .cart-collaterals { width: 100% !important; }
}


/* ── Cart polish round 2 (2026-08-27) ── */
.woocommerce-cart .cart_totals table.shop_table th { background: transparent !important; color: var(--foreground) !important; text-transform: none; letter-spacing: 0; }
.woocommerce-cart .cart_totals tr.order-total th { color: var(--primary) !important; }
.woocommerce-cart td.actions .coupon { flex: 1 1 300px; display: flex; gap: .5rem; }
.woocommerce-cart #coupon_code, .woocommerce-cart td.actions .coupon input#coupon_code { width: auto !important; max-width: none !important; flex: 1 1 auto !important; }
.woocommerce-cart td.actions button[name="update_cart"], .woocommerce-cart td.actions button[name="update_cart"]:disabled, .woocommerce-cart td.actions button[name="update_cart"][disabled] { background: transparent !important; border: 1.5px solid var(--primary) !important; color: var(--primary) !important; opacity: .55; }
.woocommerce-cart td.actions button[name="update_cart"]:not(:disabled):hover { background: var(--primary) !important; color: var(--primary-foreground) !important; opacity: 1; }
.woocommerce-cart .shipping-calculator-button::before, .woocommerce-cart .shipping-calculator-button::after { content: none !important; }
.woocommerce-cart .cart-trust-badges { margin-top: 1rem; }



/* ── Cart reference redesign (2026-08-27, staging) ── */
.woocommerce-cart {
  --jobst-cart-bg: #f5f5f4;
  --jobst-cart-card: #ffffff;
  --jobst-cart-text: #171717;
  --jobst-cart-muted: #666666;
  --jobst-cart-border: #dddddd;
  --jobst-cart-soft: #e8e8e8;
  --jobst-cart-yellow: #ffe600;
  --jobst-cart-yellow-hover: #f0dc00;
  background: var(--jobst-cart-bg);
}
.woocommerce-cart .container.py-14 { padding-top: 2rem; padding-bottom: 4rem; }
.woocommerce-cart .cart-page-header { align-items: center; margin: 0 0 2rem; }
.woocommerce-cart .cart-page-header h1 {
  color: var(--jobst-cart-text);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1;
  text-transform: uppercase;
}
.woocommerce-cart .cart-continue-link {
  color: var(--jobst-cart-text);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.woocommerce-cart .woocommerce {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}
@media (min-width: 992px) {
  .woocommerce-cart .woocommerce { grid-template-columns: minmax(0, 1.55fr) minmax(340px, .8fr); }
  .woocommerce-cart .woocommerce-notices-wrapper,
  .woocommerce-cart .cross-sells { grid-column: 1 / -1; }
}
.woocommerce-cart form.woocommerce-cart-form {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.woocommerce-cart table.shop_table.cart {
  width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 1rem !important;
  background: transparent !important;
}
.woocommerce-cart table.cart thead { display: none !important; }
.woocommerce-cart table.cart tbody tr.cart_item {
  background: var(--jobst-cart-card);
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.woocommerce-cart table.cart tbody tr.cart_item td {
  background: var(--jobst-cart-card) !important;
  border: 0 !important;
  padding: 1.15rem 1rem !important;
  vertical-align: middle;
}
.woocommerce-cart table.cart tbody tr.cart_item td:first-child { border-radius: 10px 0 0 10px; }
.woocommerce-cart table.cart tbody tr.cart_item td:last-child { border-radius: 0 10px 10px 0; }
.woocommerce-cart td.product-remove { width: 52px; text-align: center; }
.woocommerce-cart a.remove {
  width: 30px;
  height: 30px;
  background: transparent;
  border: 1px solid var(--jobst-cart-border);
  border-radius: 50%;
  color: var(--jobst-cart-text);
  font-size: 1rem;
}
.woocommerce-cart a.remove:hover {
  background: var(--jobst-cart-text);
  border-color: var(--jobst-cart-text);
  color: #fff;
}
.woocommerce-cart td.product-thumbnail { width: 132px; }
.woocommerce-cart td.product-thumbnail a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 112px;
  height: 112px;
  margin: 0 auto;
  overflow: hidden;
  background: var(--jobst-cart-soft);
  border-radius: 6px;
}
.woocommerce-cart td.product-thumbnail img,
.woocommerce-cart table.cart img.attachment-woocommerce_thumbnail,
.woocommerce-cart table.cart img.size-woocommerce_thumbnail {
  width: 100% !important;
  max-width: 112px !important;
  height: 112px !important;
  margin: 0 auto;
  object-fit: contain;
  border: 0 !important;
  border-radius: 0 !important;
}
.woocommerce-cart td.product-name { min-width: 220px; }
.woocommerce-cart td.product-name a {
  color: var(--jobst-cart-text) !important;
  font-size: .92rem !important;
  font-weight: 800 !important;
  letter-spacing: -.01em;
  line-height: 1.35;
  text-decoration: none;
  text-transform: uppercase;
}
.woocommerce-cart td.product-name a:hover { text-decoration: underline; }
.woocommerce-cart .cart_item dl.variation {
  display: block !important;
  margin: .35rem 0 0;
  color: var(--jobst-cart-muted);
  font-size: .78rem;
  line-height: 1.4;
}
.woocommerce-cart .cart_item dl.variation dt,
.woocommerce-cart .cart_item dl.variation dd { display: inline; margin: 0; padding: 0; font-weight: 500; }
.woocommerce-cart .cart_item dl.variation dt::after { content: ': '; }
.woocommerce-cart td.product-price { display: none !important; }
.woocommerce-cart td.product-quantity { width: 136px; }
.woocommerce-cart .product-quantity .quantity {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 116px;
  height: 42px;
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--jobst-cart-text);
  border-radius: 0;
}
.woocommerce-cart .product-quantity input.qty {
  width: 42px !important;
  height: 40px !important;
  padding: 0 !important;
  border: 0 !important;
  border-right: 1px solid var(--jobst-cart-border) !important;
  border-left: 1px solid var(--jobst-cart-border) !important;
  border-radius: 0 !important;
  color: var(--jobst-cart-text);
  font-weight: 800;
  text-align: center;
}
.woocommerce-cart .jobst-qty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 40px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--jobst-cart-text);
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
}
.woocommerce-cart .jobst-qty-btn:hover { background: var(--jobst-cart-bg); }
.woocommerce-cart td.product-subtotal {
  width: 120px;
  color: var(--jobst-cart-text) !important;
  font-size: .95rem !important;
  font-weight: 800 !important;
  text-align: right;
}
.woocommerce-cart table.cart td.actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: space-between;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.woocommerce-cart td.actions .coupon {
  display: flex;
  flex: 1 1 360px;
  gap: .5rem;
  padding: .75rem;
  background: var(--jobst-cart-card);
  border: 1px solid var(--jobst-cart-border);
  border-radius: 10px;
}
.woocommerce-cart td.actions .coupon input#coupon_code {
  flex: 1 1 auto;
  min-width: 0;
  height: 44px;
  padding: 0 1rem;
  border: 1px solid var(--jobst-cart-text) !important;
  border-radius: 0 !important;
  background: #fff;
  color: var(--jobst-cart-text);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.woocommerce-cart td.actions .button {
  height: 44px;
  padding: 0 1.35rem;
  border-radius: 0 !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.woocommerce-cart td.actions button[name="apply_coupon"] {
  background: var(--jobst-cart-text) !important;
  border: 1px solid var(--jobst-cart-text) !important;
  color: #fff !important;
}
.woocommerce-cart td.actions button[name="apply_coupon"]:hover { background: #000 !important; }
.woocommerce-cart td.actions button[name="update_cart"],
.woocommerce-cart td.actions button[name="update_cart"]:disabled,
.woocommerce-cart td.actions button[name="update_cart"][disabled] {
  background: transparent !important;
  border: 1px solid var(--jobst-cart-text) !important;
  color: var(--jobst-cart-text) !important;
  opacity: 1;
}
.woocommerce-cart td.actions button[name="update_cart"]:not(:disabled):hover {
  background: var(--jobst-cart-text) !important;
  color: #fff !important;
}
.woocommerce-cart .cart-collaterals { width: auto !important; float: none !important; clear: none; }
@media (min-width: 992px) {
  .woocommerce-cart .cart-collaterals { position: sticky; top: 96px; }
}
.woocommerce-cart .cart_totals {
  background: var(--jobst-cart-card) !important;
  border: 1px solid var(--jobst-cart-border) !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.04) !important;
  padding: 1.5rem !important;
}
.woocommerce-cart .cart_totals h2 {
  margin: 0 0 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--jobst-cart-border);
  color: var(--jobst-cart-text) !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase !important;
}
.woocommerce-cart .cart_totals table.shop_table { width: 100%; border: 0; margin: 0; }
.woocommerce-cart .cart_totals table.shop_table th {
  padding: .7rem 0;
  border: 0;
  background: transparent !important;
  color: var(--jobst-cart-muted) !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  letter-spacing: .06em;
  text-align: left;
  text-transform: uppercase !important;
}
.woocommerce-cart .cart_totals table.shop_table td {
  padding: .7rem 0;
  border: 0;
  color: var(--jobst-cart-text);
  font-size: .9rem;
  font-weight: 700;
  text-align: right;
}
.woocommerce-cart .cart_totals table.shop_table tr { border-bottom: 1px solid var(--jobst-cart-border); }
.woocommerce-cart .cart_totals tr.order-total th,
.woocommerce-cart .cart_totals tr.order-total td {
  padding-top: 1rem !important;
  border-bottom: 0;
  color: var(--jobst-cart-text) !important;
  font-size: 1.25rem !important;
  font-weight: 900 !important;
}
.woocommerce-cart #shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-cart #shipping_method li { margin: 0 0 .35rem; color: var(--jobst-cart-text); font-size: .86rem; font-weight: 600; }
.woocommerce-cart .woocommerce-shipping-destination { margin-top: .35rem; color: var(--jobst-cart-muted); font-size: .8rem; }
.woocommerce-cart .shipping-calculator-button {
  display: inline-block;
  margin-top: .35rem;
  color: var(--jobst-cart-text) !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  letter-spacing: .05em;
  text-decoration: underline;
  text-transform: uppercase;
}
.woocommerce-cart .shipping-calculator-button::before,
.woocommerce-cart .shipping-calculator-button::after { content: none !important; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 1rem 0 0; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button.alt {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 54px;
  margin: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--jobst-cart-yellow) !important;
  color: var(--jobst-cart-text) !important;
  font-size: .92rem !important;
  font-weight: 900 !important;
  letter-spacing: .06em;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button.alt:hover { background: var(--jobst-cart-yellow-hover) !important; }
.woocommerce-cart .cart-trust-badges {
  display: flex;
  flex-direction: column;
  gap: .55rem;
  margin-top: 1rem;
  padding: 1rem;
  background: var(--jobst-cart-card);
  border: 1px solid var(--jobst-cart-border);
  border-radius: 10px;
}
.woocommerce-cart .cart-trust-item {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: var(--jobst-cart-muted);
  font-size: .78rem;
  line-height: 1.4;
}
.woocommerce-cart .cart-trust-item::before {
  content: "";
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border: 1px solid var(--jobst-cart-text);
  border-radius: 50%;
  background: var(--jobst-cart-yellow);
}
.woocommerce-cart .cross-sells {
  margin-top: 1rem;
  padding-top: 2rem;
  border-top: 1px solid var(--jobst-cart-border);
}
.woocommerce-cart .cross-sells > h2 {
  margin: 0 0 1.25rem;
  color: var(--jobst-cart-text);
  font-size: 1.15rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.woocommerce-cart .cross-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
}
@media (min-width: 768px) {
  .woocommerce-cart .cross-sells ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.woocommerce-cart .cross-sells ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 1rem;
  background: var(--jobst-cart-card);
  border: 1px solid var(--jobst-cart-border);
  border-radius: 10px;
  text-align: center;
}
.woocommerce-cart .cross-sells ul.products li.product img {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  height: 180px !important;
  margin: 0 0 1rem;
  object-fit: contain;
  background: var(--jobst-cart-soft);
  border-radius: 6px;
}
.woocommerce-cart .cross-sells ul.products li.product .woocommerce-loop-product__title {
  color: var(--jobst-cart-text);
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.35;
  text-transform: uppercase;
}
.woocommerce-cart .cross-sells ul.products li.product .price { color: var(--jobst-cart-text); font-size: .9rem; font-weight: 800; }
.woocommerce-cart .cross-sells ul.products li.product .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-top: .75rem;
  padding: 0 1rem;
  border: 1px solid var(--jobst-cart-text);
  border-radius: 0;
  background: #fff;
  color: var(--jobst-cart-text);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.woocommerce-cart .cross-sells ul.products li.product .button:hover { background: var(--jobst-cart-text); color: #fff; }
.woocommerce-cart .wc-empty-cart-message .cart-empty,
.woocommerce-cart .woocommerce-info.cart-empty {
  background: var(--jobst-cart-card);
  border: 1px solid var(--jobst-cart-border);
  border-left: 4px solid var(--jobst-cart-yellow);
  border-radius: 10px;
  color: var(--jobst-cart-text);
}
.woocommerce-cart .return-to-shop .button {
  background: var(--jobst-cart-yellow) !important;
  border-radius: 0 !important;
  color: var(--jobst-cart-text) !important;
  font-weight: 900 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.woocommerce-cart .return-to-shop .button:hover { background: var(--jobst-cart-yellow-hover) !important; }
@media (max-width: 768px) {
  .woocommerce-cart .container.py-14 { padding-top: 1.25rem; padding-bottom: 3rem; }
  .woocommerce-cart .cart-page-header { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .woocommerce-cart table.shop_table.cart { border-spacing: 0 .75rem !important; }
  .woocommerce-cart table.cart,
  .woocommerce-cart table.cart tbody,
  .woocommerce-cart table.cart tr,
  .woocommerce-cart table.cart td { display: block; width: 100%; }
  .woocommerce-cart tr.cart_item {
    position: relative;
    display: grid !important;
    grid-template-columns: 86px minmax(0,1fr);
    gap: .25rem .9rem;
    padding: 1rem;
    border-radius: 10px;
  }
  .woocommerce-cart table.cart tbody tr.cart_item td {
    padding: 0 !important;
    background: transparent !important;
  }
  .woocommerce-cart table.cart tbody tr.cart_item td:first-child,
  .woocommerce-cart table.cart tbody tr.cart_item td:last-child { border-radius: 0; }
  .woocommerce-cart td.product-remove { position: absolute; top: .75rem; right: .75rem; width: auto; text-align: right; }
  .woocommerce-cart td.product-thumbnail { grid-row: 1 / span 3; width: 86px; }
  .woocommerce-cart td.product-thumbnail a { width: 86px; height: 86px; }
  .woocommerce-cart td.product-thumbnail img { max-width: 86px !important; height: 86px !important; }
  .woocommerce-cart td.product-name { min-width: 0; padding-right: 2rem !important; }
  .woocommerce-cart td.product-price { display: none !important; }
  .woocommerce-cart td.product-quantity { width: auto; }
  .woocommerce-cart .product-quantity .quantity { margin: .5rem 0 0; }
  .woocommerce-cart td.product-subtotal { width: auto; margin-top: .5rem; text-align: left; }
  .woocommerce-cart td.actions .coupon,
  .woocommerce-cart td.actions > .button { flex: 1 1 100%; width: 100%; }
  .woocommerce-cart td.actions .coupon { flex-direction: column; }
  .woocommerce-cart .cart-collaterals { position: static; }
  .woocommerce-cart .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .woocommerce-cart .cross-sells ul.products li.product { padding: .75rem; }
  .woocommerce-cart .cross-sells ul.products li.product img { height: 140px !important; }
}


/* ── Cart reference grid correction (2026-08-27, staging) ── */
/* The cart page header is injected before the form, so it must span both
   grid columns. Otherwise it occupies the left column and pushes the cart
   form into the narrow totals column, causing the crushed title/layout. */
.woocommerce-cart .woocommerce > .cart-page-header,
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}
@media (min-width: 992px) {
  .woocommerce-cart .woocommerce > form.woocommerce-cart-form { grid-column: 1; }
  .woocommerce-cart .woocommerce > .cart-collaterals { grid-column: 2; }
  .woocommerce-cart .woocommerce > .cross-sells { grid-column: 1 / -1; }
}
@media (max-width: 991px) {
  .woocommerce-cart .woocommerce > form.woocommerce-cart-form,
  .woocommerce-cart .woocommerce > .cart-collaterals,
  .woocommerce-cart .woocommerce > .cross-sells { grid-column: 1 / -1; }
}


/* ── Cart reference spacing correction (2026-08-27, staging) ── */
/* Header spans the grid, so its old bottom margin was being added on top of
   the grid gap. Keep title and cart content visually connected. */
.woocommerce-cart .woocommerce {
  row-gap: 1rem;
}
.woocommerce-cart .woocommerce > .cart-page-header {
  margin-bottom: 0;
}
@media (min-width: 992px) {
  .woocommerce-cart .woocommerce { column-gap: 2rem; }
}


/* ── Cart reference width correction (2026-08-27, staging) ── */
/* Give the item list more of the page and reduce fixed-width columns so the
   product title no longer absorbs all remaining space. */
@media (min-width: 992px) {
  .woocommerce-cart .woocommerce {
    grid-template-columns: minmax(0, 7fr) minmax(280px, 3fr);
    column-gap: 1.5rem;
  }
}
.woocommerce-cart table.shop_table.cart { table-layout: fixed; }
.woocommerce-cart table.cart tbody tr.cart_item td { padding: 1rem .75rem !important; }
.woocommerce-cart td.product-remove { width: 44px; }
.woocommerce-cart td.product-thumbnail { width: 104px; }
.woocommerce-cart td.product-thumbnail a {
  width: 92px;
  height: 92px;
}
.woocommerce-cart td.product-thumbnail img,
.woocommerce-cart table.cart img.attachment-woocommerce_thumbnail,
.woocommerce-cart table.cart img.size-woocommerce_thumbnail {
  max-width: 92px !important;
  height: 92px !important;
}
.woocommerce-cart td.product-name {
  width: auto;
  min-width: 0;
  padding-right: 1rem !important;
}
.woocommerce-cart td.product-quantity { width: 124px; }
.woocommerce-cart .product-quantity .quantity { width: 108px; }
.woocommerce-cart td.product-subtotal { width: 100px; }
@media (max-width: 991px) {
  .woocommerce-cart td.product-thumbnail { width: 96px; }
}
@media (max-width: 768px) {
  .woocommerce-cart td.product-thumbnail { width: 86px; }
  .woocommerce-cart td.product-thumbnail a { width: 86px; height: 86px; }
  .woocommerce-cart td.product-thumbnail img { max-width: 86px !important; height: 86px !important; }
}


/* ── Cart reference alignment correction (2026-08-27, staging) ── */
/* Sticky top offset was pushing the totals card below the item card on short
   carts. Keep both cards aligned at the top of the cart grid. */
@media (min-width: 992px) {
  .woocommerce-cart .cart-collaterals {
    position: static;
    top: auto;
  }
}
.woocommerce-cart td.product-name { text-align: left; }
.woocommerce-cart td.product-subtotal { text-align: right; }


/* ── Cart reference visual polish (2026-08-27, staging) ── */
/* Rebalance columns closer to the reference and force the checkout CTA to
   render as a single-line, full-width yellow bar. */
@media (min-width: 992px) {
  .woocommerce-cart .woocommerce {
    grid-template-columns: minmax(0, 13fr) minmax(340px, 7fr);
  }
}
.woocommerce-cart td.product-name {
  text-align: left !important;
}
.woocommerce-cart td.product-name a {
  font-size: .86rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  text-align: left !important;
}
.woocommerce-cart .product-quantity .quantity {
  width: 96px;
  height: 38px;
}
.woocommerce-cart .product-quantity input.qty {
  width: 36px !important;
  height: 36px !important;
}
.woocommerce-cart .jobst-qty-btn {
  width: 30px;
  height: 36px;
  font-size: 1rem;
}
.woocommerce-cart .cart_totals table.shop_table { table-layout: fixed; }
.woocommerce-cart .cart_totals table.shop_table th {
  width: 46%;
  padding-right: 1rem;
}
.woocommerce-cart .cart_totals table.shop_table td {
  width: 54%;
  padding-left: 1rem;
}
.woocommerce-cart .wc-proceed-to-checkout {
  width: 100%;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button.alt {
  display: flex !important;
  flex: 0 0 100%;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  height: 48px;
  min-height: 48px !important;
  padding: 0 .75rem !important;
  font-size: .82rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
.woocommerce-cart td.actions .coupon { max-width: 520px; }
.woocommerce-cart td.actions .coupon .button,
.woocommerce-cart td.actions > .button {
  min-width: 140px;
  white-space: nowrap !important;
}


/* ── Cart totals width correction (2026-08-27, staging) ── */
/* WooCommerce legacy CSS still sets .cart_totals to 48%, which shrinks the
   totals card inside its grid column and cramps the checkout CTA. */
.woocommerce-cart .cart-collaterals .cart_totals {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* ── Cart auto-update: hide manual Update Cart button when JS stepper is active (2026-08-27) ── */
body.jobst-qty-auto .woocommerce-cart-form button[name="update_cart"] { display: none !important; }

/* =============================================================
   Chunk 5 — Shop/Category, Learn, About, Contact + beige fixes
   v1.0.16
   ============================================================= */

/* ---------- Shared utility spacing (used by new templates) ---------- */
.mx-auto { margin-inline: auto; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-7xl { max-width: 80rem; }
.px-4 { padding-inline: 1rem; }
.py-10 { padding-block: 2.5rem; }
.py-12 { padding-block: 3rem; }
@media (min-width: 640px) {
  .sm\:px-6 { padding-inline: 1.5rem; }
}

.lg-hidden { display: none !important; }

/* ---------- Beige restoration (body already beige; kill rogue white panels) ---------- */
.site-main { background: transparent; }
.single-product .site-main,
.single-product div.product { background: transparent; }
.single-product .summary.entry-summary { background: transparent; padding: 0; }
.single-product .woocommerce-product-gallery {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: 1rem;
}
.single-product .product .woocommerce-tabs {
  background: transparent;
}

/* ---------- Buttons ---------- */
.btn-primary,
.btn-secondary { display: inline-flex; align-items: center; gap: .4rem; text-decoration: none; }
.btn-primary {
  background: var(--primary);
  color: var(--primary-foreground);
  border-radius: 999px;
  padding: .65rem 1.25rem;
  font-size: .85rem;
  font-weight: 700;
}
.btn-secondary {
  background: #ffffff;
  color: var(--primary);
  border: 2px solid rgba(26,44,94,.12);
  border-radius: 999px;
  padding: .65rem 1.25rem;
  font-size: .85rem;
  font-weight: 600;
}

/* ---------- Shop / archive ---------- */
.jobst-shop { color: var(--foreground); }
.shop-breadcrumb {
  font-size: .75rem;
  color: var(--muted-foreground);
  margin-bottom: .5rem;
}
.shop-breadcrumb a { color: inherit; text-decoration: none; }
.shop-breadcrumb a:hover { color: var(--accent); }
.shop-breadcrumb span { margin-inline: .35rem; }
.shop-breadcrumb .crumb-current { color: var(--accent); }

.shop-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
}
.shop-title {
  font-size: 1.75rem;
  line-height: 1.15;
  color: var(--primary);
  margin: 0;
}
@media (min-width: 640px) {
  .shop-title { font-size: 2.25rem; }
}
.shop-count {
  font-size: .85rem;
  color: var(--muted-foreground);
  margin: .35rem 0 0;
}

.shop-head-actions { display: flex; align-items: center; gap: .75rem; }
.filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: .5rem 1rem;
  background: #ffffff;
  font-size: .8rem;
  font-weight: 500;
  cursor: pointer;
}
.shop-sort-form select {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #ffffff;
  padding: .5rem 2rem .5rem 1rem;
  font-size: .8rem;
  font-weight: 500;
  color: var(--foreground);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2360667a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .6rem center;
}

.shop-layout {
  display: grid;
  gap: 2rem;
}
@media (min-width: 1024px) {
  .shop-layout { grid-template-columns: 220px 1fr; }
  .lg-hidden { display: none !important; }
}
@media (max-width: 1023px) {
  .shop-sidebar { display: none; }
  .lg-hidden { display: inline-flex !important; }
}

/* Filters */
.shop-filters { color: var(--foreground); }
.filter-group + .filter-group { margin-top: 1.75rem; }
.filter-heading {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--muted-foreground);
  margin: 0 0 .75rem;
}
.filter-list { list-style: none; margin: 0; padding: 0; }
.filter-list li + li { margin-top: .5rem; }
.filter-check {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .85rem;
  color: rgba(31,35,53,.85);
  cursor: pointer;
}
.filter-check input[type="checkbox"] {
  width: 1rem; height: 1rem;
  border: 1px solid var(--input);
  border-radius: .25rem;
  accent-color: var(--accent);
}
.shop-filters input[type="range"] {
  width: 100%;
  accent-color: var(--primary);
}
.filter-price-label {
  font-size: .85rem;
  font-weight: 600;
  margin-top: .35rem;
}
.filter-cats a {
  display: inline-block;
  font-size: .85rem;
  color: rgba(31,35,53,.8);
  text-decoration: none;
}
.filter-cats a:hover,
.filter-cats a.is-current { color: var(--accent); font-weight: 600; }
.filter-apply {
  width: 100%;
  margin-top: 1.5rem;
  background: var(--primary);
  color: var(--primary-foreground);
  border: 0;
  border-radius: 999px;
  padding: .65rem;
  font-weight: 700;
  cursor: pointer;
}

/* Mobile filter drawer */
.filter-drawer { display: none; }
.filter-drawer.is-open { display: block; }
.filter-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: rgba(0,0,0,.4);
}
.filter-drawer-panel {
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: 300px;
  max-width: 85vw;
  background: var(--background);
  padding: 1.5rem;
  overflow-y: auto;
}
.filter-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}
.filter-drawer-head p { margin: 0; font-size: 1.1rem; }
.filter-drawer-head button {
  background: transparent;
  border: 0;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--foreground);
}
.filter-drawer-show {
  width: 100%;
  margin-top: 1.5rem;
  background: var(--primary);
  color: var(--primary-foreground);
  border: 0;
  border-radius: 999px;
  padding: .75rem;
  font-weight: 700;
  cursor: pointer;
}

/* Product grid */
.jobst-shop ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 768px) {
  .jobst-shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.jobst-shop .product { position: relative; }
.jobst-shop .product a { text-decoration: none; }
.jobst-shop .woocommerce-LoopProduct-link { display: block; }
.jobst-shop .product img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: #ffffff;
  transition: transform .5s ease;
}
.jobst-shop .product:hover img { transform: scale(1.04); }

.jobst-shop .woocommerce-loop-product__title {
  margin: .75rem 0 .25rem;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--foreground);
}
.jobst-shop .star-rating {
  font-size: .7rem;
  color: #f59e0b;
  margin-bottom: .25rem;
}
.jobst-shop .price {
  font-size: .9rem;
  font-weight: 700;
  color: var(--foreground);
}
.jobst-shop .price del {
  font-size: .75rem;
  font-weight: 500;
  color: var(--muted-foreground);
  margin-left: .35rem;
}
.jobst-shop .add_to_cart_button,
.jobst-shop .button.product_type_variable {
  display: inline-flex;
  margin-top: .5rem;
  padding: .35rem .9rem;
  background: var(--primary);
  color: #ffffff;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .25s, transform .25s;
}
.jobst-shop .product:hover .add_to_cart_button,
.jobst-shop .product:hover .button.product_type_variable { opacity: 1; transform: translateY(0); }
@media (max-width: 1023px) {
  .jobst-shop .add_to_cart_button,
  .jobst-shop .button.product_type_variable { opacity: 1; transform: none; }
}

/* Empty + pagination */
.shop-empty {
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: #ffffff;
  padding: 3rem 1.5rem;
  text-align: center;
}
.shop-empty .font-display { font-size: 1.25rem; color: var(--primary); margin: 0; }
.shop-empty p { color: var(--muted-foreground); margin: .5rem 0 1.25rem; }
.jobst-shop .woocommerce-pagination { margin-top: 2.5rem; }
.jobst-shop .woocommerce-pagination ul.page-numbers {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.jobst-shop .woocommerce-pagination a,
.jobst-shop .woocommerce-pagination .current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 .65rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #ffffff;
  color: var(--foreground);
  text-decoration: none;
  font-size: .8rem;
  font-weight: 600;
}
.jobst-shop .woocommerce-pagination .current { background: var(--primary); color: #ffffff; border-color: var(--primary); }

/* ---------- Learn page ---------- */
.learn-page { color: var(--foreground); }
.learn-eyebrow {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--accent);
}
.learn-title { font-size: 2rem; color: var(--primary); margin: .5rem 0 0; }
.lead {
  max-width: 36rem;
  margin-top: 1rem;
  font-size: .95rem;
  line-height: 1.7;
  color: var(--muted-foreground);
}
.section-title {
  font-size: 1.5rem;
  color: var(--primary);
  margin: 3rem 0 .5rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.section-sub {
  font-size: .9rem;
  line-height: 1.65;
  color: var(--muted-foreground);
  margin: 0 0 1.25rem;
}
.learn-levels { display: flex; flex-direction: column; gap: 1rem; }
.learn-level {
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: 1.25rem;
}
.level-mild { background: var(--secondary); }
.level-firm { background: rgba(193,102,61,.08); border-color: rgba(193,102,61,.25); }
.learn-level-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem;
}
.level-number { font-size: 1.25rem; color: var(--primary); margin: 0; }
.level-tag { font-size: .8rem; font-weight: 700; color: var(--accent); margin: 0; }
.learn-level p { font-size: .85rem; line-height: 1.6; color: rgba(31,35,53,.85); margin: .5rem 0 0; }
.level-for { font-size: .7rem !important; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted-foreground); }
.rule-of-thumb {
  margin-top: 1.25rem;
  border: 1px solid rgba(193,102,61,.4);
  background: rgba(193,102,61,.06);
  border-radius: .75rem;
  padding: 1rem;
  font-size: .85rem;
  line-height: 1.6;
  color: rgba(31,35,53,.85);
}
.rule-of-thumb a { color: var(--accent); font-weight: 600; text-decoration: none; }
.measure-table-wrap {
  border: 1px solid var(--border);
  border-radius: 1rem;
  overflow: hidden;
  background: #ffffff;
}
.measure-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.measure-table thead { background: var(--secondary); }
.measure-table th { text-align: left; padding: .75rem 1rem; color: var(--primary); font-weight: 600; }
.measure-table td { padding: .75rem 1rem; border-top: 1px solid var(--border); color: var(--muted-foreground); }
.measure-table td:first-child { font-weight: 600; color: var(--primary); }
.sizing-help { font-size: .85rem; color: var(--muted-foreground); margin-top: 1rem; }
.sizing-help a { color: var(--accent); font-weight: 600; text-decoration: none; }
.donning-grid { display: grid; gap: 1.5rem; margin-top: 1.5rem; }
@media (min-width: 1024px) { .donning-grid { grid-template-columns: 1fr 1fr; } }
.donning-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.donning-steps li {
  display: flex;
  gap: .75rem;
  font-size: .85rem;
  line-height: 1.6;
  color: rgba(31,35,53,.85);
}
.donning-steps span {
  flex: none;
  width: 1.75rem; height: 1.75rem;
  display: flex; align-items: center; justify-content: center;
  background: var(--primary);
  color: var(--primary-foreground);
  border-radius: 999px;
  font-family: 'Fraunces', Georgia, serif;
  font-size: .7rem;
  font-weight: 600;
}
.donning-image { border-radius: 1rem; overflow: hidden; }
.donning-image img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
.learn-cta {
  margin-top: 3.5rem;
  background: var(--secondary);
  border-radius: 1rem;
  padding: 2rem 1.5rem;
  text-align: center;
}
.learn-cta-title { font-size: 1.5rem; color: var(--primary); margin: 0; }
.learn-cta-actions { margin-top: 1.25rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }

/* ---------- About / Contact shared ---------- */
.page-eyebrow {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--accent);
}
.page-title { font-size: 2.25rem; color: var(--primary); margin: .5rem 0 0; }

.about-page .prose,
.contact-page .lead {
  margin-top: 1.5rem;
  font-size: .95rem;
  line-height: 1.75;
  color: rgba(31,35,53,.85);
}
.about-page .prose p { margin: 0 0 1rem; }

/* Stats */
.stats-grid {
  display: grid;
  gap: 1rem;
  margin-top: 2.5rem;
}
@media (min-width: 640px) { .stats-grid { grid-template-columns: repeat(3, 1fr); } }
.stat-card {
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: #ffffff;
  padding: 1.5rem;
  text-align: center;
}
.stat-num { font-size: 1.75rem; color: var(--accent); margin: 0; }
.stat-label { font-size: .7rem; color: var(--muted-foreground); margin: .5rem 0 0; }

/* CTA panels */
.about-cta,
.contact-cta {
  margin-top: 2.5rem;
  background: var(--secondary);
  border-radius: 1rem;
  padding: 2rem 1.5rem;
  text-align: center;
}
.about-cta-title,
.contact-cta-title { font-size: 1.25rem; color: var(--primary); margin: 0; }
.about-cta .btn-primary,
.contact-cta .btn-primary { margin-top: 1rem; }

/* Contact */
.contact-grid { display: grid; gap: 2rem; margin-top: 2.5rem; }
@media (min-width: 1024px) { .contact-grid { grid-template-columns: 1fr 1fr; } }
.contact-cards { display: flex; flex-direction: column; gap: 1rem; }
.contact-card {
  display: flex;
  gap: 1rem;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: #ffffff;
  padding: 1.25rem;
}
.contact-icon { font-size: 1.25rem; }
.contact-type { font-size: .85rem; font-weight: 700; color: var(--foreground); margin: 0; }
.contact-link {
  display: block;
  margin-top: .15rem;
  font-size: .9rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
  word-break: break-word;
}
.contact-note { font-size: .75rem; color: var(--muted-foreground); margin: .15rem 0 0; }
.contact-form-card {
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: #ffffff;
  padding: 1.75rem;
}
.form-card-title { font-size: 1.25rem; color: var(--primary); margin: 0 0 1.25rem; }
.contact-form-card .wpcf7-form { display: flex; flex-direction: column; gap: .75rem; }
.contact-form-card .wpcf7-form-control-wrap { display: block; }
.contact-form-card input[type="text"],
.contact-form-card input[type="email"],
.contact-form-card textarea,
.contact-form-card select,
.contact-form-card .wpcf7-text,
.contact-form-card .wpcf7-email,
.contact-form-card .wpcf7-textarea,
.contact-form-card .wpcf7-select {
  width: 100%;
  border: 1px solid var(--input);
  border-radius: .5rem;
  background: var(--background);
  padding: .75rem 1rem;
  font-size: .9rem;
  color: var(--foreground);
  font-family: inherit;
}
.contact-form-card textarea { resize: vertical; }
.contact-form-card input[type="submit"],
.contact-form-card .wpcf7-submit {
  width: 100%;
  border: 0;
  border-radius: 999px;
  background: var(--accent);
  color: #ffffff;
  padding: .85rem;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .05em;
  cursor: pointer;
  text-transform: uppercase;
}
.contact-form-card input[type="submit"]:hover,
.contact-form-card .wpcf7-submit:hover { opacity: .92; }
.contact-form-card .wpcf7-not-valid-tip { font-size: .75rem; color: var(--destructive); }
.contact-form-card .wpcf7-response-output { font-size: .8rem; border-radius: .5rem; }


/* =============================================================
   Chunk 5b — PDP: tabs, related products, color swatch dots
   ============================================================= */

/* ---------- Product data tabs (design-styled) ---------- */
.single-product .woocommerce-tabs { margin-top: 2.5rem; width: 100%; }
.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  border: 0;
}
.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after { display: none; }
.single-product .woocommerce-tabs ul.tabs li {
  background: #ffffff;
  border: 1px solid var(--border) !important;
  border-radius: 999px;
  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: inline-block;
  padding: .55rem 1.15rem;
  font-size: .8rem;
  font-weight: 600;
  color: var(--foreground);
  text-decoration: none;
}
.single-product .woocommerce-tabs ul.tabs li.active {
  background: var(--primary);
  border-color: var(--primary) !important;
}
.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--primary-foreground); }
.single-product .woocommerce-tabs .panel,
.single-product .woocommerce-Tabs-panel {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: 1.5rem;
  margin: 0;
}
.single-product .woocommerce-Tabs-panel h2 {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.25rem;
  color: var(--primary);
  margin: 0 0 .75rem;
}
.single-product .woocommerce-Tabs-panel p { font-size: .9rem; line-height: 1.7; color: rgba(31,35,53,.85); }
.single-product .woocommerce-Tabs-panel table.shop_attributes {
  border: 0;
  font-size: .85rem;
}
.single-product .woocommerce-Tabs-panel table.shop_attributes th {
  color: var(--primary);
  font-weight: 600;
  padding: .5rem 1rem .5rem 0;
  border-bottom: 1px solid var(--border);
}
.single-product .woocommerce-Tabs-panel table.shop_attributes td {
  color: var(--muted-foreground);
  padding: .5rem 0;
  border-bottom: 1px solid var(--border);
}
.single-product .woocommerce-Tabs-panel table.shop_attributes td p { margin: 0; }

/* ---------- Reviews panel ---------- */
.single-product #reviews h2,
.single-product #reviews .woocommerce-Reviews-title {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.15rem;
  color: var(--primary);
}
.single-product #reviews .comment-form input[type="text"],
.single-product #reviews .comment-form input[type="email"],
.single-product #reviews .comment-form textarea {
  width: 100%;
  border: 1px solid var(--input);
  border-radius: .5rem;
  background: var(--background);
  padding: .7rem 1rem;
  font-size: .9rem;
  font-family: inherit;
}
.single-product #reviews .comment-form .submit {
  border: 0;
  border-radius: 999px;
  background: var(--accent);
  color: #ffffff;
  padding: .75rem 1.5rem;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
}

/* ---------- Related products ("You may also like") ---------- */
.related.products { margin-top: 3.5rem; clear: both; }
.related.products > h2 {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--primary);
  margin: 0 0 1.5rem;
}
.related.products ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.75rem 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 768px) {
  .related.products ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.related.products ul.products li.product { float: none; width: auto; margin: 0; position: relative; }
.related.products .product a { text-decoration: none; }
.related.products .product img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: #ffffff;
  transition: transform .5s ease;
}
.related.products .product:hover img { transform: scale(1.04); }
.related.products .woocommerce-loop-product__title {
  margin: .7rem 0 .2rem;
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--foreground);
}
.related.products .price { font-size: .85rem; font-weight: 700; color: var(--foreground); }
.related.products .price del { font-size: .72rem; font-weight: 500; color: var(--muted-foreground); margin-left: .3rem; }
.related.products .add_to_cart_button,
.related.products .button.product_type_variable {
  display: inline-flex;
  margin-top: .45rem;
  padding: .3rem .8rem;
  background: var(--primary);
  color: #ffffff;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}

/* ---------- Color swatch dots (CartFlows label pills -> dot + label) ---------- */
.jobst-color-dot {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.18);
  margin-right: .45rem;
  vertical-align: -2px;
}
/* Slightly rounder, swatch-feel pills on the color row */
.variations .cfvsw-swatches-option.cfvsw-label-option {
  border-radius: 999px;
}

/* ---------- Chunk 5c — category grid fixes (Woo legacy width override + compact swatches) ---------- */
.jobst-shop ul.products > li.product {
  width: auto !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  min-width: 0;
  display: block;
}
.jobst-shop .woocommerce-loop-product__title {
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}
.jobst-shop .cfvsw-shop-variations {
  display: block !important;
  width: 100% !important;
  margin-top: .5rem;
}
.jobst-shop .cfvsw-shop-variations tbody,
.jobst-shop .cfvsw-shop-variations tr,
.jobst-shop .cfvsw-shop-variations td {
  display: block;
  width: 100%;
}
.jobst-shop .cfvsw-swatches-container.cfvsw-shop-container {
  display: flex !important;
  flex-wrap: wrap;
  gap: .35rem;
}
.jobst-shop .cfvsw-swatches-option.cfvsw-label-option {
  min-width: 0 !important;
  min-height: 0 !important;
  border-radius: 999px !important;
  padding: .25rem .55rem !important;
  margin: 0 !important;
  line-height: 1;
}
.jobst-shop .cfvsw-swatches-option .cfvsw-swatch-inner { font-size: .68rem; }
.jobst-shop .cfvsw-swatches-option .jobst-color-dot {
  width: .65rem;
  height: .65rem;
  margin-right: .3rem;
  vertical-align: -1px;
}

/* ---------- Chunk 5d — category grid clearfix kill (Woo ::before/::after steal grid cells) ---------- */
.jobst-shop ul.products::before,
.jobst-shop ul.products::after {
  content: none !important;
  display: none !important;
}


/* ---------- Chunk 5e — clearfix kill for related/upsells/cross-sells grids + description panel min-height ---------- */
.related.products ul.products::before,
.related.products ul.products::after,
.upsells.products ul.products::before,
.upsells.products ul.products::after,
.cross-sells ul.products::before,
.cross-sells ul.products::after {
  content: none !important;
  display: none !important;
}
.woocommerce-Tabs-panel--description {
  min-height: 3.25rem;
}


/* Category description spacing fix */
.jobst-category-description {
    margin-bottom: 1.5rem;
    max-width: 100%;
}

.jobst-category-description h2 {
    margin-top: 1.25rem;
    margin-bottom: 0.75rem;
    font-size: 1.25rem;
    line-height: 1.3;
}

.jobst-category-description p {
    margin-bottom: 1rem;
    line-height: 1.6;
}
