/* DESIGN COPY ONLY (tryfrend-design). Design agent 2: cart drawer + cart page, discount box, express pay, checkout,
   thank-you, order tracking, after-purchase block. Colours come only from the tokens below (the 19-token set in
   run-state/msg26-2026-10-29/claims/COLOUR-AUDIT.md; no dark set, owner 29 Oct: "Frend should not get a dark mode."). Option B ("New") rules are
   scoped under html:not([data-opt-...="a"]) so the new design shows before the demo panel loads. */

@font-face { font-family: 'ChadHeading'; src: url('/cdn/shop/t/3/assets/ChadHeading-Variable.woff2') format('woff2'); font-weight: 100 900; font-display: swap }
@font-face { font-family: 'ChadBodyV2'; src: url('/cdn/shop/t/3/assets/ChadBodyV2-Variable.woff2') format('woff2'); font-weight: 100 900; font-display: swap }

:root {
  --fd-ground: #f4f1f8;      /* --frend-porcelain */
  --fd-surface: #fffdf9;     /* --frend-card */
  --fd-surface-2: #e0d8ed;   /* m29: one tint (was #ece6f4) */
  --fd-surface-3: #e0d8ed;   /* --frend-lavender-light */
  --fd-line: #e0d8ed;        /* tracks (no decorative lines since m29) */
  --fd-field: #6e5a94;       /* m29: field and control borders in the small-text colour (was a third mauve) */
  --fd-head: #1f003d;        /* --frend-purple */
  --fd-ink: #43325c;         /* --frend-ink, body copy */
  --fd-muted: #6e5a94;       /* --frend-mauve-text, small text */
  --fd-accent: #457f79;      /* --frend-button, white text 4.6:1 */
  --fd-accent-hover: #1f003d; /* m29: hover goes to the heading purple, no second teal */
  --fd-on-accent: #fffdf9;
  --fd-save: #457f79;        /* m29: the one teal (savings sit on the card white, 4.5:1) */
  --fd-err: #b8472f;         /* --frend-saffron */
  --fd-star: #e8a13a;
  --fd-pill: #1f003d; --fd-on-pill: #f4f1f8;
  --fd-wallet: #000000; --fd-on-wallet: #ffffff; /* Apple Pay / Google Pay marks: the platforms' own colours */
  --fd-track: #e0d8ed; --fd-fill: #457f79;
  --fd-seal-rim: #e0d8ed; --fd-seal-ring: #f4f1f8; --fd-seal-face: #fffdf9; --fd-seal-ink: #43325c; --fd-seal-sub: #6e5a94; /* m29: palette colours */
  --fd-scrim: rgba(31, 0, 61, .42);
  --fd-shadow: none; /* m29: the scrim already lifts the drawer */
  --fd-focus: #457f79;
  --fd-r-card: 16px; --fd-r-field: 10px; --fd-r-thumb: 10px;
  --fd-h: 'ChadHeading', Georgia, serif;
  --fd-b: 'ChadBodyV2', -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- shared pieces */
.d2 { font-family: var(--fd-b); color: var(--fd-ink); font-size: 17px; line-height: 1.5; letter-spacing: 0; -webkit-font-smoothing: antialiased }
/* m29: no negative kerning anywhere on the new cart, checkout, thank-you and tracking (SECURE CHECKOUT keeps its tracking) */
:is(.d2, .d2co, .d2ty-root, .d2-track) :not(.d2-btn--caps):not(.d2-btn--caps *):not(#_):not(#_), :is(.d2, .d2-track, .d2ty-root):not(#_) { letter-spacing: 0 !important }
.d2 *, .d2 *::before, .d2 *::after { box-sizing: border-box }
.d2 :where(p, h1, h2, h3, dl, dd, ul) { margin: 0 }
.d2 :focus-visible, .d2co :focus-visible, .d2ty-root :focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px }
.d2 ::selection, .d2co ::selection { background: var(--fd-surface-3); color: var(--fd-head) }
.d2-btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 54px; padding: 0 24px; border: 0; border-radius: 999px; background: var(--fd-accent); color: var(--fd-on-accent); font: 700 17px/1.2 var(--fd-b); letter-spacing: 0; text-decoration: none; cursor: pointer; transition: background .15s, transform .1s }
.d2-btn:hover { background: var(--fd-accent-hover); color: var(--fd-on-accent) }
.d2-btn:active { transform: scale(.985) }
.d2-btn svg { flex: none }
.d2-btn--ghost { background: transparent; color: var(--fd-head); box-shadow: inset 0 0 0 1.5px var(--fd-field) }
.d2-btn--ghost:hover { background: var(--fd-surface-2); color: var(--fd-head) }
.d2-btn--sm { width: auto; min-height: 44px; padding: 0 18px; font-size: 15px }
.d2-link { color: var(--fd-head); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; background: none; border: 0; padding: 0; font: inherit; cursor: pointer }
.d2-link:hover { color: var(--fd-accent) }
.d2 a.d2-btn, .d2 a.d2-btn:hover, .d2 a.d2-btn:visited { color: var(--fd-on-accent); text-decoration: none }
.d2 a.d2-btn--ghost, .d2 a.d2-btn--ghost:hover, .d2 a.d2-btn--ghost:visited { color: var(--fd-head) }
.d2 .d2-item__t a, .d2 .d2-item__t a:visited { color: var(--fd-head); text-decoration: none }
.d2 .d2-item__t a:hover { text-decoration: underline; text-underline-offset: 3px }
.d2 .d2-fine a, .d2 .d2-help a, .d2 .d2-steps a, .d2 .d2-link { color: var(--fd-head) }
.d2 .d2-fine a { color: inherit; text-decoration: underline; text-underline-offset: 2px }
.d2-money { font-variant-numeric: tabular-nums; white-space: nowrap }
.d2-money s, .d2 s { color: var(--fd-muted); font-weight: 400; text-decoration-thickness: 1px }
.d2-save { color: var(--fd-save); font-weight: 600 }
.d2-icons { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px }
.d2-icons svg { width: 34px; height: 22px; display: block }
.d2-icons--cart { margin-top: 12px }
.d2-saved { margin: -2px 0 8px; text-align: right; color: var(--fd-save); font-weight: 600; font-size: 15px }
.d2-wallet { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 50px; border: 0; border-radius: 999px; background: var(--fd-wallet); color: var(--fd-on-wallet); font: 600 17px/1 -apple-system, 'SF Pro Text', system-ui, sans-serif; cursor: pointer }
.d2-wallet svg { width: 20px; height: 20px }
.d2-wallet--google { font-family: 'Google Sans', Roboto, Arial, sans-serif; font-weight: 500 }
.d2-or { display: flex; align-items: center; gap: 12px; color: var(--fd-muted); font-size: 15px }
.d2-or::before, .d2-or::after { content: ''; flex: 1; height: 0 } /* m29: no rule either side of "or" */
.d2-promise { display: flex; align-items: center; gap: 12px; color: var(--fd-ink); font-size: 15px; line-height: 1.4 }
.d2-promise .d2-seal { flex: none; width: 44px; height: 44px }
.d2-promise .d2-shield { flex: none; color: var(--fd-head) }
html:not([data-opt-d2-seal="seal"]) .d2-promise .d2-seal, html[data-opt-d2-seal="seal"] .d2-promise .d2-shield { display: none }
.d2-btn--caps { text-transform: uppercase; letter-spacing: .02em }
.d2-promise strong { display: block; font-weight: 600; color: var(--fd-head) }
.d2-promise span { display: block; color: var(--fd-muted); font-size: 13px }
.d2-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 6px 4px 12px; border-radius: 999px; background: var(--fd-surface-2); color: var(--fd-head); font-size: 15px; font-weight: 600 }
.d2-chip button { width: 32px; height: 32px; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 20px; line-height: 1; cursor: pointer }
.d2-chip button:hover { background: var(--fd-surface-3) }
.d2-field { display: flex; gap: 8px }
.d2-field input { flex: 1; min-width: 0; height: 48px; padding: 0 14px; border: 1px solid var(--fd-field); border-radius: var(--fd-r-field); background: var(--fd-surface); color: var(--fd-head); font: 17px var(--fd-b); text-transform: uppercase }
.d2-field input::placeholder { color: var(--fd-muted); text-transform: none }
.d2-field input:focus { outline: 2px solid var(--fd-focus); outline-offset: 1px }
.d2-err { color: var(--fd-err); font-size: 15px; margin-top: 6px }
.d2-err:empty { display: none }
.d2-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap }

