/* ============================================================================
   order-pp-restyle.css  —  Clean flat mobile checkout restyle layer for /order (Remy colors)
   Loaded LAST on /order (after order-express.min.css + responsive-fixes.css), so
   these rules win by source order without touching the 100KB base stylesheet.
   Scope: cart/checkout visual layer only. No behavior, no JS hooks, no copy facts.
   Palette: dark #080808 / panels #0e0e0e, accent pink #db266c, green #00e676.
   Verified 2026-06-02. ============================================================ */

:root{
  --pp-accent:#db266c;
  --pp-accent-hover:#c01f5c;
  --pp-accent-bright:#ff5a9e;
  --pp-radius:12px;            /* fields · tiles · buttons */
  --pp-r-mini:8px;            /* inner controls */
  --pp-line:rgba(255,255,255,.10);
  --pp-line-soft:rgba(255,255,255,.07);
  --pp-field-bg:rgba(255,255,255,.055);   /* was .04 — too faint */
  --pp-field-line:rgba(255,255,255,.17);  /* visible input/tile edge (was .10) */
}

/* ── Section flow: clean single-scroll, no step eyebrows ─────────────────── */
.express-form .panel-step{display:none;}
.express-form [data-step-panel]+[data-step-panel]{
  margin-top:26px;padding-top:24px;border-top:1px solid var(--pp-line-soft);
}
.express-form .panel-head{margin-bottom:18px;}
.express-form .panel-head h1{font-size:26px;line-height:1.12;letter-spacing:-.01em;}
.express-form .panel-head h2{font-size:21px;line-height:1.15;letter-spacing:-.01em;}
.express-form .panel-head p{font-size:13.5px;}
@media (max-width:640px){
  .express-form .panel-head h1{font-size:23px;}
  .express-form .panel-head h2{font-size:19px;}
}

/* ── Form fields: rounded-lg + translucent fill + 16px (no iOS zoom) + pink
   focus. Matches the existing /order dark layer's specificity
   (body.checkout-light-exception, 0,2,x) so these win by source order. Native
   <select> arrow is preserved (no appearance:none). Fill + edge raised for a
   clear, tappable boundary (the .04/.10 pair read as empty space). Labels are
   now CALM muted (not loud pink) — see the POLISH PASS block below. ─────────── */
body.checkout-light-exception .field input,
body.checkout-light-exception .field select,
body.checkout-light-exception .field textarea,
body.checkout-light-exception .promo-row--express input,
body.checkout-light-exception #promo-input,
body.checkout-light-exception #location-search{
  border-radius:var(--pp-radius)!important;
  background:var(--pp-field-bg)!important;
  border:1px solid var(--pp-field-line)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
  font-size:16px!important;
}
body.checkout-light-exception .field input:focus,
body.checkout-light-exception .field select:focus,
body.checkout-light-exception .field textarea:focus,
body.checkout-light-exception .promo-row--express input:focus,
body.checkout-light-exception #promo-input:focus,
body.checkout-light-exception #location-search:focus{
  border-color:var(--pp-accent)!important;
  box-shadow:0 0 0 3px rgba(219,38,108,.22),inset 0 1px 0 rgba(255,255,255,.05)!important;
  background:rgba(255,255,255,.075)!important;
}
.field-grid{gap:18px;}

