/* Pretty Peppy global design system. Generated from the former inline peppy-design-tokens block. */
:root {
  --peppy-cream:     #fbf9f6;
  --peppy-cream-2:   #fdfcfa;
  --peppy-lavender:  #9e93e6;
  --peppy-lavender-hover: #8a7edb;
  --peppy-dark:      #1A1A1A;
  --peppy-text:      #1A1A1A;
  --peppy-text-muted: rgba(26,26,26,0.75);
  --peppy-border:    rgba(26,26,26,0.08);

  /* Override Blocksy palette */
  --theme-palette-color-1: var(--peppy-lavender);
  --theme-palette-color-2: var(--peppy-lavender-hover);
  --theme-palette-color-3: var(--peppy-text);
  --theme-palette-color-4: var(--peppy-text-muted);
  --theme-palette-color-5: var(--peppy-border);
  --theme-palette-color-6: var(--peppy-cream-2);
  --theme-palette-color-7: var(--peppy-cream);
  --theme-palette-color-8: var(--peppy-cream);
}

body {
  background: var(--peppy-cream) !important;
  font-family: 'Inter', -apple-system, sans-serif !important;
  color: var(--peppy-text) !important;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6,
.entry-title, .product_title, .woocommerce-loop-product__title,
.site-title, .ct-header [data-id*="logo"] .site-title {
  font-family: 'Cormorant Garamond', 'Cormorant', Georgia, serif !important;
  font-weight: 500 !important;
  color: var(--peppy-text) !important;
  letter-spacing: -0.005em;
  line-height: 1.1;
}
h1, .entry-title { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 500 !important; }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: 1.75rem; }
h4, .woocommerce-loop-product__title { font-size: 1.5rem; }

/* Buttons — lavender pill, dark text */
.wp-block-button__link,
.button, button.button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button,
.ct-button {
  background: var(--peppy-lavender) !important;
  color: var(--peppy-text) !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 14px 28px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: background-color 240ms ease !important;
  box-shadow: none !important;
}
.wp-block-button__link:hover,
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .single_add_to_cart_button:hover,
.ct-button:hover {
  background: var(--peppy-lavender-hover) !important;
  color: var(--peppy-text) !important;
}

/* Secondary buttons — outlined dark on cream */
.woocommerce ul.products li.product .button,
.woocommerce-loop-product__link + .button {
  background: transparent !important;
  color: var(--peppy-text) !important;
  border: 1px solid var(--peppy-text) !important;
}

/* Inputs */
input[type="text"], input[type="email"], input[type="search"],
input[type="number"], input[type="tel"], input[type="url"],
input[type="password"], textarea, select {
  border: 1px solid var(--peppy-border) !important;
  border-radius: 4px !important;
  padding: 0.8rem 1rem !important;
  background: var(--peppy-cream-2) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: var(--peppy-text) !important;
}

/* Product cards — flat, editorial */
.woocommerce ul.products li.product { text-align: left; background: transparent; border: none; padding: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.5rem !important;
  margin-top: 0.5rem;
}
.woocommerce ul.products li.product .price {
  color: var(--peppy-text) !important;
  font-weight: 500;
  font-size: 14px;
  font-family: 'Inter', sans-serif !important;
}
.woocommerce ul.products li.product img { border-radius: 4px; }

/* Links */
a { color: var(--peppy-text); transition: opacity 200ms ease; }
a:hover { opacity: 0.65; color: var(--peppy-text); }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }

/* Header — sticky on scroll */
header.ct-header {
  background: var(--peppy-cream) !important;
  border-bottom: 1px solid var(--peppy-border);
  box-shadow: none !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 100;
}
/* When logged in, WP admin bar offsets the sticky header */
body.admin-bar header.ct-header { top: 32px !important; }
@media (max-width: 782px) {
  body.admin-bar header.ct-header { top: 46px !important; }
}
.ct-header .site-title a {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.75rem;
  color: var(--peppy-text) !important;
}

/* Hide Blocksy's default footer — we render our own */
footer.ct-footer { display: none !important; }

/* ============ About page ============ */
.peppy-about {
  font-family: 'Inter', sans-serif;
  color: var(--peppy-text);
}
.peppy-about p:empty {
  display: none;
}
.peppy-about__hero {
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 100vh;
  min-height: 100svh;
  background-image: url('/wp-content/uploads/sections/about-hero.jpg');
  background-color: var(--peppy-cream-2);
  background-size: cover;
  background-position: center right;
  display: flex;
  align-items: center;
  padding: 0;
  margin: 0;
  isolation: isolate;
}
.peppy-about__hero-inner {
  padding: 0 6vw;
  width: 100%;
  max-width: 760px;
}
.peppy-about__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,0.6) 0%,
      rgba(0,0,0,0.4) 35%,
      rgba(0,0,0,0.15) 60%,
      transparent 80%),
    linear-gradient(180deg, rgba(0,0,0,0.15), transparent 40%);
  pointer-events: none;
}
.peppy-about__hero-inner {
  position: relative;
  z-index: 2;
  max-width: 580px;
  color: #fff;
}
.peppy-about__hero h1 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.25rem, 4.4vw, 3.5rem) !important;
  line-height: 1.1 !important;
  margin: 0 0 1.25rem !important;
  color: #fff !important;
  letter-spacing: -0.005em;
  text-align: left;
  text-shadow: 0 2px 20px rgba(0,0,0,0.5), 0 0 40px rgba(0,0,0,0.3);
}
.peppy-about__hero p {
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  line-height: 1.55;
  color: #fff;
  margin: 0;
  max-width: 42ch;
  text-align: left;
  text-shadow: 0 1px 12px rgba(0,0,0,0.7), 0 0 30px rgba(0,0,0,0.4);
}
.peppy-about__section {
  padding: 6rem 5vw;
  max-width: 1400px;
  margin: 0 auto;
}
.peppy-about__section--split,
.peppy-about__section.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
.peppy-about__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--peppy-text-muted);
  margin: 0 0 1rem;
}
.peppy-about__section h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 3.5vw, 2.75rem) !important;
  line-height: 1.1 !important;
  margin: 0 0 1.5rem !important;
  color: var(--peppy-text);
  letter-spacing: -0.005em;
}
.peppy-about__section p {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: var(--peppy-text);
  margin: 0 0 1rem;
  max-width: 50ch;
}
.peppy-about__placeholder,
.peppy-about__image {
  background-size: cover;
  background-position: center;
  border-radius: 4px;
  aspect-ratio: 4 / 5;
  background-color: var(--peppy-cream-2);
}
.peppy-about__placeholder--wide,
.peppy-about__image--wide { aspect-ratio: 16 / 9; }
.peppy-about__placeholder--square,
.peppy-about__image--square { aspect-ratio: 1 / 1; }
body.peppy-about-page .peppy-about__section.split .peppy-about__image,
body.peppy-about-page .peppy-about__section--split .peppy-about__image {
  background-image: url('/wp-content/uploads/sections/about-story.jpg');
}

/* Full-bleed photo banner */
.peppy-about__banner {
  position: relative;
  min-height: 70vh;
  background-image: url('/wp-content/uploads/sections/made-for-life.jpg');
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 1rem;
  isolation: isolate;
}
.peppy-about__banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 1;
}
.peppy-about__banner-inner {
  position: relative;
  z-index: 2;
  max-width: 50ch;
}
.peppy-about__banner h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  color: #fff !important;
  font-size: clamp(2.25rem, 4.5vw, 3.5rem) !important;
  line-height: 1.1 !important;
  margin: 0 0 1rem !important;
  text-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
.peppy-about__banner p {
  font-family: 'Inter', sans-serif;
  color: rgba(255,255,255,0.95);
  font-size: 16px;
  line-height: 1.6;
  margin: 0 auto;
  max-width: 44ch;
  text-shadow: 0 1px 15px rgba(0,0,0,0.4);
}

/* Editorial pull-quote — dark rounded card with atmospheric image bg */
.peppy-about__quote {
  position: relative;
  background-color: var(--peppy-dark);
  background-image: url('/wp-content/uploads/sections/quote-bg.jpg');
  background-size: cover;
  background-position: center;
  padding: 7rem 5vw;
  text-align: center;
  max-width: 1280px;
  margin: 2.5rem auto 6rem;
  border-radius: 28px;
  overflow: hidden;
  isolation: isolate;
}
/* Dim overlay so text stays readable on top of the image */
.peppy-about__quote::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 14, 30, 0.55) 0%, rgba(20, 14, 30, 0.7) 100%);
  z-index: 0;
  pointer-events: none;
}
.peppy-about__quote::before { content: none; }
.peppy-about__quote-inner {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  z-index: 2;
}
.peppy-about__quote blockquote {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500;
  font-size: clamp(2rem, 4.5vw, 4rem) !important;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: #fff !important;
  margin: 0;
  padding: 0;
  font-style: normal;
  border: none;
  text-align: center;
}
/* CTA pill inside the quote card */
.peppy-about__quote .peppy-quote__cta,
.peppy-about__quote .peppy-quote__cta:link,
.peppy-about__quote .peppy-quote__cta:visited,
.peppy-about__quote .peppy-quote__cta:hover {
  display: inline-block;
  margin-top: 2.5rem;
  padding: 0.85rem 1.85rem;
  border-radius: 999px;
  background: var(--peppy-lavender);
  color: var(--peppy-text) !important;
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  box-shadow: 0 12px 30px -14px rgba(0,0,0,0.45);
  transition: background 200ms ease, transform 200ms ease;
}
.peppy-about__quote .peppy-quote__cta:hover { background: var(--peppy-lavender-hover); transform: translateY(-1px); }
/* Each sentence sits on its own line; second one in lavender */
.peppy-about__quote blockquote .peppy-quote__line { display: block; }
.peppy-about__quote blockquote .peppy-quote__accent {
  display: block;
  color: var(--peppy-lavender);
  margin-top: 0.4rem;
}
.peppy-about__quote cite { display: none; }

/* Values grid */
.peppy-about__values {
  background: var(--peppy-cream-2);
  padding: 6rem 5vw;
}
.peppy-about__values-inner {
  max-width: 1400px;
  margin: 0 auto;
  text-align: center;
}
.peppy-about__values-inner > h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 3.5vw, 2.75rem) !important;
  margin: 0 auto 3rem !important;
  color: var(--peppy-text);
}
.peppy-values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}
.peppy-value {
  text-align: center;
  padding: 1rem;
}
.peppy-value__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 1.25rem;
  border-radius: 50%;
  background: var(--peppy-cream);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--peppy-text);
}
.peppy-value__icon svg { width: 24px; height: 24px; }
.peppy-value h3 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.4rem !important;
  margin: 0 0 0.5rem !important;
  color: var(--peppy-text);
}
.peppy-value p {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  margin: 0 auto;
  max-width: 28ch;
}

/* Process section with numbered steps */
.peppy-about__process {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
}
.peppy-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: step;
}
.peppy-steps li {
  counter-increment: step;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--peppy-border);
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}
.peppy-steps li:first-child { padding-top: 0; }
.peppy-steps li::before {
  content: counter(step, decimal-leading-zero);
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.5rem;
  color: var(--peppy-text-muted);
  font-weight: 500;
  flex-shrink: 0;
  width: 2.5rem;
}
.peppy-steps h4 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.25rem !important;
  margin: 0 0 0.4rem !important;
  color: var(--peppy-text);
}
.peppy-steps p {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  margin: 0;
}

/* Stats row */
.peppy-about__stats {
  background: var(--peppy-cream);
  padding: 4rem 5vw 2rem;
}
.peppy-stats-grid {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  text-align: center;
}
.peppy-stat__number {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1;
  color: var(--peppy-text);
  margin: 0 0 0.5rem;
}
.peppy-stat__label {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--peppy-text-muted);
  margin: 0 auto;
  max-width: 28ch;
}


/* Closing CTA — split with image */
.peppy-about__cta {
  background: var(--peppy-cream);
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  text-align: left;
  min-height: 60vh;
}
.peppy-about__cta-image {
  background-size: cover;
  background-position: center;
  height: 100%;
  min-height: 60vh;
  background-color: var(--peppy-cream-2);
}
.peppy-about__cta-content {
  padding: 5rem 5vw;
}
.peppy-about__cta h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.25rem, 4vw, 3rem) !important;
  margin: 0 0 1rem !important;
  color: var(--peppy-text);
}
.peppy-about__cta p {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: var(--peppy-text);
  margin: 0 0 2rem;
  max-width: 44ch;
}
@media (max-width: 900px) {
  .peppy-about__cta { grid-template-columns: 1fr; }
  .peppy-about__cta-image { min-height: 40vh; }
}
.peppy-about__cta a {
  display: inline-block;
  background: var(--peppy-lavender);
  color: var(--peppy-text) !important;
  padding: 14px 36px;
  border-radius: 999px;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 15px;
  text-decoration: none !important;
  transition: background-color 200ms ease;
}
.peppy-about__cta a:hover { background: var(--peppy-lavender-hover); }

@media (max-width: 900px) {
  .peppy-about__section--split,
  .peppy-about__section.split,
  .peppy-about__process { grid-template-columns: 1fr; gap: 1.75rem; }
  .peppy-values-grid,
  .peppy-stats-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .peppy-about__image,
  .peppy-about__placeholder {
    aspect-ratio: 4 / 3;
  }
  .peppy-about__values { padding: 3.25rem 5vw !important; }
  .peppy-value { padding: 0.25rem 0; }
  .peppy-values-grid { gap: 1.75rem; }
  .peppy-about__banner {
    min-height: 45vh;
    padding: 3.5rem 5vw !important;
  }
  .peppy-about__stats { padding: 3rem 5vw 2.5rem; }
  .peppy-about__quote {
    margin: 1.5rem 5vw 4rem;
    padding: 4rem 5vw;
    border-radius: 18px;
  }
}

/* Full-bleed sections inside the WP page wrapper */
body.peppy-about-page .ct-container,
body.peppy-about-page .ct-container-full,
body.peppy-about-page .ct-container-narrow,
body.peppy-about-page main,
body.peppy-about-page article,
body.peppy-about-page .entry-content,
body.peppy-about-page .entry-content.is-layout-constrained {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.peppy-about-page .entry-header { display: none !important; }
body.peppy-about-page .entry-content > * {
  max-width: 100% !important;
  margin: 0 !important;
}
/* Kill WP block layout's content-size constraint that limits direct children */
body.peppy-about-page .is-layout-constrained > * {
  max-width: 100% !important;
}
body.peppy-about-page .peppy-about {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}
/* Eliminate any top gap between header and hero */
body.peppy-about-page main.site-main,
body.peppy-about-page main.site-main > *,
body.peppy-about-page article,
body.peppy-about-page .ct-container-full {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
/* Brute-force pull the hero up to cover the 40px Blocksy injects */
body.peppy-about-page .peppy-about {
  margin-top: -40px !important;
}

/* ============ Legal / policy pages (Returns, Privacy, Terms, Shipping) ============ */
body.page-template-default .peppy-policy {
  max-width: 760px;
  margin: 0 auto;
  padding: 3rem 5vw 5rem;
  font-family: 'Inter', sans-serif;
  color: var(--peppy-text);
}
.peppy-policy__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.5rem, 4.5vw, 3.5rem) !important;
  text-align: center;
  margin: 0 0 0.75rem !important;
  color: var(--peppy-text);
}
.peppy-policy__subtitle {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  text-align: center;
  color: var(--peppy-text-muted);
  margin: 0 0 3rem;
}
.peppy-policy h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.5rem !important;
  margin: 2.5rem 0 0.75rem !important;
  color: var(--peppy-text);
}
.peppy-policy h2:first-of-type { margin-top: 0 !important; }
.peppy-policy p,
.peppy-policy li {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: var(--peppy-text);
  margin: 0 0 1rem;
}
.peppy-policy ul, .peppy-policy ol {
  padding-left: 1.25rem;
  margin: 0 0 1rem;
}
.peppy-policy a { color: var(--peppy-text); text-decoration: underline; text-underline-offset: 3px; }
.peppy-policy a:hover { opacity: 0.65; }
.peppy-policy hr {
  border: none;
  border-top: 1px solid var(--peppy-border);
  margin: 3rem 0;
}
.peppy-policy__meta {
  font-size: 13px;
  color: var(--peppy-text-muted);
  text-align: center;
  margin-top: 3rem;
}

