/* ==========================================================================
   BT SHOP + PRODUCT PAGE  (v1)
   Every value traces to bt-tokens. Component props below only alias tokens.
   Scope: body.single-product, body.post-type-archive-product, body.tax-product_cat
   ========================================================================== */
.pdp, .shop{
  --p-ink: var(--bt-ink);
  --p-plum: var(--bt-plum);
  --p-violet: var(--bt-violet);
  --p-ivory: var(--bt-ivory);
  --p-warm: var(--bt-warm);
  --p-card: var(--bt-card);
  --p-text: var(--bt-text);
  --p-text-soft: var(--bt-text-soft);
  --p-gold: var(--bt-gold);
  --p-gold-lift: var(--bt-gold-lift);
  --p-gold-text: var(--bt-gold-text);
  --p-line: var(--bt-line);
  --p-line-dk: var(--bt-line-dk);
  --p-display: var(--bt-font-display);
  --p-body: var(--bt-font-body);
  --p-max: var(--bt-max);
  --p-ease: var(--bt-ease);
  --p-dur: var(--bt-dur);
  --p-dur-slow: var(--bt-dur-slow);
  --p-r: var(--bt-r-lg);
  --p-r-sm: var(--bt-r-md);
  --p-cover-shadow: 0 40px 80px -30px rgba(26,14,46,.55), 0 18px 30px -18px rgba(26,14,46,.35);
  --p-card-shadow: var(--bt-shadow-card);
  --p-glow: var(--bt-glow-gold);
  --p-glow-h: var(--bt-glow-gold-h);
  font-family: var(--p-body);
  color: var(--p-text);
}
.pdp *, .shop *{ box-sizing: border-box; }
.pdp ::selection, .shop ::selection{ background: var(--p-gold); color: var(--p-ink); }

.p-wrap{ width: min(var(--p-max), 100% - 2 * var(--bt-s-5)); margin-inline: auto; }
.p-eyebrow{
  font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: var(--bt-track-caps); text-transform: uppercase;
  color: var(--p-gold-text); margin: 0 0 var(--bt-s-4);
}
.p-eyebrow--dk{ color: var(--p-gold); }
.p-h2{
  font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-h2); line-height: 1.02;
  letter-spacing: -.015em; color: var(--p-plum); margin: 0 0 var(--bt-s-5); text-wrap: balance;
}
.p-h2 em{ font-style: italic; font-weight: 500; color: var(--p-gold-text); }
.p-lede{ font-size: var(--bt-fs-lg); line-height: 1.6; color: var(--p-text-soft); max-width: 60ch; margin: 0; }

/* Buttons (gold spent once per view: the buy CTA) */
.p-btn{
  display: inline-flex; align-items: center; justify-content: center; gap: var(--bt-s-2);
  min-height: 56px; padding: 0 var(--bt-s-6); border-radius: var(--bt-r-pill); border: 0; cursor: pointer;
  font: 700 var(--bt-fs-base)/1 var(--p-body); letter-spacing: .01em; text-decoration: none;
  transition: transform var(--p-dur) var(--p-ease), box-shadow var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease);
}
.p-btn:focus-visible, .pdp a:focus-visible, .shop a:focus-visible{ outline: 3px solid var(--p-gold); outline-offset: 3px; }
.p-btn--gold{ background: var(--p-gold); color: var(--p-ink); box-shadow: var(--p-glow); }
.p-btn--gold:hover{ background: var(--p-gold-lift); transform: translateY(-2px); box-shadow: var(--p-glow-h); }
.p-btn--ghost{ background: transparent; color: var(--p-plum); border: 1px solid var(--p-line); }
.p-btn--ghost:hover{ border-color: var(--p-plum); transform: translateY(-2px); }
.p-btn--ink{ background: var(--p-plum); color: var(--p-ivory); }
.p-btn--ink:hover{ background: var(--p-ink); transform: translateY(-2px); }

/* ==========================================================================
   PRODUCT PAGE
   ========================================================================== */
.pdp-hero{ position: relative; background: var(--p-ivory); padding: clamp(2rem,5vw,4.5rem) 0 clamp(3rem,7vw,6rem); overflow: clip; }
.pdp-hero::before{
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(60rem 30rem at 12% 0%, color-mix(in srgb, var(--p-gold) 16%, transparent), transparent 60%),
    radial-gradient(50rem 28rem at 100% 100%, color-mix(in srgb, var(--p-violet) 10%, transparent), transparent 60%);
}
.pdp-crumb{ position: relative; font-size: var(--bt-fs-xs); color: var(--p-text-soft); margin: 0 0 clamp(1.5rem,3vw,2.5rem); }
.pdp-crumb a{ color: inherit; text-decoration: none; }
.pdp-crumb a:hover{ color: var(--p-plum); text-decoration: underline; }
.pdp-crumb span{ margin: 0 var(--bt-s-2); opacity: .5; }

.pdp-hero__grid{
  position: relative; display: grid; grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
  gap: clamp(2rem, 6vw, 6rem); align-items: start;
}

/* Cover: portrait object, real depth, sticks while the buy column scrolls */
.pdp-cover{ position: sticky; top: calc(var(--bt-s-8) + var(--bt-s-6)); }
.pdp-cover__frame{
  position: relative; margin: 0; width: min(100%, 520px); aspect-ratio: 17 / 22; border-radius: var(--p-r-sm);
  box-shadow: var(--p-cover-shadow); background: var(--p-plum);
  transform: perspective(1400px) rotateY(0deg); transition: transform var(--p-dur-slow) var(--p-ease), box-shadow var(--p-dur-slow) var(--p-ease);
}
.pdp-cover__frame img{ display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.pdp-cover__frame::after{
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255,253,248,.25), inset 12px 0 24px -14px rgba(255,253,248,.45);
}
.pdp-cover:hover .pdp-cover__frame{ transform: perspective(1400px) rotateY(-5deg) translateY(-6px); }
.pdp-cover--square .pdp-cover__frame{ aspect-ratio: 1; }
.pdp-cover__badge{
  position: absolute; bottom: var(--bt-s-6); left: calc(-1 * var(--bt-s-3));
  background: var(--p-ink); color: var(--p-ivory); font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .12em; text-transform: uppercase;
  padding: var(--bt-s-3) var(--bt-s-4); border-radius: var(--bt-r-sm); box-shadow: 0 12px 24px -12px rgba(26,14,46,.6);
}
.pdp-cover__caption{ margin: var(--bt-s-5) 0 0; font-size: var(--bt-fs-xs); color: var(--p-text-soft); max-width: 520px; display: flex; align-items: center; gap: var(--bt-s-3); flex-wrap: wrap; }
.pdp-cover__pill{ display: inline-flex; align-items: center; background: var(--p-ink); color: var(--p-ivory); font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .12em; text-transform: uppercase; padding: var(--bt-s-2) var(--bt-s-3); border-radius: var(--bt-r-pill); }

/* Buy column */
.pdp-buy{ min-width: 0; }
.pdp-title{
  font-family: var(--p-display); font-weight: 600; line-height: .98; letter-spacing: -.02em; color: var(--p-plum);
  font-size: clamp(2.6rem, 5.2vw, 4.4rem); margin: 0 0 var(--bt-s-5); text-wrap: balance;
}
.pdp-tagline{ font-family: var(--p-display); font-style: italic; font-size: clamp(1.25rem, 1.8vw, 1.55rem); line-height: 1.4; color: var(--p-text-soft); margin: 0 0 var(--bt-s-6); max-width: 34ch; }
.pdp-price{ display: flex; align-items: baseline; gap: var(--bt-s-4); flex-wrap: wrap; margin: 0 0 var(--bt-s-5); padding-top: var(--bt-s-5); border-top: 1px solid var(--p-line); }
.pdp-price .amount, .pdp-price bdi{ font-family: var(--p-display); font-weight: 600; font-size: clamp(2.2rem, 3.4vw, 3rem); line-height: 1; color: var(--p-plum); font-variant-numeric: tabular-nums; }
.pdp-price del{ opacity: .45; }
.pdp-price del .amount{ font-size: 1.4rem; }
.pdp-price ins{ text-decoration: none; }
.pdp-price__note{ font-size: var(--bt-fs-sm); color: var(--p-text-soft); }

.pdp-cta{ display: flex; flex-wrap: wrap; gap: var(--bt-s-3) var(--bt-s-4); align-items: center; margin: 0 0 var(--bt-s-4); }
.pdp-cta form.cart{ margin: 0; display: contents; }
.pdp-cta .quantity{ display: none; }
.pdp-cta .single_add_to_cart_button{ composes: none; }
.pdp .single_add_to_cart_button,
.pdp .pdp-cta button.button{
  display: inline-flex; align-items: center; justify-content: center; gap: var(--bt-s-2);
  min-height: 60px; padding: 0 var(--bt-s-7); border-radius: var(--bt-r-pill); border: 0; cursor: pointer;
  font: 700 var(--bt-fs-lg)/1 var(--p-body); letter-spacing: .01em;
  background: var(--p-gold); color: var(--p-ink); box-shadow: var(--p-glow);
  transition: transform var(--p-dur) var(--p-ease), box-shadow var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease);
}
/* The theme's design-system paints .woocommerce button.button.alt plum with !important; the buy CTA is the one gold spend on this view. */
.woocommerce .pdp button.button.alt.single_add_to_cart_button, .pdp .single_add_to_cart_button{ background: var(--p-gold) !important; color: var(--p-ink) !important; border: 0 !important; border-radius: var(--bt-r-pill) !important; }
.woocommerce .pdp button.button.alt.single_add_to_cart_button:hover, .pdp .single_add_to_cart_button:hover{ background: var(--p-gold-lift) !important; color: var(--p-ink) !important; transform: translateY(-2px); box-shadow: var(--p-glow-h); }
.pdp .single_add_to_cart_button.loading{ opacity: .7; }
.pdp-cta__more{ font: 600 var(--bt-fs-sm)/1 var(--p-body); color: var(--p-plum); text-decoration: none; border-bottom: 1px solid var(--p-line); padding-bottom: 2px; }
.pdp-cta__more:hover{ border-color: var(--p-plum); }

