/* ============================================================
   PREMIUM.CSS — GRVMD design system layer (loads last)
   Global polish, home sections, PDP trust cues, mini-cart drawer,
   mobile menu, accessibility.
   ============================================================ */

:root {
  --clr-ink: #0A0A0A;
  --clr-paper: #FFFFFF;
  --clr-line: rgba(0, 0, 0, 0.1);
  --shadow-soft: 0 10px 40px rgba(0, 0, 0, 0.06);
  --shadow-lift: 0 24px 60px rgba(0, 0, 0, 0.14);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --section-pad: clamp(4rem, 9vw, 7.5rem);
}

/* ── Global polish ───────────────────────────────────────────── */
::selection { background: var(--clr-ink); color: #fff; }

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }

.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 10000;
  background: var(--clr-ink);
  color: #fff;
  padding: 0.75rem 1.25rem;
  border-radius: var(--radius-full);
  font-family: var(--font-accent);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: top var(--dur-fast) var(--ease-smooth);
}
.skip-link:focus { top: 1rem; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--clr-ink);
  outline-offset: 3px;
  border-radius: 4px;
}
.hero :where(a, button):focus-visible,
.grvmd-cart-drawer :where(a, button):focus-visible { outline-color: #fff; }

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

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── Section rhythm ──────────────────────────────────────────── */
.products-section { padding-block: var(--section-pad); }
.section-header { align-items: flex-end; }

/* ── Hero refinements ────────────────────────────────────────── */

@media (max-width: 768px) {
  .hero { align-items: flex-end; padding-bottom: 4rem; }
  .hero-overlay {
    background: linear-gradient(0deg, rgba(8, 8, 8, 0.88) 0%, rgba(8, 8, 8, 0.45) 55%, rgba(8, 8, 8, 0.2) 100%) !important;
  }
}

/* ── Shop by collection ──────────────────────────────────────── */
.collections-section { padding-block: var(--section-pad); background: var(--clr-surface); }
.collections-section .collections-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 2.5rem;
}

@media (max-width: 900px) {
  .collections-section .collections-grid { grid-template-columns: 1fr; }
  
}

/* ── Product cards (all listings) ────────────────────────────── */
.product-card { transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out); }
.product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.product-card__price { font-variant-numeric: tabular-nums; }

/* ── Mobile menu ─────────────────────────────────────────────── */
.grvmd-mobile-menu nav { display: flex; flex-direction: column; }
/* Closed menu must not be focusable or leak its shadow under the header */
.grvmd-mobile-menu:not(.is-open) { visibility: hidden; box-shadow: none; transition: transform 0.4s var(--ease-smooth), visibility 0s linear 0.4s; }
.grvmd-mobile-menu nav a { display: flex; align-items: center; justify-content: space-between; }
.grvmd-mobile-menu__meta {
  display: flex;
  flex-direction: column;
  font-family: var(--font-accent);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
}

/* ── Mini-cart drawer ────────────────────────────────────────── */
.grvmd-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 9998;
  visibility: hidden;
  pointer-events: none;
}
.grvmd-cart-drawer.is-open { visibility: visible; pointer-events: auto; }
.grvmd-cart-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity var(--dur-med) var(--ease-smooth);
}
.grvmd-cart-drawer.is-open .grvmd-cart-drawer__backdrop { opacity: 1; }
/* Floating sheet: equal gap on all four sides (top/right/bottom/left) */
.grvmd-cart-drawer__panel {
  position: absolute;
  inset: 12px;
  left: auto;
  width: min(430px, calc(100% - 24px));
  background: #f1f1f1;
  color: var(--clr-text);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 24px;
  transform: translateX(calc(100% + 24px));
  transition: transform 0.5s var(--ease-out);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}
.grvmd-cart-drawer.is-open .grvmd-cart-drawer__panel { transform: none; }
/* Header: bag mark, brand name, item-count pill, close */
.grvmd-cart-drawer__head {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.35rem 1.4rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
  background: #fff;
}
.grvmd-cart-drawer__brand { display: flex; align-items: center; gap: 0.7rem; min-width: 0; }
.grvmd-cart-drawer__bag { flex: none; color: var(--clr-ink); }

.grvmd-cart-drawer__count {
  flex: none;
  min-width: 22px;
  height: 22px;
  padding: 0 0.4rem;
  display: inline-grid;
  place-items: center;
  border-radius: var(--radius-full);
  background: rgba(0, 0, 0, 0.06);
  color: var(--clr-text-muted);
  font-size: 0.72rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
/* Astra's inline CSS styles every bare `button` (padding ~15px 30px, colours,
   and a :focus background). Without an explicit padding:0 that padding
   overflows the 42px box and squeezes the icon's content area to 0px.
   Scoped under .grvmd-cart-drawer (0,2,0) so it also beats Astra's
   `button:focus` / `button:hover` (0,1,1). */
.grvmd-cart-drawer .grvmd-cart-drawer__close,
.grvmd-cart-drawer .grvmd-cart-drawer__close:focus {
  flex: none;
  width: 42px;
  height: 42px;
  min-width: 0;
  min-height: 0;
  padding: 0;
  line-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--clr-ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity var(--dur-fast);
}
.grvmd-cart-drawer .grvmd-cart-drawer__close svg { flex: none; display: block; stroke: var(--clr-ink); }
/* Invert only on devices that truly hover — on touch, :hover sticks after a tap */
@media (hover: hover) {
  .grvmd-cart-drawer .grvmd-cart-drawer__close:hover { background: transparent; opacity: 0.6; }
}

/* Body holds the scrolling list and the pinned footer as one column.
   min-width:0 all the way down — without it these flex items keep their
   default min-width:auto and refuse to shrink, overflowing the panel. */
.grvmd-cart-drawer__body { flex: 1; min-width: 0; min-height: 0; display: flex; }
.grvmd-cart-drawer .widget_shopping_cart_content {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* Item list */
.grvmd-mc {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  /* Must be explicit: `overflow-y:auto` with `overflow-x:visible` makes the
     browser promote overflow-x to auto, which adds a sideways scrollbar. */
  overflow-x: hidden;
  list-style: none;
  margin: 0;
  padding: 1rem 1rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.grvmd-mc__item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 0.85rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 18px;
  transition: opacity var(--dur-fast) var(--ease-smooth);
}
.grvmd-mc__item.is-updating { opacity: 0.45; pointer-events: none; }
.grvmd-mc__thumb {
  flex: none;
  width: 78px;
  height: 78px;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
/* Scoped + float reset: WooCommerce ships `ul.cart_list li img { float:right; width:32px }` */
.grvmd-cart-drawer .grvmd-mc__thumb img {
  float: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
  box-shadow: none;
}
.grvmd-mc__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.grvmd-mc__name {
  font-family: var(--font-accent);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--clr-ink);
}
.grvmd-mc__meta {
  margin: 0;
  font-family: var(--font-accent);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
}
.grvmd-mc__meta p { margin: 0; }
.grvmd-mc__row {
  margin-top: auto;
  padding-top: 0.55rem;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* Wraps the stepper under the price when the panel is too narrow for both:
     the price is a single unbreakable token and the stepper can't shrink. */
  flex-wrap: wrap;
  gap: 0.6rem 0.75rem;
}
.grvmd-mc__price { font-size: 0.95rem; font-weight: 700; white-space: nowrap; color: var(--clr-ink); }
.grvmd-mc__price del { font-weight: 400; color: var(--clr-text-muted); margin-right: 0.35rem; }

/* Quantity stepper */
.grvmd-mc__qty {
  /* Locked to content width so it can never stretch to fill the row */
  flex: 0 0 auto;
  align-self: flex-start;
  width: max-content;
  display: flex;
  align-items: center;
  gap: 0.05rem;
  padding: 0.15rem;
  border-radius: var(--radius-full);
  background: rgba(0, 0, 0, 0.06);
}
/* Same Astra global-button override as the close button: explicit padding:0
   and the .grvmd-cart-drawer scope, or Astra's padding squeezes the icon to 0px */
.grvmd-cart-drawer .grvmd-mc__step,
.grvmd-cart-drawer .grvmd-mc__step:focus {
  flex: none;
  width: 24px;
  height: 24px;
  min-width: 0;
  min-height: 0;
  padding: 0;
  line-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--clr-ink);
  cursor: pointer;
  transition: background var(--dur-fast);
}
.grvmd-cart-drawer .grvmd-mc__step svg { flex: none; display: block; stroke: var(--clr-ink); }
@media (hover: hover) {
  .grvmd-cart-drawer .grvmd-mc__step:hover { background: var(--clr-ink); }
  .grvmd-cart-drawer .grvmd-mc__step:hover svg { stroke: #fff; }
}
.grvmd-mc__count {
  display: inline-block;
  min-width: 18px;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--clr-ink);
}

/* Pinned footer */
.grvmd-mc__foot {
  flex: none;
  padding: 1.35rem 1.4rem 1.4rem;
  background: #fff;
}
.grvmd-mc__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 1rem;
}
.grvmd-mc__total-label {
  font-family: var(--font-accent);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
}
.grvmd-mc__total-value { font-size: 1.35rem; font-weight: 700; color: var(--clr-ink); }
.grvmd-cart-drawer a.grvmd-mc__checkout {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 58px;
  padding: 1rem 1.5rem;
  border: 0;
  border-radius: var(--radius-full);
  background-color: var(--clr-ink);
  color: #fff;
  font-family: var(--font-accent);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  transition: background var(--dur-fast), transform var(--dur-fast);
}
.grvmd-cart-drawer a.grvmd-mc__checkout:hover { background-color: #222; color: #fff; transform: translateY(-1px); }

/* Anything WooCommerce injects into the drawer that this design replaces:
   core's mini-cart empty message, the cart page's return-to-shop button,
   and add-to-cart notices. The drawer renders its own versions of these. */
.grvmd-cart-drawer .woocommerce-mini-cart__empty-message,
.grvmd-cart-drawer .woocommerce-mini-cart__buttons,
.grvmd-cart-drawer .return-to-shop,
.grvmd-cart-drawer .cart-empty,
.grvmd-cart-drawer .woocommerce-notices-wrapper,
.grvmd-cart-drawer .woocommerce-message,
.grvmd-cart-drawer .woocommerce-info { display: none !important; }

/* Empty state */
.grvmd-mc__empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 2rem 1.5rem calc(2rem + env(safe-area-inset-bottom, 0px));
  text-align: center;
}
.grvmd-mc__empty-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--clr-text-muted);
}
.grvmd-mc__empty-title {
  margin: 0;
  font-family: var(--font-accent);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
}
.grvmd-cart-drawer .grvmd-mc__empty a.grvmd-mc__checkout { width: auto; min-height: 52px; padding-inline: 2.25rem; }

/* Narrow phones: claw back horizontal room so the price and the quantity
   stepper stay on one line instead of wrapping. */
@media (max-width: 420px) {
  .grvmd-mc { padding: 0.85rem 0.75rem 1.25rem; }
  .grvmd-mc__item { gap: 0.75rem; padding: 0.7rem; }
  .grvmd-mc__thumb { width: 68px; height: 68px; border-radius: 10px; }
  .grvmd-mc__name { font-size: 0.8rem; }
  .grvmd-mc__price { font-size: 0.9rem; }
  .grvmd-mc__row { padding-top: 0.45rem; gap: 0.5rem; }
  .grvmd-cart-drawer .grvmd-mc__step { width: 22px; height: 22px; }
  .grvmd-mc__count { min-width: 16px; font-size: 0.78rem; }
  .grvmd-mc__foot { padding: 1.1rem 1rem 1.2rem; }
  .grvmd-cart-drawer__head { padding: 1.1rem 1rem; }
}

.grvmd-cart-count { font-variant-numeric: tabular-nums; }

/* ============================================================
   MY ACCOUNT — dashboard (.gd) + sidebar navigation
   ============================================================ */
.woocommerce-account .woocommerce { max-width: 1180px; }

/* Sidebar */
.woocommerce-account .woocommerce-MyAccount-navigation {
  background: #fff;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-md);
  padding: 0.6rem;
  box-shadow: var(--shadow-soft);
}
@media (min-width: 900px) {
  .woocommerce-account .woocommerce-MyAccount-navigation {
    position: sticky;
    top: calc(var(--nav-height) + 1.5rem);
  }
}
.woocommerce-account .woocommerce-MyAccount-navigation-link a {
  padding: 0.85rem 1rem;
  border-radius: 8px;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  color: var(--clr-text);
}
.woocommerce-account .woocommerce-MyAccount-navigation-link a::before { opacity: 0.55; }
.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover { background: var(--clr-surface); }
.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover::before { opacity: 1; }
.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a::before { opacity: 1; }
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
  margin-top: 0.5rem !important;
  padding-top: 0.5rem !important;
  border-top: 1px solid var(--clr-line) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--clr-text-muted); }

/* Dashboard */
.gd { display: grid; gap: 1.25rem; }

/* Signup verification code — sits inside Woo's register form */
.grvmd-otp { display: grid; gap: 0.5rem; }
.grvmd-otp--closed { display: none; }
.grvmd-otp .grvmd-otp__input {
  font-family: var(--font-accent);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.4em;
  text-align: center;
}
.grvmd-otp__help {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.4rem 1rem;
  margin: 0;
}
.grvmd-otp__hint { font-size: 0.8rem; line-height: 1.5; color: var(--clr-text-muted); }
.grvmd-otp__resend {
  flex: none;
  font-family: var(--font-accent);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-ink);
  background: none;
  border: none;
  border-bottom: 1px solid currentColor;
  padding: 0;
  cursor: pointer;
  transition: opacity var(--dur-fast);
}
.grvmd-otp__resend:hover { opacity: 0.6; }
.grvmd-otp__resend:disabled { opacity: 0.45; cursor: default; border-bottom-color: transparent; }
.grvmd-otp__msg {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--clr-text-muted);
}
.grvmd-otp__msg:empty { display: none; }
.grvmd-otp__msg--error { color: #b91c1c; }

/* Hero */

.gd-stat dt {
  font-family: var(--font-accent);
  font-size: 0.66rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 0.4rem;
}
.gd-stat dd {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: #fff;
}
.gd-stat dd .woocommerce-Price-amount { color: inherit; }

/* Cards */
.gd-card {
  background: #fff;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-md);
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  box-shadow: var(--shadow-soft);
}
.gd-card__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.gd-card__title {
  margin: 0;
  font-family: var(--font-accent);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clr-ink);
}
.gd-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-accent);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
  transition: color var(--dur-fast), gap var(--dur-fast);
}
.gd-link:hover { color: var(--clr-ink); gap: 0.7rem; }

.gd-btn {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.5rem;
  border-radius: var(--radius-full);
  background: var(--clr-ink);
  color: #fff;
  font-family: var(--font-accent);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth);
}
.gd-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22); color: #fff; }

/* Latest order */
.gd-order { display: flex; align-items: center; gap: 1.25rem; }
.gd-order__thumbs { display: flex; flex: none; }
.gd-order__thumb {
  width: 56px;
  height: 70px;
  border-radius: 8px;
  overflow: hidden;
  border: 2px solid #fff;
  background: var(--clr-surface-2);
  display: grid;
  place-items: center;
  color: var(--clr-text-muted);
  margin-left: -14px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
.gd-order__thumb:first-child { margin-left: 0; }
.gd-order__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gd-order__thumb--more { font-family: var(--font-accent); font-size: 0.8rem; font-weight: 700; color: var(--clr-ink); background: var(--clr-surface); }
.gd-order__meta { flex: 1; min-width: 0; }
.gd-order__num {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  margin: 0 0 0.35rem;
  font-family: var(--font-accent);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--clr-ink);
}
.gd-order__sub { margin: 0; font-size: 0.85rem; color: var(--clr-text-muted); }
.gd-order__sub strong { color: var(--clr-ink); font-weight: 600; }