/* ============ Single product page ============ */
body.single-product div.product {
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: block !important;
}
body.single-product .product-entry-wrapper,
body.single-product div.product > div:first-child {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 4rem !important;
  padding: 2rem 5vw 4rem !important;
  max-width: 100% !important;
  align-items: start !important;
}
@media (max-width: 768px) {
  body.single-product .product-entry-wrapper,
  body.single-product div.product > div:first-child {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    padding: 1rem 5vw 3rem !important;
  }
  body.single-product .woocommerce-product-gallery { position: static !important; }
}
body.single-product .woocommerce-product-gallery {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  position: sticky;
  top: 100px;
}
body.single-product .woocommerce-product-gallery__wrapper { margin: 0 !important; }
body.single-product .woocommerce-product-gallery__image {
  width: 100% !important;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 4px;
  background: var(--peppy-cream-2);
}
body.single-product .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
body.single-product .summary.entry-summary {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  padding: 1rem 0 0 !important;
}
body.single-product .peppy-product-eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--peppy-text-muted);
  margin: 0 0 1rem;
}
body.single-product .peppy-product-eyebrow a { color: inherit; text-decoration: none; }
body.single-product .peppy-product-eyebrow a:hover { color: var(--peppy-text); }
body.single-product .product_title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.25rem, 4vw, 3rem) !important;
  line-height: 1.1 !important;
  margin: 0 0 1rem !important;
  color: var(--peppy-text) !important;
}
body.single-product .summary .price {
  font-family: 'Inter', sans-serif !important;
  font-size: 1.5rem !important;
  font-weight: 500 !important;
  color: var(--peppy-text) !important;
  margin: 0 0 1.5rem !important;
}
body.single-product .woocommerce-product-details__short-description {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--peppy-text);
  margin: 0 0 2rem;
}
.peppy-summary-about {
  margin: 0 0 2rem;
}
.peppy-summary-about h3 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.25rem !important;
  margin: 0 0 0.75rem !important;
  color: var(--peppy-text);
}
.peppy-summary-about p {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: var(--peppy-text);
  margin: 0 0 0.75rem;
}
.peppy-summary-about p:last-child { margin-bottom: 0; }
body.single-product .woocommerce-product-details__short-description p { margin: 0 0 1rem; }
body.single-product .woocommerce-product-details__short-description em { color: var(--peppy-text-muted); }

body.single-product form.cart {
  margin: 0 0 2rem !important;
  display: flex !important;
  align-items: stretch !important;
  gap: 1rem;
  padding: 1.5rem 0 !important;
  border-top: 1px solid var(--peppy-border);
  border-bottom: 1px solid var(--peppy-border);
}
/* Qty: simple labeled number input, no +/- buttons */
body.single-product .quantity {
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
}
body.single-product .quantity .ct-increase,
body.single-product .quantity .ct-decrease { display: none !important; }
body.single-product .quantity input[type="number"] {
  width: 80px !important;
  height: 50px;
  text-align: center;
  border: 1px solid var(--peppy-border) !important;
  background: #fff !important;
  border-radius: 999px !important;
  padding: 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--peppy-text) !important;
}
body.single-product .quantity input[type="number"]:focus {
  outline: none;
  border-color: var(--peppy-text) !important;
}
body.single-product form.cart { align-items: stretch !important; flex-wrap: wrap !important; gap: 0.75rem !important; }
body.single-product .single_add_to_cart_button {
  min-height: 50px !important;
  min-width: 180px !important;
  white-space: nowrap !important;
  padding: 0.85rem 1.85rem !important;
  border-radius: 999px !important;
  flex: 1 !important;
}
/* "View cart" link that appears next to Add to cart after a successful
   add. WC ships it as a flat grey button; restyle as an outlined pill
   so it reads as the secondary action to the primary lavender pill. */
body.single-product .added_to_cart,
body.single-product a.added_to_cart,
body.single-product a.added_to_cart.wc-forward {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 50px !important;
  padding: 0.85rem 1.5rem !important;
  background: transparent !important;
  color: var(--peppy-text) !important;
  border: 1px solid var(--peppy-text) !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
  transition: background 200ms ease, color 200ms ease;
}
body.single-product .added_to_cart:hover {
  background: var(--peppy-text) !important;
  color: var(--peppy-cream) !important;
}

body.single-product .product_meta,
body.single-product .woocommerce-tabs,
body.single-product .woocommerce-product-rating { display: none !important; }

.peppy-benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 0 0 2rem;
  padding: 0;
  list-style: none;
}
.peppy-benefits li {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.4rem;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--peppy-text);
  padding: 1rem 0.5rem;
  border: 1px solid var(--peppy-border);
  border-radius: 4px;
}
.peppy-benefits svg { width: 22px; height: 22px; opacity: 0.85; }

.peppy-product-sections {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 5vw;
  display: grid;
  gap: 3rem;
}
.peppy-product-section h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.75rem !important;
  margin: 0 0 1rem !important;
  color: var(--peppy-text);
}
.peppy-product-section p {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: var(--peppy-text);
  max-width: 72ch;
}
.peppy-specs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem 2rem;
  margin: 0;
  padding: 1.5rem 0;
  border-top: 1px solid var(--peppy-border);
  border-bottom: 1px solid var(--peppy-border);
  list-style: none;
}
.peppy-specs dt {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--peppy-text-muted);
  margin: 0 0 0.25rem;
}
.peppy-specs dd {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--peppy-text);
  margin: 0;
}
.peppy-disclaimer {
  background: var(--peppy-cream-2);
  border-radius: 4px;
  padding: 0.85rem 1rem;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  line-height: 1.55;
  color: var(--peppy-text-muted);
  font-style: italic;
  margin: 0 0 2rem !important;
}

/* Accordion dropdowns */
/* Focus block at the top of the product summary (what it's for) */
.peppy-product-focus {
  margin: 0 0 1.5rem;
}
.peppy-product-focus__tags {
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.peppy-product-focus__tags li a {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--peppy-text);
  background: var(--peppy-lavender);
  border-radius: 999px;
  padding: 0.4rem 0.9rem;
  text-decoration: none !important;
  transition: background 160ms ease;
}
.peppy-product-focus__tags li a:hover { background: var(--peppy-lavender-hover); }
.peppy-product-focus__line {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--peppy-text);
  margin: 0;
}
.peppy-product-focus__line span {
  color: var(--peppy-text-muted);
  font-weight: 400;
}

/* Concise "How it works" science inside the About-this-formula block */
.peppy-summary-science {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(60, 45, 90, 0.1);
}
.peppy-summary-science__label {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.55;
  margin: 0 0 0.6rem !important;
}
.peppy-summary-science__mech {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--peppy-text);
  margin: 0 0 0.75rem !important;
}
.peppy-summary-science__mech strong { font-weight: 600; }
.peppy-summary-science__link {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--peppy-text);
  text-decoration: none !important;
  border-bottom: 1px solid var(--peppy-lavender);
  padding-bottom: 2px;
  margin-top: 0.25rem;
  transition: opacity 160ms ease;
}
.peppy-summary-science__link:hover { opacity: 0.65; }

/* "The research" section (below the product summary) */
.peppy-research {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--peppy-cream-2);
  padding: 4.5rem 5vw;
  border-top: 1px solid rgba(60, 45, 90, 0.08);
}
.peppy-research__inner {
  max-width: 760px;
  margin: 0 auto;
}
.peppy-research__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 3.5vw, 2.6rem) !important;
  color: var(--peppy-text) !important;
  margin: 0 0 0.75rem !important;
  letter-spacing: -0.01em;
}
.peppy-research__lead {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  margin: 0 0 2.5rem;
  max-width: 56ch;
}
.peppy-research__block {
  padding: 1.75rem 0;
  border-top: 1px solid rgba(60, 45, 90, 0.1);
}
.peppy-research__name {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.6rem !important;
  color: var(--peppy-text) !important;
  margin: 0 0 0.85rem !important;
}
.peppy-research__mech {
  font-family: 'Inter', sans-serif;
  font-size: 0.98rem;
  line-height: 1.65;
  color: var(--peppy-text);
  margin: 0 0 1rem;
}
.peppy-research__focus {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  margin: 0 0 1.25rem;
}
.peppy-research__focus span {
  color: var(--peppy-text);
  font-weight: 500;
}
.peppy-research__label {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.55;
  margin: 0 0 0.6rem !important;
}
.peppy-research__topics {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.peppy-research__topics li {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--peppy-text);
  padding-left: 1.25rem;
  position: relative;
}
.peppy-research__topics li a {
  color: var(--peppy-text);
  text-decoration: none !important;
  border-bottom: 1px solid rgba(60, 45, 90, 0.2);
  padding-bottom: 1px;
  transition: border-color 160ms ease, opacity 160ms ease;
}
.peppy-research__topics li a:hover {
  border-color: var(--peppy-lavender);
  opacity: 0.8;
}
.peppy-research__topics li a::after {
  content: "\2197";
  font-size: 0.8em;
  margin-left: 0.3em;
  opacity: 0.5;
  border: none;
}
.peppy-research__topics li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--peppy-lavender);
}
.peppy-research__note {
  font-family: 'Inter', sans-serif;
  font-size: 0.8rem;
  line-height: 1.55;
  color: var(--peppy-text-muted);
  opacity: 0.85;
  margin: 2.5rem 0 0;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(60, 45, 90, 0.1);
}

.peppy-accordions {
  margin: 0 0 2rem;
  border-top: 1px solid var(--peppy-border);
}
.peppy-accordion {
  border-bottom: 1px solid var(--peppy-border);
}
.peppy-accordion summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 0;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--peppy-text);
  cursor: pointer;
  list-style: none;
  transition: color 200ms ease;
}
.peppy-accordion summary::-webkit-details-marker { display: none; }
.peppy-accordion summary:hover { opacity: 0.7; }
.peppy-accordion__icon {
  position: relative;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.peppy-accordion__icon::before,
.peppy-accordion__icon::after {
  content: "";
  position: absolute;
  background: var(--peppy-text);
  border-radius: 1px;
  transition: transform 200ms ease, opacity 200ms ease;
}
.peppy-accordion__icon::before {
  width: 14px;
  height: 1.5px;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.peppy-accordion__icon::after {
  width: 1.5px;
  height: 14px;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}
.peppy-accordion[open] .peppy-accordion__icon::after {
  transform: translateX(-50%) rotate(90deg);
  opacity: 0;
}
.peppy-accordion__body {
  padding: 0 0 1.25rem;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: var(--peppy-text);
}
.peppy-accordion__body p { margin: 0; }
.peppy-accordion__body p + p { margin-top: 0.75rem; }

body.single-product .related.products {
  max-width: 1400px;
  margin: 0 auto;
  padding: 2rem 5vw 5rem;
  border-top: 1px solid var(--peppy-border);
}
body.single-product .related.products > h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 2rem !important;
  margin: 0 0 2rem !important;
  text-align: left;
}

@media (max-width: 900px) {
  body.single-product div.product { grid-template-columns: 1fr; gap: 2rem; }
  body.single-product .woocommerce-product-gallery { position: static; }
  .peppy-benefits { grid-template-columns: 1fr; }
}

/* ============ Breadcrumbs ============ */
.ct-breadcrumbs {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--peppy-text-muted) !important;
  padding: 1rem 5vw !important;
  margin: 0 !important;
  text-align: left !important;
  border: none !important;
  background: transparent !important;
}
.ct-breadcrumbs a {
  color: var(--peppy-text) !important;
  text-decoration: none !important;
  border: none !important;
}
.ct-breadcrumbs a:hover { opacity: 0.65; }
/* Hide breadcrumbs on the main /shop/ page and homepage — redundant */
body.woocommerce-shop .ct-breadcrumbs,
body.home .ct-breadcrumbs { display: none !important; }

/* ============ Catalog category pills (top) ============ */
.peppy-cat-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  padding: 1rem 5vw 2.5rem;
  border-bottom: 1px solid var(--peppy-border);
}
.peppy-cat-pill {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none !important;
  color: var(--peppy-text) !important;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  letter-spacing: 0.04em;
  transition: opacity 200ms ease;
}
.peppy-cat-pill:hover { opacity: 0.7; }
.peppy-cat-pill.is-active .peppy-cat-pill__img {
  outline: 2px solid var(--peppy-text);
  outline-offset: 3px;
}
.peppy-cat-pill__img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
}

/* ============ Catalog layout: sidebar + grid ============ */
.peppy-catalog-shell {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 3rem;
  padding: 0 5vw 4rem;
}
.peppy-catalog-sidebar {
  position: sticky;
  top: 100px;
  align-self: start;
  font-family: 'Inter', sans-serif;
}
.peppy-catalog-sidebar h4 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.25rem !important;
  margin: 0 0 0.75rem !important;
  color: var(--peppy-text) !important;
}
.peppy-catalog-sidebar .peppy-filter-group {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--peppy-border);
}
.peppy-catalog-sidebar .peppy-filter-group:first-child { padding-top: 0; }
.peppy-catalog-sidebar label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 14px;
  margin: 0.4rem 0;
  cursor: pointer;
  color: var(--peppy-text);
}
.peppy-catalog-sidebar input[type="checkbox"] {
  accent-color: var(--peppy-text);
  width: 16px;
  height: 16px;
  margin: 0;
}
.peppy-price-range {
  width: 100%;
  accent-color: var(--peppy-text);
  margin: 0.5rem 0;
}
.peppy-price-output {
  font-size: 13px;
  color: var(--peppy-text-muted);
  display: flex;
  justify-content: space-between;
}
.peppy-clear-filters {
  margin-top: 1.5rem;
  display: inline-block;
  font-size: 13px;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  color: var(--peppy-text);
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
  font-family: inherit;
}
@media (max-width: 900px) {
  .peppy-catalog-shell { grid-template-columns: 1fr; }
  .peppy-catalog-sidebar { position: static; }
}

/* ============ Catalog / Shop page ============ */
/* Scope to the main content container only — the header also uses
   .ct-container and inheriting our 5vw shift here would push the
   nav menu ~55px to the right on shop pages vs every other page. */