.pdp-trust{ list-style: none; display: flex; flex-wrap: wrap; gap: var(--bt-s-2) var(--bt-s-5); padding: 0; margin: 0 0 var(--bt-s-6); font-size: var(--bt-fs-xs); color: var(--p-text-soft); }
.pdp-trust li{ display: inline-flex; align-items: center; gap: var(--bt-s-2); }
.pdp-trust svg{ width: 14px; height: 14px; color: var(--p-gold-text); flex: none; }

.pdp-includes{ list-style: none; margin: 0 0 var(--bt-s-6); padding: var(--bt-s-5) var(--bt-s-5) var(--bt-s-4); background: var(--p-card); border: 1px solid var(--p-line); border-radius: var(--p-r); }
.pdp-includes .pdp-includes__title{ display: block; margin: 0 0 var(--bt-s-2); padding: 0; font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: var(--bt-track-caps); text-transform: uppercase; color: var(--p-text-soft); }
.pdp-includes li{ display: grid; grid-template-columns: 22px 1fr; gap: var(--bt-s-3); align-items: start; padding: var(--bt-s-2) 0; font-size: var(--bt-fs-sm); line-height: 1.5; color: var(--p-text); }
.pdp-includes li + li{ border-top: 1px dashed var(--p-line); }
.pdp-includes svg{ width: 20px; height: 20px; color: var(--p-gold-text); margin-top: 1px; }
.pdp-includes strong{ font-weight: 600; color: var(--p-plum); }

.pdp-author{ display: flex; gap: var(--bt-s-4); align-items: center; }
.pdp-author__img{ width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: none; box-shadow: 0 0 0 2px var(--p-ivory), 0 0 0 3px var(--p-gold); }
.pdp-author__txt{ font-size: var(--bt-fs-sm); color: var(--p-text-soft); line-height: 1.5; margin: 0; }
.pdp-author__txt strong{ color: var(--p-plum); font-weight: 600; }

/* Inside: an actual sequence, so it is numbered */
.pdp-inside{ background: var(--p-warm); padding: var(--bt-sec-pad) 0; }
.pdp-inside__head{ display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--bt-s-6) var(--bt-s-8); align-items: end; margin-bottom: clamp(2rem,4vw,3.5rem); }
.pdp-steps{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; background: var(--p-line); border: 1px solid var(--p-line); border-radius: var(--p-r); overflow: hidden; }
.pdp-step{ background: var(--p-ivory); padding: clamp(1.25rem,2.4vw,2rem); display: grid; grid-template-columns: auto 1fr; gap: var(--bt-s-4) var(--bt-s-5); align-items: start; transition: background var(--p-dur) var(--p-ease); }
.pdp-step:hover{ background: var(--p-card); }
.pdp-step:last-child:nth-child(odd){ grid-column: 1 / -1; }
.pdp-step__n{ font-family: var(--p-display); font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1; color: var(--p-gold-text); font-variant-numeric: tabular-nums; min-width: 2ch; }
.pdp-step h3{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); line-height: 1.15; color: var(--p-plum); margin: 0 0 var(--bt-s-2); }
.pdp-step p{ margin: 0; font-size: var(--bt-fs-sm); line-height: 1.55; color: var(--p-text-soft); }
.pdp-stats{ display: flex; gap: var(--bt-s-6); flex-wrap: wrap; justify-self: end; }
.pdp-stat{ display: grid; gap: var(--bt-s-1); }
.pdp-stat b{ font-family: var(--p-display); font-weight: 600; font-size: clamp(1.8rem,2.6vw,2.4rem); line-height: 1; color: var(--p-plum); font-variant-numeric: tabular-nums; }
.pdp-stat span{ font-size: var(--bt-fs-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--p-text-soft); }

/* Who it is for + quote: the dark band */
.pdp-for{ background: var(--p-ink); color: var(--bt-text-dk); padding: var(--bt-sec-pad) 0; position: relative; overflow: clip; }
.pdp-for::before{ content: ""; position: absolute; inset: auto -10% -40% auto; width: 60rem; height: 40rem; pointer-events: none; background: radial-gradient(closest-side, color-mix(in srgb, var(--p-violet) 55%, transparent), transparent); }
.pdp-for .p-h2{ color: var(--p-ivory); }
.pdp-for__grid{ position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(2rem,5vw,5rem); align-items: start; }
.pdp-for__list{ list-style: none; margin: 0; padding: 0; display: grid; gap: var(--bt-s-4); }
.pdp-for__list li{ display: grid; grid-template-columns: 28px 1fr; gap: var(--bt-s-4); padding: var(--bt-s-5) 0; border-top: 1px solid var(--p-line-dk); font-size: var(--bt-fs-lg); line-height: 1.5; color: var(--bt-text-dk); }
.pdp-for__list li:last-child{ border-bottom: 1px solid var(--p-line-dk); }
.pdp-for__list svg{ width: 26px; height: 26px; color: var(--p-gold); }
.pdp-quote{ margin: 0; padding-left: var(--bt-s-6); border-left: 2px solid var(--p-gold); }
.pdp-quote p{ font-family: var(--p-display); font-style: italic; font-size: clamp(1.6rem, 2.6vw, 2.3rem); line-height: 1.25; color: var(--p-ivory); margin: 0 0 var(--bt-s-4); text-wrap: balance; }
.pdp-quote cite{ font-style: normal; font-size: var(--bt-fs-sm); color: var(--bt-text-dk-2); }

/* Promise + FAQ */
.pdp-faq{ background: var(--p-ivory); padding: var(--bt-sec-pad) 0; }
.pdp-faq__grid{ display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem,5vw,5rem); }
.pdp-promise{ background: var(--p-card); border: 1px solid var(--p-line); border-radius: var(--p-r); padding: clamp(1.5rem,3vw,2.5rem); box-shadow: var(--p-card-shadow); position: sticky; top: calc(var(--bt-s-8) + var(--bt-s-6)); }
.pdp-promise__seal{ width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; color: var(--p-gold-text); border: 1px solid var(--p-gold); margin-bottom: var(--bt-s-5); }
.pdp-promise__seal svg{ width: 28px; height: 28px; }
.pdp-promise h3{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); color: var(--p-plum); margin: 0 0 var(--bt-s-3); }
.pdp-promise p{ margin: 0; font-size: var(--bt-fs-sm); line-height: 1.6; color: var(--p-text-soft); }
.pdp-promise p + p{ margin-top: var(--bt-s-3); }
.pdp-faq details{ border-top: 1px solid var(--p-line); }
.pdp-faq details:last-of-type{ border-bottom: 1px solid var(--p-line); }
.pdp-faq summary{ list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--bt-s-4); padding: var(--bt-s-5) 0; font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); line-height: 1.2; color: var(--p-plum); }
.pdp-faq summary::-webkit-details-marker{ display: none; }
.pdp-faq summary::after{ content: ""; flex: none; width: 12px; height: 12px; border-right: 2px solid var(--p-gold-text); border-bottom: 2px solid var(--p-gold-text); transform: rotate(45deg); transition: transform var(--p-dur) var(--p-ease); margin-right: 4px; }
.pdp-faq details[open] summary::after{ transform: rotate(-135deg); }
.pdp-faq .pdp-faq__a{ padding: 0 0 var(--bt-s-5); font-size: var(--bt-fs-base); line-height: 1.65; color: var(--p-text-soft); max-width: 62ch; }

/* Related */
.pdp-related{ background: var(--p-warm); padding: var(--bt-sec-pad) 0; }
.pdp-related__head{ display: flex; justify-content: space-between; align-items: end; gap: var(--bt-s-6); margin-bottom: clamp(1.5rem,3vw,2.5rem); flex-wrap: wrap; }
.pdp-related__head .p-h2{ margin: 0; }
.pdp-related__all{ font: 600 var(--bt-fs-sm)/1 var(--p-body); color: var(--p-plum); text-decoration: none; border-bottom: 1px solid var(--p-line); padding-bottom: 2px; }
.pdp-related__all:hover{ border-color: var(--p-plum); }

/* Sticky mobile buy bar */
.pdp-sticky{ position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: none; align-items: center; justify-content: space-between; gap: var(--bt-s-4);
  padding: var(--bt-s-3) var(--bt-s-5) calc(var(--bt-s-3) + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--p-ivory) 94%, transparent); backdrop-filter: blur(12px);
  border-top: 1px solid var(--p-line); box-shadow: 0 -12px 30px -18px rgba(26,14,46,.35); }
.pdp-sticky__t{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-base); color: var(--p-plum); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pdp-sticky__p{ font: 700 var(--bt-fs-xs)/1 var(--p-body); color: var(--p-gold-text); margin-top: 2px; }
.pdp-sticky .p-btn{ min-height: 48px; padding: 0 var(--bt-s-5); font-size: var(--bt-fs-sm); flex: none; }

/* Woo notices inside our page */
.pdp .woocommerce-notices-wrapper{ margin-bottom: var(--bt-s-5); }
.pdp .woocommerce-message, .pdp .woocommerce-error, .pdp .woocommerce-info{ border: 1px solid color-mix(in srgb, var(--p-gold) 45%, var(--p-line)); background: var(--p-card); color: var(--p-text); border-radius: var(--p-r-sm); padding: var(--bt-s-4) var(--bt-s-5); list-style: none; margin: 0 0 var(--bt-s-4); font-size: var(--bt-fs-sm); }
.pdp .woocommerce-message .button{ float: none; margin-left: var(--bt-s-3); color: var(--p-plum); font-weight: 700; text-decoration: underline; background: none; padding: 0; }

/* ==========================================================================
   PRODUCT CARD (shop grid, related, curated rows)
   ========================================================================== */
.pgrid{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); }
.pgrid--3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pgrid > li{ list-style: none; margin: 0; padding: 0; min-width: 0; }
.pcard{ position: relative; display: flex; flex-direction: column; height: 100%; background: var(--p-card); border: 1px solid var(--p-line); border-radius: var(--p-r); overflow: hidden;
  transition: transform var(--p-dur) var(--p-ease), box-shadow var(--p-dur) var(--p-ease), border-color var(--p-dur) var(--p-ease); }