.gd-status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.28rem 0.7rem;
  border-radius: var(--radius-full);
  background: var(--clr-surface-2);
  color: var(--clr-ink);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.gd-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.gd-status--completed { background: #E6F4EA; color: #146C2E; }
.gd-status--processing,
.gd-status--on-hold { background: #FFF3D6; color: #8A5A00; }
.gd-status--cancelled,
.gd-status--failed,
.gd-status--refunded { background: #FDE7E7; color: #A32020; }

/* Empty state */
.gd-empty { display: flex; align-items: center; gap: 1.25rem; }
.gd-empty > div { flex: 1; min-width: 0; }
.gd-empty__icon {
  flex: none;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--clr-surface);
  border: 1px solid var(--clr-line);
  font-size: 1.15rem;
}
.gd-empty__title { margin: 0 0 0.2rem; font-weight: 600; color: var(--clr-ink); }
.gd-empty__text { margin: 0; font-size: 0.85rem; color: var(--clr-text-muted); }

/* Tiles */
.gd-tiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.gd-tile {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem;
  background: #fff;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-md);
  transition: transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out), border-color var(--dur-fast);
}
.gd-tile:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); border-color: var(--clr-ink); }
.gd-tile__icon {
  flex: none;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--clr-surface);
  font-size: 1rem;
  color: var(--clr-ink);
  transition: background var(--dur-fast), color var(--dur-fast);
}
.gd-tile:hover .gd-tile__icon { background: var(--clr-ink); color: #fff; }
.gd-tile__body { flex: 1; min-width: 0; display: grid; gap: 0.15rem; }
.gd-tile__title { font-family: var(--font-accent); font-size: 0.85rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--clr-ink); }
.gd-tile__text { font-size: 0.82rem; color: var(--clr-text-muted); line-height: 1.4; }
.gd-tile__arrow { flex: none; font-size: 0.8rem; color: var(--clr-text-muted); transition: transform var(--dur-fast), color var(--dur-fast); }
.gd-tile:hover .gd-tile__arrow { transform: translateX(4px); color: var(--clr-ink); }

.gd-foot { margin: 0.25rem 0 0; font-size: 0.85rem; color: var(--clr-text-muted); text-align: center; }
.gd-foot a { color: var(--clr-ink); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 640px) {

  .gd-order, .gd-empty { flex-wrap: wrap; }
  .gd-order__meta, .gd-empty > div { flex-basis: calc(100% - 90px); }
  .gd-order .gd-btn, .gd-empty .gd-btn { width: 100%; }
  .gd-tiles { grid-template-columns: 1fr; }
}

/* ============================================================
   ACCOUNT PROFILE — mockup-based redesign (profile card, stats,
   tab bar, compact order rows). Replaces the old sidebar nav on
   all My Account pages; loads after everything above so it wins.
   ============================================================ */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* The profile card is now the page header, so the default WP/WooCommerce
   page title ("Account details", "Orders", …) above it is redundant next
   to the mockup — keep it for a11y/SEO structure but hide it visually. */
.woocommerce-account .entry-header {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.woocommerce-account .woocommerce {
  max-width: 640px;
  margin: 0 auto;
}
@media (min-width: 900px) {
  .woocommerce-account .woocommerce { flex-direction: column !important; }
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce .woocommerce-MyAccount-navigation {
    width: 100% !important;
    flex: 1 1 100% !important;
    position: static !important;
    top: auto !important;
  }
}
.woocommerce-account .woocommerce-MyAccount-navigation.gd-account-nav {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  margin-bottom: 1.5rem;
  display: grid;
  gap: 1.25rem;
}

/* Profile card */
.gd-profile-card {
  background: #fff;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-md);
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  box-shadow: var(--shadow-soft);
}
.gd-profile-card__main { display: flex; align-items: center; gap: 1rem; }
.gd-avatar {
  position: relative;
  flex: none;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: var(--clr-surface);
  border: 1px solid var(--clr-line);
  display: grid;
  place-items: center;
}
.gd-avatar__initial {
  font-family: var(--font-accent);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--clr-ink);
}
.gd-avatar__edit {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--clr-ink);
  color: #fff;
  display: grid;
  place-items: center;
  border: 2px solid #fff;
}
.gd-profile-card__id { flex: 1; min-width: 0; display: grid; gap: 0.15rem; }
.gd-profile-card__name {
  display: block;
  font-family: var(--font-accent);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--clr-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gd-profile-card__email {
  display: block;
  font-size: 0.82rem;
  color: var(--clr-text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gd-profile-card__editbtn {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--clr-text-muted);
  border: 1px solid var(--clr-line);
  transition: color var(--dur-fast), border-color var(--dur-fast);
}
.gd-profile-card__editbtn:hover,
.gd-profile-card__editbtn[aria-expanded="true"] {
  color: var(--clr-ink);
  border-color: var(--clr-ink);
}

/* Inline name edit row */
.gd-name-edit {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--clr-line);
}
.gd-name-edit[hidden] { display: none; }
.gd-name-edit__input {
  flex: 1;
  min-width: 0;
  padding: 0.7rem 1rem;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-sm);
  font-family: var(--font-accent);
  font-size: 0.9rem;
  color: var(--clr-ink);
  background: var(--clr-surface);
}
.gd-name-edit__save {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  padding: 0.7rem 1.3rem;
  border-radius: var(--radius-full);
  background: var(--clr-ink);
  color: #fff;
  font-family: var(--font-accent);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
}
.gd-name-edit__save:disabled { opacity: 0.5; cursor: default; }
.gd-name-edit__cancel {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--clr-text-muted);
}
.gd-name-edit__cancel:hover { color: var(--clr-ink); }
.gd-profile-card__editbtn:focus-visible,
.gd-name-edit__save:focus-visible,
.gd-name-edit__cancel:focus-visible {
  outline: 2px solid var(--clr-ink);
  outline-offset: 2px;
}
.gd-name-edit__msg { margin: 0.6rem 0 0; font-size: 0.8rem; color: var(--clr-text-muted); }
.gd-name-edit__msg[data-state="error"] { color: #A32020; }
.gd-name-edit__msg[data-state="success"] { color: #146C2E; }

/* Stats row */
.gd-account-stats {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.gd-account-stat {
  background: #fff;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-md);
  padding: 1rem 1.25rem;
  box-shadow: var(--shadow-soft);
  text-align: center;
}
.gd-account-stat dt {
  margin: 0 0 0.3rem;
  font-family: var(--font-accent);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
}
.gd-account-stat dd {
  margin: 0;
  font-family: var(--font-accent);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--clr-ink);
  font-variant-numeric: tabular-nums;
}

/* Tab bar */
.gd-tabbar {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: max(1rem, env(safe-area-inset-bottom, 1rem));
  z-index: 500;
  max-width: 640px;
  margin: 0 auto;
  display: flex;
  background: #fff;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lift);
  padding: 0.5rem;
  gap: 0.2rem;
}
/* Reserve room at the bottom of account pages so the floating tab bar
   never sits on top of the last bit of content (order rows, Save button). */
.woocommerce-account .woocommerce {
  padding-bottom: 6rem;
}
.gd-tabbar__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  padding: 0.65rem 0.25rem;
  border-radius: var(--radius-sm);
  color: var(--clr-text-muted);
  transition: color var(--dur-fast), background var(--dur-fast);
}
.gd-tabbar__item:hover { color: var(--clr-ink); background: var(--clr-surface); }
.gd-tabbar__icon { display: grid; place-items: center; line-height: 0; }
.gd-tabbar__label {
  font-family: var(--font-accent);
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.gd-tabbar__item.is-active {
  color: var(--clr-ink);
  position: relative;
}
.gd-tabbar__item.is-active::after {
  content: '';
  position: absolute;
  left: 22%;
  right: 22%;
  bottom: 0;
  height: 2px;
  background: var(--clr-ink);
  border-radius: var(--radius-full);
}

/* Order history rows (used on Dashboard + Orders tab) */
.gd-order-list { display: grid; gap: 0.85rem; }
.gd-order-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--clr-line);
  color: inherit;
}
.gd-order-list .gd-order-row:last-child { padding-bottom: 0; border-bottom: none; }
.gd-order-row__thumb {
  flex: none;
  width: 48px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--clr-surface-2);
  display: grid;
  place-items: center;
  color: var(--clr-text-muted);
}
.gd-order-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gd-order-row__meta { flex: 1; min-width: 0; display: grid; gap: 0.3rem; }
.gd-order-row__num {
  font-family: var(--font-accent);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--clr-ink);
}
.gd-order-row__sub {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.78rem;
  color: var(--clr-text-muted);
}
.gd-order-row__total {
  flex: none;
  font-family: var(--font-accent);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--clr-ink);
}
.gd-order-row__arrow { flex: none; font-size: 0.75rem; color: var(--clr-text-muted); }

.gd-pagination { display: flex; justify-content: center; gap: 0.75rem; margin-top: 1.5rem; }
.gd-btn--ghost {
  background: transparent;
  color: var(--clr-ink);
  border: 1px solid var(--clr-line);
}
.gd-btn--ghost:hover { color: var(--clr-ink); box-shadow: none; background: var(--clr-surface); }
.gd-btn--full { display: flex; width: 100%; gap: 0.6rem; }
.gd-btn--danger { color: #A32020; border-color: rgba(163, 32, 32, 0.25); }
.gd-btn--danger:hover { color: #A32020; background: rgba(163, 32, 32, 0.06); border-color: rgba(163, 32, 32, 0.4); }

.gd-signout { padding: 0.75rem; }

/* Saved address card */
.gd-address-card {
  background: #fff;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-md);
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  box-shadow: var(--shadow-soft);
  display: grid;
  gap: 1rem;
}
.gd-address-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.gd-address-card__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem;
  font-family: var(--font-accent);
  font-size: 1rem;
  font-weight: 700;
  color: var(--clr-ink);
}
.gd-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.22rem 0.6rem;
  border-radius: var(--radius-full);
  background: var(--clr-ink);
  color: #fff;
  font-family: var(--font-accent);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.gd-address-card__actions { display: flex; flex: none; gap: 0.4rem; }
.gd-address-card__action {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: var(--clr-text-muted);
  transition: color var(--dur-fast), background var(--dur-fast);
}
.gd-address-card__action:hover { color: var(--clr-ink); background: var(--clr-surface); }
.gd-address-card__action--danger:hover { color: #A32020; background: rgba(163, 32, 32, 0.06); }
.gd-address-card__action:focus-visible { outline: 2px solid var(--clr-ink); outline-offset: 2px; }
.gd-address-card__body {
  margin: 0;
  font-style: normal;
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--clr-text-muted);
}
.gd-address-card__contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--clr-line);
}
.gd-address-card__contact span { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; color: var(--clr-text-muted); }
.gd-address-card__contact svg { flex: none; }

/* Wishlist tab — page doesn't run through Astra's #primary/#content
   wrapper, so it needs its own top/bottom breathing room. */
.gd-wishlist-section { padding: var(--space-lg) 0; }

/* The account shell caps at 640px (see .woocommerce-account .woocommerce
   above), so the shop's 4-column grid needs to stay at a fixed 2 columns
   here regardless of viewport width, not just under the shop's own
   mobile breakpoint — !important because the shop grid has its own
   !important column/gap rules at other breakpoints that would otherwise
   win. Gap is also tightened well below the shop's spacious row-gap
   (clamp(2.5rem,4vw,3.5rem) in refine.css) — a saved-items list with
   several rows should read as compact, not as spaced out as a shop page. */
.woocommerce-account .woocommerce .products-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: 0.85rem !important;
  row-gap: 1.5rem !important;
}
.gd-wishlist-empty { grid-column: 1 / -1; }

@media (max-width: 480px) {
  .gd-profile-card__main { flex-wrap: wrap; }
  .gd-name-edit { flex-wrap: wrap; }
  .gd-name-edit__input { flex-basis: 100%; }
  .gd-tabbar__item { padding: 0.6rem 0.1rem; }
  .gd-tabbar__label { font-size: 0.56rem; letter-spacing: 0.01em; }
  .gd-order-row__total { font-size: 0.82rem; }
  .gd-address-card__contact { gap: 0.5rem 1rem; }
}

/* ============================================================
   CHECKOUT — definitive layer (scoped; beats legacy !important rules)
   ============================================================ */
/* Astra's own page title duplicates our header on the checkout page */
.grvmd-checkout-page:has(.grvmd-checkout-wrapper) .entry-header { display: none; }
.grvmd-checkout-page article.page { padding-block: 0 !important; }

body .grvmd-checkout-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 3.5rem) 0 clamp(6rem, 12vw, 6rem);
  color: var(--clr-text);
}

/* Header + progress */
body .grvmd-checkout-hero { text-align: center; margin-bottom: 2.25rem; }
body .grvmd-checkout-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.25rem);
  font-weight: 900;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--clr-ink);
  margin: 0 0 1.5rem;
}
.grvmd-progress {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-accent);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clr-text-muted);
}
.grvmd-progress li { display: inline-flex; align-items: center; gap: 0.55rem; }
.grvmd-progress li + li::before {
  content: '';
  width: clamp(1.25rem, 6vw, 3rem);
  height: 1px;
  background: var(--clr-line);
  margin-right: 0.5rem;
}
.grvmd-progress a { display: inline-flex; align-items: center; gap: 0.55rem; color: inherit; }
.grvmd-progress a:hover { color: var(--clr-ink); }
.grvmd-progress__dot {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: inline-grid;
  place-items: center;
  border: 1.5px solid var(--clr-line);
  font-size: 0.65rem;
  font-weight: 700;
  background: #fff;
}
.grvmd-progress .is-done { color: var(--clr-ink); }
.grvmd-progress .is-done .grvmd-progress__dot { background: var(--clr-ink); border-color: var(--clr-ink); color: #fff; }
.grvmd-progress .is-current { color: var(--clr-ink); }
.grvmd-progress .is-current .grvmd-progress__dot { border-color: var(--clr-ink); color: var(--clr-ink); }
@media (max-width: 560px) {
  .grvmd-progress li:not(.is-current) > a,
  .grvmd-progress li:not(.is-current):not(.is-done) { font-size: 0; gap: 0; }
  .grvmd-progress li:not(.is-current) .grvmd-progress__dot { font-size: 0.65rem; }
}

/* Layout */
body .grvmd-checkout-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 440px);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
}
@media (max-width: 992px) {
  body .grvmd-checkout-grid { grid-template-columns: 1fr; }
}
body .grvmd-checkout-col-sidebar { position: sticky; top: calc(var(--nav-height) + 1.25rem); display: grid; gap: 1rem; }
@media (max-width: 992px) { body .grvmd-checkout-col-sidebar { position: static; } }

/* Cards */
body .grvmd-checkout-card,
body .grvmd-checkout-summary-card {
  background: #fff;
  border: 1px solid var(--clr-line);
  border-radius: var(--radius-md);
  padding: clamp(1.25rem, 3vw, 2rem);
  margin-bottom: 1.25rem;
  box-shadow: var(--shadow-soft);
  backdrop-filter: none;
}
body .grvmd-checkout-summary-card { margin-bottom: 0; }
body .grvmd-checkout-card__title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--font-accent);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clr-ink);
  margin: 0 0 1.5rem;
  padding: 0 0 1.1rem;
  border-bottom: 1px solid var(--clr-line);
}
body .grvmd-checkout-card__title--plain { margin: 0; padding: 0; border: 0; }

body .grvmd-checkout-step {
  width: 26px;
  height: 26px;
  background: var(--clr-ink);
  color: #fff;
  font-size: 0.75rem;
  letter-spacing: 0;
}
.grvmd-summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid var(--clr-line);
}

/* Woo's own section headings become redundant with our card titles */
body .grvmd-checkout-wrapper .woocommerce-billing-fields > h3,
body .grvmd-checkout-wrapper .woocommerce-additional-fields > h3 { display: none !important; }

/* Form fields — two-column grid */
body .grvmd-checkout-wrapper .woocommerce-billing-fields__field-wrapper,
body .grvmd-checkout-wrapper .woocommerce-shipping-fields__field-wrapper,
body .grvmd-checkout-wrapper .woocommerce-additional-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 1rem;
}
body .grvmd-checkout-wrapper .form-row {
  float: none !important;
  width: 100% !important;
  margin: 0 0 1.1rem !important;
  padding: 0 !important;
  grid-column: span 1;
}
body .grvmd-checkout-wrapper .form-row-wide,
body .grvmd-checkout-wrapper #order_comments_field,
body .grvmd-checkout-wrapper #billing_address_1_field,
body .grvmd-checkout-wrapper #billing_address_2_field { grid-column: 1 / -1; }
@media (max-width: 560px) {
  body .grvmd-checkout-wrapper .woocommerce-billing-fields__field-wrapper,
  body .grvmd-checkout-wrapper .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
  body .grvmd-checkout-wrapper .form-row { grid-column: 1 / -1; }
}