body.woocommerce-shop main .ct-container,
body.woocommerce-shop #main .ct-container,
body.post-type-archive-product main .ct-container,
body.post-type-archive-product #main .ct-container,
body.tax-product_cat main .ct-container,
body.tax-product_cat #main .ct-container {
  max-width: 100% !important;
  padding: 0 5vw !important;
}
/* Page title — centered, serif, lots of breathing room */
body.woocommerce-shop .entry-header,
body.post-type-archive-product .entry-header,
body.tax-product_cat .entry-header,
body.woocommerce-shop .page-title-wrap,
body.woocommerce-shop header.entry-header {
  text-align: center !important;
  padding: 4rem 0 0 !important;
  border: none !important;
  background: transparent !important;
}
body.woocommerce-shop .page-title,
body.post-type-archive-product .page-title,
body.tax-product_cat .page-title,
body.woocommerce-shop .entry-title,
body.woocommerce-shop h1 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.5rem, 5vw, 4rem) !important;
  margin: 0 !important;
  color: var(--peppy-text) !important;
  text-align: center !important;
}
.peppy-catalog-subtitle {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: var(--peppy-text-muted);
  text-align: center;
  margin: 0.75rem auto 0 !important;
  max-width: 56ch;
  padding: 0 1rem;
}
/* When moved inside the entry-header, ensure no extra top space */
.entry-header .peppy-catalog-subtitle { margin-top: 1rem !important; }
/* Strip any space that Blocksy adds before the archive description */
.woocommerce-products-header__title + p,
.term-description {
  margin-top: 0 !important;
}
.woocommerce-products-header {
  padding: 0 !important;
  margin: 0 !important;
  text-align: center;
}

/* Toolbar (result count + sorting) — minimal, left/right aligned */
.woo-listing-top,
.woocommerce-notices-wrapper + .woocommerce-result-count,
.woocommerce-shop .woo-listing-top {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 1.5rem 0 !important;
  border-top: 1px solid var(--peppy-border);
  border-bottom: 1px solid var(--peppy-border);
  margin: 0 0 3rem !important;
  background: transparent !important;
}
.woocommerce-result-count {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--peppy-text-muted) !important;
  margin: 0 !important;
}
.woocommerce-ordering {
  position: relative;
}
.woocommerce-ordering::after {
  content: "";
  position: absolute;
  right: 1.25rem;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid var(--peppy-text);
  border-bottom: 1.5px solid var(--peppy-text);
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}
.woocommerce-ordering select {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  border: 1px solid var(--peppy-border) !important;
  background: #fff !important;
  padding: 10px 3rem 10px 1.25rem !important;
  color: var(--peppy-text) !important;
  cursor: pointer;
  appearance: none !important;
  -webkit-appearance: none !important;
  border-radius: 4px !important;
  transition: border-color 200ms ease;
  min-width: 220px !important;
}
.woocommerce-ordering select:hover { border-color: var(--peppy-text) !important; }
.woocommerce-ordering select:focus {
  outline: none !important;
  border-color: var(--peppy-text) !important;
}

/* Product grid — 3 cols (sidebar already eats width), bigger images */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 4rem !important;
}
@media (max-width: 1024px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  .woocommerce ul.products { grid-template-columns: 1fr !important; }
}

.woocommerce ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  list-style: none !important;
  text-align: center !important;
  float: none !important;
}
/* Product image (Blocksy renders inside <figure><a class="ct-media-container">) */
.woocommerce ul.products li.product figure {
  margin: 0 0 1rem !important;
}
.woocommerce ul.products li.product .ct-media-container,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 4px !important;
  overflow: hidden;
}
.woocommerce ul.products li.product img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  margin: 0 !important;
  border-radius: 4px !important;
  transition: transform 500ms cubic-bezier(0.33, 1, 0.68, 1);
}
.woocommerce ul.products li.product .ct-media-container {
  overflow: hidden;
  position: relative;
}
/* Keep the product image steady on hover — no scale, no overlay.
   The global a:hover { opacity: 0.65 } was also washing the image
   out (because the image is wrapped in a link), so force opacity 1
   on the image link to neutralize that. */
.woocommerce ul.products li.product a:hover,
.woocommerce ul.products li.product .ct-media-container:hover,
.woocommerce ul.products li.product a:hover img,
.woocommerce ul.products li.product .ct-media-container img { opacity: 1 !important; }
.woocommerce ul.products li.product:hover img { transform: none; }
.woocommerce ul.products li.product .ct-media-container::after { content: none; }
/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.35rem !important;
  line-height: 1.2 !important;
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
  color: var(--peppy-text) !important;
  text-align: center !important;
}
.woocommerce ul.products li.product a {
  text-decoration: none !important;
  color: var(--peppy-text) !important;
}
/* Short description under product title */
.woocommerce ul.products li.product .peppy-card-desc {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: var(--peppy-text-muted);
  margin: 0 auto 0.75rem;
  padding: 0 0.5rem;
  max-width: 32ch;
  text-align: center;
}

/* Price */
.woocommerce ul.products li.product .price {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: var(--peppy-text) !important;
  margin: 0 0 0.75rem !important;
  display: block;
  text-align: center;
}
.woocommerce ul.products li.product .price ins { background: transparent !important; }
.woocommerce ul.products li.product .price del {
  color: var(--peppy-text-muted) !important;
  opacity: 0.6;
  margin-right: 0.4rem;
}
/* Hide the default "Add to Cart" button on grid — keep the card clean,
   the whole card is clickable to the product page */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .added_to_cart {
  display: none !important;
}
/* Hide noisy badges, category tags, and other clutter inside cards */
.woocommerce ul.products li.product .onsale,
.woocommerce ul.products li.product .ct-out-of-stock-badge,
.woocommerce ul.products li.product .ct-product-categories,
.woocommerce ul.products li.product .product_meta,
.woocommerce ul.products li.product .posted_in,
.woocommerce ul.products li.product .ct-product-tax,
.woocommerce ul.products li.product .entry-meta,
.woocommerce ul.products li.product .meta-categories {
  display: none !important;
}

/* Pagination */
.woocommerce-pagination ul.page-numbers {
  display: flex !important;
  justify-content: center;
  gap: 0.5rem;
  list-style: none;
  padding: 2rem 0 4rem !important;
  border: none !important;
  margin: 0 !important;
}
.woocommerce-pagination .page-numbers {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  border: 1px solid var(--peppy-border) !important;
  padding: 0.5rem 0.9rem !important;
  color: var(--peppy-text) !important;
  background: transparent !important;
  border-radius: 4px !important;
  text-decoration: none !important;
}
.woocommerce-pagination .page-numbers.current {
  background: var(--peppy-text) !important;
  color: var(--peppy-cream) !important;
  border-color: var(--peppy-text) !important;
}

/* ============ Peppy footer ============ */
.peppy-footer {
  background: var(--peppy-lavender);
  color: var(--peppy-text);
  padding: 4rem 5vw 2.5rem;
}
.peppy-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
  gap: 3rem;
}
.peppy-footer__brand p {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--peppy-text);
  margin: 0 0 2rem;
  max-width: 28ch;
}


.peppy-footer h4 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.5rem !important;
  color: var(--peppy-text) !important;
  margin: 0 0 1.25rem !important;
}
.peppy-footer__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.peppy-footer__col a {
  color: var(--peppy-text);
  text-decoration: none !important;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  transition: opacity 200ms ease;
}
.peppy-footer__col a:hover { opacity: 0.65; }
.peppy-footer__col li:not(:has(a)) {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--peppy-text);
  opacity: 0.65;
}

.peppy-footer__contact p {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--peppy-text);
  margin: 0 0 1.5rem;
  max-width: 32ch;
  line-height: 1.5;
}
.peppy-footer__contact-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 0.75rem;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
}
.peppy-footer__contact-item svg { width: 18px; height: 18px; flex-shrink: 0; }
.peppy-footer__contact-item a { color: var(--peppy-text); text-decoration: none !important; }

.peppy-footer__bottom {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0,0,0,0.1);
  display: flex;
  justify-content: space-between;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: rgba(0,0,0,0.65);
}

@media (max-width: 1024px) {
  .peppy-footer__grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  .peppy-footer__grid {
    grid-template-columns: 1fr;
  }
}

hr { border-color: var(--peppy-border) !important; }

/* ============ Hide page chrome on front page ============ */
body.home .page-title,
body.home .entry-header,
body.home .ct-hero-section,
body.home .page header.entry-header,
body.home h1.entry-title { display: none !important; }
body.home .entry-content { margin-top: 0 !important; padding-top: 0 !important; }
body.home article, body.home main, body.home .ct-container,
body.home .ct-main-container, body.home .ct-container-narrow {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.home .entry-content > * { max-width: none; margin-top: 0; margin-bottom: 0; }
body.home main, body.home #main, body.home [class*="main-container"] {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.home article.post, body.home article.page {
  padding: 0 !important;
  margin: 0 !important;
}
/* Some Blocksy themes wrap article in a card with margin */
body.home .ct-page-content,
body.home .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}
/* The culprit: Blocksy's full-width container has its own padding */
body.home .ct-container-full,
body.home div.ct-container-full,
body.home [class*="ct-container"] {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}
/* Nuke any remaining top/bottom space on front page */
body.home #main,
body.home #primary,
body.home .ct-main-styles,
body.home .ct-main,
body.home .content-area,
body.home .site-main,
body.home [class*="hero-section"],
body.home [class*="page-content"] {
  padding: 0 !important;
  margin: 0 !important;
}
body.home > * { margin-top: 0 !important; }

/* ============ Header layout: menu LEFT, logo CENTER, search RIGHT ============ */
/* Use flex: menu on left, search on right, logo absolutely centered between them */
header.ct-header [data-device="desktop"] [data-row="middle"] {
  padding: 1.5rem 0 !important;
  position: relative !important;
}
/* Lock header row to a fixed single-line height on every page */
header.ct-header [data-device="desktop"] [data-row="middle"] .ct-container {
  height: 50px !important;
  max-height: 50px !important;
  min-height: 0 !important;
}
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="start"],
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"],
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] > div,
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] [data-items="primary"],
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] nav,
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] ul.menu {
  height: 50px !important;
  max-height: 50px !important;
  min-height: 0 !important;
  align-items: center !important;
  align-content: center !important;
}
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
}
header.ct-header [data-device="desktop"] [data-row="middle"] .ct-container {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  position: static !important;
  min-height: 70px;
  padding: 0 4vw !important;
  max-width: 100% !important;
  /* Force full-width margin behavior. Without this, some
     body-scoped rules (e.g. woocommerce-shop) cause the header
     container to inherit a centering margin and the nav menu
     shifts ~55px to the right vs other pages. */
  width: 100% !important;
  margin: 0 !important;
}
/* Anchor logo to the full row (viewport width), not the container */
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="start"] {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  z-index: 2;
}
/* Logo: absolute center */
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="start"] {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
}
/* Menu+search column: takes full width, flex justified */
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] {
  width: 100% !important;
}
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] [data-items="primary"] {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  gap: 1.25rem !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* Account feature is disabled for now; keep search + cart in the header. */
header.ct-header .ct-header-account,
header.ct-header [data-id="account"] {
  display: none !important;
}
/* Push the search + cart cluster to the far right */
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] [data-items="primary"] > button.ct-header-search,
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] [data-items="primary"] > [data-id="search"] {
  margin-left: auto !important;
}
/* Space the icon items (search/cart) so the cart badge has room to breathe. */
header.ct-header [data-device="desktop"] [data-row="middle"] .ct-header-cart,
header.ct-header [data-device="desktop"] [data-row="middle"] .ct-header-account,
header.ct-header [data-device="desktop"] [data-row="middle"] .ct-header-search {
  margin: 0 0 0 1.25rem !important;
}
header.ct-header [data-device="desktop"] [data-row="middle"] [data-items="primary"] > :first-child {
  margin-left: 0 !important;
}
/* Bump icon sizes to match Shopify weight */
header.ct-header .ct-icon,
header.ct-header svg.ct-icon,
header.ct-header .ct-header-cart svg,
header.ct-header .ct-header-account svg,
header.ct-header .ct-header-search svg {
  width: 20px !important;
  height: 20px !important;
}
/* Cart badge (count number) — make readable */
header.ct-header .ct-dynamic-count-cart {
  font-size: 11px !important;
  font-weight: 500;
}
/* Hide the cart subtotal label ($0.00) next to the cart icon itself —
   but NOT inside the mini-cart dropdown where we want it visible. */
header.ct-header .ct-header-cart > .ct-cart-item .ct-label,
header.ct-header .ct-header-cart > .ct-cart-item .ct-amount,
header.ct-header .ct-header-cart > .ct-cart-item > .woocommerce-Price-amount {
  display: none !important;
}
header.ct-header .ct-header-cart,
header.ct-header .ct-cart-item {
  display: inline-flex !important;
  align-items: center !important;
  height: auto !important;
}

/* ============ Search modal — slim horizontal strip at top ============ */
/* Panel itself: full-width strip at top of page */
#search-modal {
  background: var(--peppy-cream) !important;
  border-bottom: 1px solid var(--peppy-border) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05) !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 1.25rem !important;
  padding: 1rem 4vw !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  inset: 0 0 auto 0 !important;
  z-index: 99999 !important;
}
/* Offset for WP admin bar when logged in */
body.admin-bar #search-modal { top: 32px !important; }
@media (max-width: 782px) {
  body.admin-bar #search-modal { top: 46px !important; }
}
/* Kill any dark backdrop overlay */
body::after,
body::before { background: transparent !important; }
.ct-panels-overlay,
[class*="overlay"]:not(.peppy-banner)::before {
  display: none !important;
  background: transparent !important;
  opacity: 0 !important;
}

/* Content area: flex row */
#search-modal .ct-panel-content,
#search-modal .ct-panel-content-inner {
  flex: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: 48px !important;
}
#search-modal .ct-search-form {
  display: flex !important;
  align-items: stretch !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
  background: #fff !important;
  border: 1px solid var(--peppy-border) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  height: 48px !important;
  max-width: none !important;
}
#search-modal input.modal-field,
#search-modal input[type="search"] {
  flex: 1 !important;
  border: none !important;
  background: transparent !important;
  padding: 0 1rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  box-shadow: none !important;
  outline: none !important;
  height: 100% !important;
  margin: 0 !important;
}
#search-modal .ct-search-form-controls {
  display: flex !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--peppy-dark) !important;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  flex: 0 0 auto !important;
  width: 56px !important;
  height: 100% !important;
  top: auto !important;
  right: auto !important;
}
#search-modal .ct-search-form-controls button[type="submit"] {
  background: var(--peppy-dark) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: static !important;
}
#search-modal .ct-search-form-controls button[type="submit"] svg {
  fill: #fff !important;
  color: #fff !important;
  width: 18px !important;
  height: 18px !important;
}

/* "Cancel" link — replaces the X close button */
#search-modal .ct-panel-actions {
  order: 99 !important;
  padding: 0 !important;
  margin: 0 !important;
  flex-shrink: 0;
}
#search-modal .ct-toggle-close {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  color: var(--peppy-text) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
#search-modal .ct-toggle-close svg { display: none !important; }
#search-modal .ct-toggle-close::after { content: "Cancel"; }

/* Keep modal as single row, no wrapping */
#search-modal {
  flex-wrap: nowrap !important;
  align-items: center !important;
  overflow: visible !important;
}

/* Hide Blocksy's own live results renderer — we use our own panel below */
#search-modal .ct-search-results,
.ct-search-results { display: none !important; }