.pcard:hover{ transform: translateY(-6px); box-shadow: var(--p-card-shadow); border-color: color-mix(in srgb, var(--p-gold) 45%, var(--p-line)); }
.pcard__media{ display: grid; place-items: center; aspect-ratio: 4 / 5; padding: clamp(1rem, 2.4vw, 1.75rem); background: linear-gradient(170deg, var(--p-warm), color-mix(in srgb, var(--p-warm) 70%, var(--p-gold) 30%) 140%); text-decoration: none; overflow: hidden; }
.pcard__media img{ display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: var(--bt-r-sm); box-shadow: 0 24px 40px -24px rgba(26,14,46,.7), 0 8px 16px -10px rgba(26,14,46,.4); transition: transform var(--p-dur-slow) var(--p-ease); }
.pcard:hover .pcard__media img{ transform: translateY(-4px) scale(1.02); }
.pcard__media--empty{ font-family: var(--p-display); font-size: 3rem; color: var(--p-gold-text); }
.pcard__body{ display: flex; flex-direction: column; gap: var(--bt-s-2); padding: var(--bt-s-5) var(--bt-s-5) var(--bt-s-5); flex: 1; }
.pcard__eyebrow{ margin: 0; font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .14em; text-transform: uppercase; color: var(--p-gold-text); }
.pcard__title{ margin: 0; font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); line-height: 1.15; color: var(--p-plum); text-wrap: balance; }
.pcard__title a{ color: inherit; text-decoration: none; }
.pcard__title a::after{ content: ""; position: absolute; inset: 0; }
.pcard__desc{ margin: 0; font-size: var(--bt-fs-sm); line-height: 1.5; color: var(--p-text-soft); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pcard__foot{ margin-top: auto; padding-top: var(--bt-s-4); display: flex; align-items: center; justify-content: space-between; gap: var(--bt-s-3); border-top: 1px solid var(--p-line); }
.pcard__price .amount, .pcard__price bdi{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); color: var(--p-plum); font-variant-numeric: tabular-nums; }
.pcard__price del{ opacity: .45; font-size: .8em; margin-right: var(--bt-s-2); }
.pcard__price ins{ text-decoration: none; }
.pcard__price small{ font-family: var(--p-body); font-size: var(--bt-fs-xs); color: var(--p-text-soft); margin-left: 2px; }
.pcard__go{ font: 600 var(--bt-fs-sm)/1 var(--p-body); color: var(--p-plum); display: inline-flex; align-items: center; gap: var(--bt-s-2); }
.pcard__go svg{ width: 16px; height: 16px; transition: transform var(--p-dur) var(--p-ease); }
.pcard:hover .pcard__go svg{ transform: translateX(4px); }
.pcard--featured{ border-color: color-mix(in srgb, var(--p-gold) 55%, var(--p-line)); }
.pcard--wide{ display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); margin-bottom: clamp(1rem, 2vw, 1.75rem); background: var(--p-ink); border-color: transparent; }
.pcard--wide .pcard__media{ aspect-ratio: auto; background: linear-gradient(160deg, var(--p-ink), var(--p-plum)); padding: clamp(1.5rem, 3vw, 2.5rem); }
.pcard--wide .pcard__media img{ max-height: 380px; }
.pcard--wide .pcard__body{ padding: clamp(1.5rem, 3vw, 2.5rem); justify-content: center; gap: var(--bt-s-3); }
.pcard--wide .pcard__eyebrow{ color: var(--p-gold); }
.pcard--wide .pcard__title{ color: var(--p-ivory); font-size: var(--bt-fs-h2); }
.pcard--wide .pcard__desc{ color: var(--bt-text-dk); font-size: var(--bt-fs-base); -webkit-line-clamp: 3; max-width: 52ch; }
.pcard--wide .pcard__foot{ border-top-color: var(--p-line-dk); justify-content: flex-start; gap: var(--bt-s-6); }
.pcard--wide .pcard__price .amount, .pcard--wide .pcard__price bdi, .pcard--wide .pcard__go{ color: var(--p-ivory); }
.pcard--wide .pcard__price del{ opacity: .55; }
.pcard__flag{ position: absolute; top: var(--bt-s-4); left: var(--bt-s-4); z-index: 2; background: var(--p-ink); color: var(--p-ivory); font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .1em; text-transform: uppercase; padding: var(--bt-s-2) var(--bt-s-3); border-radius: var(--bt-r-sm); }

/* ==========================================================================
   SHOP
   ========================================================================== */
.shop-hero{ background: var(--p-ink); color: var(--bt-text-dk); padding: clamp(3.5rem, 9vw, 7rem) 0 clamp(3rem, 7vw, 5.5rem); position: relative; overflow: clip; }
.shop-hero::before{ content: ""; position: absolute; inset: -20% -10% auto auto; width: 70rem; height: 46rem; pointer-events: none; background: radial-gradient(closest-side, color-mix(in srgb, var(--p-violet) 60%, transparent), transparent); }
.shop-hero::after{ content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--p-gold), transparent); opacity: .6; }
.shop-hero__grid{ position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.shop-hero h1{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-h1); line-height: .96; letter-spacing: -.02em; color: var(--p-ivory); margin: 0 0 var(--bt-s-5); text-wrap: balance; }
.shop-hero h1 em{ font-style: italic; font-weight: 500; color: var(--p-gold); }
.shop-hero .p-lede{ color: var(--bt-text-dk-2); }
.shop-nav{ display: flex; flex-wrap: wrap; gap: var(--bt-s-2); justify-content: flex-end; }
.shop-nav a{ font: 600 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .06em; text-transform: uppercase; color: var(--bt-text-dk); text-decoration: none; padding: var(--bt-s-3) var(--bt-s-4); border: 1px solid var(--p-line-dk); border-radius: var(--bt-r-pill); transition: border-color var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease), color var(--p-dur) var(--p-ease); }
.shop-nav a:hover, .shop-nav a[aria-current="true"]{ border-color: var(--p-gold); color: var(--p-ivory); background: color-mix(in srgb, var(--p-gold) 14%, transparent); }

.shop-sec{ padding: var(--bt-sec-pad) 0; scroll-margin-top: var(--bt-s-8); }
.shop-sec--ivory{ background: var(--p-ivory); }
.shop-sec--warm{ background: var(--p-warm); }
.shop-sec__head{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--bt-s-5) var(--bt-s-8); align-items: end; margin-bottom: clamp(1.5rem, 3.5vw, 3rem); }
.shop-sec__head .p-h2{ margin: 0; }
.shop-sec__head .p-lede{ justify-self: end; max-width: 46ch; font-size: var(--bt-fs-base); }

/* Ladder: the four-step path reads as steps because it is one */
.ladder{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); counter-reset: step; }
.ladder > li{ position: relative; }
.ladder__step{ position: absolute; z-index: 2; top: var(--bt-s-4); left: var(--bt-s-4); width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--p-ink); color: var(--p-gold); font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-lg); }

/* Membership: three tiers, middle lifted */
.tiers{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); align-items: stretch; }
.tier{ position: relative; display: flex; flex-direction: column; background: var(--p-card); border: 1px solid var(--p-line); border-radius: var(--p-r); padding: clamp(1.5rem, 2.6vw, 2.25rem); transition: transform var(--p-dur) var(--p-ease), box-shadow var(--p-dur) var(--p-ease); }
.tier:hover{ transform: translateY(-6px); box-shadow: var(--p-card-shadow); }
.tier--lift{ background: var(--p-ink); color: var(--bt-text-dk); border-color: transparent; }
.tier__flag{ position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--p-gold); color: var(--p-ink); font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .12em; text-transform: uppercase; padding: var(--bt-s-2) var(--bt-s-4); border-radius: var(--bt-r-pill); }
.tier__name{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); color: var(--p-plum); margin: 0 0 var(--bt-s-2); }
.tier--lift .tier__name{ color: var(--p-ivory); }
.tier__price{ display: flex; align-items: baseline; gap: var(--bt-s-2); margin: 0 0 var(--bt-s-5); }
.tier__price b{ font-family: var(--p-display); font-weight: 600; font-size: clamp(2.2rem, 3vw, 2.8rem); line-height: 1; color: var(--p-plum); font-variant-numeric: tabular-nums; }
.tier--lift .tier__price b{ color: var(--p-ivory); }
.tier__price span{ font-size: var(--bt-fs-sm); color: var(--p-text-soft); }
.tier--lift .tier__price span{ color: var(--bt-text-dk-2); }
.tier__desc{ margin: 0 0 var(--bt-s-5); font-size: var(--bt-fs-sm); line-height: 1.55; color: var(--p-text-soft); flex: 1; }
.tier--lift .tier__desc{ color: var(--bt-text-dk); }
.tier .p-btn{ width: 100%; margin-top: auto; }
.tier__flag--quiet{ background: var(--p-plum); color: var(--p-ivory); }
.tier--current{ border-color: color-mix(in srgb, var(--p-gold) 60%, var(--p-line)); box-shadow: var(--p-card-shadow); }
.tier__annual{ display: inline-block; margin: calc(-1 * var(--bt-s-3)) 0 var(--bt-s-5); font-size: var(--bt-fs-xs); color: var(--p-gold-text); text-decoration: none; border-bottom: 1px solid transparent; }
a.tier__annual:hover{ border-color: var(--p-gold-text); }
.tier--lift .tier__annual{ color: var(--p-gold); }
.tier__list{ list-style: none; margin: 0 0 var(--bt-s-5); padding: 0; display: grid; gap: var(--bt-s-2); }
.tier__list li{ display: grid; grid-template-columns: 18px 1fr; gap: var(--bt-s-3); align-items: start; font-size: var(--bt-fs-sm); line-height: 1.45; color: var(--p-text); }
.tier__list svg{ width: 18px; height: 18px; color: var(--p-gold-text); margin-top: 1px; }
.tier--lift .tier__list li{ color: var(--bt-text-dk); }
.tier--lift .tier__list svg{ color: var(--p-gold); }
.tier__access{ margin: 0 0 var(--bt-s-5); padding: var(--bt-s-4) 0 0; border-top: 1px solid var(--p-line); display: grid; gap: var(--bt-s-2); }
.tier--lift .tier__access{ border-top-color: var(--p-line-dk); }
.tier__access div{ display: grid; grid-template-columns: 64px 1fr; gap: var(--bt-s-3); font-size: var(--bt-fs-xs); line-height: 1.45; }
.tier__access dt{ font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--p-gold-text); }
.tier--lift .tier__access dt{ color: var(--p-gold); }
.tier__access dd{ margin: 0; color: var(--p-text-soft); }
.tier--lift .tier__access dd{ color: var(--bt-text-dk); }
.pdp-compare{ background: var(--p-ivory); padding: var(--bt-sec-pad) 0; }
.tier--lift .p-btn--ghost{ color: var(--p-ivory); border-color: var(--bt-line-dk-2); }
.tier--lift .p-btn--ghost:hover{ border-color: var(--p-gold); color: var(--p-gold); }