/* ── Order Summary items: brand eyebrow, dark stepper, trash icon ───────── */
.order-item__brand{
  font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,.45);margin:0 0 3px;
}
.order-item__name{font-size:17px!important;line-height:1.2!important;}
@media (max-width:640px){.order-item__name{font-size:16px!important;}}
/* qty stepper → dark rounded-lg group (replaces the white pill) */
.order-item__qty{
  background:rgba(255,255,255,.02)!important;
  border:1px solid var(--pp-field-line)!important;
  border-radius:var(--pp-radius)!important;
  padding:0!important;
}
.order-item__qty button{border-radius:0!important;color:#fff!important;}
.order-item__qty-value{color:#fff!important;}
/* remove → trash icon button */
.order-item__remove{
  padding:6px!important;color:rgba(255,255,255,.4)!important;
  display:inline-flex;align-items:center;justify-content:center;line-height:0;
  min-width:44px;min-height:44px;border-radius:8px;
}
.order-item__remove svg{display:block;width:16px;height:16px;}
.order-item__remove:hover{color:var(--pp-accent)!important;background:transparent!important;}
.order-item:hover{background:rgba(255,255,255,.02);}

/* ── BAC water reminder row (sold separately, one-tap add) ──────────────── */
.order-item--bac-reminder{
  display:flex!important;align-items:center;gap:14px;flex-wrap:wrap;
  padding:13px 16px!important;margin-top:4px;
  border:1px solid rgba(0,230,118,.3)!important;border-radius:var(--pp-radius)!important;
  background:rgba(0,230,118,.06)!important;
}
.order-item--bac-reminder:hover{background:rgba(0,230,118,.06)!important;}
.order-item--bac-reminder .order-item__info{flex:1 1 220px;min-width:0;}
.order-item--bac-reminder .order-item__bundled-eyebrow{
  font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:#00e676;margin:0 0 3px;
}
.order-item--bac-reminder .order-item__name{font-size:15px!important;margin:0 0 3px;}
.order-item--bac-reminder .order-item__unit{font-size:12px;line-height:1.5;color:rgba(255,255,255,.65);margin:0;}
.order-item--bac-reminder .order-item__unit a{color:#00e676;text-decoration:underline;}
.order-item--bac-reminder .order-item__add-extra{
  flex:0 0 auto;appearance:none;border:none;cursor:pointer;
  font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.02em;
  padding:10px 16px;border-radius:999px;min-height:40px;
  background:linear-gradient(135deg,#00e676,#00b85c);color:#04130a;
}

/* ── Payment cards: rounded-lg, pink selected ───────────────────────────── */
.payment-option,
.payment-option--square{border-radius:var(--pp-radius)!important;background:rgba(255,255,255,.03)!important;border:1px solid var(--pp-field-line)!important;}
.payment-option.is-selected{
  border-color:var(--pp-accent)!important;
  background:rgba(219,38,108,.12)!important;
  box-shadow:0 0 0 1px rgba(219,38,108,.35)!important;
}
.payment-option:hover,.payment-option:focus-visible{border-color:rgba(219,38,108,.4)!important;background:rgba(255,255,255,.05)!important;}
.payment-option[disabled],
.payment-option.is-disabled{
  opacity:.55!important;
  cursor:not-allowed!important;
  border-color:var(--pp-field-line)!important;
  background:rgba(255,255,255,.025)!important;
  box-shadow:none!important;
}
.payment-option[disabled]:hover,
.payment-option.is-disabled:hover,
.payment-option[disabled]:focus-visible,
.payment-option.is-disabled:focus-visible{
  transform:none!important;
  border-color:var(--pp-field-line)!important;
  background:rgba(255,255,255,.025)!important;
}

/* ── Promo: pink Apply, rounded input row ───────────────────────────────── */
.promo-apply{
  background:var(--pp-accent)!important;color:#fff!important;border:none!important;
  border-radius:var(--pp-radius)!important;font-weight:700!important;
}
.promo-apply:hover{background:var(--pp-accent-hover)!important;}

/* ── Geolocation: dashed "use my current location" button (PP) ──────────── */
.location-pin__btn{
  border:1px dashed rgba(219,38,108,.5)!important;
  background:rgba(219,38,108,.06)!important;
  color:#ff5a9e!important;border-radius:var(--pp-radius)!important;
}
.location-pin__btn:hover{background:rgba(219,38,108,.12)!important;border-color:rgba(219,38,108,.7)!important;}

/* ── Submit: full-width solid pink rounded-lg (PP "Confirm Order") ───────── */
.panel-actions--submit{display:block;}
.btn--submit{
  width:100%!important;flex:none!important;
  padding:16px 22px!important;border-radius:var(--pp-radius)!important;
  background:var(--pp-accent)!important;background-image:none!important;
  color:#fff!important;border:none!important;
  font-family:var(--sans)!important;font-size:16px!important;font-weight:700!important;letter-spacing:0!important;
  box-shadow:0 8px 22px rgba(219,38,108,.3)!important;
}
.btn--submit:not(:disabled):hover{background:var(--pp-accent-hover)!important;box-shadow:0 10px 26px rgba(219,38,108,.4)!important;}
.btn--submit:disabled,.btn--submit[disabled]{background:#3a3438!important;color:rgba(255,255,255,.6)!important;box-shadow:none!important;cursor:not-allowed;}

/* ── Mobile running total → clean card above the submit button ───────────── */
.mobile-total-bar{
  border:1px solid var(--pp-line-soft);border-radius:12px;
  background:rgba(255,255,255,.02);padding:14px 16px;margin-top:6px;
}
.mobile-total-bar__row--total .mobile-total-bar__value--total{color:#fff;font-size:19px;}

/* ── Summary WhatsApp CTA: match the homepage hero WhatsApp button ──────── */
body.checkout-light-exception .summary-wa,
body.checkout-light-exception .summary-wa:link,
body.checkout-light-exception .summary-wa:visited{
  position:relative!important;overflow:hidden!important;isolation:isolate;
  min-height:50px;padding:0 24px!important;border-radius:999px!important;
  border:1px solid rgba(37,211,102,.44)!important;
  background:linear-gradient(135deg,rgba(45,226,120,.96),rgba(16,127,56,.98) 58%,rgba(7,91,38,.98))!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  font-family:var(--mono,"DM Mono",monospace)!important;font-size:12px!important;font-weight:700!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;text-decoration:none!important;
  box-shadow:0 14px 42px rgba(37,211,102,.18),inset 0 1px 0 rgba(255,255,255,.26)!important;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;
}
body.checkout-light-exception .summary-wa::before{
  content:"";position:absolute;inset:-1px auto -1px -36%;width:34%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);
  transform:skewX(-18deg);transition:transform .55s ease;pointer-events:none;
}
body.checkout-light-exception .summary-wa:hover,
body.checkout-light-exception .summary-wa:focus-visible{
  background:linear-gradient(135deg,rgba(52,235,127,1),rgba(19,153,63,1) 58%,rgba(7,104,42,1))!important;
  transform:translateY(-2px);box-shadow:0 12px 40px rgba(37,211,102,.3),inset 0 1px 0 rgba(255,255,255,.3)!important;
}
body.checkout-light-exception .summary-wa:hover::before,
body.checkout-light-exception .summary-wa:focus-visible::before{transform:translateX(420%) skewX(-18deg);}
body.checkout-light-exception .summary-wa svg{position:relative;z-index:1;width:16px!important;height:16px!important;flex-shrink:0;fill:currentColor!important;}

/* ── Consent / Turnstile spacing polish ─────────────────────────────────── */
.consent-card{border-radius:12px;}

/* ════════════════════════════════════════════════════════════════════════
   POLISH PASS — 2026-06-02  (approved mockup: /_mockups/order-polish.html →
   "Proposed + calm labels"). Contrast, pill shapes, and brand-consistent
   controls. CSS-only here; payment-tile markup swapped to line icons in
   order.html. No CSP rehash (no inline-script edits).
═══════════════════════════════════════════════════════════════════════════ */

/* Calm labels — keep the established mono/uppercase treatment but drop the loud
   #ff5a9e to a muted tone. This REVERSES the prior "pink labels intentional"
   convention per Suhail 2026-06-02. Same specificity as the base pink rule
   (body.checkout-light-exception .field label) → wins by source order. */
body.checkout-light-exception .field label{color:rgba(248,248,248,.72)!important;}
body.checkout-light-exception .field-optional{color:rgba(255,255,255,.5)!important;}

/* Emirate quick-pills — stronger resting edge + 44px target + pink-tint hover.
   The solid-pink selected state (.is-active / [aria-pressed=true]) is the base,
   left intact. */
body.checkout-light-exception .emirate-quick button{
  border-color:var(--pp-field-line)!important;min-height:44px!important;
}
body.checkout-light-exception .emirate-quick button:hover,
body.checkout-light-exception .emirate-quick button:focus-visible{
  border-color:rgba(219,38,108,.55)!important;
  background:rgba(219,38,108,.12)!important;
  color:var(--pp-accent-bright)!important;
}

/* Consent — custom brand checkbox (was a 13px native control). */
body.checkout-light-exception .consent-check input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  width:22px;height:22px;margin:1px 0 0!important;flex:0 0 auto;position:relative;
  border-radius:6px;border:1.5px solid rgba(255,255,255,.30);
  background:rgba(255,255,255,.04);cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
body.checkout-light-exception .consent-check input[type="checkbox"]:checked{
  background:var(--pp-accent);border-color:var(--pp-accent);
}
body.checkout-light-exception .consent-check input[type="checkbox"]:checked::after{
  content:"";position:absolute;left:7px;top:3px;width:5px;height:10px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
}
body.checkout-light-exception .consent-check input[type="checkbox"]:focus-visible{
  outline:none;box-shadow:0 0 0 3px rgba(219,38,108,.32);
}

/* Payment tiles — unified line icons (markup swapped in order.html). Resting
   icon muted; selected tile turns icon + label pink. */
.payment-option .payment-option__glyph{display:inline-flex;color:rgba(248,248,248,.72);}
.payment-option .payment-option__glyph svg{
  width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;
}
.payment-option.is-selected .payment-option__glyph{color:var(--pp-accent-bright);}
body.checkout-light-exception .payment-option.is-selected strong{color:var(--pp-accent-bright)!important;}
.payment-option[disabled] .payment-option__glyph,
.payment-option.is-disabled .payment-option__glyph{color:rgba(248,248,248,.38);}
.payment-option[disabled] strong,
.payment-option.is-disabled strong{color:rgba(248,248,248,.58)!important;}
.payment-option__badge{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:#f6c56b;
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.2;
  text-transform:uppercase;
}

/* Payment detail heading — compact mono helper, not a 28–32px serif display. */
body.checkout-light-exception .payment-detail h3{
  font-family:var(--mono)!important;font-size:12.5px!important;font-weight:700!important;
  letter-spacing:.1em!important;text-transform:uppercase!important;line-height:1.2!important;
  margin-bottom:6px!important;
}

/* Desktop — centre the single column (≤1080px) so it isn't left-pinned with a
   void on the right. The ≥1101px 2-col + sticky summary rail is untouched. */
.checkout-layout{margin-inline:auto;}

/* ── Cold-chain acknowledgement (non-Dubai delivery) ──────────────────────
   order-express.js reveals #non-dubai-ack-panel only when a non-Dubai emirate
   is selected; the checkbox then gates submission. Neutral elevated card with
   a brand-pink accent edge; the checkbox keeps the .consent-check pink tick.
   On submit-without-ticking, setFieldState adds .is-invalid to the panel
   (its .consent-card class is the field container) → red caution state. */
body.checkout-light-exception .delivery-ack{
  margin-top:16px;padding:16px 18px;
  border:1px solid var(--pp-line);
  border-left:3px solid var(--pp-accent);
  border-radius:var(--pp-radius);
  background:rgba(255,255,255,.035);
}
body.checkout-light-exception .delivery-ack__title{
  margin:0 0 8px;
  font-family:var(--mono);font-size:12.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;line-height:1.2;
  color:var(--pp-accent-bright);
}
body.checkout-light-exception .delivery-ack__copy{
  margin:0 0 10px;
  font-family:var(--sans);font-size:14.5px;line-height:1.65;
  color:rgba(248,248,248,.78);
}
body.checkout-light-exception .delivery-ack__copy:last-of-type{margin-bottom:0;}
body.checkout-light-exception .delivery-ack__check{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--pp-line);
}
body.checkout-light-exception .delivery-ack.is-invalid{
  border-color:rgba(255,99,99,.5);border-left-color:#ff6363;
  background:rgba(255,99,99,.06);
}
body.checkout-light-exception .delivery-ack .field-error{
  margin-top:8px;font-family:var(--sans);font-size:13px;color:#ff8a8a;
}
@media (max-width:640px){
  body.checkout-light-exception .delivery-ack{padding:14px;}
  body.checkout-light-exception .delivery-ack__copy{font-size:14px;}
  body.checkout-light-exception .delivery-ack__check{gap:14px;}
}

/* ════════════════════════════════════════════════════════════════════════
   DISPATCH DESK PASS — 2026-07-05  (approved mockup: artifact cb07cb9b,
   label v2-order-confirmed-added). Design-language v2 voice pass: DM Mono
   system text, Cormorant 600 display heads + one italic glow accent, pill
   CTAs, hairline instrument cards, tabular numerals, canon motion scale
   (120/240/420/640/900ms · ease-out cubic-bezier(.22,1,.36,1)).
   CSS-only. Supersedes rules ABOVE by source order — history not edited.
   NO enhance gate: every entrance is a from-only keyframe with backwards
   fill (self-gating — the page is complete with or without JS). No
   scroll-triggered reveals on checkout, ever.
═══════════════════════════════════════════════════════════════════════════ */

:root{
  --pp-ease-out:cubic-bezier(.22,1,.36,1);
  --pp-ease-io:cubic-bezier(.65,0,.35,1);
  --pp-d-1:120ms;--pp-d-2:240ms;--pp-d-3:420ms;--pp-d-4:640ms;
  --pp-save:#00e676;
  --pp-save-ink:#04130a;
  --pp-hair:rgba(255,255,255,.09);
  --pp-hair-strong:rgba(255,255,255,.16);
  --pp-dim:rgba(244,241,242,.72);
  --pp-faint:rgba(244,241,242,.46);
  --pp-mono:var(--mono,"DM Mono",ui-monospace,monospace);
  --pp-serif:"Cormorant Garamond",Georgia,serif;
}

/* ── Keyframes (transform/opacity only) ─────────────────────────────────── */
@keyframes ppRise{from{opacity:0;transform:translateY(14px)}}
@keyframes ppRailIn{from{opacity:0;transform:translateY(18px)}}
@keyframes ppMaskUp{from{transform:translateY(112%)}to{transform:translateY(0)}}
@keyframes ppItemIn{from{opacity:0;transform:translateY(6px)}}
@keyframes ppStampIn{0%{opacity:0;transform:scale(.85)}60%{transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes ppNudge{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}55%{transform:translateX(2px)}}
@keyframes ppDotPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,230,118,.4)}50%{box-shadow:0 0 0 5px rgba(0,230,118,0)}}
@media (max-width:640px){
  @keyframes ppRise{from{opacity:0;transform:translateY(8px)}}
  @keyframes ppRailIn{from{opacity:0;transform:translateY(10px)}}
}

/* ── M1/M2 · Load choreography (CSS parse-time, backwards fill, <1s) ────── */
.express-form .step-panel{animation:ppRise var(--pp-d-3) var(--pp-ease-out) backwards}
.express-form [data-step-panel="1"]{animation-delay:60ms}
.express-form [data-step-panel="2"]{animation-delay:160ms}
.express-form [data-step-panel="3"]{animation-delay:270ms}
.summary-rail .summary-card{animation:ppRailIn var(--pp-d-4) var(--pp-ease-out) 300ms backwards}
/* masked H1 line reveal — .12em descender pad so Cormorant tails don't clip */
.panel-head h1 .hl{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.panel-head h1 .hl-i{display:inline-block;animation:ppMaskUp .74s var(--pp-ease-out) both}
.h1-accent{font-style:italic;font-weight:400;color:var(--pp-accent-bright)}

/* ── Panel heads: Cormorant 600 display + counter ornament (S2 dropped:
      dash + generated 01/02/03 only — zero new words in the HTML) ────────── */
.express-form{counter-reset:ppstep}
.express-form [data-step-panel]{counter-increment:ppstep}
.express-form .panel-head{position:relative;padding-top:15px;margin-bottom:20px;}
.express-form .panel-head::before{
  content:"";position:absolute;left:0;top:0;width:26px;height:1px;background:var(--pp-accent);
}
.express-form .panel-head::after{
  content:"0" counter(ppstep);
  position:absolute;right:0;top:19px;
  font-family:var(--pp-mono);font-weight:400;font-size:.66rem;letter-spacing:.18em;
  color:var(--pp-faint);
}
.express-form .panel-head h1,
.express-form .panel-head h2{
  font-family:var(--pp-serif);font-weight:600;line-height:1.06;letter-spacing:.01em;
}
.express-form .panel-head h1{font-size:clamp(34px,4.4vw,46px);}
.express-form .panel-head h2{font-size:clamp(24px,3vw,30px);}
/* the base 46x3px pink underline bar is not part of the Dispatch Desk head
   (dash ::before + counter ::after are the only ornaments) */
.express-form .panel-head h1::after,
.express-form .panel-head h2::after{content:none;}
.express-form .panel-head p{font-size:14px;font-weight:300;margin-top:8px;}
@media (max-width:640px){
  .express-form .panel-head h1{font-size:clamp(30px,8.6vw,34px);}
  .express-form .panel-head h2{font-size:22px;}
}

/* ── Item rows → hairline instrument cards (base grid-areas kept) ───────── */
body.checkout-light-exception .order-items-list{display:flex;flex-direction:column;gap:12px;}
body.checkout-light-exception .order-item{
  border:1px solid var(--pp-hair);border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.018));
  padding:16px;column-gap:16px;row-gap:6px;
  grid-template-columns:64px minmax(0,1fr) auto;
  transition:border-color var(--pp-d-2) var(--pp-ease-out),background var(--pp-d-2) var(--pp-ease-out);
  animation:ppItemIn var(--pp-d-2) var(--pp-ease-out) backwards;
}
body.checkout-light-exception .order-item:nth-child(2){animation-delay:50ms}
body.checkout-light-exception .order-item:nth-child(3){animation-delay:100ms}
body.checkout-light-exception .order-item:nth-child(4){animation-delay:150ms}
@media (hover:hover){
  body.checkout-light-exception .order-item:hover{border-color:var(--pp-hair-strong);background:linear-gradient(180deg,rgba(255,255,255,.058),rgba(255,255,255,.022));}
}
body.checkout-light-exception .order-item__image{
  width:64px;height:64px;object-fit:contain;border-radius:10px;padding:6px;
  border:1px solid var(--pp-hair);
  background:radial-gradient(circle at 50% 42%,rgba(219,38,108,.12),rgba(255,255,255,.03) 70%);
}
body.checkout-light-exception .order-item__name{font-family:var(--sans);font-weight:500;font-size:16px!important;line-height:1.25!important;}
body.checkout-light-exception .order-item__variant{font-size:12px;color:var(--pp-faint);font-weight:300;}
body.checkout-light-exception .order-item__unit{
  font-family:var(--pp-mono);font-size:11.5px;font-weight:400;color:var(--pp-dim);
  font-variant-numeric:tabular-nums;
}
body.checkout-light-exception .order-item__total{
  font-family:var(--pp-mono);font-weight:500;font-size:15.5px;letter-spacing:0;
  font-variant-numeric:tabular-nums;
}
body.checkout-light-exception .order-item__savings{
  font-family:var(--pp-mono);font-size:.58rem;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:var(--pp-save);
  background:rgba(0,230,118,.08);border:1px solid rgba(0,230,118,.26);
}
/* qty stepper → pill (supersedes the 12px group above) */
body.checkout-light-exception .order-item__qty{
  border-radius:999px!important;
  background:rgba(255,255,255,.03)!important;
  border:1px solid var(--pp-field-line)!important;
  overflow:hidden;
}
body.checkout-light-exception .order-item__qty button{
  width:40px;height:36px;border-radius:0!important;background:transparent;
  font-family:var(--pp-mono);font-size:15px;line-height:1;
  transition:background var(--pp-d-1) var(--pp-ease-out),transform var(--pp-d-1) var(--pp-ease-out);
}
@media (hover:hover){
  body.checkout-light-exception .order-item__qty button:hover{background:rgba(219,38,108,.14)!important;}
}
body.checkout-light-exception .order-item__qty button:active{transform:scale(.92);}
body.checkout-light-exception .order-item__qty-value{
  min-width:30px;text-align:center;font-family:var(--pp-mono);font-weight:500;font-size:13.5px;
  font-variant-numeric:tabular-nums;
}
@media (max-width:640px){
  body.checkout-light-exception .order-item__qty button{width:44px;height:44px;}
}

/* ── BAC reminder row → save-green hairline (supersedes the block above) ── */
body.checkout-light-exception .order-item--bac-reminder{
  border:1px solid rgba(0,230,118,.28)!important;border-radius:14px!important;
  background:linear-gradient(180deg,rgba(0,230,118,.07),rgba(0,230,118,.03))!important;
  animation:none;
}
body.checkout-light-exception .order-item--bac-reminder .order-item__bundled-eyebrow{
  font-family:var(--pp-mono);font-size:.56rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--pp-save);
  display:flex;align-items:center;gap:10px;
}
body.checkout-light-exception .order-item--bac-reminder .order-item__bundled-eyebrow::before{
  content:"";width:18px;height:1px;background:var(--pp-save);flex:0 0 auto;
}
body.checkout-light-exception .order-item--bac-reminder .order-item__unit{
  font-family:var(--sans);font-size:12px;line-height:1.55;
}
body.checkout-light-exception .order-item--bac-reminder .order-item__add-extra{
  font-family:var(--pp-mono);font-size:.64rem;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;padding:11px 18px;min-height:40px;
  font-variant-numeric:tabular-nums;white-space:nowrap;
  transition:transform var(--pp-d-2) var(--pp-ease-out),box-shadow var(--pp-d-2) var(--pp-ease-out);
}
@media (hover:hover){
  body.checkout-light-exception .order-item--bac-reminder .order-item__add-extra:hover{
    transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,230,118,.25);
  }
}
body.checkout-light-exception .order-item--bac-reminder .order-item__add-extra:active{transform:translateY(1px);box-shadow:none;}

