@font-face {
  font-family: 'Apple Garamond';
  src: url('../fonts/AppleGaramond-LightItalic.ttf') format('truetype');
  font-style: italic;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: 'Helvetica Neue Grove';
  src: url('../fonts/HelveticaNeue-Bold.woff2') format('woff2');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --grove-cream: #F5F5F0;
  --grove-cream-light: #FAFAF7;
  --grove-forest: #1B3022;
  --grove-sage: #6B7A52;
  --grove-text: #2A2A2A;
  --grove-muted: #4A4A4A;
  --grove-stone: #E3D7C8;
  --grove-brown-bar: rgb(136 117 100 / 40%);
  --grove-header-border: rgba(27, 48, 34, 0.08);
  --announcement-bar-height: 42px;
}

/* Announcement bar — matches React MovingLettersBar / ml12 */
.grove-announcement-bar__shell {
  background: var(--grove-brown-bar);
  position: relative;
  width: 100%;
  z-index: 60;
  margin-block-end: 0;
}

:root :where(.wp-site-blocks) > .grove-announcement-bar__shell + * {
  margin-block-start: 0 !important;
}

.grove-announcement-bar__shell + .grove-header {
  margin-top: 0;
  border-top: none;
}

.grove-announcement-bar__inner {
  margin: 0 auto;
  max-width: none;
  padding: 0.625rem 1rem;
}

@media (min-width: 640px) {
  .grove-announcement-bar__inner { padding-left: 2rem; padding-right: 2rem; }
}

@media (min-width: 1024px) {
  .grove-announcement-bar__inner { padding-left: 4rem; padding-right: 4rem; }
}

.grove-announcement-bar {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 1.35em;
  text-align: center;
}

.grove-announcement-bar__ml12 {
  color: rgba(255, 255, 255, 0.88);
  font-family: Inter, sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 1.35;
  margin: 0;
  text-transform: uppercase;
}

@media (min-width: 640px) {
  .grove-announcement-bar__ml12 { font-size: 11px; }
}

.grove-announcement-bar__letters {
  display: inline-block;
}

.grove-announcement-bar__letter {
  backface-visibility: hidden;
  display: inline-block;
  line-height: 1em;
  opacity: 0;
  transform: translateX(40px);
  will-change: transform, opacity;
}

body {
  background: var(--grove-cream);
  color: var(--grove-text);
  font-family: Inter, sans-serif;
  margin: 0;
}

/* Site header — matches React VerticalSiteHeader / HomePage nav */
.grove-header {
  z-index: 50;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border-bottom: 1px solid var(--grove-header-border);
  transition: background-color 0.3s, border-color 0.3s;
}

.grove-header:not(.grove-header--hero) {
  position: relative;
}

.grove-header__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.25rem 1rem 1rem;
}

@media (min-width: 640px) {
  .grove-header__inner { padding-left: 2rem; padding-right: 2rem; }
}

@media (min-width: 1024px) {
  .grove-header__inner { padding: 0; }
}

.grove-header__logo img {
  display: block;
  height: 115px;
  width: auto;
  object-fit: contain;
}

.grove-header__nav-link {
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1;
  color: var(--grove-text);
  text-decoration: none;
  transition: opacity 0.2s;
  white-space: nowrap;
}

@media (min-width: 1024px) {
  .grove-header__nav-link { font-size: 17px; }
}

.grove-header__nav-link:hover { opacity: 0.6; }

.grove-header__nav-item {
  position: relative;
}

.grove-header__nav-item--has-dropdown .grove-header__nav-link {
  display: inline-flex;
  padding: 0.5rem 0;
}

.grove-header__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 60;
  width: 280px;
  padding-top: 0.5rem;
  transform: translateX(-50%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.grove-header__nav-item--has-dropdown:hover .grove-header__dropdown,
.grove-header__nav-item--has-dropdown:focus-within .grove-header__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.grove-header__dropdown-inner {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.1);
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(27, 48, 34, 0.1);
  padding: 0.5rem 0;
}

.grove-header__dropdown-all {
  display: block;
  padding: 0.65rem 1rem;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--grove-sage);
  text-decoration: none;
  transition: opacity 0.15s ease;
}

.grove-header__dropdown-link {
  display: block;
  padding: 0.65rem 1rem;
  font-size: 15px;
  font-weight: 600;
  color: var(--grove-forest);
  text-decoration: none;
  transition: opacity 0.15s ease;
}

.grove-header__dropdown-all:hover,
.grove-header__dropdown-link:hover {
  opacity: 0.7;
}

.grove-header__mobile-nav-group {
  display: flex;
  flex-direction: column;
}

.grove-header__mobile-nav-children {
  display: flex;
  flex-direction: column;
  margin: 0 0 0.5rem 0.75rem;
  padding-left: 0.75rem;
  border-left: 1px solid rgba(27, 48, 34, 0.12);
}

.grove-header__mobile-nav-child {
  display: block;
  padding: 0.65rem 0;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--grove-text-muted, #4a4a4a);
  text-decoration: none;
}

.grove-header__mobile-nav-child:hover {
  opacity: 0.7;
}

.grove-header__desktop {
  display: none;
}

@media (min-width: 1024px) {
  .grove-header__desktop {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
  }

  .grove-header__logo { justify-self: start; }

  .grove-header__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    justify-self: stretch;
  }

  .grove-header__actions {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }
}

@media (min-width: 1280px) {
  .grove-header__nav { gap: 2rem; }
}

.grove-header__mobile {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.5rem;
}

.grove-header__mobile > .grove-header__logo {
  grid-column: 2;
  justify-self: center;
}

@media (min-width: 1024px) {
  .grove-header__mobile { display: none; }
}

.grove-header__mobile-actions {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.grove-header__search {
  position: relative;
  display: flex;
  align-items: center;
}

.grove-header__search--mobile { display: none; }

@media (min-width: 768px) {
  .grove-header__search--mobile { display: flex; }
}

.grove-header__search-icon {
  position: absolute;
  left: 0.75rem;
  color: rgba(42, 42, 42, 0.45);
  display: flex;
  pointer-events: none;
}

.grove-header__search-input {
  width: 160px;
  padding: 0.5rem 1rem 0.5rem 2.25rem;
  border: none;
  border-radius: 999px;
  background: #EFEFEF;
  color: var(--grove-text);
  font-family: Inter, sans-serif;
  font-size: 14px;
  outline: none;
}

@media (min-width: 640px) {
  .grove-header__search-input { width: 180px; }
}

@media (min-width: 1024px) {
  .grove-header__search-input { width: 220px; }
}

.grove-header__cart {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  color: var(--grove-text);
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-header__cart--mobile {
  display: flex;
}

.grove-header__cart:hover { opacity: 0.6; }

.grove-header__cart-badge {
  position: absolute;
  top: -0.25rem;
  right: -0.25rem;
  min-width: 18px;
  height: 18px;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--grove-forest);
  color: var(--grove-cream);
  font-family: Inter, sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
}

.grove-header__cart:has(.grove-header__cart-badge) {
  background: var(--grove-forest);
  color: var(--grove-cream);
}

.grove-header__cart:has(.grove-header__cart-badge) .grove-header__cart-badge {
  background: var(--grove-sage);
}

.grove-header__menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: var(--grove-forest);
  cursor: pointer;
  padding: 0;
}

.grove-header__menu-toggle svg {
  display: block;
  height: 28px;
  width: 28px;
}

/* Consumer / Business site switcher */
.grove-site-toggle {
  display: inline-flex;
  align-items: stretch;
  padding: 0.25rem;
  border-radius: 0.375rem;
  background: #e8e8e8;
  flex-shrink: 0;
}

.grove-site-toggle__option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.625rem 1.125rem;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8a8a8a;
  text-decoration: none;
  border-radius: 0.25rem;
  line-height: 1;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.grove-site-toggle__option:hover {
  color: #666;
}

.grove-site-toggle__option.is-active {
  background: #fff;
  color: #5c5c5c;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.grove-header__mobile-drawer-toggle,
.grove-b2b-header__mobile-toggle {
  padding: 0 1.25rem 1rem;
}

.grove-b2b-header__inner > .grove-site-toggle {
  display: none;
}

@media (min-width: 1024px) {
  .grove-b2b-header__inner > .grove-site-toggle {
    display: inline-flex;
  }
}

.grove-header__mobile-panel[hidden] { display: none; }

.grove-header__mobile-panel {
  position: fixed;
  inset: 0;
  z-index: 100;
}

@media (min-width: 1024px) {
  .grove-header__mobile-panel { display: none !important; }
}

.grove-header-menu-open { overflow: hidden; }

.grove-header__mobile-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  background: rgba(27, 48, 34, 0.72);
  cursor: pointer;
  padding: 0;
}

.grove-header__mobile-drawer {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 100%;
  max-width: 340px;
  display: flex;
  flex-direction: column;
  background: var(--grove-cream-light);
  box-shadow: -8px 0 40px rgba(0, 0, 0, 0.18);
}

.grove-header__mobile-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem;
  border-bottom: 1px solid var(--grove-header-border);
}

.grove-header__mobile-drawer-logo {
  height: 4rem;
  width: auto;
  object-fit: contain;
}

.grove-header__menu-close {
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--grove-forest);
  cursor: pointer;
  padding: 0;
}

.grove-header__mobile-nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1.5rem;
  overflow-y: auto;
}

.grove-header__mobile-nav-link {
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--grove-forest);
  text-decoration: none;
  padding: 1rem 0;
}

.grove-header__mobile-nav-link:hover { opacity: 0.6; }

.grove-header__mobile-nav-commerce {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: auto;
  padding-top: 1.25rem;
  border-top: 1px solid var(--grove-header-border);
}

.grove-header__mobile-nav-cart,
.grove-header__mobile-nav-checkout {
  align-items: center;
  border-radius: 999px;
  display: flex;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 600;
  justify-content: center;
  min-height: 48px;
  padding: 0.85rem 1.25rem;
  text-decoration: none;
}

.grove-header__mobile-nav-cart {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.14);
  color: var(--grove-forest);
}

.grove-header__mobile-nav-checkout {
  background: var(--grove-forest);
  color: var(--grove-cream);
}

/* Site footer — parity with React Footer (source of truth :5174). */
.grove-footer {
  background-color: #f7f5f2;
  color: #2a2a2a;
}

.grove-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 4rem 1.5rem 2.5rem; /* pt-16 px-6 pb-10 */
}

.grove-footer__heading {
  margin: 0 0 3.5rem; /* mb-14 */
  text-align: center;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.25;
  color: #1b3022;
}

.grove-footer__columns { display: none; }

.grove-footer__col-title {
  margin: 0 0 1.25rem; /* mb-5 */
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  color: #4a4a4a;
}

.grove-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem; /* gap-3 */
}

.grove-footer__link {
  display: inline-block;
  text-align: left;
  font-size: 14px;
  line-height: 1.6;
  color: #2a2a2a;
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-footer__link:hover { opacity: 0.6; }

.grove-footer__form {
  display: flex;
  align-items: flex-end;
  gap: 0.75rem;
  border-bottom: 1px solid rgba(27, 48, 34, 0.35);
  padding-bottom: 0.5rem; /* pb-2 */
}

.grove-footer__form--success {
  display: none;
}

.grove-footer__newsletter .grove-form-status {
  margin-top: 0;
}

.grove-footer__input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: 0;
  outline: none;
  font-family: inherit;
  font-size: 14px;
  color: #2a2a2a;
}

.grove-footer__input::placeholder { color: rgba(42, 42, 42, 0.45); }

.grove-footer__submit {
  background: none;
  border: 0;
  padding: 0 0 2px;
  color: #2a2a2a;
  cursor: pointer;
  display: inline-flex;
  transition: opacity 0.2s;
}

.grove-footer__submit:hover { opacity: 0.6; }

.grove-footer__form-note {
  margin: 1rem 0 0; /* mt-4 */
  font-size: 12px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-footer__inline-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.2s;
}

.grove-footer__inline-link:hover { opacity: 0.6; }

.grove-footer__mobile { display: block; }

.grove-footer__acc { border-top: 1px dotted rgba(27, 48, 34, 0.22); }

.grove-footer__acc-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 0; /* py-5 */
  background: none;
  border: 0;
  cursor: pointer;
  color: #2a2a2a;
}

.grove-footer__acc-title {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  color: #2a2a2a;
}

.grove-footer__acc-icon { transition: transform 0.2s; }

.grove-footer__acc-toggle[aria-expanded="true"] .grove-footer__acc-icon { transform: rotate(180deg); }

.grove-footer__acc-panel {
  list-style: none;
  margin: 0;
  padding: 0 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.grove-footer__acc-panel[hidden] { display: none; }

.grove-footer__acc--newsletter { padding: 1.25rem 0; }

.grove-footer__socials {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem; /* gap-6 */
  padding: 2.5rem 0; /* pt-10 pb-10 */
}

.grove-footer__social {
  color: #2a2a2a;
  display: inline-flex;
  transition: opacity 0.2s;
}

.grove-footer__social:hover { opacity: 0.6; }

.grove-footer__disclaimer {
  margin: 0 auto;
  max-width: 960px;
  padding-bottom: 2.5rem; /* pb-10 */
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
  color: #4a4a4a;
}

.grove-footer__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding-top: 2rem; /* pt-8 */
  border-top: 1px solid rgba(27, 48, 34, 0.12);
}

.grove-footer__copy {
  margin: 0;
  font-size: 12px;
  line-height: 1;
  color: #4a4a4a;
}

.grove-footer__legal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.grove-footer__legal-link {
  font-size: 12px;
  line-height: 1;
  color: #2a2a2a;
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-footer__legal-link:hover { opacity: 0.6; }

@media (min-width: 640px) {
  .grove-footer__inner { padding-left: 2.5rem; padding-right: 2.5rem; } /* sm:px-10 */
  .grove-footer__heading { font-size: 32px; }
}

@media (min-width: 1024px) {
  .grove-footer__inner { padding-left: 5rem; padding-right: 5rem; } /* lg:px-20 */
  .grove-footer__heading { font-size: 36px; margin-bottom: 4rem; } /* lg:mb-16 */
  .grove-footer__columns {
    display: grid;
    grid-template-columns: repeat(var(--grove-footer-cols, 4), minmax(0, 1fr));
    gap: 2.5rem; /* gap-10 */
    padding-bottom: 3.5rem; /* pb-14 */
    justify-content: center;
  }
  .grove-footer__mobile { display: none; }
  .grove-footer__socials { padding-top: 3.5rem; padding-bottom: 3rem; } /* lg:pt-14 pb-12 */
}

@media (min-width: 1280px) {
  .grove-footer__columns { gap: 3.5rem; } /* xl:gap-14 */
}

.grove-eyebrow {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--grove-sage);
  margin: 0 0 1rem;
}

.grove-display {
  font-family: 'DM Serif Display', serif;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.06;
  color: var(--grove-forest);
  margin: 0 0 1rem;
}

.grove-body {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--grove-muted);
  max-width: 42rem;
}

.grove-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.5rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  border: 0;
  cursor: pointer;
}

.grove-btn--dark {
  background: var(--grove-forest);
  color: #fff;
}

.grove-page-hero,
.grove-products,
.grove-blog,
.grove-vertical,
.grove-comparison,
.grove-newsletter {
  max-width: 1200px;
  margin: 0 auto;
  padding: 3rem 1.5rem;
}

.grove-home-hero__media img,
.grove-vertical__hero img {
  width: 100%;
  border-radius: 1.5rem;
  display: block;
}