/* Work with Esther: split feature */
.wwe{ display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.wwe__img{ margin: 0; aspect-ratio: 4 / 5; border-radius: var(--p-r); overflow: hidden; box-shadow: var(--p-cover-shadow); }
.wwe__img img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.wwe__list{ list-style: none; margin: var(--bt-s-6) 0 0; padding: 0; display: grid; gap: 1px; background: var(--p-line); border: 1px solid var(--p-line); border-radius: var(--p-r); overflow: hidden; }
.wwe__row{ position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--bt-s-4); align-items: center; padding: var(--bt-s-5) var(--bt-s-5); background: var(--p-card); transition: background var(--p-dur) var(--p-ease); }
.wwe__row:hover{ background: var(--p-ivory); }
.wwe__row h3{ margin: 0 0 var(--bt-s-1); font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); color: var(--p-plum); }
.wwe__row h3 a{ color: inherit; text-decoration: none; }
.wwe__row h3 a::after{ content: ""; position: absolute; inset: 0; }
.wwe__row p{ margin: 0; font-size: var(--bt-fs-sm); color: var(--p-text-soft); }
.wwe__row .pcard__price{ text-align: right; white-space: nowrap; }

/* Woo loop utilities on category pages */
.shop-controls{ display: flex; justify-content: space-between; align-items: center; gap: var(--bt-s-4); margin-bottom: var(--bt-s-6); font-size: var(--bt-fs-sm); color: var(--p-text-soft); }
.shop-controls form{ margin: 0; }
.shop-controls select{ font: inherit; padding: var(--bt-s-2) var(--bt-s-4); border: 1px solid var(--p-line); border-radius: var(--bt-r-pill); background: var(--p-card); color: var(--p-text); }
.shop-pagination .page-numbers{ list-style: none; display: flex; gap: var(--bt-s-2); justify-content: center; padding: 0; margin: var(--bt-s-7) 0 0; }
.shop-pagination .page-numbers a, .shop-pagination .page-numbers span{ display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--p-line); color: var(--p-plum); text-decoration: none; font-weight: 600; }
.shop-pagination .page-numbers .current{ background: var(--p-plum); color: var(--p-ivory); border-color: var(--p-plum); }

/* ==========================================================================
   CART + CHECKOUT (WooCommerce blocks). Same tokens, same type, one gold CTA.
   ========================================================================== */
body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account{
  --p-plum: var(--bt-plum); --p-ink: var(--bt-ink); --p-ivory: var(--bt-ivory); --p-warm: var(--bt-warm); --p-card: var(--bt-card);
  --p-text: var(--bt-text); --p-text-soft: var(--bt-text-soft); --p-gold: var(--bt-gold); --p-gold-lift: var(--bt-gold-lift); --p-gold-text: var(--bt-gold-text);
  --p-line: var(--bt-line); --p-display: var(--bt-font-display); --p-body: var(--bt-font-body); --p-r: var(--bt-r-lg); --p-r-sm: var(--bt-r-md);
  --p-ease: var(--bt-ease); --p-dur: var(--bt-dur); --p-card-shadow: var(--bt-shadow-card); --p-glow: var(--bt-glow-gold); --p-glow-h: var(--bt-glow-gold-h); --p-max: var(--bt-max); --p-dur-slow: var(--bt-dur-slow); --p-line-dk: var(--bt-line-dk); --p-violet: var(--bt-violet);
}
body.woocommerce-cart .wp-block-woocommerce-cart, body.woocommerce-checkout .wp-block-woocommerce-checkout{ font-family: var(--p-body); color: var(--p-text); }
/* Headings inside the blocks take the display face */
.wc-block-components-title, .wc-block-components-checkout-step__title, .wc-block-cart__totals-title, .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-order-summary .wc-block-components-panel__button, .wc-block-components-checkout-order-summary__title-text{
  font-family: var(--p-display) !important; font-weight: 600 !important; color: var(--p-plum) !important; letter-spacing: -.01em; text-transform: none !important;
}
.wc-block-components-checkout-step__title{ font-size: var(--bt-fs-xl) !important; }
.wc-block-cart__totals-title{ font-size: var(--bt-fs-lg) !important; letter-spacing: .04em !important; }
.wc-block-components-checkout-step__description{ color: var(--p-text-soft); font-size: var(--bt-fs-sm); }
/* Product names: no underline, display face */
.wc-block-components-product-name{ font-family: var(--p-display) !important; font-weight: 600 !important; font-size: var(--bt-fs-lg) !important; color: var(--p-plum) !important; text-decoration: none !important; line-height: 1.2; }
.wc-block-components-product-metadata__description{ display: none; }
.wc-block-cart-item__image img{ border-radius: var(--p-r-sm); box-shadow: 0 14px 24px -16px rgba(26,14,46,.6); }
.wc-block-cart-items__header{ text-transform: uppercase; letter-spacing: .14em; font-size: var(--bt-fs-xs) !important; color: var(--p-text-soft); }
.wc-block-cart-items .wc-block-cart-items__row{ border-color: var(--p-line) !important; }
.wc-block-components-product-price, .wc-block-components-totals-item__value{ font-family: var(--p-display) !important; font-weight: 600 !important; color: var(--p-plum) !important; font-variant-numeric: tabular-nums; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{ font-size: 1.8rem !important; }
/* Totals panel */
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block, .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block{
  background: var(--p-card); border: 1px solid var(--p-line) !important; border-radius: var(--p-r); padding: var(--bt-s-5) !important; box-shadow: var(--p-card-shadow);
}
.wc-block-components-totals-wrapper{ border-color: var(--p-line) !important; }
/* Quantity, coupons, links */
.wc-block-components-quantity-selector{ border-radius: var(--bt-r-pill) !important; border: 1px solid var(--p-line) !important; box-shadow: none !important; }
.wc-block-components-quantity-selector::after{ display: none !important; }
.wc-block-components-panel__button, .wc-block-components-totals-coupon-link{ color: var(--p-plum) !important; font-weight: 600; }
.wc-block-cart-item__remove-link, .wc-block-components-totals-coupon__form .wc-block-components-button{ color: var(--p-text-soft); }
/* Inputs */
.wc-block-components-text-input input, .wc-block-components-country-input select, .wc-block-components-state-input select, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-textarea{
  border: 1px solid var(--p-line) !important; border-radius: var(--p-r-sm) !important; background: var(--p-card) !important; color: var(--p-text) !important; font-family: var(--p-body) !important;
}
.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:focus, .wc-block-components-combobox.is-active .components-combobox-control__input{ border-color: var(--p-plum) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--p-gold) 30%, transparent) !important; }
.wc-block-components-text-input label, .wc-block-components-combobox label{ color: var(--p-text-soft) !important; font-family: var(--p-body) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked{ background: var(--p-plum) !important; border-color: var(--p-plum) !important; }
.wc-block-components-checkbox__label{ font-size: var(--bt-fs-sm); color: var(--p-text); }
/* Payment */
.wc-block-components-radio-control__option{ border-color: var(--p-line) !important; }
.wc-block-components-radio-control__label{ font-family: var(--p-body) !important; font-weight: 600; color: var(--p-plum); }
.wc-block-checkout__payment-method .wc-block-components-radio-control__input:checked{ border-color: var(--p-plum) !important; background: var(--p-plum) !important; }
.wc-block-components-express-payment--checkout:has(.wc-block-components-express-payment__event-buttons:empty){ display: none; }
/* The one gold spend: proceed and place order */
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, #place_order, .wc-block-components-button.wc-block-cart__submit-button{
  background: var(--p-gold) !important; color: var(--p-ink) !important; border: 0 !important; border-radius: var(--bt-r-pill) !important; min-height: 56px; font: 700 var(--bt-fs-base)/1 var(--p-body) !important; letter-spacing: .01em; box-shadow: var(--p-glow) !important;
  transition: transform var(--p-dur) var(--p-ease), box-shadow var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease) !important;
}
.wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover, #place_order:hover{ background: var(--p-gold-lift) !important; transform: translateY(-2px); box-shadow: var(--p-glow-h) !important; }
.wc-block-components-checkout-place-order-button .wc-block-components-button__text{ color: var(--p-ink) !important; }
.wc-block-components-checkout-return-to-cart-button, .wc-block-components-checkout-step__heading .wc-block-checkout__login-prompt a{ color: var(--p-plum) !important; }
.wc-block-checkout__terms a{ color: var(--p-plum) !important; }
/* Block cross-sells off; our "finish the set" row on */
.wp-block-woocommerce-cart-cross-sells-block, .wp-block-woocommerce-cart-cross-sells-products-block, .wc-block-cart__cross-sells, .cross-sells{ display: none !important; }
body.woocommerce-cart .pcard__title a, body.woocommerce-checkout .pcard__title a, .cart-more a{ text-decoration: none !important; }
.cart-more{ width: min(var(--p-max), 100% - 2 * var(--bt-s-5)); margin: clamp(2rem, 5vw, 4rem) auto 0; padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--p-line); }
.cart-more__head{ margin-bottom: var(--bt-s-6); }
.cart-more__head .p-h2{ font-size: clamp(1.7rem, 3vw, 2.4rem); }
.cart-more .pgrid--3{ max-width: 900px; }
/* Empty cart */
.wc-block-cart__empty-cart__title{ font-family: var(--p-display) !important; color: var(--p-plum) !important; }
.wp-block-woocommerce-empty-cart-block .wp-block-button__link{ background: var(--p-gold) !important; color: var(--p-ink) !important; border-radius: var(--bt-r-pill) !important; }
.wp-block-woocommerce-empty-cart-block .wp-block-product-new, .wp-block-woocommerce-empty-cart-block .wc-block-grid{ display: none; }