/* ── Empty state + picks → hairline tiles, mono pill CTAs ───────────────── */
body.checkout-light-exception .order-items-empty__title{
  font-family:var(--pp-serif);font-weight:600;font-size:clamp(22px,3vw,26px);line-height:1.1;
}
body.checkout-light-exception .order-items-empty__sub{font-size:13.5px;color:var(--pp-dim);font-weight:300;}
body.checkout-light-exception .order-items-empty__pick{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:12px;border:1px solid var(--pp-hair);border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));
  transition:border-color var(--pp-d-2) var(--pp-ease-out),background var(--pp-d-2) var(--pp-ease-out),transform var(--pp-d-2) var(--pp-ease-out);
}
@media (hover:hover){
  body.checkout-light-exception .order-items-empty__pick:hover{
    border-color:rgba(219,38,108,.45);background:rgba(219,38,108,.07);transform:translateY(-1px);
  }
}
body.checkout-light-exception .order-items-empty__pick:active{transform:translateY(1px);}
body.checkout-light-exception .order-items-empty__pick img{
  width:56px;height:56px;object-fit:contain;border-radius:10px;padding:5px;flex:0 0 auto;
  border:1px solid var(--pp-hair);
  background:radial-gradient(circle at 50% 42%,rgba(219,38,108,.1),rgba(255,255,255,.03) 70%);
}
body.checkout-light-exception .order-items-empty__pick-info strong{font-weight:500;font-size:14.5px;line-height:1.3;}
body.checkout-light-exception .order-items-empty__pick-meta{
  font-family:var(--pp-mono);font-size:.56rem;font-weight:400;letter-spacing:.14em;
  text-transform:uppercase;color:var(--pp-faint);margin-top:3px;display:block;
}
body.checkout-light-exception .order-items-empty__pick-action{
  margin-left:auto;flex:0 0 auto;
  font-family:var(--pp-mono);font-size:.62rem;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:var(--pp-accent-bright);white-space:nowrap;
}
body.checkout-light-exception .order-items-empty__browse,
body.checkout-light-exception .order-items-empty__wa{
  font-family:var(--pp-mono);font-size:.64rem;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;border-radius:999px;
}
body.checkout-light-exception .order-items-add{
  display:flex;align-items:center;gap:10px;margin-top:12px;padding:13px 16px;
  border:1px dashed rgba(219,38,108,.4);border-radius:12px;
  font-family:var(--pp-mono);font-size:.64rem;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:var(--pp-accent-bright);text-decoration:none;
  transition:border-color var(--pp-d-2) var(--pp-ease-out),background var(--pp-d-2) var(--pp-ease-out);
}
@media (hover:hover){
  body.checkout-light-exception .order-items-add:hover{border-color:rgba(219,38,108,.7);background:rgba(219,38,108,.07);}
}