/* Home verticals — parity with React source of truth (:5174) #verticals. */
.grove-verticals {
  /* Defeat the theme's is-layout-constrained cap so the cream band is full-bleed (matches source). */
  max-width: none;
  background-color: #f5f5f0;
  scroll-margin-top: 24px;
  padding: 2.5rem 1rem;
}

.grove-verticals__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.grove-verticals__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.grove-verticals__col {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.grove-verticals__title-link {
  display: block;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.grove-verticals__title-link:hover {
  opacity: 0.9;
}

.grove-verticals__title {
  text-align: center;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: clamp(15px, 3.6vw, 18px);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: #1b3022;
  text-wrap: balance;
}

.grove-verticals__title-line {
  display: block;
}

.grove-verticals__media {
  display: block;
  overflow: hidden;
  border-radius: 14px;
}

.grove-verticals__media--hero {
  aspect-ratio: 3 / 4;
}

.grove-verticals__media--product {
  aspect-ratio: 1 / 1;
}

.grove-verticals__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.grove-verticals__media:hover img {
  transform: scale(1.02);
}

.grove-verticals__products {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
}

.grove-verticals__disclaimer {
  margin: 2.5rem auto 0;
  max-width: 900px;
  text-align: center;
  font-size: 10px;
  line-height: 1.625;
  color: #4a4a4a;
}

@media (min-width: 640px) {
  .grove-verticals { padding: 3.5rem 2rem; }
  .grove-verticals__grid { gap: 1.5rem; }
  .grove-verticals__col { gap: 1rem; }
  .grove-verticals__products { gap: 0.75rem; }
  .grove-verticals__title { font-size: 20px; }
  .grove-verticals__disclaimer { margin-top: 3.5rem; font-size: 11px; }
}

@media (min-width: 1024px) {
  .grove-verticals { padding: 3.5rem 3rem; }
  .grove-verticals__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
  .grove-verticals__title { font-size: 24px; }
}

.grove-disclaimer {
  font-size: 0.75rem;
  color: var(--grove-muted);
  max-width: 1200px;
  margin: 0 auto 2rem;
  padding: 0 1.5rem;
}

.grove-cart-fab {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  background: var(--grove-forest);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  z-index: 100;
}

.grove-cart-fab__badge {
  position: absolute;
  top: -0.25rem;
  right: -0.25rem;
  background: var(--grove-sage);
  color: #fff;
  border-radius: 999px;
  min-width: 1.25rem;
  height: 1.25rem;
  font-size: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.grove-wc-main {
  max-width: 960px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* Home hero parity with the React source of truth on :5174. */
.home .wp-site-blocks {
  overflow-x: hidden;
}

.grove-main--home.is-layout-constrained > .grove-home-hero {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100%;
}

.grove-home-hero {
  margin: 0;
  max-width: none;
  padding: 0;
  position: relative;
  width: 100%;
}

.grove-home-hero__header {
  position: absolute;
  inset: 0 auto auto;
  width: 100%;
  z-index: 50;
}

.grove-home-hero__grid {
  align-items: stretch;
  display: grid;
  gap: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grove-home-hero__tile {
  aspect-ratio: 3 / 5;
  display: block;
  min-width: 0;
  overflow: hidden;
  position: relative;
  /* Definite inline size; Safari otherwise stretch-resolves the auto row first
     and transfers 0 height through the aspect ratio, collapsing the tile. */
  width: 100%;
}

.grove-home-hero__tile img {
  display: block;
  height: 100%;
  inset: 0;
  object-fit: cover;
  object-position: center 28%;
  position: absolute;
  width: 100%;
}

.grove-home-hero__shade {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.55) 100%);
  inset: 0;
  position: absolute;
}

.grove-home-hero__headline {
  align-items: center;
  box-sizing: border-box;
  color: #fff;
  display: flex;
  flex-direction: column;
  font-family: 'Apple Garamond', serif;
  font-size: clamp(2.75rem, 6.4vw, 8.25rem);
  font-style: italic;
  font-weight: 300;
  inset: 0;
  justify-content: center;
  letter-spacing: -0.01em;
  line-height: 1.08;
  margin: 0;
  padding: 5.5rem 1.25rem 1.5rem;
  pointer-events: none;
  position: absolute;
  text-align: center;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.5);
  width: 100%;
  z-index: 10;
}

.grove-home-hero__headline span {
  display: block;
  max-width: 18ch;
}

.grove-main--philosophy {
  max-width: none !important;
}

.grove-philosophy-page {
  background-color: #FAFAF7;
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  padding: 100px 0;
  width: 100vw;
}

.grove-philosophy-page__inner {
  align-items: center;
  display: grid;
  gap: 64px;
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 32px;
}

.grove-philosophy-page__copy,
.grove-philosophy-page__media-wrap {
  opacity: 1;
  transform: none;
}

.grove-philosophy-page__eyebrow {
  color: var(--grove-sage);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0 0 28px;
  text-transform: uppercase;
}

.grove-philosophy-page__quote {
  color: #1B3022;
  font-family: 'DM Serif Display', serif;
  font-size: 28px;
  line-height: 1.1;
  margin: 0 0 40px;
  max-width: 14ch;
}

.grove-philosophy-page__body {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.625;
  margin: 0 0 40px;
  max-width: 420px;
}

.grove-philosophy-page__button {
  align-items: center;
  background: transparent;
  border: 0;
  color: #1B3022;
  cursor: pointer;
  display: flex;
  font-family: Inter, sans-serif;
  font-size: 14px;
  gap: 8px;
  padding: 0;
  text-decoration-line: underline;
  text-underline-offset: 4px;
}

.grove-philosophy-page__button svg {
  transition: transform 200ms;
}

.grove-philosophy-page__button:hover svg {
  transform: translateX(2px);
}

.grove-philosophy-page__media {
  aspect-ratio: 4 / 5;
  background-color: #E3D7C8;
  border-radius: 32px;
  overflow: hidden;
}

.grove-philosophy-page__media img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.grove-latest-articles {
  background-color: #fff;
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  padding: 100px 0;
  width: 100vw;
}

.grove-latest-articles__inner {
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 32px;
}

.grove-latest-articles__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 64px;
}

.grove-latest-articles__eyebrow {
  color: var(--grove-sage);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0 0 16px;
  text-transform: uppercase;
}

.grove-latest-articles__title {
  color: #1B3022;
  font-family: 'DM Serif Display', serif;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.06;
  margin: 0;
  max-width: 11ch;
}

.grove-latest-articles__library {
  align-items: center;
  color: #1B3022;
  display: flex;
  flex-shrink: 0;
  font-family: Inter, sans-serif;
  font-size: 14px;
  gap: 8px;
  text-decoration-line: underline;
  text-underline-offset: 4px;
}

.grove-latest-articles__library svg {
  transition: transform 200ms;
}

.grove-latest-articles__library:hover svg {
  transform: translateX(2px);
}

.grove-latest-articles__grid {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
}

.grove-latest-articles__card {
  cursor: pointer;
}

.grove-latest-articles__image-link {
  aspect-ratio: 16 / 10;
  background-color: #E3D7C8;
  border-radius: 24px;
  display: block;
  margin-bottom: 24px;
  overflow: hidden;
}

.grove-latest-articles__image-link img {
  display: block;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms;
  width: 100%;
}

.grove-latest-articles__card:hover .grove-latest-articles__image-link img {
  transform: scale(1.04);
}

.grove-latest-articles__eyebrow--card {
  margin-bottom: 12px;
}

.grove-latest-articles__card-title {
  color: #1B3022;
  font-family: 'DM Serif Display', serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.25;
  margin: 0 0 12px;
  transition: opacity 200ms;
}

.grove-latest-articles__card-title a {
  color: inherit;
  text-decoration: none;
}

.grove-latest-articles__card:hover .grove-latest-articles__card-title {
  opacity: 0.7;
}

.grove-latest-articles__desc {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.625;
  margin: 0 0 16px;
}

.grove-latest-articles__read {
  color: #C5C9B8;
  font-family: Inter, sans-serif;
  font-size: 12px;
}

.grove-products-hero {
  background-color: #FAFAF7;
  box-sizing: border-box;
  max-width: none !important;
  padding: 64px 24px 40px;
  width: 100%;
}

.grove-products-hero__inner {
  margin: 0 auto;
  max-width: 720px;
}

.grove-products-hero__eyebrow {
  color: var(--grove-sage);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0 0 24px;
  text-transform: uppercase;
}

.grove-products-hero__title {
  color: #1B3022;
  font-family: 'Apple Garamond', serif;
  font-size: clamp(46px, 6vw, 82px);
  font-style: italic;
  font-weight: 300;
  line-height: 1.02;
  margin: 0 0 28px;
}

.grove-products-hero__lead {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 15px;
  line-height: 1.625;
  margin: 0;
}

.grove-comparison {
  background-color: #F0EDE6;
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  padding: 100px 0;
  width: 100vw;
}

.grove-comparison__inner {
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 32px;
}

.grove-comparison__head {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-bottom: 48px;
  text-align: center;
}

.grove-comparison__eyebrow {
  color: var(--grove-sage);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0 0 24px;
  text-transform: uppercase;
}

.grove-comparison__tabs {
  align-items: center;
  display: inline-flex;
  gap: 24px;
  position: relative;
}

.grove-comparison__indicator {
  background-color: #1B3022;
  border-radius: 999px;
  bottom: 0;
  height: 2px;
  left: 0;
  position: absolute;
  transition: left 300ms ease-out, width 300ms ease-out;
  width: 0;
}

.grove-comparison__tab {
  background: transparent;
  border: 0;
  color: #4A4A4A;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 500;
  padding: 0 0 12px;
  position: relative;
  transition: color 200ms;
}

.grove-comparison__tab.is-active {
  color: #1B3022;
}

.grove-comparison__title {
  color: #1B3022;
  font-family: 'DM Serif Display', serif;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.06;
  margin: 0 auto 40px;
  text-align: center;
}

.grove-comparison__title span {
  display: block;
}

.grove-comparison__table-wrap {
  background-color: #fff;
  border: 1px solid rgba(27, 48, 34, 0.07);
  border-radius: 32px;
  box-shadow: 0 24px 64px rgba(27, 48, 34, 0.04);
  overflow-x: auto;
}

.grove-comparison__table {
  border-collapse: collapse;
  min-width: 680px;
  table-layout: fixed;
  width: 100%;
}

.grove-comparison__table thead tr {
  background-color: rgba(240, 237, 230, 0.5);
  border-bottom: 1px solid rgba(27, 48, 34, 0.1);
}

.grove-comparison__table tbody tr {
  border-bottom: 1px solid rgba(27, 48, 34, 0.06);
}

.grove-comparison__table tbody tr:last-child {
  border-bottom: 0;
}

.grove-comparison__criteria {
  color: #1B3022;
  padding: 28px 24px;
  text-align: left;
  vertical-align: middle;
}

.grove-comparison__criteria span {
  display: block;
  font-family: 'DM Serif Display', serif;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
  max-width: 9rem;
}

.grove-comparison__column-head {
  padding: 28px 12px 24px;
  text-align: center;
  vertical-align: top;
}

.grove-comparison__column-head.is-grove {
  background-color: rgba(138, 151, 114, 0.1);
}

.grove-comparison__column-head div {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  max-width: 120px;
  width: 100%;
}

.grove-comparison__column-head img {
  border: 2px solid #fff;
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(27, 48, 34, 0.12);
  display: block;
  flex-shrink: 0;
  height: 68px;
  object-fit: cover;
  object-position: center;
  width: 68px;
}

.grove-comparison__column-head.is-grove img {
  box-shadow: 0 0 0 2px rgba(27, 48, 34, 0.2), 0 12px 28px rgba(27, 48, 34, 0.14);
}

.grove-comparison__column-head span {
  align-items: flex-start;
  color: #2A2A2A;
  display: flex;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 600;
  justify-content: center;
  line-height: 1.35;
  margin-top: 14px;
  min-height: 44px;
  padding: 0 4px;
  text-align: center;
}

.grove-comparison__column-head span.is-grove {
  color: #1B3022;
  font-size: 14px;
  font-weight: 700;
}

.grove-comparison__table tbody th {
  color: #2A2A2A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.35;
  padding: 20px 24px;
  text-align: left;
}

.grove-comparison__table td {
  padding: 20px 16px;
  text-align: center;
}

.grove-comparison__icon {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  height: 36px;
  justify-content: center;
  width: 36px;
}

.grove-comparison__icon--yes {
  background-color: #1B3022;
  color: #F5F5F0;
}

.grove-comparison__icon--no {
  border: 1px solid rgba(27, 48, 34, 0.14);
  color: #4A4A4A;
}

.grove-comparison__pill {
  background-color: rgba(27, 48, 34, 0.06);
  border-radius: 999px;
  color: #4A4A4A;
  display: inline-flex;
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  padding: 6px 12px;
  white-space: nowrap;
}

.grove-products-catalog {
  scroll-margin-top: calc(var(--announcement-bar-height, 42px) + 88px);
}

.grove-products-catalog__controls {
  background-color: #fff;
  box-sizing: border-box;
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  padding: 48px 24px;
  width: 100vw;
}

.grove-products-catalog__controls-inner {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0 auto;
  max-width: 1280px;
}

.grove-products-catalog__filters {
  align-items: center;
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.grove-products-catalog__filters > svg {
  color: #1B3022;
  flex: 0 0 auto;
}

.grove-products-catalog__filter {
  background-color: transparent;
  border: 1px solid rgba(27, 48, 34, 0.16);
  border-radius: 999px;
  color: #2A2A2A;
  cursor: pointer;
  flex-shrink: 0;
  font-family: Inter, sans-serif;
  font-size: 13px;
  padding: 8px 16px;
  transition: opacity 200ms;
}

.grove-products-catalog__filter:hover {
  opacity: 0.7;
}

.grove-products-catalog__filter.is-active {
  background-color: #1B3022;
  color: #F5F5F0;
}

.grove-products-catalog__search {
  display: block;
  position: relative;
  width: 100%;
}

.grove-products-catalog__search > svg {
  color: rgba(42, 42, 42, 0.45);
  left: 16px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.grove-products-catalog__search input {
  background-color: #FAFAF7;
  border: 1px solid rgba(27, 48, 34, 0.10);
  border-radius: 999px;
  box-sizing: border-box;
  color: #2A2A2A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  outline: 0;
  padding: 12px 40px 12px 44px;
  width: 100%;
}

.grove-products-catalog__clear-search {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 999px;
  color: #4A4A4A;
  cursor: pointer;
  display: flex;
  height: 28px;
  justify-content: center;
  padding: 0;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
}

.grove-products-catalog__body {
  box-sizing: border-box;
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  padding: 64px 24px;
  width: 100vw;
}

.grove-products-catalog__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 40px;
}

.grove-products-catalog__eyebrow {
  color: var(--grove-sage);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0 0 16px;
  text-transform: uppercase;
}

.grove-products-catalog__head h2 {
  color: #1B3022;
  font-family: 'DM Serif Display', serif;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.1;
  margin: 0;
}

.grove-products-catalog__count {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  margin: 12px 0 0;
}

.grove-products-catalog__meta {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.grove-products-catalog__meta > div {
  color: #4A4A4A;
  display: flex;
  flex-wrap: wrap;
  font-family: Inter, sans-serif;
  font-size: 13px;
  gap: 20px;
}

.grove-products-catalog__meta span {
  align-items: center;
  display: inline-flex;
  gap: 8px;
}

.grove-products-catalog__clear {
  background: transparent;
  border: 0;
  color: #1B3022;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-size: 13px;
  padding: 0;
  text-decoration-line: underline;
  text-underline-offset: 4px;
}

.grove-products-catalog__grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}

.grove-products-catalog__card {
  background-color: #fff;
  border: 1px solid rgba(27, 48, 34, 0.09);
  border-radius: 8px;
  color: inherit;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: transform 300ms;
}

.grove-products-catalog__card[hidden] {
  display: none !important;
}

.grove-products-catalog__card:hover {
  transform: translateY(-4px);
}

.grove-products-catalog__image-pad {
  padding: 16px;
}

.grove-products-catalog__image {
  aspect-ratio: 1 / 1;
  background-color: #E3D7C8;
  border-radius: 8px;
  overflow: hidden;
}

.grove-products-catalog__image img {
  display: block;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms;
  width: 100%;
}

.grove-products-catalog__card:hover .grove-products-catalog__image img {
  transform: scale(1.03);
}

.grove-products-catalog__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 0 20px 20px;
}

.grove-products-catalog__eyebrow--card {
  margin-bottom: 12px;
}

.grove-products-catalog__content h3 {
  color: #1B3022;
  font-family: 'DM Serif Display', serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.375;
  margin: 0 0 12px;
}

.grove-products-catalog__desc {
  color: #4A4A4A;
  display: -webkit-box;
  font-family: Inter, sans-serif;
  font-size: 13px;
  line-height: 1.625;
  margin: 0 0 20px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.grove-products-catalog__foot {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-top: auto;
}

.grove-products-catalog__foot > span:first-child {
  color: #2A2A2A;
  font-family: 'DM Serif Display', serif;
  font-size: 18px;
}

.grove-products-catalog__foot > span:last-child {
  align-items: center;
  color: #1B3022;
  display: inline-flex;
  font-family: Inter, sans-serif;
  font-size: 12px;
  gap: 4px;
}

.grove-products-catalog__empty {
  background-color: #fff;
  border: 1px solid rgba(27, 48, 34, 0.09);
  border-radius: 8px;
  padding: 64px 24px;
  text-align: center;
}

.grove-products-catalog__empty[hidden] {
  display: none;
}

.grove-products-catalog__empty p {
  color: #1B3022;
  font-family: 'DM Serif Display', serif;
  font-size: 18px;
  margin: 0 0 12px;
}

.grove-products-catalog__empty span {
  color: #4A4A4A;
  display: block;
  font-family: Inter, sans-serif;
  font-size: 14px;
  margin: 0 auto 32px;
  max-width: 420px;
}

.grove-products-catalog__empty button {
  background-color: #1B3022;
  border: 0;
  border-radius: 12px;
  color: #F5F5F0;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-size: 14px;
  padding: 12px 24px;
}

.grove-products-catalog__disclaimer {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 10px;
  line-height: 1.625;
  margin: 48px auto 0;
  max-width: 900px;
  text-align: center;
}

.grove-commerce {
  background: #F5F5F0;
  color: #2A2A2A;
  font-family: Inter, sans-serif;
}

.grove-commerce a {
  text-decoration: none;
}

.grove-commerce-eyebrow {
  color: var(--grove-sage);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0 0 16px;
  text-transform: uppercase;
}

.grove-commerce-btn {
  align-items: center;
  background: #1B3022;
  border: 1px solid #1B3022;
  border-radius: 16px;
  box-sizing: border-box;
  color: #F5F5F0;
  cursor: pointer;
  display: inline-flex;
  font-family: Inter, sans-serif;
  font-size: 14px;
  gap: 8px;
  justify-content: center;
  letter-spacing: 0.02em;
  min-height: 56px;
  padding: 16px 28px;
  transition: opacity 200ms;
}

.grove-commerce-btn:hover {
  color: #F5F5F0;
  opacity: 0.9;
}

.grove-commerce-btn--outline {
  background: transparent;
  border-color: rgba(27, 48, 34, 0.22);
  color: #1B3022;
}

.grove-commerce-btn--outline:hover {
  color: #1B3022;
  opacity: 0.7;
}

.grove-commerce-btn--full {
  margin-top: 32px;
  width: 100%;
}

.grove-commerce-disclaimer {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 10px;
  line-height: 1.7;
  margin: 48px auto 0;
  max-width: 900px;
  text-align: center;
}

.grove-product-detail,
.grove-cart-page,
.grove-checkout-page {
  background: #FAFAF7;
  box-sizing: border-box;
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  padding: 56px 24px 64px;
  width: 100vw;
}

.grove-product-detail__inner,
.grove-cart-page__inner,
.grove-checkout-page__inner,
.grove-product-snapshot__inner,
.grove-product-related__inner {
  margin: 0 auto;
  max-width: 1280px;
}

.grove-product-detail__back,
.grove-cart-page__continue {
  align-items: center;
  color: #1B3022;
  display: inline-flex;
  font-family: Inter, sans-serif;
  font-size: 14px;
  gap: 8px;
  margin-bottom: 40px;
  transition: opacity 200ms;
}

.grove-product-detail__back:hover,
.grove-cart-page__continue:hover {
  color: #1B3022;
  opacity: 0.6;
}

.grove-product-detail__grid {
  align-items: start;
  display: grid;
  gap: 48px;
}

.grove-product-detail__gallery {
  display: grid;
  gap: 16px;
}

.grove-product-detail__thumbs {
  display: none;
}

.grove-product-detail__thumbs div,
.grove-product-detail__thumb,
.grove-product-detail__image {
  aspect-ratio: 1 / 1;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
}

.grove-product-detail__thumbs div,
.grove-product-detail__thumb {
  border: 1px solid rgba(27, 48, 34, 0.08);
  background: linear-gradient(135deg, #fafaf7 0%, #eceee6 100%);
}

.grove-product-detail__thumbs img,
.grove-product-detail__image img,
.grove-cart-line__image img,
.grove-product-related__card img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.grove-product-detail__summary h1,
.grove-cart-page__inner > h1,
.grove-checkout-page__inner > h1 {
  color: #1B3022;
  font-family: 'Apple Garamond', 'DM Serif Display', Georgia, serif;
  font-size: clamp(46px, 6vw, 82px);
  font-style: italic;
  font-weight: 300;
  line-height: 1.02;
  margin: 0 0 32px;
}

.grove-product-detail__summary h1 {
  font-size: clamp(40px, 5vw, 70px);
  margin-bottom: 24px;
}

.grove-product-detail__description {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 32px;
  max-width: 620px;
}

.grove-product-detail__dosing {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.08);
  border-radius: 8px;
  margin: 0 0 32px;
  max-width: 620px;
  padding: 1.25rem;
}

.grove-product-detail__dosing .grove-commerce-eyebrow {
  margin-bottom: 0.75rem;
}

.grove-product-detail__dosing > p:last-child {
  color: #4A4A4A;
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
}

.grove-product-detail__price-row {
  align-items: center;
  border-bottom: 1px solid rgba(27, 48, 34, 0.12);
  border-top: 1px solid rgba(27, 48, 34, 0.12);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 32px;
  padding: 24px 0;
}

.grove-product-detail__price-row span {
  color: #2A2A2A;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 34px;
  line-height: 1;
}

.grove-product-detail__actions {
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
}

.grove-product-detail__actions .quantity {
  display: none;
}

.grove-product-detail__badges {
  display: grid;
  gap: 12px;
  margin-top: 40px;
}

.grove-product-detail__badges span {
  align-items: center;
  background: #fff;
  border-radius: 8px;
  color: #2A2A2A;
  display: flex;
  font-family: Inter, sans-serif;
  font-size: 13px;
  gap: 8px;
  padding: 12px;
}

.grove-product-snapshot,
.grove-product-related {
  background: #fff;
  box-sizing: border-box;
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  padding: 64px 24px;
  width: 100vw;
}

.grove-product-related {
  background: #F5F5F0;
}

.grove-product-snapshot__inner {
  display: grid;
  gap: 48px;
}

.grove-product-snapshot h2,
.grove-product-related h2,
.grove-order-summary h2,
.grove-checkout-form h2,
.grove-cart-empty h2 {
  color: #1B3022;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.1;
  margin: 0;
}

.grove-product-snapshot__benefits {
  display: grid;
  gap: 16px;
}

.grove-product-snapshot__benefits article {
  align-items: flex-start;
  background: #FAFAF7;
  border-radius: 8px;
  display: flex;
  gap: 12px;
  padding: 20px;
}

.grove-product-snapshot__benefits article > span {
  align-items: center;
  background: #1B3022;
  border-radius: 999px;
  color: #F5F5F0;
  display: flex;
  flex: 0 0 auto;
  height: 24px;
  justify-content: center;
  margin-top: 2px;
  width: 24px;
}

.grove-product-snapshot__benefits h3 {
  color: #1B3022;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 17px;
  font-weight: 400;
  margin: 0 0 8px;
}

.grove-product-snapshot__benefits p {
  color: #4A4A4A;
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
}

.grove-product-related__head {
  align-items: flex-end;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 36px;
}

.grove-product-related__head a {
  align-items: center;
  color: #1B3022;
  display: none;
  font-size: 14px;
  gap: 8px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.grove-product-related__grid {
  display: grid;
  gap: 20px;
}

.grove-product-related__card {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.09);
  border-radius: 8px;
  color: #2A2A2A;
  display: block;
  padding: 16px;
}

.grove-product-related__card > div {
  aspect-ratio: 1 / 1;
  background: #E3D7C8;
  border-radius: 8px;
  margin-bottom: 16px;
  overflow: hidden;
}

.grove-product-related__card h3 {
  color: #1B3022;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 18px;
  font-weight: 400;
  margin: 0 0 8px;
}

.grove-product-related__card h3 a {
  color: inherit;
}

.grove-product-related__card span {
  color: #2A2A2A;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 15px;
}

.grove-checkout-progress {
  margin-bottom: 40px;
}

.grove-checkout-progress ol {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.grove-checkout-progress li {
  align-items: center;
  display: flex;
  gap: 8px;
  margin: 0;
}

.grove-checkout-progress__line {
  background: rgba(27, 48, 34, 0.18);
  display: none;
  height: 1px;
  width: 32px;
}

.grove-checkout-progress__line.is-complete {
  background: #1B3022;
}

.grove-checkout-progress__pill {
  background: transparent;
  border: 1px solid rgba(27, 48, 34, 0.12);
  border-radius: 999px;
  color: #4A4A4A;
  display: inline-flex;
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  padding: 8px 12px;
  text-transform: uppercase;
}

.grove-checkout-progress__pill.is-current {
  background: #1B3022;
  border-color: transparent;
  color: #F5F5F0;
}

.grove-checkout-progress__pill.is-complete,
.grove-checkout-progress a.grove-checkout-progress__pill {
  background: #FAFAF7;
  color: #1B3022;
}

.grove-cart-page__grid,
.grove-checkout-page__grid {
  display: grid;
  gap: 32px;
}

.grove-cart-page__items {
  display: grid;
  gap: 16px;
}

.grove-cart-line {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.09);
  border-radius: 8px;
  display: grid;
  gap: 20px;
  padding: 20px;
}

.grove-cart-line__image {
  aspect-ratio: 1 / 1;
  background: #E3D7C8;
  border-radius: 8px;
  display: block;
  overflow: hidden;
}

.grove-cart-line__title {
  color: #1B3022;
  display: block;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 22px;
  line-height: 1.2;
  margin-bottom: 8px;
  transition: opacity 200ms;
}

.grove-cart-line__price {
  color: #2A2A2A;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 18px;
  margin: 0;
}

.grove-cart-line__tools {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.grove-cart-line__qty {
  align-items: center;
  background: #FAFAF7;
  border: 1px solid rgba(27, 48, 34, 0.14);
  border-radius: 999px;
  display: inline-flex;
  gap: 4px;
  padding: 4px;
}

.grove-cart-line__qty button {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 999px;
  color: #1B3022;
  cursor: pointer;
  display: flex;
  height: 36px;
  justify-content: center;
  padding: 0;
  width: 36px;
}

.grove-cart-line__qty .quantity {
  display: block;
}

.grove-cart-line__qty input.qty {
  appearance: textfield;
  background: transparent;
  border: 0;
  color: #2A2A2A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 500;
  height: 36px;
  padding: 0;
  text-align: center;
  width: 32px;
}

.grove-cart-line__remove {
  align-items: center;
  background: #FAFAF7;
  border: 1px solid rgba(27, 48, 34, 0.12);
  border-radius: 999px;
  color: #4A4A4A;
  display: inline-flex;
  flex-shrink: 0;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 500;
  gap: 6px;
  line-height: 1;
  padding: 8px 14px;
  text-decoration: none;
  transition: background-color 200ms, border-color 200ms, color 200ms;
  white-space: nowrap;
}

.grove-cart-line__remove svg {
  flex-shrink: 0;
}

.grove-cart-line__remove:hover,
.grove-cart-line__remove:focus-visible {
  background: rgba(139, 58, 58, 0.06);
  border-color: rgba(139, 58, 58, 0.22);
  color: #8B3A3A;
  outline: none;
}

.grove-cart-page__update {
  display: none;
}

.grove-cart-page__continue {
  margin: 0;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.grove-order-summary,
.grove-checkout-form,
.grove-cart-empty {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.10);
  border-radius: 8px;
  box-sizing: border-box;
  padding: 24px;
}

.grove-order-summary__head {
  margin-bottom: 24px;
}

.grove-order-summary__items {
  border-bottom: 1px solid rgba(27, 48, 34, 0.10);
  display: grid;
  gap: 16px;
  list-style: none;
  margin: 0 0 24px;
  padding: 0 0 24px;
}

.grove-order-summary__items li,
.grove-order-summary__totals div {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.grove-order-summary__items p {
  color: #1B3022;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 15px;
  line-height: 1.35;
  margin: 0 0 4px;
}

.grove-order-summary__items span,
.grove-order-summary__totals,
.grove-order-summary__note {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
}

.grove-order-summary__qty {
  align-items: center;
  background: #FAFAF7;
  border: 1px solid rgba(27, 48, 34, 0.12);
  border-radius: 999px;
  display: inline-flex;
  gap: 6px;
  margin-top: 2px;
  padding: 4px 12px;
}

.grove-order-summary__qty-label {
  color: var(--grove-sage);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}

.grove-order-summary__qty-value {
  color: #1B3022;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.grove-order-summary__items strong,
.grove-order-summary__totals dd {
  color: #2A2A2A;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 15px;
  font-weight: 400;
  margin: 0;
  white-space: nowrap;
}

.grove-order-summary__totals {
  display: grid;
  font-size: 14px;
  gap: 12px;
  margin: 0;
}

.grove-order-summary__totals dt {
  margin: 0;
}

.grove-order-summary__total {
  border-top: 1px solid rgba(27, 48, 34, 0.10);
  color: #2A2A2A;
  padding-top: 16px;
}

.grove-confirmation-page .woocommerce-order-details,
.grove-confirmation-page .woocommerce-customer-details,
.grove-confirmation-page .woocommerce-order-overview,
.grove-confirmation-page .woocommerce-thankyou-order-received,
.grove-confirmation-page .woocommerce-bacs-bank-details {
  display: none;
}

.grove-confirmation-main {
  display: grid;
  gap: 24px;
}

.grove-confirmation-panel,
.grove-confirmation-page__details {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.10);
  border-radius: 8px;
  box-sizing: border-box;
  padding: 24px;
}

.grove-confirmation-panel--order .grove-commerce-eyebrow {
  margin-bottom: 8px;
}

.grove-confirmation-page__number {
  color: #1B3022;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: clamp(28px, 4vw, 40px);
  line-height: 1.2;
  margin: 0 0 20px;
}

.grove-confirmation-page__meta {
  display: grid;
  gap: 16px;
  margin: 0;
}

.grove-confirmation-page__meta dt,
.grove-confirmation-page__details .grove-commerce-eyebrow {
  color: var(--grove-sage);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  margin: 0 0 6px;
  text-transform: uppercase;
}

.grove-confirmation-page__meta dd,
.grove-confirmation-page__details p,
.grove-confirmation-page__intro,
.grove-confirmation-panel p {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}

.grove-confirmation-page__meta dd {
  color: #2A2A2A;
}

.grove-confirmation-page__details {
  display: grid;
  gap: 24px;
}

.grove-confirmation-page__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.grove-confirmation-page__actions .grove-commerce-btn {
  min-height: 52px;
}

.grove-confirmation-page__gateway:empty {
  display: none;
}

.grove-confirmation-page__gateway {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.6;
}

@media (min-width: 640px) {
  .grove-confirmation-page__meta,
  .grove-confirmation-page__details {
    grid-template-columns: 1fr 1fr;
  }

  .grove-confirmation-panel,
  .grove-confirmation-page__details {
    padding: 32px;
  }
}

.grove-order-summary__total dt {
  font-weight: 500;
}

.grove-order-summary__total dd {
  font-size: 22px;
}

.grove-order-summary__discount dd {
  color: #1B3022;
}

.grove-order-summary__promo {
  border-top: 1px solid rgba(27, 48, 34, 0.10);
  margin-top: 24px;
  padding-top: 24px;
}

.grove-order-summary__promo-label {
  color: #4A4A4A;
  display: block;
  font-family: Inter, sans-serif;
  font-size: 12px;
  line-height: 1.4;
  margin-bottom: 8px;
}

.grove-order-summary__promo-row {
  display: flex;
  gap: 8px;
}

.grove-order-summary__promo-input {
  appearance: none;
  background: #FAFAF7;
  border: 1px solid rgba(27, 48, 34, 0.14);
  border-radius: 8px;
  box-sizing: border-box;
  color: #2A2A2A;
  flex: 1;
  font-family: Inter, sans-serif;
  font-size: 14px;
  height: 46px;
  line-height: 22px;
  min-height: 46px;
  outline: 0;
  padding: 11px 16px;
}

.grove-order-summary__promo-btn {
  align-items: center;
  background: #1B3022;
  border: 0;
  border-radius: 8px;
  color: #F5F5F0;
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 auto;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 500;
  height: 46px;
  justify-content: center;
  min-width: 88px;
  padding: 0 18px;
  transition: opacity 200ms;
}

.grove-order-summary__promo-btn:hover {
  opacity: 0.9;
}

.grove-order-summary__promo-applied {
  display: grid;
  gap: 8px;
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}

.grove-order-summary__promo-applied li {
  align-items: center;
  background: #FAFAF7;
  border: 1px solid rgba(27, 48, 34, 0.12);
  border-radius: 999px;
  display: flex;
  font-family: Inter, sans-serif;
  font-size: 12px;
  gap: 12px;
  justify-content: space-between;
  padding: 8px 12px;
}

.grove-order-summary__promo-applied span {
  color: #1B3022;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.grove-order-summary__promo-applied a {
  color: #4A4A4A;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.grove-order-summary__promo-applied a:hover {
  color: #1B3022;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout form.checkout_coupon {
  display: none !important;
}

.grove-order-summary__note {
  font-size: 12px;
  line-height: 1.6;
  margin: 20px 0 0;
}

.grove-cart-empty {
  padding: 64px 24px;
  text-align: center;
}

.grove-cart-empty__icon {
  align-items: center;
  background: #FAFAF7;
  border-radius: 999px;
  color: #1B3022;
  display: flex;
  height: 64px;
  justify-content: center;
  margin: 0 auto 24px;
  width: 64px;
}

.grove-cart-empty p {
  color: #4A4A4A;
  font-size: 14px;
  line-height: 1.6;
  margin: 12px auto 32px;
  max-width: 420px;
}

.grove-checkout-form {
  display: grid;
  gap: 40px;
}

.grove-checkout-form__head {
  margin-bottom: 24px;
}

.grove-checkout-fields {
  align-items: start;
  display: grid;
  gap: 16px;
}

.grove-checkout-fields .form-row {
  display: flex;
  flex-direction: column;
  float: none;
  margin: 0;
  padding: 0;
  width: 100% !important;
}

.grove-checkout-fields .woocommerce-input-wrapper {
  display: block;
  width: 100%;
}

.grove-checkout-fields .form-row:has(input[type="hidden"]:only-child),
.grove-checkout-fields #billing_country_field {
  display: none !important;
}

.grove-checkout-fields label,
.grove-checkout-payment label {
  color: #4A4A4A;
  display: block;
  font-size: 12px;
  line-height: 1.4;
  margin-bottom: 8px;
}

.grove-checkout-fields label .required {
  color: inherit;
  font-weight: 400;
  text-decoration: none;
}

.grove-checkout-fields input.input-text,
.grove-checkout-fields select,
.grove-checkout-fields textarea,
.grove-checkout-payment input.input-text,
.grove-checkout-fields .select2-container .select2-selection--single {
  appearance: none;
  background: #FAFAF7;
  border: 1px solid rgba(27, 48, 34, 0.14);
  border-radius: 8px;
  box-sizing: border-box;
  color: #2A2A2A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  height: 46px;
  line-height: 22px;
  margin: 0;
  min-height: 46px;
  outline: 0;
  padding: 11px 16px;
  width: 100%;
}

.grove-checkout-fields select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%234A4A4A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: right 16px center;
  background-repeat: no-repeat;
  padding-right: 40px;
}

.grove-checkout-fields .select2-container {
  display: block !important;
  width: 100% !important;
}

.grove-checkout-fields .select2-container .select2-selection--single {
  align-items: center;
  display: flex;
}

.grove-checkout-fields .select2-container .select2-selection--single .select2-selection__rendered {
  color: #2A2A2A;
  flex: 1;
  line-height: 22px;
  padding: 0;
}

.grove-checkout-fields .select2-container .select2-selection--single .select2-selection__arrow {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  position: absolute;
  right: 10px;
  top: 0;
  width: 20px;
}

.grove-checkout-payment #payment {
  background: transparent;
}

.grove-checkout-payment #payment ul.payment_methods {
  border: 0;
  display: none;
  margin: 0;
  padding: 0;
}