/* the theme forces heading and content-link colours with !important inline rules (h1-h6 #1f003d; #MainContent links
   #b0442d); on these surfaces the tokens win, so dark mode and the ink links hold */
.d2 :is(h1, h2, h3) { color: var(--fd-head) !important }
.d2 .d2-details h3 { color: var(--fd-muted) !important }
.d2 :is(p, li, strong, em, span, dd, div) > a:not(.d2-btn):not(#_):not(#_) { color: var(--fd-head) !important }
.d2 .d2-fine a:not(#_):not(#_) { color: inherit !important }
.d2 .co-foot a:not(#_) { color: var(--fd-head) !important }
.d2ty-foot { margin-top: 8px }
html:not([data-opt-d2-checkout="a"]) body.d2co .d2-disc-open[hidden] { display: none !important }

/* ---------- cart: line items (drawer and page) */
.d2-items { display: grid; gap: 12px }
.d2-item { background: var(--fd-surface); border-radius: var(--fd-r-card); padding: 14px }
.d2-item__top { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 14px; align-items: start }
.d2-item__info { min-width: 0 }
.d2-item__top .d2-rm { margin: -10px -10px 0 -6px }
.d2-item__img { width: 84px; height: 84px; border-radius: var(--fd-r-thumb); object-fit: cover; display: block; background: var(--fd-surface-2) }
.d2-item__t { font-weight: 600; color: var(--fd-head); font-size: 17px; line-height: 1.3 }
.d2-item__t a { color: inherit; text-decoration: none }
.d2-item__m { color: var(--fd-muted); font-size: 15px; margin-top: 2px; text-wrap: pretty }
.d2-item__p { text-align: right; font-weight: 700; color: var(--fd-head); font-size: 17px; display: flex; align-items: baseline; gap: 6px }
.d2-item__p s { font-size: 14px; font-weight: 500; color: var(--fd-muted) }
.d2-item__ctl { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px }
/* owner 4 Nov: Olly's "subscribe and save" button, only on a one-time line */
.d2-subsave { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; margin-top: 12px; padding: 0 16px; border: 0; box-shadow: inset 0 0 0 1.5px var(--fd-field); border-radius: 999px; background: none; color: var(--fd-head); font: 600 15px/1.2 var(--fd-b); letter-spacing: 0; cursor: pointer; transition: background-color .15s }
.d2-subsave:hover { background: var(--fd-surface-2) }
.d2-subsave:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px }
.d2-qty { display: inline-flex; align-items: center; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--fd-field); height: 44px }
.d2-qty button { width: 44px; height: 44px; border: 0; background: none; color: var(--fd-head); font-size: 20px; cursor: pointer; border-radius: 50% }
.d2-qty button:hover { background: var(--fd-surface-2) }
.d2-qty output { min-width: 24px; text-align: center; font-weight: 600; color: var(--fd-head) }
.d2-rm { width: 44px; height: 44px; border: 0; border-radius: 50%; background: none; color: var(--fd-muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center }
.d2-rm:hover { background: var(--fd-surface-2); color: var(--fd-head) }
.d2-plan2 { display: grid; grid-template-columns: auto auto; gap: 4px; margin: 14px 0 0; padding: 4px; border-radius: 14px; background: var(--fd-surface-2); border: 0 }
.d2-plan2 legend { padding: 0 }
.d2-plan2 label { position: relative; display: block; padding: 9px 8px 9px 10px; border-radius: 11px; cursor: pointer; color: var(--fd-ink); font-size: 15px; line-height: 1.3; min-height: 44px }
.d2-plan2 input { position: absolute; opacity: 0; pointer-events: none }
.d2-plan2 b { display: block; color: var(--fd-head); font-weight: 600 }
.d2-plan2 label:has(input:checked) { background: var(--fd-surface); box-shadow: inset 0 0 0 1.5px var(--fd-head) }
.d2-plan2 label:has(input:focus-visible) { outline: 2px solid var(--fd-focus); outline-offset: 1px }
.d2-item__note { margin-top: 10px; font-size: 15px; color: var(--fd-muted); display: flex; align-items: center; gap: 6px }
.d2-item__note.d2-save { color: var(--fd-save) }
.d2-nudge { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; margin-top: 12px; padding: 12px 14px; border-radius: 12px; background: var(--fd-surface-2) }
.d2-nudge b { color: var(--fd-head); font-weight: 600; font-size: 15px }
.d2-nudge span { grid-column: 1; color: var(--fd-ink); font-size: 15px }
.d2-nudge .d2-btn { grid-row: 1 / span 2; grid-column: 2 }
.d2-gift { display: grid; grid-template-columns: 42px 1fr auto; gap: 14px; align-items: center; padding: 12px 14px; border-radius: var(--fd-r-card); background: var(--fd-surface) }
.d2-gift img { width: 42px; height: auto; border-radius: 4px; display: block }
.d2-gift b { display: block; color: var(--fd-head); font-weight: 600; font-size: 15px }
.d2-gift span { color: var(--fd-muted); font-size: 15px }
.d2-gift .d2-gift__tag { display: block; margin-top: 2px; font-size: 14px; color: var(--fd-muted) } /* owner 4 Nov: "indicate the field guide is a free gift" (Seed's "Bonus gift" line) */
.d2-gift em { font-style: normal; font-weight: 700; color: var(--fd-save) }
.d2-ship { padding: 12px 20px 14px; font-size: 15px; color: var(--fd-ink) }
.d2-ship p { display: flex; align-items: center; gap: 8px }
.d2-ship p svg { color: var(--fd-save); flex: none }
.d2-bar { height: 6px; border-radius: 999px; background: var(--fd-track); margin-top: 9px; overflow: hidden }
/* owner 4 Nov: "with fred in the bar": the check-in quiz's walking Fred stands at the bar's progress point */
.d2-run { position: relative; padding-top: 34px }
.d2-run .d2-bar { margin-top: 0 }
.d2-walker { position: absolute; bottom: -3px; left: clamp(20px, var(--d2-pct), calc(100% - 52px)); width: 46px; z-index: 1; height: auto; transform: translateX(-50%); pointer-events: none; transition: left .5s cubic-bezier(.2, .8, .2, 1) }
.d2-run .d2-bar { margin-right: 15px }
.d2-goal { position: absolute; right: 0; bottom: -12px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--fd-surface); color: var(--fd-muted); box-shadow: inset 0 0 0 2px var(--fd-track); transition: background .3s, color .3s, box-shadow .3s }
.d2-goal svg { width: 16px; height: 16px }
.d2-ship--done .d2-goal { background: var(--fd-fill); color: #fff; box-shadow: none }
.d2-ship--done p svg { color: var(--fd-save) }
.d2-bar i { display: block; height: 100%; border-radius: inherit; background: var(--fd-fill); transition: width .5s cubic-bezier(.2, .8, .2, 1) }
.d2-rows { display: grid; gap: 6px; font-size: 15px }
.d2-rows div { display: flex; justify-content: space-between; gap: 12px }
.d2-rows dt { color: var(--fd-ink) } .d2-rows dd { color: var(--fd-head); font-weight: 600 }
.d2-rows .d2-total dt { font-weight: 700; color: var(--fd-head); font-size: 17px }
.d2-rows .d2-total dd { font-weight: 700; font-size: 20px }
.d2-fine { color: var(--fd-muted); font-size: 13px; line-height: 1.4 }
.d2-fine a { color: inherit }
.d2-code { display: grid; gap: 8px }
.d2-code[hidden] { display: none }
.d2-empty { text-align: center; padding: 24px 20px 40px; display: grid; gap: 16px; justify-items: center }
.d2-empty img { width: 210px; height: auto }
.d2-empty h2 { font: 600 26px/1.15 var(--fd-h); color: var(--fd-head); letter-spacing: 0 }

/* ---------- cart drawer */
.d2-drawer { position: fixed; inset: 0; z-index: 2147482000; visibility: hidden; pointer-events: none }
.d2-drawer.is-open { visibility: visible; pointer-events: auto }
.d2-drawer__scrim { position: absolute; inset: 0; background: var(--fd-scrim); opacity: 0; transition: opacity .25s }
.d2-drawer.is-open .d2-drawer__scrim { opacity: 1 }
.d2-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(440px, 100vw); display: flex; flex-direction: column; background: var(--fd-ground); box-shadow: var(--fd-shadow); transform: translateX(100%); transition: transform .32s cubic-bezier(.2, .8, .2, 1) }
.d2-drawer.is-open .d2-drawer__panel { transform: none }
.d2-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 12px 10px 4px 20px }
.d2-drawer__head h2 { font: 600 26px/1.1 var(--fd-h); color: var(--fd-head); letter-spacing: 0; display: flex; align-items: baseline; gap: 10px }
.d2-count { display: inline; min-width: 0; height: auto; padding: 0; border-radius: 0; background: none; color: var(--fd-muted); font: 400 17px/1 var(--fd-b) } /* m29: the count as plain text, not a pill */
.d2-count[hidden] { display: none }
.d2-x { width: 48px; height: 48px; border: 0; border-radius: 50%; background: none; color: var(--fd-head); cursor: pointer; display: grid; place-items: center }
.d2-x:hover { background: var(--fd-surface-2) }
.d2-drawer__body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 4px 14px 16px; display: grid; align-content: start; gap: 12px }
.d2-drawer__foot { padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); background: var(--fd-surface); box-shadow: none; display: grid; gap: 12px } /* m29: no shadow */
.d2-drawer__foot .d2-fine { text-align: center }
.d2-drawer__foot { gap: 10px; padding-top: 12px }
.d2-drawer__foot .d2-promise { gap: 10px; font-size: 13px }
.d2-drawer__foot .d2-promise .d2-seal { width: 36px; height: 36px }
.d2-drawer__foot .d2-promise strong { display: inline }
.d2-drawer__foot .d2-promise span { display: inline; margin-left: 4px }
.d2-drawer__foot .d2-wallet { min-height: 48px }
.d2-busy { opacity: .6; pointer-events: none; transition: opacity .15s }