/* ── Fields: mono label voice + valid/invalid instrument states ─────────── */
body.checkout-light-exception .field label{
  display:flex;align-items:center;gap:8px;
  font-family:var(--pp-mono)!important;font-weight:400!important;font-size:.62rem!important;
  letter-spacing:.14em!important;text-transform:uppercase!important;
  margin-bottom:8px;
}
body.checkout-light-exception .field .field-optional,
body.checkout-light-exception .field .field-sub-label{
  font-family:var(--pp-mono)!important;font-size:.58rem!important;letter-spacing:.08em!important;
  text-transform:none!important;font-weight:400!important;
}
body.checkout-light-exception .field-hint{font-size:11.5px;line-height:1.5;color:rgba(244,241,242,.56);font-weight:300;}
body.checkout-light-exception .field-error{font-size:12px;color:var(--danger,#ff8e8e);font-weight:300;}
/* valid: green hairline + ✓ stamp on the label (order-express toggles
   .is-valid on the INPUT; :has() bridges to the label — non-supporting
   browsers simply skip the stamp, the border still reads) */
body.checkout-light-exception .field input.is-valid,
body.checkout-light-exception .field select.is-valid{border-color:rgba(0,230,118,.4)!important;}
body.checkout-light-exception .field:has(input.is-valid) label::after,
body.checkout-light-exception .field:has(select.is-valid) label::after{
  content:"";width:13px;height:13px;flex:0 0 auto;margin-left:auto;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 13 13'%3E%3Ccircle cx='6.5' cy='6.5' r='6' fill='rgba(0,230,118,.14)'/%3E%3Cpath d='M3.8 6.8l1.8 1.8 3.6-4' fill='none' stroke='%2300e676' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
  animation:ppStampIn var(--pp-d-3) var(--pp-ease-out);
}
/* invalid: red ring + one x-nudge (class re-add replays it) */
body.checkout-light-exception .field input.is-invalid,
body.checkout-light-exception .field select.is-invalid{
  border-color:rgba(255,142,142,.55)!important;
  box-shadow:0 0 0 3px rgba(255,99,99,.12),inset 0 1px 0 rgba(255,255,255,.05)!important;
  animation:ppNudge var(--pp-d-3) var(--pp-ease-out);
}

/* ── Emirate quick pills → compact filter-pill voice (44px kept) ────────── */
body.checkout-light-exception .emirate-quick button{
  border-radius:999px!important;
  font-family:var(--pp-mono)!important;font-weight:400!important;font-size:.64rem!important;
  letter-spacing:.13em!important;text-transform:uppercase!important;
  transition:color var(--pp-d-2) var(--pp-ease-out),border-color var(--pp-d-2) var(--pp-ease-out),background var(--pp-d-2) var(--pp-ease-out),transform var(--pp-d-1) var(--pp-ease-out);
}
body.checkout-light-exception .emirate-quick button:active{transform:translateY(1px);}
body.checkout-light-exception .emirate-quick button.is-active,
body.checkout-light-exception .emirate-quick button[aria-pressed="true"]{font-weight:500!important;}

/* ── Pin location → mono voice, dashed pink pill kept ───────────────────── */
body.checkout-light-exception .location-pin__btn{
  border-radius:999px!important;
  font-family:var(--pp-mono)!important;font-weight:500!important;font-size:.62rem!important;
  letter-spacing:.12em!important;text-transform:uppercase!important;
}
body.checkout-light-exception .location-pin__copy{font-size:12px;color:var(--pp-faint);}
body.checkout-light-exception .location-pin__or{
  font-family:var(--pp-mono);font-size:.6rem;font-weight:400;letter-spacing:.14em;
  text-transform:uppercase;color:var(--pp-faint);
}

/* ── Delivery estimate → save-green chip + M10 ambient dot ──────────────── */
body.checkout-light-exception .delivery-estimate{
  display:flex;align-items:center;gap:10px;margin-top:16px;
  font-family:var(--pp-mono);font-size:11.5px;font-weight:400;letter-spacing:.02em;color:var(--pp-dim);
  padding:11px 14px;border:1px solid rgba(0,230,118,.22);border-radius:10px;
  background:rgba(0,230,118,.05);
  animation:ppItemIn var(--pp-d-3) var(--pp-ease-out);
}
body.checkout-light-exception .delivery-estimate[hidden]{display:none;}
body.checkout-light-exception .delivery-estimate__dot{
  width:7px;height:7px;border-radius:50%;background:var(--pp-save);flex:0 0 auto;
  animation:ppDotPulse 2.6s var(--pp-ease-io) infinite;
}

/* ── Promo: calm surface + green applied stamp (glow-pulse retired, S4) ─── */
body.checkout-light-exception .promo-disclosure{border-radius:12px;overflow:clip;}
body.checkout-light-exception .promo-disclosure__summary{
  font-family:var(--pp-mono);font-weight:500;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;
}
body.checkout-light-exception .promo-disclosure__chevron{
  font-family:var(--pp-mono);font-size:14px;line-height:1;
  transition:transform var(--pp-d-2) var(--pp-ease-out);
}
body.checkout-light-exception .promo-disclosure[open] .promo-disclosure__chevron{transform:rotate(45deg);}
body.checkout-light-exception #promo-input{
  font-family:var(--pp-mono)!important;letter-spacing:.06em!important;text-transform:uppercase;
}
body.checkout-light-exception #promo-input:disabled{opacity:.7;border-color:rgba(0,230,118,.35)!important;}
body.checkout-light-exception .promo-apply{
  border-radius:999px!important;padding:0 20px!important;min-height:42px;
  font-family:var(--pp-mono)!important;font-weight:500!important;font-size:.66rem!important;
  letter-spacing:.14em!important;text-transform:uppercase!important;
  transition:transform var(--pp-d-2) var(--pp-ease-out),box-shadow var(--pp-d-2) var(--pp-ease-out),background var(--pp-d-2) var(--pp-ease-out);
}
@media (hover:hover){
  body.checkout-light-exception .promo-apply:not(.is-applied):hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(219,38,108,.3);}
}
body.checkout-light-exception .promo-apply:active{transform:translateY(1px);box-shadow:none;}
body.checkout-light-exception .promo-apply.is-applied{
  background:rgba(0,230,118,.14)!important;color:var(--pp-save)!important;
  box-shadow:none!important;cursor:default;
  animation:ppStampIn var(--pp-d-3) var(--pp-ease-out);
}
body.checkout-light-exception .promo-msg{font-size:12.5px;font-weight:300;}
body.checkout-light-exception .promo-meta{font-size:11px;color:var(--pp-faint);font-weight:300;}