.grove-checkout-payment #payment ul.payment_methods li {
  color: #4A4A4A;
  font-size: 12px;
  line-height: 1.6;
  list-style: none;
  margin: 0;
  padding: 0;
}

.grove-checkout-payment #payment ul.payment_methods li > input,
.grove-checkout-payment #payment ul.payment_methods li > label {
  display: none;
}

.grove-checkout-payment #payment div.payment_box {
  display: none;
}

.grove-checkout-payment #payment div.payment_box::before {
  display: none;
}

.grove-checkout-payment #payment div.form-row {
  padding: 0;
}

.grove-checkout-payment .woocommerce-privacy-policy-text,
.grove-checkout-payment .woocommerce-terms-and-conditions-wrapper {
  display: none;
}

.grove-checkout-payment #place_order {
  align-items: center;
  background: #1B3022;
  border: 1px solid #1B3022;
  border-radius: 16px;
  color: #F5F5F0;
  display: inline-flex;
  float: none;
  font-family: Inter, sans-serif;
  font-size: 14px;
  justify-content: center;
  margin-top: 40px;
  min-height: 56px;
  padding: 16px 28px;
  width: 100%;
}

@media (max-width: 900px) {
  .grove-home-hero {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    /* Keep the full composition in the first mobile viewport. */
    height: calc(100svh - var(--announcement-bar-height, 42px));
    max-height: 780px;
    min-height: 560px;
  }

  .grove-home-hero__header,
  .grove-home-hero .grove-vert__hero-header {
    grid-column: 1;
    grid-row: 1;
    inset: auto;
    position: relative;
  }

  .grove-home-hero .grove-header--hero {
    background: #fff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .grove-home-hero__grid {
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    height: 100%;
    min-height: 0;
  }

  .grove-home-hero__tile {
    aspect-ratio: auto;
    height: 100%;
    min-height: 0;
  }

  .grove-home-hero__tile img {
    object-position: center top;
  }

  .grove-home-hero__tile--young-female-athletes img {
    object-position: 80% top;
  }

  .grove-home-hero__headline {
    font-size: clamp(1.85rem, 8.2vw, 2.75rem);
    gap: 0.08em;
    grid-column: 1;
    grid-row: 2;
    inset: 0;
    padding: 1.25rem 1rem;
  }

  .grove-home-hero__headline span {
    max-width: 14ch;
  }
}