/* ==========================================================================
   CLASSIC CART (our templates in woocommerce/cart/)
   ========================================================================== */
body.woocommerce-cart .newsletter-cta .container > div:has(.bt-video-placeholder), body.woocommerce-checkout .newsletter-cta{ display: none !important; }
body.woocommerce-cart .entry-header, body.woocommerce-cart .page-header, body.woocommerce-cart h1.entry-title{ display: none; }
/* The page template wraps content in a narrow column; the cart breaks out to the site max width. */
.bcart, .cart-more{ width: min(var(--p-max), 100vw - 2 * var(--bt-s-5)); position: relative; left: 50%; transform: translateX(-50%); max-width: none; }
.bcart{ margin: clamp(1.5rem, 4vw, 3.5rem) 0 clamp(2rem, 5vw, 4rem); }
.bcart a, .cart-more a{ text-decoration: none !important; border-bottom: 0 !important; background-image: none !important; box-shadow: none !important; }
.bcart .cart-collaterals, .bcart .cart-collaterals .cart_totals{ float: none !important; width: 100% !important; margin: 0 !important; }
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message, body.woocommerce-cart .woocommerce-info.cart-empty{ display: none; }
body.woocommerce-cart .pcard__title a::after, body.woocommerce-cart .bcart a::after, body.woocommerce-cart .cart-more a::after{ background: none !important; border: 0 !important; height: auto !important; opacity: 1; }
.bcart__grid{ display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .85fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.bcart__head{ margin-bottom: var(--bt-s-6); }
.bcart__title{ font-family: var(--p-display); font-weight: 600; font-size: clamp(2.2rem, 4.2vw, 3.4rem); line-height: 1; letter-spacing: -.02em; color: var(--p-plum); margin: 0; text-wrap: balance; }
.bcart__title em{ font-style: italic; font-weight: 500; color: var(--p-gold-text); }
.bcart__list{ list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--p-line); }
.bcart__item{ display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: var(--bt-s-5); padding: var(--bt-s-5) 0; border-bottom: 1px solid var(--p-line); align-items: start; }
.bcart__media{ display: grid; place-items: center; aspect-ratio: 4 / 5; background: linear-gradient(170deg, var(--p-warm), color-mix(in srgb, var(--p-warm) 70%, var(--p-gold) 30%) 160%); border-radius: var(--p-r-sm); padding: var(--bt-s-2); }
.bcart__media img{ max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 3px; box-shadow: 0 14px 22px -14px rgba(26,14,46,.7); }
.bcart__kind{ margin: 0 0 var(--bt-s-1); font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .14em; text-transform: uppercase; color: var(--p-gold-text); }
.bcart__name{ margin: 0 0 var(--bt-s-2); font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); line-height: 1.15; color: var(--p-plum); }
.bcart__name a{ color: inherit; text-decoration: none !important; }
.bcart__name a:hover{ color: var(--p-gold-text); }
.bcart__desc{ margin: 0 0 var(--bt-s-4); font-size: var(--bt-fs-sm); line-height: 1.5; color: var(--p-text-soft); max-width: 52ch; }
.bcart__controls{ display: flex; align-items: center; gap: var(--bt-s-5); }
.bcart__one{ font-size: var(--bt-fs-xs); color: var(--p-text-soft); letter-spacing: .04em; }
.bcart .quantity{ display: inline-flex; align-items: center; border: 1px solid var(--p-line); border-radius: var(--bt-r-pill); overflow: hidden; }
.bcart .quantity .qty{ width: 64px; height: 40px; border: 0; text-align: center; font: 600 var(--bt-fs-sm)/1 var(--p-body); color: var(--p-plum); background: transparent; -moz-appearance: textfield; }
.bcart .quantity .qty::-webkit-outer-spin-button, .bcart .quantity .qty::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
.bcart a.bcart__remove.remove{ display: inline; width: auto; height: auto; font: 600 var(--bt-fs-xs)/1 var(--p-body) !important; color: var(--p-text-soft) !important; text-decoration: none !important; border: 0; border-bottom: 1px solid var(--p-line); border-radius: 0; padding: 0 0 2px; background: transparent !important; text-align: left; }
.bcart__remove:hover{ color: var(--bt-danger) !important; border-color: var(--bt-danger); }
.bcart__price, .bcart__price .amount, .bcart__price bdi{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); color: var(--p-plum); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bcart__actions{ display: flex; justify-content: space-between; align-items: center; gap: var(--bt-s-4); padding-top: var(--bt-s-5); flex-wrap: wrap; }
.bcart__back{ display: inline-flex; align-items: center; gap: var(--bt-s-2); font: 600 var(--bt-fs-sm)/1 var(--p-body); color: var(--p-plum) !important; text-decoration: none !important; }
.bcart__back svg{ width: 16px; height: 16px; }
.bcart__update{ background: transparent; border: 1px solid var(--p-line); border-radius: var(--bt-r-pill); padding: var(--bt-s-3) var(--bt-s-5); font: 600 var(--bt-fs-xs)/1 var(--p-body); color: var(--p-plum); cursor: pointer; }
.bcart__update:hover{ border-color: var(--p-plum); }
.bcart__update:disabled{ opacity: .4; cursor: default; }
/* totals card */
.bcart__side{ position: sticky; top: calc(var(--bt-s-8) + var(--bt-s-6)); }
.bcart__totals{ background: var(--p-card); border: 1px solid var(--p-line); border-radius: var(--p-r); padding: clamp(1.25rem, 2.4vw, 2rem); box-shadow: var(--p-card-shadow); }
.bcart__totals-title{ margin: 0 0 var(--bt-s-4); font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); color: var(--p-plum); }
.bcart__lines{ margin: 0; display: grid; }
.bcart__line{ display: flex; justify-content: space-between; align-items: baseline; gap: var(--bt-s-4); padding: var(--bt-s-3) 0; border-top: 1px solid var(--p-line); font-size: var(--bt-fs-sm); color: var(--p-text-soft); }
.bcart__line dt{ font-weight: 500; }
.bcart__line dd{ margin: 0; color: var(--p-text); font-variant-numeric: tabular-nums; }
.bcart__line--total{ border-top: 2px solid var(--p-plum); margin-top: var(--bt-s-2); padding-top: var(--bt-s-4); }
.bcart__line--total dt{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-lg); color: var(--p-plum); }
.bcart__line--total dd, .bcart__line--total .amount, .bcart__line--total bdi{ font-family: var(--p-display); font-weight: 600; font-size: 2rem; color: var(--p-plum); }
.bcart__line--coupon .woocommerce-remove-coupon{ margin-left: var(--bt-s-2); font-size: var(--bt-fs-xs); color: var(--p-text-soft); }
.bcart__coupon{ margin: var(--bt-s-4) 0 var(--bt-s-5); }
.bcart__coupon summary{ list-style: none; cursor: pointer; font: 600 var(--bt-fs-xs)/1 var(--p-body); color: var(--p-plum); letter-spacing: .04em; }
.bcart__coupon summary::-webkit-details-marker{ display: none; }
.bcart__coupon-row{ display: flex; gap: var(--bt-s-2); margin-top: var(--bt-s-3); }
.bcart__coupon-row input{ flex: 1; min-width: 0; height: 44px; border: 1px solid var(--p-line); border-radius: var(--bt-r-pill); padding: 0 var(--bt-s-4); font: var(--bt-fs-sm) var(--p-body); background: var(--p-ivory); color: var(--p-text); }
.bcart__coupon-btn{ height: 44px; padding: 0 var(--bt-s-5); border: 1px solid var(--p-plum); border-radius: var(--bt-r-pill); background: transparent; color: var(--p-plum); font: 600 var(--bt-fs-xs)/1 var(--p-body); cursor: pointer; }
.bcart__coupon-btn:hover{ background: var(--p-plum); color: var(--p-ivory); }
.bcart .wc-proceed-to-checkout{ padding: 0; margin: 0 0 var(--bt-s-4); }
.bcart .wc-proceed-to-checkout .bcart__checkout{ width: 100%; min-height: 58px; background: var(--p-gold) !important; color: var(--p-ink) !important; }
.bcart__trust{ list-style: none; margin: 0; padding: var(--bt-s-4) 0 0; border-top: 1px solid var(--p-line); display: grid; gap: var(--bt-s-2); font-size: var(--bt-fs-xs); color: var(--p-text-soft); }
.bcart__trust li{ display: flex; align-items: center; gap: var(--bt-s-2); }
.bcart__trust svg{ width: 14px; height: 14px; color: var(--p-gold-text); flex: none; }
/* notices in classic cart */
.bcart ~ .woocommerce-notices-wrapper, body.woocommerce-cart .woocommerce-notices-wrapper{ width: min(var(--p-max), 100% - 2 * var(--bt-s-5)); margin: var(--bt-s-5) auto 0; }
body.woocommerce-cart .woocommerce-message, body.woocommerce-cart .woocommerce-error, body.woocommerce-cart .woocommerce-info{ border: 1px solid color-mix(in srgb, var(--p-gold) 45%, var(--p-line)); background: var(--p-card); color: var(--p-text); border-radius: var(--p-r-sm); padding: var(--bt-s-4) var(--bt-s-5); list-style: none; font-size: var(--bt-fs-sm); }
body.woocommerce-cart .woocommerce-message::before, body.woocommerce-cart .woocommerce-error::before, body.woocommerce-cart .woocommerce-info::before{ display: none; }
/* progress steps */
.bcart__steps, .chk-steps{ list-style: none; margin: 0 0 var(--bt-s-6); padding: 0; display: flex; align-items: center; gap: var(--bt-s-4); font: 600 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .08em; text-transform: uppercase; color: var(--p-text-soft); }
.bcart__steps li, .chk-steps li{ display: inline-flex; align-items: center; gap: var(--bt-s-2); }
.bcart__steps li + li::before, .chk-steps li + li::before{ content: ""; width: 44px; height: 1px; background: var(--p-line); margin-right: var(--bt-s-2); }
.bcart__steps span, .chk-steps span{ width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--p-line); font-family: var(--p-display); font-size: var(--bt-fs-sm); letter-spacing: 0; color: var(--p-text-soft); }
.bcart__steps .is-current, .chk-steps .is-current{ color: var(--p-plum); }
.bcart__steps .is-current span, .chk-steps .is-current span{ background: var(--p-plum); border-color: var(--p-plum); color: var(--p-ivory); }
.bcart__steps .is-done span, .chk-steps .is-done span{ background: var(--p-gold); border-color: var(--p-gold); color: var(--p-ink); }
/* order bump */
.bcart__bump{ display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: var(--bt-s-5); align-items: center; margin-top: var(--bt-s-6); padding: var(--bt-s-5); border-radius: var(--p-r); background: linear-gradient(135deg, var(--p-card), var(--p-warm)); border: 1px solid color-mix(in srgb, var(--p-gold) 40%, var(--p-line)); position: relative; overflow: hidden; }
.bcart__bump::before{ content: ""; position: absolute; inset: 0; background: radial-gradient(40rem 12rem at 100% 0%, color-mix(in srgb, var(--p-gold) 18%, transparent), transparent 60%); pointer-events: none; }
.bcart__bump-media{ display: grid; place-items: center; aspect-ratio: 4 / 5; border-radius: var(--p-r-sm); background: var(--p-ivory); padding: var(--bt-s-2); position: relative; }
.bcart__bump-media img{ max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 3px; box-shadow: 0 12px 20px -12px rgba(26,14,46,.7); transition: transform var(--p-dur-slow) var(--p-ease); }
.bcart__bump:hover .bcart__bump-media img{ transform: translateY(-3px) rotate(-1.5deg); }
.bcart__bump-eyebrow{ margin: 0 0 var(--bt-s-1); font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .14em; text-transform: uppercase; color: var(--p-gold-text); }
.bcart__bump-name{ margin: 0 0 var(--bt-s-1); font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); line-height: 1.15; color: var(--p-plum); }
.bcart__bump-why{ margin: 0; font-size: var(--bt-fs-sm); color: var(--p-text-soft); line-height: 1.5; max-width: 46ch; }
.bcart__bump-act{ display: grid; gap: var(--bt-s-2); justify-items: end; position: relative; }
.bcart__bump-price .amount, .bcart__bump-price bdi{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-xl); color: var(--p-plum); }
.bcart a.bcart__bump-btn{ display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 var(--bt-s-5); border-radius: var(--bt-r-pill); background: var(--p-plum); color: var(--p-ivory) !important; font: 700 var(--bt-fs-sm)/1 var(--p-body); position: relative; overflow: hidden; transition: transform var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease); }
.bcart a.bcart__bump-btn::after{ content: ""; position: absolute; top: -20%; bottom: -20%; left: -40%; width: 30%; background: linear-gradient(100deg, transparent, rgba(255,253,248,.35), transparent); transform: skewX(-18deg); transition: left var(--p-dur-slow) var(--p-ease); }
.bcart a.bcart__bump-btn:hover{ background: var(--p-ink); transform: translateY(-2px); }
.bcart a.bcart__bump-btn:hover::after{ left: 120%; }
/* motion: items slide in, lift on hover; the checkout button gets one quiet shine */
.bcart__item{ transition: transform var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease); }
.bcart__item:hover{ transform: translateX(4px); }
.bcart__item:hover .bcart__media img{ transform: translateY(-2px); }
.bcart__media img{ transition: transform var(--p-dur-slow) var(--p-ease); }
.bcart .wc-proceed-to-checkout .bcart__checkout{ position: relative; overflow: hidden; }
.bcart .wc-proceed-to-checkout .bcart__checkout::after{ content: ""; position: absolute; top: -20%; bottom: -20%; left: -40%; width: 26%; background: linear-gradient(100deg, transparent, rgba(255,253,248,.55), transparent); transform: skewX(-18deg); animation: bt-shine 4.5s var(--p-ease) 1.2s infinite; }
@keyframes bt-shine{ 0%, 70%{ left: -40%; } 85%, 100%{ left: 130%; } }
@media (prefers-reduced-motion: reduce){ .bcart .wc-proceed-to-checkout .bcart__checkout::after{ animation: none; } }
/* checkout reassurance band */
.chk-band{ width: min(var(--p-max), 100vw - 2 * var(--bt-s-5)); position: relative; left: 50%; transform: translateX(-50%); max-width: none; margin: 0 0 var(--bt-s-6); display: grid; grid-template-columns: 1fr auto; gap: var(--bt-s-5); align-items: center; }
.chk-band .chk-steps{ margin: 0; }
.chk-lock{ display: inline-flex; align-items: center; gap: var(--bt-s-2); font: 600 var(--bt-fs-xs)/1 var(--p-body); color: var(--p-text-soft); }
.chk-lock svg{ width: 14px; height: 14px; color: var(--p-gold-text); }
.chk-after{ width: min(var(--p-max), 100vw - 2 * var(--bt-s-5)); position: relative; left: 50%; transform: translateX(-50%); max-width: none; margin: clamp(2rem, 4vw, 3.5rem) 0 0; padding-top: var(--bt-s-6); border-top: 1px solid var(--p-line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--bt-s-6); }
.chk-after > div{ display: grid; grid-template-columns: 40px 1fr; gap: var(--bt-s-4); align-items: start; }
.chk-after > div > div{ display: block; }
.chk-after h3::after, .chk-after h3::before{ display: none !important; }
/* the checkout block breaks out of the page template's narrow column too */
body.woocommerce-checkout .wp-block-woocommerce-checkout{ width: min(var(--p-max), 100vw - 2 * var(--bt-s-5)); position: relative; left: 50%; transform: translateX(-50%); max-width: none !important; }
.chk-after b{ display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--p-gold); color: var(--p-gold-text); font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-lg); }
.chk-after h3{ margin: 0 0 var(--bt-s-1); font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-lg); color: var(--p-plum); }
.chk-after p{ margin: 0; font-size: var(--bt-fs-sm); line-height: 1.5; color: var(--p-text-soft); }
@media (max-width: 900px){
  .bcart__bump{ grid-template-columns: 72px minmax(0, 1fr); }
  .bcart__bump-act{ grid-column: 2; justify-items: start; grid-auto-flow: column; align-items: center; gap: var(--bt-s-4); }
  .chk-band{ grid-template-columns: 1fr; }
  .chk-after{ grid-template-columns: 1fr; }
  .bcart__steps li + li::before, .chk-steps li + li::before{ width: 18px; }
}
/* empty */
.bcart__empty{ max-width: 640px; margin: 0 auto clamp(2rem, 5vw, 4rem); text-align: center; display: grid; gap: var(--bt-s-4); justify-items: center; }
.bcart--empty .bcart__title{ font-size: clamp(2.4rem, 5vw, 4rem); }
/* checkout sidebar breathing room */
@media (min-width: 900px){ .wc-block-checkout__main{ width: 58% !important; } .wc-block-checkout__sidebar{ width: 38% !important; } }
.wc-block-checkout__sidebar .wc-block-components-product-name{ font-size: var(--bt-fs-base) !important; }
@media (max-width: 900px){
  .bcart__grid{ grid-template-columns: 1fr; }
  .bcart__side{ position: static; }
  .bcart__item{ grid-template-columns: 88px minmax(0, 1fr); }
  .bcart__price{ grid-column: 2; }
}
@media (max-width: 640px){
  .bcart__controls{ gap: var(--bt-s-4); flex-wrap: wrap; }
  .bcart__actions{ flex-direction: column; align-items: stretch; }
  .bcart__update{ width: 100%; }
}