/* ---------- cart page */
.d2-cartpage { max-width: 1180px; margin: 0 auto; padding: 32px 16px 72px }
.d2-cartpage__h { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px }
.d2-cartpage__h h1 { font: 600 40px/1.05 var(--fd-h); color: var(--fd-head); letter-spacing: 0 }
.d2-cartpage__grid { display: grid; gap: 20px }
.d2-cartpage__side { background: var(--fd-surface); border-radius: var(--fd-r-card); padding: 22px; display: grid; gap: 14px; align-self: start }
.d2-cartpage__side .d2-ship { padding: 0 }
.d2-cartpage__main { display: grid; gap: 12px; align-content: start }
.d2-cartpage .d2-item { padding: 14px }
@media (min-width: 990px) {
  .d2-cartpage { padding: 48px 32px 120px }
  .d2-cartpage__h h1 { font-size: 52px }
  .d2-cartpage__grid { grid-template-columns: minmax(0, 1fr) 400px; gap: 32px; align-items: start }
  .d2-cartpage__side { position: sticky; top: 110px; padding: 28px }
  .d2-cartpage .d2-item { padding: 20px }
  .d2-cartpage .d2-item__top { grid-template-columns: 120px 1fr auto }
  .d2-cartpage .d2-item__img { width: 120px; height: 120px }
}
html:not([data-opt-d2-cart="a"]) body.d2-cart-b #MainContent > :not(.d2-cartpage),
html[data-d2-cartpage]:not([data-opt-d2-cart="a"]) #MainContent > :not(.d2-cartpage) { display: none !important }
html[data-d2-cartpage]:not([data-opt-d2-cart="a"]) #MainContent { min-height: 70vh; background: var(--fd-ground) }