@media (min-width: 640px) {
  .grove-product-detail,
  .grove-cart-page,
  .grove-checkout-page {
    padding: 64px 40px 80px;
  }

  .grove-product-snapshot,
  .grove-product-related {
    padding: 80px 40px;
  }

  .grove-product-detail__gallery {
    grid-template-columns: 86px 1fr;
  }

  .grove-product-detail__thumbs {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .grove-product-detail__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grove-product-detail__badges {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .grove-product-snapshot__benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grove-product-related__head a {
    display: inline-flex;
  }

  .grove-product-related__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .grove-checkout-progress ol {
    gap: 12px;
  }

  .grove-checkout-progress li {
    gap: 12px;
  }

  .grove-checkout-progress__line {
    display: inline-block;
  }

  .grove-cart-line {
    grid-template-columns: 120px 1fr auto;
    padding: 24px;
  }

  .grove-cart-line__tools {
    align-items: flex-end;
    flex-direction: column;
    justify-content: flex-start;
  }

  .grove-order-summary,
  .grove-checkout-form {
    padding: 32px;
  }

  .grove-order-summary--compact {
    padding: 24px;
  }

  .grove-checkout-fields {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .grove-checkout-fields .form-row {
    grid-column: span 6;
  }

  .grove-checkout-fields #billing_first_name_field,
  .grove-checkout-fields #billing_last_name_field {
    grid-column: span 3;
  }

  .grove-checkout-fields #billing_city_field,
  .grove-checkout-fields #billing_state_field,
  .grove-checkout-fields #billing_postcode_field {
    grid-column: span 2;
  }

  .grove-checkout-fields #billing_email_field,
  .grove-checkout-fields #billing_address_1_field,
  .grove-checkout-fields #billing_phone_field,
  .grove-checkout-fields #shipping_address_1_field,
  .grove-checkout-fields #shipping_address_2_field,
  .grove-checkout-fields #shipping_country_field,
  .grove-checkout-fields #order_comments_field {
    grid-column: 1 / -1;
  }

  .grove-demo-payment-fields > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grove-products-catalog__controls {
    padding-left: 40px;
    padding-right: 40px;
  }

  .grove-products-catalog__body {
    padding: 80px 40px;
  }

  .grove-products-catalog__head {
    align-items: flex-end;
    flex-direction: row;
    justify-content: space-between;
  }

  .grove-products-catalog__head h2 {
    font-size: 34px;
  }

  .grove-products-catalog__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grove-products-catalog__empty {
    padding-bottom: 80px;
    padding-top: 80px;
  }

  .grove-products-catalog__disclaimer {
    font-size: 11px;
  }

  .grove-products-hero {
    padding-left: 40px;
    padding-right: 40px;
    padding-top: 80px;
  }

  .grove-products-hero__lead {
    font-size: 16px;
  }

  .grove-philosophy-page__quote {
    font-size: 34px;
  }

  .grove-latest-articles__head {
    align-items: flex-end;
    flex-direction: row;
    justify-content: space-between;
  }

  .grove-latest-articles__title {
    font-size: 44px;
  }

  .grove-comparison__tabs {
    gap: 32px;
  }

  .grove-comparison__tab {
    font-size: 15px;
  }

  .grove-comparison__title {
    font-size: 44px;
  }

  .grove-comparison__column-head span,
  .grove-comparison__pill {
    font-size: 13px;
  }

  .grove-comparison__column-head span.is-grove {
    font-size: 14px;
  }

  .grove-comparison__table tbody th {
    font-size: 15px;
  }
}