body .grvmd-checkout-wrapper label {
  display: block;
  margin: 0 0 0.45rem !important;
  font-family: var(--font-accent) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--clr-text) !important;
}
body .grvmd-checkout-wrapper label .required { color: #C62828; text-decoration: none; }
body .grvmd-checkout-wrapper label .optional { color: var(--clr-text-muted); text-transform: none; letter-spacing: 0; font-weight: 400; }

body .grvmd-checkout-wrapper input.input-text,
body .grvmd-checkout-wrapper input[type="text"],
body .grvmd-checkout-wrapper input[type="email"],
body .grvmd-checkout-wrapper input[type="tel"],
body .grvmd-checkout-wrapper input[type="password"],
body .grvmd-checkout-wrapper textarea,
body .grvmd-checkout-wrapper select,
body .grvmd-checkout-wrapper .select2-container--default .select2-selection--single {
  width: 100% !important;
  min-height: 50px;
  height: auto !important;
  margin: 0 !important;
  padding: 0.85rem 1rem !important;
  background: #fff !important;
  border: 1.5px solid rgba(0, 0, 0, 0.14) !important;
  border-radius: 10px !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  color: var(--clr-text) !important;
  box-shadow: none !important;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast) !important;
}
body .grvmd-checkout-wrapper textarea { min-height: 110px; resize: vertical; line-height: 1.5 !important; }
body .grvmd-checkout-wrapper ::placeholder { color: rgba(0, 0, 0, 0.38); opacity: 1; }
body .grvmd-checkout-wrapper input:hover,
body .grvmd-checkout-wrapper textarea:hover,
body .grvmd-checkout-wrapper select:hover { border-color: rgba(0, 0, 0, 0.35) !important; }
body .grvmd-checkout-wrapper input:focus,
body .grvmd-checkout-wrapper textarea:focus,
body .grvmd-checkout-wrapper select:focus,
body .grvmd-checkout-wrapper .select2-container--open .select2-selection--single,
body .grvmd-checkout-wrapper .select2-container--focus .select2-selection--single {
  border-color: var(--clr-ink) !important;
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.07) !important;
  outline: none !important;
  background: #fff !important;
}
/* Validation states from Woo's checkout JS */
body .grvmd-checkout-wrapper .woocommerce-invalid input.input-text,
body .grvmd-checkout-wrapper .woocommerce-invalid select,
body .grvmd-checkout-wrapper .woocommerce-invalid .select2-selection--single { border-color: #C62828 !important; box-shadow: 0 0 0 4px rgba(198, 40, 40, 0.08) !important; }
body .grvmd-checkout-wrapper .woocommerce-validated input.input-text { border-color: rgba(0, 0, 0, 0.14) !important; }
body .grvmd-checkout-wrapper .select2-container--default .select2-selection--single { display: flex; align-items: center; }
body .grvmd-checkout-wrapper .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 0.6rem; }

/* Create-account + terms checkboxes */
body .grvmd-checkout-wrapper .woocommerce-account-fields { grid-column: 1 / -1; margin-top: 0.25rem; }
body .grvmd-checkout-wrapper .create-account { margin-top: 1rem; }
body .grvmd-checkout-wrapper input[type="checkbox"] { accent-color: var(--clr-ink); width: 18px; height: 18px; margin: 0 0.6rem 0 0; vertical-align: -3px; }
body .grvmd-checkout-wrapper .woocommerce-form__label-for-checkbox {
  display: flex !important;
  align-items: center;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
}

/* Login / coupon prompts (inside the container now) */
body .grvmd-checkout-wrapper > .woocommerce-form-login-toggle .woocommerce-info,
body .grvmd-checkout-wrapper > .woocommerce-form-coupon-toggle .woocommerce-info,
body .grvmd-checkout-wrapper > .woocommerce-info {
  display: block !important;
  margin: 0 0 0.75rem !important;
  padding: 0.95rem 1.25rem !important;
  background: #fff !important;
  border: 1px solid var(--clr-line) !important;
  border-left: 3px solid var(--clr-ink) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--clr-text) !important;
}
body .grvmd-checkout-wrapper .woocommerce-info::before { display: none !important; }
body .grvmd-checkout-wrapper .woocommerce-info a { color: var(--clr-ink) !important; text-decoration: underline; text-underline-offset: 3px; }
body .grvmd-checkout-wrapper form.checkout_coupon,
body .grvmd-checkout-wrapper form.woocommerce-form-login {
  background: #fff;
  border: 1px solid var(--clr-line) !important;
  border-radius: var(--radius-md) !important;
  padding: 1.25rem !important;
  margin: 0 0 1rem !important;
}
body .grvmd-checkout-wrapper form.checkout_coupon { display: flex; gap: 0.6rem; flex-wrap: wrap; }
body .grvmd-checkout-wrapper form.checkout_coupon > p { margin: 0 !important; }
body .grvmd-checkout-wrapper form.checkout_coupon .form-row-first { flex: 1 1 220px; }
body .grvmd-checkout-wrapper form.checkout_coupon button.button {
  min-height: 50px;
  padding: 0 1.75rem !important;
  border-radius: var(--radius-full) !important;
  background: var(--clr-ink) !important;
  color: #fff !important;
  border: 0 !important;
  font-family: var(--font-accent) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}

/* Error / notice banners from checkout validation */
body .grvmd-checkout-wrapper .woocommerce-NoticeGroup .woocommerce-error,
body .grvmd-checkout-wrapper ul.woocommerce-error {
  display: block !important;
  list-style: none !important;
  margin: 0 0 1.25rem !important;
  padding: 1rem 1.25rem !important;
  background: #FDECEC !important;
  border: 1px solid #F5C2C2 !important;
  border-left: 3px solid #C62828 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #7A1F1F !important;
}
body .grvmd-checkout-wrapper ul.woocommerce-error li { margin: 0.2rem 0; }
body .grvmd-checkout-wrapper ul.woocommerce-error::before { display: none !important; }

/* ── Order summary ── */
body .grvmd-checkout-wrapper #order_review,
body .grvmd-checkout-wrapper .woocommerce-checkout-review-order,
body .grvmd-checkout-wrapper table.shop_table {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
body .grvmd-checkout-wrapper .grvmd-checkout-review-table { width: 100%; border-collapse: collapse !important; }
body .grvmd-checkout-wrapper .grvmd-checkout-review-table th,
body .grvmd-checkout-wrapper .grvmd-checkout-review-table td {
  padding: 0.85rem 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--clr-line) !important;
  background: transparent !important;
  vertical-align: middle;
  font-size: 0.9rem !important;
  color: var(--clr-text) !important;
}
body .grvmd-checkout-wrapper .grvmd-checkout-review-table tbody tr:first-child td { border-top: 0 !important; padding-top: 0 !important; }
body .grvmd-checkout-wrapper .grvmd-checkout-review-table tbody td { padding-block: 0.7rem !important; border-top: 0 !important; }
body .grvmd-checkout-wrapper .grvmd-checkout-review-table tbody tr:last-child td { padding-bottom: 1.1rem !important; }
body .grvmd-checkout-wrapper .grvmd-checkout-review-table tfoot th {
  text-align: left;
  font-family: var(--font-accent) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--clr-text-muted) !important;
}
body .grvmd-checkout-wrapper .grvmd-checkout-review-table td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }
body .grvmd-checkout-wrapper .grvmd-checkout-review-table tbody tr td:first-child { width: 100%; }
body .grvmd-checkout-wrapper .cart-discount td { color: #146C2E !important; }
body .grvmd-checkout-wrapper tr.order-total th,
body .grvmd-checkout-wrapper tr.order-total td {
  border-top: 1.5px solid var(--clr-ink) !important;
  padding-top: 1.1rem !important;
  font-size: 1.15rem !important;
  color: var(--clr-ink) !important;
}
body .grvmd-checkout-wrapper tr.order-total td { font-family: var(--font-accent) !important; font-weight: 800 !important; }
body .grvmd-checkout-wrapper tr.order-total td .includes_tax { display: block; font-size: 0.7rem; font-weight: 400; color: var(--clr-text-muted); }

/* Items */
.grvmd-checkout-item { display: flex; align-items: center; gap: 1rem; }
.grvmd-checkout-item__media { position: relative; flex: none; }
body .grvmd-checkout-item__thumb {
  width: 64px !important;
  height: 80px !important;
  border-radius: 8px;
  object-fit: cover;
  background: var(--clr-surface-2);
  border: 1px solid var(--clr-line);
  display: block;
}
.grvmd-checkout-item__count {
  position: absolute;
  top: -8px;
  right: -8px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--clr-ink);
  color: #fff;
  font-family: var(--font-accent);
  font-size: 0.68rem;
  font-weight: 700;
  display: grid;
  place-items: center;
  border: 2px solid #fff;
}
.grvmd-checkout-item__info { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
body .grvmd-checkout-item__title { font-weight: 600; font-size: 0.92rem; line-height: 1.35; color: var(--clr-ink); }
body .grvmd-checkout-item__info dl.variation { margin: 0; display: flex; flex-wrap: wrap; gap: 0 0.4rem; font-size: 0.78rem; color: var(--clr-text-muted); }
body .grvmd-checkout-item__info dl.variation dt { margin: 0; font-weight: 500; }
body .grvmd-checkout-item__info dl.variation dd { margin: 0 0.6rem 0 0; color: var(--clr-ink); font-weight: 600; }
body .grvmd-checkout-item__info dl.variation dd p { margin: 0; }

/* Shipping method row */
body .grvmd-checkout-wrapper tr.woocommerce-shipping-totals td { text-align: right; }
body .grvmd-checkout-wrapper ul.woocommerce-shipping-methods { justify-content: flex-end; }
body .grvmd-checkout-wrapper ul.woocommerce-shipping-methods li {
  justify-content: flex-end;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  text-indent: 0 !important;
  font-size: 0.9rem !important;
}
body .grvmd-checkout-wrapper ul.woocommerce-shipping-methods label {
  text-indent: 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  margin: 0 !important;
}
body .grvmd-checkout-wrapper ul.woocommerce-shipping-methods input[type="radio"] { flex: none !important; }

/* ── Payment ── */
body .grvmd-checkout-wrapper #payment { margin-top: 1.5rem !important; padding-top: 1.5rem !important; border-top: 1px solid var(--clr-line) !important; }
body .grvmd-checkout-wrapper h3.grvmd-payment-heading {
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
  font-family: var(--font-accent) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--clr-ink) !important;
}
body .grvmd-checkout-wrapper #payment ul.payment_methods { margin: 0 0 1.25rem !important; }
body .grvmd-checkout-wrapper #payment ul.payment_methods li {
  position: relative;
  margin: 0 0 0.6rem !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1.5px solid rgba(0, 0, 0, 0.14) !important;
  border-radius: 12px !important;
  overflow: hidden;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast) !important;
}
body .grvmd-checkout-wrapper #payment ul.payment_methods li:hover { border-color: rgba(0, 0, 0, 0.4) !important; background: #fff !important; }
body .grvmd-checkout-wrapper #payment ul.payment_methods li:has(input:checked) {
  border-color: var(--clr-ink) !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.07);
}
body .grvmd-checkout-wrapper #payment ul.payment_methods li input[type="radio"] {
  position: absolute;
  top: 1.15rem;
  left: 1.1rem;
  margin: 0 !important;
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--clr-ink) !important;
}
body .grvmd-checkout-wrapper #payment ul.payment_methods li > label {
  display: flex !important;
  width: 100%;
  padding: 1.05rem 1.1rem 1.05rem 3rem !important;
  margin: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.92rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
}
body .grvmd-checkout-wrapper #payment div.payment_box {
  margin: 0 !important;
  padding: 0 1.1rem 1.1rem 3rem !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-size: 0.85rem !important;
  line-height: 1.55 !important;
  color: var(--clr-text-muted) !important;
}
body .grvmd-checkout-wrapper #payment div.payment_box::before { display: none !important; }
body .grvmd-checkout-wrapper #payment div.payment_box p { margin: 0 0 0.5rem !important; color: var(--clr-text-muted) !important; }

/* Terms */
body .grvmd-checkout-wrapper .woocommerce-terms-and-conditions-wrapper { margin: 0 0 1rem; font-size: 0.82rem; color: var(--clr-text-muted); }
body .grvmd-checkout-wrapper .woocommerce-terms-and-conditions-wrapper a { color: var(--clr-ink); text-decoration: underline; text-underline-offset: 3px; }
body .grvmd-checkout-wrapper .woocommerce-privacy-policy-text p { font-size: 0.78rem; line-height: 1.55; color: var(--clr-text-muted); margin: 0 0 1rem; }

/* Place order */
body .grvmd-checkout-wrapper #payment #place_order {
  width: 100% !important;
  min-height: 56px;
  margin: 0 !important;
  padding: 1rem 1.5rem !important;
  border-radius: var(--radius-full) !important;
  background: var(--clr-ink) !important;
  color: #fff !important;
  font-family: var(--font-accent) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18) !important;
}
body .grvmd-checkout-wrapper #payment #place_order:hover {
  background: #262626 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.24) !important;
}
body .grvmd-checkout-wrapper .place-order { padding: 0 !important; margin: 0 !important; }
.grvmd-place-order-note {
  margin: 0.9rem 0 0;
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  justify-content: center;
  text-align: center;
  font-size: 0.75rem;
  line-height: 1.5;
  color: var(--clr-text-muted);
}
.grvmd-place-order-note i { margin-top: 0.15rem; }

/* Assurance list under the summary */
.grvmd-assurances {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1.25rem;
  font-size: 0.78rem;
  color: var(--clr-text-muted);
}
.grvmd-assurances li { display: inline-flex; align-items: center; gap: 0.5rem; }
.grvmd-assurances i { color: var(--clr-ink); }

/* Loading state while Woo recalculates totals */
body .grvmd-checkout-wrapper .blockUI.blockOverlay { border-radius: var(--radius-md); background: rgba(255, 255, 255, 0.7) !important; }

/* ── Mobile sticky total bar ── */
.grvmd-mobile-bar { display: none; }
@media (max-width: 992px) {
  .grvmd-mobile-bar {
    position: fixed;
    inset: auto 0 0 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(12px);
    border-top: 1px solid var(--clr-line);
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.08);
    transform: translateY(0);
    transition: transform var(--dur-med) var(--ease-out);
  }
  .grvmd-mobile-bar[hidden] { display: none; }
  
  .grvmd-mobile-bar__total { display: grid; line-height: 1.15; }
  .grvmd-mobile-bar__total span { font-family: var(--font-accent); font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--clr-text-muted); }
  .grvmd-mobile-bar__total strong { font-family: var(--font-accent); font-size: 1.1rem; font-variant-numeric: tabular-nums; }
}

/* ============================================================
   MOBILE-FIRST POLISH (phones are ~95% of traffic)
   Loaded last so it wins the cascade.
   ============================================================ */

/* Touch devices: no sticky hover lift / zoom */
@media (hover: none) {
  .product-card:hover { transform: none; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02); }
  .product-card:hover .product-card__image img { transform: none; }
  .product-card:hover .product-card__name { color: var(--clr-text-dark); }
  .collection-card:hover .collection-card__image img { transform: none; }
}