/* ===== Our own live-search panel (overrides Blocksy's broken renderer) ===== */
#peppy-search-panel {
  position: fixed;
  top: 80px;
  left: 0;
  right: 0;
  background: #fff;
  border-bottom: 1px solid var(--peppy-border);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  max-height: calc(100vh - 100px);
  overflow-y: auto;
  z-index: 99998;
  padding: 0;
  display: none;
}
body.admin-bar #peppy-search-panel { top: 112px; }
#peppy-search-panel[data-open="true"] { display: block; }
#peppy-search-backdrop {
  position: fixed;
  top: 80px;
  left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 99997;
  display: none;
}
body.admin-bar #peppy-search-backdrop { top: 112px; }
#peppy-search-backdrop[data-open="true"] { display: block; }
.peppy-search-header {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--peppy-text);
  padding: 1.25rem 4vw 1rem;
  border-bottom: 1px solid var(--peppy-border);
  margin: 0;
}
.peppy-search-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 2rem;
  padding: 1.5rem 4vw;
  margin: 0;
  list-style: none;
}
.peppy-search-item {
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: var(--peppy-text) !important;
  border: none !important;
}
.peppy-search-item img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 4px;
  margin-bottom: 0.75rem;
  background: var(--peppy-cream-2);
}
.peppy-search-item__brand {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--peppy-text-muted);
  text-align: center;
  margin: 0 0 0.25rem;
}
.peppy-search-item__name {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 1.1rem;
  text-align: center;
  margin: 0 0 0.25rem;
  color: var(--peppy-text);
  line-height: 1.2;
}
.peppy-search-item__price {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  text-align: center;
  color: var(--peppy-text);
  margin: 0;
}
.peppy-search-viewall {
  display: block;
  text-align: center;
  padding: 1rem;
  border-top: 1px solid var(--peppy-border);
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--peppy-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.peppy-search-empty {
  padding: 3rem 4vw;
  text-align: center;
  color: var(--peppy-text-muted);
  font-family: 'Inter', sans-serif;
  font-size: 14px;
}
/* Dim backdrop behind the search results when typing */
#search-modal[data-state="open"]::before {
  content: "";
  position: fixed;
  top: 80px;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.35);
  z-index: 99997;
  pointer-events: none;
}
body.admin-bar #search-modal[data-state="open"]::before { top: 112px; }
/* Hide backdrop if no results are showing (parent: empty results) */
#search-modal:not(:has(.ct-search-results:not(:empty)))::before { display: none; }

/* Live search results — fixed panel that drops down BELOW the search bar */
#search-modal .ct-search-results {
  position: fixed !important;
  top: 80px !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  background: #fff !important;
  border-bottom: 1px solid var(--peppy-border) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08) !important;
  max-height: calc(100vh - 100px) !important;
  overflow-y: auto !important;
  padding: 2rem 4vw !important;
  margin: 0 !important;
  z-index: 99998 !important;
}
body.admin-bar #search-modal .ct-search-results { top: 112px !important; }

/* Render results as a grid of vertical cards */
#search-modal .ct-search-results > * {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
  gap: 2rem !important;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}
#search-modal .ct-search-results li,
#search-modal .ct-search-results .ct-search-item {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  background: transparent !important;
  border: none !important;
}
#search-modal .ct-search-results li a,
#search-modal .ct-search-results .ct-search-item a {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  text-decoration: none !important;
  color: var(--peppy-text) !important;
  padding: 0 !important;
  border: none !important;
}
#search-modal .ct-search-results img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 4px !important;
  margin: 0 0 0.75rem 0 !important;
  background: var(--peppy-cream-2);
}
#search-modal .ct-search-results .ct-search-item-title,
#search-modal .ct-search-results h3,
#search-modal .ct-search-results [class*="title"] {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.1rem !important;
  line-height: 1.2 !important;
  margin: 0 0 0.25rem !important;
  text-align: center !important;
  color: var(--peppy-text) !important;
}
#search-modal .ct-search-results .price,
#search-modal .ct-search-results [class*="price"] {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: var(--peppy-text) !important;
  margin: 0 !important;
}
#search-modal .ct-search-results [class*="results-group-heading"],
#search-modal .ct-search-results .group-heading,
#search-modal .ct-search-results > div > div:first-child {
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--peppy-text-muted) !important;
  padding: 1rem 1.5rem !important;
  background: transparent !important;
  border-bottom: 1px solid var(--peppy-border);
  margin: 0 !important;
}
#search-modal .ct-search-results ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 1rem 1.5rem !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
  gap: 1rem !important;
}
#search-modal .ct-search-results ul li {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
}
#search-modal .ct-search-results ul li a {
  display: block !important;
  text-decoration: none !important;
  color: var(--peppy-text) !important;
  border: none !important;
  padding: 0 !important;
}
#search-modal .ct-search-results img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 4px !important;
  margin-bottom: 0.75rem !important;
  background: var(--peppy-cream-2);
}
#search-modal .ct-search-results h3,
#search-modal .ct-search-results [class*="result-title"] {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.1rem !important;
  margin: 0 0 0.25rem !important;
  text-align: center;
}
#search-modal .ct-search-results [class*="price"],
#search-modal .ct-search-results .price {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  text-align: center;
  display: block;
}
/* "View all results" footer link */
#search-modal .ct-search-results [class*="view-all"],
#search-modal .ct-search-results > a:last-child {
  display: block !important;
  text-align: center !important;
  padding: 1rem !important;
  border-top: 1px solid var(--peppy-border) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: var(--peppy-text) !important;
  text-decoration: none !important;
}
/* Make sure the .ct-container hugs the viewport edges */
header.ct-header [data-device="desktop"] [data-row="middle"] [data-column="end"] {
  padding: 0 !important;
  margin: 0 !important;
}

/* Make the logo bigger + bolder to match Shopify */
.ct-header .site-title a {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 700 !important;
  font-size: 1.85rem !important;
  letter-spacing: -0.005em;
}

/* Force the nav menu UL to be horizontal — Woo CSS overrides it on shop pages */
.ct-header nav.menu-container,
.ct-header #header-menu-1 {
  display: block !important;
}
.ct-header ul.menu,
.ct-header #menu-main {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.ct-header ul.menu li.menu-item {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: block !important;
}
/* Use per-link padding instead of gap-between-items so each label
   gets equal breathing room regardless of word width. With gap+items
   only, "Catalog"→"About" reads tighter than "Home"→"Catalog" even
   though both pixel gaps are 24px, because the eye measures
   whitespace from word edge to word edge. */
.ct-header ul.menu li.menu-item > a.ct-menu-link {
  padding: 0 0.9rem !important;
}
/* Kill Blocksy's "trim menu items" overflow behavior. At narrower
   desktop widths it stuffs Catalog/About/Contact into a "More"
   dropdown — we have 4 items, they always fit, never collapse.
   display:contents promotes the items inside .more-items-container
   up to be flex children of ul.menu, so they render inline as if
   the "More" wrapper wasn't there. The "More" link itself stays
   hidden. */
.ct-header ul.menu li.menu-item.more-items-container,
.ct-header ul.menu li.menu-item.more-items-container > ul.sub-menu {
  display: contents !important;
}
.ct-header ul.menu li.menu-item.more-items-container > a,
.ct-header ul.menu li.menu-item.more-items-container > .ct-toggle-dropdown-desktop-ghost {
  display: none !important;
}
.ct-header ul.menu li.menu-item.more-items-container > ul.sub-menu > li.menu-item {
  position: static !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
/* Strip the dropdown-link treatment (Blocksy applies
   pointer-events:none until hover-open + extra padding height) so
   the promoted items behave like top-level menu links. */
.ct-header ul.menu li.menu-item.more-items-container > ul.sub-menu > li.menu-item > a.ct-menu-link {
  pointer-events: auto !important;
  padding: 0 0.9rem !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: inherit !important;
}

/* Menu items: title case, not uppercase */
.ct-header .ct-menu-link {
  text-transform: none !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 400 !important;
  font-size: 15px !important;
  letter-spacing: 0 !important;
  color: var(--peppy-text) !important;
}
.ct-header .menu-item.current-menu-item .ct-menu-link {
  color: var(--peppy-text) !important;
  opacity: 1;
}
.ct-header .ct-menu-link:hover { opacity: 0.65; }

/* ============ Homepage sections ============ */

/* Hero */
.peppy-hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  background-image: url('/wp-content/uploads/sections/hero-women.jpg');
  background-size: cover;
  background-position: center right;
  display: flex;
  align-items: center;
  padding: 0 6vw;
  margin: 0;
  isolation: isolate;
}
/* Soft light wash on the left so the dark text stays legible. */
.peppy-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg,
      rgba(251,249,246,0.90) 0%,
      rgba(251,249,246,0.58) 32%,
      rgba(251,249,246,0.12) 56%,
      transparent 74%);
  pointer-events: none;
}
.peppy-hero__inner {
  max-width: 620px;
  color: var(--peppy-text, #1a1a1a);
  position: relative;
  z-index: 2;
}
.peppy-hero h1 {
  color: var(--peppy-text, #1a1a1a) !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.6rem, 5.2vw, 4.25rem);
  line-height: 1.04;
  margin: 0 0 1.5rem;
  letter-spacing: -0.01em;
  text-shadow: none;
}
.peppy-hero p {
  color: var(--peppy-text-muted, rgba(26,26,26,0.75));
  font-size: clamp(15px, 1.4vw, 18px);
  line-height: 1.6;
  margin: 0 0 2rem;
  max-width: 46ch;
  text-shadow: none;
}
/* Luma-style hero actions: dark primary + outline ghost, plus trust line. */
.peppy-hero__actions{display:flex;flex-wrap:wrap;gap:14px;}
.peppy-hbtn{display:inline-block;padding:15px 32px;border-radius:6px;font-family:'Inter',sans-serif;font-weight:600;font-size:14px;text-decoration:none !important;border:1px solid transparent;transition:background-color .24s ease,border-color .24s ease,color .24s ease;}
.peppy-hbtn--primary{background:var(--peppy-dark,#1a1a1a);color:#fff !important;border-color:var(--peppy-dark,#1a1a1a);}
.peppy-hbtn--primary:hover{background:#000;color:#fff !important;}
.peppy-hbtn--ghost{background:transparent;color:var(--peppy-text,#1a1a1a) !important;border-color:rgba(26,26,26,0.30);}
.peppy-hbtn--ghost:hover{border-color:var(--peppy-text,#1a1a1a);background:rgba(26,26,26,0.04);}
.peppy-hero__trust{color:var(--peppy-text-muted,rgba(26,26,26,0.6)) !important;font-family:'Inter',sans-serif;font-size:13px;letter-spacing:.01em;margin:30px 0 0 !important;text-shadow:none !important;max-width:none;}
@media (max-width:640px){.peppy-hero::before{background:linear-gradient(180deg,rgba(251,249,246,0.86) 0%,rgba(251,249,246,0.45) 45%,rgba(251,249,246,0.72) 100%);}}
/* ---- Desktop header: logo LEFT, links CENTERED, icons RIGHT (Luma style) ----
   Blocksy absolutely-centers the logo over a full-width menu+icons row, so we
   work with that: move the absolute logo to the left, center the menu, icons
   stay right. High specificity to beat Blocksy's own header rules. */
@media (min-width:1000px){
  .ct-header [data-device="desktop"] [data-row="middle"] .ct-container [data-column="start"]{
    left:6vw !important;right:auto !important;top:50% !important;transform:translateY(-50%) !important;justify-self:start !important;
  }
  .ct-header [data-device="desktop"] [data-row="middle"] .ct-container [data-column="end"]{
    justify-content:flex-end !important;padding-left:200px !important;
  }
  .ct-header [data-device="desktop"] [data-row="middle"] .ct-container [data-column="end"] ul.menu,
  .ct-header [data-device="desktop"] [data-row="middle"] .ct-container [data-column="end"] nav.menu,
  .ct-header [data-device="desktop"] [data-row="middle"] .ct-container [data-column="end"] > nav,
  .ct-header [data-device="desktop"] [data-row="middle"] .ct-container [data-column="end"] [class*="menu"]:first-child{
    margin-left:auto !important;margin-right:auto !important;
  }
}
.peppy-hero a.peppy-btn,
a.peppy-btn,
.entry-content a.peppy-btn {
  display: inline-block;
  background: var(--peppy-lavender) !important;
  color: var(--peppy-text) !important;
  padding: 12px 26px !important;
  border-radius: 4px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  border-bottom: none !important;
  transition: background-color 240ms ease;
}
.peppy-hero a.peppy-btn:hover,
a.peppy-btn:hover,
.entry-content a.peppy-btn:hover { background: var(--peppy-lavender-hover) !important; opacity: 1; }

/* Make full-bleed sections break out of WP's content container */
.peppy-hero-wrap,
.peppy-split-wrap { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }

/* Editorial pull-quote section — "Science, softened." */
.peppy-split {
  background: var(--peppy-cream);
  padding: 7rem 5vw 7.5rem;
}
.peppy-split__inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 5vw;
  align-items: center;
}
.peppy-split__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
.peppy-split__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.6;
  margin: 0 0 1.5rem;
}
.peppy-split__copy h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  color: var(--peppy-text) !important;
  font-size: clamp(2.75rem, 5.5vw, 5rem) !important;
  line-height: 1.02;
  letter-spacing: -0.015em;
  margin: 0 0 1.75rem;
  max-width: 14ch;
}
.peppy-split__copy p {
  color: var(--peppy-text);
  opacity: 0.78;
  font-family: 'Inter', sans-serif;
  font-size: clamp(1rem, 1.15vw, 1.15rem);
  line-height: 1.55;
  max-width: 40ch;
  margin: 0 0 2.25rem;
}
.peppy-split__link,
.peppy-split__link:link,
.peppy-split__link:visited,
.peppy-split__link:hover {
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--peppy-text);
  text-decoration: none !important;
  border-bottom: 1px solid var(--peppy-text);
  padding-bottom: 4px;
  letter-spacing: 0.01em;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: gap 240ms ease, opacity 240ms ease;
}
.peppy-split__link:hover { gap: 0.75rem; opacity: 0.7; }
.peppy-split__link::after {
  content: "→";
  font-size: 1.05em;
  line-height: 1;
}
.peppy-split__image {
  background-size: cover;
  background-position: center;
  border-radius: 16px;
  aspect-ratio: 4 / 5;
  width: 100%;
  box-shadow: 0 30px 60px -40px rgba(60, 45, 90, 0.4);
}
@media (max-width: 900px) {
  .peppy-split { padding: 4rem 5vw 4.5rem; }
  .peppy-split__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .peppy-split__image {
    aspect-ratio: 4 / 3;
    order: -1;
    background-position: center 18%;
  }
}

/* ============ Shop by category — editorial tile mosaic ============ */
.peppy-categories-wrap {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  background: var(--peppy-cream);
  padding: 2.75rem 5vw 5rem;
}
.peppy-categories__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  color: var(--peppy-text) !important;
  margin: 0 0 1.75rem;
  text-align: left;
}
.peppy-categories__grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  grid-template-rows: repeat(4, minmax(0, 21vh));
  grid-template-areas:
    "glow      recovery"
    "glow      performance"
    "glow      longevity"
    "metabolic longevity";
  gap: 1rem;
  max-height: 85vh;
}
/* Bento positions — Skin & Glow + Longevity are the tall portrait flanks */
.peppy-categories__grid > a:nth-child(1) { grid-area: glow; }
.peppy-categories__grid > a:nth-child(2) { grid-area: recovery; }
.peppy-categories__grid > a:nth-child(3) { grid-area: performance; }
.peppy-categories__grid > a:nth-child(4) { grid-area: metabolic; }
.peppy-categories__grid > a:nth-child(5) { grid-area: longevity; }

.peppy-cat-tile,
.peppy-cat-tile:link,
.peppy-cat-tile:visited,
.peppy-cat-tile:hover,
.peppy-cat-tile:focus,
.peppy-cat-tile:active {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 24px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-color: var(--peppy-cream-2);
  text-decoration: none !important;
  color: var(--peppy-text);
  isolation: isolate;
  opacity: 1 !important;
  transition: transform 360ms ease, box-shadow 360ms ease;
}
.peppy-cat-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -22px rgba(60, 45, 90, 0.35);
}
/* Bottom-only dark gradient behind the label */
.peppy-cat-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.55) 100%);
  z-index: 1;
  pointer-events: none;
  transition: opacity 300ms ease;
}
/* Metabolic tile is especially light — stronger gradient to keep text legible */
.peppy-categories__grid > a:nth-child(4)::after {
  background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.7) 100%);
}
.peppy-cat-tile__label {
  position: absolute;
  left: 1.75rem;
  right: 4.5rem;
  bottom: 1.4rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.peppy-cat-tile__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fff;
  opacity: 0.85;
  line-height: 1;
}
.peppy-cat-tile__name {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: clamp(1.4rem, 2vw, 1.85rem);
  color: #fff;
  letter-spacing: -0.005em;
  line-height: 1.1;
  text-shadow: 0 1px 14px rgba(0,0,0,0.25);
}
/* Featured (flagship) tile — larger type */
.peppy-categories__grid > a:nth-child(1) .peppy-cat-tile__name {
  font-size: clamp(2.25rem, 3.4vw, 3.25rem);
  margin-top: 0.25rem;
}
.peppy-cat-tile__cta { display: none; }
.peppy-cat-tile__arrow {
  position: absolute;
  right: 1.5rem;
  bottom: 1.4rem;
  z-index: 2;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--peppy-text);
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 240ms ease, transform 240ms ease;
  box-shadow: 0 4px 14px -6px rgba(0,0,0,0.18);
}
.peppy-cat-tile__arrow svg { width: 14px; height: 14px; }
.peppy-cat-tile:hover .peppy-cat-tile__arrow {
  opacity: 1;
  transform: translateX(0);
}