/* ==========================================================================
   MY ACCOUNT. Ink welcome rail, ivory forms, one gold CTA.
   ========================================================================== */
body.woocommerce-account .woocommerce{ width: min(var(--p-max), 100vw - 2 * var(--bt-s-5)); position: relative; left: 50%; transform: translateX(-50%); max-width: none; }
body.woocommerce-account .woocommerce a{ text-decoration: none !important; }
/* logged out: two real columns, no pseudo-element in the grid */
body.woocommerce-account .u-columns, body.woocommerce-account .col2-set, body.woocommerce-account #customer_login{ display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: clamp(1.5rem, 4vw, 3rem) !important; align-items: start; }
body.woocommerce-account .u-columns::before, body.woocommerce-account .u-columns::after, body.woocommerce-account .col2-set::before, body.woocommerce-account .col2-set::after{ display: none !important; }
body.woocommerce-account .u-column1, body.woocommerce-account .u-column2{ width: 100% !important; float: none !important; margin: 0 !important; min-width: 0; }
body.woocommerce-account .u-columns > div > h2{ font-family: var(--p-display) !important; font-weight: 600 !important; font-size: var(--bt-fs-xl) !important; color: var(--p-plum) !important; margin: 0 0 var(--bt-s-4) !important; }
body.woocommerce-account form.login, body.woocommerce-account form.register, body.woocommerce-account form.woocommerce-form-login, body.woocommerce-account form.woocommerce-form-register, body.woocommerce-account form.lost_reset_password{ border: 1px solid var(--p-line) !important; border-radius: var(--p-r) !important; padding: clamp(1.5rem, 3vw, 2rem) !important; background: var(--p-card) !important; box-shadow: var(--p-card-shadow); margin: 0 !important; }
body.woocommerce-account .woocommerce-form-row, body.woocommerce-account .form-row{ margin-bottom: var(--bt-s-4) !important; padding: 0 !important; }
body.woocommerce-account .woocommerce-form-row label, body.woocommerce-account .form-row > label{ display: block; font: 600 var(--bt-fs-xs)/1.3 var(--p-body); letter-spacing: .1em; text-transform: uppercase; color: var(--p-text-soft); margin-bottom: var(--bt-s-2); }
body.woocommerce-account .woocommerce-Input, body.woocommerce-account input[type=text], body.woocommerce-account input[type=email], body.woocommerce-account input[type=password], body.woocommerce-account input[type=tel]{
  width: 100%; min-height: 50px; padding: 0 var(--bt-s-4); border: 1px solid var(--p-line); border-radius: var(--p-r-sm); background: var(--p-ivory); color: var(--p-text); font: var(--bt-fs-base) var(--p-body);
}
body.woocommerce-account input:focus{ outline: 0; border-color: var(--p-plum); box-shadow: 0 0 0 3px color-mix(in srgb, var(--p-gold) 30%, transparent); }
body.woocommerce-account button[type=submit], body.woocommerce-account .woocommerce-form-login__submit, body.woocommerce-account .woocommerce-form-register__submit, body.woocommerce-account button.woocommerce-Button{
  display: inline-flex !important; align-items: center; justify-content: center;
  background: var(--p-gold) !important; color: var(--p-ink) !important; border: 0 !important; border-radius: var(--bt-r-pill) !important; min-height: 52px; padding: 0 var(--bt-s-6) !important;
  font: 700 var(--bt-fs-base)/1 var(--p-body) !important; box-shadow: var(--p-glow); cursor: pointer; margin-top: var(--bt-s-2) !important;
  transition: transform var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease);
}
body.woocommerce-account .woocommerce-form-login__submit:hover, body.woocommerce-account .woocommerce-form-register__submit:hover{ background: var(--p-gold-lift) !important; transform: translateY(-2px); }
body.woocommerce-account .woocommerce-LostPassword a, body.woocommerce-account .woocommerce-privacy-policy-link{ color: var(--p-plum) !important; border-bottom: 1px solid var(--p-line); }
body.woocommerce-account .woocommerce-form-login__rememberme{ font-size: var(--bt-fs-sm); color: var(--p-text-soft); }
/* logged in: nav rail plus content */
body.woocommerce-account.logged-in .woocommerce{ display: grid; grid-template-columns: minmax(220px, .28fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.woocommerce-MyAccount-navigation{ width: 100% !important; float: none !important; position: sticky; top: calc(var(--bt-s-8) + var(--bt-s-6)); background: var(--p-card); border: 1px solid var(--p-line); border-radius: var(--p-r); padding: var(--bt-s-3); box-shadow: var(--p-card-shadow); }
.woocommerce-MyAccount-navigation ul{ list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.woocommerce-MyAccount-navigation li a{ display: block; padding: var(--bt-s-3) var(--bt-s-4); border-radius: var(--p-r-sm); font: 600 var(--bt-fs-sm)/1.2 var(--p-body); color: var(--p-text-soft) !important; transition: background var(--p-dur) var(--p-ease), color var(--p-dur) var(--p-ease); }
.woocommerce-MyAccount-navigation li a:hover{ background: var(--p-warm); color: var(--p-plum) !important; }
.woocommerce-MyAccount-navigation li.is-active a{ background: var(--p-plum); color: var(--p-ivory) !important; }
.woocommerce-MyAccount-content{ width: 100% !important; float: none !important; min-width: 0; }
.woocommerce-MyAccount-content > p:first-child{ font-family: var(--p-display); font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.35; color: var(--p-plum); margin-bottom: var(--bt-s-5); }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3{ font-family: var(--p-display); font-weight: 600; color: var(--p-plum); }
/* order and download tables */
body.woocommerce-account table.woocommerce-orders-table, body.woocommerce-account table.woocommerce-table--order-downloads, body.woocommerce-account table.shop_table{
  width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--p-line); border-radius: var(--p-r); overflow: hidden; background: var(--p-card);
}
body.woocommerce-account table.shop_table th{ background: var(--p-plum); color: var(--p-ivory); font: 700 var(--bt-fs-xs)/1 var(--p-body); letter-spacing: .12em; text-transform: uppercase; padding: var(--bt-s-4); text-align: left; border: 0; }
body.woocommerce-account table.shop_table td{ padding: var(--bt-s-4); border: 0; border-top: 1px solid var(--p-line); font-size: var(--bt-fs-sm); color: var(--p-text); }
body.woocommerce-account table.shop_table td .amount, body.woocommerce-account table.shop_table td bdi{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-lg); color: var(--p-plum); font-variant-numeric: tabular-nums; }
body.woocommerce-account table.shop_table .button{ display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--bt-s-4); border-radius: var(--bt-r-pill); background: var(--p-plum) !important; color: var(--p-ivory) !important; font: 700 var(--bt-fs-xs)/1 var(--p-body) !important; border: 0 !important; }
body.woocommerce-account table.shop_table .button:hover{ background: var(--p-ink) !important; }
body.woocommerce-account .woocommerce-Message, body.woocommerce-account .woocommerce-info{ border: 1px solid color-mix(in srgb, var(--p-gold) 45%, var(--p-line)); background: var(--p-card); color: var(--p-text); border-radius: var(--p-r-sm); padding: var(--bt-s-4) var(--bt-s-5); list-style: none; font-size: var(--bt-fs-sm); }
body.woocommerce-account .woocommerce-Message::before, body.woocommerce-account .woocommerce-info::before{ display: none; }
body.woocommerce-account .woocommerce-Message .button, body.woocommerce-account .woocommerce-info .button{ background: var(--p-gold) !important; color: var(--p-ink) !important; border-radius: var(--bt-r-pill) !important; }
body.woocommerce-account fieldset{ border: 1px solid var(--p-line); border-radius: var(--p-r); padding: var(--bt-s-5); margin: var(--bt-s-5) 0; }
body.woocommerce-account legend{ font-family: var(--p-display); font-weight: 600; font-size: var(--bt-fs-lg); color: var(--p-plum); padding: 0 var(--bt-s-3); }
body.woocommerce-account .bt-ma-box{ border-radius: var(--p-r) !important; box-shadow: var(--p-card-shadow); }
@media (max-width: 900px){
  body.woocommerce-account .u-columns{ grid-template-columns: 1fr; }
  body.woocommerce-account.logged-in .woocommerce{ grid-template-columns: 1fr; }
  .woocommerce-MyAccount-navigation{ position: static; }
  .woocommerce-MyAccount-navigation ul{ grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; gap: var(--bt-s-2); }
  body.woocommerce-account table.shop_table th{ display: none; }
  body.woocommerce-account table.shop_table td{ display: block; border-top: 0; }
  body.woocommerce-account table.shop_table tr{ display: block; border-top: 1px solid var(--p-line); padding: var(--bt-s-2) 0; }
}