@media (max-width: 768px) {
  :root {
    --nav-height: 64px;
    --space-md: 1.25rem;
    --section-pad: 3.25rem;
  }

  html { -webkit-text-size-adjust: 100%; }
  img, video, iframe, svg { max-width: 100%; }
  .container { padding-inline: 1rem !important; }

  /* ── Header ─────────────────────────────────────────── */
  .grvmd-nav-inner { padding: 0 0.75rem !important; }
  .grvmd-nav-logo { font-size: 1.2rem; letter-spacing: 0.14em; }
  .grvmd-nav-actions { padding-left: 0 !important; gap: 0 !important; }
  .grvmd-nav-actions::before { display: none; }
  .grvmd-nav-icon-btn { width: 40px !important; height: 40px !important; }
  .grvmd-hamburger {
    width: 40px !important;
    height: 40px !important;
    padding: 0 10px !important;
    justify-content: center;
    align-items: stretch;
  }
  .grvmd-mobile-menu {
    padding: 0.5rem 1rem 1.5rem;
    overflow-y: auto;
  }
  .grvmd-mobile-menu a { font-size: 1rem; padding: 1rem 0; min-height: 48px; }

  /* ── Hero ───────────────────────────────────────────── */
  .hero { height: auto; min-height: 100svh; padding-block: calc(var(--nav-height) + 2rem) 3rem; }
  .hero-bg img { object-position: 60% top; }

  .hero-cta-group { flex-direction: column; align-items: stretch; gap: 0.75rem; }
  .hero-cta-group .btn { width: 100%; justify-content: center; }

  /* ── Section headers ────────────────────────────────── */
  .section-header { flex-direction: column; align-items: flex-start !important; text-align: left; margin-bottom: 1.5rem; gap: 0.75rem; }
  .section-header .btn { padding: 0.7rem 1.25rem; font-size: 0.75rem; }
  #new-arrivals.products-section { padding-top: 2.5rem !important; padding-bottom: 0 !important; }

  /* ── Product grid & cards ───────────────────────────── */
  .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0.65rem !important; }
  .product-card { border-radius: 12px; }
  .product-card__info { padding: 0.75rem 0.7rem 0.85rem; }
  .product-card__name { font-size: 0.82rem; line-height: 1.3; margin-bottom: 0.35rem; }
  .product-card__price { font-size: 0.9rem; }
  .product-card__wishlist { top: 0.5rem; right: 0.5rem; width: 34px !important; height: 34px !important; }
  .product-card__media .product-card__quick-add { bottom: 0.5rem; right: 0.5rem; width: 36px !important; height: 36px !important; }
  .shop-products-section { padding: 1rem 0 2.5rem; }

  /* ── Shop / page heroes ─────────────────────────────── */
  .shop-hero,
  .about-hero,
  .contact-hero { padding: calc(var(--nav-height) + 2rem) 0 2rem !important; }
  .shop-hero-title,
  .about-hero-title,
  .contact-hero-title { font-size: clamp(2rem, 9vw, 2.6rem); }

  /* ── Story / collections / stats ────────────────────── */

  .collections-grid { gap: 0.9rem; margin-top: 1.5rem; }
  .collection-card--large,
  .collection-card--medium { min-height: 300px; }
  .collections-column-stack { gap: 1rem; }
  
  .about-story-grid { gap: 1.75rem; }
  .pillar-card { padding: 1.5rem 1.25rem; }

  /* ── Newsletter ─────────────────────────────────────── */

  .newsletter-form { max-width: 100%; width: 100%; flex-direction: column; gap: 0.6rem; }

  /* ── Wishlist drawer ────────────────────────────────── */
  .grvmd-wishlist-drawer-content { max-width: 100%; }

  /* ── Forms: 16px stops iOS zoom-on-focus; 44px tap targets ── */
  input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
  input[type="password"], input[type="search"], select, textarea { font-size: 16px !important; }
  .btn, button[type="submit"], .button { min-height: 44px; }

  /* ── Account / cart / checkout ──────────────────────── */
  .grvmd-woo-block-page article.page { padding-block: 1.25rem; }
  .grvmd-checkout-card,
  .grvmd-checkout-summary-card { padding: 1.25rem !important; border-radius: 14px; }
  .woocommerce-account .site-content,
  .woocommerce-account #content,
  .woocommerce-account #primary,
  .gd-wishlist-section { padding: 1.25rem 0; }
  .woocommerce table.shop_table { display: block; overflow-x: auto; }
  .wc-block-components-sidebar-layout { display: block; }
  .wc-block-cart__sidebar, .wc-block-checkout__sidebar { width: 100% !important; padding-left: 0 !important; }

  /* ── Single product ─────────────────────────────────── */
  .single-product div.product { display: block; }
  .single-product div.product div.images,
  .single-product div.product div.summary { width: 100% !important; float: none !important; }
  .single-product .product_title { font-size: 1.6rem; }
}

@media (max-width: 380px) {
  .grvmd-nav-logo { font-size: 1.05rem; letter-spacing: 0.08em; }
  .grvmd-nav-icon-btn { width: 36px !important; height: 36px !important; }

  .product-card__name { font-size: 0.78rem; }
}