@media (min-width: 1024px) {
  .grove-product-detail,
  .grove-cart-page,
  .grove-checkout-page {
    padding-left: 64px;
    padding-right: 64px;
  }

  .grove-product-snapshot,
  .grove-product-related {
    padding-left: 64px;
    padding-right: 64px;
  }

  .grove-product-detail__grid {
    gap: 80px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grove-product-snapshot__inner {
    gap: 80px;
    grid-template-columns: 0.8fr 1.2fr;
  }

  .grove-cart-page__grid {
    align-items: start;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 48px;
  }

  .grove-checkout-page__grid {
    align-items: start;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 48px;
  }

  .grove-checkout-form {
    padding: 40px;
  }

  .grove-products-catalog__controls {
    padding-left: 64px;
    padding-right: 64px;
  }

  .grove-products-catalog__controls-inner {
    align-items: center;
    flex-direction: row;
    justify-content: space-between;
  }

  .grove-products-catalog__search {
    width: 320px;
  }

  .grove-products-catalog__body {
    padding-left: 64px;
    padding-right: 64px;
  }

  .grove-products-catalog__grid {
    gap: 24px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .grove-products-hero {
    padding-left: 64px;
    padding-right: 64px;
  }

  .grove-philosophy-page__inner {
    gap: 112px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-left: 80px;
    padding-right: 80px;
  }

  .grove-philosophy-page__quote {
    font-size: 42px;
  }

  .grove-latest-articles__inner {
    padding-left: 80px;
    padding-right: 80px;
  }

  .grove-latest-articles__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .grove-latest-articles__title {
    font-size: 52px;
  }

  .grove-comparison__inner {
    padding-left: 80px;
    padding-right: 80px;
  }

  .grove-comparison__head {
    margin-bottom: 56px;
  }

  .grove-comparison__title {
    font-size: 52px;
    margin-bottom: 48px;
  }

  .grove-comparison__criteria {
    padding: 32px;
  }

  .grove-comparison__criteria span {
    font-size: 20px;
  }

  .grove-comparison__column-head {
    padding: 32px 16px 28px;
  }

  .grove-comparison__column-head img {
    height: 72px;
    width: 72px;
  }

  .grove-comparison__table tbody th {
    padding: 24px 32px;
  }

  .grove-comparison__table td {
    padding: 24px 20px;
  }
}

@media (max-width: 640px) {
  .grove-home-hero {
    max-height: 720px;
    min-height: 520px;
  }

  .grove-home-hero__headline {
    font-size: clamp(1.7rem, 7.6vw, 2.35rem);
    padding-top: 1.25rem;
  }
}

/* Home reviews carousel — parity with React ReviewsSection (:5174). */
.grove-reviews {
  background: #fff;
  box-sizing: border-box;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: none !important;
  padding: 100px 0;
  width: 100vw;
}

.grove-reviews *,
.grove-reviews *::before,
.grove-reviews *::after {
  box-sizing: border-box;
}

.grove-reviews__header-wrap,
.grove-reviews__footer-wrap {
  margin: 0 auto;
  max-width: 1280px;
  padding-left: 2rem;
  padding-right: 2rem;
  width: 100%;
}

@media (min-width: 1024px) {
  .grove-reviews__header-wrap,
  .grove-reviews__footer-wrap {
    padding-left: 5rem;
    padding-right: 5rem;
  }
}

.grove-reviews__header {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-bottom: 3rem;
  text-align: center;
}

@media (min-width: 1024px) {
  .grove-reviews__header {
    margin-bottom: 3.5rem;
  }
}

.grove-reviews__stars {
  display: flex;
  align-items: center;
  gap: 2px;
}

.grove-reviews__star {
  color: var(--grove-star-color, var(--grove-forest));
  fill: var(--grove-star-color, var(--grove-forest));
}

.grove-reviews__star--partial {
  opacity: 0.5;
}

.grove-reviews__star--empty {
  fill: transparent;
}

.grove-reviews__heading {
  color: var(--grove-forest);
  font-family: 'DM Serif Display', serif;
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  line-height: 1.06;
  margin: 1.25rem 0 0;
  max-width: 16ch;
}

.grove-reviews__lead {
  color: var(--grove-muted);
  font-family: Inter, sans-serif;
  font-size: clamp(15px, 1.6vw, 16px);
  line-height: 1.625;
  margin: 1.25rem 0 0;
  max-width: 480px;
}

.grove-reviews__viewport {
  overflow: hidden;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  width: 100%;
  -webkit-overflow-scrolling: touch;
}

.grove-reviews__viewport::-webkit-scrollbar {
  display: none;
}

.grove-reviews__track {
  display: flex;
  padding-left: 2rem;
  touch-action: pan-y;
  width: max-content;
}

@media (min-width: 1024px) {
  .grove-reviews__track {
    padding-left: max(2rem, calc((100vw - 1280px) / 2 + 5rem));
  }
}

.grove-reviews__slide {
  flex: 0 0 min(78vw, 300px);
  max-width: min(78vw, 300px);
  padding-right: 1.5rem;
  width: min(78vw, 300px);
}

.grove-reviews__card {
  border-radius: 24px;
  display: flex;
  flex-direction: column;
  min-height: 380px;
  text-decoration: none;
}

@media (min-width: 640px) {
  .grove-reviews__card {
    min-height: 420px;
  }
}

.grove-reviews__card--text {
  background: var(--grove-cream-light);
  border: 1px solid var(--grove-header-border);
  justify-content: space-between;
  padding: 1.75rem;
}

@media (min-width: 640px) {
  .grove-reviews__card--text {
    padding: 2rem;
  }
}

.grove-reviews__card-title {
  color: var(--grove-forest);
  font-family: 'DM Serif Display', serif;
  font-size: clamp(22px, 2.4vw, 26px);
  line-height: 1.375;
  margin: 1.25rem 0 1rem;
}

.grove-reviews__card-quote {
  color: var(--grove-muted);
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.625;
  margin: 0;
}

.grove-reviews__card-footer {
  margin-top: 2rem;
}

.grove-reviews__card-author {
  color: var(--grove-text);
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 500;
  margin: 0 0 0.375rem;
}

.grove-reviews__verified {
  align-items: center;
  color: var(--grove-muted);
  display: inline-flex;
  font-family: Inter, sans-serif;
  font-size: 12px;
  gap: 0.375rem;
}

.grove-reviews__verified svg {
  color: var(--grove-sage);
}

.grove-reviews__card--photo {
  background: var(--grove-stone);
  overflow: hidden;
  position: relative;
}

.grove-reviews__photo {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  transition: transform 0.7s ease;
  width: 100%;
}

.grove-reviews__card--photo:hover .grove-reviews__photo {
  transform: scale(1.04);
}

.grove-reviews__photo-shade {
  background: linear-gradient(to top, rgba(27, 48, 34, 0.75) 0%, transparent 50%);
  inset: 0;
  position: absolute;
}

.grove-reviews__photo-copy {
  display: flex;
  flex-direction: column;
  inset: 0;
  justify-content: flex-end;
  padding: 1.5rem;
  position: absolute;
}

.grove-reviews__photo-author {
  color: var(--grove-cream);
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 500;
  margin: 1rem 0 0.25rem;
}

.grove-reviews__photo-path {
  color: rgba(245, 245, 240, 0.72);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0;
  text-transform: uppercase;
}

.grove-reviews__footer {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-top: 2.5rem;
}

.grove-reviews__nav {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.grove-reviews__nav-btn {
  align-items: center;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  height: 2.75rem;
  justify-content: center;
  transition: opacity 0.2s;
  width: 2.75rem;
}

.grove-reviews__nav-btn:disabled {
  cursor: default;
  opacity: 0.3;
}

.grove-reviews__nav-btn--prev {
  background: transparent;
  border: 1px solid rgba(27, 48, 34, 0.16);
  color: var(--grove-forest);
}

.grove-reviews__nav-btn--next {
  background: var(--grove-forest);
  color: var(--grove-cream);
}

.grove-reviews__cta {
  align-items: center;
  background: var(--grove-forest);
  border-radius: 999px;
  color: var(--grove-cream);
  display: inline-flex;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 500;
  justify-content: center;
  letter-spacing: 0.02em;
  padding: 0.875rem 2rem;
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-reviews__cta:hover {
  opacity: 0.9;
}

/* ==========================================================================
   About + Contact pages — parity with React source of truth (:5174).
   ========================================================================== */

/* Shared primary CTA button (forest pill with arrow). */
.grove-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 2rem; /* py-4 px-8 */
  border-radius: 1rem; /* rounded-2xl */
  font-size: 14px;
  letter-spacing: 0.025em; /* tracking-wide */
  text-decoration: none;
  background-color: #1b3022;
  color: #f5f5f0;
  border: 0;
  cursor: pointer;
  transition: opacity 0.2s;
}

.grove-cta-btn:hover { opacity: 0.9; }

.grove-cta-btn--outline {
  background-color: transparent;
  color: #1b3022;
  border: 1px solid rgba(27, 48, 34, 0.25);
}

.grove-cta-btn--outline:hover { opacity: 0.7; }

/* Shared sage eyebrow used across both pages. */
.grove-about__eyebrow,
.grove-contact__eyebrow {
  margin: 0 0 1.5rem;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  color: var(--grove-sage);
}

/* ----- About ----- */
.grove-about__hero {
  max-width: none;
  padding: 5rem 1.5rem 6rem; /* pt-20 pb-24 px-6 */
}

.grove-about__hero-inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.grove-about__hero .grove-about__eyebrow { margin-bottom: 1.75rem; } /* mb-7 */

.grove-about__title {
  margin: 0 0 2rem; /* mb-8 */
  font-family: 'Apple Garamond', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(42px, 5.6vw, 76px);
  line-height: 1.05;
  color: #1b3022;
}

.grove-about__lead {
  margin: 0 auto;
  max-width: 560px;
  font-size: 15px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-about__story {
  max-width: none;
  background-color: #ffffff;
}

.grove-about__story-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 5rem 1.5rem; /* py-20 px-6 */
  display: grid;
  gap: 3.5rem; /* gap-14 */
  align-items: center;
}

.grove-about__story-media {
  overflow: hidden;
  border-radius: 28px;
  aspect-ratio: 5 / 4;
  background-color: #e3d7c8;
}

.grove-about__story-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.grove-about__story-title {
  margin: 0 0 2rem; /* mb-8 */
  max-width: 13ch;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 1.06;
  color: #1b3022;
}

.grove-about__story-body {
  margin: 0 0 1.5rem; /* mb-6 */
  max-width: 520px;
  font-size: 15px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-about__story-body:last-child { margin-bottom: 0; }

.grove-about__values {
  max-width: none;
  padding: 5rem 1.5rem; /* py-20 px-6 */
}

.grove-about__values-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.grove-about__eyebrow--values { margin-bottom: 3rem; } /* mb-12 */

.grove-about__values-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem; /* gap-y-12 */
}

.grove-about__value {
  padding-top: 1.5rem; /* pt-6 */
  border-top: 1px solid rgba(27, 48, 34, 0.18);
}

.grove-about__value-title {
  margin: 0 0 1rem; /* mb-4 */
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.3;
  color: #1b3022;
}

.grove-about__value-body {
  margin: 0;
  font-size: 14px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-about__cta {
  max-width: none;
  background-color: #ffffff;
}

.grove-about__cta-inner {
  max-width: 640px;
  margin: 0 auto;
  padding: 5rem 1.5rem; /* py-20 px-6 */
  text-align: center;
}

.grove-about__cta-title {
  margin: 0 0 1.5rem; /* mb-6 */
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 1.06;
  color: #1b3022;
}

.grove-about__cta-body {
  margin: 0 auto 2.5rem; /* mb-10 */
  max-width: 420px;
  font-size: 16px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-about__cta-actions {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
}

/* ----- Contact ----- */
.grove-contact__main {
  max-width: none;
  background-color: #fafaf7;
  padding: 4rem 1.5rem; /* py-16 px-6 */
}

.grove-contact__main-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  gap: 3rem; /* gap-12 */
  align-items: start;
}

.grove-contact__title {
  margin: 0 0 1.75rem; /* mb-7 */
  font-family: 'Apple Garamond', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(46px, 6vw, 82px);
  line-height: 1.02;
  color: #1b3022;
}

.grove-contact__lead {
  margin: 0 0 2.5rem; /* mb-10 */
  max-width: 540px;
  font-size: 15px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-contact__cards {
  display: grid;
  gap: 1rem;
}

.grove-contact__card {
  display: flex;
  gap: 1rem;
  padding: 1.25rem; /* p-5 */
  border-radius: 8px;
  background-color: #ffffff;
  border: 1px solid rgba(27, 48, 34, 0.08);
}

.grove-contact__card-icon {
  margin-top: 0.25rem;
  color: #1b3022;
  flex-shrink: 0;
  display: inline-flex;
}

.grove-contact__card-title {
  margin: 0 0 0.25rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 18px;
  color: #1b3022;
}

.grove-contact__card-value {
  margin: 0 0 0.25rem;
  font-size: 14px;
  font-weight: 600;
  color: #2a2a2a;
}

.grove-contact__card-note {
  margin: 0;
  font-size: 13px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-contact__form {
  padding: 1.5rem; /* p-6 */
  border-radius: 8px;
  background-color: #ffffff;
  border: 1px solid rgba(27, 48, 34, 0.1);
}

.grove-contact__form-head { margin-bottom: 2rem; } /* mb-8 */
.grove-contact__form-head .grove-contact__eyebrow { margin-bottom: 1rem; } /* mb-4 */

.grove-contact__form-title {
  margin: 0;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 30px;
  line-height: 1.25;
  color: #1b3022;
}

.grove-contact__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}

.grove-contact__label {
  display: block;
  margin-bottom: 1rem;
}

.grove-contact__row .grove-contact__label { margin-bottom: 0; }
.grove-contact__label--message { margin-bottom: 1.5rem; } /* mb-6 */

.grove-contact__label-text {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 12px;
  color: #4a4a4a;
}

.grove-contact__field {
  box-sizing: border-box;
  width: 100%;
  padding: 0.75rem 1rem; /* py-3 px-4 */
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
  outline: none;
  border-radius: 8px;
  border: 1px solid rgba(27, 48, 34, 0.14);
  background-color: #fafaf7;
  color: #2a2a2a;
}

.grove-contact__field::placeholder { color: rgba(42, 42, 42, 0.45); }

.grove-contact__textarea { resize: none; }

.grove-contact__submit { width: 100%; }

.grove-form-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.grove-form-status {
  margin: 1rem 0 0;
  font-size: 14px;
  line-height: 1.5;
  color: #1b3022;
}

.grove-form-status--error {
  display: block;
  padding: 0.75rem 0.875rem;
  border-radius: 8px;
  background-color: rgba(139, 46, 46, 0.08);
  border: 1px solid rgba(139, 46, 46, 0.2);
  color: #8b2e2e;
  font-size: 13px;
}

.grove-form-status--success {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding: 0.75rem 0.875rem;
  border-radius: 8px;
  background-color: rgba(138, 151, 114, 0.14);
  border: 1px solid rgba(138, 151, 114, 0.35);
  color: #1b3022;
  font-size: 13px;
}

.grove-form-status__icon {
  position: relative;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  border-radius: 50%;
  background-color: #1b3022;
}

.grove-form-status__icon::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 3px;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.grove-form-status__text {
  flex: 1;
  min-width: 0;
}

.grove-footer__form .grove-form-status,
.grove-newsletter__form .grove-form-status {
  margin-top: 0;
  font-size: 13px;
}

.grove-newsletter__form--success {
  display: none;
}

.grove-contact__location {
  max-width: none;
  background-color: #ffffff;
  padding: 3.5rem 1.5rem; /* py-14 px-6 */
}

.grove-contact__location-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  gap: 2rem; /* gap-8 */
  align-items: center;
}

.grove-contact__location .grove-contact__eyebrow { margin-bottom: 1rem; } /* mb-4 */

.grove-contact__location-title {
  margin: 0;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.1;
  color: #1b3022;
}

.grove-contact__location-card {
  padding: 1.5rem; /* p-6 */
  border-radius: 8px;
  background-color: #fafaf7;
  display: flex;
  flex-direction: column;
  gap: 1.25rem; /* gap-5 */
}

.grove-contact__location-detail {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.grove-contact__location-pin {
  color: #1b3022;
  flex-shrink: 0;
}

.grove-contact__location-name {
  margin: 0 0 0.5rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 20px;
  color: #1b3022;
}

.grove-contact__location-body {
  margin: 0;
  font-size: 14px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-contact__location-btn { flex-shrink: 0; }

@media (min-width: 640px) {
  .grove-about__hero { padding-top: 6rem; padding-bottom: 7rem; } /* sm:pt-24 sm:pb-28 */
  .grove-about__lead,
  .grove-contact__lead { font-size: 16px; }
  .grove-about__story-inner { padding-top: 6rem; padding-bottom: 6rem; } /* sm:py-24 */
  .grove-about__values { padding-top: 6rem; padding-bottom: 6rem; }
  .grove-about__cta-inner { padding-top: 6rem; padding-bottom: 6rem; }
  .grove-about__cta-actions { flex-direction: row; }
  .grove-about__story-title,
  .grove-about__cta-title { font-size: 44px; }
  .grove-about__eyebrow--values { margin-bottom: 4rem; } /* sm:mb-16 */
  .grove-about__values-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 3rem; }
  .grove-contact__main { padding-top: 5rem; padding-bottom: 5rem; } /* sm:py-20 */
  .grove-contact__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grove-contact__form { padding: 2rem; } /* sm:p-8 */
  .grove-contact__form-title { font-size: 36px; }
  .grove-contact__submit { width: auto; }
  .grove-contact__location { padding-top: 4rem; padding-bottom: 4rem; } /* sm:py-16 */
  .grove-contact__location-title { font-size: 34px; }
  .grove-contact__location-card {
    padding: 2rem;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (min-width: 1024px) {
  .grove-about__hero,
  .grove-about__story-inner,
  .grove-about__values,
  .grove-contact__main,
  .grove-contact__location { padding-left: 4rem; padding-right: 4rem; } /* lg:px-16 */
  .grove-about__story-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6rem; /* lg:gap-24 */
  }
  .grove-about__story-title,
  .grove-about__cta-title { font-size: 52px; }
  .grove-contact__main { padding-top: 6rem; padding-bottom: 6rem; } /* lg:py-24 */
  .grove-contact__main-inner {
    grid-template-columns: 0.9fr 1.1fr;
    gap: 5rem; /* lg:gap-20 */
  }
  .grove-contact__form { padding: 2.5rem; } /* lg:p-10 */
  .grove-contact__location-inner {
    grid-template-columns: 0.8fr 1.2fr;
    gap: 4rem; /* lg:gap-16 */
  }
  .grove-contact__location-title { font-size: 42px; }
}

/* ==========================================================================
   Blog page — parity with React /blog (source of truth :5174).
   ========================================================================== */
.grove-blog__eyebrow {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1;
  color: var(--grove-sage);
}

.grove-blog__eyebrow--journal { margin-bottom: 2.5rem; } /* mb-10 */
.grove-blog__eyebrow--featured { margin-bottom: 1.25rem; } /* mb-5 */
.grove-blog__eyebrow--lifestyle { margin-bottom: 1rem; color: #c5c9b8; } /* mb-4 */
.grove-blog__eyebrow--reads { margin-bottom: 1.25rem; } /* mb-5 */
.grove-blog__eyebrow--card { margin-bottom: 0.75rem; } /* mb-3 */
.grove-blog__eyebrow--cta { margin-bottom: 1.5rem; } /* mb-6 */

.grove-blog__read {
  font-size: 12px;
  color: var(--grove-sage);
}

.grove-blog__read--muted { color: #c5c9b8; }

.grove-blog__read-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 14px;
  color: #1b3022;
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: opacity 0.2s;
}

.grove-blog__read-link:hover { opacity: 0.6; }
.grove-blog__read-link svg { width: 13px; height: 13px; }

/* Featured */
.grove-blog__featured {
  max-width: none;
  padding: 4rem 1.5rem; /* py-16 px-6 */
}

.grove-blog__featured-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.grove-blog__featured-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem; /* gap-12 */
  align-items: center;
}

.grove-blog__featured-title {
  margin: 0 0 1.5rem; /* mb-6 */
  max-width: 14ch;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 1.06;
  color: #1b3022;
}

.grove-blog__featured-title a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-blog__featured-title a:hover { opacity: 0.7; }

a.grove-blog__featured-media {
  display: block;
  color: inherit;
  text-decoration: none;
}

a.grove-blog__featured-media:hover img { transform: scale(1.02); }

.grove-blog__featured-lead {
  margin: 0 0 2rem; /* mb-8 */
  max-width: 520px;
  font-size: 15px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-blog__featured-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem; /* gap-5 */
}

.grove-blog__featured-media {
  overflow: hidden;
  border-radius: 28px;
  aspect-ratio: 5 / 4;
  background-color: #e3d7c8;
}

.grove-blog__featured-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s;
}

a.grove-blog__featured-media:hover img { transform: scale(1.02); }

/* Latest reads */
.grove-blog__reads {
  max-width: none;
  background-color: #ffffff;
  padding: 4rem 1.5rem; /* py-16 px-6 */
}

.grove-blog__reads-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.grove-blog__reads-title {
  margin: 0 0 1rem; /* mb-4 */
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.1;
  color: #1b3022;
}

.grove-blog__reads-lead {
  margin: 0 0 3rem; /* mb-12 */
  max-width: 520px;
  font-size: 14px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-blog__reads-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem; /* gap-6 */
}

.grove-blog__card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.grove-blog__card-media {
  overflow: hidden;
  margin-bottom: 1.5rem; /* mb-6 */
  border-radius: 24px;
  aspect-ratio: 16 / 10;
  background-color: #e3d7c8;
}

.grove-blog__card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s ease;
}

.grove-blog__card:hover .grove-blog__card-media img { transform: scale(1.04); }

.grove-blog__card-title {
  margin: 0 0 0.75rem; /* mb-3 */
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 20px;
  line-height: 1.25;
  color: #1b3022;
  transition: opacity 0.2s;
}

.grove-blog__card:hover .grove-blog__card-title { opacity: 0.7; }

.grove-blog__card-excerpt {
  flex: 1;
  margin: 0 0 1rem; /* mb-4 */
  font-size: 14px;
  line-height: 1.625;
  color: #4a4a4a;
}

/* CTA */
.grove-blog__cta {
  max-width: none;
  background-color: #fafaf7;
  padding: 4rem 1.5rem; /* py-16 px-6 */
}

.grove-blog__cta-inner {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

.grove-blog__cta-title {
  margin: 0 0 1.5rem; /* mb-6 */
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.1;
  color: #1b3022;
}

.grove-blog__cta-body {
  margin: 0 0 2rem; /* mb-8 */
  font-size: 14px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-blog__cta .grove-hp {
  position: absolute;
  left: -9999px;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

.grove-blog__blueprint-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 1.5rem;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}

.grove-blog__blueprint-form input[type="email"] {
  flex: 1 1 220px;
  min-height: 48px;
  padding: 0.75rem 1rem;
  border: 1px solid #d0d0c8;
  border-radius: 8px;
  font-size: 16px;
}

.grove-blog__blueprint-unlock {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.grove-blog__blueprint-unlock[hidden] {
  display: none;
}

.grove-blog__blueprint-audio {
  width: 100%;
  max-width: 420px;
}

.grove-blog__blueprint-thanks {
  margin: 0;
  color: #1b3022;
  font-size: 15px;
}

.grove-blog__cta .grove-blog__read-link { justify-content: center; }

@media (min-width: 640px) {
  .grove-blog__featured { padding-top: 5rem; padding-bottom: 5rem; } /* sm:py-20 */
  .grove-blog__reads { padding-top: 5rem; padding-bottom: 5rem; }
  .grove-blog__cta { padding-top: 5rem; padding-bottom: 5rem; }
  .grove-blog__featured-lead { font-size: 16px; }
  .grove-blog__featured-title { font-size: 44px; }
  .grove-blog__reads-title,
  .grove-blog__cta-title { font-size: 34px; }
  .grove-blog__card-title { font-size: 22px; }
}

@media (min-width: 768px) {
  .grove-blog__reads-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .grove-blog__featured,
  .grove-blog__reads,
  .grove-blog__cta { padding-left: 4rem; padding-right: 4rem; } /* lg:px-16 */
  .grove-blog__featured { padding-top: 6rem; padding-bottom: 6rem; } /* lg:py-24 */
  .grove-blog__featured-grid {
    grid-template-columns: 0.95fr 1.05fr;
    gap: 5rem; /* lg:gap-20 */
  }
  .grove-blog__featured-title { font-size: 52px; }
  .grove-blog__reads-title,
  .grove-blog__cta-title { font-size: 42px; }
}

/* ==========================================================================
   Single blog post — parity with React /blog/:slug (source of truth :5174).
   ========================================================================== */
.grove-post__hero {
  max-width: none;
  padding: 4rem 1.5rem 3rem;
}

.grove-post__hero-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.grove-post__back {
  align-items: center;
  color: #1b3022;
  display: inline-flex;
  font-size: 14px;
  gap: 0.5rem;
  margin-bottom: 2rem;
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-post__back:hover { opacity: 0.6; }
.grove-post__back svg { width: 14px; height: 14px; }

.grove-post__tag { margin-bottom: 1rem; }

.grove-post__title {
  margin: 0 0 1.5rem;
  max-width: 16ch;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 1.06;
  color: #1b3022;
}

.grove-post__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 2.5rem;
  font-size: 12px;
  color: var(--grove-sage);
}

.grove-post__hero-media {
  overflow: hidden;
  border-radius: 28px;
  aspect-ratio: 16 / 10;
  background-color: #e3d7c8;
}

.grove-post__hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.grove-post__body {
  max-width: none;
  background-color: #fff;
  padding: 3.5rem 1.5rem;
}

.grove-post__prose {
  max-width: 680px;
  margin: 0 auto;
  font-size: 15px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-post__prose > :first-child { margin-top: 0; }

.grove-post__prose p {
  margin: 0 0 1.5rem;
}

.grove-post__prose h2 {
  margin: 3rem 0 1.25rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 24px;
  line-height: 1.25;
  color: #1b3022;
}

.grove-post__prose h2:first-child { margin-top: 0; }

/* ==========================================================================
   Content pages — legal / prose (parity with React /terms, /privacy).
   ========================================================================== */
.grove-page__hero {
  max-width: none;
  padding: 4rem 1.5rem 3rem;
}

.grove-page__hero-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.grove-page__back {
  align-items: center;
  color: #1b3022;
  display: inline-flex;
  font-size: 14px;
  gap: 0.5rem;
  margin-bottom: 2rem;
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-page__back:hover { opacity: 0.6; }
.grove-page__back svg { width: 14px; height: 14px; }

.grove-page__eyebrow { margin-bottom: 1rem; }

.grove-page__title {
  margin: 0 0 1rem;
  max-width: 20ch;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 1.06;
  color: #1b3022;
}

.grove-page__updated {
  margin: 0;
  font-size: 12px;
  color: var(--grove-sage);
}

.grove-page__body {
  max-width: none;
  background-color: #fff;
  padding: 3.5rem 1.5rem 4.5rem;
}

.grove-page__prose {
  max-width: 680px;
  margin: 0 auto;
  font-size: 15px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-page__prose > :first-child { margin-top: 0; }

.grove-page__prose p {
  margin: 0 0 1.5rem;
}

.grove-page__prose h2 {
  margin: 3rem 0 1.25rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 24px;
  line-height: 1.25;
  color: #1b3022;
}

.grove-page__prose h2:first-child { margin-top: 0; }

.grove-page__prose h3 {
  margin: 2rem 0 1rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 20px;
  line-height: 1.3;
  color: #1b3022;
}

.grove-page__prose ul,
.grove-page__prose ol {
  margin: 0 0 1.5rem;
  padding-left: 1.25rem;
}

.grove-page__prose li {
  margin-bottom: 0.5rem;
}

.grove-page__prose a {
  color: #1b3022;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity 0.2s;
}

.grove-page__prose a:hover { opacity: 0.65; }

@media (min-width: 640px) {
  .grove-page__hero { padding: 5rem 2.5rem 3.5rem; }
  .grove-page__title { font-size: 48px; }
  .grove-page__body { padding: 4rem 2.5rem 5rem; }
  .grove-page__prose h2 { font-size: 28px; }
}

@media (min-width: 1024px) {
  .grove-page__hero { padding: 5.5rem 4rem 4rem; }
  .grove-page__body { padding: 4.5rem 4rem 5.5rem; }
}

.grove-post__related {
  max-width: none;
  padding: 4rem 1.5rem;
}

.grove-post__related-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.grove-post__related-eyebrow { margin-bottom: 1.25rem; }

.grove-post__related-title {
  margin: 0 0 2.5rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.1;
  color: #1b3022;
}

.grove-post__related-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

.grove-post__related-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.grove-post__related-card:hover .grove-blog__card-title { opacity: 0.7; }
.grove-post__related-card:hover .grove-blog__card-media img { transform: scale(1.04); }

a.grove-blog__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

a.grove-blog__card:hover .grove-blog__card-title { opacity: 0.7; }

@media (min-width: 640px) {
  .grove-post__hero { padding-top: 5rem; }
  .grove-post__body { padding-top: 4rem; padding-bottom: 4rem; }
  .grove-post__prose { font-size: 16px; }
  .grove-post__prose h2 { font-size: 28px; }
  .grove-post__title { font-size: 44px; }
  .grove-post__related-title { font-size: 34px; }
}

@media (min-width: 768px) {
  .grove-post__related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .grove-post__hero,
  .grove-post__body,
  .grove-post__related { padding-left: 4rem; padding-right: 4rem; }
  .grove-post__title { font-size: 52px; }
  .grove-post__related-title { font-size: 42px; }
}

/* ==========================================================================
   Vertical landing pages — parity with React /vertical/* (source of truth :5174).
   ========================================================================== */
.grove-vert { max-width: none; }

.grove-main.grove-main--vertical {
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
}

/* Hero (full-bleed image + dark gradient + centered italic headline). */
.grove-vert__hero {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: min(88vh, 860px);
}

.grove-vert__hero-header {
  position: absolute;
  inset: 0 auto auto;
  width: 100%;
  z-index: 50;
}

@media (max-width: 900px) {
  .grove-home-hero .grove-home-hero__header.grove-vert__hero-header {
    inset: auto !important;
    position: relative !important;
  }
}

.grove-vert__hero-header-fade {
  display: none;
}

.grove-header--hero {
  position: relative;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.94) 0%,
    rgba(255, 255, 255, 0.84) 24%,
    rgba(255, 255, 255, 0.62) 52%,
    rgba(255, 255, 255, 0.34) 78%,
    rgba(255, 255, 255, 0.22) 100%
  );
  border-top: none;
  border-bottom: 1px solid rgba(27, 48, 34, 0.1);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.grove-header--hero.grove-header--solid {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border-top-color: transparent;
  border-bottom: 1px solid var(--grove-header-border);
}

.grove-header--hero .grove-header__inner {
  padding: 0;
}

.grove-vert__hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
}

.grove-vert__hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.12) 42%, rgba(0, 0, 0, 0.08) 58%, rgba(0, 0, 0, 0.52) 100%);
}

.grove-vert__hero-inner {
  position: relative;
  z-index: 10;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 0.75rem; /* py-16 px-3 */
}

.grove-vert__hero-title {
  width: 100%;
  margin: 0;
  font-family: 'Apple Garamond', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(54px, 4.8vw, 7.25rem);
  line-height: 1.06;
  letter-spacing: -0.01em;
  color: #fff;
  text-shadow: rgba(0, 0, 0, 0.28) 0 1px 28px;
}

.grove-vert__hero-line { display: block; }

/* Benefits (3 colored cards). */
.grove-vert__benefits { padding: 2.5rem 1rem; } /* py-10 px-4 */

.grove-vert__benefits-grid {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.grove-vert__benefit {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.75rem 1.5rem; /* py-7 px-6 */
  border-radius: 20px;
  color: #fff;
}

.grove-vert__benefit-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.grove-vert__benefit-title {
  margin: 0 0 0.5rem;
  font-family: Inter, sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.375;
}

.grove-vert__benefit-body {
  margin: 0;
  font-size: 13px;
  line-height: 1.625;
  color: rgba(255, 255, 255, 0.82);
}

/* Featured formulas (product grid). */
.grove-vert__formulas { padding: 3rem 1rem; } /* py-12 px-4 */

.grove-vert__formulas-inner {
  max-width: 1280px;
  margin: 0 auto;
}

.grove-vert__formulas-head {
  margin-bottom: 2rem;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.grove-vert__eyebrow {
  margin: 0 0 0.75rem;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--grove-sage);
}

.grove-vert__formulas-title {
  margin: 0;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.25;
  color: #1b3022;
}

.grove-vert__back {
  flex-shrink: 0;
  font-size: 14px;
  color: #1b3022;
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: opacity 0.2s;
}

.grove-vert__back:hover { opacity: 0.6; }

.grove-vert__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

.grove-vert__card {
  display: block;
  height: 100%;
  text-decoration: none;
}

.grove-vert__card-media {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  margin-bottom: 1rem;
}

.grove-vert__card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.grove-vert__card:hover .grove-vert__card-media img { transform: scale(1.03); }

.grove-vert__badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 10;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #2a2a2a;
}

.grove-vert__card-name {
  margin: 0 0 0.25rem;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.375;
  color: #2a2a2a;
}

.grove-vert__card-price {
  margin: 0;
  font-family: 'DM Serif Display', serif;
  font-size: 15px;
  color: #2a2a2a;
}

.grove-vert__disclaimer {
  margin: 2.5rem auto 0;
  max-width: 900px;
  text-align: center;
  font-size: 10px;
  line-height: 1.625;
  color: #4a4a4a;
}

@media (min-width: 640px) {
  .grove-vert__hero-inner { padding: 5rem 1.25rem; } /* sm:py-20 sm:px-5 */
  .grove-vert__benefits { padding: 3rem 2rem; } /* sm:py-12 sm:px-8 */
  .grove-vert__benefits-grid { gap: 1.25rem; }
  .grove-vert__benefit { padding: 2rem; }
  .grove-vert__benefit-title { font-size: 20px; }
  .grove-vert__benefit-body { font-size: 14px; }
  .grove-vert__formulas { padding: 4rem 2rem; } /* sm:py-16 sm:px-8 */
  .grove-vert__formulas-head { margin-bottom: 2.5rem; }
  .grove-vert__formulas-title { font-size: 34px; }
  .grove-vert__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
  .grove-vert__cell--wide { grid-row: span 2; }
  .grove-vert__card-name { font-size: 16px; }
  .grove-vert__disclaimer { margin-top: 3rem; font-size: 11px; }
}

@media (min-width: 768px) {
  .grove-vert__benefits-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .grove-vert__hero-inner { padding-left: 1.5rem; padding-right: 1.5rem; } /* lg:px-6 */
  .grove-vert__benefits { padding-left: 3rem; padding-right: 3rem; } /* lg:px-12 */
  .grove-vert__formulas { padding: 5rem 3rem; } /* lg:py-20 lg:px-12 */
  .grove-vert__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Wishlist */
.grove-header__wishlist {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  color: var(--grove-text);
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-header__wishlist--mobile { display: none; }

@media (min-width: 768px) {
  .grove-header__wishlist--mobile { display: flex; }
}

.grove-header__wishlist:hover { opacity: 0.6; }

.grove-header__wishlist-badge {
  position: absolute;
  top: -0.25rem;
  right: -0.25rem;
  min-width: 18px;
  height: 18px;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--grove-forest);
  color: var(--grove-cream);
  font-family: Inter, sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
}

.grove-wishlist-toggle {
  align-items: center;
  display: inline-flex;
  gap: 8px;
  justify-content: center;
}

.grove-wishlist-toggle.is-saved {
  background: rgba(138, 151, 114, 0.14);
}

.grove-wishlist-toggle.is-saved .grove-wishlist-toggle__icon svg {
  fill: currentColor;
}

.grove-wishlist-page {
  background: #F7F7F2;
  padding: 4rem 1.5rem 4.5rem;
}

.grove-wishlist-page__inner {
  margin: 0 auto;
  max-width: 1280px;
}

.grove-wishlist-page__inner > h1 {
  color: #1B3022;
  font-family: 'EB Garamond', Georgia, serif;
  font-size: clamp(46px, 6vw, 82px);
  line-height: 1.02;
  margin: 0 0 1.5rem;
}

.grove-wishlist-page__lead {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  margin: 0 0 2rem;
  max-width: 560px;
}

.grove-wishlist-page__meta {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.09);
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 2rem;
  padding: 1rem 1.25rem;
}

.grove-wishlist-page__meta-copy {
  align-items: center;
  display: flex;
  gap: 0.75rem;
}

.grove-wishlist-page__meta-icon {
  align-items: center;
  background: rgba(138, 151, 114, 0.18);
  border-radius: 999px;
  color: #1B3022;
  display: inline-flex;
  height: 2.25rem;
  justify-content: center;
  width: 2.25rem;
}

.grove-wishlist-page__meta-icon svg {
  fill: currentColor;
}

.grove-wishlist-page__meta-count {
  color: #1B3022;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 500;
  margin: 0;
}

.grove-wishlist-page__meta-note {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 12px;
  margin: 0;
}

.grove-wishlist-page__clear {
  background: none;
  border: 0;
  color: #4A4A4A;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-size: 13px;
  padding: 0.25rem 0;
  transition: opacity 0.2s;
}

.grove-wishlist-page__clear:hover { opacity: 0.6; }

.grove-wishlist-page__list {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 1024px) {
  .grove-wishlist-page__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.grove-wishlist-line {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.09);
  border-radius: 8px;
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 120px minmax(0, 1fr);
  padding: 1.25rem 1.5rem;
}

@media (min-width: 640px) {
  .grove-wishlist-line {
    align-items: center;
    grid-template-columns: 120px minmax(0, 1fr) auto;
  }
}

.grove-wishlist-line__image {
  aspect-ratio: 1 / 1;
  background: #E8E8E0;
  border-radius: 8px;
  display: block;
  overflow: hidden;
  position: relative;
}

.grove-wishlist-line__saved {
  align-items: center;
  background: rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  color: #1B3022;
  display: inline-flex;
  height: 1.75rem;
  justify-content: center;
  left: 0.5rem;
  position: absolute;
  top: 0.5rem;
  width: 1.75rem;
}

.grove-wishlist-line__image img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.grove-wishlist-line__body h2 {
  color: #1B3022;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 22px;
  line-height: 1.2;
  margin: 0 0 0.5rem;
}

.grove-wishlist-line__body h2 a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-wishlist-line__body h2 a:hover { opacity: 0.7; }

.grove-wishlist-line__price {
  color: #2A2A2A;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 18px;
  margin: 0;
}

.grove-wishlist-line__tools {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  grid-column: 1 / -1;
}

@media (min-width: 640px) {
  .grove-wishlist-line__tools {
    align-items: flex-end;
    flex-direction: column;
    grid-column: auto;
    justify-content: flex-start;
  }
}

.grove-commerce-btn--compact {
  font-size: 13px;
  padding: 0.5rem 1rem;
}

.grove-wishlist-line__remove {
  background: none;
  border: 0;
  color: #4A4A4A;
  cursor: pointer;
  font-family: Inter, sans-serif;
  font-size: 13px;
  padding: 0.5rem 0.75rem;
  transition: opacity 0.2s;
}

.grove-wishlist-line__remove:hover { opacity: 0.6; }

.grove-wishlist-page__empty {
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.09);
  border-radius: 8px;
  padding: 4rem 1.5rem;
  text-align: center;
}

.grove-wishlist-page__empty-icon {
  align-items: center;
  background: #F7F7F2;
  border-radius: 999px;
  color: #1B3022;
  display: inline-flex;
  height: 4rem;
  justify-content: center;
  margin: 0 auto 1.5rem;
  width: 4rem;
}

.grove-wishlist-page__empty h2 {
  color: #1B3022;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 24px;
  margin: 0 0 0.75rem;
}

.grove-wishlist-page__empty p {
  color: #4A4A4A;
  font-family: Inter, sans-serif;
  font-size: 14px;
  margin: 0 auto 2rem;
  max-width: 420px;
}

@media (min-width: 640px) {
  .grove-wishlist-page {
    padding: 5rem 2.5rem 5rem;
  }
}

/* ==========================================================================
   Content-page unique components: FAQ accordion + reviews grid.
   ========================================================================== */
.grove-faq {
  max-width: 680px;
  margin: 2.5rem auto 0;
}

.grove-faq__item {
  border-bottom: 1px solid rgba(27, 48, 34, 0.12);
}

.grove-faq__item:first-child {
  border-top: 1px solid rgba(27, 48, 34, 0.12);
}

.grove-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 0;
  cursor: pointer;
  list-style: none;
  font-family: 'DM Serif Display', serif;
  font-size: 18px;
  color: #1b3022;
}

.grove-faq__q::-webkit-details-marker { display: none; }

.grove-faq__icon {
  flex-shrink: 0;
  color: #1b3022;
  transition: transform 0.2s ease;
}

.grove-faq__item[open] .grove-faq__icon { transform: rotate(180deg); }

.grove-faq__a {
  padding: 0 0 1.25rem;
  font-size: 15px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-faq__a p { margin: 0 0 1rem; }
.grove-faq__a > :last-child { margin-bottom: 0; }

.grove-reviews-grid {
  max-width: 1180px;
  margin: 2.5rem auto 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 640px) {
  .grove-reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .grove-reviews-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ==========================================================================
   Header profile icon + WooCommerce account (sign in / register / editor).
   ========================================================================== */
.grove-header__account {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  color: var(--grove-text);
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-header__account:hover { opacity: 0.6; }
.grove-header__account.is-authed { color: var(--grove-forest); }
.grove-header__account.is-authed::after {
  content: "";
  position: absolute;
  top: 0.35rem;
  right: 0.45rem;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--grove-sage);
  border: 1.5px solid #fff;
}

.grove-account-hero {
  text-align: center;
  margin: 0 0 2.5rem;
}

.grove-account-hero__eyebrow {
  margin: 0 0 0.75rem;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--grove-sage);
}

.grove-account-hero__title {
  margin: 0 0 0.75rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.1;
  color: #1b3022;
}

.grove-account-hero__lead {
  max-width: 540px;
  margin: 0 auto;
  font-size: 15px;
  line-height: 1.625;
  color: #4a4a4a;
}

.grove-wc-main .woocommerce { color: #2a2a2a; }

.grove-wc-main .woocommerce .col2-set {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  width: 100%;
  align-items: start;
}

/* WooCommerce adds a clearfix ::before/::after that would become phantom grid items. */
.grove-wc-main .woocommerce .col2-set::before,
.grove-wc-main .woocommerce .col2-set::after { display: none; }

@media (min-width: 768px) {
  .grove-wc-main .woocommerce .col2-set { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

.grove-wc-main .woocommerce .col2-set .col-1,
.grove-wc-main .woocommerce .col2-set .col-2 {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.1);
  border-radius: 12px;
  padding: 1.75rem;
}

.grove-wc-main .woocommerce h2 {
  margin: 0 0 1.25rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: 24px;
  color: #1b3022;
}

.grove-wc-main .woocommerce form .form-row { margin: 0 0 1rem; display: block; }
.grove-wc-main .woocommerce label { display: block; font-size: 12px; color: #4a4a4a; margin: 0 0 0.4rem; }
.grove-wc-main .woocommerce label.woocommerce-form-login__rememberme,
.grove-wc-main .woocommerce label.checkbox { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 13px; }

.grove-wc-main .woocommerce .grove-register-privacy { margin: 0 0 1rem; }
.grove-wc-main .woocommerce .grove-register-privacy label { font-size: 12px; line-height: 1.5; color: #4a4a4a; }
.grove-wc-main .woocommerce .grove-register-privacy a { color: #1b3022; text-decoration: underline; text-underline-offset: 2px; }

.grove-wc-main .woocommerce input.input-text,
.grove-wc-main .woocommerce input[type="text"],
.grove-wc-main .woocommerce input[type="email"],
.grove-wc-main .woocommerce input[type="password"],
.grove-wc-main .woocommerce input[type="tel"],
.grove-wc-main .woocommerce select,
.grove-wc-main .woocommerce textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 14px;
  line-height: 1.5;
  font-family: inherit;
  border-radius: 8px;
  border: 1px solid rgba(27, 48, 34, 0.14);
  background-color: #fafaf7;
  color: #2a2a2a;
  outline: none;
}

.grove-wc-main .woocommerce input:focus,
.grove-wc-main .woocommerce select:focus,
.grove-wc-main .woocommerce textarea:focus { border-color: var(--grove-sage); }

.grove-wc-main .woocommerce .button,
.grove-wc-main .woocommerce button.button,
.grove-wc-main .woocommerce input.button,
.grove-wc-main .woocommerce a.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.75rem;
  border-radius: 1rem;
  background: #1b3022;
  color: #f5f5f0;
  font-size: 14px;
  letter-spacing: 0.02em;
  border: 0;
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.2s;
}

.grove-wc-main .woocommerce .button:hover,
.grove-wc-main .woocommerce button.button:hover,
.grove-wc-main .woocommerce input.button:hover,
.grove-wc-main .woocommerce a.button:hover { opacity: 0.9; background: #1b3022; color: #f5f5f0; }

.grove-wc-main .woocommerce .lost_password { margin-top: 0.75rem; font-size: 13px; }
.grove-wc-main .woocommerce .lost_password a { color: #1b3022; }

.grove-wc-main .woocommerce-MyAccount-navigation,
.grove-wc-main .woocommerce-MyAccount-content { width: auto; float: none; }

@media (min-width: 768px) {
  body.logged-in .grove-wc-main .woocommerce {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
    align-items: flex-start;
  }
  body.logged-in .grove-wc-main .woocommerce > .woocommerce-notices-wrapper { flex: 0 0 100%; }
  body.logged-in .grove-wc-main .woocommerce-MyAccount-navigation { flex: 0 0 230px; }
  body.logged-in .grove-wc-main .woocommerce-MyAccount-content { flex: 1 1 0; min-width: 0; }
}

.grove-wc-main .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.grove-wc-main .woocommerce-MyAccount-navigation li { margin: 0 0 0.25rem; }
.grove-wc-main .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 0.6rem 0.9rem;
  border-radius: 8px;
  color: #2a2a2a;
  text-decoration: none;
  font-size: 14px;
  transition: background 0.2s, color 0.2s;
}
.grove-wc-main .woocommerce-MyAccount-navigation li.is-active a,
.grove-wc-main .woocommerce-MyAccount-navigation a:hover {
  background: #f0ede6;
  color: #1b3022;
}

.grove-wc-main .woocommerce-MyAccount-content { font-size: 15px; line-height: 1.625; color: #4a4a4a; }
.grove-wc-main .woocommerce-MyAccount-content a { color: #1b3022; }
.grove-wc-main .woocommerce-MyAccount-content p { margin: 0 0 1rem; }
.grove-wc-main .woocommerce-MyAccount-content h2,
.grove-wc-main .woocommerce-MyAccount-content h3,
.grove-wc-main .woocommerce-EditAccountForm legend,
.grove-wc-main .woocommerce-Address-title h2,
.grove-wc-main .woocommerce-Address-title h3 {
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  color: #1b3022;
}

/* Account details / password fieldset */
.grove-wc-main .woocommerce-EditAccountForm fieldset {
  margin: 1.5rem 0 0;
  padding: 1.25rem 1.5rem;
  border: 1px solid rgba( 27, 48, 34, 0.12 );
  border-radius: 12px;
}
.grove-wc-main .woocommerce-EditAccountForm legend {
  padding: 0 0.5rem;
  font-size: 16px;
}

.grove-wc-main .woocommerce-EditAccountForm button[type="submit"] {
  margin-top: 1.5rem;
}

/* Addresses — always one card per row */
.grove-wc-main .woocommerce-Addresses {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-top: 1rem;
}

.grove-wc-main .woocommerce-Addresses.col2-set {
  grid-template-columns: 1fr;
}
.grove-wc-main .woocommerce-Address {
  background: #fff;
  border: 1px solid rgba( 27, 48, 34, 0.1 );
  border-radius: 12px;
  padding: 1.5rem;
}
.grove-wc-main .woocommerce-Address-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  text-align: left;
}

.grove-wc-main .woocommerce-Address-title h2,
.grove-wc-main .woocommerce-Address-title h3 {
  margin: 0;
}
.grove-wc-main .woocommerce-Address address { font-style: normal; color: #4a4a4a; }

/* Order / downloads tables */
.grove-wc-main .shop_table,
.grove-wc-main .woocommerce-orders-table,
.grove-wc-main .woocommerce-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.grove-wc-main .shop_table th,
.grove-wc-main .woocommerce-orders-table th {
  text-align: left;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grove-sage);
  padding: 0.75rem 0.75rem;
  border-bottom: 1px solid rgba( 27, 48, 34, 0.14 );
}
.grove-wc-main .shop_table td,
.grove-wc-main .woocommerce-orders-table td {
  padding: 0.85rem 0.75rem;
  border-bottom: 1px solid rgba( 27, 48, 34, 0.08 );
  color: #2a2a2a;
}

.grove-commerce .woocommerce-notices-wrapper {
  margin: 0 auto;
  max-width: 1200px;
  padding: 1rem 1.5rem 0;
}

.grove-commerce .woocommerce-message,
.grove-commerce .woocommerce-info,
.grove-commerce .woocommerce-error {
  align-items: center;
  background: #fafaf7;
  border: 1px solid rgba(27, 48, 34, 0.12);
  border-radius: 10px;
  color: #2a2a2a;
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 0.75rem;
  justify-content: space-between;
  list-style: none;
  margin: 0 0 0.5rem;
  padding: 0.9rem 1.1rem;
}

.grove-commerce .woocommerce-message {
  border-left: 3px solid var(--grove-sage);
}

.grove-commerce .woocommerce-message .button {
  background: var(--grove-forest);
  border-radius: 999px;
  color: var(--grove-cream);
  display: inline-flex;
  font-size: 13px;
  font-weight: 600;
  justify-content: center;
  min-height: 40px;
  padding: 0.5rem 1rem;
  text-decoration: none;
  white-space: nowrap;
}
.grove-wc-main .woocommerce-message,
.grove-wc-main .woocommerce-info,
.grove-wc-main .woocommerce-error {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0.9rem 1.1rem;
  border-radius: 10px;
  border: 1px solid rgba( 27, 48, 34, 0.12 );
  background: #fafaf7;
  color: #2a2a2a;
  font-size: 14px;
}
.grove-wc-main .woocommerce-message { border-left: 3px solid var( --grove-sage ); }
.grove-wc-main .woocommerce-error { border-left: 3px solid #b3261e; }
.grove-wc-main .woocommerce-info { border-left: 3px solid var( --grove-forest ); }

/* ----- Samples / Request a Sample ----- */
.grove-main--samples.is-layout-constrained {
  max-width: none !important;
}

.grove-main--samples.is-layout-constrained > .grove-samples {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100%;
}

.grove-samples {
  background: #f7f7f5;
  color: #2a2a2a;
}

.grove-samples__hero {
  padding: 3.5rem 1.5rem 2rem;
}

.grove-samples__hero-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  gap: 2.5rem;
  align-items: center;
}

.grove-samples__eyebrow {
  margin: 0 0 1rem;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #6b7355;
}

.grove-samples__title {
  margin: 0;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: clamp(2.75rem, 6vw, 4.25rem);
  line-height: 1.05;
  color: #1b3022;
}

.grove-samples__rule {
  display: block;
  width: 3.25rem;
  height: 2px;
  margin: 1.25rem 0 1.5rem;
  background: #1b3022;
}

.grove-samples__lead {
  margin: 0 0 2rem;
  max-width: 34rem;
  font-size: 15px;
  line-height: 1.65;
  color: #4a4a4a;
}

.grove-samples__benefits {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 1.75rem;
}

.grove-samples__benefit {
  display: flex;
  align-items: center;
  gap: 0.7rem;
}

.grove-samples__benefit-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ecece8;
  color: #1b3022;
  flex-shrink: 0;
}

.grove-samples__benefit-label {
  font-size: 13px;
  font-weight: 600;
  color: #2a2a2a;
  max-width: 8.5rem;
  line-height: 1.3;
}

.grove-samples__media-frame {
  position: relative;
  border-radius: 1.25rem;
  overflow: hidden;
  aspect-ratio: 7 / 4;
  width: 100%;
}

.grove-samples__media-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.grove-samples__form-wrap {
  padding: 0 1.25rem 4rem;
  max-width: 1180px;
  margin: 0 auto;
}

.grove-samples__card {
  display: grid;
  gap: 2rem;
  padding: 1.75rem;
  border-radius: 1.5rem;
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.08);
  box-shadow: 0 18px 50px rgba(27, 48, 34, 0.08);
}

.grove-samples__card-info {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
}

.grove-samples__gift {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ecece8;
  color: #1b3022;
  flex-shrink: 0;
}

.grove-samples__card-title {
  margin: 0 0 0.75rem;
  font-family: 'DM Serif Display', serif;
  font-weight: 400;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  line-height: 1.15;
  color: #1b3022;
}

.grove-samples__card-lead {
  margin: 0 0 1.5rem;
  font-size: 14px;
  line-height: 1.6;
  color: #4a4a4a;
  max-width: 22rem;
}

.grove-samples__checks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

.grove-samples__checks li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 14px;
  line-height: 1.45;
  color: #2a2a2a;
}

.grove-samples__check {
  width: 1.35rem;
  height: 1.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #3e7b4e;
  flex-shrink: 0;
  margin-top: 0.05rem;
}

.grove-samples__form {
  position: relative;
}

.grove-samples__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  margin-bottom: 0.85rem;
}

.grove-samples__label {
  display: block;
  margin-bottom: 0.85rem;
}

.grove-samples__row .grove-samples__label {
  margin-bottom: 0;
}

.grove-samples__label--block {
  margin-bottom: 0.85rem;
}

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

.grove-samples__field {
  box-sizing: border-box;
  width: 100%;
  min-height: 3.1rem;
  padding: 0.85rem 1rem;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.4;
  color: #2a2a2a;
  background: #fff;
  border: 1px solid rgba(27, 48, 34, 0.16);
  border-radius: 0.55rem;
  outline: none;
  appearance: none;
}

.grove-samples__field:focus {
  border-color: rgba(27, 48, 34, 0.45);
  box-shadow: 0 0 0 3px rgba(27, 48, 34, 0.08);
}

.grove-samples__field::placeholder {
  color: rgba(42, 42, 42, 0.45);
}

select.grove-samples__field {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231B3022' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.9rem center;
  padding-right: 2.5rem;
}

.grove-samples__submit {
  width: 100%;
  margin-top: 0.35rem;
  min-height: 3.25rem;
  border: 0;
  border-radius: 0.55rem;
  background: #1b3022;
  color: #fff;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.grove-samples__submit:hover {
  opacity: 0.92;
}

.grove-samples__submit:disabled {
  opacity: 0.65;
  cursor: wait;
}

.grove-samples__secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 1.25rem 0 0;
  font-size: 12px;
  color: #6a6a6a;
}

.grove-samples__secure-icon {
  display: inline-flex;
  color: #1b3022;
}

.grove-samples__form-wrap .grove-form-status {
  margin-top: 1rem;
}

.grove-samples__unlock {
  padding: 0 1.75rem 1.75rem;
}

.grove-samples__unlock-thanks {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #1b3022;
}

.grove-samples__download {
  display: inline-flex;
  text-decoration: none;
}

@media (min-width: 960px) {
  .grove-samples__hero {
    padding: 0;
  }

  .grove-samples__hero-inner {
    max-width: none;
    margin: 0;
    grid-template-columns: max(2.5rem, calc((100% - 1180px) / 2)) minmax(0, 600px) minmax(0, 1fr);
    gap: 0;
  }

  .grove-samples__copy {
    grid-column: 2;
    padding: 3.5rem 2.5rem 3.5rem 0;
  }

  .grove-samples__media {
    grid-column: 3;
    align-self: stretch;
  }

  .grove-samples__media-frame {
    border-radius: 0;
    aspect-ratio: 7 / 4;
    min-height: 100%;
  }

  .grove-samples__media-frame img {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 12%);
    mask-image: linear-gradient(to right, transparent, #000 12%);
  }

  .grove-samples__benefits {
    flex-wrap: nowrap;
    gap: 1.5rem;
  }

  .grove-samples__form-wrap {
    padding: 0 2.5rem 5rem;
  }

  .grove-samples__card {
    grid-template-columns: 0.9fr 1.1fr;
    gap: 2.5rem;
    padding: 2.5rem 2.75rem;
  }
}

/* ==========================================================================
   NutriThryv DNA — co-branded partner landing page + home CTA band.
   ========================================================================== */
.grove-dna-cta {
  background-color: var(--grove-forest);
  box-sizing: border-box;
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  padding: 72px 1.5rem;
  width: 100vw;
}

.grove-dna-cta__inner {
  box-sizing: border-box;
  container-type: inline-size;
  margin: 0 auto;
  max-width: 1100px;
  min-width: 0;
  text-align: center;
  width: 100%;
}

.grove-dna-cta__eyebrow {
  color: rgba(255, 255, 255, 0.6);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0 0 20px;
  text-transform: uppercase;
}

.grove-dna-cta__title {
  box-sizing: border-box;
  color: #fff;
  font-family: 'DM Serif Display', serif;
  font-size: clamp(1.35rem, 5.5vw, 2.25rem);
  font-size: clamp(1.35rem, 5.2cqi, 2.25rem);
  font-weight: 400;
  line-height: 1.2;
  margin: 0 auto 16px;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: break-word;
  text-wrap: balance;
  white-space: normal;
  width: 100%;
}

.grove-dna-cta__body {
  color: rgba(255, 255, 255, 0.75);
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.625;
  margin: 0 auto 32px;
  max-width: 520px;
}

.grove-dna-cta__btn {
  background: var(--grove-cream);
  color: var(--grove-forest);
  max-width: 100%;
  text-align: center;
  white-space: normal;
}

@media (min-width: 768px) {
  .grove-dna-cta { padding: 96px 2rem; }
}

.grove-nutrithryv {
  margin-left: calc(50% - 50vw);
  max-width: none !important;
  width: 100vw;
}

.grove-nutrithryv__eyebrow {
  color: var(--grove-sage);
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1;
  margin: 0 0 24px;
  text-transform: uppercase;
}

.grove-nutrithryv__hero {
  background-color: var(--grove-cream-light);
  padding: 80px 1.5rem 72px;
}

.grove-nutrithryv__hero-inner {
  margin: 0 auto;
  max-width: 760px;
  text-align: center;
}

.grove-nutrithryv__title {
  color: var(--grove-forest);
  font-family: 'DM Serif Display', serif;
  font-size: 38px;
  font-weight: 400;
  line-height: 1.1;
  margin: 0 0 24px;
}

.grove-nutrithryv__title span {
  display: block;
}

.grove-nutrithryv__lead {
  color: var(--grove-muted);
  font-family: Inter, sans-serif;
  font-size: 15px;
  line-height: 1.625;
  margin: 0 auto 36px;
  max-width: 560px;
}

.grove-nutrithryv__actions {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
}

.grove-nutrithryv__contact-link {
  color: var(--grove-forest);
  font-family: Inter, sans-serif;
  font-size: 14px;
  text-decoration-line: underline;
  text-underline-offset: 4px;
}

.grove-nutrithryv__heading {
  color: var(--grove-forest);
  font-family: 'DM Serif Display', serif;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.15;
  margin: 0 0 20px;
}

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

.grove-nutrithryv__body {
  color: var(--grove-muted);
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.625;
  margin: 0;
}

.grove-nutrithryv__intro {
  padding: 72px 1.5rem;
}

.grove-nutrithryv__intro-inner {
  display: grid;
  gap: 48px;
  margin: 0 auto;
  max-width: 1080px;
}

.grove-nutrithryv__stats {
  background-color: var(--grove-cream);
  padding: 72px 1.5rem;
}

.grove-nutrithryv__stats-inner {
  margin: 0 auto;
  max-width: 1080px;
}

.grove-nutrithryv__stats-grid {
  display: grid;
  gap: 24px;
  margin-top: 40px;
}

.grove-nutrithryv__stat {
  background-color: #fff;
  border-radius: 24px;
  padding: 32px 28px;
}

.grove-nutrithryv__stat-value {
  color: var(--grove-forest);
  font-family: 'DM Serif Display', serif;
  font-size: 44px;
  line-height: 1;
  margin: 0 0 16px;
}

.grove-nutrithryv__stat-text {
  color: var(--grove-muted);
  font-family: Inter, sans-serif;
  font-size: 13px;
  line-height: 1.625;
  margin: 0;
}

.grove-nutrithryv__disclaimer {
  color: #4a4a4a;
  font-family: Inter, sans-serif;
  font-size: 10px;
  line-height: 1.625;
  margin: 40px auto 0;
  max-width: 900px;
  text-align: center;
}

.grove-nutrithryv__how {
  padding: 72px 1.5rem;
}

.grove-nutrithryv__how-inner {
  margin: 0 auto;
  max-width: 1080px;
}

.grove-nutrithryv__steps {
  display: grid;
  gap: 32px;
  list-style: none;
  margin: 40px 0 0;
  padding: 0;
}

.grove-nutrithryv__step-number {
  color: var(--grove-sage);
  display: block;
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  margin-bottom: 12px;
}

.grove-nutrithryv__step-title {
  color: var(--grove-forest);
  font-family: 'DM Serif Display', serif;
  font-size: 20px;
  font-weight: 400;
  margin: 0 0 10px;
}

.grove-nutrithryv__step-text {
  color: var(--grove-muted);
  font-family: Inter, sans-serif;
  font-size: 13px;
  line-height: 1.625;
  margin: 0;
}

.grove-nutrithryv__closing {
  background-color: var(--grove-forest);
  padding: 80px 1.5rem;
}

.grove-nutrithryv__closing-inner {
  margin: 0 auto;
  max-width: 640px;
  text-align: center;
}

.grove-nutrithryv__closing-title {
  color: #fff;
  font-family: 'DM Serif Display', serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.15;
  margin: 0 0 16px;
}

.grove-nutrithryv__closing-body {
  color: rgba(255, 255, 255, 0.75);
  font-family: Inter, sans-serif;
  font-size: 14px;
  line-height: 1.625;
  margin: 0 0 32px;
}

.grove-nutrithryv__closing-btn {
  background: var(--grove-cream);
  color: var(--grove-forest);
}

.grove-nutrithryv__closing-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

.grove-nutrithryv__closing-form {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  max-width: 420px;
  min-height: 52px;
  padding: 0.35rem 0.35rem 0.35rem 1.25rem;
  border-radius: 999px;
  background: var(--grove-cream);
  box-sizing: border-box;
}

.grove-nutrithryv__closing-form:focus-within {
  outline: 2px solid rgba(255, 255, 255, 0.55);
  outline-offset: 2px;
}

.grove-nutrithryv__closing-form[hidden],
.grove-nutrithryv__closing-btn[hidden],
.grove-nutrithryv__closing-thanks[hidden] {
  display: none;
}

.grove-nutrithryv__closing-email {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  min-height: 0;
  padding: 0.5rem 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--grove-forest);
  font-family: Inter, sans-serif;
  font-size: 15px;
  line-height: 1.2;
}

.grove-nutrithryv__closing-email::placeholder {
  color: rgba(27, 48, 34, 0.45);
}

.grove-nutrithryv__closing-email:focus {
  outline: none;
}

.grove-nutrithryv__closing-form .grove-nutrithryv__closing-btn {
  flex: 0 0 auto;
  padding: 0.7rem 1.35rem;
  background: var(--grove-forest);
  color: #fff;
  white-space: nowrap;
  font-size: 14px;
}

.grove-nutrithryv__closing-thanks {
  color: #fff;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  margin: 0;
}

.grove-nutrithryv__closing-cta .grove-form-status {
  color: #fff;
}

.grove-nutrithryv__partner-note {
  color: rgba(255, 255, 255, 0.5);
  font-family: Inter, sans-serif;
  font-size: 11px;
  line-height: 1.625;
  margin: 32px 0 0;
}

@media (min-width: 768px) {
  .grove-nutrithryv__hero { padding: 110px 2rem 96px; }
  .grove-nutrithryv__title { font-size: 52px; }
  .grove-nutrithryv__actions { flex-direction: row; gap: 28px; }
  .grove-nutrithryv__intro { padding: 96px 2rem; }
  .grove-nutrithryv__intro-inner { gap: 64px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grove-nutrithryv__stats { padding: 96px 2rem; }
  .grove-nutrithryv__stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grove-nutrithryv__how { padding: 96px 2rem; }
  .grove-nutrithryv__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grove-nutrithryv__closing { padding: 110px 2rem; }
  .grove-nutrithryv__closing-title { font-size: 38px; }
}
