/* Express checkout box (ExpressCheckout.ascx). A stylesheet in the page head (2026-11-04): as an inline <style> inside the
   cart UpdatePanel it was dropped by every quantity change / remove, and the box lost its layout. */
    .xc { --xc-ink:#1d2939; --xc-muted:#667085; --xc-line:#e4e9f0; --xc-brand:#1C5291;
          background: linear-gradient(180deg,#f6f9fd 0%,#ffffff 60%); border:1px solid var(--xc-line); border-radius:16px;
          padding:16px; margin:12px 0; box-shadow:0 10px 30px rgba(28,82,145,.07); color:var(--xc-ink); text-align:left; }
    .xc-head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
    .xc-title { font-weight:800; font-size:1rem; color:var(--xc-brand); display:flex; align-items:center; gap:8px; }
    .xc-title .bolt { display:inline-flex; width:22px; height:22px; border-radius:50%; background:#e8f0fb; align-items:center; justify-content:center; font-size:12px; }
    .xc-sub { color:var(--xc-muted); font-size:.8rem; }
    .xc-row { display:flex; gap:12px; align-items:flex-start; flex-wrap:wrap; margin-bottom:10px; }
    .xc-where { display:flex; flex-direction:column; gap:4px; }
    .xc-postal { width:190px; max-width:100%; font-size:.92rem; padding:7px 10px; border-radius:10px; border:1px solid #c9d4e3; text-transform:uppercase; }
    .xc-postal::placeholder { text-transform:none; color:#98a2b3; }
    .xc-outside { font-size:.76rem; color:var(--xc-muted) !important; text-decoration:underline !important; cursor:pointer; background:none; border:0; padding:0; text-align:left; }
    .xc-total { margin-left:auto; font-size:.86rem; color:var(--xc-muted); text-align:right; min-height:2.4em; }
    .xc-total b { color:var(--xc-ink); font-size:1.02rem; }
    /* One line: Google Pay, Apple Pay, PayPal, Alipay. Google Pay is the plain (non-personalized) button - the personalized
       one has a fixed 240px card-info frame that spilled over the next tile (2026-10-31). */
    .xc-buttons { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px; }
    .xc-btn { position:relative; height:44px; border-radius:10px; border:0; display:flex; align-items:center; justify-content:center;
              font-weight:700; font-size:14px; letter-spacing:.01em; overflow:hidden; }
    .xc-gpay { background:#000; min-height:44px; overflow:hidden; }
    .xc-gpay > div, .xc-gpay button { width:100% !important; min-width:0 !important; }
    .xc-gpay.xc-gpay-wide { grid-column:1 / -1; }   /* saved card: personalized button on its own row (Apple Pay, PayPal, Alipay below) */
    .xc-buttons:has(.xc-gpay-wide) { grid-template-columns:repeat(3, minmax(0,1fr)); }   /* the 3 others share the row below */
    .xc-gpay.xc-off { background:#f1f3f6; color:#98a2b3; font-size:12px; font-weight:600; }
    .xc-apple { background:#000; color:#fff; }
    .xc-paypal { background:#ffc439; color:#003087; font-style:italic; font-weight:800; }
    .xc-paypal span.pp2 { color:#009cde; }
    .xc-alipay { background:#1677ff; color:#fff; font-weight:800; font-size:13px; }
    .xc-alipay .ali-zh { font-size:10px; font-weight:700; margin-right:3px; opacity:.9; }
    .xc-soonbtn { opacity:.55; cursor:not-allowed; padding-top:12px; }   /* the label sits under the Soon badge */
    /* 2026-11-04 (Vincent): Apple Pay / PayPal / Alipay hidden until they work - Google Pay alone, full width */
    .xc-buttons .xc-soonbtn { display:none !important; }
    .xc-buttons, .xc-buttons:has(.xc-gpay-wide) { grid-template-columns:1fr; }
    .xc-soon { position:absolute; top:2px; right:3px; font-size:8px; font-style:normal; font-weight:700; letter-spacing:.04em;
               background:rgba(255,255,255,.92); color:#344054; border-radius:999px; padding:1px 5px; text-transform:uppercase; }
    .xc-msg { display:block; margin-top:8px; font-size:.84rem; }
    .xc-label { font-size:.8rem; font-weight:700; color:var(--xc-ink); margin:0; }
    .xc-req { color:#b02a25; }
    .xc-postal.xc-need { border-color:#e0a100; box-shadow:0 0 0 3px rgba(224,161,0,.18); }
    .xc-total { min-width:190px; }
    .xc-sum { display:grid; grid-template-columns:auto auto; column-gap:14px; row-gap:2px; justify-content:end; font-size:.84rem; }
    .xc-sum .k { color:var(--xc-muted); text-align:left; }
    .xc-sum .v { color:var(--xc-ink); text-align:right; font-variant-numeric:tabular-nums; }
    /* the rule above Total is its own row, so "Total" and the amount line up on one baseline (2026-11-04) */
    .xc-sum .rule { grid-column:1 / -1; border-top:1px solid var(--xc-line); margin-top:4px; height:3px; }
    .xc-sum .tk, .xc-sum .tv { align-self:baseline; }
    .xc-sum .tk { color:var(--xc-ink); font-weight:800; font-size:1rem; }
    .xc-sum .tv { color:var(--xc-ink); font-weight:800; font-size:1.35rem; line-height:1.1; }
    .xc-sum .tv small { font-size:.72rem; font-weight:700; color:var(--xc-muted); margin-left:3px; }
    @media (max-width: 575px) { .xc-sum { justify-content:start; } }
    .xc-or { display:flex; align-items:center; gap:10px; color:#98a2b3; font-size:.8rem; margin:12px 0 0; }
    .xc-or:before, .xc-or:after { content:''; flex:1; height:1px; background:var(--xc-line); }
    .xc-note { color:var(--xc-muted); font-size:.74rem; margin:8px 0 0; }
    /* $0 cart: everything greyed out, nothing clickable (2026-11-03) */
    .xc.xc-free { background:#f8f9fb; box-shadow:none; }
    .xc.xc-free .xc-title { color:#98a2b3; }
    .xc.xc-free .xc-title .bolt { background:#eef0f3; filter:grayscale(1); }
    .xc.xc-free .xc-buttons { opacity:.4; filter:grayscale(1); pointer-events:none; user-select:none; }
    .xc-freemsg { display:flex; flex-direction:column; gap:2px; background:#ecfdf3; border:1px solid #b7ebcd; color:#106b3d; border-radius:10px;
                  padding:9px 12px; margin-bottom:10px; font-size:.86rem; }
    .xc-freemsg b { font-weight:800; } .xc-freemsg span { color:#3b6b52; }
    .xc-shipnote { display:flex; flex-direction:column; gap:2px; background:#eef5fd; border:1px solid #c7d6e8; color:#1C5291; border-radius:10px;
                   padding:9px 12px; margin-bottom:10px; font-size:.86rem; }
    .xc-shipnote b { font-weight:800; } .xc-shipnote span { color:#3b4a5a; }
    .xc.xc-compact { padding:12px 14px; margin:0; box-shadow:none; }
    .xc.xc-compact .xc-head { margin-bottom:8px; }
    .xc.xc-compact .xc-btn { height:40px; font-size:13px; }
    .xc.xc-compact .xc-gpay { min-height:40px; }
    @media (max-width: 575px) {
        .xc { padding:12px; }
        .xc-buttons { grid-template-columns:1fr 1fr; }
        .xc-total { margin-left:0; text-align:left; width:100%; }
        .xc-postal { width:100%; }
    }
    /* PayPal under Google Pay (2026-11-06): PayPal draws its own gold button in here; empty = nothing shown */
    .xc-paypal-live { min-height:0; }
    .xc-paypal-live:empty { display:none; }
/* under the PayPal button (2026-11-06): bank payments are held until they clear */
.pp-banknote { font-size: .74rem; color: #667085; margin: 6px 0 0; line-height: 1.35; text-align: left; }
.xc-paypal-live:empty + .pp-banknote, .xp-paypal-live:empty + .pp-banknote { display: none; }
