/* PreppinPeppers pay panel. Theme tokens from pp-woo-journey.css (--ppj-*), fallbacks for pages that don't load it.
   Card-checkout look (10-12, .tmp/checkout-presentation-research-2026-10-12.md): order summary card + "Payment" column
   on desktop (>= 900px), collapsed "Show order summary · $X" bar on phones; methods as radio rows; one primary button.
   PP blue, ink, warm line, PP fonts. No third-party look. Works from 320px with no horizontal scroll. */
.pp-pay,.pp-howto-dlg{--b:var(--ppj-blue,#1e4fd8);--bh:var(--ppj-blue-hi,#1a43b8);--bs:var(--ppj-blue-soft,#e8eefc);--ink:var(--ppj-ink,#141414);
  --line:var(--ppj-line,#e4e2dd);--mut:rgb(20 20 20 / .64);--ok:#0d6b41;--okb:#e5f3eb;--wr:#7a4d00;--wrb:#fcf1d8;--r:var(--ppj-radius,12px);
  --soft:#f8f7f4;--panel:#fbfaf8;
  font-family:var(--pp-font,var(--font-body--family,"Red Hat Display",system-ui,-apple-system,sans-serif));color:var(--ink)}
.pp-pay{background:#fff;border:1px solid var(--line);border-radius:18px;margin:0 0 28px;max-width:1080px;box-sizing:border-box;overflow:clip}
.pp-pay *,.pp-pay *::before,.pp-pay *::after{box-sizing:border-box}
.pp-pay .pp-pay__grid{display:grid;grid-template-columns:minmax(0,1fr)}
.pp-pay .pp-pay__col{padding:20px 16px 22px;min-width:0}
.pp-pay .pp-pay__head{display:flex;align-items:center;justify-content:space-between;gap:6px 12px;flex-wrap:wrap;margin:0 0 14px}
.pp-pay .pp-pay__h{margin:0;font-size:clamp(21px,4.6vw,26px);line-height:1.2;letter-spacing:-.015em}
.pp-pay .pp-pay__trust{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;line-height:1.3;color:var(--mut)}
.pp-pay .pp-pay__trust svg{flex:none;color:var(--ok)}
.pp-pay .pp-pay__safe{margin:18px 0 0;font-size:12.5px;line-height:1.5;color:var(--mut)}

/* ---------- order summary ---------- */
.pp-sum{background:var(--soft);border-bottom:1px solid var(--line);min-width:0}
.pp-pay .pp-sum__toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:56px;padding:12px 16px;border:0;background:none;color:var(--b);font:inherit;font-size:15px;cursor:pointer;text-align:left}
.pp-pay .pp-sum__toggle:focus-visible{outline:2px solid var(--b);outline-offset:-3px;border-radius:12px}
.pp-pay .pp-sum__tl{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.pp-pay .pp-sum__chev{transition:transform .18s ease}
.pp-pay .pp-sum.is-open .pp-sum__chev{transform:rotate(180deg)}
.pp-pay .pp-sum__tt{font-size:18px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.pp-pay .pp-sum__body{padding:4px 16px 18px}
.pp-pay .pp-sum:not(.is-open) .pp-sum__body{display:none}
.pp-pay .pp-sum__h{margin:0 0 14px;font-size:16px;line-height:1.3;font-weight:700;letter-spacing:0}
.pp-pay .pp-sum__h small{font-size:13px;font-weight:500;color:var(--mut)}
.pp-pay .pp-sum__items{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:14px}
.pp-pay .pp-sum__item{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:14px;font-size:14.5px;line-height:1.35}
.pp-pay .pp-sum__thumb{position:relative;width:56px;height:56px;border:1px solid var(--line);border-radius:10px;background:#fff}
.pp-pay .pp-sum__thumb img{display:block;width:100%;height:100%;object-fit:cover;border-radius:9px}
.pp-pay .pp-sum__ph{display:grid;place-items:center;width:100%;height:100%;border-radius:9px;background:var(--bs);color:var(--b);font-weight:700;font-size:20px}
.pp-pay .pp-sum__qty{position:absolute;top:-8px;right:-8px;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:rgb(20 20 20 / .74);color:#fff;font-size:11.5px;font-weight:700;line-height:21px;text-align:center}
.pp-pay .pp-sum__name{display:grid;gap:2px;font-weight:600;min-width:0;overflow-wrap:anywhere}
.pp-pay .pp-sum__meta{font-size:12.5px;font-weight:400;color:var(--mut)}
.pp-pay .pp-sum__price{font-variant-numeric:tabular-nums;white-space:nowrap}
.pp-pay .pp-sum__rows{display:grid;gap:8px;margin:0;padding:14px 0 0;border-top:1px solid var(--line)}
.pp-pay .pp-sum__row{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:1.4}
.pp-pay .pp-sum__row dt{color:var(--mut)}
.pp-pay .pp-sum__row dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.pp-pay .pp-sum__row.is-disc dd{color:var(--ok);font-weight:600}
.pp-pay .pp-sum__total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--line);font-size:17px;font-weight:700}
.pp-pay .pp-pay__amt{margin:0;font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.pp-pay .pp-pay__amt span{font-size:12.5px;font-weight:500;color:var(--mut);letter-spacing:0}
.pp-pay .pp-sum__ref{margin:12px 0 0;font-size:12.5px;line-height:1.45;color:var(--mut)}
.pp-pay .pp-sum__ref strong{color:var(--ink);font-weight:600}

/* ---------- status (card-payment-like progress) ---------- */
.pp-pay__status{margin:0 0 16px}
.pp-pay .pp-pay__status:empty{display:none}
.pp-pay .pp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;list-style:none;margin:0 0 10px;padding:0}
.pp-pay .pp-steps__i{position:relative;display:flex;gap:6px;align-items:center;padding-top:12px;font-size:12px;line-height:1.3;color:var(--mut)}
.pp-pay .pp-steps__i::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:4px;background:var(--line)}
.pp-pay .pp-steps__i.is-done::before{background:var(--b)}
.pp-pay .pp-steps__i.is-now{color:var(--ink);font-weight:600}
.pp-pay .pp-steps__i.is-now::before{background:var(--b);animation:pp-pulse 1.6s ease-in-out infinite}
.pp-pay .pp-steps__dot{flex:none;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#f1efeb;font-size:11.5px;font-weight:700}
.pp-pay .pp-steps__i.is-done .pp-steps__dot,.pp-pay .pp-steps__i.is-now .pp-steps__dot{background:var(--b);color:#fff}
.pp-pay[data-state=paid] .pp-steps__i::before{background:var(--ok);animation:none}
.pp-pay[data-state=paid] .pp-steps__dot{background:var(--ok);color:#fff}
@keyframes pp-pulse{50%{opacity:.45}}
@keyframes pp-spin{to{transform:rotate(360deg)}}
.pp-pay .pp-msg{display:flex;gap:10px;align-items:flex-start;margin:0 0 10px;padding:12px 14px;border-radius:var(--r);background:var(--soft);font-size:14.5px;line-height:1.5}
.pp-pay .pp-msg.is-live{background:var(--bs)}
.pp-pay .pp-msg.is-live::before{content:"";flex:none;width:16px;height:16px;margin-top:3px;border:2px solid var(--b);border-right-color:transparent;border-radius:50%;animation:pp-spin .9s linear infinite}
.pp-pay .pp-msg.is-ok{background:var(--okb);color:var(--ok);font-weight:600}
.pp-pay .pp-msg.is-ok::before{content:"✓";flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--ok);color:#fff;font-size:12px}
.pp-pay .pp-msg.is-warn{background:var(--wrb);color:var(--wr)}
@media (prefers-reduced-motion:reduce){.pp-pay .pp-steps__i.is-now::before,.pp-pay .pp-msg.is-live::before{animation:none}}

/* ---------- payment methods: radio rows (one bordered list, the selected row expands inline) ---------- */
.pp-q{margin:4px 0 8px;font-size:15px;font-weight:700}
.pp-pay .pp-meths{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden;margin:0 0 12px}
.pp-pay .pp-meth-item+.pp-meth-item{border-top:1px solid var(--line)}
.pp-pay .pp-meth{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-height:56px;padding:14px 16px;cursor:pointer;margin:0}
.pp-pay .pp-meth-item.is-on .pp-meth{background:var(--bs);box-shadow:inset 0 0 0 1px var(--b)}
.pp-pay .pp-meths>.pp-meth-item:first-child .pp-meth{border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0}
.pp-pay .pp-meth-item.is-only .pp-meth{cursor:default}
.pp-pay .pp-meth__in{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.pp-pay .pp-meth:has(.pp-meth__in:focus-visible){outline:2px solid var(--b);outline-offset:-3px}
.pp-pay .pp-meth__dot{flex:none;width:18px;height:18px;border:1.5px solid #a9a59c;border-radius:50%;background:#fff}
.pp-pay .pp-meth.is-on .pp-meth__dot{border:5.5px solid var(--b)}
.pp-pay .pp-meth__name{flex:1 1 150px;font-size:15.5px;font-weight:600;line-height:1.3}
.pp-pay .pp-meth__tag{margin-left:30px;padding:3px 9px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12px;line-height:1.4;color:var(--mut);white-space:nowrap}
@media (min-width:480px){.pp-pay .pp-meth__tag{margin-left:0}}
.pp-pay .pp-meth__body{padding:14px 16px 0;background:var(--panel);border-top:1px solid var(--line);display:grid;gap:10px}
.pp-pay .pp-meth-item .pp-detail{padding:14px 16px 16px;background:var(--panel);border-top:1px solid var(--line)}
.pp-pay .pp-meth__body+.pp-detail{border-top:0;padding-top:4px}
.pp-pay .pp-detail{display:grid;gap:10px}
.pp-pay .pp-detail:empty{display:none}
.pp-pay .pp-meths__sub{margin:-2px 0 10px}

/* ---------- inside the selected method ---------- */
.pp-rail{display:grid;gap:12px}
.pp-pay .pp-tip{margin:0;font-size:14px;line-height:1.5;color:var(--ink)}
.pp-pay .pp-fine{margin:0;font-size:13px;line-height:1.5;color:var(--mut)}
.pp-pay .pp-note{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:13.5px;line-height:1.5;color:rgb(20 20 20 / .78)}
.pp-pay .pp-note__i{flex:none;display:grid;place-items:center;width:18px;height:18px;margin-top:1px;border:1.5px solid currentColor;border-radius:50%;font:italic 700 11px/1 Georgia,serif;color:var(--mut)}
.pp-pay .pp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 18px;border:1px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;transition:transform var(--pp-press,140ms) ease,background-color .15s ease}
.pp-pay .pp-btn:active{transform:scale(.97)}
.pp-pay .pp-btn:disabled{opacity:.55;cursor:default}
.pp-pay .pp-btn:focus-visible,.pp-pay .pp-textlink:focus-visible,.pp-pay .pp-link:focus-visible,.pp-pay .pp-radio:focus-visible,.pp-pay .pp-fold>summary:focus-visible{outline:2px solid var(--b);outline-offset:2px}
.pp-pay .pp-btn--primary{background:var(--b);border-color:var(--b);color:#fff}
.pp-pay .pp-btn--primary:hover{background:var(--bh);border-color:var(--bh);color:#fff}
.pp-pay .pp-btn--copy{min-width:104px}
/* link-buttons (Open app / Pay in app): the theme's link colour rules out-rank class selectors, so pin them by the panel id */
#pp-pay a.pp-btn,#pp-pay a.pp-btn:visited{color:var(--ink);text-decoration:none}
#pp-pay a.pp-btn--primary,#pp-pay a.pp-btn--primary:visited,#pp-pay a.pp-btn--primary:hover,#pp-pay a.pp-btn--primary:focus{color:#fff}
.pp-pay .pp-btn.is-done{background:var(--okb);border-color:var(--ok);color:var(--ok)}
.pp-pay .pp-primary-wrap{margin:2px 0 0}
.pp-pay .pp-primary{width:100%;min-height:54px;font-size:17px;font-weight:700;letter-spacing:.005em}
.pp-pay .pp-primary__cap{margin:8px 0 0;font-size:12.5px;line-height:1.45;color:var(--mut);text-align:center}
@media (max-width:749px){.pp-pay .pp-primary-wrap{position:sticky;bottom:0;z-index:5;margin:2px -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -6px 16px rgb(20 20 20 / .07)}
  .pp-pay .pp-primary__cap{margin-top:6px}}
.pp-pay .pp-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"k b" "v b";align-items:center;gap:2px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.pp-pay .pp-copy__k{grid-area:k;font-size:12px;font-weight:600;color:var(--mut)}
.pp-pay .pp-copy__vv{grid-area:v;display:grid;gap:2px;min-width:0}
.pp-pay .pp-copy__v{font-size:17px;font-variant-numeric:tabular-nums;min-width:0;overflow-wrap:anywhere}
.pp-pay .pp-copy__v.is-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all;line-height:1.4}
.pp-pay .pp-copy__sub{font-size:12.5px;line-height:1.4;color:var(--mut)}
.pp-pay .pp-copy .pp-btn{grid-area:b;min-height:44px}
.pp-pay .pp-send{display:grid;gap:8px;margin:0 0 6px}
.pp-pay .pp-send__h{margin:0 0 2px;font-size:14.5px;line-height:1.35;font-weight:700;letter-spacing:0;font-family:inherit}
.pp-pay .pp-qr{display:flex;align-items:center;gap:14px;margin:0;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.pp-pay .pp-qr__img{flex:none;width:132px;height:132px;background:#fff}
.pp-pay .pp-qr__img svg{width:100%;height:100%;display:block}
.pp-pay .pp-qr figcaption{display:grid;gap:3px;font-size:13.5px;line-height:1.45;color:var(--mut)}
.pp-pay .pp-qr figcaption strong{font-size:14.5px;color:var(--ink)}
.pp-pay .pp-qr__btn{flex:none;display:block;padding:0;margin:0;border:0;background:none;cursor:copy;border-radius:6px;-webkit-tap-highlight-color:transparent}
.pp-pay .pp-qr__btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.pp-pay .pp-qr__tap{display:block;font-size:12.5px;color:var(--mut)}
.pp-pay .pp-qr__tap.is-done{color:var(--ok);font-weight:600}
.pp-pay .pp-expiry{margin:8px 0 0;font-size:14px;font-variant-numeric:tabular-nums;color:var(--wr)}
.pp-pay .pp-payee{margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--ink)}
.pp-pay .pp-next{margin:0;padding-left:20px;font-size:14px;line-height:1.55}
.pp-pay .pp-statement{font-size:13px;color:var(--mut)}
.pp-pay .pp-loading{display:flex;gap:10px;align-items:center;margin:0;color:var(--mut);font-size:14px}
.pp-pay .pp-loading::before{content:"";width:14px;height:14px;border:2px solid var(--b);border-right-color:transparent;border-radius:50%;animation:pp-spin .9s linear infinite}
.pp-pay .pp-card__note{display:grid;gap:8px}
.pp-pay .pp-card__note:empty{display:none}

/* folds: manual details, how-to, text me */
.pp-fold{margin:0;border-top:1px solid var(--line)}
.pp-pay .pp-fold>summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14.5px;font-weight:600;color:var(--b);list-style:none}
.pp-pay .pp-fold>summary::-webkit-details-marker{display:none}
.pp-pay .pp-fold>summary::before{content:"";flex:none;width:7px;height:7px;margin:0 4px 0 2px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease}
.pp-pay .pp-fold[open]>summary::before{transform:rotate(45deg)}
.pp-pay .pp-fold[open]>summary{margin-bottom:8px}
.pp-pay .pp-manual>summary{color:var(--ink)}
.pp-pay .pp-sms__row{display:flex;gap:8px}
.pp-pay .pp-sms__in{flex:1;min-width:0;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);font:inherit;font-size:16px;background:#fff}
.pp-pay .pp-sms__consent{display:flex;gap:8px;align-items:flex-start;margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--mut)}
.pp-pay .pp-sms__consent input{margin-top:3px;width:18px;height:18px;flex:none}
.pp-pay .pp-howto-box{display:grid;gap:10px;padding-bottom:10px}
.pp-pay .pp-howto__stage{display:grid;gap:8px}
.pp-pay .pp-howto__img{width:100%;max-width:360px;max-height:62dvh;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.pp-pay .pp-howto__ph{display:grid;gap:6px;place-content:center;width:100%;max-width:300px;aspect-ratio:9/16;max-height:48dvh;border:2px dashed var(--b);border-radius:12px;background:var(--bs);text-align:center;font-size:14px}
.pp-pay .pp-howto__cap{margin:0;font-size:15px;line-height:1.5}
.pp-pay .pp-howto__nav{display:flex;align-items:center;justify-content:space-between;gap:8px;max-width:360px}
.pp-pay .pp-howto__n{margin:0;font-size:13px;color:var(--mut)}

/* order-pay before the first choice: card row + crypto text link */
.pp-radio{display:grid;gap:3px;width:100%;min-height:64px;margin:0 0 10px;padding:14px 16px 14px 46px;position:relative;border:1px solid var(--b);box-shadow:0 0 0 1px var(--b);border-radius:var(--r);background:var(--bs);text-align:left;color:inherit;font:inherit;cursor:pointer}
.pp-pay .pp-radio::before{content:"";position:absolute;left:16px;top:18px;width:18px;height:18px;border-radius:50%;border:5px solid var(--b);background:#fff}
.pp-pay .pp-radio strong{font-size:16px}
.pp-pay .pp-radio small{font-size:13.5px;line-height:1.45;color:var(--mut)}
.pp-pay .pp-textlink,.pp-pay .pp-link{display:inline-block;padding:8px 0;border:0;background:none;color:var(--b);font:inherit;font-size:14.5px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}

/* how-to dialog (kept for older links) */
.pp-howto-dlg{position:fixed;inset:0;margin:auto;width:min(440px,calc(100vw - 24px));height:fit-content;max-height:calc(100dvh - 24px);overflow:auto;padding:0;border:0;border-radius:18px;background:#fff;box-sizing:border-box}
.pp-howto-dlg *{box-sizing:border-box}
.pp-howto-dlg::backdrop{background:rgb(20 20 20 / .55)}
.pp-howto-dlg__box{display:grid;gap:12px;padding:16px}
.pp-howto-dlg__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pp-howto-dlg__top h3{margin:0;font-size:18px}
.pp-howto-dlg__x{width:44px;height:44px;border:0;border-radius:50%;background:#f1efeb;font-size:18px;cursor:pointer}
.pp-howto-dlg__stage{display:grid;gap:10px}
.pp-howto-dlg__img{width:100%;max-height:58dvh;object-fit:contain;border-radius:12px;border:1px solid #e4e2dd;background:#fbfaf8}
.pp-howto-dlg__ph{display:grid;gap:6px;place-content:center;width:100%;margin:0 auto;aspect-ratio:9/16;max-height:52dvh;border:2px dashed #1e4fd8;border-radius:12px;background:#e8eefc;text-align:center;font-size:14px}
.pp-howto-dlg__cap{margin:0;font-size:15px;line-height:1.5}
.pp-howto-dlg__nav{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pp-howto-dlg__n{margin:0;font-size:13px;color:rgb(20 20 20 / .62)}

@media (max-width:420px){.pp-pay .pp-copy{grid-template-columns:minmax(0,1fr);grid-template-areas:"k" "v" "b"}.pp-pay .pp-btn--copy{width:100%}.pp-pay .pp-qr{flex-direction:column;align-items:flex-start}}

/* ---------- desktop: payment left, sticky summary right (Shopify / Stripe) ---------- */
@media (min-width:900px){
  .pp-pay .pp-pay__grid{grid-template-columns:minmax(0,1fr) minmax(300px,380px);grid-template-areas:"pay sum"}
  .pp-pay .pp-pay__col{grid-area:pay;padding:28px 32px 30px}
  .pp-pay .pp-sum{grid-area:sum;border-bottom:0;border-left:1px solid var(--line)}
  .pp-pay .pp-sum__toggle{display:none}
  .pp-pay .pp-sum:not(.is-open) .pp-sum__body,.pp-pay .pp-sum__body{display:block;position:sticky;top:24px;padding:28px 28px 30px}
  .pp-pay .pp-sum__h{font-size:17px}
}
/* the panel's summary replaces WooCommerce's own order-details table on the same page */
.woocommerce-order:has(#pp-pay) .woocommerce-order-details{display:none}

/* 10-12 fewer clicks: no folds in the pay flow. "Or text me this link" inline under the QR (desktop only); the values
   the QR / link cannot carry shown inline with tap-to-copy */
.pp-pay .pp-sms{display:grid;gap:8px;margin:0;padding:14px 0 0;border-top:1px solid var(--line)}
.pp-pay .pp-sms__h{display:grid;gap:2px;margin:0;font-size:13px;line-height:1.45;color:var(--mut)}
.pp-pay .pp-sms__h strong{font-size:15px;color:var(--ink)}
.pp-pay .pp-sms__send{min-width:112px}
.pp-pay .pp-sms__tap{font-size:12px;line-height:1.45}
.pp-pay .pp-sms__out:empty{display:none}
.pp-pay .pp-must{margin:0}
.pp-pay .pp-must .pp-send__h{font-size:13px;font-weight:600;color:var(--mut)}

/* 10-12 after-payment journey: "I've sent it", checking / still looking, review, the finished screen */
/* 10-12: "Already paid? We'll confirm automatically" is a small text link (the matcher confirms on its own) */
.pp-pay .pp-sentwrap{display:grid;gap:6px;justify-items:center}
.pp-pay .pp-sent.pp-link{width:auto;min-height:44px;padding:10px 4px;font-size:14px;font-weight:500;color:var(--mut);text-align:center}
.pp-pay .pp-sent.pp-link:hover{color:var(--b)}
.pp-pay .pp-other-app{display:block;margin:2px 0 0;font-size:14px;font-weight:500}
.pp-pay .pp-sentwrap .pp-fine{text-align:center}
.pp-pay .pp-still{display:grid;gap:6px;margin:0 0 10px;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--soft)}
.pp-pay .pp-still__h{margin:0;font-weight:700;font-size:1.05rem}
.pp-pay .pp-still__sub{margin:0;color:var(--mut)}
.pp-pay .pp-still__acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 0}
#pp-pay a.pp-still__contact{color:var(--ink);background:#fff;border:1px solid var(--line)}
@media (max-width:749px){.pp-pay .pp-still__acts>*{flex:1 1 100%;text-align:center}}
.pp-pay .pp-done{display:grid;gap:10px;justify-items:start;padding:22px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--okb)}
.pp-pay .pp-done__ic{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ok);color:#fff;font-size:22px;font-weight:700}
.pp-pay .pp-done__h{margin:0;font-size:22px;line-height:1.25;color:var(--ok)}
.pp-pay .pp-done__sub,.pp-pay .pp-done__mail{margin:0;font-size:15px;line-height:1.5}
.pp-pay .pp-done__next{width:100%;margin:6px 0 4px;padding:14px 0 0;border-top:1px solid rgb(13 107 65 / .2)}
.pp-pay .pp-done__next h4{margin:0 0 8px;font-size:15px;font-family:inherit;letter-spacing:0}
.pp-pay .pp-done__next ul{margin:0;padding-left:20px;display:grid;gap:6px;font-size:14.5px;line-height:1.5}
.pp-pay .pp-done__next a{color:var(--b);text-decoration:underline;text-underline-offset:3px}
.pp-pay .pp-done__shop{min-width:220px}
.pp-pay.is-done .pp-pay__safe{display:none}
@media (max-width:749px){.pp-pay .pp-done__shop{width:100%}}

/* 10-12 copy pass: visually hidden, still read by screen readers */
.pp-pay .pp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* 10-12 (Oliver: "why so much empty neg space on right"): the order-received / order-pay page is one centred column -
   thank-you line, order meta row, this card and the address blocks share the card's width, centred in the page gutters */
.woocommerce:has(#pp-pay),body.woocommerce-order-received .woocommerce-order{width:100%;max-width:1080px;margin-left:auto;margin-right:auto;box-sizing:border-box}
.woocommerce:has(#pp-pay) .woocommerce-order{max-width:none}
.pp-pay{margin-left:auto;margin-right:auto}
/* one-page checkout (10-12): the panel mounted in place of the block checkout */
.pp-inline{margin:0 auto;padding:8px 0 24px;scroll-margin-top:96px}
.pp-inline .pp-pay{margin-top:0}
/* 10-12 speed: the shell shown in the Place-order click (skeletons until the real panel swaps in) */
.pp-pay--shell .pp-shell__sum{background:var(--soft);border-bottom:1px solid var(--line);min-width:0}
.pp-pay--shell .pp-shell__bar{display:flex;justify-content:space-between;align-items:center;margin:0;padding:14px 16px;font-weight:600}
.pp-pay--shell .pp-shell__bar strong{font-size:18px}
.pp-pay--shell .pp-shell__copy{display:none}
.pp-pay--shell .pp-shell__sum .wc-block-components-panel__button,.pp-pay--shell .pp-shell__sum .wc-block-components-totals-coupon{display:none}
@media (min-width:900px){   /* the same two columns as the panel: payment left, summary right */
  .pp-pay--shell .pp-shell__sum{grid-area:sum;border-bottom:0;border-left:1px solid var(--line);padding:28px 28px 30px}
  .pp-pay--shell .pp-shell__bar{display:none}
  .pp-pay--shell .pp-shell__copy{display:block}
}
.pp-pay .pp-shell__skel{display:grid;gap:10px;justify-items:start;margin-top:12px}
.pp-pay .pp-skel{display:block;border-radius:12px;background:linear-gradient(90deg,#efede8 0,#f7f6f2 50%,#efede8 100%);background-size:200% 100%;animation:pp-skel 1.2s ease-in-out infinite}
.pp-pay .pp-skel--btn{width:100%;height:52px}
.pp-pay .pp-skel--qr{width:196px;height:196px}
.pp-pay .pp-skel--line{width:72%;height:14px;border-radius:7px}
.pp-pay .pp-skel--line.is-short{width:44%}
@keyframes pp-skel{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.pp-pay .pp-skel{animation:none}}
/* 10-12 one pay experience: the panel carries the heading ("Complete your payment" / "Thank you"), so Woo's own
   order-received notice is not repeated above it */
body:has(#pp-pay) .woocommerce-thankyou-order-received{display:none}
/* Woo's notices on the pay step, in our style (pp-paypanel/notice.php) */
.pp-op-notice{max-width:1080px;margin:0 auto 14px;padding:12px 16px;border-radius:12px;background:#fdecec;color:#8a1c1c;font-size:15px;line-height:1.5}
.pp-op-notice.is-notice,.pp-op-notice.is-success{background:#e8eefc;color:#1a3a8a}
.pp-pay .pp-rail .pp-payee{margin:4px 0 0;font-size:13px;line-height:1.45;color:var(--mut);text-align:center}

/* 10-13 Oliver - the pay pop-up: an in-page sheet over the checkout / pay page; a bottom sheet on a phone, a centred dialog
   on desktop. The page behind keeps its own summary, so the panel's summary card is not repeated in it. */
.pp-sheet-root[hidden]{display:none!important}
.pp-sheet-back{position:fixed;inset:0;z-index:99989;background:rgb(20 20 20 / .38)}
.pp-sheet{position:fixed;left:0;right:0;bottom:0;z-index:99990;max-height:92vh;max-height:92dvh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgb(0 0 0 / .18);padding:8px 0 env(safe-area-inset-bottom);animation:pp-sheet-up .28s cubic-bezier(.2,.8,.2,1);outline:none;box-sizing:border-box}
.pp-sheet::before{content:"";display:block;width:40px;height:4px;margin:6px auto 2px;border-radius:2px;background:#d9d6cf}
.pp-sheet__x{position:absolute;top:8px;right:8px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#141414;cursor:pointer}
.pp-sheet__x:hover{background:#f3f1ec}
.pp-sheet__x:focus-visible{outline:2px solid #1e4fd8;outline-offset:2px}
html.pp-sheet-open,html.pp-sheet-open body{overflow:hidden}
.pp-sheet .pp-pay{margin:0;border:0;box-shadow:none;border-radius:0}
.pp-sheet .pp-pay__grid{display:block}
.pp-sheet .pp-sum{display:none}
.pp-sheet .pp-pay__head{padding-right:44px}
@media (min-width:768px){
  .pp-sheet{left:50%;right:auto;top:50%;bottom:auto;width:min(560px,94vw);max-height:90vh;border-radius:18px;transform:translate(-50%,-50%);animation:pp-sheet-fade .2s ease;padding:8px 0}
  .pp-sheet::before{display:none}
}
@keyframes pp-sheet-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes pp-sheet-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.pp-sheet{animation:none}}
/* 10-13 Oliver - the inline app list in the "Payment apps" lane (checkout + pay page): one row per app, equal icons */
.pp-applist{display:grid;gap:8px;margin:4px 0}
.pp-approw{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:10px 14px;border:1px solid #d9d6cf;border-radius:12px;background:#fff;color:#141414;font:inherit;font-size:16px;font-weight:600;text-align:left;cursor:pointer}
.pp-approw:hover{border-color:#1e4fd8;background:#f5f8ff}
.pp-approw:focus-visible{outline:2px solid #1e4fd8;outline-offset:2px}
.pp-approw .pp-brand{flex:none;width:24px;height:24px}
.pp-approw .pp-brand>img.pp-brand__img{width:24px;height:24px;max-height:none}
.pp-approw__name{flex:1}
.pp-approw__go{flex:none;color:rgb(20 20 20 / .45);font-size:20px;line-height:1}
.pp-applist-toggle{padding:0;border:0;background:none;color:#1e4fd8;font:inherit;font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer;min-height:44px}
/* the app lane's big button = the payment status (tap: the pop-up again) */
.pp-statusbar[hidden]{display:none!important}
.pp-statusbar{width:100%}
.pp-statusbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;padding:12px 16px;border:0;border-radius:12px;background:#1e4fd8;color:#fff;font:inherit;font-size:16.5px;font-weight:600;line-height:1.3;text-align:center;cursor:pointer}
.pp-statusbtn.is-idle{background:#eef2fd;color:#1a43b8}
.pp-statusbtn.is-warn{background:#fff4e5;color:#7a4b00}
.pp-statusbtn:focus-visible{outline:2px solid #141414;outline-offset:2px}
.pp-statusbtn__spin[hidden]{display:none}
.pp-statusbtn__spin{flex:none;width:18px;height:18px;border:2px solid rgb(255 255 255 / .45);border-top-color:#fff;border-radius:50%;animation:pp-spin .8s linear infinite}
@keyframes pp-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.pp-statusbtn__spin{animation-duration:2.4s}}
.pp-statusbar__sub{margin:8px 0 0;font-size:14px;line-height:1.5;text-align:center;color:rgb(20 20 20 / .7)}
.pp-statusbar__sub .pp-sent{padding:0;border:0;background:none;color:#1e4fd8;font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer;min-height:44px}
html.pp-applane .wc-block-components-checkout-place-order-button,html.pp-applane .wc-block-checkout__actions .pp-place-note,
form.pp-kp.is-applane #pp-kp-pay,form.pp-kp.is-applane .pp-kp__actions .pp-place-note{display:none!important}
.pp-age-err,.pp-kp__err.is-age{display:block;margin:6px 0 0;color:#b42318;font-size:14px;font-weight:600;line-height:1.4}

/* 10-13 Oliver ("double repeat"): while the pop-up is open it carries the status (its steps); the page's status button
   behind it says nothing, and comes back when the pop-up closes */
html.pp-sheet-open .pp-statusbar{visibility:hidden}
.pp-pay .pp-msg.pp-msg--note{display:block;background:none;padding:0;margin:10px 0 0;font-size:14px;line-height:1.5;color:rgb(20 20 20 / .7)}
.pp-pay .pp-msg.pp-msg--note::before{content:none}
/* 10-13: the pay page's button styles must never un-hide the folded list or its "Choose your app" toggle */
.pp-applist[hidden],.pp-applist-toggle[hidden]{display:none!important}
/* 10-13: "Text it to (•••) •••-0187" (one tap) + "Use a different number" */
.pp-pay .pp-sms__pre{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.pp-pay .pp-sms__one{min-height:44px}
.pp-pay .pp-sms__row[hidden],.pp-pay .pp-sms__diff[hidden]{display:none!important}

/* 10-13 r3 (Oliver): the order note - required where the buyer pastes it (PayPal, Zelle, Cash App), "keep it" where the link fills it */
.pp-pay .pp-notegate{display:grid;gap:6px;margin:0 0 12px;padding:14px;border:2px solid var(--ink,#141414);border-radius:var(--r,12px);background:#fff}
.pp-pay .pp-notegate__k{font-size:14px;font-weight:700;color:var(--wr)}
.pp-pay .pp-notegate__v{font-size:19px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-word}
.pp-pay .pp-notegate__why{margin:0;font-size:14px;line-height:1.45;color:var(--mut)}
.pp-pay .pp-notegate__btn{width:100%;min-height:48px}
.pp-pay .pp-notegate.is-done{border-color:var(--ok)}
.pp-pay .pp-keepnote{margin:8px 0 0;font-size:14px;line-height:1.45;color:var(--ink,#141414)}
.pp-pay .pp-btn.is-locked{opacity:.45;pointer-events:auto;cursor:not-allowed}
.pp-pay .pp-rail [hidden]{display:none!important}

/* 10-13 round 5 (QA bug 3): the failed-commit view in the pop-up - one message, one way forward */
.pp-pay--fail .pp-retry{width:100%;min-height:48px;margin-top:4px}

/* Payment-link feedback stays prominent above the consent disclosure. */
.pp-pay .pp-sms__out:not(:empty){display:block;margin:0;padding:12px;border-radius:8px;background:#eef4ff;color:#173665;font-size:14px;font-weight:600;line-height:1.5}
.pp-pay .pp-sms__out[data-kind="error"]{background:#fff1ee;color:#922b18}
.pp-pay .pp-sms__out[data-kind="success"]{background:#eef8ef;color:#215b2a}
.pp-pay .pp-sms__one[hidden]{display:none!important}
.pp-pay .pp-sms__row{flex-wrap:wrap}

.pp-watch{display:flex;align-items:center;gap:10px;margin:16px 0;padding:14px 16px;border:1px solid var(--line,#e4e2dd);border-radius:14px;background:var(--soft,#f8f7f4);color:var(--mut,#646464);font-size:13px;line-height:1.55}
.pp-watch[hidden],.pp-watch button[hidden]{display:none!important}.pp-watch>span:nth-child(2){flex:1}
.pp-watch__spin{flex:none;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:pp-watch-spin 1.5s linear infinite}
.pp-watch.is-error .pp-watch__spin{animation:none}
@keyframes pp-watch-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pp-watch__spin{animation:none}}