/* ── Payment tiles: ✓ stamp + glyph lift on select ──────────────────────── */
body.checkout-light-exception .payment-option{position:relative;}
body.checkout-light-exception .payment-option strong{
  font-family:var(--pp-mono);font-weight:500;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
}
body.checkout-light-exception .payment-option .payment-option__glyph{
  transition:color var(--pp-d-2) var(--pp-ease-out),transform var(--pp-d-3) var(--pp-ease-out);
}
body.checkout-light-exception .payment-option.is-selected .payment-option__glyph{transform:translateY(-1px);}
body.checkout-light-exception .payment-option.is-selected::after{
  content:"";position:absolute;top:8px;right:8px;width:14px;height:14px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle cx='7' cy='7' r='6.4' fill='%23db266c'/%3E%3Cpath d='M4.2 7.3l1.9 1.9 3.7-4.2' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
  animation:ppStampIn var(--pp-d-3) var(--pp-ease-out);
}
body.checkout-light-exception .payment-option.is-disabled::after,
body.checkout-light-exception .payment-option[disabled]::after{content:none;}
body.checkout-light-exception .payment-detail{
  border-left:2px solid var(--pp-accent);border-radius:10px;
}
body.checkout-light-exception .payment-detail.is-visible{animation:ppItemIn var(--pp-d-3) var(--pp-ease-out);}
body.checkout-light-exception .payment-detail p,
body.checkout-light-exception .payment-detail .payment-usdt-note{font-size:13.5px;font-weight:300;line-height:1.6;}
body.checkout-light-exception #cod-payment-note{font-size:11.5px;color:var(--pp-faint);}