/* ---------- checkout (new design; today's page under option A) */
.d2co-only { display: none !important }
html:not([data-opt-d2-checkout="a"]) body.d2co .d2co-only { display: revert !important }
html:not([data-opt-d2-checkout="a"]) body.d2co .d2-plan.d2co-only, html:not([data-opt-d2-checkout="a"]) body.d2co .d2-promise.d2co-only, html:not([data-opt-d2-checkout="a"]) body.d2co .d2-tyseal.d2co-only { display: flex !important }
html:not([data-opt-d2-checkout="a"]) body.d2co .d2-plan.d2co-only { display: block !important }
html:not([data-opt-d2-checkout="a"]) body.d2co .cs-line.d2-gift { display: flex !important }
html:not([data-opt-d2-checkout="a"]) body.d2co {
  --co-text: var(--fd-ink); --co-ink: var(--fd-head); --co-line: var(--fd-line); --co-bg2: var(--fd-surface);
  background: var(--fd-ground); color: var(--fd-ink); font-family: var(--fd-b); font-size: 15px; letter-spacing: 0 }
html:not([data-opt-d2-checkout="a"]) .d2co .co-header { background: var(--fd-surface); border-bottom: 0 } /* m29: no divider */
html:not([data-opt-d2-checkout="a"]) .d2co .co-or::before { display: none } /* m29: no rule behind "OR" */
html:not([data-opt-d2-checkout="a"]) .d2co .co-or span { background: none }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-thumb { border: 0; background: none } /* m29: no frame round the thumbnails */
html:not([data-opt-d2-checkout="a"]) .d2co .cs-recur { border-top: 0; margin-top: 14px; padding-top: 0 } /* m29: spacing, not a line */
html:not([data-opt-d2-checkout="a"]) .d2co .co-bag { color: var(--fd-head) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-sec h2, html:not([data-opt-d2-checkout="a"]) .d2co .co-h3 { font: 600 22px/1.2 var(--fd-h); color: var(--fd-head); letter-spacing: 0 }
html:not([data-opt-d2-checkout="a"]) .d2co .co-sec h2.co-h3 { font-size: 18px }
html:not([data-opt-d2-checkout="a"]) .d2co .sp-box { background: var(--fd-surface); border-color: var(--fd-field); border-radius: var(--fd-r-field) }
html:not([data-opt-d2-checkout="a"]) .d2co .sp-box input, html:not([data-opt-d2-checkout="a"]) .d2co .sp-box select { color: var(--fd-head); font-family: var(--fd-b); background: transparent }
html:not([data-opt-d2-checkout="a"]) .d2co .sp-box label { color: var(--fd-muted) }
html:not([data-opt-d2-checkout="a"]) .d2co .sp-field.is-invalid .sp-box { border-color: var(--fd-err); box-shadow: 0 0 0 1px var(--fd-err) }
html:not([data-opt-d2-checkout="a"]) .d2co .sp-err, html:not([data-opt-d2-checkout="a"]) .d2co .co-err, html:not([data-opt-d2-checkout="a"]) .d2co .co-express__err { color: var(--fd-err) }
html:not([data-opt-d2-checkout="a"]) .d2co .sp-check input { accent-color: var(--fd-accent) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-pending, html:not([data-opt-d2-checkout="a"]) .d2co .co-rate { background: var(--fd-surface); border-color: var(--fd-line); color: var(--fd-ink); border-radius: var(--fd-r-field) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-subtle { color: var(--fd-muted) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-paybox { background: var(--fd-surface); border-color: var(--fd-field); border-radius: var(--fd-r-card); overflow: hidden }
html:not([data-opt-d2-checkout="a"]) .d2co .co-paybox__head { background: var(--fd-surface-2); color: var(--fd-head); border-color: var(--fd-line) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-paybox__body { background: var(--fd-surface) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-radio { border-color: var(--fd-head); background: var(--fd-surface) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-consent { margin-bottom: 20px; color: var(--fd-ink); font-size: 12px; line-height: 1.5 }
html:not([data-opt-d2-checkout="a"]) .d2co .co-consent strong { color: var(--fd-head) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-consent a, html:not([data-opt-d2-checkout="a"]) .d2co .co-foot a { color: var(--fd-head) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-terms { color: var(--fd-muted) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-pay { background: var(--fd-accent); color: var(--fd-on-accent); border-radius: 999px; min-height: 58px; font: 700 18px/1 var(--fd-b) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-pay:hover { background: var(--fd-accent-hover) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-pay::before { content: ''; width: 18px; height: 18px; margin-right: 10px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Crect x='4' y='10' width='16' height='11' rx='2.5'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Crect x='4' y='10' width='16' height='11' rx='2.5'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") center / contain no-repeat }
html:not([data-opt-d2-checkout="a"]) .d2co .co-pay.is-busy::before { display: none }
html:not([data-opt-d2-checkout="a"]) .d2co .co-express__label { font: 600 15px var(--fd-b); color: var(--fd-muted); text-align: center }
html:not([data-opt-d2-checkout="a"]) .d2co .co-wbtn { border-radius: 999px; min-height: 50px }
html:not([data-opt-d2-checkout="a"]) .d2co .co-or span { background: var(--fd-ground); color: var(--fd-muted) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-recur--pay { display: none }
html:not([data-opt-d2-checkout="a"]) .d2co .co-sumbar { display: none }
/* summary column: a card on the porcelain ground, not a grey half-page */
html:not([data-opt-d2-checkout="a"]) .d2co .co-summary { background: transparent; border: 0 }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-in { background: var(--fd-surface); border-radius: var(--fd-r-card); padding: 22px }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-title { color: var(--fd-head); font-weight: 600 }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-sub, html:not([data-opt-d2-checkout="a"]) .d2co .cs-muted { color: var(--fd-muted) }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-qty { background: var(--fd-pill); color: var(--fd-on-pill) }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-thumb img { border-radius: var(--fd-r-thumb); border-color: var(--fd-line) }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-row { color: var(--fd-ink) }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-total, html:not([data-opt-d2-checkout="a"]) .d2co .cs-total strong { color: var(--fd-head) }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-save, html:not([data-opt-d2-checkout="a"]) .d2co .cs-save span { color: var(--fd-save) }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-recur { color: var(--fd-head) }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-line.d2-gift { padding: 0; background: none; border-radius: 0; gap: 14px; align-items: center; margin-top: 12px }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-line.d2-gift .cs-thumb img { width: 46px; height: auto; border: 0; border-radius: 4px }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-line.d2-gift .cs-price { color: var(--fd-save); font-weight: 700 }
html:not([data-opt-d2-checkout="a"]) .d2co .co-disc input { color: var(--fd-head) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-disc__btn { border-radius: 999px; background: var(--fd-pill); color: var(--fd-on-pill); min-height: 48px }
html:not([data-opt-d2-checkout="a"]) .d2co .co-disc__btn:disabled { background: var(--fd-surface-2); color: var(--fd-muted) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-chip { background: var(--fd-surface-2); color: var(--fd-head); border-radius: 999px }
html:not([data-opt-d2-checkout="a"]) .d2co .co-foot { border-top: 0 } /* m29: no divider */
.d2co .d2-msum { margin: 12px 16px 0; padding: 16px; border-radius: var(--fd-r-card); background: var(--fd-surface) }
.d2-ms-line { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; padding-bottom: 12px }
.d2-ms-line img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--fd-r-thumb) }
.d2-ms-gift { grid-template-columns: 56px 1fr auto } .d2-ms-gift img { width: 40px; height: auto; margin: 0 8px; border-radius: 3px }
.d2-ms-t { font-weight: 600; color: var(--fd-head); font-size: 15px; line-height: 1.3 } .d2-ms-q { color: var(--fd-muted); font-weight: 400 }
.d2-ms-s { color: var(--fd-muted); font-size: 13px }
.d2-ms-p { font-weight: 700; color: var(--fd-head); text-align: right; font-variant-numeric: tabular-nums } .d2-ms-p s { color: var(--fd-muted); font-weight: 400; font-size: 13px; display: block }
.d2-ms-gift .d2-ms-p { color: var(--fd-save) }
.d2-ms-foot { display: flex; align-items: center; gap: 14px; border-top: 0; padding-top: 4px; font-size: 15px } /* m29: no divider */
.d2-ms-foot a { color: var(--fd-head); font-weight: 600 }
.d2-ms-more { display: inline-flex; align-items: center; gap: 4px; border: 0; background: none; color: var(--fd-head); font: 600 15px var(--fd-b); cursor: pointer; min-height: 44px; padding: 0 }
.d2-ms-more[aria-expanded="true"] svg { transform: rotate(180deg) }
.d2-ms-foot strong { margin-left: auto; font-size: 18px; color: var(--fd-head); font-variant-numeric: tabular-nums }
.d2co .d2-plan { margin: 18px 0 14px; padding: 0; color: var(--fd-ink) }
.d2co .d2-plan h2 { font: 600 18px/1.2 var(--fd-h); color: var(--fd-head); letter-spacing: 0; margin: 0 0 10px }
.d2co .d2-plan dl { display: grid; gap: 6px; margin: 0 }
.d2co .d2-plan dl div { display: flex; justify-content: space-between; gap: 12px; font-size: 15px }
.d2co .d2-plan dt { color: var(--fd-ink) } .d2co .d2-plan dd { margin: 0; color: var(--fd-head); font-weight: 600; font-variant-numeric: tabular-nums; text-align: right }
.d2co .d2-plan ul { list-style: none; margin: 16px 0 0; padding: 0; border-top: 0; display: grid; gap: 6px; font-size: 15px } /* m29: spacing, not a line */
.d2co .d2-plan li { display: flex; gap: 8px; align-items: flex-start }
.d2co .d2-plan li::before, .d2-ticks li::before { content: ''; flex: none; width: 16px; height: 16px; margin-top: 2px; background: var(--fd-save); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8.5 3.2 3L13 4.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8.5 3.2 3L13 4.5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat }
.d2co .d2-once { margin: 18px 0 10px; font-weight: 600; color: var(--fd-head) }
.d2co .d2-promise { margin: 16px 0 4px; padding: 0 4px; border-radius: 0; background: none } /* m29: the promise is a line under the button, not a box */
.d2co .d2-disc-open { margin: 14px 0 0; border: 0; background: none; padding: 10px 0; min-height: 44px; color: var(--fd-head); font: 600 15px var(--fd-b); text-decoration: none; cursor: pointer; align-items: center; gap: 8px }
/* owner 3 Nov: "i would put the discount code in a dropdown if possible" - both code boxes open and close from a dropdown */
html:not([data-opt-d2-checkout="a"]) body.d2co .d2-disc-open.d2co-only { display: inline-flex !important }
.d2co .d2-disc-open svg { transition: transform .15s }
.d2co .d2-disc-open[aria-expanded="true"] svg { transform: rotate(180deg) }
.d2co .d2-disc-open--sum { margin: 14px 0 4px }
html:not([data-opt-d2-checkout="a"]) body.d2co:not(.d2-disc-shown) .co-disc--main,
html:not([data-opt-d2-checkout="a"]) body.d2co:not(.d2-disc-shown) .co-disc--sum { display: none }
@media (max-width: 999px) { html:not([data-opt-d2-checkout="a"]) body.d2co .d2-disc-open--sum.d2co-only { display: none !important } }
/* express pay: label, button and the agreement line on one centred column with even spacing (owner 3 Nov: "the express
   checkout header/spacing above the apple pay button is a bit wonky") */
html:not([data-opt-d2-checkout="a"]) .d2co .co-express { margin: 0 0 22px; text-align: center }
html:not([data-opt-d2-checkout="a"]) .d2co .co-express__label { margin: 0 0 12px; line-height: 1.3 }
html:not([data-opt-d2-checkout="a"]) .d2co .co-consent--express { margin: 12px auto 0; max-width: 460px; text-align: center; font-size: 12px; line-height: 1.45; color: var(--fd-muted) }
@media (min-width: 1000px) {
  html:not([data-opt-d2-checkout="a"]) body.d2co .d2-msum.d2co-only,
  html:not([data-opt-d2-checkout="a"]) body.d2co .d2-disc-open.d2co-only:not(.d2-disc-open--sum) { display: none !important }
  html:not([data-opt-d2-checkout="a"]) .d2co .co-cols { gap: 40px; justify-content: center; padding: 0 32px }
  html:not([data-opt-d2-checkout="a"]) .d2co .co-main { flex: 0 1 600px; padding: 36px 0 0; justify-content: flex-start }
  html:not([data-opt-d2-checkout="a"]) .d2co .co-cols > .co-summary { flex: 0 1 420px; padding: 36px 0 }
  html:not([data-opt-d2-checkout="a"]) .d2co .co-summary .cs-in { position: sticky; top: 24px; padding: 26px }
}
/* one type scale on the new checkout: 13 field labels + fine print, 15 text, 16 typed text, 18 buttons + sub-heads, 22 heads */
html:not([data-opt-d2-checkout="a"]) .d2co .sp-box label { font-size: 13px }
html:not([data-opt-d2-checkout="a"]) .d2co :is(.sp-box input, .sp-box select) { font-size: 16px }
html:not([data-opt-d2-checkout="a"]) .d2co :is(.co-subtle, .sp-check, .co-or, .co-pending, .co-rate, .co-paybox__head, .cs-row, .cs-title, .cs-price, .co-express__err, .co-err, .sp-err, .co-disc input, .co-disc__btn, .co-chip, .d2-ms-p) { font-size: 15px }
html:not([data-opt-d2-checkout="a"]) .d2co :is(.co-terms, .co-foot, .cs-sub, .cs-muted, .cs-qty, .cs-total small) { font-size: 13px }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-total small { color: var(--fd-muted) }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-total { font-size: 18px }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-total strong { font-size: 22px }
html:not([data-opt-d2-checkout="a"]) .d2co .cs-recur { font-size: 15px }
html:not([data-opt-d2-checkout="a"]) .d2co .sp-check { min-height: 44px; display: flex; align-items: center }
html:not([data-opt-d2-checkout="a"]) .d2co .co-foot a, .d2ty-root .co-foot a { display: inline-flex; align-items: center; min-height: 44px }
.d2co .d2-ms-foot a { display: inline-flex; align-items: center; min-height: 44px }
.d2-cartpage__h .d2-link { display: inline-flex; align-items: center; min-height: 44px }

/* demo mode only: owner-facing marks, never on a real checkout */
.d2-demobar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 22px; padding: 12px 14px; border-radius: 12px; background: #2b2140; color: #f6f3fa; font: 500 14px/1.4 system-ui, -apple-system, sans-serif }
.d2-demobar button { border: 0; border-radius: 999px; background: #f6f3fa; color: #2b2140; font: 600 13px system-ui, sans-serif; padding: 9px 14px; min-height: 40px; cursor: pointer }
.d2-demo-card { display: grid; gap: 10px; padding: 4px 0 }
.d2-demo-card .sp-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px }
.d2-demo-tag { display: inline-block; margin-bottom: 2px; padding: 3px 9px; border-radius: 999px; background: #2b2140; color: #f6f3fa; font: 600 12px system-ui, sans-serif }
.d2-demo-brand { text-align: center; color: var(--fd-muted, #6e5a94); font: 13px system-ui, sans-serif; padding: 10px 0 }

/* ---------- thank-you (new design; today's page under option A) */
.d2ty-root[hidden] { display: none !important }
html[data-opt-d2-thanks="a"] .d2ty-root { display: none !important }
html:not([data-opt-d2-thanks="a"]) body.d2ty.d2ty-ready > .co-cols { display: none }
html:not([data-opt-d2-thanks="a"]) body.d2ty { background: var(--fd-ground); color: var(--fd-ink); font-family: var(--fd-b) }
html:not([data-opt-d2-thanks="a"]) body.d2ty .co-header { background: var(--fd-surface); border-bottom: 0 } /* m29: no divider */
html:not([data-opt-d2-thanks="a"]) body.d2ty .co-foot { border-top: 0 }
html:not([data-opt-d2-thanks="a"]) body.d2ty .co-bag { color: var(--fd-head) }
.d2ty-root { max-width: 1120px; margin: 0 auto; padding: 28px 16px 64px; display: grid; gap: 20px }
.d2ty-hero h1 { font: 600 34px/1.08 var(--fd-h); color: var(--fd-head); letter-spacing: 0 }
.d2ty-hero p { margin-top: 8px; color: var(--fd-ink) }
.d2ty-num { color: var(--fd-muted); font-size: 15px; margin-bottom: 6px !important }
.d2ty-cols { display: grid; gap: 20px }
.d2ty-left, .d2ty-right { display: grid; gap: 20px; align-content: start }
.d2-card { background: var(--fd-surface); border-radius: var(--fd-r-card); padding: 20px }
.d2-card h2 { font: 600 22px/1.2 var(--fd-h); color: var(--fd-head); letter-spacing: 0; margin-bottom: 14px }
.d2-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 0 }
.d2-steps li { position: relative; display: block; padding-bottom: 18px }
.d2-steps li:last-child { padding-bottom: 0 } /* m29: plain steps; the dot-and-line timeline is gone */
.d2-steps b { display: block; color: var(--fd-head); font-weight: 600 }
.d2-steps span { display: block; color: var(--fd-ink); font-size: 15px }
.d2-steps a { color: var(--fd-head); font-weight: 600 }
.d2-guide { display: grid; grid-template-columns: 84px 1fr; gap: 16px 18px; align-items: center; background: var(--fd-surface-3); border-radius: var(--fd-r-card); padding: 20px }
.d2-guide > div { display: contents }
.d2-guide h2 { grid-column: 2; margin: 0 !important }
.d2-guide .d2-btn { grid-column: 1 / -1 }
.d2-guide img { width: 84px; height: auto; border-radius: 6px; box-shadow: none; transform: none } /* m29: straight, no shadow */
.d2-guide h2 { font: 600 22px/1.15 var(--fd-h); color: var(--fd-head); letter-spacing: 0; margin-bottom: 12px }

.d2-facts { display: grid; gap: 8px; margin: 0 }
.d2-facts div { display: flex; justify-content: space-between; gap: 12px; font-size: 15px }
.d2-facts dt { color: var(--fd-ink) } .d2-facts dd { margin: 0; color: var(--fd-head); font-weight: 600; text-align: right; font-variant-numeric: tabular-nums }
.d2-facts .d2-total dt, .d2-facts .d2-total dd { font-weight: 700; color: var(--fd-head) } .d2-facts .d2-total dd { font-size: 22px }
.d2-ty-promise { margin-top: 22px; padding-top: 0; border-top: 0 }
.d2-sumlines { display: grid; gap: 12px; margin-bottom: 20px; padding-bottom: 0; border-bottom: 0 } /* m29: spacing, not lines */
.d2-sumline { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center }
.d2-sumline img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--fd-r-thumb) }
.d2-sumline.is-gift img { width: 40px; height: auto; margin: 0 8px; border-radius: 3px }
.d2-sumline b { display: block; color: var(--fd-head); font-weight: 600; font-size: 15px; line-height: 1.3 }
.d2-sumline span { color: var(--fd-muted); font-size: 13px; text-wrap: pretty }
.d2-sumline em { font-style: normal; font-size: 15px; font-weight: 700; color: var(--fd-head); font-variant-numeric: tabular-nums }
.d2-sumline.is-gift em { color: var(--fd-save) }
.d2-details { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; font-size: 15px }
.d2-details h3 { font: 600 13px var(--fd-b); color: var(--fd-muted); margin-bottom: 2px }
.d2-details p { white-space: pre-line; color: var(--fd-head) }
.d2-links { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center }
.d2-survey { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; justify-content: space-between }
.d2-survey p { flex: 1 1 260px }
/* owner 4 Nov call 3 c: "How did you hear about us?", tap an answer; pills match the cart's subscribe button */
.d2-hdy h2 { margin-bottom: 14px }
.d2-hdy__opts { display: flex; flex-wrap: wrap; gap: 8px }
.d2-hdy__opts[hidden], .d2-hdy__else[hidden], .d2-hdy__done[hidden] { display: none }
.d2-hdy__opt { min-height: 44px; padding: 0 16px; border: 0; box-shadow: inset 0 0 0 1.5px var(--fd-field); border-radius: 999px; background: none; color: var(--fd-head); font: 600 15px/1.2 var(--fd-b); letter-spacing: 0; cursor: pointer; transition: background-color .15s }
.d2-hdy__opt:hover, .d2-hdy__opt.is-on { background: var(--fd-surface-2) }
.d2-hdy__opt:focus-visible { outline: 2px solid var(--fd-focus); outline-offset: 2px }
.d2-hdy__else { display: flex; gap: 8px; margin-top: 12px }
.d2-hdy__else input { flex: 1; min-width: 0; height: 44px; padding: 0 14px; border: 1px solid var(--fd-field); border-radius: var(--fd-r-field); background: var(--fd-surface); color: var(--fd-head); font: 16px var(--fd-b) }
.d2-hdy__done { color: var(--fd-head) }
.d2-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap }
@media (prefers-reduced-motion: reduce) { .d2-hdy__opt { transition: none } }
.d2-offer { display: grid; gap: 12px; background: var(--fd-surface); border-radius: var(--fd-r-card); padding: 20px; box-shadow: none } /* m29: no border */
.d2-offer h2 { font: 600 22px/1.2 var(--fd-h); color: var(--fd-head); letter-spacing: 0 }
html[data-opt-d2-offer="off"] .d2-offer, html:not([data-opt-d2-offer]) .d2-offer { display: none }
@media (min-width: 990px) {
  .d2ty-root { padding: 48px 32px 96px; gap: 28px }
  .d2ty-hero h1 { font-size: 48px }
  .d2ty-cols { grid-template-columns: minmax(0, 1fr) 400px; gap: 32px; align-items: start }
  .d2ty-right { position: sticky; top: 24px }
  .d2-card { padding: 26px }
  .d2-guide { grid-template-columns: 120px 1fr; grid-template-rows: auto auto; padding: 26px 28px; gap: 14px 28px; align-content: center }
  .d2-guide > div { display: grid; gap: 14px; justify-items: start; align-self: center }
  .d2-guide h2 { grid-column: auto }
  .d2-guide .d2-btn { grid-column: auto; width: auto }
  .d2-guide img { width: 120px }
}
@media (max-width: 420px) { .d2-details { grid-template-columns: 1fr } }

/* ---------- order tracking */
.d2-page { font-family: var(--fd-b); color: var(--fd-ink) }
body.d2-track-page #MainContent { background: var(--fd-ground) }
.d2-track { max-width: 760px; margin: 0 auto; padding: 32px 16px 72px; display: grid; gap: 18px }
.d2-track h1 { font: 600 40px/1.05 var(--fd-h); color: var(--fd-head); letter-spacing: 0 }
.d2-track .d2-card h2 { margin-bottom: 4px }
.d2-track-status { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px }
.d2-track-status p { color: var(--fd-muted); font-size: 15px }
.d2-prog { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 }
.d2-prog { gap: 0 6px }
.d2-prog li { position: relative; display: grid; grid-template-rows: 6px auto auto; align-content: start; justify-items: start; text-align: left; gap: 10px; font-size: 15px; line-height: 1.3; color: var(--fd-muted) }
.d2-prog__t { min-height: 2.6em }
@media (min-width: 600px) { .d2-prog__t { min-height: 0 } }
/* m29: one segmented bar (a segment per stage) in place of dots joined by lines */
.d2-prog li::before { content: ''; width: 100%; height: 6px; border-radius: 999px; background: var(--fd-track) }
.d2-prog li.is-done { color: var(--fd-head) } .d2-prog li.is-done::before { background: var(--fd-fill) }
.d2-prog li.is-now { font-weight: 600 }
.d2-prog small { display: block; color: var(--fd-muted); font-weight: 400; font-size: 13px }
.d2-carrier { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; padding-top: 0; border-top: 0 } /* m29: no divider */
.d2-carrier p { font-size: 15px } .d2-carrier b { color: var(--fd-head) }
.d2-lookup { display: grid; gap: 12px }
.d2-lookup label { display: grid; gap: 6px; font-weight: 600; color: var(--fd-head); font-size: 15px }
.d2-lookup input { height: 50px; padding: 0 14px; border: 1px solid var(--fd-field); border-radius: var(--fd-r-field); background: var(--fd-surface); color: var(--fd-head); font: 17px var(--fd-b) }
.d2-help { font-size: 15px }
.d2-help a { color: var(--fd-head); font-weight: 600 }
@media (min-width: 990px) { .d2-track { padding: 56px 32px 120px; gap: 24px } .d2-track h1 { font-size: 52px } .d2-track .d2-card { padding: 30px } }

@media (prefers-reduced-motion: reduce) {
  .d2-drawer__panel, .d2-drawer__scrim, .d2-bar i, .d2-btn { transition: none !important }
}

/* ---------- round 22 (owner 3 Nov). Cart: "the way the new cart is made is too busy. theres too much text and too much going
   on"; the plan switch stays ("i do like the subscription toggle addition"). Thank-you: the shield goes, the product page's
   seal and its two lines take its place. */
.d2-tyseal { display: flex; align-items: center; gap: 12px; margin-top: 22px }
.d2-tyseal .d2-seal { flex: none; width: 44px; height: 44px }
.d2-tyseal b { display: block; color: var(--fd-head); font-weight: 700; font-size: 15px; line-height: 1.3 }
.d2-tyseal span { display: block; color: var(--fd-muted); font-size: 13px; line-height: 1.35 }
.d2-drawer__foot .d2-tyseal, .d2-cartpage__side .d2-tyseal { margin-top: 2px; justify-content: center }
.d2-drawer__foot .d2-tyseal .d2-seal { width: 38px; height: 38px }
/* the 2-bottle offer as a plain row inside the item, not a second box */
.d2-nudge { margin-top: 12px; padding: 12px 0 0; border-radius: 0; background: none; box-shadow: none } /* m29: spacing, not a line */
.d2-item__ctl { margin-top: 12px }
.d2-plan2 { margin-top: 12px }
.d2co .d2-tyseal { margin: 16px 0 4px; justify-content: center }

/* owner 4 Nov: "take apple pay out of checkout, keep it in the cart" (switch "Apple Pay / Google Pay at checkout", default Hide) */
html:not([data-opt-d2-wallet-co="on"]) body.d2co #co-express { display: none !important }
@media (prefers-reduced-motion: reduce) { .d2-walker { transition: none } }
/* Funnel fixes, 7 Nov: the money-back line under Secure checkout; the checkout's closed Terms and policies row; the cancel line under the seal */
.d2-moneyback { margin: 8px 0 0; font-size: 12px; line-height: 1.4; text-align: center; color: var(--fd-muted) }
.co-foot--terms details { width: 100% }
.co-foot--terms summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; color: var(--fd-head, var(--co-ink)); text-decoration: underline }
.co-foot--terms details > div { display: flex; flex-wrap: wrap; gap: 0 18px }
.d2co .d2-controls { margin: 8px 0 0; font-size: 14px; line-height: 1.4; text-align: center; color: var(--fd-ink) }
html:not([data-opt-d2-checkout="a"]) .d2co .co-subtle:not(#_) { font-size: 14px }