@media (max-width: 900px) {
  .peppy-categories__grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 200px);
  }
  .peppy-categories__grid > a:nth-child(1) { grid-column: 1 / span 2; grid-row: 1; }
  .peppy-categories__grid > a:nth-child(2) { grid-column: 1; grid-row: 2; }
  .peppy-categories__grid > a:nth-child(3) { grid-column: 2; grid-row: 2; }
  .peppy-categories__grid > a:nth-child(4) { grid-column: 1; grid-row: 3; }
  .peppy-categories__grid > a:nth-child(5) { grid-column: 2; grid-row: 3; }
}
@media (max-width: 480px) {
  .peppy-categories__grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    grid-template-areas: none;
    max-height: none;
  }
  .peppy-categories__grid > a:nth-child(n) {
    grid-column: 1;
    grid-row: auto;
    grid-area: auto;
    aspect-ratio: 4 / 3;
  }
}

/* ============ Mobile header + global mobile fixes ============ */
@media (max-width: 999px) {
  /* Give the mobile logo breathing room from the viewport edges so
     "Pretty Peppy" isn't flush against the left edge. */
  header.ct-header [data-device="mobile"] [data-row="middle"] {
    padding: 0.5rem 1.25rem !important;
  }
  header.ct-header [data-device="mobile"] [data-row="middle"] .ct-container {
    padding: 0 !important;
    max-width: 100% !important;
  }
  header.ct-header [data-device="mobile"] .site-title {
    font-size: 1.4rem !important;
  }
  header.ct-header [data-device="mobile"] .site-title a {
    padding-left: 0 !important;
  }
  /* Mobile menu drawer (offcanvas) — Blocksy ships it with a
     transparent background so the menu items are invisible against the
     page underneath. Give it a solid cream background and style the
     menu items in the brand voice. */
  .ct-panel.ct-header,
  .ct-panel.ct-header .ct-panel-inner {
    background: var(--peppy-cream) !important;
  }
  .ct-panel.ct-header .ct-panel-inner {
    padding: 1.25rem 2rem 2.5rem !important;
  }
  .ct-panel.ct-header .ct-toggle-close svg path { fill: var(--peppy-text); }
  .ct-panel.ct-header .ct-panel-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1.5rem;
  }
  .ct-panel.ct-header .ct-toggle-close {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
  }
  .ct-panel.ct-header .ct-toggle-close svg { width: 18px; height: 18px; }
  .ct-panel.ct-header nav.mobile-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
  }
  .ct-panel.ct-header nav.mobile-menu ul li { margin: 0; padding: 0; }
  .ct-panel.ct-header nav.mobile-menu ul a {
    display: block;
    font-family: 'Cormorant Garamond', serif !important;
    font-weight: 500;
    font-size: 1.85rem;
    color: var(--peppy-text) !important;
    text-decoration: none !important;
    padding: 0.65rem 0;
    line-height: 1.2;
  }
  .ct-panel.ct-header nav.mobile-menu ul a:hover { opacity: 0.7; }
  /* Featured Formulas: product image at full mobile width becomes very
     tall when it's 1:1. Constrain to 4:3 on mobile so the card feels
     less massive. */
  .peppy-product-card__image { aspect-ratio: 4 / 3 !important; }
  /* Tighten the About page transitions on mobile */
  .peppy-about__values { padding: 3.25rem 5vw !important; }
  .peppy-about__banner { padding: 3.5rem 5vw !important; }
  .peppy-about__section { padding: 3rem 5vw !important; }
  /* Tighten Contact page top padding on mobile so "Let's talk." starts
     sooner under the header. */
  .peppy-contact-wrap { padding: 2.5rem 5vw 4rem !important; }
}

/* ============ Featured Formulas ============ */
.peppy-featured-wrap {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  background: var(--peppy-cream);
  padding: 5.5rem 5vw 5.5rem;
}
.peppy-featured__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 3rem;
}
.peppy-featured__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  margin: 0;
}
.peppy-featured__nav {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}
.peppy-featured__nav button {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--peppy-text);
  background: transparent;
  color: var(--peppy-text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 200ms ease, color 200ms ease, opacity 200ms ease;
  padding: 0;
}
.peppy-featured__nav button:hover:not(:disabled) {
  background: var(--peppy-text);
  color: var(--peppy-cream);
}
.peppy-featured__nav button:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.peppy-featured__nav svg { width: 18px; height: 18px; }
.peppy-featured__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 3fr);
  gap: 1.5rem;
  align-items: stretch;
  position: relative;
}
.peppy-featured__lifestyle {
  background-size: cover;
  background-position: center;
  border-radius: 4px;
}
.peppy-featured__grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 3rem) / 3);
  gap: 1.5rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  padding-bottom: 0.5rem;
  scroll-padding-left: 0;
}
.peppy-featured__grid .peppy-product-card {
  scroll-snap-align: start;
  min-width: 0;
}
/* Hide the horizontal scrollbar on the featured carousel — premium feel */
.peppy-featured__grid { scrollbar-width: none; -ms-overflow-style: none; }
.peppy-featured__grid::-webkit-scrollbar { display: none; height: 0; width: 0; }
.peppy-product-card {
  background: transparent;
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: var(--peppy-text) !important;
  position: relative;
}
/* Kill any inherited underlines inside cards */
.peppy-product-card a,
.peppy-product-card a:link,
.peppy-product-card a:visited,
.peppy-product-card a:hover,
body .peppy-product-card a,
body.home .peppy-product-card a,
.entry-content .peppy-product-card a {
  text-decoration: none !important;
  border-bottom: none !important;
}
.peppy-product-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--peppy-dark);
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 2px;
  z-index: 2;
}
.peppy-product-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  background-color: var(--peppy-cream-2);
  overflow: hidden;
}
.peppy-product-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Neutralize the global a:hover opacity fade on Featured/Launch
   product image links so the image stays steady on hover. */
.peppy-product-card a.peppy-product-card__image:hover,
.peppy-product-card a.peppy-product-card__image { opacity: 1 !important; }
.peppy-product-card__body {
  padding: 1.25rem 0 1rem;
  text-align: center;
}
.peppy-product-card__brand {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--peppy-text-muted);
  margin: 0 0 0.5rem;
}
.peppy-product-card__name {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.35rem;
  margin: 0 0 0.5rem;
  color: var(--peppy-text) !important;
}
.peppy-product-card__price {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  margin: 0 0 0.5rem;
}
.peppy-product-card__stock {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: #2d9c5a;
  margin: 0 0 1rem;
}
.peppy-product-card__stock::before { content: "• "; }
.peppy-product-card__cta {
  display: block;
  border-top: 1px solid rgba(0,0,0,0.15);
  padding: 16px 14px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--peppy-text);
  text-decoration: none !important;
  border-bottom: none !important;
  text-align: center;
  transition: background-color 200ms ease;
  margin-top: auto;
}
.peppy-product-card__cta:hover { background: rgba(0,0,0,0.04); color: var(--peppy-text); }
@media (max-width: 1024px) {
  .peppy-featured__layout { grid-template-columns: 1fr; }
  .peppy-featured__lifestyle { min-height: 360px; }
}
@media (max-width: 768px) {
  /* The carousel uses grid-auto-flow: column which keeps 3 cards
     side-by-side at narrow widths and clips the leftmost name to a
     vertical 1-letter-per-line stack. Force single-column stack on
     mobile. */
  .peppy-featured__grid {
    grid-auto-flow: row !important;
    grid-auto-columns: auto !important;
    grid-template-columns: 1fr !important;
    overflow-x: visible !important;
    scroll-snap-type: none !important;
  }
  .peppy-featured__nav { display: none; }
  /* The lifestyle photo is decorative — on mobile it consumed the
     entire fold before any product was visible. Hide it; the section
     becomes title → product cards, which is what matters on a phone. */
  .peppy-featured__lifestyle { display: none; }
}

/* ============ Full-bleed banner with centered overlay text ============ */
.peppy-banner-wrap {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
}
.peppy-banner {
  position: relative;
  min-height: 80vh;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 1rem;
  isolation: isolate;
  overflow: hidden;
}
/* Uniform transparent black overlay — darkens the whole image enough
   to make the white text legible without obscuring the photo */
.peppy-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.35);
  pointer-events: none;
}
.peppy-banner > * { position: relative; z-index: 2; }
.peppy-banner h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  color: #fff !important;
  font-size: clamp(2.5rem, 4.5vw, 4rem);
  line-height: 1;
  margin: 0 0 1rem;
  text-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
.peppy-banner p {
  font-family: 'Inter', sans-serif;
  color: rgba(255,255,255,0.95);
  font-size: 15px;
  line-height: 1.5;
  margin: 0 auto;
  max-width: 50ch;
  text-shadow: 0 1px 15px rgba(0,0,0,0.4);
}
.peppy-banner__link,
.peppy-banner__link:link,
.peppy-banner__link:visited,
.peppy-banner__link:hover {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.75rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: #fff !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(255,255,255,0.85);
  padding-bottom: 4px;
  text-shadow: 0 1px 12px rgba(0,0,0,0.4);
  transition: gap 240ms ease, opacity 240ms ease;
}
.peppy-banner__link:hover { gap: 0.75rem; opacity: 0.85; }
.peppy-banner__link::after { content: "→"; font-size: 1.05em; line-height: 1; }
/* Video background variant */
.peppy-banner--video { background: #000; }
.peppy-banner__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

/* ============ Launch Picks (video left, 2x2 products right) ============ */
.peppy-picks-wrap {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  background: var(--peppy-cream);
  padding: 4rem 5vw 5rem;
}
.peppy-picks__header { margin-bottom: 2.5rem; }
.peppy-picks__header h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  margin: 0 0 0.75rem;
}
.peppy-picks__header p {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: var(--peppy-text);
  margin: 0 0 1.5rem;
  max-width: 60ch;
}
.peppy-picks__cta {
  display: inline-block;
  background: var(--peppy-lavender);
  color: var(--peppy-text) !important;
  padding: 12px 26px;
  border-radius: 4px;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 14px;
  text-decoration: none !important;
  transition: background-color 240ms ease;
}
.peppy-picks__cta:hover { background: var(--peppy-lavender-hover); opacity: 1; }

.peppy-picks__layout {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 1.5rem;
  align-items: stretch;
}
.peppy-picks__media {
  border-radius: 4px;
  overflow: hidden;
  background: var(--peppy-cream-2);
  grid-row: 1 / span 2;
}
.peppy-picks__media video,
.peppy-picks__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.peppy-picks__grid {
  display: contents;
}
@media (max-width: 1024px) {
  .peppy-picks__layout { grid-template-columns: 1fr; }
  .peppy-picks__media { min-height: 360px; }
}
@media (max-width: 600px) {
  .peppy-picks__grid { grid-template-columns: 1fr; }
}

/* ============ Find Your Focus (text left, image right, cream bg) ============ */
.peppy-focus-wrap {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  background: var(--peppy-cream);
  padding: 3rem 0;
}
.peppy-focus {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  min-height: 65vh;
  gap: 0;
}
.peppy-focus__copy {
  padding: 5vw;
}
.peppy-focus__copy h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  color: var(--peppy-text) !important;
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  line-height: 1;
  margin: 0 0 1rem;
}
.peppy-focus__copy p {
  font-family: 'Inter', sans-serif;
  color: var(--peppy-text);
  font-size: 15px;
  line-height: 1.5;
  margin: 0 0 2rem;
  max-width: 55ch;
}
.peppy-focus__image {
  height: 100%;
  min-height: 60vh;
  background-size: cover;
  background-position: center;
  margin: 2rem 5vw 2rem 0;
  border-radius: 4px;
}
@media (max-width: 768px) {
  .peppy-focus { grid-template-columns: 1fr; }
  /* Reset the asymmetric right-bleed margin so the image sits inside
     the viewport on mobile instead of overflowing. */
  .peppy-focus__image {
    min-height: 45vh;
    margin: 1rem 5vw 2rem 5vw;
  }
  .peppy-focus-wrap { padding: 2rem 0; }
}