/* Reveal (progressive; content visible at rest) */
@media (prefers-reduced-motion: no-preference){
  .p-reveal{ opacity: 1; transform: none; transition: opacity var(--p-dur-slow) var(--p-ease), transform var(--p-dur-slow) var(--p-ease); }
  .js .p-reveal:not(.is-in){ opacity: 0; transform: translateY(18px); }
  .js .p-reveal.is-in{ opacity: 1; transform: none; }
}

/* ==========================================================================
   DEVICES
   ========================================================================== */
@media (max-width: 1100px){
  .pgrid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ladder{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px){
  .pdp-hero__grid{ grid-template-columns: 1fr; gap: var(--bt-s-6); }
  .pdp-cover{ position: static; }
  .pdp-cover__frame{ width: min(100%, 420px); margin-inline: auto; }
  .pdp-cover__badge{ left: var(--bt-s-4); }
  .pdp-cover__caption{ text-align: center; margin-inline: auto; }
  .pdp-inside__head, .pdp-for__grid, .pdp-faq__grid, .shop-hero__grid, .shop-sec__head, .wwe{ grid-template-columns: 1fr; }
  .pdp-stats, .shop-sec__head .p-lede{ justify-self: start; }
  .pdp-promise{ position: static; }
  .pdp-steps{ grid-template-columns: 1fr; }
  .shop-nav{ justify-content: flex-start; }
  .tiers{ grid-template-columns: 1fr; }
  .tier--lift{ order: -1; }
  .pcard--wide{ grid-template-columns: 1fr; }
  .pcard--wide .pcard__media{ aspect-ratio: 16 / 10; }
  .pcard--wide .pcard__media img{ max-height: 100%; }
  .pcard--wide .pcard__title{ font-size: var(--bt-fs-xl); }
  .wwe__img{ max-width: 480px; }
}
@media (max-width: 820px){
  .pdp-sticky{ display: flex; }
  body.single-product{ padding-bottom: 84px; }
}
@media (max-width: 640px){
  .pgrid, .pgrid--3, .ladder{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bt-s-3); }
  .pcard__body{ padding: var(--bt-s-4); gap: var(--bt-s-1); }
  .pcard__title{ font-size: var(--bt-fs-lg); }
  .pcard__desc{ display: none; }
  .pcard__foot{ flex-direction: column; align-items: flex-start; gap: var(--bt-s-1); }
  .pcard__go{ display: none; }
  .pdp-title{ font-size: clamp(2.2rem, 10vw, 3rem); }
  .pdp .single_add_to_cart_button{ width: 100%; }
  .pdp-cta__more{ display: none; }
  .pdp-step{ grid-template-columns: 1fr; gap: var(--bt-s-2); padding: var(--bt-s-5) var(--bt-s-4); }
  .pdp-step__n{ font-size: 1.6rem; }
  .wwe__row{ grid-template-columns: 1fr; }
  .wwe__row .pcard__price{ text-align: left; }
}
@media (max-width: 400px){
  .pgrid, .pgrid--3, .ladder{ grid-template-columns: 1fr; }
}

/* ============================================================================
   MEMBER DASHBOARD  —  My Account. Ink hero against ivory cards, gold spent on
   the badge and the CTAs only. Contrast on purpose: never a wall of purple.
   ========================================================================== */
.bt-dash{ display: grid; gap: clamp(1.25rem, 2.6vw, 2rem); margin: 0 0 clamp(2rem, 4vw, 3rem); }