/* ── Cold-chain ack: canon eyebrow weight (block above stays the base) ──── */
body.checkout-light-exception .delivery-ack__title{
  font-weight:500;font-size:.64rem;letter-spacing:.16em;
}

/* ── Submit: canon pill CTA (supersedes the 12px block above) ───────────── */
body.checkout-light-exception .btn--submit{
  border-radius:999px!important;min-height:56px;
  font-family:var(--pp-mono)!important;font-size:.82rem!important;font-weight:500!important;
  letter-spacing:.13em!important;text-transform:uppercase!important;
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  box-shadow:0 10px 30px rgba(219,38,108,.28)!important;
  font-variant-numeric:tabular-nums;
  transition:transform var(--pp-d-2) var(--pp-ease-out),box-shadow var(--pp-d-2) var(--pp-ease-out),background var(--pp-d-2) var(--pp-ease-out),color var(--pp-d-2) var(--pp-ease-out);
}
@media (hover:hover){
  body.checkout-light-exception .btn--submit:not(:disabled):not(.btn--needs-details):hover{
    transform:translateY(-1px);box-shadow:0 14px 38px rgba(219,38,108,.4)!important;
  }
}
body.checkout-light-exception .btn--submit:not(:disabled):active{transform:translateY(1px);box-shadow:0 6px 18px rgba(219,38,108,.25)!important;}
body.checkout-light-exception .btn--submit:disabled,
body.checkout-light-exception .btn--submit[disabled]{background:#2a2528!important;color:rgba(255,255,255,.55)!important;}
/* cart valid but details missing → dimmed outline tier (label is JS-owned) */
body.checkout-light-exception .btn--submit.btn--needs-details{
  background:rgba(219,38,108,.1)!important;color:var(--pp-accent-bright)!important;
  border:1px solid rgba(219,38,108,.5)!important;box-shadow:none!important;
}
body.checkout-light-exception #submit-total{
  opacity:.92;padding-left:12px;border-left:1px solid rgba(255,255,255,.32);
  font-variant-numeric:tabular-nums;
}
body.checkout-light-exception .order-submit-note{
  display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--pp-faint);font-weight:300;
}
body.checkout-light-exception .order-submit-note::before{
  content:"";width:5px;height:5px;border-radius:50%;background:#22c05e;flex:0 0 auto;
}

