/* Coastal — main stylesheet. Brand tokens first; everything else uses them. */

@font-face {
  font-family: "Outfit";
  src: url("../fonts/outfit-var.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("../fonts/jetbrains-mono-var.woff2") format("woff2");
  font-weight: 100 800;
  font-display: swap;
}

:root {
  --ink: #111418;
  --paper: #ffffff;
  --marigold: #f5a70a;
  --fog: #eceef0;
  --slate: #5b6470;
  --line: #e3e6ea;
  --ink-2: #3a414b;

  --fam-metabolic: #f5a70a;
  --fam-ghrp: #1f6bff;
  --fam-healing: #12a594;
  --fam-wellness: #ff6b4a;

  --font: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --wrap: 1200px;
  --gutter: clamp(16px, 4vw, 56px);
  --radius: 8px;
}
/* Phones: quick repeat taps (qty +/-, carousels) must not trigger double-tap zoom. Pinch zoom still works. */
a, button, input, select, textarea, label, summary, [role="button"], [data-co-qty] { touch-action: manipulation; }


*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 500 17px/1.55 var(--font);
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--ink); text-underline-offset: 3px; }
a:hover { color: var(--ink-2); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
h1, h2, h3 { line-height: 1.1; letter-spacing: -0.02em; font-weight: 800; }
code, kbd, .cp-mono { font-family: var(--mono); }

/* "hidden" always hides, whatever display a component sets (catalog filtering, toggles). */
[hidden] { display: none !important; }
.cp-container { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.cp-main { min-height: 50vh; }
.cp-skip { position: absolute; left: 16px; top: 16px; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.cp-skip:focus { width: auto; height: auto; overflow: visible; clip-path: none; z-index: 100; background: var(--paper); padding: 8px 12px; }
.cp-eyebrow { font: 700 12px/1 var(--mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--slate); margin: 0 0 16px; }
.cp-page-title { font-size: clamp(32px, 5vw, 48px); margin: 48px 0 24px; }
.cp-prose { padding-bottom: 64px; }
.cp-prose > * { max-width: 760px; }

/* Buttons */
.cp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 10px 18px; border-radius: var(--radius);
  font: 600 15px/1 var(--font); text-decoration: none; border: 2px solid transparent; cursor: pointer;
}
.cp-btn--ink { background: var(--ink); color: var(--paper); }
.cp-btn--ink:hover { background: var(--ink-2); color: var(--paper); }
.cp-btn--outline { border-color: var(--ink); color: var(--ink); background: transparent; }
.cp-btn--outline:hover { background: var(--fog); }
.cp-btn--marigold { background: var(--marigold); color: var(--ink); }
.cp-btn--marigold:hover { background: #e09700; color: var(--ink); }
.cp-btn--lg { min-height: 52px; padding: 14px 22px; font-size: 16px; }
.cp-link-strong { font-weight: 600; text-decoration: none; padding: 12px 8px; }

/* Promo bar */
.cp-promo {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 40px; padding: 8px 16px; background: var(--ink); color: var(--paper);
  font-size: 13px; font-weight: 500; text-align: center;
}
.cp-promo .cp-svg { width: 12px; height: 12px; flex: 0 0 12px; }
.cp-promo .cp-svg path:last-child { fill: var(--paper); }

/* Header */
.cp-header { border-bottom: 1px solid var(--line); background: var(--paper); position: sticky; top: 0; z-index: 50; }
.cp-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; }
.cp-logo { display: inline-flex; line-height: 0; }
.cp-logo .cp-svg { width: 150px; height: auto; }
.cp-nav__list { display: flex; gap: 34px; list-style: none; margin: 0; padding: 0; }
.cp-nav__list a { text-decoration: none; font-weight: 600; font-size: 15px; padding: 8px 0; }
.cp-nav__list .current-menu-item > a { border-bottom: 2px solid var(--marigold); }
.cp-header__actions { display: flex; align-items: center; gap: 8px; }
.cp-icon-btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 0; border-radius: var(--radius); background: transparent; color: var(--ink); cursor: pointer;
}
.cp-icon-btn:hover { background: var(--fog); }
.cp-cart-count {
  position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px;
  background: var(--marigold); color: var(--ink); font: 700 11px/18px var(--font); text-align: center;
}
.cp-menu-toggle { display: none; }

@media (max-width: 860px) {
  .cp-header__inner { min-height: 64px; gap: 8px; }
  .cp-menu-toggle { display: inline-flex; }
  .cp-logo { margin-right: auto; }
  .cp-logo .cp-svg { width: 120px; }
  .cp-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--paper); border-bottom: 1px solid var(--line); }
  .cp-nav.is-open { display: block; }
  .cp-nav__list { flex-direction: column; gap: 0; padding: 8px var(--gutter) 16px; }
  .cp-nav__list a { display: block; padding: 12px 0; font-size: 17px; }
  .cp-hide-sm { display: none; }
  .cp-header__actions .cp-btn { min-height: 40px; padding: 8px 12px; font-size: 14px; }
}

/* Homepage hero */
.cp-hero { overflow: hidden; }
.cp-hero__inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; gap: 48px; min-height: 560px; padding-top: 64px; padding-bottom: 64px; }
.cp-hero__title { font-size: clamp(44px, 6.5vw, 72px); line-height: 1; letter-spacing: -0.035em; margin: 0 0 22px; }
.cp-hero__lede { font-size: 19px; color: var(--ink-2); max-width: 520px; margin: 0 0 28px; }
.cp-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cp-hero__note { font-size: 13px; color: var(--slate); margin: 20px 0 0; }
.cp-hero__art { --mark: min(320px, 70vw); position: relative; display: flex; align-items: center; justify-content: center; min-height: 320px; }
.cp-hero__art .cp-svg { position: relative; width: var(--mark); height: auto; }
/* The mark's horizon sits 64.1% down its box (65/35 split): line it up with the gap. */
.cp-hero__horizon { position: absolute; left: -48px; right: -100vw; top: calc(50% + var(--mark) * 0.141); height: 1.5px; background: var(--ink); }
@media (max-width: 860px) {
  .cp-hero__inner { grid-template-columns: 1fr; min-height: 0; padding-top: 40px; gap: 32px; }
  .cp-hero__art { order: -1; min-height: 200px; }
  .cp-hero__art { --mark: 180px; }
  .cp-hero__horizon { left: -100vw; }
}

/* Proof strip */
.cp-proof { background: var(--fog); border-top: 1px solid var(--line); }
.cp-proof__inner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding-top: 28px; padding-bottom: 28px; }
.cp-proof__item { display: flex; align-items: center; gap: 16px; }
.cp-proof__item .cp-svg { width: 22px; height: 22px; flex: 0 0 22px; }
.cp-proof__item strong { display: block; font-size: 16px; }
.cp-proof__item span { display: block; font-size: 14px; color: var(--slate); }
@media (max-width: 860px) { .cp-proof__inner { grid-template-columns: 1fr; } }

/* Strength buttons (product page) */
.cp-strengths { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 20px; }
.cp-strength {
  min-height: 44px; display: inline-flex; align-items: center; padding: 8px 16px;
  border: 1.5px solid var(--line); border-radius: var(--radius); text-decoration: none;
  font: 700 14px/1 var(--mono); color: var(--ink); background: var(--paper);
}
.cp-strength:hover { border-color: var(--ink); }
.cp-strength.is-current { border-color: var(--ink); background: var(--ink); color: var(--paper); }

/* Family accents */
.cp-family-metabolic { --fam: var(--fam-metabolic); }
.cp-family-ghrp { --fam: var(--fam-ghrp); }
.cp-family-healing { --fam: var(--fam-healing); }
.cp-family-wellness { --fam: var(--fam-wellness); }

/* WooCommerce baseline (full shop design comes next) */
.cp-woo { padding-top: 40px; padding-bottom: 64px; }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce input.button.alt,
.woocommerce #respond input#submit {
  background: var(--ink); color: var(--paper); border-radius: var(--radius); font-family: var(--font); font-weight: 600;
  min-height: 44px; padding: 12px 20px;
}
.woocommerce .button:hover, .woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover { background: var(--ink-2); color: var(--paper); }
.woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce ul.products li.product .price {
  font-family: var(--mono); font-weight: 700; color: var(--ink);
}
.woocommerce .quantity .qty { min-height: 44px; border: 1.5px solid var(--line); border-radius: var(--radius); font: 600 16px var(--mono); }
.woocommerce div.product .product_title { font-size: clamp(30px, 4vw, 44px); letter-spacing: -0.025em; }
.woocommerce span.onsale { background: var(--marigold); color: var(--ink); }

/* Posts */
.cp-post-list { display: grid; gap: 20px; }
.cp-post-card h2 { font-size: 22px; margin: 0 0 6px; }
.cp-post-card a { text-decoration: none; }

/* Sections */
.cp-section { padding: clamp(48px, 7vw, 88px) 0; }
.cp-section + .cp-section:not(.cp-section--fog) { padding-top: 0; }
.cp-section--fog { background: var(--fog); }
.cp-section.cp-section--fog + .cp-section:not(.cp-section--fog) { padding-top: clamp(48px, 7vw, 88px); }
.cp-page-hero + .cp-section { padding-top: 0; }
.cp-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.cp-section__head h2, .cp-section h2 { font-size: clamp(28px, 3.6vw, 40px); margin: 0; }
.cp-link-arrow { font-weight: 600; text-decoration: none; white-space: nowrap; }
.cp-link-arrow::after { content: " →"; }
.cp-center { text-align: center; }
.cp-fine { font-size: 13px; color: var(--slate); max-width: 640px; margin: 24px auto 0; }
.cp-eyebrow--light { color: rgba(255,255,255,.65); }

/* Inner page hero */
.cp-page-hero { padding: 32px 0 clamp(32px, 5vw, 56px); border-bottom: 1px solid var(--line); margin-bottom: clamp(48px, 7vw, 88px); }
.cp-page-hero__title { font-size: clamp(38px, 5.6vw, 60px); line-height: 1.02; letter-spacing: -0.03em; margin: 0 0 18px; max-width: 900px; }
.cp-page-hero__lede { font-size: 19px; color: var(--ink-2); max-width: 680px; margin: 0; }
.cp-page-hero--center { text-align: center; }
.cp-page-hero--center .cp-page-hero__title, .cp-page-hero--center .cp-page-hero__lede { margin-left: auto; margin-right: auto; }
.cp-hero__actions--center { justify-content: center; margin-top: 28px; }
.cp-page-hero + .cp-proof { margin-top: calc(-1 * clamp(48px, 7vw, 88px)); border-top: 0; }

/* Lot lookup */
.cp-lookup { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 56px; align-items: center; padding: clamp(28px, 4vw, 48px); border: 1.5px solid var(--ink); border-radius: 12px; }
.cp-lookup__copy h2 { margin-bottom: 10px !important; }
.cp-lookup__copy p { margin: 0; color: var(--ink-2); }
.cp-lookup__form label { display: block; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); margin-bottom: 10px; }
.cp-lookup__row { display: flex; gap: 8px; }
.cp-lookup__row input { flex: 1; min-width: 0; min-height: 52px; padding: 0 16px; border: 1.5px solid var(--line); border-radius: var(--radius); font: 600 17px var(--mono); text-transform: uppercase; color: var(--ink); background: var(--paper); }
.cp-lookup__row input:focus { border-color: var(--ink); outline: none; }
.cp-lookup__row .cp-btn { min-height: 52px; }
@media (max-width: 860px) { .cp-lookup { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 400px) { .cp-lookup__row { flex-direction: column; } }

/* Families */
.cp-families { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cp-family { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 180px; padding: 28px 22px 22px; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; overflow: hidden; transition: border-color .15s, transform .15s; }
.cp-family:hover { border-color: var(--ink); transform: translateY(-2px); color: var(--ink); }
.cp-family__band { position: absolute; top: 0; left: 0; right: 0; height: 6px; background: var(--fam); }
.cp-family__name { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; margin-top: auto; }
.cp-family__desc { font-size: 15px; color: var(--slate); }
@media (max-width: 860px) { .cp-families { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cp-family { min-height: 140px; } }

/* Reasons */
.cp-reasons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.cp-reasons--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 56px; }
.cp-reasons--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cp-reason { border-top: 2px solid var(--ink); padding-top: 20px; }
.cp-reason h3 { font-size: 20px; margin: 0 0 10px; }
.cp-reason p { margin: 0 0 12px; color: var(--ink-2); font-size: 16px; }
@media (max-width: 1000px) { .cp-reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .cp-reasons, .cp-reasons--2, .cp-reasons--3 { grid-template-columns: 1fr; gap: 28px; } }

/* Pricing note, split layout */
.cp-pricing, .cp-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 24px 56px; }
.cp-pricing__body p, .cp-split p { margin: 0 0 16px; font-size: 18px; color: var(--ink-2); }
@media (max-width: 860px) { .cp-pricing, .cp-split { grid-template-columns: 1fr; } }

/* Dark panel */
.cp-night { background: var(--ink); color: var(--paper); border-radius: 14px; padding: clamp(32px, 5vw, 64px); }
.cp-night h2 { color: var(--paper); margin-bottom: 18px !important; }
.cp-night p { color: rgba(255,255,255,.78); font-size: 18px; max-width: 720px; margin: 0 0 14px; }
.cp-night a:not(.cp-btn) { color: var(--marigold); }
.cp-night--split { display: grid; grid-template-columns: minmax(0, 1.4fr) auto; gap: 32px; align-items: center; }
.cp-night__actions { text-align: center; }
.cp-night__sub { font-size: 14px !important; margin-top: 14px !important; }
@media (max-width: 860px) { .cp-night--split { grid-template-columns: 1fr; } .cp-night__actions { text-align: left; } }

/* Stats */
.cp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; border: 1px solid var(--line); border-radius: 12px; }
.cp-stats > div { padding: 24px; border-left: 1px solid var(--line); }
.cp-stats > div:first-child { border-left: 0; }
.cp-stats dt { font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); margin-bottom: 10px; }
.cp-stats dd { margin: 0; font-size: clamp(28px, 3.6vw, 40px); font-weight: 800; letter-spacing: -0.03em; }
@media (max-width: 640px) { .cp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cp-stats > div:nth-child(3) { border-left: 0; } .cp-stats > div:nth-child(n+3) { border-top: 1px solid var(--line); } }

/* Article cards */
.cp-articles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cp-article__link { display: flex; flex-direction: column; height: 100%; padding: 24px; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; transition: border-color .15s; }
.cp-article__link:hover { border-color: var(--ink); color: var(--ink); }
.cp-article__meta { font: 600 12px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); margin: 0 0 14px; }
.cp-article__title { font-size: 21px; line-height: 1.2; margin: 0 0 10px; }
.cp-article__excerpt { font-size: 15px; color: var(--ink-2); margin: 0 0 18px; }
.cp-article__more { margin-top: auto; font-weight: 700; font-size: 15px; }
@media (max-width: 1000px) { .cp-articles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .cp-articles { grid-template-columns: 1fr; } }
.cp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.cp-chip { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; border: 1.5px solid var(--line); border-radius: 999px; font-size: 14px; font-weight: 600; text-decoration: none; }
.cp-chip:hover { border-color: var(--ink); }
.cp-chip.is-current { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.cp-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 40px; }
.cp-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border-radius: var(--radius); text-decoration: none; font-weight: 600; }
.cp-pagination .page-numbers.current { background: var(--ink); color: var(--paper); }

/* Closing call to action */
.cp-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap; padding: clamp(28px, 4vw, 48px); background: var(--fog); border-radius: 14px; }
.cp-cta h2 { margin-bottom: 8px !important; }
.cp-cta p { margin: 0; color: var(--ink-2); }
.cp-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* Welcome */
.cp-welcome { max-width: 720px; }
.cp-code { margin: 32px 0; padding: 28px; border: 1.5px dashed var(--ink); border-radius: 12px; }
.cp-code__label { display: block; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.cp-code__row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 12px 0; }
.cp-code__value { font: 800 clamp(30px, 5vw, 42px)/1 var(--mono); letter-spacing: .04em; }
.cp-code__note { font-size: 15px; color: var(--ink-2); }
.cp-welcome__how { margin: 0 0 32px; }
.cp-welcome__how h2 { font-size: 24px !important; margin-bottom: 12px !important; }
.cp-welcome__how ol { margin: 0; padding-left: 22px; }
.cp-welcome__how li { margin-bottom: 8px; color: var(--ink-2); }
.cp-welcome .cp-fine { margin-left: 0; }

/* Contact + forms */
.cp-contact { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 48px; align-items: start; }
@media (max-width: 860px) { .cp-contact { grid-template-columns: 1fr; } }
.cp-side-card { padding: 22px 0; border-top: 1px solid var(--line); }
.cp-side-card:first-child { border-top: 2px solid var(--ink); }
.cp-side-card h2 { font-size: 17px !important; margin: 0 0 8px !important; }
.cp-side-card p, .cp-side-card ul { margin: 0; font-size: 16px; color: var(--ink-2); }
.cp-side-card ul { padding-left: 18px; }
.cp-side-card li { margin-bottom: 6px; }
.cp-form { display: grid; gap: 4px; }
.cp-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .cp-form__row { grid-template-columns: 1fr; gap: 4px; } }
.cp-field { margin: 0 0 14px; }
.cp-field label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.cp-field__opt { color: var(--slate); font-weight: 500; }
.cp-field input, .cp-field select, .cp-field textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: var(--radius); font: 500 16px var(--font); color: var(--ink); background: var(--paper); }
.cp-field textarea { resize: vertical; }
.cp-field input:focus, .cp-field select:focus, .cp-field textarea:focus { border-color: var(--ink); outline: none; }
.cp-form .cp-btn { justify-self: start; }
.cp-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cp-notice { padding: 16px 18px; border-radius: var(--radius); margin-bottom: 20px; font-size: 16px; }
.cp-notice--ok { background: #e7f6f2; border: 1px solid #12a594; }
.cp-notice--error { background: #fff1ec; border: 1px solid #ff6b4a; }

/* Page content (FAQ, policies, articles) */
.cp-prose h2 { font-size: clamp(24px, 3vw, 30px); margin: 48px 0 14px; }
.cp-prose h3 { font-size: 20px; margin: 32px 0 10px; }
.cp-prose p, .cp-prose li { color: var(--ink-2); }
.cp-prose ul, .cp-prose ol { padding-left: 22px; }
.cp-prose li { margin-bottom: 6px; }
.cp-prose hr { border: 0; border-top: 1px solid var(--line); margin: 40px 0; }
.cp-prose .wp-block-details { border-bottom: 1px solid var(--line); padding: 0; margin: 0; }
.cp-prose .wp-block-details summary { position: relative; list-style: none; cursor: pointer; padding: 18px 40px 18px 0; font-weight: 700; font-size: 17px; color: var(--ink); }
.cp-prose .wp-block-details summary::-webkit-details-marker { display: none; }
.cp-prose .wp-block-details summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font: 400 24px/1 var(--font); }
.cp-prose .wp-block-details[open] summary::after { content: "−"; }
.cp-prose .wp-block-details > :not(summary) { margin: 0 0 18px; }
.cp-prose .wp-block-details + h2 { margin-top: 56px; }

/* Footer (dark, continues the Lot Report band) */
.cp-footer { background: var(--ink); color: rgba(255,255,255,.72); margin-top: 64px; }
.cp-footer a { color: var(--paper); }
.cp-footer__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px 56px; padding-top: 56px; padding-bottom: 40px; }
.cp-footer__logo { display: inline-flex; line-height: 0; margin-bottom: 16px; }
.cp-footer__logo .cp-svg { width: 140px; height: auto; }
.cp-footer__logo .cp-svg path:not([fill="#f5a70a"]):not([fill="#F5A70A"]) { fill: var(--paper); }
.cp-footer__line { margin: 0 0 18px; font-size: 15px; max-width: 340px; color: rgba(255,255,255,.72); }
.cp-footer__track { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 16px; border: 1.5px solid rgba(245,167,10,.55); border-radius: var(--radius); color: var(--marigold) !important; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; margin-bottom: 20px; }
.cp-footer__track:hover { background: rgba(245,167,10,.12); border-color: var(--marigold); }
.cp-footer__addr { font-style: normal; font-size: 14px; line-height: 1.7; color: rgba(255,255,255,.6); }
.cp-footer__addr a { color: rgba(255,255,255,.75); }
.cp-footer__cols { display: grid; grid-template-columns: repeat(3, auto); gap: 24px 56px; }
.cp-footer__head { margin: 0 0 8px; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--marigold); }
.cp-footer__list { list-style: none; margin: 0; padding: 0; }
.cp-footer__list a { text-decoration: none; font-size: 14px; padding: 6px 0; display: inline-block; color: rgba(255,255,255,.8); }
.cp-footer__list a:hover { color: var(--paper); text-decoration: underline; }
.cp-footer__verify { grid-column: 1 / -1; display: flex; justify-content: center; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.12); }
.cp-peptigrity { display: block; line-height: 0; opacity: .92; }
.cp-peptigrity:hover { opacity: 1; }
.cp-peptigrity img { max-width: 100%; height: auto; }
.cp-footer__legal { grid-column: 1 / -1; font-size: 12px; line-height: 1.65; color: rgba(255,255,255,.5); }
.cp-footer__legal p { margin: 0 0 10px; max-width: 980px; }
@media (max-width: 860px) {
  .cp-footer__inner { grid-template-columns: 1fr; }
  .cp-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cp-footer__list a { padding: 10px 0; }
}
@media (max-width: 600px) { .cp-peptigrity img { width: 300px; } }
.cp-prose h2[id] { scroll-margin-top: 96px; }
.cp-faq-nav { display: flex; flex-wrap: wrap; gap: 8px; font-size: 0; }
.cp-faq-nav a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; border: 1.5px solid var(--line); border-radius: 999px; font-size: 14px; font-weight: 600; text-decoration: none; }
.cp-faq-nav a:hover { border-color: var(--ink); }
.cp-tracking { max-width: 760px; }
.cp-field select { appearance: none; -webkit-appearance: none; padding-right: 40px; cursor: pointer;
  background: var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23111418' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center; }
.cp-field select:invalid { color: var(--slate); }
.cp-topic-help__box { margin: 2px 0 18px; padding: 18px 20px; background: var(--fog); border-left: 4px solid var(--marigold); border-radius: var(--radius); animation: cp-fade .18s ease-out; }
.cp-topic-help__title { margin: 0 0 8px; font-weight: 700; font-size: 16px; }
.cp-topic-help__box ul { margin: 0; padding: 0; list-style: none; }
.cp-topic-help__box li { padding: 8px 0; border-top: 1px solid var(--line); font-size: 15px; color: var(--ink-2); }
.cp-topic-help__box li:first-child { border-top: 0; padding-top: 2px; }
.cp-topic-help__box li a { display: inline-block; margin-top: 2px; font-weight: 700; color: var(--ink); white-space: nowrap; }
.cp-topic-help__still { margin: 10px 0 0; font-size: 14px; color: var(--slate); }
@keyframes cp-fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cp-topic-help__box { animation: none; } }