/* ============ Contact page ============ */
/* Hide the default Blocksy entry title — the shortcode provides its own intro */
body.page-id-45 .entry-header,
body.page-id-45 .ct-hero-section { display: none !important; }
/* Full-bleed two-panel layout (mirrors the quiz). */
.peppy-contact-wrap {
  max-width: none !important;
  width: auto;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -40px !important;
  margin-bottom: 0 !important;
  min-height: calc(100vh - 99px);
  padding: 0;
  background: #fff;
  display: flex;
}
.peppy-contact {
  max-width: none;
  margin: 0;
  width: 100%;
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 0;
  align-items: stretch;
}
/* Left: intro on the petal/molecule artwork (same as quiz aside) */
.peppy-contact__intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem 4vw;
  background:
    radial-gradient(ellipse 70% 45% at 35% 55%, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0) 70%),
    url('/wp-content/uploads/sections/quiz-aside-bg.jpg');
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
  background-color: #efe4f6;
}
/* Right: white panel holding the form, vertically centered */
.peppy-contact__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem 4.5vw;
}
.peppy-contact__intro h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.5rem, 5vw, 4.5rem) !important;
  line-height: 1.02;
  letter-spacing: -0.015em;
  color: var(--peppy-text) !important;
  margin: 0 0 1.5rem;
  max-width: 12ch;
}
.peppy-contact__intro p {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1rem, 1.1vw, 1.1rem);
  line-height: 1.6;
  color: var(--peppy-text);
  opacity: 0.78;
  margin: 0 0 2.75rem;
  max-width: 38ch;
}
.peppy-contact__details {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  border-top: 1px solid rgba(60, 45, 90, 0.12);
  padding-top: 1.75rem;
}
.peppy-contact__details > div { display: flex; flex-direction: column; gap: 0.5rem; }
.peppy-contact__detail-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.55;
  margin: 0 !important;
}
.peppy-contact__detail-value {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem;
  color: var(--peppy-text);
  line-height: 1.2;
  margin: 0 !important;
}
.peppy-contact__detail-value a {
  color: var(--peppy-text);
  text-decoration: none;
  border-bottom: 1px solid rgba(60, 45, 90, 0.25);
  padding-bottom: 2px;
  transition: opacity 200ms ease, border-color 200ms ease;
}
.peppy-contact__detail-value a:hover { opacity: 0.7; }
.peppy-contact__form {
  /* Sits on the white panel now — no card chrome. Constrain + center. */
  width: 100%;
  max-width: 580px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.peppy-contact__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.peppy-contact__field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.peppy-contact__field label {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.65;
}
.peppy-contact__field input,
.peppy-contact__field textarea {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: var(--peppy-text);
  background: var(--peppy-cream);
  border: 1px solid rgba(60, 45, 90, 0.12);
  border-radius: 8px;
  padding: 0.75rem 0.9rem;
  outline: none;
  transition: border-color 200ms ease, background 200ms ease;
  width: 100%;
  box-sizing: border-box;
  resize: vertical;
}
.peppy-contact__field textarea { min-height: 140px; line-height: 1.5; }
.peppy-contact__field input:focus,
.peppy-contact__field textarea:focus {
  border-color: var(--peppy-lavender);
  background: #fff;
}
.peppy-contact__submit {
  margin-top: 0.5rem;
  align-self: flex-start;
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  background: var(--peppy-lavender);
  color: var(--peppy-text);
  border: none;
  border-radius: 999px;
  padding: 0.85rem 1.75rem;
  cursor: pointer;
  letter-spacing: 0.01em;
  transition: background 200ms ease, transform 200ms ease;
}
.peppy-contact__submit:hover { background: var(--peppy-lavender-hover); }
.peppy-contact__submit:active { transform: translateY(1px); }
.peppy-contact__submit:disabled { opacity: 0.6; cursor: not-allowed; }
.peppy-contact__status {
  font-family: 'Inter', sans-serif;
  font-size: 0.88rem;
  padding: 0.6rem 0;
  display: none;
}
.peppy-contact__status.is-success { display: block; color: #2f6a3a; }
.peppy-contact__status.is-error { display: block; color: #8a2a2a; }
@media (max-width: 900px) {
  .peppy-contact-wrap { min-height: 0; display: block; }
  .peppy-contact { grid-template-columns: 1fr; gap: 0; }
  .peppy-contact__intro { padding: 2.5rem 7vw 2rem; }
  .peppy-contact__panel { padding: 2.25rem 7vw 3.5rem; }
  .peppy-contact__form { max-width: none; }
  .peppy-contact__row { grid-template-columns: 1fr; }
}

/* ============ Header mini-cart dropdown ============ */
/* Blocksy ships the cart dropdown with a dark navy panel by default —
   restyle to a white rounded card so it matches the rest of the site. */
.ct-header-cart .ct-cart-content,
.ct-cart-content {
  background: #fff !important;
  color: var(--peppy-text) !important;
  border: 1px solid rgba(60, 45, 90, 0.08) !important;
  border-radius: 16px !important;
  box-shadow: 0 24px 50px -28px rgba(60, 45, 90, 0.25) !important;
  padding: 1.25rem !important;
  width: 360px !important;
  min-width: 360px !important;
  left: auto !important;
  right: 0 !important;
}
.ct-cart-content::before, .ct-cart-content::after { display: none !important; }
.ct-cart-content .woocommerce-mini-cart {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ct-cart-content .woocommerce-mini-cart-item,
.ct-cart-content .mini_cart_item {
  background: transparent !important;
  padding: 1rem 0 !important;
  border-bottom: 1px solid rgba(60, 45, 90, 0.08) !important;
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
}
.ct-cart-content .woocommerce-mini-cart-item img,
.ct-cart-content .mini_cart_item img,
.ct-cart-content .ct-media-container img {
  width: 56px !important;
  height: 56px !important;
  object-fit: cover;
  border-radius: 8px;
  margin: 0 !important;
  flex-shrink: 0;
}
/* DOM order in Blocksy is [remove][image][product-data]. Use flex order
   to visually rearrange as [image][data][remove] without changing markup. */
.ct-cart-content .ct-media-container,
.ct-cart-content a.ct-media-container {
  flex: 0 0 56px !important;
  width: 56px !important;
  height: 56px !important;
  display: block !important;
  order: 1 !important;
}
.ct-cart-content .product-data {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  padding-right: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  order: 2 !important;
}
.ct-cart-content .woocommerce-mini-cart-item .remove,
.ct-cart-content .mini_cart_item .remove { order: 3 !important; }
.ct-cart-content .woocommerce-mini-cart-item a:not(.remove),
.ct-cart-content .mini_cart_item a:not(.remove),
.ct-cart-content .product-data a {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.05rem !important;
  color: var(--peppy-text) !important;
  text-decoration: none !important;
  border-bottom: none !important;
  line-height: 1.25;
  display: block;
}
.ct-cart-content .woocommerce-mini-cart-item .quantity,
.ct-cart-content .mini_cart_item .quantity,
.ct-cart-content .product-data .quantity {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  color: var(--peppy-text) !important;
  opacity: 0.7;
  display: block;
  margin: 0 !important;
}
/* Trash icon: own column on the right with breathing room from the
   text column and a circular hover affordance. */
.ct-cart-content .woocommerce-mini-cart-item .remove,
.ct-cart-content .mini_cart_item .remove {
  background: transparent !important;
  color: var(--peppy-text) !important;
  font-size: 16px !important;
  opacity: 0.35;
  margin-left: auto !important;
  width: 44px !important;
  height: 44px !important;
  flex-shrink: 0;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  text-align: center !important;
  line-height: 1 !important;
  transition: opacity 200ms ease, background 200ms ease !important;
}
.ct-cart-content .woocommerce-mini-cart-item .remove:hover,
.ct-cart-content .mini_cart_item .remove:hover {
  opacity: 1 !important;
  background: rgba(60, 45, 90, 0.08) !important;
}
.ct-cart-content .woocommerce-mini-cart__total {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--peppy-text) !important;
  border: none !important;
  border-top: 1px solid rgba(60, 45, 90, 0.12) !important;
  margin: 1rem 0 !important;
  padding: 1rem 0 !important;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ct-cart-content .woocommerce-mini-cart__total strong { font-weight: 500; opacity: 0.65; }
.ct-cart-content .woocommerce-mini-cart__total .woocommerce-Price-amount,
.ct-cart-content .woocommerce-mini-cart__total bdi {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.4rem !important;
  letter-spacing: -0.005em;
  text-transform: none;
  opacity: 1;
}
.ct-cart-content .woocommerce-mini-cart__buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin: 0 !important;
  padding: 0 !important;
}
.ct-cart-content .woocommerce-mini-cart__buttons .button {
  background: var(--peppy-lavender) !important;
  color: var(--peppy-text) !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 0.7rem 1rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  text-align: center;
  transition: background 200ms ease;
}
.ct-cart-content .woocommerce-mini-cart__buttons .checkout {
  background: var(--peppy-text) !important;
  color: var(--peppy-cream) !important;
}
.ct-cart-content .woocommerce-mini-cart__buttons .button:hover { background: var(--peppy-lavender-hover) !important; }
.ct-cart-content .woocommerce-mini-cart__buttons .checkout:hover { background: var(--peppy-text) !important; opacity: 0.85; }
.ct-cart-content .woocommerce-mini-cart__empty-message,
.ct-cart-content p.woocommerce-mini-cart__empty-message {
  font-family: 'Inter', sans-serif !important;
  color: var(--peppy-text) !important;
  opacity: 0.7;
  text-align: center;
  padding: 1rem 0 !important;
  margin: 0 !important;
}

/* ============ WooCommerce: Cart / Checkout / My Account ============ */
/* Shared: serif page title, generous padding, cream backdrop */
body.woocommerce-cart .entry-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-account .entry-content {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem 5vw 5rem;
}

/* Inputs and selects */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="password"],
.woocommerce textarea,
.woocommerce select,
.select2-container--default .select2-selection--single {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  color: var(--peppy-text) !important;
  background: #fff !important;
  border: 1px solid rgba(60, 45, 90, 0.15) !important;
  border-radius: 8px !important;
  padding: 0.75rem 0.9rem !important;
  outline: none;
  box-shadow: none !important;
  transition: border-color 200ms ease, background 200ms ease;
  height: auto !important;
  min-height: 48px;
  box-sizing: border-box;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
  border-color: var(--peppy-lavender) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 30px !important;
  padding: 0 !important;
  color: var(--peppy-text) !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 0.5rem !important;
}
.woocommerce form .form-row label {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  color: var(--peppy-text);
  margin-bottom: 0.4rem !important;
}

/* All Woo buttons → lavender pill */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  background: var(--peppy-lavender) !important;
  color: var(--peppy-text) !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 0.85rem 1.85rem !important;
  text-decoration: none !important;
  letter-spacing: 0.01em;
  box-shadow: none !important;
  transition: background 200ms ease, transform 200ms ease;
  cursor: pointer;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #place_order:hover {
  background: var(--peppy-lavender-hover) !important;
  transform: translateY(-1px);
}
.woocommerce button.button:disabled,
.woocommerce button.button[disabled],
.woocommerce input.button:disabled,
.woocommerce input.button[disabled] {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Cart page specifics */
.woocommerce-cart table.cart {
  border: none !important;
  background: transparent !important;
}
.woocommerce-cart table.cart th,
.woocommerce-cart table.cart td {
  border: none !important;
  border-bottom: 1px solid rgba(60, 45, 90, 0.08) !important;
  padding: 1.25rem 0.75rem !important;
  background: transparent !important;
  vertical-align: middle !important;
}
.woocommerce-cart table.cart thead th {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.6;
}
.woocommerce-cart table.cart .product-thumbnail img {
  width: 80px !important;
  height: 80px !important;
  object-fit: cover;
  border-radius: 8px;
}
.woocommerce-cart table.cart .product-name a,
.woocommerce-cart table.cart .product-name a:link,
.woocommerce-cart table.cart .product-name a:visited {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.25rem !important;
  color: var(--peppy-text) !important;
  text-decoration: none !important;
  border-bottom: none !important;
}
.woocommerce-cart table.cart .product-name a:hover { opacity: 0.7; }
.woocommerce-cart table.cart .product-price,
.woocommerce-cart table.cart .product-subtotal {
  font-family: 'Inter', sans-serif !important;
  color: var(--peppy-text) !important;
}
.woocommerce-cart table.cart .product-remove a {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: var(--peppy-text) !important;
  opacity: 0.45;
  font-size: 18px !important;
  transition: opacity 200ms ease;
}
.woocommerce-cart table.cart .product-remove a:hover { opacity: 1; }
/* Cart totals card */
.woocommerce-cart .cart-collaterals .cart_totals {
  background: #fff;
  border-radius: 16px;
  padding: 2rem !important;
  box-shadow: 0 24px 50px -32px rgba(60, 45, 90, 0.18);
  width: 100% !important;
  float: none !important;
}
.woocommerce-cart .cart-collaterals .cart_totals h2 {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.6;
  margin: 0 0 1.5rem !important;
}
.woocommerce-cart .cart-collaterals .cart_totals table {
  border: none !important;
}
.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce-cart .cart-collaterals .cart_totals table td {
  border: none !important;
  border-bottom: 1px solid rgba(60, 45, 90, 0.08) !important;
  padding: 0.85rem 0 !important;
  background: transparent !important;
  font-family: 'Inter', sans-serif !important;
}
.woocommerce-cart .cart-collaterals .cart_totals .order-total th,
.woocommerce-cart .cart-collaterals .cart_totals .order-total td {
  border-bottom: none !important;
  font-weight: 500 !important;
  font-size: 1.05rem !important;
}
/* Empty cart — hide the default Woo notice + button, show our block */
.woocommerce-cart .cart-empty,
.woocommerce-cart .return-to-shop { display: none !important; }
.peppy-empty-cart {
  max-width: 520px;
  margin: 2rem auto 4rem;
  text-align: center;
  padding: 3.5rem 2rem;
}
.peppy-empty-cart__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--peppy-lavender);
  color: var(--peppy-text);
  margin-bottom: 1.75rem;
}
.peppy-empty-cart__icon svg { width: 30px; height: 30px; }
.peppy-empty-cart__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 2.4rem !important;
  color: var(--peppy-text) !important;
  margin: 0 0 0.75rem !important;
  letter-spacing: -0.01em;
}
.peppy-empty-cart__text {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  margin: 0 auto 2rem;
  max-width: 36ch;
}
.peppy-empty-cart__actions {
  display: flex;
  gap: 0.85rem;
  justify-content: center;
  flex-wrap: wrap;
}
.peppy-empty-cart__btn {
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  border-radius: 999px;
  padding: 0.85rem 1.85rem;
  text-decoration: none !important;
  transition: background 200ms ease, border-color 200ms ease, color 200ms ease;
}
.peppy-empty-cart__btn--primary {
  background: var(--peppy-lavender);
  color: var(--peppy-text);
}
.peppy-empty-cart__btn--primary:hover { background: var(--peppy-lavender-hover); }
.peppy-empty-cart__btn--ghost {
  background: transparent;
  color: var(--peppy-text);
  border: 1px solid rgba(60, 45, 90, 0.2);
}
.peppy-empty-cart__btn--ghost:hover { border-color: var(--peppy-lavender); }