/* ── WhatsApp inline fallback → mono pill ───────────────────────────────── */
body.checkout-light-exception .wa-inline-fallback{font-size:13px;color:var(--pp-faint);font-weight:300;}
body.checkout-light-exception .wa-inline-fallback__btn{
  border-radius:999px!important;
  font-family:var(--pp-mono)!important;font-weight:500!important;font-size:.62rem!important;
  letter-spacing:.13em!important;text-transform:uppercase!important;
  border:1px solid rgba(34,192,94,.44)!important;background:rgba(34,192,94,.08)!important;
  color:#dff7e8!important;padding:10px 18px!important;
  transition:background var(--pp-d-2) var(--pp-ease-out),transform var(--pp-d-2) var(--pp-ease-out),border-color var(--pp-d-2) var(--pp-ease-out);
}
@media (hover:hover){
  body.checkout-light-exception .wa-inline-fallback__btn:hover{
    background:rgba(34,192,94,.16)!important;border-color:rgba(34,192,94,.7)!important;transform:translateY(-1px);
  }
}
body.checkout-light-exception .wa-inline-fallback__btn:active{transform:translateY(1px);}

/* ── Summary rail: ledger card voice ────────────────────────────────────── */
body.checkout-light-exception .summary-card{border-radius:16px;}
body.checkout-light-exception .summary-card__label{
  font-family:var(--pp-mono);font-weight:500;font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--pp-accent-bright);
  display:flex;align-items:center;gap:12px;
}
body.checkout-light-exception .summary-card__label::before{
  content:"";width:26px;height:1px;background:var(--pp-accent);flex:0 0 auto;
}
body.checkout-light-exception .summary-card__count{
  font-family:var(--pp-mono);font-size:.6rem;font-weight:400;letter-spacing:.12em;
  text-transform:uppercase;color:var(--pp-dim);
  border:1px solid var(--pp-hair-strong);border-radius:999px;padding:4px 10px;
  font-variant-numeric:tabular-nums;
}
body.checkout-light-exception .summary-line{font-size:13px;font-weight:300;}
body.checkout-light-exception .summary-line strong{
  font-family:var(--pp-mono);font-weight:400;font-size:13px;font-variant-numeric:tabular-nums;
}
body.checkout-light-exception .summary-line__free{color:var(--pp-save)!important;}
body.checkout-light-exception #summary-promo-row span,
body.checkout-light-exception #summary-promo-row strong{color:var(--pp-save);}
body.checkout-light-exception #summary-promo-row:not([hidden]){animation:ppItemIn var(--pp-d-3) var(--pp-ease-out);}
body.checkout-light-exception .summary-total-block__label{
  font-family:var(--pp-mono);font-weight:500;font-size:.64rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--pp-dim);
}
body.checkout-light-exception #summary-total{
  font-family:var(--pp-mono);font-weight:500;font-size:24px;font-variant-numeric:tabular-nums;
}
body.checkout-light-exception .summary-trust{list-style:none;margin:0;padding-left:0;}
body.checkout-light-exception .summary-trust li{
  display:flex;align-items:center;gap:10px;font-size:12px;color:var(--pp-dim);font-weight:300;
}
body.checkout-light-exception .summary-trust li::before{
  content:"";width:13px;height:13px;flex:0 0 auto;opacity:.8;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 13 13'%3E%3Cpath d='M3.4 6.9l2 2 4.2-4.8' fill='none' stroke='%23ff5a9e' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
}
body.checkout-light-exception .summary-wa,
body.checkout-light-exception .summary-wa:link,
body.checkout-light-exception .summary-wa:visited{
  font-size:.68rem!important;font-weight:500!important;letter-spacing:.12em!important;
}
body.checkout-light-exception .summary-add-product__summary{
  font-family:var(--pp-mono);font-size:.62rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
}
body.checkout-light-exception .summary-add-product__browse{
  font-family:var(--pp-mono);font-size:.6rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;
}