/* Breadcrumbs */
.cp-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; list-style: none; margin: 0 0 20px; padding: 0; font-size: 14px; }
.cp-crumbs li { display: inline-flex; align-items: center; color: var(--slate); }
.cp-crumbs li + li::before { content: "/"; margin: 0 10px; color: #b5bcc5; font-weight: 400; }
.cp-crumbs a { color: var(--slate); text-decoration: none; font-weight: 600; padding: 6px 0; }
.cp-crumbs a:hover { color: var(--ink); text-decoration: underline; }
.cp-crumbs [aria-current] { color: var(--ink); max-width: 36ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 640px) { .cp-crumbs li:last-child { display: none; } .cp-crumbs li:nth-last-child(2)::after { content: ""; } }

/* Article page */
.cp-article-head { padding: 32px 0 clamp(28px, 4vw, 40px); border-bottom: 1px solid var(--line); margin-bottom: clamp(32px, 5vw, 48px); }
.cp-article-head__title, .cp-article-head__meta { max-width: 900px; }
.cp-article-head__title { font-size: clamp(34px, 5vw, 52px); line-height: 1.05; letter-spacing: -0.03em; margin: 0 0 16px; }
.cp-article-head__meta { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0; font: 600 13px/1.4 var(--mono); letter-spacing: .04em; text-transform: uppercase; color: var(--slate); }
.cp-article-body { font-size: 18px; }
.cp-article-body > p:first-child { font-size: 21px; color: var(--ink); }
.cp-article-ruo { margin: 48px 0 0; padding-top: 20px; border-top: 1px solid var(--line); max-width: none; }
.cp-article-more { margin-top: 24px; }
.cp-section--fog .cp-article__link { background: var(--paper); }
.cp-section--fog + .cp-footer { margin-top: 0; }
.cp-crumbs-wrap { padding-top: 32px; }
.cp-crumbs-wrap + .cp-page-title { margin-top: 8px; }
.cp-page-hero .cp-crumbs ol, .cp-article-head .cp-crumbs ol { margin-bottom: clamp(24px, 4vw, 40px); }
.cp-crumbs-wrap .cp-crumbs ol { margin-bottom: clamp(24px, 4vw, 40px); }
.cp-crumbs-wrap + .cp-page-title { margin-top: 0; }
.cp-woo > .cp-crumbs ol { margin-bottom: 24px; }
.cp-page-hero--center { padding-top: clamp(48px, 8vw, 96px); }

/* Lot Report signup band (light, sits on top of the dark footer) */
/* Most pages end with their own bottom padding, so the card only adds space below.
   Pages that end on a dark or fog band get white space above it too. */
.cp-signup { background: var(--paper); color: var(--ink); padding: 8px 0 clamp(48px, 6vw, 72px); }
main:has(> :is(.cp-dark, .cp-section--fog):last-child) + .cp-signup,
html.cp-returning body.home main:has(> .cp-only-back > .cp-dark:last-child) + .cp-signup { padding-top: clamp(48px, 6vw, 72px); }
.cp-signup__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); gap: 20px 48px; align-items: center; }
.cp-signup__inner { background: var(--fog); border-radius: 14px; padding: clamp(24px, 3vw, 32px) clamp(20px, 3.5vw, 40px); }
.cp-signup .cp-eyebrow { margin: 0 0 8px; }
.cp-signup h2 { color: var(--ink); font-size: clamp(22px, 2.3vw, 28px); line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 6px; }
.cp-signup__copy p:not(.cp-eyebrow) { margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.5; max-width: 500px; }
.cp-signup__row { display: flex; gap: 8px; }
.cp-signup__row input { flex: 1; min-width: 0; min-height: 48px; padding: 0 14px; border: 1.5px solid #d5d9de; border-radius: var(--radius); background: var(--paper); color: var(--ink); font: 500 16px var(--font); }
.cp-signup__row input:focus { outline: none; border-color: var(--ink); }
.cp-signup__row .cp-btn { min-height: 48px; white-space: nowrap; }
.cp-signup__fine { margin: 8px 0 0; font-size: 12.5px; color: var(--slate); }
.cp-signup__fine.is-error { color: #b42318; }
.cp-signup__form.is-done .cp-signup__row { display: none; }
.cp-signup__form.is-done .cp-signup__fine { font-size: 16px; color: var(--ink); font-weight: 600; }
.cp-signup__form.is-done .cp-signup__fine::before { content: "✓"; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; margin-right: 10px; border-radius: 50%; background: var(--marigold); color: var(--ink); font-size: 14px; }
.cp-signup + .cp-footer { margin-top: 0; }
@media (max-width: 860px) { .cp-signup__inner { grid-template-columns: minmax(0, 1fr); gap: 18px; } }
@media (max-width: 480px) { .cp-signup__row { flex-direction: column; } .cp-signup__row .cp-btn { width: 100%; } }
.cp-footer__legal strong { color: rgba(255,255,255,.75); }

/* ---------- New site: shared ---------- */
html:not(.cp-returning) .cp-only-back { display: none !important; }
html.cp-returning .cp-only-new { display: none !important; }
.cp-nav__mobile-only { display: none; }
.cp-btn--ghost { border: 1.5px solid rgba(255,255,255,.35); color: var(--paper); background: transparent; }
.cp-btn--ghost:hover { border-color: var(--paper); color: var(--paper); background: rgba(255,255,255,.06); }
.cp-btn--xl { min-height: 56px; padding: 0 24px; font-size: 17px; font-weight: 700; }
.cp-btn svg { flex: 0 0 auto; }
.cp-btn--lg { font-weight: 700; }

/* Search (signed in) */
.cp-search { border-top: 1px solid var(--line); background: var(--paper); }
.cp-search__form { display: flex; gap: 8px; padding-top: 14px; padding-bottom: 14px; }
.cp-search__form input { flex: 1; min-width: 0; min-height: 48px; padding: 0 16px; border: 1.5px solid var(--line); border-radius: var(--radius); font: 500 16px var(--font); color: var(--ink); }
.cp-search__form input:focus { outline: none; border-color: var(--ink); }

/* Dark bands */
.cp-dark { background: var(--ink); color: var(--paper); position: relative; overflow: hidden; }
.cp-dark__eyebrow { margin: 0; font: 700 12px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--marigold); }
.cp-dark__label { font: 700 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: #8c96a3; }
.cp-dark__lede { margin: 0; font-size: 19px; line-height: 1.55; color: #c3cbd5; max-width: 540px; }
.cp-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 6px; }

/* Home sections */
.cp-hsec { padding: clamp(56px, 8vw, 96px) 0; }
.cp-hsec + .cp-hsec:not(.cp-hsec--fog) { padding-top: 0; }
.cp-hsec--fog { background: var(--fog); }
.cp-hsec--fog + .cp-hsec { padding-top: clamp(56px, 8vw, 96px) !important; }
.cp-hsec--tight { padding-top: clamp(32px, 5vw, 48px); padding-bottom: clamp(32px, 5vw, 48px); }
.cp-hsec--first { padding-top: clamp(64px, 9vw, 104px); }
.cp-hsec h2 { font-size: clamp(32px, 4.4vw, 46px); line-height: 1.02; letter-spacing: -0.035em; margin: 0; }
.cp-hsec h2.cp-h2-sm { font-size: clamp(24px, 3vw, 30px); letter-spacing: -0.03em; }
.cp-hsec__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; }
.cp-hsec__head--split { align-items: flex-end; margin-bottom: 40px; }
.cp-hsec__head--split > div { max-width: 640px; }
.cp-hsec__head--split > p { margin: 0; max-width: 380px; color: var(--ink-2); }
.cp-hsec__head .cp-eyebrow { margin-bottom: 14px; }

/* New-visitor hero */
.cp-nhero__horizon { position: absolute; left: 0; right: 0; top: 64%; height: 1.5px; background: rgba(255,255,255,.16); }
.cp-nhero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; gap: 56px; padding-top: clamp(48px, 8vw, 88px); padding-bottom: clamp(56px, 8vw, 96px); }
.cp-nhero__copy { display: flex; flex-direction: column; gap: 24px; }
.cp-nhero__title { margin: 0; font-size: clamp(42px, 6vw, 68px); line-height: 1; letter-spacing: -0.04em; text-wrap: balance; color: var(--paper); }
.cp-nhero__note { margin: 0; font-size: 14px; color: #8c96a3; }
.cp-nhero__art { position: relative; width: 470px; max-width: 100%; height: 380px; justify-self: center; }
.cp-vlabel { position: absolute; left: 0; top: 30px; width: 300px; height: 140px; display: flex; flex-direction: column; background: var(--paper); color: var(--ink); transform: rotate(-4deg); box-shadow: 0 30px 60px rgba(0,0,0,.45); }
.cp-vlabel__main { flex: 1; display: flex; min-height: 0; }
.cp-vlabel__left { flex: 1; min-width: 0; padding: 12px 8px 10px 14px; display: flex; flex-direction: column; }
.cp-vlabel__logo { line-height: 0; margin-bottom: auto; }
.cp-vlabel__logo .cp-svg { width: 84px; height: auto; }
.cp-vlabel__name { font-size: 13px; font-weight: 800; line-height: 1; letter-spacing: .02em; text-transform: uppercase; margin-bottom: 4px; }
.cp-vlabel__mg { font: 700 14px/1 var(--mono); }
.cp-vlabel__qr { position: relative; flex: 0 0 82px; border-left: 1.5px solid var(--ink); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; overflow: hidden; }
.cp-vlabel__qr span { font: 700 7px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.cp-vlabel__scan { position: absolute; left: 6px; right: 6px; height: 2px; background: var(--marigold); box-shadow: 0 0 10px var(--marigold); animation: cp-scan 2.6s ease-in-out infinite; }
@keyframes cp-scan { 0%, 100% { top: 8%; } 50% { top: 86%; } }
@media (prefers-reduced-motion: reduce) { .cp-vlabel__scan { animation: none; top: 46%; } }
.cp-vlabel__band { flex: 0 0 22px; background: var(--marigold); padding: 0 14px; display: flex; align-items: center; justify-content: space-between; font-size: 9px; font-weight: 600; }
.cp-vlabel__band b { font-family: var(--mono); }
.cp-vrecord { position: absolute; right: 0; top: 96px; width: 300px; padding: 20px; display: flex; flex-direction: column; gap: 14px; background: #1b2027; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; box-shadow: 0 30px 60px rgba(0,0,0,.4); }
.cp-vrecord__head { display: flex; align-items: center; justify-content: space-between; font: 700 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: #8c96a3; }
.cp-vrecord__head b { padding: 4px 8px; border-radius: 6px; background: var(--marigold); color: var(--ink); letter-spacing: .04em; }
.cp-vrecord__lot { font: 700 20px/1 var(--mono); letter-spacing: .02em; }
.cp-vrecord__rows { display: grid; grid-template-columns: auto 1fr; gap: 9px 16px; margin: 0; font: 700 12px/1.2 var(--mono); }
.cp-vrecord__rows dt { color: #8c96a3; text-transform: uppercase; }
.cp-vrecord__rows dd { margin: 0; }
@media (max-width: 960px) {
  .cp-nhero__inner { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .cp-nhero__art { justify-self: start; width: 100%; max-width: 470px; height: 330px; }
  .cp-nhero__horizon { display: none; }
}
@media (max-width: 520px) {
  .cp-nhero__art { height: auto; display: flex; flex-direction: column; gap: 16px; }
  .cp-vlabel, .cp-vrecord { position: relative; left: auto; right: auto; top: auto; }
  .cp-vlabel { transform: rotate(-2deg); width: min(300px, 100%); }
  .cp-vrecord { width: 100%; }
}

/* Proof bar */
.cp-proofbar { border-bottom: 1px solid var(--line); }
.cp-proofbar__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; padding-top: 24px; padding-bottom: 24px; }
.cp-proofbar__badge { background: var(--ink); border-radius: 10px; padding: 8px 12px; line-height: 0; }
.cp-proofbar__badge .cp-peptigrity img { width: 280px; }
.cp-proofbar__item strong { display: block; font-size: 17px; font-weight: 800; }
.cp-proofbar__item span { display: block; font-size: 13px; font-weight: 600; color: var(--slate); }
@media (max-width: 600px) {
  .cp-proofbar__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .cp-proofbar__badge { justify-self: start; }
  .cp-proofbar__badge .cp-peptigrity img { width: 220px; }
}

/* What you get */
.cp-perks { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 56px; }
.cp-perks__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.cp-perks__intro .cp-eyebrow { margin: 0; }
.cp-perks__intro p:not(.cp-eyebrow) { margin: 0; color: var(--ink-2); max-width: 460px; }
.cp-perks__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.cp-perks__list li { border-top: 1.5px solid var(--ink); padding: 18px 20px 26px 0; display: flex; flex-direction: column; gap: 8px; }
.cp-perks__list strong { font-size: 19px; font-weight: 800; line-height: 1.2; }
.cp-perks__list span { font-size: 15px; line-height: 1.55; color: var(--ink-2); }
@media (max-width: 860px) { .cp-perks { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
@media (max-width: 480px) { .cp-perks__list { grid-template-columns: minmax(0, 1fr); } .cp-perks__list li { padding-bottom: 20px; } }

/* Timeline */
.cp-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cp-timeline li { background: var(--paper); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 10px; min-height: 190px; }
.cp-timeline__time { font: 700 15px/1.2 var(--mono); color: var(--slate); }
.cp-timeline li:last-child .cp-timeline__time { color: #b47700; }
.cp-timeline strong { font-size: 20px; font-weight: 800; line-height: 1.2; }
.cp-timeline span:last-child { font-size: 15px; line-height: 1.55; color: var(--ink-2); }
@media (max-width: 1000px) { .cp-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .cp-timeline { grid-template-columns: minmax(0, 1fr); } .cp-timeline li { min-height: 0; } }
.cp-stackbox { margin-top: 44px; background: var(--ink); color: var(--paper); border-radius: 14px; padding: 28px 32px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 40px; }
.cp-stackbox > div { display: flex; flex-direction: column; gap: 6px; max-width: 640px; }
.cp-stackbox strong { font-size: clamp(21px, 2.6vw, 26px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; }
.cp-stackbox span { font-size: 15px; line-height: 1.55; color: #c3cbd5; }

/* Reviews */
.cp-reviews-fallback { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding: 24px; background: var(--ink); border-radius: 14px; }
.cp-reviews-fallback p { margin: 0; color: #c3cbd5; font-size: 15px; max-width: 420px; }

/* Lot lookup (homepage) */
.cp-lot { border: 1.5px solid var(--ink); border-radius: 14px; padding: 24px 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; }
.cp-lot__copy { flex: 1 1 300px; display: flex; flex-direction: column; gap: 4px; }
.cp-lot__copy label { font-size: 19px; font-weight: 800; }
.cp-lot__copy span { font-size: 15px; color: var(--ink-2); }
.cp-lot__row { flex: 1 1 380px; min-width: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cp-lot__row input { flex: 1 1 200px; min-width: 0; min-height: 52px; padding: 0 16px; border: 1.5px solid var(--line); border-radius: var(--radius); font: 700 16px var(--mono); text-transform: uppercase; color: var(--ink); }
.cp-lot__row input::placeholder { text-transform: none; font-family: var(--font); font-weight: 500; color: var(--slate); }
.cp-lot__row input:focus { outline: none; border-color: var(--ink); }
@media (max-width: 480px) { .cp-lot { padding: 20px; } .cp-lot__row .cp-btn { width: 100%; } }

/* Homepage FAQ */
.cp-hfaq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 32px 48px; }
.cp-hfaq__head { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.cp-hfaq__head h2 { font-size: clamp(28px, 3.4vw, 34px); line-height: 1.06; letter-spacing: -0.03em; }
.cp-hfaq__item { border-bottom: 1px solid var(--line); }
.cp-hfaq__item:first-child { border-top: 1px solid var(--line); }
.cp-hfaq__item summary { position: relative; list-style: none; cursor: pointer; padding: 18px 40px 18px 0; font-size: 17px; font-weight: 700; }
.cp-hfaq__item summary::-webkit-details-marker { display: none; }
.cp-hfaq__item summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font: 400 24px/1 var(--font); }
.cp-hfaq__item[open] summary::after { content: "−"; }
.cp-hfaq__item p { margin: 0 0 18px; color: var(--ink-2); font-size: 16px; }
@media (max-width: 860px) { .cp-hfaq { grid-template-columns: minmax(0, 1fr); } }

/* Welcome back (signed out) */
.cp-back { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; gap: 48px; padding-top: clamp(48px, 8vw, 80px); padding-bottom: clamp(48px, 8vw, 80px); }
.cp-back__copy { display: flex; flex-direction: column; gap: 20px; }
.cp-back__title { margin: 0; font-size: clamp(44px, 6vw, 64px); line-height: 1; letter-spacing: -0.04em; color: var(--paper); }
.cp-back__links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; font-size: 14px; font-weight: 600; }
.cp-back__links a { color: #8c96a3; text-underline-offset: 4px; }
.cp-back__links a:hover { color: var(--paper); }
.cp-back__quick { display: flex; flex-direction: column; gap: 12px; }
.cp-quick { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; background: #1b2027; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; color: var(--paper); text-decoration: none; }
.cp-quick:hover { border-color: rgba(255,255,255,.4); color: var(--paper); }
.cp-quick > span { display: flex; flex-direction: column; gap: 4px; }
.cp-quick strong { font-size: 17px; }
.cp-quick > span > span { font-size: 14px; color: #c3cbd5; }
@media (max-width: 860px) { .cp-back { grid-template-columns: minmax(0, 1fr); gap: 36px; } }

/* Member promo card */
.cp-promo-card { background: var(--fog); border-radius: 14px; padding: 26px 30px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 40px; }
.cp-promo-card__copy { display: flex; flex-direction: column; gap: 6px; max-width: 680px; }
.cp-promo-card__label { font: 700 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--slate); }
.cp-promo-card__name { font-size: clamp(21px, 2.6vw, 26px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; }
.cp-promo-card__line { font-size: 15px; color: var(--ink-2); }
.cp-promo-card--bench { margin: 0 0 24px; }
.cp-promo-card[hidden] { display: none; }
@media (max-width: 480px) { .cp-promo-card { padding: 22px 20px; } .cp-promo-card .cp-btn { width: 100%; } }

/* Signed-in hero */
.cp-mhero { background: var(--ink); color: var(--paper); }
.cp-mhero__inner { display: flex; flex-direction: column; gap: 32px; padding-top: clamp(40px, 6vw, 56px); padding-bottom: clamp(44px, 6vw, 64px); }
.cp-mhero__title { margin: 0; font-size: clamp(38px, 5.4vw, 56px); line-height: 1; letter-spacing: -0.04em; color: var(--paper); }
.cp-mhero__row { display: flex; flex-wrap: wrap; gap: 20px; }
.cp-ordercard { flex: 2 1 520px; min-width: 0; background: #1b2027; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 18px; }
.cp-ordercard__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; }
.cp-ordercard__title { font-size: 20px; font-weight: 800; }
.cp-ordercard__line { font: 700 12px/1.4 var(--mono); letter-spacing: .08em; color: #8c96a3; }
.cp-ordercard__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.cp-ordercard__actions .cp-btn--lg { min-height: 48px; }
.cp-ordercard__link { display: inline-flex; align-items: center; min-height: 48px; padding: 0 8px; color: var(--paper) !important; font-size: 15px; font-weight: 700; text-underline-offset: 4px; }
.cp-ordercard__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cp-ordercard__items li { font-size: 16px; font-weight: 600; padding-left: 16px; position: relative; }
.cp-ordercard__items li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--marigold); }
.cp-ordercard__more { color: #8c96a3; }
.cp-ordercard__code { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 16px 18px; border: 1.5px dashed rgba(255,255,255,.35); border-radius: 10px; }
.cp-ordercard__code span { font: 800 clamp(24px, 4vw, 32px)/1 var(--mono); letter-spacing: .04em; color: var(--marigold); }
.cp-ordercard__note { margin: 0; font-size: 15px; color: #c3cbd5; }
.cp-progress { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.cp-progress li { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 600; color: #8c96a3; }
.cp-progress li span { height: 6px; border-radius: 3px; background: rgba(255,255,255,.18); }
.cp-progress li.is-done { color: var(--paper); }
.cp-progress li.is-done span { background: var(--paper); }
.cp-progress li.is-now { color: var(--paper); font-weight: 800; }
.cp-progress li.is-now span { background: var(--marigold); }
.cp-credits { flex: 1 1 260px; min-width: 0; background: var(--paper); color: var(--ink); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.cp-credits__label { font: 700 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--slate); }
.cp-credits__n { font-size: 48px; font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.cp-credits__note { font-size: 15px; line-height: 1.5; color: var(--ink-2); }
@media (max-width: 560px) { .cp-ordercard { padding: 20px; } .cp-ordercard__actions .cp-btn { flex: 1 1 100%; } }
.cp-hsec .cp-families .cp-family { min-height: 150px; }

/* Mobile header for the new nav */
@media (max-width: 860px) {
  .cp-nav__mobile-only { display: block; border-top: 1px solid var(--line); margin-top: 8px; }
  .cp-header__actions .cp-only-back.cp-btn { min-height: 40px; padding: 8px 14px; font-size: 14px; }
}

/* Homepage polish */
.cp-nhero__horizon { left: 52%; }
@media (max-width: 600px) {
  .cp-proofbar__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 12px; }
  .cp-proofbar__badge { grid-column: 1 / -1; }
  .cp-proofbar__item strong { font-size: 14px; line-height: 1.2; margin-bottom: 2px; }
  .cp-proofbar__item span { font-size: 12px; line-height: 1.3; }
  .cp-timeline { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter) 4px; scrollbar-width: none; }
  .cp-timeline::-webkit-scrollbar { display: none; }
  .cp-timeline li { flex: 0 0 78%; scroll-snap-align: start; padding: 20px; }
  .cp-hsec__head--split { margin-bottom: 24px; }
  .cp-stackbox { margin-top: 24px; padding: 24px 20px; }
  .cp-stackbox .cp-btn { width: 100%; }
}
@media (max-width: 600px) { .cp-timeline { margin: 0 calc(-1 * var(--gutter)) 0 0; padding: 0 var(--gutter) 4px 0; } }

/* Round 2: one Peptigrity spot, mobile timeline, footer */
.cp-proofbar__inner { justify-content: flex-start; gap: 20px 64px; }
.cp-trust { background: var(--ink); color: var(--paper); }
.cp-trust__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px 48px; padding-top: 36px; padding-bottom: 36px; }
.cp-trust h2 { margin: 0 0 8px; font-size: clamp(22px, 2.6vw, 28px); letter-spacing: -0.03em; color: var(--paper); }
.cp-trust p { margin: 0 0 12px; font-size: 15px; color: #c3cbd5; max-width: 520px; }
.cp-trust .cp-link-arrow { color: var(--marigold); font-size: 15px; }
.cp-trust__badge { line-height: 0; }
.cp-trust__badge .cp-peptigrity img { width: 560px; max-width: 100%; height: auto; }
.cp-proofbar + .cp-trust { margin-top: 0; }
@media (max-width: 860px) { .cp-trust__inner { grid-template-columns: minmax(0, 1fr); padding-top: 32px; padding-bottom: 32px; } }
.cp-footer__legal { padding-top: 28px; border-top: 1px solid rgba(255,255,255,.12); }

@media (max-width: 600px) {
  .cp-proofbar__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  /* Timeline becomes a vertical line with dots */
  .cp-timeline { display: flex; flex-direction: column; overflow: visible; margin: 0; padding: 0; gap: 0; }
  .cp-timeline li { flex: none; background: transparent; border-radius: 0; min-height: 0; padding: 0 0 24px 30px; position: relative; gap: 6px; }
  .cp-timeline li::before { content: ""; position: absolute; left: 0; top: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--ink); }
  .cp-timeline li:last-child::before { background: var(--marigold); }
  .cp-timeline li::after { content: ""; position: absolute; left: 6px; top: 20px; bottom: 2px; width: 2px; background: #c3c9d1; }
  .cp-timeline li:last-child { padding-bottom: 0; }
  .cp-timeline li:last-child::after { display: none; }
  .cp-timeline strong { font-size: 18px; }
  .cp-timeline__time { font-size: 13px; }
  /* Footer: tighter, policies in two columns */
  .cp-footer__inner { gap: 32px; padding-top: 44px; }
  .cp-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .cp-footer__cols > nav:last-child { grid-column: 1 / -1; }
  .cp-footer__cols > nav:last-child .cp-footer__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .cp-footer__list a { padding: 7px 0; }
  .cp-footer__line { margin-bottom: 14px; }
}
@media (max-width: 600px) {
  .cp-trust__badge .cp-peptigrity img { width: 240px; }
  .cp-proofbar__inner { gap: 12px; padding-top: 18px; padding-bottom: 18px; }
  .cp-proofbar__item span { display: none; }
  .cp-proofbar__item strong { font-size: 14px; }
}
.cp-proofbar__inner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 600px) { .cp-proofbar__inner { align-items: center; } .cp-proofbar__item strong { font-size: 13px; line-height: 1.25; } }

/* ---------- Account: sign in / create account ---------- */
.cp-account { padding-bottom: clamp(48px, 7vw, 88px); }
.cp-account--out { padding-top: clamp(32px, 6vw, 72px); }
.cp-auth { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); max-width: 1000px; margin: 0 auto; border-radius: 18px; overflow: hidden; box-shadow: 0 1px 0 var(--line), 0 24px 60px rgba(17,20,24,.12); border: 1px solid var(--line); }
.cp-auth__card { background: var(--paper); padding: clamp(28px, 5vw, 48px); display: flex; flex-direction: column; gap: 22px; }
.cp-auth__side { background: var(--ink); color: var(--paper); padding: clamp(28px, 5vw, 48px); display: flex; flex-direction: column; justify-content: center; }
.cp-auth__side .cp-dark__label { display: block; margin: 0 0 18px; }
.cp-auth [data-show], .cp-auth [data-panel] { display: none; }
.cp-auth[data-tab="signin"] [data-show="signin"], .cp-auth[data-tab="register"] [data-show="register"],
.cp-auth[data-tab="signin"] [data-panel="signin"], .cp-auth[data-tab="register"] [data-panel="register"] { display: block; }
.cp-auth__tabs { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; background: var(--fog); border-radius: 10px; }
.cp-auth__tabs a { display: flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 8px; font-size: 15px; font-weight: 700; color: var(--slate); text-decoration: none; }
.cp-auth__tabs a[aria-selected="true"] { background: var(--paper); color: var(--ink); box-shadow: 0 1px 3px rgba(17,20,24,.12); }
.cp-auth__title { margin: 0; font-size: clamp(30px, 4vw, 40px); line-height: 1.05; letter-spacing: -0.035em; }
.cp-auth__intro p { margin: 10px 0 0; color: var(--ink-2); font-size: 16px; }
.cp-auth__social { display: grid; gap: 10px; }
.cp-auth__social-btn { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; border: 1.5px solid var(--line); border-radius: var(--radius); font-weight: 700; font-size: 16px; text-decoration: none; color: var(--ink); background: var(--paper); }
.cp-auth__social-btn:hover { border-color: var(--ink); color: var(--ink); }
.cp-auth__social-fine { margin: 2px 0 0; font-size: 12.5px; line-height: 1.4; color: var(--slate); text-align: center; }
.cp-auth__or { display: flex; align-items: center; gap: 12px; color: var(--slate); font-size: 13px; font-weight: 600; }
.cp-auth__or::before, .cp-auth__or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.cp-auth__form { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.cp-auth__form .cp-field { margin: 0 0 16px; }
.cp-field__row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.cp-auth__forgot { font-size: 14px; font-weight: 600; color: var(--slate); }
.cp-auth__submit { width: 100%; margin-top: 6px; }
.cp-auth__switch { margin: 18px 0 0; font-size: 15px; color: var(--ink-2); text-align: center; }
.cp-auth__switch a { font-weight: 700; }
.cp-auth__partner { margin: 10px 0 0; font-size: 13px; color: var(--slate); text-align: center; }
.cp-auth__partner a { color: var(--ink-2); font-weight: 600; }
.cp-auth__note { font-size: 15px; color: var(--ink-2); }
.cp-consent { margin: 0 0 14px; }
.cp-consent label { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.45; color: var(--ink-2); cursor: pointer; }
.cp-consent input { flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--ink); }
.cp-auth .woocommerce-privacy-policy-text p { margin: 0 0 14px; font-size: 13px; line-height: 1.5; color: var(--slate); }
.cp-auth__perks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.cp-auth__perks li { display: flex; flex-direction: column; gap: 3px; padding-left: 26px; position: relative; }
.cp-auth__perks li::before { content: ""; position: absolute; left: 0; top: 5px; width: 12px; height: 12px; border-radius: 50%; background: var(--marigold); }
.cp-auth__perks strong { font-size: 17px; }
.cp-auth__perks span { font-size: 14px; color: #c3cbd5; }
.cp-auth__quick { display: flex; flex-direction: column; gap: 10px; }
@media (max-width: 860px) {
  .cp-auth { grid-template-columns: minmax(0, 1fr); border-radius: 14px; }
  .cp-account--out { padding-top: 20px; }
}

/* Inputs on account, cart and checkout pages: readable size */
.woocommerce form .input-text, .woocommerce form select, .woocommerce-page form .input-text, .cp-auth input[type="text"], .cp-auth input[type="email"], .cp-auth input[type="password"] {
  width: 100%; min-height: 50px; padding: 10px 14px; border: 1.5px solid #d5d9de; border-radius: var(--radius); font: 500 16px/1.3 var(--font); color: var(--ink); background: var(--paper);
}
.woocommerce form .input-text:focus, .cp-auth input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(17,20,24,.08); }
.cp-auth .cp-field label, .woocommerce form .form-row label { font-size: 14px; font-weight: 700; margin-bottom: 6px; display: inline-block; }
.woocommerce form .password-input { display: block; position: relative; }
.woocommerce form .show-password-input { top: 50% !important; transform: translateY(-50%); right: 12px !important; }
.woocommerce-notices-wrapper:empty { display: none; }
.cp-account .woocommerce-error, .cp-account .woocommerce-message, .cp-account .woocommerce-info { max-width: 1000px; margin: 0 auto 20px; border-radius: var(--radius); }

/* ---------- Account: your bench ---------- */
.cp-account--in .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 48px; align-items: start; }
.cp-account--in .woocommerce::before, .cp-account--in .woocommerce::after { display: none; }
.cp-account--in .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none !important; width: auto !important; }
.woocommerce-MyAccount-navigation { position: sticky; top: 100px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 14px; border-radius: var(--radius); font-size: 15px; font-weight: 600; text-decoration: none; color: var(--ink); }
.woocommerce-MyAccount-navigation a:hover { background: var(--fog); color: var(--ink); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--ink); color: var(--paper); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--slate); }
.woocommerce-MyAccount-content { min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.cp-bench__title { margin: 0; font-size: clamp(32px, 4.4vw, 44px); letter-spacing: -0.035em; line-height: 1.05; }
.cp-bcard { border: 1.5px solid var(--ink); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 18px; }
.cp-bcard__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; }
.cp-bcard__head h2 { margin: 0; font-size: 20px; letter-spacing: -0.01em; }
.cp-bcard__head span { font-size: 14px; font-weight: 600; color: var(--slate); }
.cp-bcard__items { list-style: none; margin: 0; padding: 0; }
.cp-bcard__items li { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 16px; font-weight: 700; }
.cp-bcard__items i, .cp-usual__item i { flex: 0 0 6px; width: 6px; height: 28px; border-radius: 2px; background: var(--fam, var(--line)); }
.cp-bcard__items b { font: 700 13px var(--mono); color: var(--slate); margin-left: 6px; }
.cp-bcard__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.cp-bcard__actions .cp-btn--lg { min-height: 48px; }
.cp-bcard__link { padding: 0 8px; font-size: 15px; font-weight: 700; }
.cp-bcard__code { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 16px 18px; border: 1.5px dashed var(--ink); border-radius: 10px; }
.cp-bcard__code span { font: 800 clamp(24px, 4vw, 32px)/1 var(--mono); letter-spacing: .04em; }
.cp-bcard__note { margin: 0; color: var(--ink-2); }
.cp-progress--light li { color: var(--slate); }
.cp-progress--light li span { background: var(--line); }
.cp-progress--light li.is-done, .cp-progress--light li.is-now { color: var(--ink); }
.cp-progress--light li.is-done span { background: var(--ink); }
.cp-bench__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.cp-bench__grid h2 { margin: 0 0 4px; font-size: 20px; }
.cp-usual { background: var(--fog); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.cp-usual__item { background: var(--paper); border-radius: 10px; padding: 12px 14px; display: flex; align-items: center; gap: 14px; }
.cp-usual__name { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cp-usual__name a { font-weight: 700; text-decoration: none; }
.cp-usual__name small { font-size: 13px; font-weight: 600; color: var(--slate); }
.cp-usual .cp-link-arrow { font-size: 15px; margin-top: 4px; }
.cp-bench__side { display: flex; flex-direction: column; gap: 20px; }
.cp-bcredits { background: var(--ink); color: var(--paper); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.cp-bcredits h2 { font: 700 12px/1 var(--mono) !important; letter-spacing: .12em; text-transform: uppercase; color: #8c96a3; }
.cp-bcredits__n { font-size: 48px; font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.cp-bcredits p { margin: 0; font-size: 15px; color: #c3cbd5; }
.cp-bhelp { border: 1px solid var(--line); border-radius: 14px; padding: 20px 24px; display: flex; flex-direction: column; }
.cp-bhelp a { padding: 10px 0; border-top: 1px solid var(--line); font-weight: 600; text-decoration: none; }
.cp-bhelp a:first-of-type { border-top: 0; }
.cp-bhelp a::after { content: " →"; }
/* Woo tables and forms inside the bench */
.woocommerce-MyAccount-content table.shop_table { border: 1px solid var(--line); border-radius: 12px; border-collapse: separate; overflow: hidden; }
.woocommerce-MyAccount-content table.shop_table th { font: 700 12px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); background: var(--fog); padding: 14px 12px; }
.woocommerce-MyAccount-content table.shop_table td { padding: 14px 12px; }
.woocommerce-MyAccount-content .woocommerce-button { min-height: 40px !important; padding: 8px 14px !important; font-size: 14px !important; }
.woocommerce-MyAccount-content a:not(.button):not(.cp-btn) { text-underline-offset: 3px; }
.woocommerce-MyAccount-content .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.woocommerce-MyAccount-content .woocommerce-Addresses::before, .woocommerce-MyAccount-content .woocommerce-Addresses::after { display: none; }
.woocommerce-MyAccount-content .woocommerce-Address { float: none !important; width: auto !important; border: 1px solid var(--line); border-radius: 12px; padding: 20px; }
.woocommerce-MyAccount-content fieldset { border: 1px solid var(--line); border-radius: 12px; padding: 16px 20px; margin: 16px 0; }
@media (max-width: 860px) {
  .cp-account--in .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .woocommerce-MyAccount-navigation { position: static; margin: 0 calc(-1 * var(--gutter)); }
  .woocommerce-MyAccount-navigation ul { flex-direction: row; overflow-x: auto; padding: 0 var(--gutter); gap: 6px; scrollbar-width: none; }
  .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
  .woocommerce-MyAccount-navigation a { white-space: nowrap; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: 999px; font-size: 14px; }
  .woocommerce-MyAccount-navigation .is-active a { border-color: var(--ink); }
  .cp-bench__grid, .woocommerce-MyAccount-content .woocommerce-Addresses { grid-template-columns: minmax(0, 1fr); }
  .cp-bcard { padding: 20px; }
  .cp-bcard__actions .cp-btn { flex: 1 1 100%; }
}
.woocommerce .cp-auth form.login, .woocommerce .cp-auth form.register { border: 0; padding: 0; margin: 0; border-radius: 0; }
.cp-auth__card { gap: 20px; }
/* Peptigrity band on phones: badge first, full column width */
@media (max-width: 860px) {
  .cp-trust__badge { order: -1; }
  .cp-trust__badge .cp-peptigrity, .cp-trust__badge .cp-peptigrity picture { display: block; width: 100%; }
}
@media (max-width: 600px) {
  .cp-trust__badge .cp-peptigrity img { width: 100%; max-width: 420px; }
}

/* ---------- Links: cleaner underlines ---------- */
a { text-decoration-thickness: 1px; text-underline-offset: 0.25em; text-decoration-color: rgba(17,20,24,.35); }
a:hover { text-decoration-color: currentColor; }
.cp-dark a, .cp-footer a, .cp-auth__side a, .cp-mhero a, .cp-stackbox a, .cp-trust a { text-decoration-color: rgba(255,255,255,.4); }
/* UI links (actions, not sentences): no underline until hover */
.cp-bcard__link, .cp-ordercard__link, .cp-auth__switch a, .cp-auth__forgot, .cp-back__links a,
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-number a, .cp-crumbs a { text-decoration: none; }
.cp-bcard__link:hover, .cp-ordercard__link:hover, .cp-auth__switch a:hover, .cp-auth__forgot:hover, .cp-back__links a:hover,
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-number a:hover { text-decoration: underline; }
.cp-bcard__link::after, .cp-ordercard__link::after { content: " →"; }
.cp-auth__switch a { color: var(--ink); border-bottom: 1.5px solid var(--marigold); padding-bottom: 1px; }
.cp-auth__switch a:hover { text-decoration: none; border-bottom-color: var(--ink); }

/* ---------- Orders table ---------- */
.woocommerce-MyAccount-content table.shop_table tbody th, .woocommerce-MyAccount-content table.shop_table tbody td { background: var(--paper); font: 500 15px/1.4 var(--font); letter-spacing: 0; text-transform: none; color: var(--ink); vertical-align: middle; }
.woocommerce-orders-table__cell-order-number a { font: 700 14px var(--mono); color: var(--ink); }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions { white-space: nowrap; }
.woocommerce-MyAccount-content .woocommerce-orders-table .woocommerce-button,
.woocommerce-MyAccount-content .woocommerce-button { display: inline-flex !important; align-items: center; justify-content: center; min-height: 38px !important; padding: 0 16px !important; line-height: 1 !important; margin: 3px 8px 3px 0; }
.woocommerce-orders-table .woocommerce-button.view { background: var(--paper); color: var(--ink); border: 1.5px solid var(--ink); }
.woocommerce-orders-table .woocommerce-button.view:hover { background: var(--fog); color: var(--ink); }

@media (max-width: 860px) {
  /* Account menu: even 3-column grid, everything visible (Nov 6, Rudy) */
  .woocommerce-MyAccount-navigation { margin: 0; }
  .woocommerce-MyAccount-navigation ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; padding: 0; gap: 6px; }
  .woocommerce-MyAccount-navigation a { display: flex; align-items: center; justify-content: center; min-height: 40px; padding: 6px 4px; font-size: 13.5px; text-align: center; white-space: normal; line-height: 1.15; }
}
@media (max-width: 768px) {
  /* Orders become cards */
  .woocommerce-MyAccount-content table.woocommerce-orders-table { border: 0; border-radius: 0; overflow: visible; }
  .woocommerce-orders-table tbody tr { display: block; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; }
  .woocommerce-MyAccount-content .woocommerce-orders-table tbody th, .woocommerce-MyAccount-content .woocommerce-orders-table tbody td { display: flex !important; justify-content: space-between; align-items: center; gap: 12px; padding: 6px 0 !important; border: 0 !important; background: transparent; text-align: right !important; }
  .woocommerce-orders-table tbody th.woocommerce-orders-table__cell-order-number { display: flex !important; padding-bottom: 10px !important; margin-bottom: 4px; border-bottom: 1px solid var(--line) !important; }
  .woocommerce-orders-table tbody th.woocommerce-orders-table__cell-order-number::before { content: "Order"; font-weight: 700; }
  .woocommerce-orders-table tbody td::before { font-weight: 600; color: var(--slate); float: none !important; }
  .woocommerce-orders-table__cell-order-actions { padding-top: 10px !important; }
  .woocommerce-orders-table__cell-order-actions::before { display: none; }
  .woocommerce-orders-table__cell-order-actions { justify-content: flex-start !important; }
  .woocommerce-MyAccount-content .woocommerce-orders-table .woocommerce-button { flex: 1; margin: 0 !important; }
}
.woocommerce-MyAccount-content table.shop_table { border-spacing: 0; }
@media (max-width: 768px) {
  .woocommerce-MyAccount-content .woocommerce-orders-table tbody td { display: block !important; overflow: hidden; }
  .woocommerce-MyAccount-content .woocommerce-orders-table tbody td::before { float: left !important; }
  .woocommerce-MyAccount-content .woocommerce-orders-table tbody td.woocommerce-orders-table__cell-order-actions { display: flex !important; gap: 8px; }
}

/* ---------- Slide-in menu (phones/tablets) ---------- */
@media (max-width: 860px) { .cp-nav, .cp-nav.is-open { display: none !important; } }
.cp-drawer { position: fixed; inset: 0; z-index: 200; }
.cp-drawer[hidden] { display: none; }
.cp-drawer__backdrop { position: absolute; inset: 0; background: rgba(17,20,24,.55); opacity: 0; transition: opacity .25s ease; }
.cp-drawer__panel { position: absolute; top: 0; bottom: 0; left: 0; width: min(360px, 88vw); background: var(--paper); display: flex; flex-direction: column; padding: 0 24px 28px; overflow-y: auto; transform: translateX(-100%); transition: transform .25s ease; box-shadow: 12px 0 40px rgba(17,20,24,.2); }
.cp-drawer.is-open .cp-drawer__backdrop { opacity: 1; }
.cp-drawer.is-open .cp-drawer__panel { transform: none; }
@media (prefers-reduced-motion: reduce) { .cp-drawer__backdrop, .cp-drawer__panel { transition: none; } }
.cp-locked, .cp-locked body { overflow: hidden; }
.cp-drawer__head { display: flex; align-items: center; justify-content: space-between; min-height: 64px; margin: 0 -8px 8px 0; }
.cp-drawer__head .cp-logo .cp-svg { width: 120px; }
.cp-drawer__nav { display: flex; flex-direction: column; padding: 8px 0 20px; border-bottom: 1px solid var(--line); }
.cp-drawer__nav a { padding: 12px 0; font-size: 24px; font-weight: 800; letter-spacing: -0.02em; text-decoration: none; color: var(--ink); }
.cp-drawer__account { display: flex; flex-direction: column; gap: 10px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.cp-drawer__account .cp-btn { width: 100%; }
.cp-drawer__acct-link { padding: 8px 0; font-size: 17px; font-weight: 700; text-decoration: none; color: var(--ink); }
.cp-drawer__small { text-align: center; font-size: 14px; font-weight: 600; color: var(--slate); text-decoration: none; padding-top: 4px; }
.cp-drawer__quick { display: flex; flex-direction: column; padding-top: 18px; margin-top: auto; }
.cp-drawer__quick a { padding: 9px 0; font-size: 15px; font-weight: 600; color: var(--slate); text-decoration: none; }
.cp-drawer__quick a:hover, .cp-drawer__acct-link:hover { color: var(--ink); text-decoration: underline; }

/* ---------- Hero proof points (inside the dark hero) ---------- */
.cp-proofbar { display: none; }
.cp-hproof { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding-top: 28px; padding-bottom: 36px; border-top: 1px solid rgba(255,255,255,.12); }
.cp-nhero__inner { padding-bottom: clamp(40px, 6vw, 72px); }
.cp-hproof__item { display: flex; align-items: flex-start; gap: 14px; }
.cp-hproof__item .cp-svg { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 1px; }
.cp-hproof__item .cp-svg path:last-child { fill: var(--paper); }
.cp-hproof__item strong { display: block; font-size: 17px; font-weight: 800; color: var(--paper); line-height: 1.25; }
.cp-hproof__item span { display: block; margin-top: 3px; font-size: 14px; color: #8c96a3; }
@media (max-width: 600px) {
  .cp-hproof { grid-template-columns: minmax(0, 1fr); gap: 14px; padding-top: 22px; padding-bottom: 28px; }
  .cp-hproof__item { align-items: center; }
  .cp-hproof__item .cp-svg { flex-basis: 18px; width: 18px; height: 18px; margin-top: 0; }
  .cp-hproof__item strong { font-size: 15px; display: inline; }
  .cp-hproof__item span { display: inline; font-size: 13px; margin: 0 0 0 6px; }
}

/* ---------- Peptigrity band: light, badge in a dark card ---------- */
.cp-trust { background: var(--fog); color: var(--ink); }
.cp-trust h2 { color: var(--ink); }
.cp-trust p { color: var(--ink-2); }
.cp-trust .cp-link-arrow { color: var(--ink); }
.cp-trust__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 24px 56px; padding-top: clamp(40px, 6vw, 64px); padding-bottom: clamp(40px, 6vw, 64px); }
.cp-trust__badge { background: var(--ink); border-radius: 14px; padding: 18px; box-shadow: 0 18px 40px rgba(17,20,24,.18); }
.cp-trust__badge .cp-peptigrity, .cp-trust__badge .cp-peptigrity picture { display: block; width: 100%; }
.cp-trust__badge .cp-peptigrity img { display: block; width: 100%; max-width: none; height: auto; }
@media (max-width: 860px) {
  .cp-trust__inner { grid-template-columns: minmax(0, 1fr); }
  .cp-trust__badge { padding: 14px; justify-self: stretch; }
}
@media (max-width: 600px) {
  .cp-trust__badge .cp-peptigrity img { width: 100%; max-width: none; }
}

/* ---------- Phone hero art: label and record overlap ---------- */
@media (max-width: 520px) {
  .cp-nhero__art { display: block; position: relative; width: 100%; height: 300px; }
  .cp-vlabel { position: absolute; left: 0; top: 8px; width: 262px; height: 124px; transform: rotate(-4deg); }
  .cp-vlabel__qr { flex-basis: 72px; }
  .cp-vlabel__qr svg { width: 52px; height: 52px; }
  .cp-vlabel__band { font-size: 8px; padding: 0 10px; }
  .cp-vrecord { position: absolute; left: auto; right: 0; top: 92px; width: 248px; padding: 16px; gap: 10px; }
  .cp-vrecord__lot { font-size: 17px; }
  .cp-vrecord__rows { font-size: 11px; gap: 7px 12px; }
}
.cp-hproof { border-top: 0; }
.cp-hproof::before { content: ""; position: absolute; top: 0; left: var(--gutter); right: var(--gutter); height: 1px; background: rgba(255,255,255,.12); }
.cp-nhero__horizon { display: none; }

/* ---------- Order details: plain summary, no grey label column ---------- */
.woocommerce-order-details table.shop_table tfoot th, .woocommerce-order-details table.shop_table tfoot td { background: var(--paper); font: 500 15px/1.4 var(--font); letter-spacing: 0; text-transform: none; color: var(--ink-2); padding: 10px 16px; border-top: 0; }
.woocommerce-order-details table.shop_table tfoot tr:first-child th, .woocommerce-order-details table.shop_table tfoot tr:first-child td { border-top: 1px solid var(--line); padding-top: 16px; }
.woocommerce-order-details table.shop_table tfoot td { text-align: right; color: var(--ink); font-weight: 600; }
.woocommerce-order-details table.shop_table tfoot tr:last-child th, .woocommerce-order-details table.shop_table tfoot tr:last-child td { border-top: 1px solid var(--line); padding: 16px; font-size: 18px; font-weight: 800; color: var(--ink); }
.woocommerce-order-details table.shop_table thead th:last-child, .woocommerce-order-details table.shop_table tbody td:last-child { text-align: right; }
.woocommerce-order-details .product-name a { text-decoration: none; font-weight: 700; }
.woocommerce-order-details .product-name a:hover { text-decoration: underline; }
.woocommerce-order-details .product-quantity { font: 700 13px var(--mono); color: var(--slate); margin-left: 4px; }
.woocommerce-MyAccount-content mark { background: none; font-weight: 700; color: var(--ink); }
.woocommerce-customer-details address { border: 1px solid var(--line) !important; border-radius: 12px; padding: 18px 20px !important; font-style: normal; line-height: 1.7; }
.woocommerce-order-details table.shop_table tfoot th, .woocommerce-order-details table.shop_table tfoot td, .woocommerce-order-details table.shop_table tfoot tr:last-child th, .woocommerce-order-details table.shop_table tfoot tr:last-child td { padding-left: 12px; padding-right: 12px; }

/* ---------- Header dropdowns ---------- */
.cp-dd { position: relative; }
.cp-dd__btn { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 8px 0; font: 600 15px var(--font); color: var(--ink); cursor: pointer; }
.cp-dd__btn svg { transition: transform .15s; }
.cp-dd.is-open .cp-dd__btn svg { transform: rotate(180deg); }
.cp-icon-btn.cp-dd__btn { padding: 0; }
.cp-dd__menu { display: none; position: absolute; top: calc(100% + 10px); left: -16px; min-width: 220px; padding: 8px; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 40px rgba(17,20,24,.14); z-index: 60; }
.cp-dd__menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.cp-dd--right .cp-dd__menu { left: auto; right: -8px; }
.cp-dd.is-open .cp-dd__menu { display: block; }
@media (hover: hover) and (min-width: 861px) { .cp-dd:hover .cp-dd__menu { display: block; } }
.cp-dd__menu a { display: block; padding: 10px 12px; border-radius: 8px; font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: none; white-space: nowrap; }
.cp-dd__menu a:hover { background: var(--fog); color: var(--ink); }
.cp-dd__menu .cp-dd__muted { color: var(--slate); border-top: 1px solid var(--line); border-radius: 0 0 8px 8px; margin-top: 4px; padding-top: 12px; }
.cp-nav__list { align-items: center; }

/* Phone menu: Help group */
.cp-drawer__label { margin: 0 0 6px; font: 700 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--slate); }
.cp-drawer__quick a { color: var(--ink); font-size: 16px; }
.cp-drawer__signout { text-align: left; padding-top: 6px; }
.cp-dd__btn svg { transition: none; }
.cp-dd.is-open .cp-dd__btn svg { transform: none; }
.cp-dd__chev { transition: transform .15s; }
.cp-dd.is-open .cp-dd__chev { transform: rotate(180deg); }
.cp-drawer__quick { margin-top: 0; padding-top: 22px; }
.cp-auth__side .cp-dark__label { color: var(--marigold); }

/* ---------- Dark page hero (main-menu pages) ---------- */
.cp-dhero .cp-container { padding-top: 28px; padding-bottom: clamp(44px, 6vw, 64px); }
.cp-dark .cp-crumbs ol { margin-bottom: clamp(20px, 3vw, 32px); }
.cp-dark .cp-crumbs li, .cp-dark .cp-crumbs a { color: #8c96a3; }
.cp-dark .cp-crumbs a:hover { color: var(--paper); }
.cp-dark .cp-crumbs [aria-current] { color: var(--paper); }
.cp-dark .cp-crumbs li + li::before { color: #4a525d; }
.cp-dhero__title { margin: 0 0 18px; max-width: 900px; color: var(--paper); font-size: clamp(38px, 5.6vw, 60px); line-height: 1.02; letter-spacing: -0.035em; }
.cp-dhero .cp-dark__lede { max-width: 680px; }
.cp-section--after-dark { padding-top: clamp(48px, 7vw, 88px) !important; }
.cp-split > div p { margin: 0 0 16px; font-size: 18px; color: var(--ink-2); }

/* ---------- About ---------- */
.cp-founder { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 28px 40px; align-items: start; max-width: 960px; }
.cp-founder__mark .cp-svg { width: 64px; height: 64px; }
.cp-founder .cp-eyebrow { margin-bottom: 14px; }
.cp-founder__quote { margin: 0; }
.cp-founder__quote p { margin: 0 0 16px; font-size: clamp(21px, 2.6vw, 28px); line-height: 1.35; font-weight: 600; letter-spacing: -0.015em; color: var(--ink); }
.cp-founder__sig { margin: 8px 0 0; font-size: 16px; color: var(--ink-2); }
.cp-founder__sig strong { color: var(--ink); }
@media (max-width: 640px) { .cp-founder { grid-template-columns: minmax(0, 1fr); } .cp-founder__mark .cp-svg { width: 44px; height: 44px; } }
.cp-section__head .cp-eyebrow { margin-bottom: 12px; }
.cp-proofs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cp-proof-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; text-decoration: none; color: var(--ink); transition: border-color .15s, transform .15s; }
.cp-proof-card:hover { border-color: var(--ink); transform: translateY(-2px); color: var(--ink); }
.cp-proof-card__label { font: 700 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--slate); }
.cp-proof-card strong { font-size: 22px; letter-spacing: -0.02em; }
.cp-proof-card > span:not([class]) { font-size: 15px; color: var(--ink-2); }
.cp-proof-card__go { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 10px; font-weight: 700; font-size: 15px; }
@media (max-width: 860px) { .cp-proofs { grid-template-columns: minmax(0, 1fr); } }
.cp-wrong { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 28px 56px; align-items: start; }
.cp-wrong h2 { margin: 0 !important; }
.cp-eyebrow--light { color: var(--marigold) !important; margin-bottom: 12px; }
.cp-wrong__steps { list-style: none; margin: 0; padding: 0; counter-reset: s; display: flex; flex-direction: column; gap: 18px; }
.cp-wrong__steps li { counter-increment: s; position: relative; padding-left: 52px; display: flex; flex-direction: column; gap: 4px; }
.cp-wrong__steps li::before { content: counter(s); position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--marigold); color: var(--ink); font: 800 16px/34px var(--font); text-align: center; }
.cp-wrong__steps strong { font-size: 18px; color: var(--paper); line-height: 1.3; }
.cp-wrong__steps span { font-size: 15px; color: #c3cbd5; }
@media (max-width: 860px) { .cp-wrong { grid-template-columns: minmax(0, 1fr); } }

/* Contact: photo upload */
.cp-files { margin: 0 0 18px; }
.cp-files > label:first-child { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.cp-files__drop { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 14px 16px; border: 1.5px dashed #c3c9d1; border-radius: var(--radius); background: var(--paper); cursor: pointer; }
.cp-files__drop:hover { border-color: var(--ink); }
.cp-files__text { display: flex; flex-direction: column; gap: 2px; font-size: 15px; }
.cp-files__text span { font-size: 13px; color: var(--slate); }
.cp-files__input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cp-files__input:focus-visible + .cp-files__list, .cp-files__drop:focus-within { outline: 2px solid var(--ink); outline-offset: 3px; }
.cp-files__list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cp-files__list li { padding: 8px 12px; background: var(--fog); border-radius: 6px; font-size: 14px; }
.cp-files { position: relative; }
.cp-files .cp-files__drop { display: flex; margin: 0; font-weight: 500; }

/* ---------- Catalog ---------- */
.cp-cat-hero__row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: end; gap: 28px 56px; }
.cp-cat-hero .cp-dhero__title { margin-bottom: 14px; }
.cp-cat-find { display: flex; flex-direction: column; gap: 10px; }
.cp-cat-find label { font: 700 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: #8c96a3; }
.cp-cat-find .cp-lots-find__row { display: flex; gap: 8px; }
.cp-cat-find input[type="search"] { flex: 1; min-width: 0; min-height: 56px; padding: 0 18px; border: 1.5px solid rgba(255,255,255,.28); border-radius: var(--radius); background: rgba(255,255,255,.06); color: var(--paper); font: 500 17px var(--font); }
.cp-cat-find input[type="search"]::placeholder { color: #8c96a3; }
.cp-cat-find input[type="search"]:focus { outline: none; border-color: var(--marigold); }
@media (max-width: 860px) { .cp-cat-hero__row { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 420px) { .cp-cat-find .cp-lots-find__row { flex-direction: column; } }
.cp-cat { padding-top: 32px; padding-bottom: clamp(56px, 8vw, 96px); }
.cp-cat__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.cp-cat__chips .cp-chip { gap: 8px; }
.cp-cat__chips .cp-chip i { width: 8px; height: 8px; border-radius: 50%; background: var(--fam); }
.cp-cat__chips .cp-chip.is-current i { box-shadow: 0 0 0 2px var(--paper); }
.cp-cat__count { margin: 0 0 16px; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.cp-pgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1100px) { .cp-pgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .cp-pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.cp-pcard { position: relative; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--paper); text-decoration: none; color: var(--ink); transition: border-color .15s, transform .15s, box-shadow .15s; }
.cp-pcard:hover { border-color: var(--ink); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(17,20,24,.08); color: var(--ink); }
.cp-pcard__band { height: 5px; background: var(--fam, var(--line)); }
.cp-pcard__img { position: relative; display: block; aspect-ratio: 1 / 1; background: var(--fog); }
.cp-pcard__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cp-pcard__ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.cp-pcard__ph .cp-svg { width: 48px; height: 48px; opacity: .35; }
.cp-pcard__flag { position: absolute; top: 10px; left: 10px; padding: 5px 9px; border-radius: 6px; background: var(--ink); color: var(--paper); font: 700 11px/1 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.cp-pcard.is-out .cp-pcard__img img { opacity: .55; }
.cp-pcard__body { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 16px; flex: 1; }
.cp-pcard__fam { font: 700 11px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.cp-pcard__name { font-size: 18px; font-weight: 800; letter-spacing: -0.015em; line-height: 1.2; }
.cp-pcard__str { font: 700 12px/1.3 var(--mono); color: var(--slate); text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cp-pcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 10px; }
.cp-pcard__price { font: 700 15px var(--mono); }
.cp-pcard__lab { font: 700 10px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: #0d7a6c; white-space: nowrap; }
@media (max-width: 480px) { .cp-pcard__body { padding: 12px; } .cp-pcard__name { font-size: 16px; } .cp-pcard__foot { flex-direction: column; align-items: flex-start; gap: 4px; } }
.cp-cat__empty { padding: 32px; background: var(--fog); border-radius: 14px; }
.cp-cat__empty p { margin: 0 0 16px; color: var(--ink-2); }

/* Section labels (Oct 25 rule): marigold text on dark surfaces; on light surfaces
   dark text led by a small marigold dot (marigold text on white is hard to read).
   Data labels (table heads, counts, family names) stay slate. */
.cp-dark__label, .cp-bcredits h2, .cp-cat-find label, .cp-lots-find label { color: var(--marigold) !important; }
.cp-eyebrow:not(.cp-eyebrow--light), .cp-promo-card__label, .cp-credits__label, .cp-drawer__label, .cp-proof-card__label, .cp-code__label { color: var(--ink-2); }
.cp-eyebrow:not(.cp-eyebrow--light)::before, .cp-promo-card__label::before, .cp-credits__label::before, .cp-drawer__label::before, .cp-proof-card__label::before, .cp-code__label::before {
  content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 9px 1px 0; border-radius: 50%; background: var(--marigold); vertical-align: middle;
}

/* Sign-in / create-account side panel: one row style for both tabs */
.cp-auth__side { justify-content: flex-start; padding-top: clamp(32px, 5vw, 56px); }
.cp-arows { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.12); }
.cp-arows > li { border-bottom: 1px solid rgba(255,255,255,.12); }
.cp-arow { display: flex; align-items: flex-start; gap: 14px; padding: 18px 0; color: var(--paper); text-decoration: none; }
.cp-arow__icon { flex: 0 0 auto; display: inline-flex; margin-top: 1px; color: #8c96a3; }
.cp-arow--perk .cp-arow__icon { color: var(--marigold); }
.cp-arow__text { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cp-arow__text strong { font-size: 17px; line-height: 1.25; }
.cp-arow__text > span { font-size: 14px; line-height: 1.45; color: #c3cbd5; }
.cp-arow__go { flex: 0 0 auto; align-self: center; display: inline-flex; color: #8c96a3; transition: transform .15s, color .15s; }
a.cp-arow:hover .cp-arow__go, a.cp-arow:focus-visible .cp-arow__go { color: var(--marigold); transform: translateX(3px); }
a.cp-arow:hover .cp-arow__icon { color: var(--paper); }
a.cp-arow:focus-visible { outline: 2px solid var(--marigold); outline-offset: 2px; border-radius: 4px; }

/* 404 */
.cp-404 { padding-bottom: clamp(56px, 8vw, 96px); }
.cp-404__lede { margin: 0 0 24px; font-size: 18px; color: var(--ink-2); max-width: 560px; }
.cp-404__search { display: flex; gap: 8px; max-width: 560px; margin: 0 0 40px; }
.cp-404__search input { flex: 1; min-width: 0; min-height: 52px; padding: 0 16px; border: 1.5px solid var(--line); border-radius: var(--radius); font: 500 16px var(--font); color: var(--ink); background: var(--paper); }
.cp-404__search input:focus { outline: none; border-color: var(--ink); }
.cp-404__links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: 880px; }
.cp-404__links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; border: 1.5px solid var(--line); border-radius: 12px; color: var(--ink); text-decoration: none; }
.cp-404__links a:hover { border-color: var(--ink); }
.cp-404__links a > span { display: flex; flex-direction: column; gap: 4px; }
.cp-404__links strong { font-size: 17px; }
.cp-404__links a > span > span { font-size: 14px; color: var(--slate); }
@media (max-width: 640px) { .cp-404__links { grid-template-columns: minmax(0, 1fr); } .cp-404__search { flex-direction: column; } }

/* Peptigrity band on phones: the square badge capped so it doesn't dominate the screen */
@media (max-width: 600px) {
  .cp-trust__badge { justify-self: center; width: auto; max-width: 300px; padding: 12px; }
  .cp-trust__badge .cp-peptigrity img { width: 276px; max-width: 100%; margin: 0 auto; }
}

/* Sign-up popup */
.cp-pop { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 16px; }
.cp-pop[hidden] { display: none; }
.cp-pop__backdrop { position: absolute; inset: 0; background: rgba(17,20,24,.62); opacity: 0; transition: opacity .18s ease; }
.cp-pop__box { position: relative; width: 100%; max-width: 460px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; background: var(--paper); color: var(--ink); border-radius: 16px; padding: 32px 32px 26px; box-shadow: 0 24px 64px rgba(17,20,24,.35); border-top: 6px solid var(--marigold); opacity: 0; transform: translateY(10px); transition: opacity .18s ease, transform .18s ease; }
.cp-pop.is-open .cp-pop__backdrop { opacity: 1; }
.cp-pop.is-open .cp-pop__box { opacity: 1; transform: none; }
.cp-pop__x { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: var(--slate); cursor: pointer; }
.cp-pop__x:hover { background: var(--fog); color: var(--ink); }
.cp-pop .cp-eyebrow { margin-bottom: 10px; }
.cp-pop__title { margin: 0 0 8px; font-size: clamp(26px, 6vw, 32px); line-height: 1.08; letter-spacing: -0.03em; outline: none; }
.cp-pop__lede { margin: 0 0 20px; font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.cp-pop__google { width: 100%; justify-content: center; }
.cp-pop__or { display: flex; align-items: center; gap: 12px; margin: 16px 0; font-size: 13px; color: var(--slate); }
.cp-pop__or::before, .cp-pop__or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.cp-pop__label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 700; }
.cp-pop__input { display: block; width: 100%; min-height: 50px; margin: 0 0 14px; padding: 0 14px; border: 1.5px solid #d5d9de; border-radius: var(--radius); background: var(--paper); color: var(--ink); font: 500 16px var(--font); }
.cp-pop__input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(245,167,10,.25); }
.cp-pop__input[aria-invalid="true"] { border-color: #b42318; }
.cp-pop__pass { position: relative; }
.cp-pop__pass .cp-pop__input { padding-right: 52px; margin-bottom: 4px; }
.cp-pop__eye { position: absolute; top: 5px; right: 5px; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 6px; background: transparent; color: var(--slate); cursor: pointer; }
.cp-pop__eye[aria-pressed="true"] { color: var(--ink); }
.cp-pop__hint { margin: 0 0 14px; font-size: 12.5px; color: var(--slate); }
.cp-pop__check { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; font-size: 13.5px; line-height: 1.45; color: var(--ink-2); cursor: pointer; }
.cp-pop__check input { flex: 0 0 auto; width: 20px; height: 20px; margin: 0; accent-color: var(--ink); }
.cp-pop__check input[aria-invalid="true"] { outline: 2px solid #b42318; outline-offset: 2px; }
.cp-pop__msg { margin: 4px 0 10px; font-size: 14px; color: #b42318; }
.cp-pop__msg:empty { display: none; }
.cp-pop__submit { width: 100%; justify-content: center; margin-top: 4px; }
.cp-pop__submit:disabled { opacity: .7; cursor: progress; }
.cp-pop__alt { margin: 14px 0 0; text-align: center; font-size: 14px; color: var(--ink-2); }
.cp-pop__alt a { font-weight: 700; color: var(--ink); }
.cp-pop__code { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0 14px; padding: 16px 18px; border: 1.5px dashed var(--ink); border-radius: 12px; background: #fff8e8; }
.cp-pop__code span { font: 700 26px/1 var(--mono); letter-spacing: .06em; color: var(--ink); }
@media (max-width: 480px) {
  .cp-pop { align-items: flex-end; padding: 0; }
  .cp-pop__box { max-width: none; border-radius: 16px 16px 0 0; padding: 26px 20px 22px; max-height: 92vh; max-height: 92dvh; }
}
@media (prefers-reduced-motion: reduce) { .cp-pop__backdrop, .cp-pop__box { transition: none; } }

/* Sign-up page: the email opt-in sits right under the 21+ box */
.cp-consent--optin { margin-top: -4px; }

/* Lab credits card: the whole card opens the Lab credits tab */
.cp-credits { text-decoration: none; color: var(--ink); transition: box-shadow .15s ease, transform .15s ease; }
.cp-credits:hover { color: var(--ink); box-shadow: 0 10px 28px rgba(17,20,24,.18); transform: translateY(-2px); }
.cp-credits:focus-visible { outline: 3px solid var(--marigold); outline-offset: 3px; }
.cp-credits__go { margin-top: auto; padding-top: 14px; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; color: var(--ink); }
.cp-credits__go svg { transition: transform .15s ease; }
.cp-credits:hover .cp-credits__go svg { transform: translateX(3px); }
.cp-credits__go { text-decoration: underline; text-decoration-color: var(--marigold); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.cp-credits--dark { background: var(--ink); color: var(--paper); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.cp-credits--dark:hover { color: var(--paper); }
.cp-credits--dark .cp-credits__label { color: var(--marigold); }
.cp-credits--dark .cp-credits__label::before { display: none; }
.cp-credits--dark .cp-credits__note { color: #c3cbd5; }
.cp-credits--dark .cp-credits__go { color: var(--paper); }

/* Just tested (signed-in homepage) */
.cp-justtested { padding-top: 0; }
.cp-justtested .cp-hsec__head, .cp-harticles .cp-hsec__head { align-items: flex-end; }
.cp-justtested h2, .cp-harticles h2 { margin: 0; }
.cp-jt { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cp-jt__card { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 24px 20px 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); overflow: hidden; }
.cp-jt__band { position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--fam, var(--line)); }
.cp-jt__meta { margin: 0; font: 700 11px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.cp-jt__name { margin: 0; font-size: 19px; line-height: 1.2; letter-spacing: -0.01em; }
.cp-jt__name a { color: var(--ink); text-decoration: none; }
.cp-jt__name a:hover { text-decoration: underline; }
.cp-jt__name span { font: 600 12px var(--mono); color: var(--slate); white-space: nowrap; }
.cp-jt__facts { display: flex; gap: 20px; margin: 0; }
.cp-jt__facts div { display: flex; flex-direction: column; gap: 3px; }
.cp-jt__facts dt { font: 700 10px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.cp-jt__facts dd { margin: 0; font: 700 15px/1.2 var(--mono); color: var(--ink); }
.cp-jt__actions { margin-top: auto; padding-top: 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.cp-jt__actions .cp-btn { min-height: 42px; padding: 9px 16px; }
.cp-jt__report { font-size: 14px; font-weight: 700; color: var(--ink); }
.cp-jt__out { font: 700 11px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
@media (max-width: 1100px) { .cp-jt { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .cp-jt { grid-template-columns: minmax(0, 1fr); } }

/* Research articles on the signed-out homepage */
.cp-harticles { padding-top: clamp(48px, 7vw, 80px); }
.cp-only-new + .cp-harticles { border-top: 1px solid var(--line); }

/* Footer spacing: pages end with their own bottom padding, so no extra gap when
   the signup band isn't there (signed in, returning visitors). */
.cp-main + .cp-footer { margin-top: 0; }
html.cp-returning .cp-signup.cp-only-new + .cp-footer { margin-top: 0; }
.cp-bench__side .cp-credits { flex: 0 0 auto; }

/* Header search suggestions */
.cp-search__field { position: relative; flex: 1; min-width: 0; }
.cp-search__field input { width: 100%; }
.cp-suggest { position: absolute; z-index: 60; top: calc(100% + 6px); left: 0; right: 0; margin: 0; padding: 6px; list-style: none; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 16px 40px rgba(17,20,24,.16); }
.cp-suggest[hidden] { display: none; }
.cp-suggest__item a { display: flex; align-items: baseline; gap: 10px; padding: 11px 12px; border-radius: 8px; color: var(--ink); text-decoration: none; }
.cp-suggest__item i { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--fam, var(--line)); transform: translateY(-1px); }
.cp-suggest__item strong { font-size: 15px; }
.cp-suggest__item span { font: 600 12px var(--mono); color: var(--slate); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cp-suggest__item:hover a, .cp-suggest__item.is-active a { background: var(--fog); }
.cp-suggest__all { border-top: 1px solid var(--line); margin-top: 4px; padding-top: 4px; }
.cp-suggest__all button { width: 100%; text-align: left; padding: 11px 12px; border: 0; border-radius: 8px; background: transparent; font: 700 14px var(--font); color: var(--ink); cursor: pointer; }
.cp-suggest__all:hover button, .cp-suggest__all.is-active button { background: var(--fog); }

/* Order page: TrackShip's tracking card, brought into the site's look.
   (Its own colors can also be set in TrackShip → Settings → Tracking widget.) */
.woocommerce-MyAccount-content > p:first-child { margin-bottom: 10px; }
.cp-tracking { margin: 0 0 32px; }
.cp-tracking:empty { display: none; }
.cp-tracking > :first-child, .cp-tracking > :first-child > :first-child { margin-top: 0 !important; }
.cp-tracking [class*="tracking_widget"], .cp-tracking [class*="tracking-widget"], .cp-tracking .col { padding-top: 20px !important; }
.cp-tracking .button, .cp-tracking a.button, .cp-tracking [class*="track-button"], .cp-tracking [class*="track_button"] { background: var(--ink) !important; border-color: var(--ink) !important; color: var(--paper) !important; border-radius: var(--radius) !important; font-weight: 700 !important; text-decoration: none !important; }
.cp-tracking .button:hover, .cp-tracking a.button:hover { background: #2a3038 !important; }
.cp-tracking [class*="progress"] [class*="bar"], .cp-tracking [class*="progress-bar"], .cp-tracking [class*="progress_bar"], .cp-tracking [class*="status_bar"] span { background-color: var(--marigold) !important; }
.cp-tracking [class*="shipment_status"], .cp-tracking [class*="status-pill"], .cp-tracking [class*="tracking_status"] { background-color: var(--ink) !important; color: var(--paper) !important; }
/* Show the whole tracking number on phones, never "888257..". */
.cp-tracking [class*="tracking_number"], .cp-tracking [class*="tracking_number"] * { max-width: none !important; overflow: visible !important; text-overflow: clip !important; white-space: normal !important; overflow-wrap: anywhere; }
/* AST Pro's card: its optional header prints as an empty heading/paragraph that adds the big gap. */
.cp-tracking > h2, .cp-tracking > h3, .cp-tracking > p:empty, .cp-tracking > p:first-child:not(:has(*)) { display: none; }
.cp-tracking .fluid_section, .cp-tracking [class*="tracking-widget"], .cp-tracking [class*="tracking_widget"] { margin-top: 0 !important; }
.cp-tracking .track-button { background: var(--ink) !important; border-color: var(--ink) !important; color: var(--paper) !important; }

/* ===================== Product page ===================== */
.cp-pdp { padding-top: 28px; padding-bottom: clamp(56px, 8vw, 96px); }
.cp-pdp .cp-crumbs ol { margin-bottom: 24px; }
.cp-pdp__top { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.cp-pdp__media { position: sticky; top: 24px; }
.cp-pdp__img { position: relative; aspect-ratio: 1 / 1; border-radius: 16px; background: var(--fog); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.cp-pdp__band { position: absolute; top: 0; left: 0; right: 0; height: 6px; background: var(--fam, var(--line)); z-index: 1; }
.cp-pdp__main { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.cp-pdp__ph .cp-svg { width: 96px; height: auto; opacity: .35; }
.cp-pdp__thumbs { display: flex; gap: 10px; margin-top: 12px; }
.cp-pdp__thumb { width: 76px; height: 76px; padding: 0; border: 1.5px solid var(--line); border-radius: 10px; background: var(--fog); overflow: hidden; cursor: pointer; }
.cp-pdp__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-pdp__thumb.is-current { border-color: var(--ink); }
.cp-pdp__eyebrow { margin: 0 0 10px; font: 700 12px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.cp-pdp__title { margin: 0 0 14px; font-size: clamp(32px, 4vw, 48px); line-height: 1.02; letter-spacing: -0.035em; }
.cp-pdp__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.cp-pdp__now { font-size: 32px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); }
.cp-pdp__was { font-size: 17px; color: var(--slate); text-decoration: line-through; }
.cp-pdp__unit { font: 600 13px var(--mono); color: var(--slate); }
.cp-pdp__stock { display: flex; align-items: center; gap: 8px; margin: 8px 0 22px; font-size: 14px; color: var(--ink-2); }
.cp-pdp__stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #12a594; flex: 0 0 auto; }
.cp-pdp__stock.is-out::before { background: #c2410c; }
.cp-pdp__field { margin: 0 0 20px; }
.cp-pdp__label { display: block; margin: 0 0 10px; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.cp-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.cp-pill { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 88px; min-height: 50px; padding: 8px 16px; border: 1.5px solid #d5d9de; border-radius: 10px; background: var(--paper); color: var(--ink); font: 700 15px/1.1 var(--mono); cursor: pointer; transition: border-color .12s, background .12s; }
.cp-pill:hover { border-color: var(--ink); }
.cp-pill[aria-checked="true"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.cp-pill:focus-visible { outline: 3px solid var(--marigold); outline-offset: 2px; }
.cp-pill small { margin-top: 3px; font: 600 10px/1 var(--font); letter-spacing: 0; text-transform: none; opacity: .75; }
.cp-pill.is-out { border-style: dashed; color: var(--slate); }
.cp-pill.is-out[aria-checked="true"] { background: var(--slate); border-color: var(--slate); color: var(--paper); }

.cp-ladder2 { margin: 0 0 14px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.cp-ladder2__head { display: flex; justify-content: space-between; gap: 12px; padding: 10px 16px; background: var(--fog); font: 700 11px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.cp-ladder2__head span + span { color: var(--slate); font-weight: 600; text-transform: none; letter-spacing: 0; font-family: var(--font); font-size: 12px; }
.cp-ladder2 table { width: 100%; border-collapse: collapse; margin: 0; }
.cp-ladder2 tr { border-top: 1px solid var(--line); cursor: pointer; }
.cp-ladder2 tr:first-child { border-top: 0; }
.cp-ladder2 tr:hover { background: #fafbfc; }
.cp-ladder2 tr:focus-visible { outline: 2px solid var(--marigold); outline-offset: -2px; }
.cp-ladder2 th, .cp-ladder2 td { padding: 12px 16px; font-size: 15px; text-align: left; border: 0; background: none; }
.cp-ladder2 th { font-weight: 600; color: var(--ink-2); }
.cp-ladder2__each { font: 700 15px var(--mono); color: var(--ink); text-align: right !important; white-space: nowrap; }
.cp-ladder2__save { font-size: 13px !important; color: #0d7a6c; text-align: right !important; white-space: nowrap; width: 1%; }
.cp-ladder2 tr.is-on { background: #fff8e8; box-shadow: inset 4px 0 0 var(--marigold); }
.cp-ladder2 tr.is-on th { color: var(--ink); }

.cp-pcode { margin: 0 0 16px; }
.cp-pcode__toggle { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 4px 0; border: 0; background: none; font: 700 15px var(--font); color: var(--ink); cursor: pointer; text-decoration: underline; text-decoration-color: var(--marigold); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.cp-pcode__toggle span { font-weight: 500; font-size: 13px; color: var(--slate); text-decoration: none; }
.cp-pcode__form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.cp-pcode__form input { flex: 1 1 180px; min-width: 0; min-height: 46px; padding: 0 14px; border: 1.5px solid #d5d9de; border-radius: var(--radius); font: 700 15px var(--mono); text-transform: uppercase; color: var(--ink); }
.cp-pcode__form input:focus { outline: none; border-color: var(--ink); }
.cp-pcode__form .cp-btn { min-height: 46px; }
.cp-pcode__msg { flex: 1 0 100%; margin: 0; font-size: 13px; color: #b42318; }
.cp-pcode__msg:empty { display: none; }
.cp-pcode__applied { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 14px; border-left: 4px solid var(--marigold); border-radius: 0 var(--radius) var(--radius) 0; background: #fff8e8; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.cp-pcode__applied b { font-family: var(--mono); color: var(--ink); letter-spacing: .04em; }
.cp-pcode__applied button { flex: 0 0 auto; border: 0; background: none; padding: 0; font: 700 13px var(--font); color: var(--ink); text-decoration: underline; cursor: pointer; }

.cp-buy { display: flex; gap: 10px; align-items: stretch; margin: 0; }
.cp-qty { display: flex; align-items: stretch; border: 1.5px solid #d5d9de; border-radius: var(--radius); overflow: hidden; background: var(--paper); }
.cp-qty__btn { width: 44px; border: 0; background: none; font-size: 20px; color: var(--ink-2); cursor: pointer; }
.cp-qty__btn:hover { background: var(--fog); }
.cp-qty input { width: 52px; border: 0; text-align: center; font: 700 17px var(--mono); color: var(--ink); -moz-appearance: textfield; }
.cp-qty input::-webkit-outer-spin-button, .cp-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cp-buy__btn { flex: 1; justify-content: center; white-space: nowrap; }
.cp-buy__btn:disabled { background: var(--fog); border-color: var(--fog); color: var(--slate); cursor: not-allowed; }
.cp-nudge2 { margin: 12px 0 0; padding: 11px 14px; border-radius: var(--radius); background: #fff8e8; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.cp-nudge2 b { color: var(--ink); }
.cp-shipline2 { margin: 10px 0 0; font-size: 13px; color: var(--slate); text-align: center; }
.cp-shipline2:empty { display: none; }

/* Peptigrity under Add to cart (Oct 26): light gray card, one line of text, wider badge on its own ink chip. */
.cp-pdp__pg { display: grid; gap: 10px; margin: 18px 0 0; padding: 14px 16px 16px; border-radius: 14px; background: var(--fog); border: 1px solid var(--line); }
.cp-pdp__pg > p { margin: 0; font-size: 14px; font-weight: 600; color: var(--slate); }
.cp-pdp__pg .cp-peptigrity { display: block; padding: 8px 12px; border-radius: 10px; background: var(--ink); opacity: 1; }
.cp-pdp__pg .cp-peptigrity picture { display: block; }
.cp-pdp__pg .cp-peptigrity img { display: block; width: 100%; max-width: 520px; height: auto; margin: 0 auto; }

.cp-pdp__more { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 40px 64px; margin-top: clamp(48px, 7vw, 88px); padding-top: clamp(32px, 5vw, 48px); border-top: 1px solid var(--line); }
.cp-pdp__desc { font-size: 16px; line-height: 1.7; color: var(--ink-2); max-width: 68ch; }
.cp-pdp__desc p { margin: 0 0 14px; }
.cp-pdp__desc h2, .cp-pdp__desc h3, .cp-pdp__desc h4 { margin: 22px 0 8px; font-size: 17px; color: var(--ink); }
.cp-pdp__specs dl { margin: 0; }
.cp-pdp__specs dl > div { display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 15px; }
.cp-pdp__specs dl > div:first-child { border-top: 0; padding-top: 0; }
.cp-pdp__specs dt { color: var(--slate); }
.cp-pdp__specs dd { margin: 0; color: var(--ink); font-weight: 600; }
.cp-pdp__terms { grid-column: 1 / -1; }
.cp-pdp__ruo { padding: 20px 22px; border-left: 4px solid var(--ink); border-radius: 0 var(--radius) var(--radius) 0; background: var(--fog); font-size: 14px; line-height: 1.65; color: var(--ink-2); max-width: 900px; }
.cp-pdp__ruo p { margin: 0 0 10px; }
.cp-pdp__ruo p:last-child { margin: 0; }

@media (max-width: 900px) {
  .cp-pdp__top { grid-template-columns: minmax(0, 1fr); }
  .cp-pdp__media { position: static; max-width: 520px; width: 100%; margin: 0 auto; }
  .cp-pdp__more { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .cp-pdp__img { aspect-ratio: 4 / 3; }
  .cp-buy__btn { padding-left: 14px; padding-right: 14px; font-size: 16px; }
  .cp-ladder2 th, .cp-ladder2 td { padding: 11px 12px; font-size: 14px; }
  .cp-ladder2__save { font-size: 12px !important; }
  .cp-pdp__specs dl > div { grid-template-columns: 100px 1fr; }
}
@media (max-width: 520px) { .cp-ladder2__head span + span { display: none; } }
/* AST Pro 5 card (class names confirmed on staging Oct 25): always the full tracking number. */
.cp-tracking .ast-num-m { display: none !important; }
.cp-tracking .ast-num-d { display: inline !important; overflow-wrap: anywhere; white-space: normal !important; }
.cp-tracking .ast-card { margin-top: 0 !important; }
.cp-tracking .ast-headline { font-family: var(--font); letter-spacing: -0.02em; }
.cp-tracking .track-button { border-radius: 8px !important; font-weight: 700 !important; }
/* Tracking number: plain ink text, no dark chip (Oct 25). Only the Track button stays ink. */
.cp-tracking .ast-num, .cp-tracking .ast-num-d, .cp-tracking .ast-num-m, .cp-tracking .ast-tracking-number,
.cp-tracking .ast-tracking-number :not(button):not([class*="copy"]):not([class*="copy"] *), .cp-tracking [class*="tracking_number"]:not(button), .cp-tracking [class*="tracking_number"] :not(button):not([class*="copy"]):not([class*="copy"] *),
.cp-tracking a:has(.ast-num-d), .cp-tracking code, .cp-tracking kbd { background: transparent !important; color: var(--ink) !important; border: 0 !important; box-shadow: none !important; padding-left: 0 !important; padding-right: 0 !important; font-weight: 700 !important; text-decoration: none !important; }
/* A hair less space between "Order #… was placed on …" and the tracking card. */
.cp-tracking, .cp-tracking > *, .cp-tracking .ast-card { margin-top: 0 !important; }
.woocommerce-MyAccount-content > p:first-child + .cp-tracking { margin-top: 0 !important; }

/* Product page layout (Oct 25): desktop = photo with the lot record + Peptigrity under it on
   the left, the buying flow alone on the right. Phones: photo, buy box, then the proof. */
.cp-pdp__top { grid-template-areas: "media buy" "proof buy"; grid-template-rows: auto 1fr; row-gap: 20px; }
.cp-pdp__media { grid-area: media; position: static; }
.cp-pdp__buy { grid-area: buy; align-self: start; }
.cp-pdp__proof { grid-area: proof; align-self: start; }
.cp-pdp__proof .cp-lotcard { margin-top: 0; }
@media (max-width: 900px) {
  .cp-pdp__top { grid-template-areas: "media" "proof" "buy"; grid-template-rows: auto; }
  .cp-pdp__buy { position: static; }
  .cp-pdp__proof { margin-top: 4px; }
}
.cp-nudge2__line { display: block; }
.cp-nudge2__line + .cp-nudge2__line { margin-top: 4px; }
.cp-nudge2__line span { color: var(--slate); font-size: 13px; }
.cp-qty input[type="number"] { border: 0 !important; border-radius: 0; box-shadow: none !important; background: transparent !important; outline: none; min-height: 0; padding: 0; }
.cp-qty:focus-within { border-color: var(--ink); }
.cp-qty__btn:hover { background: var(--fog) !important; }

/* WooCommerce notices (added to cart, errors, info), in the site's look:
   one slim bar, ink for success, light with a red edge for errors. */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-notices-wrapper { margin: 0 0 20px; }
.woocommerce-notices-wrapper:focus, .woocommerce-message:focus, .woocommerce-error:focus, .woocommerce-info:focus { outline: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 10px !important; padding: 14px 18px !important;
  border: 0 !important; border-radius: 12px !important; font-size: 15px; line-height: 1.45; list-style: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { content: none !important; display: none !important; }
.woocommerce-message { background: var(--ink) !important; color: var(--paper) !important; }
.woocommerce-message::after { content: ""; order: -1; flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: var(--marigold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111418' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center / 14px; }
.woocommerce-message .button, .woocommerce-message a.button { order: 2; margin-left: auto !important; float: none !important; padding: 9px 16px !important; border-radius: var(--radius) !important; background: var(--marigold) !important; color: var(--ink) !important; font-weight: 700 !important; text-decoration: none !important; border: 0 !important; }
.woocommerce-message .cp-notice-extra { color: var(--marigold); font-weight: 700; }
.woocommerce-info { background: var(--fog) !important; color: var(--ink-2) !important; }
.woocommerce-error { display: block; background: #fdf2f1 !important; color: #7a1d14 !important; box-shadow: inset 4px 0 0 #b42318; }
.woocommerce-error li { margin: 0; padding: 2px 0; list-style: none; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { color: inherit; font-weight: 700; }
@media (max-width: 520px) { .woocommerce-message .button { margin-left: 0 !important; width: 100%; text-align: center; } }

/* Pop-up: Google + Apple stacked. */
.cp-pop__social { display: grid; gap: 10px; }

/* One-time research check (accounts without the 21+ statement on record). */
.cp-confirm { padding-top: 56px; padding-bottom: 72px; }
.cp-confirm__card { max-width: 520px; margin: 0 auto; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 36px 32px; }
.cp-confirm__title { font-size: clamp(28px, 4vw, 36px); letter-spacing: -0.02em; margin: 6px 0 10px; }
.cp-confirm__lede { color: var(--slate); margin: 0 0 22px; }
.cp-confirm__form { display: grid; gap: 14px; }
.cp-confirm__check { display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; padding: 14px 16px; border: 1.5px solid var(--ink); border-radius: var(--radius); font-weight: 600; line-height: 1.45; cursor: pointer; }
.cp-confirm__check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--ink); }
.cp-confirm__check--soft { border-color: var(--line); font-weight: 500; color: var(--slate); }
.cp-confirm__error { margin: 0; color: #b42318; font-weight: 600; }
.cp-confirm__submit { width: 100%; margin-top: 4px; }
.cp-confirm__foot { margin: 18px 0 0; font-size: 14px; color: var(--slate); }
@media (max-width: 560px) { .cp-confirm { padding-top: 28px; } .cp-confirm__card { padding: 26px 20px; border-radius: 14px; } }
.cp-confirm__tag { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--fog); color: var(--slate); font: 700 11px/1.5 var(--mono); font-style: normal; letter-spacing: 0.06em; text-transform: uppercase; vertical-align: 2px; white-space: nowrap; }
.cp-confirm__tag--req { background: var(--marigold); color: var(--ink); }

/* Side cart (Oct 26) */
html.cp-noscroll { overflow: hidden; }
.cp-sc { position: fixed; inset: 0; z-index: 210; }
.cp-sc__backdrop { position: absolute; inset: 0; background: rgba(17,20,24,.45); opacity: 0; transition: opacity .2s ease; }
.cp-sc__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(440px, 100%); display: flex; flex-direction: column; background: var(--paper); box-shadow: -12px 0 40px rgba(17,20,24,.18); transform: translateX(100%); transition: transform .22s ease; outline: none; }
.cp-sc.is-open .cp-sc__backdrop { opacity: 1; }
.cp-sc.is-open .cp-sc__panel { transform: none; }
@media (prefers-reduced-motion: reduce) { .cp-sc__panel, .cp-sc__backdrop { transition: none; } }
.cp-sc__head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.cp-sc__head h2 { margin: 0; font-size: 20px; letter-spacing: -0.01em; }
.cp-sc__x { display: inline-flex; padding: 6px; border: 0; background: none; color: var(--ink); cursor: pointer; border-radius: 8px; }
.cp-sc__x:hover { background: var(--fog); }
.cp-sc__body { flex: 1; display: flex; flex-direction: column; min-height: 0; overflow-y: auto; transition: opacity .15s; }
.cp-sc.is-busy .cp-sc__body { opacity: .6; pointer-events: none; }
.cp-sc__loading { margin: 0; padding: 32px 20px; color: var(--slate); }
.cp-sc__msg { margin: 14px 20px 0; padding: 11px 14px; border-radius: 10px; background: var(--ink); color: var(--paper); font-size: 14px; line-height: 1.45; }
.cp-sc__msg b { color: var(--marigold); }
.cp-sc__msg.is-error { background: #fdecec; color: #8a1c1c; box-shadow: inset 3px 0 0 #d92d20; }
.cp-sc__msg.is-error b { color: inherit; }
.cp-sc__empty { padding: 40px 20px; text-align: center; }
.cp-sc__empty p { margin: 0 0 16px; font-size: 17px; font-weight: 600; }

.cp-shipbar { margin: 14px 20px 0; padding: 12px 14px; border-radius: 10px; background: #fff7e6; }
.cp-shipbar p { margin: 0 0 8px; font-size: 14px; }
.cp-shipbar__track { display: block; height: 6px; border-radius: 99px; background: rgba(17,20,24,.1); overflow: hidden; }
.cp-shipbar__track span { display: block; height: 100%; border-radius: inherit; background: var(--marigold); transition: width .3s ease; }
.cp-shipbar.is-done { background: #e8f6f1; }
.cp-shipbar.is-done .cp-shipbar__track span { background: #12a594; }

.cp-lines { list-style: none; margin: 0; padding: 4px 20px; }
.cp-line { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.cp-line:last-child { border-bottom: 0; }
.cp-line__img { display: block; width: 64px; height: 64px; border-radius: 10px; overflow: hidden; background: var(--fog); }
.cp-line__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cp-line__top { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.cp-line__name { font-weight: 700; color: var(--ink); text-decoration: none; line-height: 1.3; }
.cp-line__name span { font: 700 12px var(--mono); color: var(--slate); white-space: nowrap; }
.cp-line__total { font-weight: 700; white-space: nowrap; text-align: right; }
.cp-line__total del { display: block; font-weight: 500; font-size: 13px; color: var(--slate); }
.cp-line__each { margin: 2px 0 10px; font-size: 13px; color: var(--slate); }
.cp-line__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cp-line__qty { display: inline-flex; align-items: center; border: 1.5px solid var(--line); border-radius: 10px; }
.cp-line__qty button { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; background: none; color: var(--ink); cursor: pointer; }
.cp-line__qty button:disabled { opacity: .35; cursor: default; }
.cp-line__qty span { min-width: 28px; text-align: center; font: 700 15px var(--mono); }
.cp-line__remove { border: 0; background: none; padding: 4px 0; font-size: 13px; color: var(--slate); text-decoration: underline; cursor: pointer; }
.cp-line__nudge { margin: 10px 0 0; padding: 8px 10px; border-radius: 8px; background: #fff7e6; font-size: 13px; line-height: 1.4; }

.cp-sc__codes { padding: 4px 20px 0; }
.cp-codechip { display: flex; justify-content: space-between; align-items: center; margin: 0 0 8px; padding: 9px 12px; border-radius: 10px; background: var(--fog); font-size: 14px; }
.cp-codechip b { font-family: var(--mono); letter-spacing: .04em; }
.cp-codechip button { border: 0; background: none; font-size: 13px; text-decoration: underline; cursor: pointer; color: var(--slate); }
.cp-sc__code { margin: 4px 0 12px; }
.cp-sc__code summary { cursor: pointer; font-size: 14px; font-weight: 700; padding: 6px 0; }
.cp-sc__code form { display: flex; gap: 8px; margin-top: 8px; }
.cp-sc__code input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1.5px solid var(--line); border-radius: 10px; font: 600 15px var(--mono); text-transform: uppercase; }
.cp-sc__code .cp-btn { height: 44px; }

.cp-sc__foot { margin-top: auto; position: sticky; bottom: 0; padding: 16px 20px 20px; background: var(--paper); border-top: 1px solid var(--line); }
.cp-sum { margin: 0 0 6px; }
.cp-sum div { display: flex; justify-content: space-between; margin: 0 0 4px; }
.cp-sum dt { font-weight: 600; }
.cp-sum dd { margin: 0; font-weight: 800; font-size: 18px; }
.cp-sum__save dt, .cp-sum__save dd { color: #0b7a62; font-size: 15px; font-weight: 700; }
.cp-sc__note { margin: 0 0 14px; font-size: 13px; color: var(--slate); }
.cp-sc__checkout { width: 100%; justify-content: center; }
.cp-sc__links { display: flex; justify-content: center; align-items: center; gap: 18px; margin: 12px 0 0; }
.cp-sc__viewcart { display: block; text-align: center; font-size: 14px; font-weight: 600; color: var(--ink); }
.cp-sc__empty-btn { appearance: none; background: none; border: 0; padding: 0; font: inherit; font-size: 13px; color: var(--slate); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cp-sc__empty-btn:hover { color: #b42318; }
.cp-btn.is-loading, a.is-loading { opacity: .7; pointer-events: none; }
/* Side cart extras (Oct 26): gifts, BOGO, pick-a-vial, trust row */
.cp-sc__body > .cp-sc__main { padding-bottom: 4px; }
.cp-shipbar__goal { display: flex; align-items: center; gap: 8px; margin: 10px 0 0 !important; padding-top: 10px; border-top: 1px dashed rgba(17,20,24,.15); }
.cp-shipbar__goal svg { flex: none; color: var(--ink); }
.cp-line.is-gift .cp-line__img { box-shadow: inset 0 0 0 2px var(--marigold); }
.cp-line__free { display: inline-block; padding: 2px 8px; border-radius: 99px; background: var(--marigold); color: var(--ink); font: 800 12px var(--mono); letter-spacing: .06em; }
.cp-line__each--gift { display: flex; align-items: center; gap: 6px; color: var(--ink); font-weight: 600; }
.cp-line__bogo { color: #0b7a62; }
.cp-pick { margin: 6px 20px 14px; padding: 14px; border-radius: 12px; background: var(--ink); color: var(--paper); }
.cp-pick__title { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-weight: 700; }
.cp-pick__title svg { color: var(--marigold); flex: none; }
.cp-pick__row { display: flex; gap: 8px; }
.cp-pick select { flex: 1; min-width: 0; height: 44px; padding: 0 10px; border-radius: 10px; border: 0; font: 600 14px var(--font); color: var(--ink); background: var(--paper); }
.cp-pick .cp-btn { height: 44px; background: var(--marigold); border-color: var(--marigold); color: var(--ink); }
.cp-pick.is-picked { background: var(--fog); color: var(--ink); }
.cp-pick.is-picked .cp-btn { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.cp-sc__side { display: flex; flex-direction: column; margin-top: auto; }
.cp-sc__codes { padding: 4px 20px 0; }
.cp-sc__code { margin: 4px 0 12px; }
.cp-sc__code summary { cursor: pointer; font-size: 14px; font-weight: 700; padding: 6px 0; }
.cp-sc__code form { display: flex; gap: 8px; margin-top: 8px; }
.cp-sc__code input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1.5px solid var(--line); border-radius: 10px; font: 600 15px var(--mono); text-transform: uppercase; }
.cp-sc__code .cp-btn { height: 44px; }
.cp-sctrust { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 0 0; padding: 0; }
.cp-sctrust li { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 6px; border-radius: 10px; background: var(--fog); text-align: center; font-size: 11.5px; font-weight: 600; line-height: 1.3; }
.cp-sctrust svg { color: var(--ink); }

/* Top bar during a promo */
.cp-promo.is-deal > span:not(.cp-promo__deal) { display: none !important; }
.cp-promo__deal b { color: var(--marigold); font-weight: 700; }
.cp-promo__clock { font-family: var(--mono); font-size: 12px; letter-spacing: .04em; margin-left: 6px; opacity: .9; }

/* Full cart page: lines left, summary card right */
.cp-cartpage__title { margin: 6px 0 22px; font-size: clamp(32px, 4.4vw, 48px); letter-spacing: -0.03em; }
.cp-cartpage { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 32px; align-items: start; margin: 0 0 64px; }
.cp-cartpage.is-busy { opacity: .6; pointer-events: none; }
.cp-cartpage > .cp-sc__msg { grid-column: 1 / -1; margin: 0; }
.cp-cartpage .cp-sc__main { border: 1px solid var(--line); border-radius: 16px; padding: 6px 0 4px; background: var(--paper); }
.cp-cartpage .cp-shipbar { margin: 14px 20px 4px; }
.cp-cartpage .cp-lines { padding: 4px 24px; }
.cp-cartpage .cp-line { grid-template-columns: 96px minmax(0, 1fr); gap: 18px; padding: 20px 0; }
.cp-cartpage .cp-line__img { width: 96px; height: 96px; border-radius: 12px; }
.cp-cartpage .cp-line__name { font-size: 18px; }
.cp-cartpage .cp-pick { margin: 6px 24px 18px; }
.cp-cartpage .cp-sc__side { position: sticky; top: 96px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); overflow: hidden; box-shadow: 0 10px 30px rgba(17,20,24,.06); }
.cp-cartpage .cp-sc__codes { padding: 16px 20px 0; }
.cp-cartpage .cp-sc__foot { position: static; border-top: 1px solid var(--line); }
.cp-cartpage .cp-sc__viewcart { display: none; }
.cp-cartpage .cp-sc__empty { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: 16px; }
@media (max-width: 900px) {
  .cp-cartpage { grid-template-columns: 1fr; gap: 16px; }
  .cp-cartpage .cp-sc__side { position: static; }
  .cp-cartpage .cp-line { grid-template-columns: 72px minmax(0, 1fr); }
  .cp-cartpage .cp-line__img { width: 72px; height: 72px; }
}
@media (max-width: 420px) { .cp-sctrust li { font-size: 11px; padding: 9px 4px; } }
.cp-prose > .cp-cartpage { max-width: none; }
.cp-cartpage .cp-sc__side { margin-top: 0; }
.cp-sctrust li { background: transparent; padding: 6px 4px; color: var(--slate); }
.cp-sctrust { padding-top: 12px; border-top: 1px solid var(--line); }
.cp-pdp__bogo { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 10px; padding: 6px 12px; border-radius: 99px; background: var(--ink); color: var(--paper); font-size: 14px; font-weight: 600; }
.cp-pdp__bogo b { color: var(--marigold); font-family: var(--mono); letter-spacing: .06em; }
.cp-rate-note { display: block; margin: 2px 0 0 22px; font-size: 12.5px; color: var(--slate); font-weight: 500; }

/* ================= Checkout (Oct 26) ================= */
.cp-header--co { position: static; }
.cp-co-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; }
.cp-co-head .cp-logo svg { height: 30px; width: auto; }
.cp-co-secure { display: inline-flex; align-items: center; gap: 6px; font: 700 12px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.cp-co-back { font-size: 14px; font-weight: 600; color: var(--ink); }
@media (max-width: 640px) { .cp-co-secure { display: none; } }
.cp-co-foot { border-top: 1px solid var(--line); padding: 22px 0 32px; font-size: 12.5px; color: var(--slate); text-align: center; }
.cp-co-foot p { margin: 0 0 6px; }
.cp-co-foot a { color: var(--slate); }

.cp-co { padding-top: 24px; padding-bottom: 56px; }
.cp-co .woocommerce-notices-wrapper:empty { display: none; }
.cp-co-grid { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 48px; align-items: start; }
.cp-co-main { min-width: 0; }
.cp-co-sec { padding: 0 0 28px; margin: 0 0 28px; border-bottom: 1px solid var(--line); }
.cp-co-paysec { border-bottom: 0; }
.cp-co-h { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 22px; letter-spacing: -0.02em; }
.cp-co-h span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 99px; background: var(--ink); color: var(--paper); font: 700 13px var(--mono); }
.cp-co-sub { display: flex; align-items: center; gap: 6px; margin: -6px 0 14px; font-size: 14px; color: var(--slate); }
.cp-co-who { margin: 0 0 14px; font-size: 15px; }
.cp-co-who span { color: var(--slate); }
.cp-co-who a { font-size: 14px; color: var(--slate); }

/* Fields */
.cp-co .form-row { margin: 0 0 14px; padding: 0; }
.cp-co .woocommerce-billing-fields__field-wrapper, .cp-co .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 12px; }
.cp-co .form-row-wide, .cp-co #billing_country_field, .cp-co #shipping_country_field, .cp-co #billing_address_1_field, .cp-co #shipping_address_1_field, .cp-co .cp-co-optional, .cp-co .cp-industry { grid-column: 1 / -1; }
.cp-co .form-row-first, .cp-co .form-row-last { width: auto !important; float: none !important; }
.cp-co .form-row label { font-size: 13px; margin-bottom: 5px; }
.cp-co .form-row .required { color: #b42318; text-decoration: none; }
.cp-co .form-row .optional { display: none; }
.cp-co .input-text, .cp-co select, .cp-co .select2-container .select2-selection--single { width: 100%; min-height: 48px; border: 1.5px solid var(--line); border-radius: 10px; padding: 10px 14px; font: 500 16px var(--font); background: var(--paper); color: var(--ink); }
.cp-co .select2-container .select2-selection--single { display: flex; align-items: center; }
.cp-co .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.3; }
.cp-co .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.cp-co .woocommerce-invalid .input-text, .cp-co .woocommerce-invalid select { border-color: #d92d20; }
.cp-co .form-row.is-collapsed > :not(.cp-co-addfield) { display: none !important; }
.cp-co-addfield { grid-column: 1 / -1; justify-self: start; margin: -4px 0 0; padding: 0; border: 0; background: none; font: 600 14px var(--font); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cp-co-shipelse { margin: 6px 0 12px; font-size: 15px; }
.cp-co-shipelse label, .cp-co .checkbox, .cp-co label.checkbox { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 600; cursor: pointer; }
.cp-co input[type=checkbox] { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--ink); flex: none; }
.cp-co .shipping_address { padding-top: 6px; }

/* Bump */
.cp-co-bump { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 14px; border: 1.5px dashed var(--marigold); border-radius: 12px; background: #fffaf0; }
.cp-co-bump__img { width: 56px; height: 56px; border-radius: 10px; overflow: hidden; background: var(--fog); }
.cp-co-bump__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-co-bump__txt em { display: block; font: 700 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; font-style: normal; color: var(--slate); }
.cp-co-bump__txt b { font-size: 15px; margin-right: 6px; }
.cp-co-bump .cp-btn { min-height: 40px; padding: 0 18px; }

/* Shipping choices */
.cp-co-rates { list-style: none; margin: 0; padding: 0; border: 1.5px solid var(--line); border-radius: 12px; overflow: hidden; }
.cp-co-rates li + li { border-top: 1px solid var(--line); }
.cp-co-rate { display: grid !important; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 6px 12px; align-items: center; padding: 14px 16px; cursor: pointer; margin: 0 !important; font-size: 15px !important; font-weight: 600 !important; }
.cp-co-rate.is-on { background: #fffaf0; box-shadow: inset 3px 0 0 var(--marigold); }
.cp-co-rate input { margin: 0; accent-color: var(--ink); width: 18px; height: 18px; }
.cp-co-rate__cost { white-space: nowrap; }
.cp-co-rate .cp-rate-note { grid-column: 2 / -1; margin: 0; }
.cp-co-ship__empty { margin: 0; padding: 14px 16px; border: 1.5px dashed var(--line); border-radius: 12px; color: var(--slate); font-size: 14px; }
.cp-co-route { margin-top: 12px; padding: 14px 16px; border: 1.5px solid var(--line); border-radius: 12px; }
.cp-co-route .pw-route-protection, .cp-co-route #route-checkout-radio { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; justify-content: space-between !important; text-align: left !important; }
.cp-co-route__note { margin: 10px 0 0; font-size: 13px; line-height: 1.45; color: var(--slate); }
.cp-co [name="shippingAddress.textOptIn"] { grid-column: 1 / -1; margin: 4px 0 12px !important; }
.cp-co [name="shippingAddress.textOptIn"] .label { font-size: 13px !important; font-weight: 500; line-height: 1.45; color: var(--ink-2); }
.cp-co [name="shippingAddress.textOptIn"] input { width: 18px; height: 18px; margin: 1px 0 0; flex: none; accent-color: var(--ink); }

/* Payment (WooCommerce + gateway markup) */
.cp-co #payment { background: none; border-radius: 0; }
.cp-co #payment ul.payment_methods { list-style: none; margin: 0 0 18px; padding: 0; border: 1.5px solid var(--line); border-radius: 12px; overflow: hidden; }
.cp-co #payment ul.payment_methods > li { margin: 0; padding: 14px 16px; border-top: 1px solid var(--line); }
.cp-co #payment ul.payment_methods > li:first-child { border-top: 0; }
.cp-co #payment ul.payment_methods > li > label { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 15px; cursor: pointer; margin: 0; }
.cp-co #payment ul.payment_methods > li > label img { max-height: 22px; width: auto; margin-left: 4px; }
.cp-co #payment ul.payment_methods > li > input { margin-right: 10px; accent-color: var(--ink); }
.cp-co #payment .payment_box { margin: 12px 0 0; padding: 14px; border-radius: 10px; background: var(--fog); font-size: 14px; }
.cp-co #payment .payment_box::before { display: none; }
.cp-co #payment .payment_box p:last-child { margin-bottom: 0; }
.cp-co .woocommerce-terms-and-conditions-wrapper { margin: 0 0 6px; }
.cp-co .woocommerce-terms-and-conditions-wrapper .form-row, .cp-co .cp-ack { margin: 0 0 12px; font-size: 14px; line-height: 1.45; }
.cp-co .cp-ack label { font-weight: 500 !important; }
.cp-co .cp-ack .optional { display: none; }
.cp-co .woocommerce-privacy-policy-text p { font-size: 12.5px; color: var(--slate); }
.cp-co #place_order { width: 100%; min-height: 58px; border: 0; border-radius: 12px; background: var(--marigold); color: var(--ink); font: 800 18px var(--font); letter-spacing: -0.01em; cursor: pointer; float: none; }
.cp-co #place_order:hover { background: #e39a05; }
.cp-co .place-order { padding: 0 !important; margin: 0; }

/* Summary */
.cp-co-side { position: sticky; top: 24px; }
.cp-co-sum { border: 1px solid var(--line); border-radius: 16px; padding: 20px; background: var(--paper); box-shadow: 0 10px 30px rgba(17,20,24,.06); }
.cp-co-sum__h { margin: 0 0 10px; font-size: 20px; }
.cp-co-table { width: 100%; border-collapse: collapse; margin: 0; font-size: 15px; }
.cp-co-table td, .cp-co-table th { padding: 8px 0; border: 0; vertical-align: middle; text-align: left; font-weight: 500; }
.cp-co-table td:last-child, .cp-co-table th + td { text-align: right; white-space: nowrap; }
.cp-co-table tbody tr td { padding: 10px 0; border-bottom: 1px solid var(--line); }
.cp-co-table tbody tr:last-child td { border-bottom: 0; }
.cp-co-table .product-total del { display: block; font-size: 12.5px; color: var(--slate); font-weight: 500; }
.cp-co-table .product-total { font-weight: 700; }
.cp-co-line { display: flex; align-items: center; gap: 12px; }
.cp-co-line__img { position: relative; flex: none; width: 52px; height: 52px; border-radius: 10px; background: var(--fog); }
.cp-co-line__img img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; display: block; }
.cp-co-line__img b { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 99px; background: var(--ink); color: var(--paper); font: 700 11px/20px var(--mono); text-align: center; }
.cp-co-line__name { display: block; font-weight: 700; line-height: 1.3; }
.cp-co-line__name em { font: 700 11.5px var(--mono); color: var(--slate); font-style: normal; }
.cp-co-line__note { display: block; font-size: 12.5px; color: var(--slate); }
.cp-co-table tfoot tr:first-child th, .cp-co-table tfoot tr:first-child td { border-top: 1px solid var(--line); padding-top: 14px; }
.cp-co-table tfoot th { color: var(--ink-2); }
.cp-co-table .order-total th, .cp-co-table .order-total td { padding-top: 14px; border-top: 1.5px solid var(--ink); font-size: 18px; font-weight: 800; }
.cp-co-table .cp-co-saving th, .cp-co-table .cp-co-saving td { color: #0b7a62; font-weight: 700; padding-top: 0; }
.cp-co-table .woocommerce-remove-coupon { font-size: 12px; color: var(--slate); margin-left: 4px; }
.cp-co-muted { color: var(--slate); font-weight: 500; }
.cp-co-code { margin-top: 10px; border-top: 1px solid var(--line); padding-top: 12px; }
.cp-co-code summary { cursor: pointer; font-weight: 700; font-size: 14px; }
.cp-co-code__row { display: flex; gap: 8px; margin-top: 10px; }
.cp-co-code__row input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1.5px solid var(--line); border-radius: 10px; font: 600 15px var(--mono); text-transform: uppercase; }
.cp-co-code__msg { margin: 8px 0 0; font-size: 13px; }
.cp-co-code__msg:empty { display: none; }
.cp-co-code__msg.is-error { color: #b42318; }
.cp-co-code__msg.is-ok { color: #0b7a62; }
.cp-co-credits { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: #eef4ff; font-size: 13.5px; }
.cp-co-credits a { color: var(--ink); text-decoration: none; }
.cp-co-sum .cp-sctrust { margin-top: 14px; }

/* Phones: summary bar on top, side column gone */
.cp-co-mobsum { display: none; }
@media (max-width: 960px) {
  .cp-co-grid { grid-template-columns: 1fr; gap: 0; }
  .cp-co-side { display: none; }
  .cp-co-mobsum { display: block; margin: -24px calc(-1 * var(--gutter)) 24px; background: var(--fog); border-bottom: 1px solid var(--line); }
  .cp-co-mobsum > summary { display: flex; justify-content: space-between; align-items: center; padding: 14px var(--gutter); cursor: pointer; font-weight: 700; list-style: none; }
  .cp-co-mobsum > summary::-webkit-details-marker { display: none; }
  .cp-co-mobsum__lbl { display: inline-flex; align-items: center; gap: 8px; }
  .cp-co-mobsum__hide { display: none; }
  .cp-co-mobsum[open] .cp-co-mobsum__hide { display: inline; }
  .cp-co-mobsum[open] .cp-co-mobsum__show { display: none; }
  .cp-co-mobtotal { font-size: 17px; font-weight: 800; }
  .cp-co-sum--mob { margin: 0 var(--gutter) 16px; box-shadow: none; }
  .cp-co .woocommerce-billing-fields__field-wrapper, .cp-co .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
  .cp-co-bump { grid-template-columns: 48px minmax(0, 1fr) auto; }
  .cp-co-bump__img { width: 48px; height: 48px; }
}

.cp-co .woocommerce-checkout #payment div.payment_box, .cp-co #payment div.payment_box { background: var(--fog) !important; color: var(--ink) !important; margin: 12px 0 0 !important; padding: 14px !important; border-radius: 10px !important; font-size: 14px; }
.cp-co #payment div.payment_box::before { display: none !important; }
.cp-co .cp-co-table, .cp-co .cp-co-table td, .cp-co .cp-co-table th { border-left: 0 !important; border-right: 0 !important; }
.cp-co table.shop_table.cp-co-table { border: 0 !important; border-radius: 0; }
.cp-co .cp-co-table tfoot td, .cp-co .cp-co-table tfoot th { border-top: 0; }
.cp-co-paytotal { display: none; }
@media (max-width: 960px) {
  .cp-co-paytotal { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 12px; margin: 4px 0 14px; padding: 14px 0 0; border-top: 1.5px solid var(--ink); }
  .cp-co-paytotal span { font-weight: 700; font-size: 17px; }
  .cp-co-paytotal b { font-size: 20px; }
  .cp-co-paytotal em { flex-basis: 100%; text-align: right; font-style: normal; color: #0b7a62; font-weight: 700; font-size: 14px; }
}

/* WPLoyalty messages inside the checkout summary: two quiet lines */
.cp-co-loyalty { margin: 12px 0 0; padding: 4px 12px; border-radius: 10px; background: #eef4ff; }
.cp-co-loyalty .wlr-message-info { display: flex !important; align-items: center; gap: 8px; margin: 0 !important; padding: 8px 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; font-size: 13.5px !important; color: var(--ink) !important; }
.cp-co-loyalty .wlr-message-info + .wlr-message-info { border-top: 1px solid rgba(17,20,24,.08) !important; }
.cp-co-loyalty .wlr-message-info img, .cp-co-loyalty .wlr-message-info svg, .cp-co-loyalty .wlr-message-info i { width: 18px !important; height: 18px !important; flex: none; }
.cp-co-loyalty a { color: var(--ink) !important; font-weight: 700; }

/* Checkout, compact (Oct 26): labels sit inside the boxes, City / State / ZIP on one line. */
.cp-co .woocommerce-billing-fields__field-wrapper, .cp-co .woocommerce-shipping-fields__field-wrapper { grid-template-columns: repeat(6, minmax(0, 1fr)); column-gap: 10px; }
.cp-co .woocommerce-billing-fields__field-wrapper > *, .cp-co .woocommerce-shipping-fields__field-wrapper > * { grid-column: 1 / -1; }
.cp-co #billing_first_name_field, .cp-co #shipping_first_name_field, .cp-co #billing_phone_field { grid-column: 1 / 4; }
.cp-co #billing_last_name_field, .cp-co #shipping_last_name_field, .cp-co #billing_email_field { grid-column: 4 / 7; }
.cp-co #billing_city_field, .cp-co #shipping_city_field { grid-column: 1 / 3; }
.cp-co #billing_state_field, .cp-co #shipping_state_field { grid-column: 3 / 5; }
.cp-co #billing_postcode_field, .cp-co #shipping_postcode_field { grid-column: 5 / 7; }
.cp-co .form-row { position: relative; margin: 0 0 10px; }
.cp-co .woocommerce-billing-fields__field-wrapper .form-row > label:not(.checkbox), .cp-co .woocommerce-shipping-fields__field-wrapper .form-row > label:not(.checkbox), .cp-co .cp-industry > label {
  position: absolute; top: 7px; left: 13px; right: 30px; z-index: 2; margin: 0; font-size: 11.5px !important; font-weight: 600 !important; color: var(--slate); pointer-events: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cp-co .woocommerce-billing-fields__field-wrapper .input-text, .cp-co .woocommerce-shipping-fields__field-wrapper .input-text, .cp-co .cp-industry select,
.cp-co .woocommerce-billing-fields__field-wrapper select, .cp-co .woocommerce-shipping-fields__field-wrapper select { min-height: 52px; padding: 22px 12px 6px; font-size: 15.5px; }
.cp-co .woocommerce-billing-fields__field-wrapper .select2-container .select2-selection--single, .cp-co .woocommerce-shipping-fields__field-wrapper .select2-container .select2-selection--single { min-height: 52px; padding: 22px 12px 6px; }
.cp-co .select2-container .select2-selection--single .select2-selection__arrow { top: 3px; height: 46px; }
.cp-co .input-text::placeholder { color: #a3aab3; }
.cp-co .cp-co-addfield { margin: -2px 0 2px; font-size: 13.5px; }
.cp-co .form-row.is-collapsed { margin-bottom: 8px; }
.cp-co .cp-industry { margin-top: 2px; }
.cp-co-sec { padding-bottom: 22px; margin-bottom: 22px; }
.cp-co-h { font-size: 20px; margin-bottom: 10px; }
.cp-co-h span { width: 24px; height: 24px; font-size: 12px; }
.cp-co-sub { margin: -4px 0 10px; font-size: 13.5px; }
.cp-co-rate { padding: 12px 14px; }
@media (max-width: 960px) {
  .cp-co .woocommerce-billing-fields__field-wrapper, .cp-co .woocommerce-shipping-fields__field-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cp-co #billing_first_name_field, .cp-co #shipping_first_name_field { grid-column: 1 / 2; }
  .cp-co #billing_last_name_field, .cp-co #shipping_last_name_field { grid-column: 2 / 3; }
  .cp-co #billing_city_field, .cp-co #shipping_city_field, .cp-co #billing_phone_field, .cp-co #billing_email_field { grid-column: 1 / -1; }
  .cp-co #billing_state_field, .cp-co #shipping_state_field { grid-column: 1 / 2; }
  .cp-co #billing_postcode_field, .cp-co #shipping_postcode_field { grid-column: 2 / 3; }
  .cp-co-sec { padding-bottom: 18px; margin-bottom: 18px; }
}
.cp-co .form-row input.input-text, .cp-co .form-row select { padding: 22px 12px 6px !important; min-height: 52px !important; line-height: 1.3 !important; }
.cp-co .cp-ack label, .cp-co .woocommerce-terms-and-conditions-wrapper label { line-height: 1.45 !important; }
.cp-co .form-row input.input-text, .cp-co .form-row select, .cp-co .select2-container .select2-selection--single { border: 1.5px solid #d5d9de !important; border-radius: 10px !important; box-shadow: none !important; }
.cp-co .form-row input.input-text:focus, .cp-co .form-row select:focus { border-color: var(--ink) !important; box-shadow: 0 0 0 3px rgba(17,20,24,.08) !important; }
.cp-co .woocommerce-invalid input.input-text, .cp-co .woocommerce-invalid select { border-color: #d92d20 !important; }

/* Checkout: quantity on each summary line; WPLoyalty lines without stars; mobile extras */
.cp-co-qty { display: inline-flex; align-items: center; margin: 4px 0 2px; border: 1px solid var(--line); border-radius: 8px; }
.cp-co-qty button { width: 28px; height: 26px; border: 0; background: none; font: 600 15px/1 var(--font); color: var(--ink); cursor: pointer; }
.cp-co-qty button:disabled { opacity: .35; cursor: default; }
.cp-co-qty b { min-width: 22px; text-align: center; font: 700 13px var(--mono); }
.cp-co-line__img b { display: none; }
.cp-co-line__note:empty { display: none; }
.cp-co-loyalty { background: none; padding: 0; border-top: 1px solid var(--line); border-radius: 0; margin-top: 12px; }
.cp-co-loyalty .wlr-message-info { padding: 10px 0 0 !important; font-size: 13.5px !important; font-weight: 600 !important; }
.cp-co-loyalty .wlr-message-info + .wlr-message-info { border-top: 0 !important; padding-top: 6px !important; }
.cp-co-loyalty .wlr-message-info img, .cp-co-loyalty .wlr-message-info svg, .cp-co-loyalty .wlr-message-info i, .cp-co-loyalty .wlr-message-info [class*="icon"] { display: none !important; }
.cp-co-loyalty a { text-decoration: underline; text-underline-offset: 3px; }
.cp-co-mobextras { display: none; }
@media (max-width: 960px) {
  .cp-co-mobextras { display: block; margin: -4px 0 22px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
  .cp-co-mobextras .cp-co-code { margin-top: 0; border-top: 0; padding-top: 0; }
}

/* Phones: code + lab credits sit with the total, right above Complete order (Oct 26) */
.cp-co-payextras { display: none; }
@media (max-width: 960px) {
  .cp-co-mobextras { display: none !important; }
  .cp-co-payextras { display: block; margin: 0 0 16px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
  .cp-co-payextras .cp-co-code { margin: 0; padding: 0; border: 0; }
  .cp-co-payextras .cp-co-loyalty { margin-top: 10px; }
  .cp-co-payextras + .cp-co-paytotal { margin-top: 0; }
  .cp-co-sum--mob .cp-co-code { margin-top: 6px; }
}

.cp-co-payextras .cp-co-code[hidden] + .cp-co-loyalty { margin-top: 0; border-top: 0; }
.cp-co-payextras .cp-co-loyalty .wlr-message-info:first-child { padding-top: 0 !important; }
/* Notice close button + fade */
.woocommerce-message, .woocommerce-info, .woocommerce-error { position: relative; padding-right: 48px !important; transition: opacity .3s ease, transform .3s ease; }
.woocommerce-message.is-leaving, .woocommerce-info.is-leaving { opacity: 0; transform: translateY(-6px); }
.cp-notice-x { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); width: 30px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: inherit; font-size: 22px; line-height: 1; cursor: pointer; opacity: .75; }
.cp-notice-x:hover { opacity: 1; background: rgba(255,255,255,.12); }
.woocommerce-error .cp-notice-x:hover, .woocommerce-info .cp-notice-x:hover { background: rgba(17,20,24,.06); }

/* ================= Order received (Oct 26) ================= */
.cp-ty-page { padding-top: 40px; padding-bottom: 64px; }
.cp-ty { max-width: 760px; }
.cp-ty__head { margin: 0 0 24px; }
.cp-ty__check { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin: 0 0 14px; border-radius: 99px; background: var(--marigold); color: var(--ink); }
.cp-ty__head h1 { margin: 4px 0 10px; font-size: clamp(30px, 4.6vw, 44px); letter-spacing: -0.03em; line-height: 1.05; }
.cp-ty__lede { margin: 0; font-size: 17px; color: var(--ink-2); max-width: 600px; }
.cp-ty__head--bad h1 { color: #8a1c1c; }
.cp-pay-card { margin: 0 0 24px; padding: 22px 24px; border-radius: 16px; background: var(--ink); color: var(--paper); }
.cp-pay-card .cp-eyebrow { color: var(--marigold); }
.cp-pay-card h2 { margin: 4px 0 10px; font-size: 24px; color: var(--paper); }
.cp-pay-card p { color: #dfe4ea; }
.cp-pay-card a { color: var(--marigold); }
.cp-pay-card__warn { margin: 12px 0 0 !important; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.15); font-weight: 700; color: var(--paper) !important; }
.cp-ty__facts { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1px; margin: 0 0 24px; padding: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--line); }
.cp-ty__facts li { padding: 12px 16px; background: var(--paper); }
.cp-ty__facts span { display: block; font: 700 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); margin-bottom: 4px; }
.cp-ty__facts b { font-size: 15px; word-break: break-word; }
.cp-ty__steps { list-style: none; counter-reset: s; margin: 0 0 32px; padding: 0; display: grid; gap: 10px; }
.cp-ty__steps li { counter-increment: s; position: relative; padding: 12px 16px 12px 52px; border: 1px solid var(--line); border-radius: 12px; }
.cp-ty__steps li::before { content: counter(s); position: absolute; left: 14px; top: 12px; width: 26px; height: 26px; border-radius: 99px; background: var(--fog); font: 700 13px/26px var(--mono); text-align: center; }
.cp-ty__steps li.is-done::before { content: "✓"; background: #0b7a62; color: #fff; }
.cp-ty__steps li.is-now { border-color: var(--marigold); background: #fffaf0; }
.cp-ty__steps li.is-now::before { background: var(--marigold); }
.cp-ty__steps b { display: block; font-size: 15px; }
.cp-ty__steps span { font-size: 14px; color: var(--slate); }
.cp-ty__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 18px 0 0; }
.cp-ty__actions--end { margin-top: 28px; }
.cp-ty .woocommerce-order-details, .cp-ty .woocommerce-customer-details { margin-top: 8px; }
.cp-ty .woocommerce-order-details__title, .cp-ty .woocommerce-column__title { font-size: 22px; }
.cp-ty__facts b *, .cp-ty__facts b .woocommerce-Price-amount { font: inherit !important; letter-spacing: 0 !important; }
.cp-ty__facts b { white-space: normal; }
.cp-ty__facts .woocommerce-Price-amount, .cp-ty__facts .woocommerce-Price-amount * { display: inline !important; white-space: nowrap; }
.cp-ty__facts { background: var(--paper); }
.cp-ty__facts li { box-shadow: 0 0 0 1px var(--line); }
.cp-ty__facts .woocommerce-Price-amount, .cp-ty__facts .woocommerce-Price-amount * { color: var(--ink) !important; font-weight: 700 !important; }

.cp-co-remove { margin-left: 10px; padding: 0; border: 0; background: none; font: 500 12.5px var(--font); color: var(--slate); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; vertical-align: middle; }
.cp-co-remove:hover { color: var(--ink); }

/* Order received: facts in a fixed grid, email on its own full row (Oct 26) */
.cp-ty__facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cp-ty__facts li.cp-ty__email { grid-column: 1 / -1; }
.cp-ty__facts b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
.cp-ty__facts li.cp-ty__email b { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 640px) { .cp-ty__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cp-ty .woocommerce-columns--addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cp-ty .woocommerce-columns--addresses .woocommerce-column { width: auto !important; float: none !important; margin: 0 !important; }
.cp-ty .woocommerce-columns--addresses::before, .cp-ty .woocommerce-columns--addresses::after { display: none !important; }
.cp-ty .woocommerce-column__title { margin: 0 0 12px; }
@media (max-width: 640px) { .cp-ty .woocommerce-columns--addresses { grid-template-columns: 1fr; gap: 28px; } }

/* Checkout: instant quantity changes. Totals dim while the refresh runs; no grey overlay on the summary. */
.cp-co-table .blockUI.blockOverlay { display: none !important; }
.cp-co-table tr.shipping td, .cp-co-table tr.order-total td, .cp-co-table tr.cp-co-saving td,
.cp-co-table tr.cart-discount td, .cp-co-table tr.fee td, .cp-co-paytotal b, .cp-co-mobtotal { transition: opacity .15s; }
.cp-co-table.is-pending tr.shipping td, .cp-co-table.is-pending tr.order-total td, .cp-co-table.is-pending tr.cp-co-saving td,
.cp-co-table.is-pending tr.cart-discount td, .cp-co-table.is-pending tr.fee td, .cp-co-paytotal.is-pending b, .cp-co-mobtotal.is-pending { opacity: .4; }

/* Product page deal box (BOGO from WooCommerce → Promos), Oct 29. */
.cp-deal { margin: 0 0 14px; border: 1px solid var(--ink); border-radius: 12px; overflow: hidden; background: var(--paper); }
.cp-deal[hidden] { display: none; }
.cp-deal__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; padding: 12px 16px; background: var(--ink); color: var(--paper); }
.cp-deal__head > div:first-child { display: flex; flex-direction: column; gap: 4px; }
.cp-deal__eyebrow { font: 700 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--marigold); }
.cp-deal__name { font-size: 17px; font-weight: 800; letter-spacing: -0.01em; }
.cp-deal__ends { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.cp-deal__ends[hidden] { display: none; }
.cp-deal__ends span { font-size: 11px; color: rgba(255,255,255,.7); }
.cp-deal__ends b { font: 700 14px/1 var(--mono); }
.cp-deal__rows { display: flex; flex-direction: column; }
.cp-deal__row { appearance: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; padding: 12px 16px; border: 0; border-top: 1px solid var(--line); background: none; text-align: left; font: inherit; color: var(--ink); cursor: pointer; }
.cp-deal__row:first-child { border-top: 0; }
.cp-deal__row:hover { background: #fafbfc; }
.cp-deal__row:focus-visible { outline: 2px solid var(--marigold); outline-offset: -2px; }
.cp-deal__row.is-on { background: #fff8e8; box-shadow: inset 4px 0 0 var(--marigold); }
.cp-deal__l, .cp-deal__r { display: flex; flex-direction: column; gap: 2px; }
.cp-deal__r { align-items: flex-end; }
.cp-deal__l b { font-size: 15px; }
.cp-deal__r b { font: 700 15px var(--mono); }
.cp-deal__row small { font-size: 12.5px; color: var(--slate); }
.cp-deal__row em { font-style: normal; font-weight: 700; color: #0d7a6c; }
.cp-deal__foot { margin: 0; padding: 10px 16px; border-top: 1px solid var(--line); background: var(--fog); font-size: 12.5px; color: var(--ink-2); line-height: 1.45; }

/* Product page lot card, light version (Oct 29): header, two big numbers, details, one button. */
.cp-lotcard { margin: 24px 0 0; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); overflow: hidden; }
.cp-lotcard[hidden] { display: none; }
.cp-lotcard__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 18px; background: var(--ink); }
.cp-lotcard__name { font-weight: 800; font-size: 16px; letter-spacing: -0.01em; color: var(--marigold); }
.cp-lotcard__name small { margin-left: 4px; font: 700 12px var(--mono); color: rgba(255,255,255,.7); }
.cp-lotcard__badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 99px; border: 1px solid var(--marigold); background: transparent; color: var(--marigold); font: 700 11px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.cp-lotcard__badge.is-wait { border-color: rgba(255,255,255,.5); color: rgba(255,255,255,.85); }
.cp-lotcard__body { padding: 16px 18px 18px; }
.cp-lotcard__stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 0 0 12px; }
.cp-lotcard__stats > div { padding: 12px 14px; border-radius: 10px; background: var(--fog); }
.cp-lotcard__stats b { display: block; font: 700 22px/1.1 var(--mono); color: var(--ink); }
.cp-lotcard__stats b small { font-size: 13px; color: var(--slate); }
.cp-lotcard__stats span { display: block; margin-top: 4px; font: 700 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.cp-lotcard__rows { margin: 0 0 14px; }
.cp-lotcard__rows > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.cp-lotcard__rows dt { color: var(--slate); font-weight: 600; }
.cp-lotcard__rows dd { margin: 0; font-weight: 700; color: var(--ink); }
.cp-lotcard__code { font-family: var(--mono); letter-spacing: .03em; }
.cp-lotcard__view { width: 100%; justify-content: center; }
.cp-lotcard__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin: 12px 0 0; font-size: 13.5px; }
.cp-lotcard__links a { display: inline-flex; align-items: center; gap: 3px; font-weight: 600; color: var(--ink-2); }
.cp-lotcard__note { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ink-2); }
.cp-lotcard__links + .cp-lotcard__note { margin-top: 12px; }

/* Product page trust row (Oct 29). */
.cp-ptrust { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; margin: 18px 0 18px; padding: 16px 0 0; border-top: 1px solid var(--line); }
.cp-ptrust li { display: flex; align-items: flex-start; gap: 10px; }
.cp-ptrust svg { flex: none; margin-top: 1px; color: var(--ink); }
.cp-ptrust span { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--slate); line-height: 1.35; }
.cp-ptrust b { font-size: 14px; color: var(--ink); }

/* ------------------------------------------------------------------
 * Lab credits tab (WPLoyalty's page), Oct 30: site type and spacing, no clip-art icons,
 * numbers first. Colors come from WPLoyalty settings (scripts/settings.php).
 * ------------------------------------------------------------------ */
.wlr-myaccount-page { font-family: var(--font); color: var(--ink); }
.wlr-myaccount-page .wlr-heading-container { margin: 0 0 14px; }
.wlr-myaccount-page h3.wlr-heading { display: flex; align-items: center; gap: 8px; margin: 0 !important; padding: 0 !important; border: 0 !important; font: 700 12px/1 var(--mono) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2) !important; }
.wlr-myaccount-page h3.wlr-heading::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--marigold); }
.wlr-myaccount-page .wlr-user-details, .wlr-myaccount-page .wlr-referral-blog, .wlr-myaccount-page .wlr-your-reward, .wlr-myaccount-page .wlr-transaction-blog, .wlr-myaccount-page .wlr-earning-options { margin: 0 0 40px !important; }

/* Balance cards: no icons, big number; the first one is the dark credits card. */
.wlr-myaccount-page #wlr-points { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.wlr-myaccount-page #wlr-points > div { margin: 0 !important; width: auto !important; min-height: 0 !important; padding: 18px 20px !important; border: 1px solid var(--line) !important; border-radius: 14px !important; background: var(--paper); box-shadow: none !important; display: block !important; }
.wlr-myaccount-page #wlr-points .wlr-icon, .wlr-myaccount-page #wlr_currency_list { display: none !important; }
.wlr-myaccount-page #wlr-points span[id$="-heading"] { display: block; font: 700 11px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate) !important; }
.wlr-myaccount-page #wlr-points div[id$="-value"], .wlr-myaccount-page #wlr-used-reward-value-count { margin: 8px 0 4px; font: 800 34px/1 var(--font) !important; letter-spacing: -0.02em; color: var(--ink) !important; }
.wlr-myaccount-page #wlr-points p { margin: 0 !important; font-size: 13px !important; color: var(--slate) !important; }
.wlr-myaccount-page #wlr-available-points { background: var(--ink) !important; border-color: var(--ink) !important; }
.wlr-myaccount-page #wlr-available-points span[id$="-heading"] { color: var(--marigold) !important; }
.wlr-myaccount-page #wlr-available-points #wlr-available-point-value { color: var(--paper) !important; font-size: 40px !important; }
.wlr-myaccount-page #wlr-available-points p { color: rgba(255,255,255,.7) !important; }
.wlr-myaccount-page #wlr-available-points .cp-wlr-worth { margin: 0 0 6px !important; font-size: 14px !important; font-weight: 700; color: var(--paper) !important; }
.wlr-myaccount-page #wlr-used-rewards > div:first-child { display: none !important; }

/* Referral link: room inside the box, one button. */
.wlr-myaccount-page .wlr-referral-box { display: flex !important; align-items: stretch; border: 1px solid var(--line) !important; border-radius: 10px !important; overflow: hidden; background: var(--paper); }
.wlr-myaccount-page .wlr-referral-box input#wlr_referral_url_link { flex: 1; min-width: 0; height: 48px !important; padding: 0 16px !important; border: 0 !important; background: var(--paper) !important; font: 600 14px var(--mono) !important; color: var(--ink) !important; text-overflow: ellipsis; opacity: 1; -webkit-text-fill-color: var(--ink); }
.wlr-myaccount-page .wlr-referral-box .input-group-append { display: flex !important; flex: none !important; width: auto !important; max-width: none !important; height: auto !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; cursor: pointer; }
.wlr-myaccount-page .wlr-referral-box .input-group-text { display: flex !important; align-items: center; justify-content: center; gap: 6px; width: auto !important; height: auto !important; min-height: 48px; margin: 0 !important; padding: 0 22px !important; line-height: 1 !important; border: 0 !important; border-radius: 0 !important; background: var(--ink) !important; font: 700 15px var(--font) !important; color: var(--paper) !important; white-space: nowrap; }
.wlr-myaccount-page .wlr-referral-box .input-group-text i { display: none !important; }

/* Tabs. */
.wlr-myaccount-page .wlr-user-reward-titles { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; height: auto !important; max-height: none !important; overflow: visible !important; gap: 22px; border-bottom: 1px solid var(--line) !important; margin: 0 0 18px; }
.wlr-myaccount-page .wlr-my-rewards-title { display: flex !important; flex: none !important; width: auto !important; margin-top: 0 !important; margin-left: 0 !important; margin-right: 0 !important; align-items: center; padding: 0 0 10px !important; border-bottom: 3px solid transparent !important; margin-bottom: -1px; cursor: pointer; }
.wlr-myaccount-page .wlr-my-rewards-title i { display: none !important; }
.wlr-myaccount-page .wlr-my-rewards-title h4 { margin: 0 !important; font: 600 15px var(--font) !important; color: var(--slate) !important; }
.wlr-myaccount-page .wlr-my-rewards-title.active { border-bottom-color: var(--marigold) !important; }
.wlr-myaccount-page .wlr-my-rewards-title.active h4 { color: var(--ink) !important; }

/* Reward and coupon cards: no icons, clear type, full-width button. */
.wlr-myaccount-page .wlr-card-icon-container, .wlr-myaccount-page .wlr-norecords-container i { display: none !important; }
.wlr-myaccount-page .wlr-reward-card, .wlr-myaccount-page .wlr-new-coupon-card { position: relative; padding: 18px 20px !important; border: 1px solid var(--line) !important; border-radius: 14px !important; box-shadow: none !important; background: var(--paper); }
.wlr-myaccount-page .wlr-reward-type-name { position: absolute; top: 14px; right: 14px; float: none !important; margin: 0 !important; padding: 4px 8px !important; border: 0 !important; border-radius: 99px; background: var(--fog); font: 700 10px/1 var(--mono) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--slate) !important; }
.wlr-myaccount-page .wlr-card-inner-container { padding: 0 !important; }
.wlr-myaccount-page .wlr-reward-card h4.wlr-name, .wlr-myaccount-page .wlr-new-coupon-card h4.wlr-name { margin: 22px 0 4px !important; }
.wlr-myaccount-page p.wlr-name { margin: 0 !important; font: 800 18px/1.25 var(--font) !important; letter-spacing: -0.01em; color: var(--ink) !important; }
.wlr-myaccount-page p.wlr-description, .wlr-myaccount-page .wlr-name-container > p { margin: 0 0 14px !important; font-size: 14px !important; line-height: 1.45; color: var(--slate) !important; }
.wlr-myaccount-page .wlr-button { display: flex !important; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px !important; border-radius: 8px !important; font: 700 15px var(--font) !important; cursor: pointer; }
.wlr-myaccount-page .wlr-button .wlr-action-text { font: inherit !important; }
.wlr-myaccount-page .wlr-point-conversion-section { padding: 12px 0 0 !important; border: 0 !important; }
.wlr-myaccount-page .wlr-input-point-conversion, .wlr-myaccount-page .wlr-point-label-content { border-radius: 8px !important; border-color: var(--line) !important; }
.wlr-myaccount-page .wlr-point-conversion-box { font: 700 16px var(--mono) !important; }
.wlr-myaccount-page .wlr-input-point-title { font: 700 15px var(--mono) !important; }
.wlr-myaccount-page .wlr-code { border-radius: 8px !important; overflow: hidden; }
.wlr-myaccount-page .wlr-coupon-code p, .wlr-myaccount-page .wlr-coupon-code span { font: 700 15px var(--mono) !important; letter-spacing: .06em; text-transform: uppercase; color: var(--ink) !important; }
.wlr-myaccount-page .wlr-coupon-copy-icon { color: var(--ink) !important; }
.wlr-myaccount-page .wlr-norecords-container h4 { font: 700 16px var(--font) !important; }
.wlr-myaccount-page .wlr-norecords-container p { font-size: 14px !important; color: var(--slate) !important; }

.wlr-myaccount-page .wlr-customer-reward, .wlr-myaccount-page .wlr-coupons-list { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.wlr-myaccount-page .wlr-customer-reward > *, .wlr-myaccount-page .wlr-coupons-list > * { width: auto !important; margin: 0 !important; }
.wlr-myaccount-page .wlr-code { display: flex !important; align-items: stretch; border: 1px dashed var(--marigold) !important; background: var(--fog); margin: 0 0 10px; }
.wlr-myaccount-page .wlr-coupon-code { flex: 1; display: flex; align-items: center; padding: 0 14px !important; min-height: 44px; background: transparent !important; cursor: pointer; }
.wlr-myaccount-page .wlr-coupon-code p { margin: 0 !important; }
.wlr-myaccount-page .wlr-coupon-copy-icon { display: flex !important; align-items: center; padding: 0 14px !important; background: transparent !important; cursor: pointer; }

.wlr-myaccount-page .wlr-new-coupon-card .wlr-card-container { padding: 0 !important; }
.wlr-myaccount-page .wlr-coupon-card-header { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 14px; }
.wlr-myaccount-page .wlr-coupon-card-header .wlr-title-icon { display: block !important; width: auto !important; }
.wlr-myaccount-page .wlr-coupon-card-header .wlr-name-container > p { margin: 0 !important; }
.wlr-myaccount-page .wlr-new-coupon-card h4.wlr-name { margin: 0 0 4px !important; }
.wlr-myaccount-page .wlr-code-button { display: block !important; width: 100% !important; max-width: none !important; margin: 0 !important; }
.wlr-myaccount-page .wlr-code-button .wlr-button { width: 100% !important; }
.wlr-myaccount-page .wlr-coupon-code { justify-content: flex-start; }

/* Empty tab (no rewards / no used coupons): a quiet note, left aligned. */
.wlr-myaccount-page .wlr-norecords-container { grid-column: 1 / -1; display: block !important; width: auto !important; margin: 0 !important; padding: 18px 20px !important; border-radius: 14px; background: var(--fog); text-align: left !important; }
.wlr-myaccount-page .wlr-norecords-container > div { display: block !important; width: auto !important; margin: 0 !important; padding: 0 !important; text-align: left !important; }
.wlr-myaccount-page .wlr-norecords-container > div:first-child { display: none !important; }
.wlr-myaccount-page .wlr-norecords-container h4 { margin: 0 0 4px !important; text-align: left !important; }
.wlr-myaccount-page .wlr-norecords-container p { margin: 0 !important; text-align: left !important; }

/* Activity table. */
.wlr-myaccount-page table.wlr-table { width: 100%; border-collapse: collapse !important; border: 0 !important; outline: 0 !important; }
.wlr-myaccount-page table.wlr-table thead { outline: 0 !important; }
.wlr-myaccount-page table.wlr-table th { padding: 10px 12px !important; border: 0 !important; background: var(--fog) !important; font: 700 10.5px/1.3 var(--mono) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--slate) !important; }
.wlr-myaccount-page table.wlr-table th:first-child { border-radius: 8px 0 0 8px; }
.wlr-myaccount-page table.wlr-table th:last-child { border-radius: 0 8px 8px 0; }
.wlr-myaccount-page table.wlr-table td { padding: 12px !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; font-size: 14px !important; line-height: 1.4; color: var(--ink-2) !important; vertical-align: top; }
.wlr-myaccount-page table.wlr-table td a { font-weight: 700; color: var(--ink) !important; }

/* Ways to earn: the site's own line icons instead of WPLoyalty's. */
.wlr-myaccount-page .wlr-campaign-container { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.wlr-myaccount-page .wlr-earning-option { margin: 0 !important; width: auto !important; padding: 18px 20px !important; border: 1px solid var(--line) !important; border-radius: 14px !important; box-shadow: none !important; }
.wlr-myaccount-page .wlr-earning-option .wlr-card-container, .wlr-myaccount-page .wlr-earning-option .wlr-card-inner-container { padding: 0 !important; margin: 0 !important; }
.wlr-myaccount-page .wlr-earning-option .wlr-card-icon-container { display: block !important; margin: 0 !important; padding: 0 !important; }
.wlr-myaccount-page .wlr-earning-option i.wlr-icon { display: block !important; width: 40px !important; height: 40px !important; margin: 0 0 12px; border-radius: 10px; font-size: 0 !important; background: var(--fog) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111418' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5L18 18M6 18l2.5-2.5M15.5 8.5L18 6'/%3E%3C/svg%3E") center / 22px no-repeat; }
.wlr-myaccount-page .wlr-earning-option i.wlr-icon::before { content: none !important; }
.wlr-myaccount-page .wlr-earning-option i.wlrf-point_for_purchase { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111418' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6M10 3v6l-5 9a2 2 0 0 0 1.7 3h10.6a2 2 0 0 0 1.7-3l-5-9V3'/%3E%3Cpath d='M7.5 15h9'/%3E%3C/svg%3E"); }
.wlr-myaccount-page .wlr-earning-option i.wlrf-referral { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111418' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Cpath d='M16 4.5a3 3 0 0 1 0 6M18 14.5c1.8.8 3 2.6 3 4.5'/%3E%3C/svg%3E"); }
.wlr-myaccount-page .wlr-earning-option i[class*="birthday"], .wlr-myaccount-page .wlr-earning-option i[class*="signup"] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111418' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Cpath d='M5 12v8h14v-8M12 8v12M12 8c-1.5-3-5-3.5-5-1s5 1 5 1zm0 0c1.5-3 5-3.5 5-1s-5 1-5 1z'/%3E%3C/svg%3E"); }
.wlr-myaccount-page .wlr-earning-option h4.wlr-name { margin: 0 0 4px !important; }
.wlr-myaccount-page .wlr-earning-option p.wlr-name { font-size: 16px !important; }
.wlr-myaccount-page .wlr-earning-option p.wlr-description { margin: 0 !important; }

@media (max-width: 720px) {
  .wlr-myaccount-page #wlr-points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wlr-myaccount-page #wlr-available-points { grid-column: 1 / -1; }
  .wlr-myaccount-page .wlr-customer-reward, .wlr-myaccount-page .wlr-coupons-list { grid-template-columns: minmax(0, 1fr); }
  .wlr-myaccount-page .wlr-campaign-container { gap: 10px; }
  .wlr-myaccount-page .wlr-earning-option { padding: 14px !important; }
  .wlr-myaccount-page .wlr-earning-option p.wlr-name { font-size: 15px !important; }
  .wlr-myaccount-page .wlr-earning-option p.wlr-description { font-size: 13px !important; }
  .wlr-myaccount-page .wlr-user-reward-titles { gap: 18px; overflow-x: auto !important; scrollbar-width: none; }
  .wlr-myaccount-page .wlr-user-reward-titles::-webkit-scrollbar { display: none; }
  .wlr-myaccount-page .wlr-my-rewards-title h4 { font-size: 14px !important; white-space: nowrap; }
  .wlr-myaccount-page table.wlr-table th:nth-child(2), .wlr-myaccount-page table.wlr-table td:nth-child(2),
  .wlr-myaccount-page table.wlr-table th:nth-child(5), .wlr-myaccount-page table.wlr-table td:nth-child(5) { display: none !important; }
  .wlr-myaccount-page table.wlr-table td { padding: 12px 8px !important; font-size: 13px !important; }
  .wlr-myaccount-page .wlr-referral-box .input-group-text { padding: 0 14px !important; font-size: 14px !important; }
}

/* ------------------------------------------------------------------
 * Tracking page (/ts-shipment-tracking/): TrackShip's lookup form, rebuilt in the
 * theme (woocommerce/tracking/tracking-form.php). One card, a two-way toggle,
 * fields and button in one row on desktop, stacked on phones.
 * ------------------------------------------------------------------ */
.cp-section--trk { padding-bottom: clamp(48px, 7vw, 88px); }
.cp-trackpage { max-width: none; margin: 0; }
.cp-trackpage__again { display: none; margin-top: 16px; font-weight: 600; color: var(--ink); text-decoration: none; }
.cp-trackpage__again:hover { text-decoration: underline; }
.cp-trackpage:has(.enhanced_tracking_detail, .not-shipped-widget, .tracking-detail) .cp-trackpage__again { display: inline-flex; }
.cp-trk { margin: 0; }
.cp-trk__card { max-width: none !important; min-height: 0 !important; margin: 0 !important; padding: 28px !important; border: 1px solid var(--line) !important; border-radius: 16px !important; background: var(--paper) !important; }
.cp-trk__tabs { display: inline-flex; gap: 4px; padding: 4px; margin: 0 0 22px; border-radius: 999px; background: var(--fog); border: 0 !important; }
.cp-trk__tabs input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.cp-trk__tabs label { display: inline-flex; align-items: center; min-height: 38px; padding: 0 18px; margin: 0 !important; border: 0 !important; border-radius: 999px; font: 600 14px var(--font); color: var(--slate) !important; cursor: pointer; transition: background .15s, color .15s; }
.cp-trk__tabs input:checked + label { background: var(--ink); color: var(--paper) !important; border: 0 !important; }
.cp-trk__tabs input:focus-visible + label { outline: 2px solid var(--marigold); outline-offset: 2px; }
.cp-trk .tracking_form { display: none; }
.cp-trk .order_id_email.tracking_form { display: block; }
.cp-trk__hint { margin: 0 0 16px !important; font-size: 15px; color: var(--slate); }
.cp-trk__row { display: flex; align-items: flex-end; gap: 12px; }
.cp-trk__field { flex: 1 1 0; min-width: 0; margin: 0 !important; }
.cp-trk__field--sm { flex: 0 0 180px; }
.cp-trk__field input { border-color: var(--line) !important; }
.cp-trk__go { flex: none; min-height: 48px; padding: 0 26px !important; white-space: nowrap; }
.cp-trk__error { margin: 14px 0 0; padding: 12px 14px !important; border-radius: var(--radius); background: #fdf0ef; color: #a1291f !important; font-size: 14px; line-height: 1.45; }
.cp-trackpage .ts_loader, .cp-trackpage .blockUI.blockOverlay { border-radius: 16px; }
/* Beat TrackShip's own form CSS (it styles form.order_track_form label/input). */
.cp-trk .cp-trk__tabs label.ts_from_label { width: auto; display: inline-flex; padding: 0 18px; line-height: 1; margin: 0; }
.cp-trk .search_order_form .tracking_form { padding: 0; }
.cp-trk .search_order_form .by_tracking_number { display: none; }
.cp-trk form.order_track_form .cp-trk__field label { width: auto; display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--ink); }
.cp-trk form.order_track_form .cp-trk__field input { width: 100%; max-width: none; margin: 0; }
.cp-trk .cp-trk__tabs.tracking_form_tabs { display: inline-flex; gap: 4px; margin: 0 0 20px; padding: 4px; border: 0 !important; border-radius: 999px; background: var(--fog); }
@media (max-width: 720px) {
  .cp-trk .cp-trk__tabs label.ts_from_label { flex: 1; justify-content: center; padding: 0 10px; }
  .cp-trk .cp-trk__tabs.tracking_form_tabs { display: flex; width: 100%; }
  .cp-trk__card { padding: 20px !important; }
  .cp-trk__tabs { display: flex; width: 100%; }
  .cp-trk__tabs label { flex: 1; justify-content: center; padding: 0 10px; }
  .cp-trk__row { flex-direction: column; align-items: stretch; gap: 14px; }
  .cp-trk__field--sm { flex: none; }
  .cp-trk__go { width: 100%; }
}

/* Tracking page results (TrackShip's "modern" widget and its "not shipped yet" box), in the site style.
 * Status colors collapse to ink + marigold; green for delivered, red for problems. */
.cp-trackpage .col.enhanced_tracking_detail, .cp-trackpage .col.tracking-detail { max-width: none !important; width: auto !important; float: none !important; margin: 0 0 14px !important; padding: 0 !important; border: 1px solid var(--line) !important; border-radius: 16px !important; background: var(--paper) !important; overflow: hidden; color: var(--ink) !important; font-family: var(--font); }
.cp-trackpage .enhanced_tracking_detail .tracking_number_wrap { padding: 20px 24px !important; border: 0 !important; }
.cp-trackpage .enhanced_tracking_detail .provider_image_div { margin-right: 14px; }
.cp-trackpage .enhanced_tracking_detail .provider_image { width: 44px !important; height: 44px !important; border-radius: 10px !important; }
.cp-trackpage .tracking_number_div ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.cp-trackpage .tracking_number_div li { margin: 0 !important; }
.cp-trackpage .tracking_page_provider_name { font: 700 11px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate) !important; }
.cp-trackpage .tracking_number_div strong { font: 800 18px/1.3 var(--font); letter-spacing: .01em; color: var(--ink) !important; overflow-wrap: anywhere; }
.cp-trackpage .tracking_number_div a { color: var(--ink) !important; text-decoration: none; }
.cp-trackpage .tracking_number_div a:hover strong { text-decoration: underline; }
.cp-trackpage .enhanced_tracking_detail .accordian-arrow { border-color: var(--ink) !important; border-width: 0 2px 2px 0 !important; padding: 4px !important; }
.cp-trackpage .enhanced_tracking_content { border-top: 1px solid var(--line) !important; }
.cp-trackpage div.est_delivery_section { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px 0 !important; }
.cp-trackpage .est_delivery_section span.est-delivery-date { margin: 0 !important; padding: 8px 12px !important; border-radius: 8px !important; background: var(--fog) !important; font-size: 15px !important; color: var(--ink-2) !important; }
.cp-trackpage .est_delivery_section span.est-delivery-date strong { color: var(--ink); }
.cp-trackpage span.tracking_details_switch { float: none !important; margin: 0 !important; padding: 4px !important; border-radius: 999px !important; background: var(--fog) !important; }
.cp-trackpage .tracking_details_switch label.enhanced_switch { padding: 7px 16px !important; border-radius: 999px !important; font: 600 13px var(--font) !important; color: var(--slate) !important; background: transparent !important; transition: background .15s, color .15s; }
.cp-trackpage .tracking_details_switch .enhanced_switch_input:checked + label { background: var(--ink) !important; color: var(--paper) !important; }
.cp-trackpage .tracking_widget_tracking_events_section { padding: 20px 24px 8px; }
.cp-trackpage .tracking_widget_tracking_events_section .tracking_details_switch { margin: 0 0 16px !important; }
.cp-trackpage .heading_shipment_status { display: flex; align-items: center; gap: 12px; margin: 0 0 4px !important; padding: 0 !important; background: transparent !important; font: 800 22px/1.2 var(--font) !important; letter-spacing: -0.01em; color: var(--ink) !important; }
.cp-trackpage .heading_shipment_status::before { content: "" !important; flex: none; width: 12px !important; height: 12px !important; margin: 0 4px 0 2px !important; border-radius: 50%; background: var(--marigold) !important; background-image: none !important; box-shadow: 0 0 0 5px rgba(245,167,10,.22); }
.cp-trackpage .heading_shipment_status.delivered::before { background: #1f9d55 !important; box-shadow: 0 0 0 5px rgba(31,157,85,.18); }
.cp-trackpage .heading_shipment_status.exception::before, .cp-trackpage .heading_shipment_status.failure::before, .cp-trackpage .heading_shipment_status.return_to_sender::before { background: #c0392b !important; box-shadow: 0 0 0 5px rgba(192,57,43,.16); }
.cp-trackpage .tracking_widget_tracking_events_section .tracking_detail { margin: 0 0 0 32px !important; padding: 0 0 18px !important; font-size: 14px !important; line-height: 1.45; color: var(--slate) !important; }
.cp-trackpage .tracking_widget_tracking_events_section .tracking_detail::before { left: -23px !important; width: 2px !important; background: var(--line) !important; }
.cp-trackpage .tracking_widget_tracking_events_section .enhanced_overview .tracking_detail::before { background: var(--marigold) !important; }
.cp-trackpage .tracking_widget_tracking_events_section .tracking_detail strong { display: block; margin: 0 0 2px; font-size: 14px; font-weight: 700; color: var(--ink) !important; }
.cp-trackpage .enhanced_journey .tracking_detail:first-child::before { background: var(--marigold) !important; }
.cp-trackpage .enhanced_tracking_details h4.heading_origin_details { margin: 4px 0 14px 32px !important; font: 700 11px var(--mono) !important; letter-spacing: .1em; text-transform: uppercase; color: var(--slate) !important; }
.cp-trackpage .enhanced_tracking_detail .enhanced_heading { display: flex; align-items: center; justify-content: space-between; padding: 18px 24px !important; border-top: 1px solid var(--line) !important; font: 700 15px var(--font) !important; color: var(--ink) !important; }
.cp-trackpage .enhanced_tracking_detail .enhanced_content { padding: 4px 24px 20px !important; border: 0 !important; font-size: 14px; color: var(--ink-2) !important; }
.cp-trackpage .enhanced_content .wc_order_id, .cp-trackpage .enhanced_content .shipping_from_to { padding: 0 0 14px !important; margin: 0 0 14px !important; border-bottom: 1px solid var(--line) !important; }
.cp-trackpage .enhanced_content a { color: var(--ink) !important; font-weight: 700; }
.cp-trackpage .enhanced_trackship_branding { display: none; }
/* "Not shipped yet" box. */
.cp-trackpage .col.tracking-detail.not-shipped-widget { display: block !important; padding: 24px !important; }
.cp-trackpage .not-shipped-widget .shipment-content, .cp-trackpage .not-shipped-widget .tracking-header { padding: 0 !important; margin: 0 !important; border: 0 !important; }
.cp-trackpage .not-shipped-widget .tracking_number_wrap { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 4px; padding: 0 !important; margin: 0 0 10px !important; border: 0 !important; }
.cp-trackpage .not-shipped-widget .wc_order_id { display: block !important; align-self: flex-start !important; margin: 0 !important; text-align: left !important; font: 700 12px var(--mono); letter-spacing: .08em; color: var(--slate); }
.cp-trackpage .not-shipped-widget .wc_order_id a { color: var(--slate) !important; text-decoration: none; }
.cp-trackpage .not-shipped-widget .shipment_heading { display: flex; align-items: center; gap: 12px; padding: 0 !important; border: 0 !important; font: 800 22px/1.2 var(--font) !important; color: var(--ink) !important; }
.cp-trackpage .not-shipped-widget .shipment_heading::before { content: ""; width: 12px; height: 12px; margin: 0 4px 0 2px; border-radius: 50%; background: var(--slate); box-shadow: 0 0 0 5px rgba(91,100,112,.15); }
.cp-trackpage .not_shipped_content { padding: 0 !important; }
.cp-trackpage .not_shipped_content span { display: block; font-size: 15px; line-height: 1.55; color: var(--ink-2); }
@media (max-width: 720px) {
  .cp-trackpage .enhanced_tracking_detail .tracking_number_wrap, .cp-trackpage div.est_delivery_section, .cp-trackpage .tracking_widget_tracking_events_section, .cp-trackpage .enhanced_tracking_detail .enhanced_heading { padding-left: 18px !important; padding-right: 18px !important; }
  .cp-trackpage .enhanced_tracking_detail .enhanced_content { padding-left: 18px !important; padding-right: 18px !important; }
  .cp-trackpage .heading_shipment_status, .cp-trackpage .not-shipped-widget .shipment_heading { font-size: 20px !important; }
  .cp-trackpage .col.tracking-detail.not-shipped-widget { padding: 20px !important; }
}

/* Order page (View order): the same TrackShip widget, same look as the tracking page (Nov 6) and its "not shipped yet" box), in the site style.
 * Status colors collapse to ink + marigold; green for delivered, red for problems. */
.cp-tracking .col.enhanced_tracking_detail, .cp-tracking .col.tracking-detail { max-width: none !important; width: auto !important; float: none !important; margin: 0 0 14px !important; padding: 0 !important; border: 1px solid var(--line) !important; border-radius: 16px !important; background: var(--paper) !important; overflow: hidden; color: var(--ink) !important; font-family: var(--font); }
.cp-tracking .enhanced_tracking_detail .tracking_number_wrap { padding: 20px 24px !important; border: 0 !important; }
.cp-tracking .enhanced_tracking_detail .provider_image_div { margin-right: 14px; }
.cp-tracking .enhanced_tracking_detail .provider_image { width: 44px !important; height: 44px !important; border-radius: 10px !important; }
.cp-tracking .tracking_number_div ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.cp-tracking .tracking_number_div li { margin: 0 !important; }
.cp-tracking .tracking_page_provider_name { font: 700 11px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate) !important; }
.cp-tracking .tracking_number_div strong { font: 800 18px/1.3 var(--font); letter-spacing: .01em; color: var(--ink) !important; overflow-wrap: anywhere; }
.cp-tracking .tracking_number_div a { color: var(--ink) !important; text-decoration: none; }
.cp-tracking .tracking_number_div a:hover strong { text-decoration: underline; }
.cp-tracking .enhanced_tracking_detail .accordian-arrow { border-color: var(--ink) !important; border-width: 0 2px 2px 0 !important; padding: 4px !important; }
.cp-tracking .enhanced_tracking_content { border-top: 1px solid var(--line) !important; }
.cp-tracking div.est_delivery_section { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px 0 !important; }
.cp-tracking .est_delivery_section span.est-delivery-date { margin: 0 !important; padding: 8px 12px !important; border-radius: 8px !important; background: var(--fog) !important; font-size: 15px !important; color: var(--ink-2) !important; }
.cp-tracking .est_delivery_section span.est-delivery-date strong { color: var(--ink); }
.cp-tracking span.tracking_details_switch { float: none !important; margin: 0 !important; padding: 4px !important; border-radius: 999px !important; background: var(--fog) !important; }
.cp-tracking .tracking_details_switch label.enhanced_switch { padding: 7px 16px !important; border-radius: 999px !important; font: 600 13px var(--font) !important; color: var(--slate) !important; background: transparent !important; transition: background .15s, color .15s; }
.cp-tracking .tracking_details_switch .enhanced_switch_input:checked + label { background: var(--ink) !important; color: var(--paper) !important; }
.cp-tracking .tracking_widget_tracking_events_section { padding: 20px 24px 8px; }
.cp-tracking .tracking_widget_tracking_events_section .tracking_details_switch { margin: 0 0 16px !important; }
.cp-tracking .heading_shipment_status { display: flex; align-items: center; gap: 12px; margin: 0 0 4px !important; padding: 0 !important; background: transparent !important; font: 800 22px/1.2 var(--font) !important; letter-spacing: -0.01em; color: var(--ink) !important; }
.cp-tracking .heading_shipment_status::before { content: "" !important; flex: none; width: 12px !important; height: 12px !important; margin: 0 4px 0 2px !important; border-radius: 50%; background: var(--marigold) !important; background-image: none !important; box-shadow: 0 0 0 5px rgba(245,167,10,.22); }
.cp-tracking .heading_shipment_status.delivered::before { background: #1f9d55 !important; box-shadow: 0 0 0 5px rgba(31,157,85,.18); }
.cp-tracking .heading_shipment_status.exception::before, .cp-tracking .heading_shipment_status.failure::before, .cp-tracking .heading_shipment_status.return_to_sender::before { background: #c0392b !important; box-shadow: 0 0 0 5px rgba(192,57,43,.16); }
.cp-tracking .tracking_widget_tracking_events_section .tracking_detail { margin: 0 0 0 32px !important; padding: 0 0 18px !important; font-size: 14px !important; line-height: 1.45; color: var(--slate) !important; }
.cp-tracking .tracking_widget_tracking_events_section .tracking_detail::before { left: -23px !important; width: 2px !important; background: var(--line) !important; }
.cp-tracking .tracking_widget_tracking_events_section .enhanced_overview .tracking_detail::before { background: var(--marigold) !important; }
.cp-tracking .tracking_widget_tracking_events_section .tracking_detail strong { display: block; margin: 0 0 2px; font-size: 14px; font-weight: 700; color: var(--ink) !important; }
.cp-tracking .enhanced_journey .tracking_detail:first-child::before { background: var(--marigold) !important; }
.cp-tracking .enhanced_tracking_details h4.heading_origin_details { margin: 4px 0 14px 32px !important; font: 700 11px var(--mono) !important; letter-spacing: .1em; text-transform: uppercase; color: var(--slate) !important; }
.cp-tracking .enhanced_tracking_detail .enhanced_heading { display: flex; align-items: center; justify-content: space-between; padding: 18px 24px !important; border-top: 1px solid var(--line) !important; font: 700 15px var(--font) !important; color: var(--ink) !important; }
.cp-tracking .enhanced_tracking_detail .enhanced_content { padding: 4px 24px 20px !important; border: 0 !important; font-size: 14px; color: var(--ink-2) !important; }
.cp-tracking .enhanced_content .wc_order_id, .cp-tracking .enhanced_content .shipping_from_to { padding: 0 0 14px !important; margin: 0 0 14px !important; border-bottom: 1px solid var(--line) !important; }
.cp-tracking .enhanced_content a { color: var(--ink) !important; font-weight: 700; }
.cp-tracking .enhanced_trackship_branding { display: none; }
/* "Not shipped yet" box. */
.cp-tracking .col.tracking-detail.not-shipped-widget { display: block !important; padding: 24px !important; }
.cp-tracking .not-shipped-widget .shipment-content, .cp-tracking .not-shipped-widget .tracking-header { padding: 0 !important; margin: 0 !important; border: 0 !important; }
.cp-tracking .not-shipped-widget .tracking_number_wrap { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 4px; padding: 0 !important; margin: 0 0 10px !important; border: 0 !important; }
.cp-tracking .not-shipped-widget .wc_order_id { display: block !important; align-self: flex-start !important; margin: 0 !important; text-align: left !important; font: 700 12px var(--mono); letter-spacing: .08em; color: var(--slate); }
.cp-tracking .not-shipped-widget .wc_order_id a { color: var(--slate) !important; text-decoration: none; }
.cp-tracking .not-shipped-widget .shipment_heading { display: flex; align-items: center; gap: 12px; padding: 0 !important; border: 0 !important; font: 800 22px/1.2 var(--font) !important; color: var(--ink) !important; }
.cp-tracking .not-shipped-widget .shipment_heading::before { content: ""; width: 12px; height: 12px; margin: 0 4px 0 2px; border-radius: 50%; background: var(--slate); box-shadow: 0 0 0 5px rgba(91,100,112,.15); }
.cp-tracking .not_shipped_content { padding: 0 !important; }
.cp-tracking .not_shipped_content span { display: block; font-size: 15px; line-height: 1.55; color: var(--ink-2); }
@media (max-width: 720px) {
  .cp-tracking .enhanced_tracking_detail .tracking_number_wrap, .cp-tracking div.est_delivery_section, .cp-tracking .tracking_widget_tracking_events_section, .cp-tracking .enhanced_tracking_detail .enhanced_heading { padding-left: 18px !important; padding-right: 18px !important; }
  .cp-tracking .enhanced_tracking_detail .enhanced_content { padding-left: 18px !important; padding-right: 18px !important; }
  .cp-tracking .heading_shipment_status, .cp-tracking .not-shipped-widget .shipment_heading { font-size: 20px !important; }
  .cp-tracking .col.tracking-detail.not-shipped-widget { padding: 20px !important; }
}


/* Lab credits tab (Nov 6): keep the balance card, drop the confusing counters and the raw activity log */
.wlr-myaccount-page #wlr-points { grid-template-columns: minmax(0, 1fr) !important; }
.wlr-myaccount-page #wlr-points > div:not(#wlr-available-points) { display: none !important; }
.wlr-myaccount-page .wlr-transaction-blog { display: none !important; }

/* ------------------------------------------------------------------
 * Account tabs share one header style (mono label with a marigold dot), matching Lab credits.
 * Addresses tab: plain cards, upright address text, one button at the bottom.
 * ------------------------------------------------------------------ */
.cp-acct-head { margin: 0 0 18px; }
.cp-acct-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font: 700 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.cp-acct-eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--marigold); }
.cp-acct-lede { margin: 0; font-size: 15px; color: var(--slate); }
.cp-addr .cp-addr__grid { gap: 14px; }
.cp-addr .cp-addr__card { display: flex; flex-direction: column; padding: 20px 22px !important; border-radius: 14px !important; }
.cp-addr__head { margin: 0 0 10px; }
.cp-addr__label { margin: 0; font: 700 11px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.cp-addr__body { margin: 0; font-style: normal; font-size: 16px; line-height: 1.55; color: var(--ink); }
.cp-addr__contact { display: flex; flex-direction: column; margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.6; color: var(--slate); }
.cp-addr__empty { margin: 0; font-size: 15px; color: var(--slate); }
.cp-addr__body, .cp-addr__contact, .cp-addr__empty { margin-bottom: 18px !important; }
.cp-addr__body:has(+ .cp-addr__contact) { margin-bottom: 12px !important; }
.cp-addr__contact { margin-top: 0 !important; }
.cp-addr .cp-addr__edit { align-self: flex-start; margin-top: auto; min-height: 40px; padding: 0 18px; font-size: 14px; }

/* Account details tab: two sections (Profile, Password), same header and card style as Addresses. */
.cp-acctform__section { margin: 0 0 28px; }
.cp-acctform__card { padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.cp-acctform__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.cp-acctform .cp-field { width: auto !important; float: none !important; margin: 0 0 16px !important; padding: 0 !important; }
.cp-acctform .cp-acctform__card > :last-child, .cp-acctform .cp-acctform__card > .cp-acctform__row:last-child .cp-field { margin-bottom: 0 !important; }
.cp-acctform .cp-field label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--ink); }
.cp-acctform .cp-field input.input-text { width: 100%; min-height: 48px; padding: 10px 14px; border: 1.5px solid var(--line) !important; border-radius: var(--radius) !important; font: 500 16px var(--font); color: var(--ink); background: var(--paper); box-shadow: none !important; }
.cp-acctform .cp-field input.input-text:focus { border-color: var(--ink) !important; outline: none; }
.cp-acctform .password-input { display: block; position: relative; width: 100%; }
.cp-acctform .password-input input.input-text { padding-right: 46px; }
.cp-acctform .show-password-input { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); opacity: .55; }
.cp-acctform__actions { margin: 0; }
.cp-acctform__actions .cp-btn { min-height: 48px; padding: 0 28px !important; font-size: 16px !important; }
@media (max-width: 640px) {
  .cp-acctform__card { padding: 18px; }
  .cp-acctform__row { grid-template-columns: minmax(0, 1fr); }
  .cp-acctform .cp-acctform__card > .cp-acctform__row:last-child .cp-field:not(:last-child) { margin-bottom: 16px !important; }
  .cp-acctform__actions .cp-btn { width: 100%; }
}

/* Orders tab: one card per order, shared account style. */
.cp-orders__list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.cp-orders__card { margin: 0; padding: 18px 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.cp-orders__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cp-orders__id { display: flex; align-items: baseline; gap: 10px; color: var(--ink); text-decoration: none !important; }
.cp-orders__num { font: 800 18px/1.2 var(--font); letter-spacing: -0.01em; }
.cp-orders__id:hover .cp-orders__num { text-decoration: underline; text-underline-offset: 3px; }
.cp-orders__date { font: 600 12px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.cp-orders__status { display: inline-flex; align-items: center; gap: 7px; flex: none; padding: 5px 10px; border-radius: 999px; background: var(--fog); font: 600 13px/1.2 var(--font); color: var(--ink); white-space: nowrap; }
.cp-orders__status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--slate); }
.cp-orders__status--go::before { background: var(--marigold); }
.cp-orders__status--warn::before { background: var(--marigold); box-shadow: 0 0 0 3px rgba(245,167,10,.22); }
.cp-orders__status--good::before { background: #1f9d55; }
.cp-orders__status--bad { background: #fdf0ef; color: #a1291f; }
.cp-orders__status--bad::before { background: #c0392b; }
.cp-orders__items { margin: 8px 0 0; font-size: 14px; line-height: 1.45; color: var(--slate); overflow-wrap: anywhere; }
.cp-orders__extra { margin: 8px 0 0; font-size: 14px; }
.cp-orders__bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.cp-orders__total { display: flex; align-items: baseline; gap: 8px; margin: 0; }
.cp-orders__total strong, .cp-orders__total strong * { font: 800 17px var(--font) !important; color: var(--ink) !important; }
.cp-orders__total span { font-size: 13px; color: var(--slate); }
.cp-orders__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.woocommerce-MyAccount-content .cp-orders__actions .cp-btn { min-height: 40px !important; padding: 0 16px !important; font-size: 14px !important; margin: 0 !important; }
.cp-orders__actions .cp-orders__link { padding: 0 6px; font-size: 14px; font-weight: 600; color: var(--slate) !important; background: none !important; border: 0 !important; text-decoration: underline; text-underline-offset: 3px; }
.cp-orders__pages { display: flex; justify-content: space-between; gap: 12px; margin-top: 16px; }
.cp-orders__pages .woocommerce-button--next:only-child { margin-left: auto; }
.cp-orders__empty { padding: 22px; border: 1px solid var(--line); border-radius: 14px; }
.cp-orders__empty p { margin: 0 0 16px; font-size: 15px; color: var(--ink-2); }
@media (max-width: 640px) {
  .cp-orders__card { padding: 16px 18px; }
  .cp-orders__id { flex-direction: column; gap: 4px; }
  .cp-orders__bottom { align-items: stretch; flex-direction: column; }
  .cp-orders__actions { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
  .woocommerce-MyAccount-content .cp-orders__actions .cp-btn { width: 100%; justify-content: center; }
}

/* Edit address form: fields in one card, two columns where WooCommerce pairs them. */
.cp-addrform .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.cp-addrform .woocommerce-address-fields__field-wrapper::before, .cp-addrform .woocommerce-address-fields__field-wrapper::after { display: none !important; }
.cp-addrform .form-row { grid-column: 1 / -1; float: none !important; width: auto !important; margin: 0 0 16px !important; padding: 0 !important; }
.cp-addrform .form-row-first { grid-column: 1; }
.cp-addrform .form-row-last { grid-column: 2; }
.cp-addrform .form-row label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.cp-addrform .form-row label .required { color: var(--slate); text-decoration: none; border: 0; }
.cp-addrform .form-row label .optional { font-weight: 500; color: var(--slate); }
.cp-addrform .woocommerce-input-wrapper { display: block; width: 100%; }
.cp-addrform .form-row input.input-text, .cp-addrform .form-row select, .cp-addrform .select2-container .select2-selection--single { width: 100% !important; min-height: 48px; padding: 10px 14px; border: 1.5px solid var(--line) !important; border-radius: var(--radius) !important; font: 500 16px var(--font); color: var(--ink); background: var(--paper); box-shadow: none !important; }
.cp-addrform .form-row input.input-text:focus, .cp-addrform .form-row select:focus, .cp-addrform .select2-container--focus .select2-selection--single, .cp-addrform .select2-container--open .select2-selection--single { border-color: var(--ink) !important; outline: none; }
.cp-addrform .select2-container .select2-selection--single { display: flex; align-items: center; height: auto; }
.cp-addrform .select2-container .select2-selection--single .select2-selection__rendered { padding: 0 24px 0 0; line-height: 1.3; color: var(--ink); }
.cp-addrform .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; right: 10px; height: 20px; transform: translateY(-50%); }
.cp-addrform .form-row.woocommerce-invalid input.input-text, .cp-addrform .form-row.woocommerce-invalid .select2-selection { border-color: #c0392b !important; }
.cp-addrform #billing_address_1_field, .cp-addrform #shipping_address_1_field { margin-bottom: 8px !important; }
.cp-addrform .cp-acctform__card > :last-child, .cp-addrform .woocommerce-address-fields__field-wrapper > .form-row:last-child { margin-bottom: 0 !important; }
.cp-addrform .cp-acctform__card { margin-bottom: 20px; }
.cp-addrform__actions { display: flex; align-items: center; gap: 18px; }
.cp-addrform__cancel { font-weight: 600; color: var(--slate); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) {
  .cp-addrform .woocommerce-address-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
  .cp-addrform .form-row-first, .cp-addrform .form-row-last { grid-column: 1; }
  .cp-addrform__actions { flex-direction: column; align-items: stretch; text-align: center; }
}

/* Referral card (bench side column + Lab credits tab, which hides WPLoyalty's own box) */
.cp-bref { border: 1px solid var(--line); border-radius: 14px; padding: 20px 24px; background: var(--paper); }
.cp-bref h2 { margin: 0 0 6px; font-size: 20px; }
.cp-bref p { margin: 0 0 14px; color: var(--slate); font-size: 15px; line-height: 1.5; }
.cp-bref__link { display: flex; align-items: stretch; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.cp-bref__link input { flex: 1; min-width: 0; height: 46px; padding: 0 14px; border: 0; background: var(--paper); font: 600 13px var(--mono); color: var(--ink); text-overflow: ellipsis; }
.cp-bref__link .cp-btn { border-radius: 0; flex: none; }
.cp-bref__reward { margin: 12px 0 0 !important; padding: 10px 12px; border: 1.5px dashed var(--ink); border-radius: 8px; color: var(--ink) !important; font-size: 14px !important; }
.cp-bref__reward b { font-family: var(--mono); letter-spacing: .03em; margin-right: 6px; }
.woocommerce-MyAccount-content > .cp-bref { margin: 0 0 32px; }
.wlr-myaccount-page .wlr-referral-blog { display: none !important; }

/* Welcome credit (no code): amount + one line, in the code boxes' place */
.cp-bcard__code--credit, .cp-ordercard__code--credit, .cp-pop__code--credit { flex-direction: column; align-items: flex-start; gap: 6px; }
.cp-bcard__code--credit small, .cp-ordercard__code--credit small, .cp-pop__code--credit small { font: 600 13px/1.4 var(--font); letter-spacing: 0; text-transform: none; opacity: .8; }
/* "Have a code?" hidden on product pages and the side cart (Customize → Coastal) */
.cp-nocodes .cp-pcode__toggle, .cp-nocodes .cp-pcode__form { display: none !important; }

/* Partner program page */
.cp-partner__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }
.cp-partner__stat { margin: 8px 0 0; font-size: 14px; color: var(--slate); }
.cp-partner__list { margin: 12px 0 0; padding-left: 18px; color: var(--ink-2); }
.cp-partner__list li { margin: 0 0 8px; }
.cp-partner__fine { margin: 20px 0 0; font-size: 13px; color: var(--slate); }

/* ------------------------------------------------------------------ Nov 6 phone pass (Rudy's walkthrough) */

/* Nothing may make the page wider than the screen (clip, not hidden, so the sticky header keeps working) */
html, body { overflow-x: clip; max-width: 100%; }

/* Side cart: credits shown as their own lines */
.cp-sum div:not(.cp-sum__sub):not(.cp-sum__save) dt { font-weight: 500; color: var(--ink-2); }
.cp-sum div:not(.cp-sum__sub):not(.cp-sum__save) dd { font-size: 15px; font-weight: 600; }
.cp-sum__credit dt, .cp-sum__credit dd { color: #0b7a62 !important; }
.cp-sum__credit + .cp-sum__sub { padding-top: 6px; border-top: 1px solid var(--line); }

/* Sticky header: own compositing layer so iOS Safari doesn't flicker it while scrolling */
.cp-header { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; }

@media (max-width: 760px) {
  /* Filter chips (lots, catalog): everything visible (no sideways scrolling), smaller so they sit in two tidy rows */
  .cp-lots__chips, .cp-cat__chips, .cp-chips { flex-wrap: wrap; gap: 6px; }
  .cp-lots__chips .cp-chip, .cp-cat__chips .cp-chip, .cp-chips .cp-chip { min-height: 34px; padding: 5px 12px; font-size: 13.5px; gap: 6px; white-space: nowrap; }

  /* Strength selector: one row, pills share the width (scrolls only past 5) */
  .cp-pdp .cp-pills { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; }
  .cp-pdp .cp-pill { min-width: 0; min-height: 46px; padding: 6px 4px; font-size: 14px; }
  .cp-pdp .cp-pill small { font-size: 9.5px; }

  /* Product page on phones (Nov 6): one clean column in buying order.
     Photo → name + price → strength → bulk prices → Add to cart → lab record → trust → reviews.
     .cp-pdp__buy uses display: contents so its pieces and the lot card can be ordered together. */
  .cp-pdp__top { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .cp-pdp__buy { display: contents; }
  /* Sections, split by space and thin rules: photo + lab record | name + price | choose + buy | trust | reviews */
  .cp-pdp__media { order: 1; margin-bottom: 12px; }
  .cp-pdp__proof { order: 2; margin: 0; }
  .cp-pdp__eyebrow { display: none; }
  .cp-pdp__title { order: 3; margin: 26px 0 6px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 30px; }
  .cp-pdp__price { order: 4; }
  .cp-pdp__now { font-size: 26px; }
  .cp-pdp__unit [data-pdp-permg] { display: none; }
  .cp-pdp__bogo { order: 5; }
  .cp-pdp__stock { order: 6; margin: 8px 0 0; font-size: 13px; }
  .cp-pdp__field { order: 7; margin: 24px 0 18px; padding-top: 22px; border-top: 1px solid var(--line); }
  .cp-pdp__label { margin-bottom: 10px; }
  .cp-deal { order: 8; }
  .cp-ladder2 { order: 9; margin: 0 0 14px; }
  .cp-pcode { order: 10; }
  .cp-buy { order: 11; margin-top: 4px; }
  .cp-nudge2, .cp-shipline2 { display: none !important; }
  .cp-ptrust { order: 13; }
  .cp-pdp__pg { order: 14; }

  /* Photo: never cropped (beats WooCommerce's img height:auto) */
  .cp-pdp__img { aspect-ratio: 4 / 3; }
  .cp-pdp .cp-pdp__img img.cp-pdp__main { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: contain; }
  .cp-pdp__thumbs { display: none; }

  /* Bulk prices: one strip of four instead of a four-row table */
  .cp-ladder2__head { padding: 8px 12px; }
  .cp-ladder2 table, .cp-ladder2 tbody { display: block; }
  .cp-ladder2 tbody { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cp-ladder2 tr { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 9px 2px; border-top: 0; border-left: 1px solid var(--line); text-align: center; }
  .cp-ladder2 tr:first-child { border-left: 0; }
  .cp-ladder2 tr.is-on { box-shadow: inset 0 -3px 0 var(--marigold); }
  .cp-ladder2 th, .cp-ladder2 td { padding: 0 !important; font-size: 12px; text-align: center !important; }
  .cp-ladder2__each { font-size: 13.5px !important; }
  .cp-ladder2__save, .cp-ladder2__unit { display: none; }

  /* Welcome credit / code note: one quiet line */
  .cp-pcode__applied { padding: 8px 12px; font-size: 12.5px; border-left-width: 3px; margin: 0 0 14px; }
  .cp-pcode__applied b { font-family: var(--font); letter-spacing: 0; }

  /* Trust: two short columns, headlines only */
  .cp-ptrust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; margin: 28px 0 0; padding: 22px 0 0; border-top: 1px solid var(--line); }
  .cp-ptrust li { align-items: center; gap: 8px; }
  .cp-ptrust svg { width: 18px; height: 18px; flex: 0 0 18px; }
  .cp-ptrust span { font-size: 12.5px; line-height: 1.3; }
  .cp-ptrust span b { display: block; font-size: 12.5px; }
  .cp-ptrust span { color: transparent; font-size: 0; }
  .cp-ptrust span b { color: var(--ink); font-size: 13px; }
  .cp-pdp__pg { margin-top: 24px; padding: 12px; }
  .cp-pdp__pg > p { font-size: 12.5px; }

  /* Lot card: compact */
  .cp-lotcard { margin-top: 0; }
  .cp-lotcard__head { padding: 9px 14px; }
  .cp-lotcard__name { font-size: 15px; }
  .cp-lotcard__badge { padding: 3px 8px; font-size: 10px; }
  .cp-lotcard__body { padding: 12px 14px 14px; }
  .cp-lotcard__stats { gap: 8px; margin-bottom: 8px; }
  .cp-lotcard__stats > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; padding: 8px 10px; }
  .cp-lotcard__stats b { font-size: 17px; }
  .cp-lotcard__stats b small { font-size: 11px; }
  .cp-lotcard__stats span { margin: 0; font-size: 9.5px; }
  .cp-lotcard__rows { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0 0 10px; }
  .cp-lotcard__rows > div { gap: 5px; padding: 0; border: 0; font-size: 13px; }
  .cp-lotcard__rows dt { font-weight: 500; }
  .cp-lotcard__view { min-height: 44px; padding-top: 10px; padding-bottom: 10px; font-size: 15px; }
  .cp-lotcard__links { margin-top: 8px; font-size: 13px; }

  /* About: the round mark looked stray above the founder note on phones */
  .cp-founder__mark { display: none; }
}

/* Label transition note (Nov 9) */
.cp-labelnote { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--fog); color: var(--ink-2); font-size: 13px; line-height: 1.45; }
.cp-labelnote svg { flex: 0 0 16px; margin-top: 2px; color: var(--marigold-ink, #b77400); }
.cp-labelnote--ty { margin: 18px 0 0; }

/* Every running perk (Nov 9): bullets on the member card, all in a row (wide) or one at a time (phones) in the top bar */
.cp-promo-card__list { list-style: none; margin: 8px 0 4px; padding: 0; column-count: 2; column-gap: 40px; }
.cp-promo-card__list li { position: relative; padding-left: 26px; display: flex; flex-direction: column; gap: 3px; break-inside: avoid; margin: 0 0 14px; }
.cp-promo-card__list li::before { content: ""; position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat; }
.cp-promo-card__list li.is-soon::before { background-color: var(--marigold); }
.cp-promo-card__list b { font-size: 17px; font-weight: 750; letter-spacing: -0.01em; line-height: 1.25; }
.cp-promo-card__list span { font-size: 14px; color: var(--ink-2); line-height: 1.4; }
.cp-promo-card__list em { font: 700 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; font-style: normal; color: #8a5a00; }
.cp-promo-card--list .cp-promo-card__copy { max-width: 820px; flex: 1 1 520px; }
.cp-promo-card--list .cp-promo-card__line { font-size: 13px; color: var(--slate); }
@media (max-width: 760px) { .cp-promo-card__list { column-count: 1; } .cp-promo-card__list li { margin-bottom: 12px; } .cp-promo-card__list b { font-size: 16px; } }

.cp-promo__set--copy { display: none; }
.cp-promo__set > span + span::before { content: "·"; margin: 0 10px; opacity: .55; }
@media (max-width: 1099px) {
  .cp-promo:has(.cp-promo__perks) { overflow: hidden; }
  .cp-promo__perks { flex: 1 1 auto; min-width: 0; overflow: hidden; }
  .cp-promo__rot { display: block; overflow: hidden; text-align: left;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%); }
  .cp-promo__track { display: inline-flex; white-space: nowrap; will-change: transform; animation: cp-tick var(--cp-tick, 28s) linear infinite; }
  .cp-promo__set, .cp-promo__set--copy { display: inline-flex; }
  .cp-promo__set > span + span::before { content: none; }
  .cp-promo__set > span::after { content: "·"; margin: 0 14px; opacity: .55; }
  .cp-promo__rot:hover .cp-promo__track, .cp-promo__rot:active .cp-promo__track { animation-play-state: paused; }
}
@keyframes cp-tick { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 1099px) and (prefers-reduced-motion: reduce) {
  .cp-promo__track { animation: none; white-space: normal; display: block; text-align: center; }
  .cp-promo__set { display: inline; } .cp-promo__set--copy { display: none; }
  .cp-promo__rot { -webkit-mask-image: none; mask-image: none; }
}
.cp-promo-card__list li[hidden] { display: none; }

/* What's new (launch, Nov 10 → Dec 10) */
.cp-wn__box { max-width: 560px; }
.cp-wn__list { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 12px; }
.cp-wn__list li { position: relative; padding-left: 28px; font-size: 14.5px; line-height: 1.45; color: var(--ink-2); }
.cp-wn__list li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat; }
.cp-wn__list b { display: block; color: var(--ink); font-size: 15.5px; font-weight: 750; letter-spacing: -0.01em; }
.cp-wn .cp-pop__alt { margin: 14px 0 0; text-align: center; font-size: 14px; }
@media (max-width: 760px) { .cp-wn__box { padding: 26px 20px 20px; } .cp-wn__list { gap: 10px; } }

.cp-wnbar { background: #fff7e6; border-bottom: 1px solid #f3dfb2; color: var(--ink); }
.cp-wnbar[hidden] { display: none !important; }
.cp-wnbar__in { display: flex; align-items: center; gap: 16px; min-height: 52px; padding-top: 8px; padding-bottom: 8px; }
.cp-wnbar p { margin: 0; flex: 1 1 auto; font-size: 14.5px; line-height: 1.4; }
.cp-wnbar__links { display: inline-flex; gap: 16px; flex: 0 0 auto; font-size: 14.5px; font-weight: 700; }
.cp-wnbar__links a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.cp-wnbar__x { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--slate); cursor: pointer; }
.cp-wnbar__x:hover { background: rgba(0,0,0,.06); color: var(--ink); }
@media (max-width: 760px) {
  .cp-wnbar__in { flex-wrap: wrap; gap: 6px 14px; position: relative; padding-right: 44px; }
  .cp-wnbar p { flex-basis: 100%; font-size: 14px; }
  .cp-wnbar__x { position: absolute; top: 6px; right: 4px; }
}

.cp-wncard { border-top: 4px solid var(--marigold); }
.cp-wncard p { margin: 0 0 8px; font-size: 14px; line-height: 1.45; color: var(--ink-2); }

.cp-auth__carried { margin: 16px 0 0; padding: 12px 14px; border-radius: var(--radius); background: #fff7e6; border: 1px solid #f3dfb2; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.cp-auth__carried b { color: var(--ink); }
.cp-auth__carried a { color: var(--ink); font-weight: 700; white-space: nowrap; }

.cp-wnpage { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.cp-wnpage__item { position: relative; padding: 22px 22px 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.cp-wnpage__item.is-top { border-top: 4px solid var(--marigold); }
.cp-wnpage__n { display: block; margin-bottom: 10px; font: 700 12px/1 var(--mono); letter-spacing: .1em; color: var(--slate); }
.cp-wnpage__item h2 { margin: 0 0 6px; font-size: 20px; line-height: 1.2; letter-spacing: -0.02em; }
.cp-wnpage__item p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.cp-wnpage__cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 12px; }
.cp-wnpage__help { margin: 0; font-size: 14.5px; color: var(--slate); }
.cp-wnpage__help a { color: var(--ink); font-weight: 700; }
@media (max-width: 760px) { .cp-wnpage { grid-template-columns: 1fr; } .cp-wnpage__cta .cp-btn { width: 100%; justify-content: center; } }
.cp-wn__box:focus { outline: none; }
.cp-wn__sub { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 3px; }
.cp-wn__sub li { position: relative; padding-left: 14px; font-size: 14px; line-height: 1.4; color: var(--ink); }
.cp-wn__sub li::before { content: ""; position: absolute; left: 0; top: .58em; width: 6px; height: 6px; border-radius: 50%; background: var(--marigold); }
.cp-wn__list li .cp-wn__sub li { padding-left: 14px; }
.cp-wn__list li .cp-wn__sub li::before { width: 6px; height: 6px; top: .58em; left: 0; background: var(--marigold); }
.cp-wnpage__item .cp-wn__sub { margin-top: 10px; }
.cp-wnpage__item .cp-wn__sub li { font-size: 15px; font-weight: 600; }