.woocommerce-cart .wc-proceed-to-checkout {
  padding: 1.5rem 0 0 !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: block !important;
  text-align: center !important;
}
/* Coupon row */
.woocommerce-cart .coupon {
  display: flex !important;
  gap: 0.75rem !important;
  align-items: stretch;
  flex-wrap: wrap;
}
.woocommerce-cart .coupon label { display: none; }
.woocommerce-cart .coupon input.input-text {
  max-width: 240px;
}
.woocommerce-cart table.cart td.actions {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* --- Auto-updating cart: hide the manual "Update cart" button.
   Quantity changes now save automatically via AJAX (peppy cart JS). --- */
.woocommerce-cart table.cart td.actions button[name="update_cart"],
.woocommerce-cart table.cart td.actions input[name="update_cart"] {
  display: none !important;
}

/* Premium quantity stepper — a single bordered pill with −  n  + */
.woocommerce-cart table.cart .product-quantity .quantity {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  background: #fff;
  border: 1px solid rgba(60, 45, 90, 0.18);
  border-radius: 999px;
  padding: 0;
  height: 44px;
  width: 108px;
  overflow: hidden;
}
.woocommerce-cart table.cart .product-quantity .quantity input.qty {
  -moz-appearance: textfield;
  appearance: textfield;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  min-height: 0 !important;
  height: 100% !important;
  width: 100% !important;
  text-align: center !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  padding: 0 30px !important;
}
.woocommerce-cart table.cart .product-quantity .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart table.cart .product-quantity .quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.woocommerce-cart table.cart .product-quantity .quantity .ct-increase,
.woocommerce-cart table.cart .product-quantity .quantity .ct-decrease {
  position: absolute;
  top: 3px;
  bottom: 3px;
  width: 32px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-radius: 50%;
  opacity: 0.85;
  transition: background 160ms ease, opacity 160ms ease;
  z-index: 1;
}
.woocommerce-cart table.cart .product-quantity .quantity .ct-increase:hover,
.woocommerce-cart table.cart .product-quantity .quantity .ct-decrease:hover {
  opacity: 1;
  background: rgba(60, 45, 90, 0.07);
}
.woocommerce-cart table.cart .product-quantity .quantity .ct-decrease { left: 4px; }
.woocommerce-cart table.cart .product-quantity .quantity .ct-increase { right: 4px; }
.woocommerce-cart table.cart .product-quantity .quantity .ct-decrease::before,
.woocommerce-cart table.cart .product-quantity .quantity .ct-increase::before,
.woocommerce-cart table.cart .product-quantity .quantity .ct-increase::after {
  content: "";
  position: absolute;
  background: var(--peppy-text);
  border-radius: 2px;
}
/* minus + horizontal bars */
.woocommerce-cart table.cart .product-quantity .quantity .ct-decrease::before,
.woocommerce-cart table.cart .product-quantity .quantity .ct-increase::before {
  width: 12px; height: 2px;
}
/* plus vertical bar */
.woocommerce-cart table.cart .product-quantity .quantity .ct-increase::after {
  width: 2px; height: 12px;
}

/* AJAX loading state — dim + lock the cart while saving */
.peppy-cart-busy {
  opacity: 0.5 !important;
  pointer-events: none !important;
  transition: opacity 180ms ease;
}

/* "Continue shopping" text link in the actions row */
.peppy-continue-shopping {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.9rem !important;
  color: var(--peppy-text) !important;
  opacity: 0.7;
  text-decoration: none !important;
  border-bottom: none !important;
  transition: opacity 160ms ease;
  margin-right: auto;
}
.peppy-continue-shopping:hover { opacity: 1; }

/* Checkout */
.woocommerce-checkout #customer_details {
  background: transparent;
}
.woocommerce-checkout h3 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.5rem !important;
  color: var(--peppy-text) !important;
  margin: 0 0 1.5rem !important;
  letter-spacing: -0.005em;
}
.woocommerce-checkout #order_review_heading {
  background: #fff;
  border-radius: 16px 16px 0 0;
  padding: 2rem 2rem 0;
  margin: 0 !important;
  box-shadow: 0 -12px 30px -32px rgba(60, 45, 90, 0.1);
}
.woocommerce-checkout #order_review {
  background: #fff;
  border-radius: 0 0 16px 16px;
  padding: 1rem 2rem 2rem;
  box-shadow: 0 24px 50px -32px rgba(60, 45, 90, 0.18);
}
.woocommerce-checkout table.shop_table {
  border: none !important;
  background: transparent !important;
}
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
  border: none !important;
  border-bottom: 1px solid rgba(60, 45, 90, 0.08) !important;
  padding: 0.85rem 0 !important;
  background: transparent !important;
}
.woocommerce-checkout table.shop_table .order-total th,
.woocommerce-checkout table.shop_table .order-total td {
  border-bottom: none !important;
  font-weight: 500 !important;
  font-size: 1.05rem !important;
}
.woocommerce-checkout .woocommerce-checkout-payment {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 1.5rem 0 0 !important;
}
.woocommerce-checkout .woocommerce-checkout-payment ul.payment_methods {
  background: var(--peppy-cream) !important;
  border-radius: 12px !important;
  border: 1px solid rgba(60, 45, 90, 0.1) !important;
  padding: 1rem !important;
}

/* My Account */
.woocommerce-account form.login,
.woocommerce-account form.register {
  max-width: 460px;
  margin: 0 auto;
  background: #fff;
  border: none !important;
  border-radius: 16px;
  padding: 2.5rem 2.25rem !important;
  box-shadow: 0 24px 50px -32px rgba(60, 45, 90, 0.18);
}
.woocommerce-account .lost_password a,
.woocommerce-account .lost_password a:link,
.woocommerce-account .lost_password a:visited {
  font-family: 'Inter', sans-serif !important;
  color: var(--peppy-text) !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(60, 45, 90, 0.2);
  padding-bottom: 2px;
  font-size: 0.88rem;
}
.woocommerce-account .lost_password a:hover { opacity: 0.7; }
.woocommerce-account nav.woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.woocommerce-account nav.woocommerce-MyAccount-navigation ul li a {
  display: block;
  font-family: 'Inter', sans-serif !important;
  color: var(--peppy-text) !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(60, 45, 90, 0.08);
  padding: 0.85rem 0;
  font-size: 0.95rem;
}
.woocommerce-account nav.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account nav.woocommerce-MyAccount-navigation ul li a:hover {
  color: var(--peppy-text) !important;
  font-weight: 500;
}

/* ============ Immersive full-bleed pages (quiz, contact) ============ */
/* These pages take over the whole viewport: hide the theme page title
   and let the section fill the screen as a two-panel experience. */
body.peppy-immersive-page .entry-header,
body.peppy-immersive-page header.entry-header,
body.peppy-immersive-page .page-title-wrap,
body.peppy-immersive-page .entry-content > .ct-container > .entry-header {
  display: none !important;
}
body.peppy-immersive-page .entry-content {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* Kill Blocksy's content-container top/bottom padding so the section
   sits flush under the header with no empty cream band. */
body.peppy-immersive-page .ct-container-full,
body.peppy-immersive-page .site-main {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.peppy-immersive-page { overflow-x: hidden; }
/* Full-bleed two-column layout filling the viewport. The
   is-layout-constrained parent pins a max-width on children, so we
   override it and break out with negative margins. */
.peppy-quiz {
  max-width: none !important;
  width: auto;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  /* Pull flush under the sticky 99px header, and kill the layout's
     block margins top + bottom (is-layout-constrained applies them with
     higher specificity, so !important is required). Bottom margin was
     leaving a ~22px gap before the footer. */
  margin-top: -40px !important;
  margin-bottom: 0 !important;
  min-height: calc(100vh - 99px);
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  background: #fff;
}
body.peppy-quiz-page { overflow-x: hidden; }
/* Left: brand + intro on the soft petal/gradient backdrop */
.peppy-quiz__aside {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem 4vw;
  /* Petal/molecule artwork with a soft white highlight behind the copy
     so the headline stays readable. Falls back to the gradient. */
  background:
    radial-gradient(ellipse 70% 45% at 35% 55%, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0) 70%),
    url('/wp-content/uploads/sections/quiz-aside-bg.jpg');
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
  background-color: #efe4f6;
}
.peppy-quiz__brand {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--peppy-lavender-hover);
  margin: 0 0 1.25rem;
}
.peppy-quiz__headline {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 2.9rem;
  line-height: 1.08;
  color: var(--peppy-text);
  margin: 0 0 1.25rem;
  letter-spacing: -0.015em;
  max-width: 12ch;
}
.peppy-quiz__intro {
  font-family: 'Inter', sans-serif;
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  margin: 0;
  max-width: 34ch;
}
/* Right: the quiz itself, vertically centered */
.peppy-quiz__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem 4.5vw;
}
.peppy-quiz__inner {
  width: 100%;
  max-width: 540px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}
.peppy-quiz__step,
.peppy-quiz__result-eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--peppy-lavender-hover);
  margin: 0 0 1rem;
}
.peppy-quiz__progress {
  display: flex;
  gap: 8px;
  margin-bottom: 2rem;
}
.peppy-quiz__progress span {
  height: 4px;
  flex: 1;
  border-radius: 999px;
  background: rgba(60, 45, 90, 0.12);
  transition: background 240ms ease;
}
.peppy-quiz__progress span.is-active { background: var(--peppy-lavender); }
.peppy-quiz__progress span.is-done { background: var(--peppy-lavender-hover); }
.peppy-quiz__question {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 2rem;
  line-height: 1.15;
  color: var(--peppy-text);
  margin: 0 0 2rem;
  letter-spacing: -0.01em;
}
.peppy-quiz__hint {
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  color: var(--peppy-text-muted);
  margin: -1.25rem 0 1.5rem;
}
.peppy-quiz__options {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.peppy-quiz__continue {
  align-self: flex-start;
  margin-top: 1.5rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  background: var(--peppy-lavender);
  color: var(--peppy-text);
  border: none;
  border-radius: 999px;
  padding: 0.85rem 2rem;
  cursor: pointer;
  transition: background 180ms ease;
}
.peppy-quiz__continue:hover { background: var(--peppy-lavender-hover); }
.peppy-quiz__option {
  position: relative;
  font-family: 'Inter', sans-serif;
  font-size: 1.02rem;
  text-align: left;
  color: var(--peppy-text);
  background: var(--peppy-cream);
  border: 1px solid rgba(60, 45, 90, 0.1);
  border-radius: 14px;
  padding: 1.15rem 3rem 1.15rem 1.4rem;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, padding 180ms ease;
}
/* Chevron that fades/slides in on hover */
.peppy-quiz__option::after {
  content: "→";
  position: absolute;
  right: 1.35rem;
  top: 50%;
  transform: translateY(-50%) translateX(-6px);
  color: var(--peppy-lavender-hover);
  font-size: 1.05rem;
  opacity: 0;
  transition: opacity 180ms ease, transform 180ms ease;
}
.peppy-quiz__option:hover {
  border-color: var(--peppy-lavender);
  background: #fff;
  box-shadow: 0 12px 26px -16px rgba(60, 45, 90, 0.35);
}
.peppy-quiz__option:hover::after {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}
.peppy-quiz__option.is-selected {
  border-color: var(--peppy-lavender);
  background: var(--peppy-lavender);
}
.peppy-quiz__option.is-selected::after { opacity: 1; transform: translateY(-50%) translateX(0); }
.peppy-quiz__back,
.peppy-quiz__retake {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  color: var(--peppy-text);
  opacity: 0.65;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-top: 2rem;
  align-self: flex-start;
  transition: opacity 160ms ease;
}
.peppy-quiz__back:hover,
.peppy-quiz__retake:hover { opacity: 1; }
/* No Blocksy content-link underlines anywhere in the quiz. The
   shop-cat keeps its intentional border-bottom underline separately. */
.peppy-quiz a,
.peppy-quiz a:hover,
.peppy-quiz a:visited { text-decoration: none !important; }
/* Result */
.peppy-quiz__result-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 2.1rem;
  color: var(--peppy-text);
  margin: 0 0 0.5rem;
}
.peppy-quiz__result-blurb {
  font-family: 'Inter', sans-serif;
  font-size: 0.98rem;
  color: var(--peppy-text-muted);
  margin: 0 0 1.75rem;
  line-height: 1.5;
}
.peppy-quiz__card {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  background: var(--peppy-cream);
  border-radius: 16px;
  padding: 1.25rem;
}
.peppy-quiz__card-img {
  flex: 0 0 120px;
  width: 120px;
  height: 120px;
  border-radius: 12px;
  overflow: hidden;
  display: block;
}
.peppy-quiz__card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.peppy-quiz__card-body { flex: 1; text-align: left; }
.peppy-quiz__card-body h3 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 1.4rem;
  margin: 0 0 0.35rem;
}
.peppy-quiz__card-body h3 a { color: var(--peppy-text); text-decoration: none; }
.peppy-quiz__card-price {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  color: var(--peppy-text);
  margin: 0 0 0.9rem;
}
.peppy-quiz__card-cta {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  background: var(--peppy-lavender);
  color: var(--peppy-text);
  border-radius: 999px;
  padding: 0.65rem 1.5rem;
  text-decoration: none;
  transition: background 200ms ease, transform 200ms ease;
}
.peppy-quiz__card-cta:hover { background: var(--peppy-lavender-hover); }
.peppy-quiz__result-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.75rem;
}
.peppy-quiz__shop-cat {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: var(--peppy-text);
  text-decoration: none;
  border-bottom: 1px solid var(--peppy-lavender);
  padding-bottom: 2px;
  transition: opacity 160ms ease;
}
.peppy-quiz__shop-cat:hover { opacity: 0.7; }
.peppy-quiz__retake { margin-top: 0; }
.peppy-quiz__disclaimer {
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  color: var(--peppy-text-muted);
  opacity: 0.8;
  margin: 1.75rem 0 0;
  line-height: 1.5;
}

/* ============ Pens feature section (homepage) ============ */
.peppy-pens-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 4.5rem 5vw 1rem;
}
.peppy-pens__header {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
}
.peppy-pens__title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: clamp(2rem, 3.5vw, 2.85rem);
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--peppy-text);
  margin: 0 0 1rem;
}
.peppy-pens__sub {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  margin: 0 auto;
  max-width: 46ch;
}
.peppy-pens__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2vw;
}
.peppy-pens__footer { text-align: center; margin-top: 2.5rem; }
.peppy-pens__cta {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--peppy-text);
  text-decoration: none !important;
  border-bottom: 1px solid var(--peppy-lavender);
  padding-bottom: 3px;
  transition: opacity 160ms ease;
}
.peppy-pens__cta:hover { opacity: 0.65; }
@media (max-width: 800px) {
  .peppy-pens-wrap { padding: 3rem 5vw 0.5rem; }
  .peppy-pens__grid { grid-template-columns: 1fr; gap: 2rem; max-width: 360px; margin: 0 auto; }
  .peppy-pens__header { margin-bottom: 2rem; }
}

/* Quiz teaser band (homepage) */
.peppy-quiz-teaser-wrap {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  /* Vertical padding (not margin) for breathing room — the WP
     is-layout-constrained block CSS zeroes out child margins, but
     padding on this transparent full-bleed wrapper is untouched and
     pushes space above/below the band itself. */
  padding: 2.5rem 5vw 3rem;
}
.peppy-quiz-teaser {
  max-width: 1280px;
  margin: 0 auto;
  /* Soft white highlight behind the copy keeps the headline + button
     crisp, while the petal/bubble artwork stays vivid in the corners. */
  background:
    radial-gradient(ellipse 62% 85% at 50% 50%, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0) 72%),
    url('/wp-content/uploads/sections/quiz-teaser-bg.jpg');
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
  background-color: var(--peppy-lavender);
  border-radius: 20px;
  padding: 3.5rem 2rem;
  text-align: center;
}
.peppy-quiz-teaser__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.6;
  margin: 0 0 0.75rem;
}
.peppy-quiz-teaser__title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 2.4rem;
  line-height: 1.1;
  color: var(--peppy-text);
  margin: 0 0 0.9rem;
  letter-spacing: -0.01em;
}
.peppy-quiz-teaser__sub {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  color: var(--peppy-text);
  opacity: 0.8;
  margin: 0 auto 1.75rem;
  max-width: 460px;
  line-height: 1.55;
}
.peppy-quiz-teaser__cta,
.peppy-quiz-teaser__cta:link,
.peppy-quiz-teaser__cta:visited {
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  background: #fff;
  color: var(--peppy-text);
  border: none;
  border-radius: 999px;
  padding: 0.95rem 2.25rem;
  text-decoration: none !important;
  box-shadow: 0 10px 24px -10px rgba(60, 45, 90, 0.25);
  transition: background 200ms ease, color 200ms ease;
}
.peppy-quiz-teaser__cta:hover {
  background: var(--peppy-lavender);
  color: var(--peppy-text);
  text-decoration: none !important;
}