/* ── Product card image slider (arrows on hover) ─────────────── */
.product-card__slides {
  display: flex;
  width: 100%;
  height: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.product-card__slides::-webkit-scrollbar { display: none; }
.product-card__slides img {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  scroll-snap-align: start;
}
.product-card__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 34px;
  height: 34px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: var(--clr-ink, #111);
  font-size: 0.75rem;
  cursor: pointer;
  opacity: 0;
  transition: opacity var(--dur-fast) var(--ease-smooth), background var(--dur-fast) var(--ease-smooth), color var(--dur-fast) var(--ease-smooth);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}
.product-card__arrow--prev { left: 0.5rem; }
.product-card__arrow--next { right: 0.5rem; }
.product-card__media:hover .product-card__arrow,
.product-card__arrow:focus-visible { opacity: 1; }
.product-card__arrow:hover { background: var(--clr-ink, #111); color: #fff; }
.product-card__arrow[hidden] { display: none; }
/* Touch screens have no hover: keep arrows visible, smaller */
@media (hover: none) {
  .product-card__arrow { opacity: 1; width: 30px; height: 30px; }
}

/* ── Size picker (quick add) — frosted bottom sheet ──────────── */
body.grvmd-size-open { overflow: hidden; }
.grvmd-size-modal { position: fixed; inset: 0; z-index: 1000000; display: flex; align-items: flex-end; justify-content: center; box-sizing: border-box; padding: 0 0.75rem calc(0.75rem + env(safe-area-inset-bottom)); }
.grvmd-size-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(10, 10, 10, 0.32);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  opacity: 0; transition: opacity 0.3s ease;
}
.grvmd-size-modal.is-open .grvmd-size-modal__backdrop { opacity: 1; }
.grvmd-size-modal__sheet {
  position: relative;
  width: min(480px, 100%);
  max-height: calc(100dvh - 1.5rem - env(safe-area-inset-bottom)); overflow-y: auto;
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(24px) saturate(1.4); backdrop-filter: blur(24px) saturate(1.4);
  border-radius: 28px;
  padding: 1.5rem;
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.2);
  transform: translateY(calc(100% + 2rem));
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
  overscroll-behavior: contain;
}
.grvmd-size-modal.is-open .grvmd-size-modal__sheet { transform: translateY(0); }
.grvmd-size-modal__product { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.grvmd-size-modal__thumb { flex: none; width: 60px; height: 60px; object-fit: cover; object-position: top; border-radius: 14px; background: #f3f3f3; }
.grvmd-size-modal__meta { flex: 1; min-width: 0; }
.grvmd-size-modal__name {
  margin: 0 0 0.3rem; font-family: var(--font-accent); font-size: 0.86rem; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.35; color: var(--clr-ink, #0a0a0a);
}
.grvmd-size-modal__price { margin: 0; font-size: 0.88rem; letter-spacing: 0.06em; color: #555; }
.grvmd-size-modal__close {
  flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  margin-right: -0.5rem; padding: 0; background: none; border: 0; cursor: pointer; color: #666; transition: color 0.2s ease;
}
.grvmd-size-modal__close:hover { color: var(--clr-ink, #0a0a0a); }
.grvmd-size-modal__eyebrow { margin: 0 0 0.85rem; font-family: var(--font-accent); font-size: 0.68rem; font-weight: 500; letter-spacing: 0.3em; text-transform: uppercase; color: #8a8a8a; }
.grvmd-size-modal__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(58px, 1fr)); gap: 0.6rem; margin-bottom: 1.25rem; }
.grvmd-size-chip {
  min-width: 0; height: 50px; padding: 0; border: 1px solid rgba(0, 0, 0, 0.14); background: rgba(255, 255, 255, 0.55); border-radius: 16px;
  font-family: var(--font-accent); font-weight: 500; font-size: 0.8rem; letter-spacing: 0.1em; color: var(--clr-ink, #0a0a0a); cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.grvmd-size-chip:hover:not(:disabled) { border-color: var(--clr-ink, #0a0a0a); }
.grvmd-size-chip:active:not(:disabled) { transform: scale(0.96); }
.grvmd-size-chip.is-selected { background: var(--clr-ink, #0a0a0a); color: #fff; border-color: var(--clr-ink, #0a0a0a); }
.grvmd-size-chip:disabled { color: rgba(0, 0, 0, 0.28); border-color: rgba(0, 0, 0, 0.07); text-decoration: line-through; cursor: not-allowed; }
.grvmd-size-modal__msg { min-height: 0; margin: -0.5rem 0 0.9rem; font-size: 0.82rem; letter-spacing: 0.02em; color: #b91c1c; }
.grvmd-size-modal__msg:empty { display: none; }
.grvmd-size-modal__actions { display: flex; gap: 0.75rem; }
.grvmd-size-modal__add,
.grvmd-size-modal__buy {
  flex: 1 1 0; min-width: 0; display: flex; align-items: center; justify-content: center; height: 56px; padding: 0 0.5rem;
  border-radius: 999px; cursor: pointer; white-space: nowrap;
  font-family: var(--font-accent); font-size: 0.74rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.15s ease, opacity 0.2s ease;
}
.grvmd-size-modal__add { background: #fff; color: var(--clr-ink, #0a0a0a); border: 1px solid var(--clr-ink, #0a0a0a); }
.grvmd-size-modal__add:hover:not(:disabled) { background: var(--clr-ink, #0a0a0a); color: #fff; }
.grvmd-size-modal__buy { background: var(--clr-ink, #0a0a0a); color: #fff; border: 1px solid var(--clr-ink, #0a0a0a); }
.grvmd-size-modal__buy:hover:not(:disabled) { background: #262626; border-color: #262626; }
.grvmd-size-modal__add:active:not(:disabled),
.grvmd-size-modal__buy:active:not(:disabled) { transform: scale(0.985); }
.grvmd-size-modal__add:disabled,
.grvmd-size-modal__buy:disabled { opacity: 0.6; cursor: default; }
.grvmd-size-modal__add.is-done { background: var(--clr-ink, #0a0a0a); border-color: var(--clr-ink, #0a0a0a); color: #fff; opacity: 1; }
.grvmd-size-modal__sheet.is-nudge .grvmd-size-modal__grid { animation: grvmdNudge 0.4s ease; }
@keyframes grvmdNudge { 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }
@media (min-width: 769px) {
  .grvmd-size-modal { align-items: center; padding: 1rem; }
  .grvmd-size-modal__sheet { border-radius: 28px; padding-top: 1.5rem; transform: translateY(24px); opacity: 0; transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease; }
  .grvmd-size-modal.is-open .grvmd-size-modal__sheet { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .grvmd-size-modal__sheet, .grvmd-size-modal__backdrop { transition: opacity 0.15s ease; }
  .grvmd-size-modal__sheet.is-nudge .grvmd-size-modal__grid { animation: none; }
}

/* ── Wishlist drawer polish ──────────────────────────────────── */
.grvmd-wishlist-drawer-header {
  padding: 1rem 1.25rem;
  gap: 0.75rem;
  background: #fafafa;
}
.grvmd-wishlist-drawer-title-group { min-width: 0; gap: 0.6rem; }
.grvmd-wishlist-drawer-title-group h3 { white-space: nowrap; }
.grvmd-wishlist-drawer-badge { min-width: 24px; text-align: center; line-height: 1.4; }
.grvmd-wishlist-drawer-header-actions { gap: 0.6rem; flex-shrink: 0; }
.grvmd-wishlist-drawer-view-all {
  height: 40px;
  padding: 0 0.9rem;
  border-radius: 10px;
  white-space: nowrap;
}

/* Close button: fixed round shape, no spin on hover */
.grvmd-wishlist-drawer .grvmd-wishlist-close-btn {
  flex: 0 0 40px !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  max-width: 40px !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #000 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  transform: none !important;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
}
.grvmd-wishlist-drawer .grvmd-wishlist-close-btn:hover,
.grvmd-wishlist-drawer .grvmd-wishlist-close-btn:focus-visible {
  background: transparent !important;
  color: #000 !important;
  opacity: 0.6;
  transform: none !important;
}
.grvmd-wishlist-drawer .grvmd-wishlist-close-btn i { transform: none !important; margin: 0; }

/* Cards */
.grvmd-wishlist-drawer-body { padding: 1rem 1.25rem; }
.grvmd-wishlist-card { grid-template-columns: 92px minmax(0, 1fr); align-items: start; }
.grvmd-wishlist-card__media { width: 92px; height: 116px; }
.grvmd-wishlist-card__details { gap: 0.5rem; height: 100%; }
.grvmd-wishlist-card__remove {
  width: 28px; height: 28px; padding: 0; display: grid; place-items: center; border-radius: 50%;
}
.grvmd-wishlist-card__remove { color: rgba(0, 0, 0, 0.55); }
.grvmd-wishlist-card__remove svg { display: block; flex: none; }
.grvmd-wishlist-card__remove:hover { color: #ef4444; }
.grvmd-wishlist-card__price { color: #000; margin: 0; }
.grvmd-wishlist-card__actions { margin-top: auto; }
.grvmd-wishlist-card__add-btn,
.grvmd-wishlist-card__view-btn {
  min-height: 40px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

@media (max-width: 480px) {
  .grvmd-wishlist-drawer-header { padding: 0.85rem 1rem; }
  .grvmd-wishlist-drawer-title-group h3 { font-size: 0.82rem; letter-spacing: 0.05em; }
  .grvmd-wishlist-drawer-view-all { height: 36px; padding: 0 0.65rem; font-size: 0.72rem; }
  .grvmd-wishlist-drawer .grvmd-wishlist-close-btn {
    flex-basis: 36px !important; width: 36px !important; height: 36px !important;
    min-width: 36px !important; min-height: 36px !important; max-width: 36px !important;
  }
  .grvmd-wishlist-drawer-body { padding: 0.85rem 1rem; }
  .grvmd-wishlist-card { grid-template-columns: 80px minmax(0, 1fr); gap: 0.75rem; }
  .grvmd-wishlist-card__media { width: 80px; height: 104px; }
}

/* Mobile: floating sheet (equal 12px gap on all sides, rounded), matching the mini-cart drawer */
@media (max-width: 768px) {
  .grvmd-wishlist-drawer .grvmd-wishlist-drawer-content,
  body.admin-bar .grvmd-wishlist-drawer .grvmd-wishlist-drawer-content {
    inset: 12px 12px 12px auto;
    width: calc(100% - 24px);
    max-width: 430px;
    height: auto;
    background: #f1f1f1;
    border: 0;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
    transform: translateX(calc(100% + 24px));
    transition: transform 0.5s var(--ease-out);
  }
  .grvmd-wishlist-drawer.is-open .grvmd-wishlist-drawer-content,
  body.admin-bar .grvmd-wishlist-drawer.is-open .grvmd-wishlist-drawer-content { transform: none; }
  .grvmd-wishlist-drawer-header { background: transparent; }
  .grvmd-wishlist-drawer-body { min-height: 0; }
}
/* iOS Safari: a -webkit-backdrop-filter layer can paint OVER a sibling that is sliding in with a
   transform, leaving only a blurred screen and no panel. Keep the stacking explicit and give the
   panel its own compositing layer; on touch screens use a plain dim instead of the blur. */
.grvmd-wishlist-drawer { isolation: isolate; }
.grvmd-wishlist-drawer-backdrop { z-index: 1; }
.grvmd-wishlist-drawer .grvmd-wishlist-drawer-content {
  z-index: 2;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform;
}
@media (hover: none), (pointer: coarse), (max-width: 768px) {
  .grvmd-wishlist-drawer-backdrop {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: rgba(0, 0, 0, 0.5);
  }
}


/* ── Wishlist cards: same language as the mini-cart items ────────
   White rounded card, tall 3:4 image, uppercase name, bold price, and a
   full-width black "Add to Cart" beside a quiet "View". */
.grvmd-wishlist-drawer-body { padding: 1rem; gap: 0.75rem; background: #f1f1f1; }
.grvmd-wishlist-card {
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 1rem;
  padding: 0.85rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 18px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.grvmd-wishlist-card:hover { background: #fff; border-color: rgba(0, 0, 0, 0.1); }
.grvmd-wishlist-card__media {
  width: 104px;
  height: 138px;
  border-radius: 12px;
  background: #f4f4f4;
}
.grvmd-wishlist-card__details { gap: 0.35rem; }
.grvmd-wishlist-card__header { gap: 0.5rem; align-items: flex-start; }
.grvmd-wishlist-card .grvmd-wishlist-card__title {
  font-family: var(--font-accent);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.3;
  color: var(--clr-ink);
}
.grvmd-wishlist-card .grvmd-wishlist-card__title a:hover { color: var(--clr-ink); opacity: 0.7; }
.grvmd-wishlist-card .grvmd-wishlist-card__remove {
  width: 28px; height: 28px; margin: -4px -6px 0 0;
  color: rgba(0, 0, 0, 0.4);
  background: transparent;
}
.grvmd-wishlist-card .grvmd-wishlist-card__remove:hover { color: #ef4444; background: transparent; }
.grvmd-wishlist-card .grvmd-wishlist-card__price {
  font-family: var(--font-accent);
  font-size: 0.95rem;
  font-weight: 500; /* same as the cart drawer price */
  color: var(--clr-ink);
  margin: 0;
}
.grvmd-wishlist-card .grvmd-wishlist-card__actions { margin-top: auto; padding-top: 0.5rem; gap: 0.5rem; }
/* Wishlist drawer card: name + price centred in the space above the buttons (like the cart
   drawer, where the name/price block is centred against the thumbnail). The trash icon stays
   pinned to the top-right corner. */
#wishlist-drawer .grvmd-wishlist-card__details { position: relative; align-self: stretch; gap: 0; }
#wishlist-drawer .grvmd-wishlist-card__header { margin-top: auto; padding-right: 30px; }
#wishlist-drawer .grvmd-wishlist-card .grvmd-wishlist-card__remove { position: absolute; top: 0; right: 0; margin: -4px -6px 0 0; }
#wishlist-drawer .grvmd-wishlist-card .grvmd-wishlist-card__price { font-weight: 400; margin-top: 0.35rem; }
#wishlist-drawer .grvmd-wishlist-card .grvmd-wishlist-card__actions { margin-top: auto; padding-top: 0; }

/* Small phones: same name/price sizes as the cart drawer (.grvmd-mc__name / __price) */
@media (max-width: 420px) {
  .grvmd-wishlist-card .grvmd-wishlist-card__title { font-size: 0.8rem; }
  .grvmd-wishlist-card .grvmd-wishlist-card__price { font-size: 0.9rem; }
}
.grvmd-wishlist-card .grvmd-wishlist-card__add-btn,
.grvmd-wishlist-card .grvmd-wishlist-card__view-btn {
  min-height: 42px;
  padding: 0 0.9rem !important;
  border-radius: 12px !important;
  font-family: var(--font-accent) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  line-height: 1;
}
/* The global ".product-card__quick-add { opacity: 0 }" hover-reveal rule
   would hide this button — it must always be visible here. */
.grvmd-wishlist-card .grvmd-wishlist-card__add-btn {
  opacity: 1 !important;
  flex: 1 1 auto;
  min-width: 0;
  background: var(--clr-ink) !important;
  color: #fff !important;
}
.grvmd-wishlist-card .grvmd-wishlist-card__add-btn:hover { background: #222 !important; }
.grvmd-wishlist-card .grvmd-wishlist-card__view-btn {
  flex: none;
  background: #fff !important;
  color: var(--clr-ink) !important;
  border: 1px solid rgba(0, 0, 0, 0.14) !important;
}
.grvmd-wishlist-card .grvmd-wishlist-card__view-btn:hover { background: rgba(0, 0, 0, 0.05) !important; }
@media (max-width: 380px) {
  .grvmd-wishlist-card { grid-template-columns: 88px minmax(0, 1fr); gap: 0.75rem; padding: 0.7rem; }
  .grvmd-wishlist-card__media { width: 88px; height: 118px; }
  .grvmd-wishlist-card .grvmd-wishlist-card__add-btn,
  .grvmd-wishlist-card .grvmd-wishlist-card__view-btn { padding: 0 0.7rem !important; letter-spacing: 0.08em !important; }
}

/* ── Wishlist full page ──────────────────────────────────────── */
.wishlist-hero {
  padding: calc(var(--nav-height) + 3.5rem) 0 3rem;
  background: var(--clr-surface);
  border-bottom: 1px solid var(--clr-border);
  text-align: center;
}
.wishlist-hero__inner { max-width: 620px; margin: 0 auto; }
.wishlist-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 6vw, 3.6rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: var(--clr-ink);
  margin: 0.5rem 0 1rem;
}
.wishlist-hero__desc { color: var(--clr-text-muted); font-size: 0.98rem; line-height: 1.7; margin: 0; }
.wishlist-grid-section { padding: 3rem 0 5rem; background: var(--clr-bg); min-height: 40vh; }

.wishlist-empty {
  max-width: 440px;
  margin: 1rem auto;
  padding: 3rem 1.5rem;
  text-align: center;
  border: 1px dashed rgba(0, 0, 0, 0.15);
  border-radius: 20px;
  background: var(--clr-surface);
}
.wishlist-empty__icon {
  display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 1.25rem;
  border-radius: 50%; background: #fff; border: 1px solid rgba(0, 0, 0, 0.08);
  font-size: 1.9rem; color: rgba(0, 0, 0, 0.35);
}
.wishlist-empty__title {
  font-family: var(--font-accent); font-size: 1.1rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--clr-ink); margin: 0 0 0.6rem;
}
.wishlist-empty__text { color: var(--clr-text-muted); line-height: 1.6; margin: 0 auto 1.75rem; }

@media (max-width: 768px) {
  .wishlist-hero { padding: calc(var(--nav-height) + 2rem) 0 2rem; }
  .wishlist-hero__desc { font-size: 0.92rem; }
  .wishlist-grid-section { padding: 1.5rem 0 3rem; }
  .wishlist-empty { padding: 2.25rem 1.25rem; }
  .grvmd-wishlist-drawer-view-all { display: none !important; }
}

/* ============================================================
   ORDER PAGES — premium mobile layout
   (order received / thank you, view order, account orders list)
   ============================================================ */
@media (max-width: 768px) {

  /* Wrapper + hero */
  .grvmd-thankyou-wrapper { padding: calc(var(--nav-height) + 1.5rem) 1rem 3rem !important; }
  .grvmd-thankyou-hero { margin-bottom: 1.75rem; }
  .grvmd-thankyou-icon { width: 64px; height: 64px; font-size: 1.9rem; margin-bottom: 1rem; }
  .grvmd-thankyou-subtitle { font-size: 0.7rem; letter-spacing: 0.22em; }
  .grvmd-thankyou-title {
    font-size: clamp(1.55rem, 7.4vw, 2rem);
    line-height: 1.12;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
    text-wrap: balance;
  }
  .grvmd-thankyou-desc { font-size: 0.92rem; line-height: 1.6; overflow-wrap: anywhere; }
  .grvmd-thankyou-hero > div[style*="flex"] { flex-direction: column; align-items: stretch; }
  .grvmd-thankyou-hero .btn { width: 100%; justify-content: center; }

  /* Overview: compact 2-column tiles, Total + long values span full row */
  .grvmd-thankyou-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.6rem !important;
    margin-bottom: 1.5rem !important;
  }
  .grvmd-overview-card {
    padding: 0.85rem 0.9rem !important;
    text-align: left !important;
    align-items: flex-start;
    border-radius: 12px !important;
    background: #fff !important;
    min-width: 0;
  }
  .grvmd-overview-card .label { font-size: 0.62rem; letter-spacing: 0.12em; color: rgba(0, 0, 0, 0.5); }
  .grvmd-overview-card .value { font-size: 0.9rem; line-height: 1.3; overflow-wrap: anywhere; }
  .grvmd-overview-card.highlight { grid-column: 1 / -1; background: #0a0a0a !important; border-color: #0a0a0a !important; flex-direction: row !important; justify-content: space-between; align-items: center; }
  .grvmd-overview-card.highlight .label { color: rgba(255, 255, 255, 0.7); }
  .grvmd-overview-card.highlight .value,
  .grvmd-overview-card.highlight .value .woocommerce-Price-amount { color: #fff !important; font-size: 1.2rem !important; }

  /* Order details card */
  .grvmd-order-details-card,
  .woocommerce-order-details,
  .woocommerce-customer-details {
    padding: 1.1rem 1rem !important;
    border-radius: 16px !important;
    margin-bottom: 1.25rem !important;
  }
  .grvmd-card-title,
  .woocommerce-order-details__title {
    font-size: 0.9rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase;
    margin-bottom: 0.5rem !important;
    padding-bottom: 0.85rem !important;
  }

  /* Table: keep real table layout (undo the global scroll-block rule) */
  .woocommerce table.shop_table.order_details,
  table.woocommerce-table--order-details {
    display: table !important;
    width: 100% !important;
    overflow: visible !important;
    table-layout: fixed;
  }
  table.woocommerce-table--order-details thead { display: none; }
  table.woocommerce-table--order-details tbody td,
  table.woocommerce-table--order-details tfoot th,
  table.woocommerce-table--order-details tfoot td { padding: 0.9rem 0 !important; vertical-align: middle; }
  table.woocommerce-table--order-details td.product-name { width: 68%; padding-right: 0.75rem !important; }
  table.woocommerce-table--order-details td.product-total { width: 32%; font-size: 0.92rem !important; white-space: nowrap; color: var(--clr-ink) !important; }
  .grvmd-thankyou-item { gap: 0.75rem; align-items: flex-start; }
  .grvmd-thankyou-item__thumb { width: 64px !important; height: 80px !important; border-radius: 10px; }
  .grvmd-thankyou-item__title,
  .grvmd-thankyou-item__title a { font-size: 0.88rem !important; line-height: 1.3; }
  .grvmd-thankyou-item__info .wc-item-meta { margin: 0.2rem 0 0; padding: 0; list-style: none; font-size: 0.75rem; color: var(--clr-text-muted); }
  .grvmd-thankyou-item__info .wc-item-meta p { display: inline; margin: 0; }
  table.woocommerce-table--order-details tfoot th { font-size: 0.7rem !important; letter-spacing: 0.1em; width: 45%; }
  table.woocommerce-table--order-details tfoot td { font-size: 0.9rem !important; }
  table.woocommerce-table--order-details tfoot tr:nth-last-child(2) th,
  table.woocommerce-table--order-details tfoot tr:nth-last-child(2) td { font-size: 1rem !important; color: var(--clr-ink) !important; }

  /* Addresses */
  .grvmd-address-grid { grid-template-columns: 1fr !important; gap: 0.85rem; }
  .grvmd-address-card { padding: 1.1rem 1rem !important; border-radius: 14px !important; background: #fff !important; }
  .grvmd-address-card__title { font-size: 0.8rem !important; margin-bottom: 0.7rem !important; }
  .grvmd-address-card address { font-size: 0.88rem !important; overflow-wrap: anywhere; }

  /* Account → Orders list: stacked cards instead of a cramped table */
  .woocommerce-account table.woocommerce-orders-table,
  .woocommerce-account table.account-orders-table { display: block !important; overflow: visible !important; border: 0 !important; }
  .woocommerce-account .woocommerce-orders-table thead { display: none; }
  .woocommerce-account .woocommerce-orders-table tbody { display: grid; gap: 0.85rem; }
  .woocommerce-account .woocommerce-orders-table tr {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0.15rem 1rem;
    padding: 1rem; background: #fff; border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 14px;
  }
  .woocommerce-account .woocommerce-orders-table td {
    display: flex; flex-direction: column; gap: 0.15rem; padding: 0.35rem 0 !important; border: 0 !important; font-size: 0.9rem; text-align: left !important;
  }
  .woocommerce-account .woocommerce-orders-table td::before {
    content: attr(data-title); float: none; font-family: var(--font-accent); font-size: 0.62rem; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase; color: var(--clr-text-muted);
  }
  .woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions {
    grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: 0.5rem; padding-top: 0.6rem !important; margin-top: 0.4rem; border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
  }
  .woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions::before { display: none; }
  .woocommerce-account .woocommerce-orders-table .button { flex: 1 1 auto; text-align: center; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}

@media (max-width: 380px) {
  .grvmd-thankyou-overview { grid-template-columns: 1fr !important; }
  table.woocommerce-table--order-details td.product-name { width: 62%; }
}

/* ============================================================
   PRODUCT CARD — "editorial" style (borderless image, name + price below)
   EXPERIMENT: to revert to the boxed cards, delete this whole block.
   ============================================================ */
.product-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}
.product-card:hover { transform: none; box-shadow: none; }
.product-card__media { border-radius: 18px; }
.product-card__info {
  background: transparent;
  padding: 0.7rem 0.1rem 0.25rem;
  gap: 0.15rem;
}
.product-card__name {
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--clr-ink);
}
.product-card:hover .product-card__name { color: var(--clr-ink); }
.product-card__meta { justify-content: flex-start; margin-top: 0; }
.product-card__price {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 400;
  color: var(--clr-ink);
}
@media (max-width: 768px) {
  .product-card { border-radius: 0; }
  .product-card__media { border-radius: 14px; }
  .product-card__info { padding: 0.55rem 0.1rem 0.2rem; }
  .product-card__name { font-size: 0.85rem; margin-bottom: 0; }
  .product-card__price { font-size: 0.78rem; }
}
/* END product card experiment */

/* ============================================================
   ORDER VIEW — light-theme cleanup (overrides leftover dark-theme
   rules in layout.css: grey th slabs, 50% label column, heavy shadow)
   ============================================================ */
.woocommerce-order-details.grvmd-order-details-card,
.woocommerce-customer-details {
  background: #fff !important;
  border-radius: 20px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06) !important;
}

.woocommerce-order-details table.woocommerce-table--order-details.shop_table {
  table-layout: fixed;
  width: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow: visible !important;
}

.woocommerce-order-details table.woocommerce-table--order-details.shop_table th,
.woocommerce-order-details table.woocommerce-table--order-details.shop_table td {
  background: transparent !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important;
  vertical-align: middle;
}

.woocommerce-order-details table.woocommerce-table--order-details.shop_table thead th {
  color: #6b6b6b !important;
  font-size: 0.72rem !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.14) !important;
  padding: 0.75rem 0.5rem !important;
}
.woocommerce-order-details table.woocommerce-table--order-details.shop_table thead th.product-name { width: 68%; }
.woocommerce-order-details table.woocommerce-table--order-details.shop_table thead th.product-total { text-align: right !important; }

.woocommerce-order-details table.woocommerce-table--order-details.shop_table tbody td.product-total,
.woocommerce-order-details table.woocommerce-table--order-details.shop_table tfoot td {
  text-align: right !important;
  color: var(--clr-ink, #111) !important;
}
.woocommerce-order-details table.woocommerce-table--order-details.shop_table tbody td.product-total { white-space: nowrap; }
.woocommerce-order-details table.woocommerce-table--order-details.shop_table tfoot td { overflow-wrap: anywhere; }

.woocommerce-order-details table.woocommerce-table--order-details.shop_table tfoot th {
  color: #6b6b6b !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.1em;
  text-align: left !important;
  padding: 0.9rem 0.5rem !important;
}
.woocommerce-order-details table.woocommerce-table--order-details.shop_table tfoot tr:nth-last-child(2) th,
.woocommerce-order-details table.woocommerce-table--order-details.shop_table tfoot tr:nth-last-child(2) td {
  color: var(--clr-ink, #111) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
}

/* "Order #815 was placed on … and is currently …" sentence */
.woocommerce-account .woocommerce-MyAccount-content p mark.order-number,
.woocommerce-account .woocommerce-MyAccount-content p mark.order-date {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  color: var(--clr-ink, #111) !important;
  font-weight: 700 !important;
}
.woocommerce-account .woocommerce-MyAccount-content p mark.order-status {
  color: var(--clr-ink, #111) !important;
  margin: 0 0.15rem !important;
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05) !important;
  line-height: 1.6 !important;
}

/* ============================================================
   ORDER VIEW — Billing / Shipping address cards
   Fixes: duplicate phone/email icons (template <i> + layout.css ::before),
   box-inside-box-inside-box, loose line spacing.
   ============================================================ */
/* Two cards stand on their own — drop the outer wrapper card */
.woocommerce-customer-details.grvmd-customer-details-section {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.grvmd-address-grid { gap: 1.25rem; align-items: stretch; }

.grvmd-address-card {
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  padding: 1.5rem !important;
}

/* Flat address — no inner box */
.grvmd-address-card address {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  line-height: 1.65 !important;
  font-size: 0.95rem !important;
  color: var(--clr-ink, #111) !important;
}

/* Phone / email rows: one icon (the template's), aligned, tight */
.grvmd-address-card .woocommerce-customer-details--phone::before,
.grvmd-address-card .woocommerce-customer-details--email::before { content: none !important; }

.grvmd-address-card .woocommerce-customer-details--phone,
.grvmd-address-card .woocommerce-customer-details--email {
  margin: 0.55rem 0 0 !important;
  gap: 0.6rem !important;
  color: var(--clr-ink, #111) !important;
  font-size: 0.92rem !important;
  overflow-wrap: anywhere;
}
.grvmd-address-card .woocommerce-customer-details--phone:first-of-type { margin-top: 1rem !important; }
.grvmd-address-card address p i { width: 1rem; text-align: center; color: #555; flex-shrink: 0; }

/* Address cards: phone/email rows flush with the address text */
.grvmd-address-card address .woocommerce-customer-details--phone,
.grvmd-address-card address .woocommerce-customer-details--email {
  margin-left: 0 !important;
  padding: 0 !important;
  text-indent: 0 !important;
  justify-content: flex-start !important;
  width: 100%;
}
.grvmd-address-card address .woocommerce-customer-details--phone i,
.grvmd-address-card address .woocommerce-customer-details--email i {
  margin: 0 !important;
  width: 1rem;
  text-align: left;
}

/* ============================================================
   PRODUCT REVIEWS — summary, card stars, form polish
   ============================================================ */
.product-card__rating {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0.15rem 0 0.4rem;
}
.product-card__rating .star-rating {
  color: var(--clr-gold, #c9a227) !important;
  font-size: 0.72rem !important;
  margin: 0 !important;
  float: none !important;
}
.product-card__rating-count { font-size: 0.72rem; color: var(--clr-text-muted, #777); }

/* Summary above the reviews list */
.grvmd-rating-summary {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2.5rem;
  align-items: center;
  max-width: 560px;
  margin: 0 0 2.5rem;
  padding: 1.5rem 1.75rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 18px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}
.grvmd-rating-summary__score { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; text-align: center; }
.grvmd-rating-summary__avg { font-family: var(--font-display, inherit); font-size: 3rem; font-weight: 700; line-height: 1; color: var(--clr-ink, #111); }
.grvmd-rating-summary__score .star-rating { color: var(--clr-gold, #c9a227) !important; margin: 0 !important; float: none !important; }
.grvmd-rating-summary__count { font-size: 0.75rem; color: var(--clr-text-muted, #777); }
.grvmd-rating-summary__bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.grvmd-rating-summary__bars li { display: grid; grid-template-columns: 2.2rem 1fr 1.6rem; align-items: center; gap: 0.6rem; font-size: 0.78rem; }
.grvmd-rating-summary__label { display: inline-flex; align-items: center; gap: 0.2rem; color: #444; }
.grvmd-rating-summary__label i { color: var(--clr-gold, #c9a227); font-size: 0.65rem; }
.grvmd-rating-summary__track { height: 6px; background: rgba(0, 0, 0, 0.08); border-radius: 99px; overflow: hidden; }
.grvmd-rating-summary__track span { display: block; height: 100%; background: var(--clr-ink, #111); border-radius: 99px; }
.grvmd-rating-summary__n { text-align: right; color: #666; font-variant-numeric: tabular-nums; }

@media (max-width: 520px) {
  .grvmd-rating-summary { grid-template-columns: 1fr; gap: 1.25rem; padding: 1.25rem; }
}

/* Review form: drop the leftover dark-theme shadow */
#review_form_wrapper {
  background: #fff !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06) !important;
  border-radius: 18px !important;
}
.commentlist li.review { background: #fff !important; }
.commentlist li.review .woocommerce-review__verified { font-size: 0.7rem; color: #2f7d4f; }

/* ============================================================
   MY ACCOUNT (logged out) — login / register
   - one centered column (the logged-in sidebar layout was leaking in)
   - single clean card instead of card-in-card with dark-theme shadows
   - readable notices, full-width buttons
   ============================================================ */
body.woocommerce-account:not(.logged-in) .woocommerce {
  display: block !important;
  max-width: 520px !important;
  margin: 0 auto !important;
  padding: 0 1rem !important;
}

/* Notices: sentence case, sit above the card at the same width */
body.woocommerce-account:not(.logged-in) .woocommerce-notices-wrapper { margin: 0 0 1.25rem; }
body.woocommerce-account:not(.logged-in) .woocommerce-error,
body.woocommerce-account:not(.logged-in) .woocommerce-message,
body.woocommerce-account:not(.logged-in) .woocommerce-info {
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-left: 4px solid #ef4444 !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05) !important;
  max-width: none !important;
  width: 100%;
  margin: 0 0 1.25rem !important;
  padding: 1rem 1.25rem !important;
  align-items: flex-start !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  line-height: 1.5 !important;
  list-style: none !important;
}
body.woocommerce-account:not(.logged-in) .woocommerce-message { border-left-color: #10b981 !important; }
body.woocommerce-account:not(.logged-in) .woocommerce-info { border-left-color: var(--clr-ink, #111) !important; }
body.woocommerce-account:not(.logged-in) .woocommerce-error li { margin: 0 !important; }
body.woocommerce-account:not(.logged-in) .woocommerce-error::before,
body.woocommerce-account:not(.logged-in) .woocommerce-message::before,
body.woocommerce-account:not(.logged-in) .woocommerce-info::before { margin-top: 0.15rem !important; flex-shrink: 0; }

/* Tabs span the full column */
body.woocommerce-account:not(.logged-in) .grvmd-auth-tabs { width: 100%; margin-bottom: 1.25rem; }
body.woocommerce-account:not(.logged-in) .grvmd-auth-tabs .auth-tab { flex: 1; }

/* Wrapper columns are transparent; the form is the only card */
body.woocommerce-account:not(.logged-in) #customer_login,
body.woocommerce-account:not(.logged-in) #customer_login .u-column1,
body.woocommerce-account:not(.logged-in) #customer_login .u-column2 {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: none !important;
}
body.woocommerce-account:not(.logged-in) #customer_login { max-width: none !important; }

body.woocommerce-account:not(.logged-in) form.login,
body.woocommerce-account:not(.logged-in) form.register,
body.woocommerce-account:not(.logged-in) form.lost_reset_password {
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-radius: 20px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06) !important;
  padding: 2rem !important;
  margin: 0 !important;
  max-width: none !important;
}

body.woocommerce-account:not(.logged-in) form.login .form-row,
body.woocommerce-account:not(.logged-in) form.register .form-row { margin-bottom: 1.1rem !important; }

/* Helper copy under the register form */
body.woocommerce-account:not(.logged-in) form.register p:not(.form-row),
body.woocommerce-account:not(.logged-in) .woocommerce-privacy-policy-text p {
  font-size: 0.85rem !important;
  line-height: 1.6 !important;
  color: #555 !important;
  margin: 0 0 0.9rem !important;
}

/* Full-width pill buttons */
body.woocommerce-account:not(.logged-in) form.login .woocommerce-form-login__submit,
body.woocommerce-account:not(.logged-in) form.register .woocommerce-form-register__submit {
  width: 100% !important;
  height: 52px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  margin-top: 0.5rem !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-LostPassword { text-align: center; margin: 1.1rem 0 0 !important; }

@media (max-width: 600px) {
  body.woocommerce-account:not(.logged-in) .woocommerce { padding: 0 0.75rem !important; }
  body.woocommerce-account:not(.logged-in) form.login,
  body.woocommerce-account:not(.logged-in) form.register,
  body.woocommerce-account:not(.logged-in) form.lost_reset_password { padding: 1.4rem 1.15rem !important; border-radius: 16px !important; }
  body.woocommerce-account:not(.logged-in) .woocommerce-error,
  body.woocommerce-account:not(.logged-in) .woocommerce-message,
  body.woocommerce-account:not(.logged-in) .woocommerce-info { font-size: 0.86rem !important; padding: 0.9rem 1rem !important; }
}

/* ============================================================
   PRODUCT REVIEW FORM — clean single card, visible button, star colours
   ============================================================ */
/* No reviews yet: one column, message then form (two columns only when reviews exist) */
#reviews:not(:has(.commentlist)) {
  grid-template-columns: minmax(0, 640px) !important;
  gap: 1.25rem !important;
  justify-content: start;
}
#reviews .woocommerce-noreviews { text-align: left !important; margin: 0 !important; }

/* One card: strip the extra bordered box inside the wrapper */
#review_form_wrapper { padding: 2rem !important; }
#review_form_wrapper #review_form,
#review_form_wrapper #respond,
#review_form_wrapper .comment-respond {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}

#review_form_wrapper #reply-title { margin-bottom: 1.25rem !important; }

/* Stars: every star uses the brand colour; filled vs outline glyph shows the value */
.comment-form-rating p.stars a,
.comment-form-rating .stars a { color: var(--clr-gold, #111) !important; }
.comment-form-rating p.stars a::before { color: inherit; }

/* Submit button: global input rule forced dark text-fill, so the label vanished */
#review_form #respond .form-submit input#submit,
#review_form .form-submit .submit {
  background: var(--clr-ink, #111) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  border: 0 !important;
  border-radius: 9999px !important;
  height: 50px;
  padding: 0 2.25rem !important;
  font-family: var(--font-accent, inherit) !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
#review_form .form-submit .submit:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18); }
#review_form .form-submit { margin: 1.25rem 0 0 !important; }

@media (max-width: 600px) {
  #review_form_wrapper { padding: 1.25rem 1.1rem !important; border-radius: 16px !important; }
  #review_form .form-submit .submit { width: 100%; }
  .comment-form-rating { flex-wrap: wrap; gap: 0.5rem !important; }
}

/* Hero "Shop Collection": text-only, white, no background */
.hero .btn-primary#hero-shop-btn,
.hero .hero-cta-group .btn-primary {
  background: transparent !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.hero .hero-cta-group .btn-primary::after { display: none !important; }
.hero .hero-cta-group .btn-primary:hover {
  background: transparent !important;
  box-shadow: none !important;
  transform: none;
  opacity: 0.85;
}
.hero .hero-cta-group .btn-primary i { color: #fff; }

/* ============================================================
   PRODUCT CARD — heart without white backing; "+" beside the name
   ============================================================ */
/* Heart: no white circle, just the icon (white with a soft shadow so it reads on any photo) */
.product-card__wishlist,
.product-card__wishlist:hover,
.product-card__wishlist.is-active,
.product-card__wishlist.is-active:hover {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
.product-card__wishlist { color: #000 !important; }
.product-card__wishlist:hover { color: #000 !important; }
.product-card__wishlist-icon { display: block; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3)); width: 1.02rem; height: 1.02rem; fill: none; transition: fill 0.15s ease; }
.product-card__wishlist.is-active,
.product-card__wishlist.is-active .product-card__wishlist-icon { color: #ef4444 !important; }
.product-card__wishlist.is-active .product-card__wishlist-icon { fill: currentColor; }

/* Name row: title only now (quick add lives on the image, mirroring the heart) */
.product-card__title-row { display: flex; }
.product-card__title-row .product-card__name { flex: 1; min-width: 0; }

/* Bag icon: same treatment as the heart — no circle backing, just the icon,
   mirrored bottom-right the way the heart sits top-right. */
.product-card__media .product-card__quick-add,
.product-card__media .product-card__quick-add:hover {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #000 !important;
}
.product-card__quick-add-icon { display: block; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3)); width: 1.2rem; height: 1.2rem; }

/* Card image arrows: no white circle — just a white chevron with a soft shadow */
.product-card__arrow,
.product-card__arrow:hover {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #fff !important;
}
.product-card__arrow i { font-size: 1.05rem; filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.55)); transition: transform 0.2s ease; }
.product-card__arrow--prev:hover i { transform: translateX(-2px); }
.product-card__arrow--next:hover i { transform: translateX(2px); }

/* Heart + bag + image arrows appear only while hovering the card (mouse devices).
   Touch screens have no hover, so they stay visible there. */
@media (hover: hover) and (pointer: fine) {
  .product-card__wishlist:not(.is-active),
  .product-card__quick-add,
  .product-card__arrow {
    opacity: 0;
    transition: opacity 0.25s ease;
  }
  .product-card:hover .product-card__wishlist,
  .product-card:hover .product-card__quick-add,
  .product-card:hover .product-card__arrow,
  .product-card__wishlist:focus-visible,
  .product-card__quick-add:focus-visible,
  .product-card__arrow:focus-visible {
    opacity: 1;
  }
}

/* Heart + bag + image arrows: hidden until the card is hovered / touched — at every screen size.
   (Overrides the earlier "keep visible on touch" rule.) */
.product-card__wishlist:not(.is-active),
.product-card__quick-add,
.product-card__arrow {
  opacity: 0;
  transition: opacity 0.25s ease;
}
.product-card:hover .product-card__wishlist,
.product-card:hover .product-card__quick-add,
.product-card:hover .product-card__arrow,
.product-card:focus-within .product-card__wishlist,
.product-card:focus-within .product-card__quick-add,
.product-card:focus-within .product-card__arrow,
.product-card:active .product-card__wishlist,
.product-card:active .product-card__quick-add,
.product-card:active .product-card__arrow {
  opacity: 1;
}

/* Pointer-driven hover (set by main.js) — works on mobile widths and touch too */
.product-card.is-hovered .product-card__wishlist,
.product-card.is-hovered .product-card__quick-add,
.product-card.is-hovered .product-card__arrow { opacity: 1; }

/* ============================================================
   FOOTER — black, wordmark, "Stay connected", 3 link columns
   Type: system font stack (SF Pro / Helvetica Neue)
   ============================================================ */
.gf {
  --gf-serif: var(--font-display);
  --gf-sans: var(--font-body);
  background: #0a0a0a;
  color: #fff;
  padding: 5.5rem 1.5rem 2.25rem;
  margin-top: 4rem;
}
.gf__inner { max-width: 1040px; margin: 0 auto; }

.gf__logo {
  display: block;
  text-align: center;
  font-family: var(--gf-serif);
  font-size: clamp(2.4rem, 6vw, 3.6rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: #fff;
  text-decoration: none;
}
.gf__logo::after {
  content: "";
  display: block;
  width: 44px;
  height: 1px;
  margin: 1.75rem auto 0;
  background: rgba(255, 255, 255, 0.35);
}

/* Stay connected */
.gf__news { max-width: 520px; margin: 3rem auto 4rem; text-align: center; }
.gf .gf__news-title {
  font-family: var(--gf-serif);
  font-size: clamp(1.5rem, 4vw, 1.9rem);
  font-style: normal;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-transform: none;
  color: #fff;
  margin: 0 0 1.4rem;
}
.gf__form { display: flex; align-items: center; gap: 0.75rem; }
.gf__field { position: relative; flex: 1; min-width: 0; }

.gf .gf__field input.gf__input[type="email"] {
  display: block;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 56px !important;
  min-height: 56px !important;
  line-height: 56px !important;
  margin: 0;
  padding: 0 3.1rem 0 1.5rem !important;
  background: transparent !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  caret-color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-family: var(--gf-sans);
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  text-align: left;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.25s ease, background 0.25s ease;
}
.gf .gf__field input.gf__input[type="email"]::placeholder { color: rgba(255, 255, 255, 0.5); -webkit-text-fill-color: rgba(255, 255, 255, 0.5); }
.gf .gf__field input.gf__input[type="email"]:hover { border-color: rgba(255, 255, 255, 0.5) !important; }
.gf .gf__field input.gf__input[type="email"]:focus { border-color: #fff !important; background: rgba(255, 255, 255, 0.04) !important; }
.gf .gf__field input.gf__input[type="email"]:-webkit-autofill {
  -webkit-text-fill-color: #fff !important;
  box-shadow: 0 0 0 1000px #0a0a0a inset !important;
}
.gf__field-icon {
  position: absolute; right: 1.3rem; top: 50%; transform: translateY(-50%);
  color: rgba(255, 255, 255, 0.55); pointer-events: none; font-size: 0.95rem;
}
.gf__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.gf .gf__submit {
  flex-shrink: 0;
  width: 56px; height: 56px; min-height: 56px;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0;
  background: #fff;
  color: #0a0a0a;
  border: 0;
  border-radius: 50%;
  font-size: 1rem;
  cursor: pointer;
  transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}
.gf .gf__submit:hover:not(:disabled) { transform: translateX(3px); background: #e9e9e9; }
.gf .gf__submit:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.gf .gf__submit:disabled { opacity: 0.5; cursor: progress; }
.gf__msg { margin: 0.8rem 0 0; font-family: var(--gf-sans); font-size: 0.82rem; color: #ff9b9b; }
.gf__msg:empty { display: none; }

/* Columns */
.gf__cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.5rem;
  max-width: 900px;
  margin: 0 auto;
  padding-top: 3rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.gf__col { display: flex; flex-direction: column; align-items: flex-start; gap: 0.85rem; }
.gf .gf__col-title {
  font-family: var(--gf-sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 0.55rem;
}
.gf__col a {
  font-family: var(--gf-sans);
  font-size: 0.92rem;
  font-weight: 300;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.68);
  text-decoration: none;
  background-image: linear-gradient(#fff, #fff);
  background-size: 0 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  padding-bottom: 2px;
  transition: color 0.25s ease, background-size 0.3s ease;
}
.gf__col a:hover, .gf__col a:focus-visible { color: #fff; background-size: 100% 1px; }

.gf__copy {
  margin: 4rem 0 0;
  text-align: center;
  font-family: var(--gf-sans);
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

@media (max-width: 700px) {
  .gf { padding: 3.5rem 1.25rem 1.75rem; margin-top: 3rem; }
  .gf__logo { letter-spacing: 0.24em; text-indent: 0.24em; }
  .gf__logo::after { margin-top: 1.4rem; }
  .gf__news { margin: 2.25rem auto 3rem; }
  .gf .gf__field input.gf__input[type="email"] { height: 52px !important; min-height: 52px !important; line-height: 52px !important; font-size: 16px !important; }
  .gf .gf__submit { width: 52px; height: 52px; min-height: 52px; }
  .gf__cols { grid-template-columns: 1fr 1fr; gap: 2.25rem 1.5rem; padding-top: 2.25rem; }
  .gf__col:last-child { grid-column: 1 / -1; }
  .gf__copy { margin-top: 3rem; }
}

/* Thank-you pop-up */
.gf-modal { position: fixed; inset: 0; z-index: 1000001; display: flex; align-items: center; justify-content: center; padding: 1.25rem; }
.gf-modal__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.6); animation: gfFade 0.2s ease; }
.gf-modal__box {
  position: relative;
  width: min(380px, 100%);
  padding: 2.25rem 1.75rem 2rem;
  background: #fff;
  color: #0a0a0a;
  border-radius: 20px;
  text-align: center;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  animation: gfPop 0.25s ease;
}
.gf-modal__close {
  position: absolute; top: 0.6rem; right: 0.8rem;
  width: 36px; height: 36px;
  background: transparent; border: 0; font-size: 1.6rem; line-height: 1; color: #555; cursor: pointer;
}
.gf-modal__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 54px; height: 54px; margin-bottom: 1rem;
  background: #0a0a0a; color: #fff; border-radius: 50%; font-size: 1.2rem;
}
.gf-modal__title { margin: 0 0 0.4rem; font-family: var(--font-display, inherit); font-size: 1.4rem; color: #0a0a0a; }
.gf-modal__text { margin: 0; font-size: 0.92rem; color: #555; line-height: 1.5; }
@keyframes gfFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gfPop { from { opacity: 0; transform: translateY(10px) scale(0.98); } to { opacity: 1; transform: none; } }

/* ============================================================
   RATINGS & REVIEWS — premium pass
   Serif numerals (Cormorant Garamond), ink stars with soft empties,
   initials avatars, verified pill, refined summary + form
   ============================================================ */
/* Stars everywhere: ink filled, soft grey empty */
.star-rating::before { color: rgba(0, 0, 0, 0.16) !important; }
.star-rating span::before,
.star-rating span { color: #0a0a0a !important; }
.product-card__rating .star-rating,
.woocommerce-product-rating .star-rating { font-size: 0.8rem !important; }

/* ── Summary card ─────────────────────────────────────────── */
.grvmd-rating-summary {
  grid-template-columns: auto 1fr;
  gap: 3rem;
  max-width: 680px;
  padding: 2rem 2.25rem;
  border: 1px solid rgba(0, 0, 0, 0.07);
  border-radius: 22px;
  box-shadow: 0 2px 18px rgba(0, 0, 0, 0.05);
}
.grvmd-rating-summary__score {
  gap: 0.5rem;
  padding-right: 3rem;
  border-right: 1px solid rgba(0, 0, 0, 0.08);
}
.grvmd-rating-summary__avg {
  font-family: var(--font-display);
  font-size: 4rem;
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: -0.04em;
}
.grvmd-rating-summary__score .star-rating { font-size: 0.95rem !important; }
.grvmd-rating-summary__count { font-size: 0.78rem; letter-spacing: 0.02em; color: #777; }
.grvmd-rating-summary__cta {
  margin-top: 0.6rem;
  padding: 0.6rem 1.25rem;
  border: 1px solid #0a0a0a;
  border-radius: 999px;
  font-family: var(--font-accent, inherit);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #0a0a0a;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease;
}
.grvmd-rating-summary__cta:hover { background: #0a0a0a; color: #fff; }
.grvmd-rating-summary__bars { gap: 0.6rem; }
.grvmd-rating-summary__bars li { grid-template-columns: 2.4rem 1fr 1.6rem; font-size: 0.8rem; }
.grvmd-rating-summary__track { height: 4px; background: rgba(0, 0, 0, 0.07); }
.grvmd-rating-summary__track span { background: #0a0a0a; }
.grvmd-rating-summary__label i { color: #0a0a0a; }

@media (max-width: 600px) {
  .grvmd-rating-summary { grid-template-columns: 1fr; gap: 1.5rem; padding: 1.5rem 1.25rem; }
  .grvmd-rating-summary__score { padding: 0 0 1.5rem; border-right: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
  .grvmd-rating-summary__avg { font-size: 3.6rem; }
}

/* ── Review cards ─────────────────────────────────────────── */
#reviews .commentlist { gap: 1rem !important; }
#reviews .commentlist li.review {
  display: block !important;
  padding: 1.6rem 1.75rem !important;
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.07) !important;
  border-radius: 18px !important;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.25s ease, border-color 0.25s ease !important;
}
#reviews .commentlist li.review:hover { border-color: rgba(0, 0, 0, 0.14) !important; box-shadow: 0 8px 26px rgba(0, 0, 0, 0.07); }
#reviews .commentlist li.review .comment_container { display: flex; gap: 1.1rem; align-items: flex-start; }

.grvmd-review-avatar {
  flex-shrink: 0;
  width: 46px; height: 46px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #0a0a0a;
  color: #fff;
  border-radius: 50%;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1;
}

#reviews .commentlist li.review .comment-text {
  display: flex !important;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
  min-width: 0;
}
#reviews .commentlist li.review .comment-text .meta { order: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.75rem; margin: 0 !important; }
#reviews .commentlist li.review .comment-text .star-rating { order: 2; margin: 0.1rem 0 0.25rem !important; float: none !important; }
#reviews .commentlist li.review .comment-text .description { order: 3; }

#reviews .commentlist li.review .woocommerce-review__author {
  font-family: var(--font-body, inherit);
  font-size: 0.98rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: #0a0a0a;
}
#reviews .commentlist li.review .woocommerce-review__verified {
  display: inline-flex; align-items: center; gap: 0.3rem;
  margin: 0 !important;
  padding: 0.2rem 0.6rem;
  background: rgba(47, 125, 79, 0.09);
  color: #2f7d4f !important;
  border-radius: 999px;
  font-family: var(--font-accent, inherit);
  font-size: 0.62rem !important;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
#reviews .commentlist li.review .woocommerce-review__verified i { font-size: 0.7rem; }
#reviews .commentlist li.review .woocommerce-review__published-date {
  margin-left: auto;
  font-size: 0.78rem;
  color: #888;
  font-weight: 400;
}
#reviews .commentlist li.review .description,
#reviews .commentlist li.review .description p {
  font-size: 0.96rem !important;
  line-height: 1.75 !important;
  color: #333 !important;
}
#reviews .commentlist li.review .woocommerce-review__awaiting-approval { font-size: 0.85rem; color: #777; font-style: italic; }

@media (max-width: 600px) {
  #reviews .commentlist li.review { padding: 1.25rem 1.1rem !important; }
  #reviews .commentlist li.review .comment_container { gap: 0.85rem; }
  .grvmd-review-avatar { width: 40px; height: 40px; font-size: 1.3rem; }
  #reviews .commentlist li.review .woocommerce-review__published-date { margin-left: 0; width: 100%; }
}

/* ── Review form ──────────────────────────────────────────── */
#review_form_wrapper #reply-title {
  font-family: var(--font-display) !important;
  font-size: 1.5rem !important;
  font-style: normal;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  line-height: 1.2;
  margin-bottom: 1.5rem !important;
}
.comment-form-rating .stars a { font-size: 1.35rem !important; }
.comment-form-rating p.stars { display: inline-flex; gap: 0.25rem; margin: 0; }
#review_form .comment-form textarea,
#review_form .comment-form input[type="text"],
#review_form .comment-form input[type="email"] {
  border-radius: 12px !important;
  padding: 0.95rem 1.1rem !important;
  font-size: 0.95rem !important;
}

/* New Arrivals: lighter heading, tighter gap to the product cards */
#new-arrivals .section-title,
#arrivals-heading {
  font-weight: 500 !important;
  letter-spacing: -0.025em !important;
}
#new-arrivals .section-header { margin-bottom: 1rem !important; }
@media (max-width: 768px) {
  #new-arrivals .section-header { margin-bottom: 0.75rem !important; }
}

/* Product card: lighter price, thinner "+" */
.product-card .product-card__price {
  font-weight: 300;
  letter-spacing: 0.01em;
}

/* ============================================================
   REVIEWS TAB — aligned two-column layout
   Left: rating summary · Right: reviews list, then the form
   (single column on tablet/mobile and when there are no reviews yet)
   ============================================================ */
/* Tab focus ring: no boxed outline after a mouse click; keep it for keyboard users */
.woocommerce-tabs ul.tabs li a:focus { outline: none !important; box-shadow: none !important; }
.woocommerce-tabs ul.tabs li a:focus-visible { outline: 2px solid #0a0a0a !important; outline-offset: 4px; border-radius: 2px; }

/* Summary card: stacked, full column width */
.grvmd-rating-summary {
  grid-template-columns: 1fr !important;
  gap: 1.6rem !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 1.9rem 1.75rem !important;
  align-items: stretch !important;
}
.grvmd-rating-summary__score {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 0 0 1.6rem !important;
  border-right: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  text-align: center;
}
.grvmd-rating-summary__avg { order: 1; }
.grvmd-rating-summary__score .star-rating {
  order: 2;
  position: relative;
  float: none !important;
  margin: 0 auto !important;
}
.grvmd-rating-summary__count { order: 3; }
.grvmd-rating-summary__cta {
  display: block;
  width: 100%;
  margin: 0 !important;
  padding: 0.85rem 1rem !important;
  text-align: center;
  background: #0a0a0a;
  color: #fff !important;
}
.grvmd-rating-summary__cta:hover { background: #fff; color: #0a0a0a !important; }

/* Review date: a touch larger, muted */
#reviews .commentlist li.review .woocommerce-review__published-date { font-size: 0.8rem; color: #777; }

@media (min-width: 900px) {
  /* No !important on display: WooCommerce hides inactive tabs with an inline display:none */
  .woocommerce-Tabs-panel--reviews:has(.grvmd-rating-summary):not([style*="none"]) {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    column-gap: 3rem;
    row-gap: 2rem;
    align-items: start;
  }
  .woocommerce-Tabs-panel--reviews:has(.grvmd-rating-summary) .grvmd-rating-summary { grid-column: 1; grid-row: 1 / span 2; }
  .woocommerce-Tabs-panel--reviews:has(.grvmd-rating-summary) #reviews { display: contents !important; }
  .woocommerce-Tabs-panel--reviews:has(.grvmd-rating-summary) #comments { grid-column: 2; grid-row: 1; margin: 0 !important; }
  .woocommerce-Tabs-panel--reviews:has(.grvmd-rating-summary) #review_form_wrapper { grid-column: 2; grid-row: 2; margin: 0 !important; }
}

/* Below 900px: everything stacks in one aligned column */
@media (max-width: 899px) {
  .woocommerce-Tabs-panel--reviews .grvmd-rating-summary { margin-bottom: 1.5rem !important; }
  .woocommerce-Tabs-panel--reviews #reviews { grid-template-columns: 1fr !important; gap: 1.5rem !important; }
}

/* ============================================================
   CHECKOUT — one clean card per section (no grey boxes-in-boxes),
   Place Order note no longer squeezed beside a floated button
   ============================================================ */
/* Woo's inner wrappers were styled as grey shadowed cards inside our white cards */
body .grvmd-checkout-wrapper #customer_details,
body .grvmd-checkout-wrapper .col2-set,
body .grvmd-checkout-wrapper .woocommerce-billing-fields,
body .grvmd-checkout-wrapper .woocommerce-shipping-fields,
body .grvmd-checkout-wrapper .woocommerce-additional-fields,
body .grvmd-checkout-wrapper .woocommerce-account-fields,
body .grvmd-checkout-wrapper .col2-set .col-1,
body .grvmd-checkout-wrapper .col2-set .col-2 {
  display: block !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  float: none !important;
}

/* Summary + payment: the summary card is the only box */
body .grvmd-checkout-wrapper #order_review,
body .grvmd-checkout-wrapper .woocommerce-checkout-review-order {
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
body .grvmd-checkout-wrapper #payment,
body .grvmd-checkout-wrapper .woocommerce-checkout-payment {
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--clr-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 1.5rem 0 0 !important;
  margin: 1.5rem 0 0 !important;
}

/* "Ship to a different address?" — same style as the other section labels, full-width row */
body .grvmd-checkout-wrapper h3#ship-to-different-address {
  display: block !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body .grvmd-checkout-wrapper #ship-to-different-address label {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.65rem;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-family: var(--font-accent) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--clr-ink) !important;
  cursor: pointer;
}
body .grvmd-checkout-wrapper #ship-to-different-address label input[type="checkbox"] { margin: 0 !important; accent-color: var(--clr-ink) !important; }

/* Place order: un-float the button so the note sits below it, full width */
body .grvmd-checkout-wrapper #payment #place_order {
  float: none !important;
  display: block !important;
  clear: both;
}
body .grvmd-checkout-wrapper #payment .form-row.place-order {
  display: block !important;
  width: 100% !important;
  float: none !important;
}
body .grvmd-checkout-wrapper #payment .form-row.place-order::after { content: ""; display: table; clear: both; }
body .grvmd-checkout-wrapper .grvmd-place-order-note {
  clear: both;
  display: flex;
  width: 100%;
  margin: 1rem 0 0;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
  font-size: 0.76rem;
  color: var(--clr-text-muted);
}

/* Footer: rounded top-left and top-right corners only */
.gf { border-radius: 36px 36px 0 0; }
@media (max-width: 700px) { .gf { border-radius: 24px 24px 0 0; } }

/* ============================================================
   LOGO IMAGE (replaces the GRVMD text wordmark)
   ============================================================ */
.grvmd-nav-logo { line-height: 0; font-size: 0; letter-spacing: 0; }
.grvmd-nav-logo .grvmd-nav-logo__img { display: block; height: 30px; width: auto; max-width: none; }
@media (max-width: 768px) {
  .grvmd-nav-logo .grvmd-nav-logo__img { height: 26px; }
}

.gf .gf__logo { line-height: 0; font-size: 0; letter-spacing: 0; text-indent: 0; }
.gf .gf__logo-img { display: block; width: clamp(150px, 22vw, 210px); height: auto; margin: 0 auto; }
@media (max-width: 700px) {
  .gf .gf__logo-img { width: 150px; }
}

/* ============================================================
   PRODUCT CARDS — square-cornered, editorial (no rounding)
   ============================================================ */
.product-card,
.product-card__media,
.product-card__image,
.product-card__image img,
.product-card__slides,
.product-card__slides img,
.product-card .product-img-placeholder {
  border-radius: 0 !important;
}

.product-card {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.product-card__media {
  background: #f2f2f2;
}

/* Text sits flush under the image, left-aligned, generous rhythm */
.product-card__info {
  padding: 0.95rem 0 0.35rem !important;
  gap: 0.3rem !important;
  background: transparent !important;
}
.product-card__title-row { align-items: center; }
.product-card .product-card__name,
.product-card .product-card__name a {
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.3;
  color: #0a0a0a;
}
.product-card .product-card__price { font-size: 0.88rem; letter-spacing: 0.02em; color: #444; }

/* Grid rhythm: airy rows, tighter columns */
.products-grid { column-gap: 1.25rem; row-gap: 2.75rem; }
@media (max-width: 768px) {
  .products-grid { row-gap: 1.75rem !important; }
  .product-card__info { padding-top: 0.75rem !important; }
  .product-card .product-card__name, .product-card .product-card__name a { font-size: 0.86rem; }
  .product-card .product-card__price { font-size: 0.82rem; }
}

/* Guest review prompt */
.must-log-in.grvmd-review-login {
  margin: 0;
  padding: 1rem 1.25rem;
  background: #f6f6f6;
  border-radius: 12px;
  font-size: 0.92rem;
  color: #333;
}
.must-log-in.grvmd-review-login a { color: #0a0a0a; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ============================================================
   PRODUCT CARD — hover shows the 2nd image (never the 3rd)
   Only cards with 2+ images get the overlay; single-image cards are unchanged.
   ============================================================ */
.product-card__image { position: relative; }
.product-card__hover-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 1;
  transition: opacity 0.45s ease;
}
.product-card:hover .product-card__media:not(.is-slid) .product-card__hover-img,
.product-card.is-hovered .product-card__media:not(.is-slid) .product-card__hover-img { opacity: 1; }

/* ============================================================
   SINGLE PRODUCT — Offers cards + premium mobile layout
   ============================================================ */
.grvmd-pdp-note { margin: 0 0 1.5rem; font-size: 0.95rem; color: var(--clr-text-muted); }
.grvmd-offers { margin: 0 0 1.75rem; min-width: 0; }
.grvmd-offers__label {
  display: block; margin-bottom: 0.75rem;
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--clr-text);
}
.grvmd-offers__track {
  display: flex; gap: 0.75rem; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 2px;
}
.grvmd-offers__track::-webkit-scrollbar { display: none; }
.grvmd-offer {
  flex: 0 0 min(280px, 78%); scroll-snap-align: start;
  display: flex; flex-direction: column; gap: 0.3rem;
  padding: 1rem 1.1rem; background: var(--clr-white);
  border: 1px solid var(--clr-border); border-left: 4px solid var(--clr-accent);
  border-radius: 12px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}
.grvmd-offer__title { font-size: 1.1rem; font-weight: 800; letter-spacing: -0.02em; text-transform: uppercase; color: var(--clr-text); }
.grvmd-offer__desc { font-size: 0.82rem; color: var(--clr-text-muted); }
.grvmd-offer__foot { display: flex; align-items: center; gap: 0.6rem; margin-top: 0.6rem; }
.grvmd-offer__code {
  padding: 0.3rem 0.6rem; background: var(--clr-surface); border: 1px solid var(--clr-border);
  border-radius: 6px; font-family: ui-monospace, Menlo, monospace; font-size: 0.75rem; color: var(--clr-text-muted);
}
.grvmd-offer__apply { font-size: 0.78rem; font-weight: 500; color: #2e9e4f; white-space: nowrap; }

@media (max-width: 768px) {
  .single-product div.product .summary.entry-summary { padding: 1.5rem 1rem 2rem !important; }
  .single-product h1.product_title.entry-title {
    font-size: 1.6rem !important; font-weight: 900 !important; letter-spacing: 0.01em !important; margin-bottom: 0.4rem !important;
  }
  .single-product p.price, .single-product .price span.amount { font-size: 1.25rem !important; font-weight: 700 !important; }
  .single-product .summary > .price, .single-product .summary > p.price { margin-bottom: 0.5rem !important; }
  .grvmd-offers { margin-right: -1rem; }
  .grvmd-offers__track { padding-right: 1rem; }

  /* Size: stacked label + equal-width rounded pills */
  .single-product table.variations, .single-product table.variations tbody,
  .single-product table.variations tr, .single-product table.variations td, .single-product table.variations th { display: block !important; width: 100% !important; }
  .single-product table.variations td.label, .single-product table.variations th.label { font-size: 1rem !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--clr-text) !important; padding-bottom: 0.6rem !important; }
  .grvmd-size-swatches { display: grid !important; grid-template-columns: repeat(5, 1fr) !important; gap: 0.6rem !important; margin: 0 0 1.5rem !important; }
  .grvmd-size-swatch {
    min-width: 0 !important; width: 100% !important; height: auto !important; aspect-ratio: 1 / 0.85;
    border-radius: 18px !important; background: var(--clr-white) !important; border: 1.5px solid #e2e2e2 !important;
    color: var(--clr-text) !important; font-size: 0.95rem !important; font-weight: 500 !important;
  }
  .grvmd-size-swatch.active { background: #000 !important; border-color: #000 !important; color: #fff !important; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25) !important; }

  /* Full-width pill Add to cart */
  .single-product form.cart { display: block !important; margin-top: 0 !important; }
  .single-product form.cart .quantity { display: none !important; }
  .single-product form.cart button.single_add_to_cart_button {
    width: 100% !important; height: 60px !important; border-radius: 24px !important;
    font-size: 1.05rem !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22) !important;
  }
}

/* Single product — tighter gap between header and gallery */
.single-product div.product { padding-top: calc(var(--nav-height) + 1rem) !important; }
@media (max-width: 900px) {
  .single-product div.product { padding-top: calc(var(--nav-height) + 0.25rem) !important; }
}

/* ============================================================
   SINGLE PRODUCT — Buy Now, tabs card, trust badges
   ============================================================ */
.single-product form.cart .single_variation_wrap,
.single-product form.cart .woocommerce-variation-add-to-cart { width: 100%; display: flex; flex-direction: column; gap: 0.75rem; }
.grvmd-buy-now {
  width: 100% !important; height: 56px !important; border-radius: 16px !important; margin: 0 !important;
  background: #000 !important; color: #fff !important; border: 0 !important;
  font-size: 1rem !important; font-weight: 600 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important;
  cursor: pointer;
}

.single-product .woocommerce-tabs.wc-tabs-wrapper {
  border: 1.5px solid #111; border-radius: 26px; padding: 1.25rem 1.25rem 1.5rem; background: #fff;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.05); margin-top: 1.75rem;
}
.single-product .woocommerce-tabs ul.tabs.wc-tabs { display: flex; gap: 0; border-bottom: 3px solid #f0f0f0 !important; margin-bottom: 1.25rem !important; }
.single-product .woocommerce-tabs ul.tabs.wc-tabs li { flex: 1; margin: 0 !important; text-align: left; }
.single-product .woocommerce-tabs ul.tabs.wc-tabs li a { font-size: 0.95rem !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; color: #a3a3a3 !important; padding: 0.4rem 0 0.9rem !important; }
.single-product .woocommerce-tabs ul.tabs.wc-tabs li.active a { color: #111 !important; }
/* A global `ul { list-style: none }` reset (style.css) strips these bullets
   site-wide, and line-height:1.9 was creating large gaps between items —
   restore the bullets here and use per-item spacing instead of line-height
   to close that whitespace. !important because layout.css's
   .woocommerce-tabs .woocommerce-Tabs-panel sets line-height:1.85 !important,
   which otherwise wins over this regardless of specificity. */
.single-product .woocommerce-Tabs-panel ul {
  list-style: disc !important;
  padding-left: 1.4rem !important;
  line-height: 1.6 !important;
  /* The Description tab's list (`.grvmd-pdp-details ul`) explicitly zeroes
     its top margin; this bare list never did, which is exactly the gap
     Wash Care / Returns had above their first bullet that Description didn't. */
  margin: 0 !important;
}
.single-product .woocommerce-Tabs-panel ul li { margin-bottom: 0.6rem !important; }
.single-product .woocommerce-Tabs-panel ul li:last-child { margin-bottom: 0 !important; }
.single-product .woocommerce-Tabs-panel table { width: 100%; border-collapse: collapse; font-size: 0.8rem; text-align: center; }
.single-product .woocommerce-Tabs-panel table th, .single-product .woocommerce-Tabs-panel table td { border: 1px solid #333; padding: 0.55rem 0.3rem; }

.grvmd-trust { list-style: none; margin: 2rem 0 0; padding: 0 0.25rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; text-align: center; grid-column: 1 / -1; }
.grvmd-trust li { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; margin: 0; }
.grvmd-trust svg { width: 52px; height: 52px; color: #1a1a1a; }
.grvmd-trust span { font-size: 0.78rem; font-weight: 600; text-transform: uppercase; line-height: 1.2; letter-spacing: -0.01em; }
@media (max-width: 480px) {
  .single-product .woocommerce-tabs ul.tabs.wc-tabs li a { font-size: 0.85rem !important; }
  .grvmd-trust svg { width: 44px; height: 44px; }
  .grvmd-trust span { font-size: 0.68rem; }
}

.grvmd-buy-now:disabled, .grvmd-buy-now.is-disabled { opacity: 0.35 !important; cursor: not-allowed !important; box-shadow: none !important; }

/* Add to cart + Buy Now — one unified premium button style */
.single-product form.cart button.single_add_to_cart_button,
.single-product form.cart button.grvmd-buy-now {
  display: flex !important; align-items: center !important; justify-content: center !important;
  width: 100% !important; height: 58px !important; margin: 0 !important; padding: 0 1.5rem !important;
  background: #000 !important; color: #fff !important; border: 1.5px solid #000 !important;
  border-radius: 20px !important;
  font-family: var(--font-accent) !important; font-size: 0.95rem !important; font-weight: 600 !important;
  letter-spacing: 0.12em !important; text-transform: uppercase !important; line-height: 1 !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;
}
.single-product form.cart button.single_add_to_cart_button:not(.disabled):hover,
.single-product form.cart button.grvmd-buy-now:not(:disabled):hover {
  background: #1a1a1a !important; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0, 0, 0, 0.24) !important;
}
.single-product form.cart button.single_add_to_cart_button:not(.disabled):active,
.single-product form.cart button.grvmd-buy-now:not(:disabled):active { transform: translateY(0); }
.single-product form.cart .woocommerce-variation-add-to-cart { gap: 0.85rem; }

/* Button hierarchy: Add to cart = outlined (secondary), Buy Now = solid black (primary) */
.single-product form.cart button.single_add_to_cart_button {
  background: #fff !important; color: #000 !important; border: 1.5px solid #000 !important;
  box-shadow: none !important; order: 1;
}
.single-product form.cart button.single_add_to_cart_button:not(.disabled):hover {
  background: #000 !important; color: #fff !important; box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2) !important;
}
.single-product form.cart button.single_add_to_cart_button.disabled { opacity: 0.45 !important; }
.single-product form.cart button.grvmd-buy-now {
  order: 2; height: 62px !important; letter-spacing: 0.16em !important;
  background: linear-gradient(180deg, #232323 0%, #000 100%) !important;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

/* FINAL: Add to cart + Buy Now — identical style and size */
.single-product form.cart button.single_add_to_cart_button,
.single-product form.cart button.grvmd-buy-now {
  width: 100% !important; height: 58px !important; min-height: 58px !important; box-sizing: border-box !important;
  border-radius: 20px !important; border: 1.5px solid #000 !important;
  background: #000 !important; color: #fff !important;
  font-size: 0.95rem !important; font-weight: 600 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18) !important;
  order: 0;
}
.single-product form.cart button.single_add_to_cart_button:not(.disabled):hover,
.single-product form.cart button.grvmd-buy-now:not(:disabled):hover {
  background: #1f1f1f !important; color: #fff !important; box-shadow: 0 14px 30px rgba(0, 0, 0, 0.26) !important;
}
.single-product form.cart button.single_add_to_cart_button.disabled { opacity: 0.35 !important; }

/* Related products — no dash before the heading */
.single-product section.related.products > h2::before { display: none !important; content: none !important; }

/* Single product — the body already reserves space for the fixed header, so don't add nav-height again */
.single-product div.product { padding-top: 1rem !important; }
@media (max-width: 900px) {
  .single-product div.product { padding-top: 0.5rem !important; }
}

/* Product listing — lighter price weight */
.product-card .product-card__price,
.product-card .product-card__price .woocommerce-Price-amount,
ul.products li.product .price,
ul.products li.product .price .woocommerce-Price-amount,
ul.products li.product .price .amount,
.woocommerce-page:not(.single-product) ul.products li.product .price,
.woocommerce-page:not(.single-product) ul.products li.product .price .amount {
  font-weight: 400 !important;
}

/* Single product — smaller, lighter price */
.single-product .summary .price,
.single-product .summary .price .woocommerce-Price-amount,
.single-product .summary .price span.amount,
.single-product .summary p.price,
.single-product .summary span.price {
  font-size: 1.05rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}

/* Homepage + shop listing — price a touch heavier */
.product-card .product-card__price,
.product-card .product-card__price .woocommerce-Price-amount,
ul.products li.product .price,
ul.products li.product .price .woocommerce-Price-amount,
ul.products li.product .price .amount {
  font-weight: 500 !important;
}

/* Offers now sit below the details tabs, full width */
.single-product div.product > .grvmd-offers { grid-column: 1 / -1; margin: 1.75rem 0 0; }
.grvmd-offers .grvmd-offers__track { padding-right: 0; }
@media (max-width: 768px) { .single-product div.product > .grvmd-offers { margin-right: 0; } }

/* Offers back inside the summary (under price, above size) */
.single-product .summary .grvmd-offers { margin: 0 0 1.75rem; }
@media (max-width: 768px) { .single-product .summary .grvmd-offers { margin-right: -1rem; } }

/* Client does not want the delivery / COD / studio list on the product page */

/* Hide the Category line (product meta) under the buttons */
.single-product .product_meta { display: none !important; }

/* Tighter gap between the buttons and the description card */
.single-product div.product .summary.entry-summary { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.single-product form.cart, .single-product form.cart .woocommerce-variation-add-to-cart { margin-bottom: 0 !important; }
.single-product div.product .woocommerce-tabs.wc-tabs-wrapper { margin-top: 1rem !important; }

/* Description tab — details list + size chart */
.grvmd-pdp-details h3 { font-size: 1.05rem !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; color: #111; margin: 0 0 0.9rem !important; }
.grvmd-pdp-details ul { list-style: disc; margin: 0 0 1.75rem !important; padding-left: 3rem !important; line-height: 1.9; font-size: 1rem; color: #111; }
.grvmd-pdp-details ul li { margin: 0 0 0.2rem; padding-left: 0.2rem; }
.grvmd-size-chart { width: 100%; border-collapse: collapse; text-align: center; font-size: 0.8rem; margin: 0; }
.grvmd-size-chart th, .grvmd-size-chart td { border: 1px solid #333; padding: 0.7rem 0.3rem; font-weight: 400; color: #333; background: #fff; }
.grvmd-size-chart thead th, .grvmd-size-chart tbody th { font-weight: 700; color: #000; }
.single-product .woocommerce-Tabs-panel h2 { display: none; }

/* Description card — full border on all four sides (top was being overridden by a thin grey line) */
.single-product .woocommerce-tabs.wc-tabs-wrapper {
  border: 1.5px solid #111 !important;
  border-radius: 26px !important;
  padding: 1.25rem 1.25rem 1.5rem !important;
}

/* ── Brand strip: slim static tagline band under the hero ─────
   Site language: Inter, pure black/white, tracked uppercase labels
   (like .section-eyebrow), circle outline + arrow (like the hero CTA).
   Reads as one line: FROM THE GRVMD ──(→)── TO THE GRVMD           */
.brand-strip {
  width: 100%;
  background: var(--clr-ink);
  color: #fff;
  height: 50px;
  overflow: hidden;
}

.brand-strip__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 2vw, 1.75rem);
  height: 50px; /* fills the band so its content is truly centred */
  margin: 0;
  padding: 0;
  line-height: 1;
  font-family: var(--font-accent);
  text-align: center;
}
.brand-strip__half {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  white-space: nowrap;
}
.brand-strip__lead {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.brand-strip__word {
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.18em;
  margin-right: -0.18em;
  text-transform: uppercase;
  color: #fff;
}

/* connector: short hairline — circular arrow — short hairline */
.brand-strip__journey {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.brand-strip__rule {
  width: clamp(2rem, 6vw, 5.5rem);
  height: 1px;
  background: rgba(255, 255, 255, 0.28);
}
.brand-strip__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: var(--radius-full, 999px);
  font-size: 0.55rem;
  color: #fff;
}

/* Mobile: two tight centred lines, small arrow between, no hairlines */
@media (max-width: 720px) {
  .brand-strip { height: auto; padding-block: 0.9rem; }
  .brand-strip__title {
    flex-direction: column;
    gap: 0.35rem;
    height: auto;
  }
  .brand-strip__half { gap: 0.6rem; }
  .brand-strip__lead { font-size: 0.6rem; letter-spacing: 0.18em; }
  .brand-strip__word { font-size: 1.1rem; letter-spacing: 0.14em; margin-right: -0.14em; }
  .brand-strip__rule { display: none; }
  .brand-strip__icon {
    width: auto;
    height: auto;
    border: 0;
    font-size: 0.6rem;
    color: rgba(255, 255, 255, 0.55);
    transform: rotate(90deg);
  }
}