/* ── Mobile running total → hairline ledger card ────────────────────────── */
body.checkout-light-exception .mobile-total-bar{border-radius:14px;}
body.checkout-light-exception .mobile-total-bar__row{font-size:13px;font-weight:300;}
body.checkout-light-exception .mobile-total-bar__value{
  font-family:var(--pp-mono);font-weight:400;font-variant-numeric:tabular-nums;
}
body.checkout-light-exception .mobile-total-bar__value--free{color:var(--pp-save)!important;}
body.checkout-light-exception .mobile-total-bar__row--total .mobile-total-bar__value--total{
  font-weight:500;font-size:17px;
}

/* ── Calculator prefill: mono eyebrow tune ──────────────────────────────── */
body.checkout-light-exception .calculator-prefill-label{
  font-family:var(--pp-mono);font-size:.6rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
}

/* ── Reduced motion: kill every animation this pass adds ────────────────── */
@media (prefers-reduced-motion:reduce){
  .express-form .step-panel,
  .summary-rail .summary-card,
  .panel-head h1 .hl-i,
  body.checkout-light-exception .order-item,
  body.checkout-light-exception .delivery-estimate,
  body.checkout-light-exception .delivery-estimate__dot,
  body.checkout-light-exception .payment-detail.is-visible,
  body.checkout-light-exception .payment-option.is-selected::after,
  body.checkout-light-exception .promo-apply.is-applied,
  body.checkout-light-exception .field label::after,
  body.checkout-light-exception .field input.is-invalid,
  body.checkout-light-exception .field select.is-invalid,
  body.checkout-light-exception #summary-promo-row:not([hidden]){animation:none!important;}
  .panel-head h1 .hl-i{transform:none;}
  body.checkout-light-exception .btn--submit,
  body.checkout-light-exception .promo-apply,
  body.checkout-light-exception .order-items-empty__pick,
  body.checkout-light-exception .wa-inline-fallback__btn{transition-property:background,color,border-color,box-shadow;}
}

/* ── Checkout UX pass (2026-07-06): pin disclosure, error-banner WhatsApp
      fallback, consent attention pulse, sticky-bar progress state ───────── */

/* GPS-pin panel is a collapsed <details>; summary replaces the old label. */
details.location-pin > summary::-webkit-details-marker{display:none;}
.location-pin__toggle{
  display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;
  font-family:var(--mono,"DM Mono",monospace);font-size:12px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;color:var(--text,#f8f8f8);
  padding:4px 0;min-height:44px;
}
.location-pin__toggle-icon{display:inline-flex;color:var(--pink-text,#ff5a9e);}
.location-pin__toggle .field-optional{text-transform:none;letter-spacing:.01em;font-weight:400;}
.location-pin__toggle-chevron{
  margin-left:auto;color:var(--pink-text,#ff5a9e);font-size:17px;line-height:1;
  transition:transform .2s ease;
}
details.location-pin[open] .location-pin__toggle-chevron{transform:rotate(45deg);}
details.location-pin[open] > .location-pin__toggle{margin-bottom:6px;}

/* Dead-end error banners get a live WhatsApp path to finish the same order. */
.form-error-banner__wa{
  display:inline-flex;align-items:center;gap:8px;margin-top:12px;
  padding:11px 20px;border-radius:999px;border:1px solid rgba(37,211,102,.5);
  background:var(--green,#107f38);color:#fff;text-decoration:none;
  font-family:var(--mono,"DM Mono",monospace);font-size:11.5px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;
}
.form-error-banner__wa:hover{filter:brightness(1.12);}

/* Pulse the research-terms card when it is what blocks submission. */
@keyframes ppConsentPulse{
  0%{box-shadow:0 0 0 0 rgba(219,38,108,.4);}
  100%{box-shadow:0 0 0 14px rgba(219,38,108,0);}
}
.consent-card.consent-attention{
  border-color:var(--accent,#db266c)!important;
  animation:ppConsentPulse .9s ease-out 2;
}

/* Sticky-bar label doubles as a progress cue; green when ready to confirm. */
#sticky-mobile-checkout .smc-name.is-ready{color:var(--green-text,#8ad7a7);}

@media (prefers-reduced-motion:reduce){
  .consent-card.consent-attention{animation:none;}
  .location-pin__toggle-chevron{transition:none;}
}