/* ============ Quality page ============ */
.peppy-quality { width: 100%; }
.peppy-quality__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 5vw;
}
.peppy-quality__section { padding: 5rem 0; }
.peppy-quality__h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  line-height: 1.08;
  letter-spacing: -0.015em;
  color: var(--peppy-text) !important;
  margin: 0 0 2.5rem !important;
}
/* Hero */
.peppy-quality__hero {
  background: linear-gradient(180deg, #f1e9f6 0%, var(--peppy-cream) 100%);
  padding: 5.5rem 0 4.5rem;
  text-align: center;
}
.peppy-quality__hero-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.6rem, 6vw, 4.5rem) !important;
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--peppy-text) !important;
  margin: 0 0 1.25rem !important;
}
.peppy-quality__hero-text {
  font-family: 'Inter', sans-serif;
  font-size: 1.08rem;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  max-width: 56ch;
  margin: 0 auto;
}
/* Testing steps */
.peppy-quality__steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
}
.peppy-quality__step {
  background: #fff;
  border: 1px solid rgba(60, 45, 90, 0.08);
  border-radius: 16px;
  padding: 1.6rem 1.4rem;
}
.peppy-quality__step-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}
.peppy-quality__step-icon {
  display: inline-flex;
  width: 42px; height: 42px;
  align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--peppy-lavender);
  color: var(--peppy-text);
}
.peppy-quality__step-icon svg { width: 22px; height: 22px; }
.peppy-quality__step-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem;
  color: var(--peppy-text-muted);
  opacity: 0.6;
}
.peppy-quality__step-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 1.4rem !important;
  margin: 0 0 0.5rem !important;
  color: var(--peppy-text) !important;
}
.peppy-quality__step-desc {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--peppy-text-muted);
  margin: 0;
}
/* Stats band */
.peppy-quality__stats-wrap { background: var(--peppy-lavender); padding: 3.5rem 0; }
.peppy-quality__stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  text-align: center;
}
.peppy-quality__stat-value {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600;
  font-size: clamp(2.4rem, 5vw, 3.4rem);
  line-height: 1;
  color: var(--peppy-text);
}
.peppy-quality__stat-label {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  color: var(--peppy-text);
  opacity: 0.7;
  margin-top: 0.5rem;
}
/* Independently verified */
.peppy-quality__verify {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 4vw;
  align-items: start;
}
.peppy-quality__verify-intro p {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--peppy-text-muted);
  margin: 0 0 1.25rem;
}
.peppy-quality__verify-note { font-weight: 500; color: var(--peppy-text) !important; opacity: 1; }
.peppy-quality__table {
  background: #fff;
  border: 1px solid rgba(60, 45, 90, 0.1);
  border-radius: 16px;
  overflow: hidden;
}
.peppy-quality__row {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr 0.8fr;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.4rem;
  border-bottom: 1px solid rgba(60, 45, 90, 0.08);
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  color: var(--peppy-text);
}
.peppy-quality__row:last-child { border-bottom: none; }
.peppy-quality__row--head {
  background: var(--peppy-cream-2);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--peppy-text-muted);
}
.peppy-quality__compound { font-weight: 500; }
.peppy-quality__purity {
  font-weight: 600;
  color: var(--peppy-lavender-hover);
}
/* Documentation gallery */
.peppy-quality__docs-section { background: var(--peppy-cream-2); }
.peppy-quality__lead {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--peppy-text-muted);
  max-width: 56ch;
  margin: -1.5rem 0 2.5rem;
}
.peppy-quality__docs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.peppy-quality__doc {
  display: block;
  text-align: left;
  background: #fff;
  border: 1px solid rgba(60, 45, 90, 0.1);
  border-radius: 14px;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow 200ms ease, transform 200ms ease;
}
.peppy-quality__doc:hover {
  box-shadow: 0 20px 40px -24px rgba(60, 45, 90, 0.3);
  transform: translateY(-2px);
}
.peppy-quality__doc-thumb {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--peppy-cream);
}
.peppy-quality__doc-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.peppy-quality__doc-meta { display: block; padding: 1rem 1.2rem; }
.peppy-quality__doc-type {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--peppy-text-muted);
  margin-bottom: 0.3rem;
}
.peppy-quality__doc-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.25rem;
  color: var(--peppy-text);
}
/* Mission / standards */
.peppy-quality__mission {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 4vw;
  align-items: start;
}
.peppy-quality__mission .peppy-quality__h2 { margin-bottom: 0 !important; }
.peppy-quality__mission-body p {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--peppy-text-muted);
  margin: 0 0 1.25rem;
}
.peppy-quality__chips {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}
.peppy-quality__chips li {
  font-family: 'Inter', sans-serif;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--peppy-text);
  background: var(--peppy-cream-2);
  border: 1px solid rgba(60, 45, 90, 0.12);
  border-radius: 999px;
  padding: 0.45rem 1rem;
}
/* Final CTA */
.peppy-quality__cta-wrap { padding: 0 0 5rem; }
.peppy-quality__cta {
  background: linear-gradient(135deg, var(--peppy-lavender) 0%, #e9d8f7 100%);
  border-radius: 24px;
  padding: 4rem 2rem;
  text-align: center;
}
.peppy-quality__cta-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--peppy-text);
  opacity: 0.65;
  margin: 0 0 0.85rem;
}
.peppy-quality__cta-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(2.2rem, 5vw, 3.2rem) !important;
  color: var(--peppy-text) !important;
  margin: 0 0 2rem !important;
}
.peppy-quality__cta-actions {
  display: flex;
  gap: 0.85rem;
  justify-content: center;
  flex-wrap: wrap;
}
.peppy-quality__btn {
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  border-radius: 999px;
  padding: 0.9rem 2rem;
  text-decoration: none !important;
  transition: background 180ms ease, opacity 180ms ease;
}
.peppy-quality__btn--primary { background: var(--peppy-text); color: var(--peppy-cream); }
.peppy-quality__btn--primary:hover { opacity: 0.9; }
.peppy-quality__btn--ghost { background: rgba(255,255,255,0.65); color: var(--peppy-text); }
.peppy-quality__btn--ghost:hover { background: #fff; }
/* Lightbox */
.peppy-quality__lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(26, 26, 26, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4vw;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
}
.peppy-quality__lightbox[aria-hidden="false"] { opacity: 1; pointer-events: auto; }
.peppy-quality__lightbox-fig { margin: 0; max-width: 800px; text-align: center; }
.peppy-quality__lightbox-fig img {
  max-width: 100%;
  max-height: 82vh;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,0.5);
}
.peppy-quality__lightbox-fig figcaption {
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  color: #fff;
  opacity: 0.85;
  margin-top: 1rem;
}
.peppy-quality__lightbox-close {
  position: absolute;
  top: 1.5rem; right: 1.5rem;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.15);
  color: #fff;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  transition: background 160ms ease;
}
.peppy-quality__lightbox-close:hover { background: rgba(255,255,255,0.3); }
@media (max-width: 900px) {
  .peppy-quality__steps { grid-template-columns: 1fr 1fr; }
  .peppy-quality__stats { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .peppy-quality__verify,
  .peppy-quality__mission { grid-template-columns: 1fr; gap: 2.5rem; }
  .peppy-quality__docs { grid-template-columns: 1fr 1fr; }
  .peppy-quality__section { padding: 3.5rem 0; }
}
@media (max-width: 560px) {
  .peppy-quality__steps { grid-template-columns: 1fr; }
  .peppy-quality__docs { grid-template-columns: 1fr; }
}

/* Messages */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
  background: #fff !important;
  border: 1px solid rgba(60, 45, 90, 0.12) !important;
  border-left: 3px solid var(--peppy-lavender) !important;
  border-radius: 8px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  color: var(--peppy-text) !important;
  box-shadow: none !important;
  padding: 1rem 1.25rem !important;
  list-style: none !important;
  margin: 0 0 1.5rem !important;
}
.woocommerce-message li,
.woocommerce-info li,
.woocommerce-error li { list-style: none !important; margin: 0 !important; }
/* Drop the default Woo/Blocksy notice glyph — it was overlapping the
   text. Clean text-only notices read more premium. */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before,
.woocommerce-message::after,
.woocommerce-info::after,
.woocommerce-error::after { display: none !important; content: none !important; }
/* Errors get a soft rose accent so they read as errors, not info. */
.woocommerce-error { border-left-color: #d98a8a !important; }

/* Mobile */
@media (max-width: 768px) {
  body.woocommerce-cart .entry-content,
  body.woocommerce-checkout .entry-content,
  body.woocommerce-account .entry-content { padding: 1rem 5vw 3rem; }
  .woocommerce-cart table.cart .product-thumbnail img { width: 60px !important; height: 60px !important; }
  .woocommerce-cart table.cart .product-name a { font-size: 1.05rem !important; }
  /* Break the cart table out of table layout on mobile so cells can
     reflow at full viewport width (otherwise the coupon cell is
     crushed to the natural width of the "Quantity" column). */
  .woocommerce-cart table.cart,
  .woocommerce-cart table.cart thead,
  .woocommerce-cart table.cart tbody,
  .woocommerce-cart table.cart tr,
  .woocommerce-cart table.cart td {
    display: block !important;
    width: 100% !important;
  }
  .woocommerce-cart table.cart thead { display: none !important; }
  /* Hide the per-unit price column on mobile — the qty stepper and
     subtotal next to it already communicate the same info. */
  .woocommerce-cart table.cart td.product-price { display: none !important; }
  /* Blocksy injects .product-mobile-actions inside .product-name with
     a duplicate qty stepper, price, and remove button. We render the
     real ones in their own columns below, so hide the duplicates. */
  .woocommerce-cart table.cart td.product-name .product-mobile-actions,
  .woocommerce-cart table.cart td.product-name .quantity,
  .woocommerce-cart table.cart td.product-name .price,
  .woocommerce-cart table.cart td.product-name .screen-reader-text { display: none !important; }
  .woocommerce-cart table.cart tr {
    border-bottom: 1px solid rgba(60, 45, 90, 0.08);
    padding: 1.25rem 0;
    position: relative;
  }
  .woocommerce-cart table.cart td {
    border: none !important;
    padding: 0.25rem 0 !important;
    text-align: left !important;
  }
  .woocommerce-cart table.cart td.actions {
    padding-top: 1.5rem !important;
    margin-top: 0.5rem;
  }
  /* Coupon input + button stack full-width on mobile */
  .woocommerce-cart .coupon {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 0.75rem !important;
  }
  .woocommerce-cart .coupon input.input-text {
    max-width: none !important;
    width: 100% !important;
  }
  /* Bring the cart totals card up close to the items, not far below */
  .woocommerce-cart .cart_totals,
  .ct-woocommerce-cart-form .cart_totals {
    width: 100% !important;
    float: none !important;
    margin-top: 1.5rem !important;
    padding: 1.5rem !important;
  }
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #order_review_heading { padding: 1.5rem; }
  .woocommerce-account form.login,
  .woocommerce-account form.register { padding: 1.75rem 1.5rem !important; }
  /* Quiz: stack the two panels on phones */
  .peppy-quiz {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .peppy-quiz__aside { padding: 2.5rem 7vw 2rem; }
  .peppy-quiz__headline { font-size: 2rem; max-width: none; }
  .peppy-quiz__intro { max-width: none; }
  .peppy-quiz__panel { padding: 2.25rem 7vw 3.5rem; }
  .peppy-quiz__inner { max-width: none; }
  .peppy-quiz__question { font-size: 1.6rem; }
  .peppy-quiz__card { flex-direction: column; text-align: center; }
  .peppy-quiz__card-body { text-align: center; }
  .peppy-quiz__card-img { flex-basis: auto; }
  .peppy-quiz-teaser { padding: 2.5rem 1.5rem; }
  .peppy-quiz-teaser__title { font-size: 1.9rem; }
}

/* =====================================================================
   TOUCH FEEDBACK — active state on mobile
   ===================================================================== */
a:active { opacity: 0.5; }

/* =====================================================================
   ACCORDION KEYBOARD FOCUS
   ===================================================================== */
.peppy-accordion summary:focus-visible {
  outline: 2px solid var(--peppy-lavender, #b4a7d6);
  outline-offset: 3px;
  border-radius: 2px;
}

/* =====================================================================
   SEARCH PANEL — mobile header offset fix
   ===================================================================== */
@media (max-width: 999px) {
  #peppy-search-panel { top: 66px; }
  #peppy-search-backdrop { top: 66px; }
}

/* =====================================================================
   CATALOG SIDEBAR — mobile filter toggle
   ===================================================================== */
.peppy-filter-toggle {
  display: none;
}
@media (max-width: 900px) {
  .peppy-filter-toggle {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--peppy-border);
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.25rem;
    font-weight: 500;
    color: var(--peppy-text);
    cursor: pointer;
    margin-bottom: 0;
    min-height: 44px;
  }
  .peppy-filter-toggle svg {
    width: 18px; height: 18px;
    transition: transform 240ms ease;
    flex-shrink: 0;
  }
  .peppy-filter-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
  .peppy-catalog-sidebar .peppy-filter-group,
  .peppy-catalog-sidebar .peppy-clear-filters {
    display: none;
  }
  .peppy-catalog-sidebar.is-open .peppy-filter-group,
  .peppy-catalog-sidebar.is-open .peppy-clear-filters {
    display: block;
  }
}

/* =====================================================================
   WOOCOMMERCE CART TABLE — mobile card layout
   ===================================================================== */
@media (max-width: 640px) {
  .woocommerce-cart table.shop_table thead { display: none; }
  .woocommerce-cart table.shop_table,
  .woocommerce-cart table.shop_table tbody,
  .woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item {
    display: block;
    width: 100%;
  }
  .woocommerce-cart table.shop_table tr.woocommerce-cart-form__cart-item {
    display: grid;
    grid-template-columns: 80px 1fr auto;
    grid-template-rows: auto auto auto;
    column-gap: 1rem;
    row-gap: 0.5rem;
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--peppy-border);
    position: relative;
  }
  .woocommerce-cart table.shop_table td { display: block; padding: 0; border: none; }
  .woocommerce-cart table.shop_table td.product-thumbnail {
    grid-column: 1; grid-row: 1 / span 3;
    align-self: start;
  }
  .woocommerce-cart table.shop_table td.product-thumbnail img {
    width: 80px; height: 80px; object-fit: cover; border-radius: 4px;
    display: block;
  }
  .woocommerce-cart table.shop_table td.product-name {
    grid-column: 2; grid-row: 1;
    padding-right: 2.5rem;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.1rem;
  }
  .woocommerce-cart table.shop_table td.product-price {
    grid-column: 2; grid-row: 2;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    color: var(--peppy-text-muted, #888);
  }
  .woocommerce-cart table.shop_table td.product-price::before {
    content: attr(data-title) ": ";
    font-weight: 500;
  }
  .woocommerce-cart table.shop_table td.product-quantity {
    grid-column: 2; grid-row: 3;
  }
  .woocommerce-cart table.shop_table td.product-subtotal {
    grid-column: 3; grid-row: 3;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    align-self: end;
    text-align: right;
  }
  .woocommerce-cart table.shop_table td.product-remove {
    position: absolute;
    top: 1.25rem; right: 0;
    grid-column: 3; grid-row: 1;
  }
  .woocommerce-cart table.shop_table td.product-remove a.remove {
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
  }
}