/* --- hero band ------------------------------------------------------------ */
.bt-dash__hero{
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: center; padding: clamp(1.6rem, 3.4vw, 2.6rem) clamp(1.5rem, 3.4vw, 2.8rem);
  border-radius: var(--p-r); color: var(--p-ivory); position: relative; overflow: hidden;
  background:
    radial-gradient(120% 160% at 88% -20%, rgba(201,162,39,.30), transparent 58%),
    radial-gradient(90% 130% at 4% 110%, rgba(93,52,148,.55), transparent 62%),
    var(--p-ink);
  box-shadow: 0 26px 54px -34px rgba(26,14,46,.78);
}
.bt-dash__hero::after{
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background: linear-gradient(115deg, transparent 42%, rgba(255,253,248,.06) 50%, transparent 58%);
}
.bt-dash__eyebrow{
  margin: 0 0 .55rem; font-family: var(--p-body); font-size: var(--bt-fs-xs);
  letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--p-gold);
}
.bt-dash__hi{
  margin: 0 0 .5rem; font-family: var(--p-display); font-weight: 600; line-height: 1.06;
  font-size: clamp(2rem, 4.4vw, 3.1rem); letter-spacing: -.02em; color: var(--p-ivory);
  text-wrap: balance;
}
.bt-dash__lede{ margin: 0; max-width: 46ch; color: rgba(255,253,248,.78); line-height: 1.6; font-size: var(--bt-fs-md); }

.bt-dash__badge{
  display: grid; gap: .2rem; justify-items: center; text-align: center; white-space: nowrap;
  padding: 1rem 1.5rem; border-radius: var(--p-r-sm);
  border: 1px solid rgba(201,162,39,.5); background: rgba(255,253,248,.06);
}
.bt-dash__badge span{ font-family: var(--p-display); font-size: clamp(1.35rem, 2.4vw, 1.8rem); font-weight: 600; color: var(--p-gold); letter-spacing: -.01em; }
.bt-dash__badge em{ font-style: normal; font-size: var(--bt-fs-xs); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,253,248,.62); font-variant-numeric: tabular-nums; }

/* --- shortcut tiles ------------------------------------------------------- */
.bt-dash__jump{ display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .85rem; }
.bt-dash__jump a{
  display: grid; gap: .18rem; padding: 1.05rem 1.15rem; border-radius: var(--p-r-sm);
  background: var(--p-card); border: 1px solid var(--p-line); text-decoration: none !important;
  position: relative; overflow: hidden;
  transition: transform var(--p-dur) var(--p-ease), border-color var(--p-dur) var(--p-ease), box-shadow var(--p-dur) var(--p-ease);
}
.bt-dash__jump a::before{
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: var(--p-gold); transform: scaleX(0); transform-origin: left;
  transition: transform var(--p-dur-slow) var(--p-ease);
}
.bt-dash__jump a:hover{ transform: translateY(-3px); border-color: rgba(201,162,39,.45); box-shadow: var(--p-card-shadow); }
.bt-dash__jump a:hover::before{ transform: scaleX(1); }
.bt-dash__jump strong{ font-family: var(--p-display); font-size: var(--bt-fs-lg); font-weight: 600; color: var(--p-plum); letter-spacing: -.01em; }
.bt-dash__jump span{ font-size: var(--bt-fs-sm); color: var(--p-text-soft); }

/* --- cards ---------------------------------------------------------------- */
.bt-dash__card{
  padding: clamp(1.3rem, 2.6vw, 1.9rem); border-radius: var(--p-r);
  background: var(--p-card); border: 1px solid var(--p-line);
}
.bt-dash__card h3{
  margin: 0 0 .3rem; font-family: var(--p-display); font-weight: 600; letter-spacing: -.01em;
  font-size: clamp(1.25rem, 2.2vw, 1.6rem); color: var(--p-plum);
}
.bt-dash__sub{ margin: 0 0 1.1rem; font-size: var(--bt-fs-sm); color: var(--p-text-soft); line-height: 1.55; }

/* --- onboarding ----------------------------------------------------------- */
.bt-dash__start{ border-color: rgba(201,162,39,.35); background: linear-gradient(180deg, var(--p-warm), var(--p-card) 60%); }
.bt-dash__steps{ list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.bt-dash__steps li{ margin: 0; }
.bt-dash__step{
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; align-items: center;
  padding: .85rem 1rem; border-radius: var(--p-r-sm); border: 1px solid var(--p-line);
  background: var(--p-card); text-decoration: none !important;
  transition: transform var(--p-dur) var(--p-ease), border-color var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease);
}
.bt-dash__step:hover{ transform: translateX(3px); border-color: rgba(201,162,39,.5); background: var(--p-warm); }
.bt-dash__num{
  display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: 50%;
  border: 1px solid rgba(201,162,39,.55); color: var(--p-gold-text);
  font-family: var(--p-display); font-weight: 600; font-size: 1.02rem; font-variant-numeric: tabular-nums;
  transition: background var(--p-dur) var(--p-ease), color var(--p-dur) var(--p-ease);
}
.bt-dash__steptext{ display: grid; gap: .1rem; min-width: 0; }
.bt-dash__steptext strong{ font-family: var(--p-display); font-size: var(--bt-fs-lg); font-weight: 600; color: var(--p-plum); letter-spacing: -.01em; }
.bt-dash__steptext em{ font-style: normal; font-size: var(--bt-fs-sm); color: var(--p-text-soft); }
.bt-dash__steps li.is-done .bt-dash__num{ background: var(--p-gold); border-color: var(--p-gold); color: var(--p-ink); }
.bt-dash__steps li.is-done .bt-dash__steptext strong{ color: var(--p-text-soft); }
.bt-dash__steps li.is-done .bt-dash__step{ background: transparent; }

/* --- what the seat includes ----------------------------------------------- */
.bt-dash__grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: .95rem; align-items: start; }
.bt-dash__list{ list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.bt-dash__list li{ display: grid; gap: .15rem; padding-left: 1.15rem; position: relative; margin: 0; }
.bt-dash__list li::before{
  content: ""; position: absolute; left: 0; top: .55em; width: .42rem; height: .42rem;
  border-radius: 50%; background: var(--p-gold); opacity: .75;
}
.bt-dash__list strong{ font-family: var(--p-display); font-size: var(--bt-fs-lg); font-weight: 600; color: var(--p-plum); letter-spacing: -.01em; line-height: 1.25; }
.bt-dash__list strong a{ color: inherit; border-bottom: 1px solid rgba(201,162,39,.45); }
.bt-dash__list strong a:hover{ border-bottom-color: var(--p-gold); }
.bt-dash__list span{ font-size: var(--bt-fs-sm); color: var(--p-text-soft); line-height: 1.55; }

/* --- the next seat -------------------------------------------------------- */
.bt-dash__up{
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(1rem, 3vw, 2rem); align-items: center;
  padding: clamp(1.3rem, 2.8vw, 2rem) clamp(1.4rem, 3vw, 2.2rem); border-radius: var(--p-r);
  background: linear-gradient(110deg, var(--p-ink), var(--p-violet)); color: var(--p-ivory);
}
.bt-dash__up h3{ margin: 0 0 .35rem; font-family: var(--p-display); font-weight: 600; font-size: clamp(1.3rem, 2.4vw, 1.75rem); color: var(--p-ivory); letter-spacing: -.01em; }
.bt-dash__up p{ margin: 0; color: rgba(255,253,248,.74); font-size: var(--bt-fs-sm); line-height: 1.55; max-width: 54ch; }
.bt-dash__cta{
  display: inline-block; padding: .82rem 1.6rem; border-radius: 999px; white-space: nowrap;
  background: var(--p-gold); color: var(--p-ink) !important; font-weight: 700;
  font-size: var(--bt-fs-sm); letter-spacing: .04em; text-decoration: none !important;
  transition: transform var(--p-dur) var(--p-ease), box-shadow var(--p-dur) var(--p-ease), background var(--p-dur) var(--p-ease);
}
.bt-dash__cta:hover{ transform: translateY(-2px); background: var(--p-gold-lift); box-shadow: var(--p-glow-h); }

/* --- the invitation, for signed-in non-members ---------------------------- */
.bt-dash__tiers{ display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .95rem; align-items: start; }
.bt-dash__tier{
  padding: clamp(1.3rem, 2.6vw, 1.8rem); border-radius: var(--p-r); background: var(--p-card);
  border: 1px solid var(--p-line); display: grid; gap: .6rem; align-content: start; position: relative;
}
.bt-dash__tier.is-pick{ border-color: rgba(201,162,39,.55); box-shadow: var(--p-card-shadow); }
.bt-dash__pick{
  position: absolute; top: -.7rem; left: clamp(1.3rem, 2.6vw, 1.8rem);
  padding: .28rem .7rem; border-radius: 999px; background: var(--p-gold); color: var(--p-ink);
  font-size: var(--bt-fs-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
}
.bt-dash__tier h3{ margin: 0; font-family: var(--p-display); font-weight: 600; font-size: 1.55rem; color: var(--p-plum); letter-spacing: -.01em; }
.bt-dash__price{ margin: 0; color: var(--p-text-soft); font-size: var(--bt-fs-sm); }
.bt-dash__price span{ font-family: var(--p-display); font-size: 2rem; font-weight: 600; color: var(--p-plum); font-variant-numeric: tabular-nums; }
.bt-dash__tier ul{ list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.bt-dash__tier li{ margin: 0; padding-left: 1.1rem; position: relative; font-size: var(--bt-fs-sm); color: var(--p-text); line-height: 1.5; }
.bt-dash__tier li::before{ content: ""; position: absolute; left: 0; top: .55em; width: .38rem; height: .38rem; border-radius: 50%; background: var(--p-gold); opacity: .7; }
.bt-dash__tier .bt-dash__cta{ justify-self: start; margin-top: .35rem; }

@media (max-width: 720px){
  .bt-dash__hero, .bt-dash__up{ grid-template-columns: minmax(0, 1fr); }
  .bt-dash__badge{ justify-self: start; }
  .bt-dash__cta{ justify-self: start; }
}
@media (prefers-reduced-motion: reduce){
  .bt-dash__jump a, .bt-dash__step, .bt-dash__cta{ transition: none; }
  .bt-dash__jump a:hover, .bt-dash__step:hover, .bt-dash__cta:hover{ transform: none; }
}
