/*
 * Checkout, drawn like our Eiger site checkout (site-checkout.css): Stripe's
 * two halves, the order on a coloured side, the form on white, black for the
 * actions, Revolut-style fields whose label slides up onto the outline.
 * The coloured side takes this product's blue instead of Eiger's red.
 */
.ek{
  --ek-text:rgba(26,26,26,.9);--ek-muted:rgba(26,26,26,.6);--ek-faint:rgba(26,26,26,.4);
  --ek-line:#e6e6e6;--ek-field:#dcdce0;--ek-brand:#0B63F6;--ek-green:#1a7f37;--ek-bad:#df1b41;
  --ek-grad:linear-gradient(180deg,#3d86ff 0%,#0B63F6 55%,#0646b8 100%);
  --ek-ease:cubic-bezier(.2,.8,.2,1);
  min-height:100dvh;margin:0;background:#fff;color:var(--ek-text);
  font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.ek *,.ek *::before,.ek *::after{box-sizing:border-box}
.ek button,.ek input,.ek select{font:inherit;color:inherit}
.ek button{background:none;border:0;padding:0;cursor:pointer}
.ek h2{margin:0 0 12px;font-size:16px;font-weight:500;line-height:1.3}
.ek svg{display:block}
.ek [hidden]{display:none!important}
.ek a{color:inherit}
.tnum{font-variant-numeric:tabular-nums}

/* ── two halves ── */
.ek-app{min-height:100dvh;display:flex}
.ek-side{flex:1 1 50%;display:flex;justify-content:flex-end;background:var(--ek-grad);background-attachment:fixed;color:#fff;
  --ek-text:#fff;--ek-muted:rgba(255,255,255,.8);--ek-faint:rgba(255,255,255,.62);--ek-line:rgba(255,255,255,.25)}
.ek-main{flex:1 1 50%;display:flex;justify-content:flex-start;background:#fff}
.ek-side-in{width:100%;max-width:380px;margin:0 80px 0 32px;padding:56px 0 48px}
.ek-main-in{width:100%;max-width:400px;margin:0 32px 0 80px;padding:56px 0 48px}

/* ── order side ── */
.ek-brand-row{display:flex;align-items:center;gap:8px;height:28px}
.ek-back{width:24px;height:28px;margin-left:-4px;display:grid;place-items:center;color:#fff;transition:opacity .15s}
.ek-back:hover{opacity:.75}
.ek-back svg{width:18px;height:18px}
.ek-logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;text-decoration:none}
.ek-logo i{width:22px;height:22px;border-radius:6px;background:#fff;color:var(--ek-brand);display:grid;place-items:center}
.ek-logo i svg{width:13px;height:13px}
.ek-sum{margin-top:32px}
.ek-prod{color:var(--ek-muted);font-size:16px;font-weight:500}
.ek-big{margin-top:2px;font-size:36px;font-weight:600;letter-spacing:-.03em;line-height:1.15;color:#fff}
.ek-details{display:none}
.ek-lines{margin-top:32px}
.ek-item{display:flex;gap:16px;align-items:flex-start;padding-bottom:16px}
.ek-item-ic{width:42px;height:42px;flex:none;border-radius:8px;background:rgba(255,255,255,.16);display:grid;place-items:center}
.ek-item-ic svg{width:18px;height:18px}
.ek-item-main{flex:1;min-width:0}
.ek-item-t{font-weight:500;font-size:14px}
.ek-item-d{color:var(--ek-muted);font-size:12px;margin-top:2px}
.ek-item-p{font-weight:500;text-align:end;white-space:nowrap}
.ek-item.is-add{animation:ek-rise .22s var(--ek-ease)}
.ek-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0}
.ek-row.is-sub{border-top:1px solid var(--ek-line);font-weight:500}
.ek-row.is-disc{padding-top:0;color:var(--ek-muted)}
.ek-row.is-total{border-top:1px solid var(--ek-line);font-weight:600;font-size:15px;padding-top:14px}
.ek-promo-btn{display:inline-flex;align-items:center;height:32px;margin:0 0 12px;padding:0 14px!important;border:1px solid rgba(255,255,255,.7)!important;
  border-radius:999px;color:#fff;font-size:13px;font-weight:500;transition:background .15s,border-color .15s}
.ek-promo-btn:hover{background:rgba(255,255,255,.1)!important;border-color:#fff!important}
.ek-promo-form{display:flex;gap:8px;margin:0 0 12px;animation:ek-rise .2s var(--ek-ease)}
.ek-promo-in{flex:1;min-width:0;height:40px;padding:0 12px;border-radius:6px;border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.08);
  color:#fff;font-size:15px;text-transform:uppercase;outline:none}
.ek-promo-in::placeholder{color:rgba(255,255,255,.6);text-transform:none}
.ek-promo-in:focus{border-color:#fff}
.ek-promo-apply{flex:none;height:40px;padding:0 16px!important;border-radius:6px;background:#fff!important;color:#000!important;font-weight:600}
.ek-promo-err{margin:-6px 0 10px;font-size:12.5px;font-weight:500}
.ek-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 9px;border-radius:6px;border:1px solid rgba(255,255,255,.75);
  font-size:13px;font-weight:600;letter-spacing:.02em;color:#fff}
.ek-pill button{width:18px;height:18px;display:grid;place-items:center;color:rgba(255,255,255,.8)}
.ek-pill button svg{width:12px;height:12px}
.ek-trust{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:10px}
.ek-trust li{display:flex;gap:10px;align-items:center;color:rgba(255,255,255,.92);font-size:13px}
.ek-trust i{width:20px;height:20px;border-radius:5px;background:#fff;color:var(--ek-brand);flex:none;display:grid;place-items:center}
.ek-trust i svg{width:12px;height:12px}

/* ── pay side ── */
.ek-sec{margin-top:28px}
.ek .ek-wallet{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:52px;border-radius:6px;background:#000!important;color:#fff;
  font-size:19px;font-weight:500;transition:background .15s}
.ek-wallet:hover{background:#1f1f1f!important}
.ek-wallet svg{width:18px;height:20px;margin-top:-3px}
.ek-or{display:flex;align-items:center;gap:12px;color:var(--ek-muted);font-size:14px;margin:24px 0 26px}
.ek-or::before,.ek-or::after{content:"";flex:1;height:1px;background:var(--ek-line)}

/* Revolut-style field: the label rests inside, then slides up onto a notch in the outline. */
.ek-field{margin-bottom:16px}
.ek-field:last-child{margin-bottom:0}
.ek-ff{position:relative;margin-top:6px}
.ek-ff:not(.ek-ff-card)>input,.ek-ff>select{position:relative;z-index:0;display:block;width:100%;height:52px;margin:0;padding:0 14px;border:0;border-radius:6px;
  background:transparent;font-size:16px;color:var(--ek-text);outline:none;appearance:none}
.ek-ff>select{padding-top:12px;cursor:pointer}
.ek-ff-label{position:absolute;z-index:2;inset-inline-start:10px;top:26px;transform:translateY(-50%);padding:0 4px;max-width:calc(100% - 28px);
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;font-size:15px;line-height:1.2;color:#8a8a93;
  transition:top .15s cubic-bezier(0,0,.2,1),font-size .15s cubic-bezier(0,0,.2,1),color .15s}
.ek-notch{position:absolute;inset:-6px 0 0;z-index:1;margin:0;padding:0 10px;min-width:0;pointer-events:none;text-align:start;
  border:1px solid var(--ek-field);border-radius:6px;transition:border-color .18s}
.ek-notch legend{float:none;display:block;width:auto;max-width:.01px;height:12px;padding:0;overflow:hidden;visibility:hidden;font-size:12px;
  line-height:12px;white-space:nowrap;transition:max-width 50ms cubic-bezier(0,0,.2,1)}
.ek-notch legend>span{display:inline-block;padding:0 4px}
.ek-ff>input:is(:focus,:not(:placeholder-shown))+.ek-ff-label,.ek-ff.is-fixed>.ek-ff-label{top:0;font-size:12px;color:#000}
.ek-ff>input:is(:focus,:not(:placeholder-shown))~.ek-notch legend,.ek-ff.is-fixed .ek-notch legend{max-width:100%;transition:max-width 100ms cubic-bezier(0,0,.2,1) 50ms}
.ek-ff>:is(input,select):focus~.ek-notch{border-color:#000}
.ek-chev{position:absolute;z-index:2;right:14px;top:50%;width:14px;height:14px;margin-top:-4px;color:var(--ek-muted);pointer-events:none}
.ek-field.is-bad .ek-notch{border-color:var(--ek-bad)}
.ek-field.is-bad .ek-ff-label{color:var(--ek-bad)}
.ek-err{margin:6px 0 0;color:var(--ek-bad);font-size:13px;animation:ek-rise .18s var(--ek-ease)}

/* The card: number, expiry and CVC inside one outline. */
.ek-ff-card{display:flex;align-items:center;gap:8px;height:52px;padding:0 14px;cursor:text}
.ek-ff-card input{position:relative;z-index:0;height:100%;margin:0;padding:0;border:0;background:transparent;font-size:16px;color:var(--ek-text);
  outline:none;min-width:0;font-variant-numeric:tabular-nums}
.ek-ff-card input::placeholder{color:rgba(26,26,26,.35)}
.ek-num{flex:1 1 0;width:0}
.ek-num::placeholder{color:transparent!important;transition:color .15s}
.ek-ff-card.is-up .ek-num::placeholder,.ek-ff-card:focus-within .ek-num::placeholder{color:rgba(26,26,26,.35)!important}
.ek-exp{width:62px;flex:none}
.ek-cvc{width:42px;flex:none}
.ek-cbrand{flex:none;width:26px;height:18px;display:grid;place-items:center;color:var(--ek-faint);position:relative;z-index:0}
.ek-cbrand svg{width:24px;height:16px}
.ek-ff-card:focus-within .ek-cbrand{color:#000}
.ek-ff-card>.ek-ff-label{inset-inline-start:44px;cursor:text}
.ek-ff-card.is-up>.ek-ff-label,.ek-ff-card:focus-within>.ek-ff-label{top:0;inset-inline-start:10px;font-size:12px;color:#000}
.ek-ff-card.is-up .ek-notch legend,.ek-ff-card:focus-within .ek-notch legend{max-width:100%;transition:max-width 100ms cubic-bezier(0,0,.2,1) 50ms}
.ek-ff-card:focus-within .ek-notch{border-color:#000}

/* Add-on switch row */
.ek-list{border:1px solid var(--ek-field);border-radius:8px;overflow:hidden}
.ek-sw-row{width:100%;display:flex;align-items:center;gap:12px;padding:13px 14px!important;text-align:start}
.ek-sw{position:relative;width:38px;height:22px;flex:none;border-radius:999px;background:#dcdce0;transition:background .18s}
.ek-sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);
  transition:transform .2s var(--ek-ease)}
.ek-sw-row[aria-checked="true"] .ek-sw{background:#000}
.ek-sw-row[aria-checked="true"] .ek-sw::after{transform:translateX(16px)}
.ek-sw-t{flex:1;min-width:0;font-size:14px}
.ek-sw-t small{display:block;color:var(--ek-muted);font-size:12.5px}
.ek-sw-p{font-weight:600;white-space:nowrap;color:#000}
.ek .ek-sw-row,.ek .ek-m-h{color:var(--ek-text)}

/* Payment methods: Stripe's accordion */
.ek-methods{border:1px solid var(--ek-field);border-radius:6px;overflow:hidden}
.ek-m+.ek-m{border-top:1px solid var(--ek-field)}
.ek-m-h{width:100%;display:flex;align-items:center;gap:12px;padding:14px!important;text-align:start;font-size:14px;font-weight:500}
.ek-radio{width:16px;height:16px;border-radius:50%;border:1px solid #c0c0c6;flex:none;display:grid;place-items:center;background:#fff;
  transition:background .16s,border-color .16s}
.ek-m.is-on .ek-radio{border-color:#000;background:#000}
.ek-m.is-on .ek-radio::after{content:"";width:6px;height:6px;background:#fff;border-radius:50%;animation:ek-pop .18s var(--ek-ease)}
.ek-m-ic{width:20px;color:var(--ek-muted);display:grid;place-items:center}
.ek-m-ic svg{width:18px;height:18px}
.ek-m.is-on .ek-m-ic{color:#000}
.ek-m-t{flex:1;min-width:0}
.ek-marks{display:flex;gap:4px}
.ek-marks svg{width:30px;height:20px}
.ek-m-b{display:grid;grid-template-rows:0fr;padding:0 14px;opacity:0;visibility:hidden;
  transition:grid-template-rows .24s var(--ek-ease),opacity .16s,visibility 0s .24s}
.ek-m.is-on .ek-m-b{grid-template-rows:1fr;opacity:1;visibility:visible;transition:grid-template-rows .26s var(--ek-ease),opacity .2s .06s,visibility 0s}
.ek-m-in{overflow:hidden;min-height:0;min-width:0}
.ek-m-in::after{content:"";display:block;height:14px}
.ek-m-note{margin:0;padding-inline-start:28px;color:var(--ek-muted);font-size:13px}

/* Terms tick */
.ek-check{position:relative;display:flex;align-items:center;gap:9px;margin-top:18px;cursor:pointer}
.ek-check input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ek-box{width:18px;height:18px;flex:none;border:1px solid #c0c0c6;border-radius:5px;background:#fff;display:grid;place-items:center;
  transition:background .14s,border-color .14s}
.ek-check input:checked+.ek-box{background:#000;border-color:#000}
.ek-check input:checked+.ek-box::after{content:"";width:9px;height:5px;border:2px solid #fff;border-top:0;border-right:0;
  transform:rotate(-45deg) translate(1px,-1px);animation:ek-pop .16s var(--ek-ease)}
.ek-check input:focus-visible+.ek-box{box-shadow:0 0 0 3px rgba(0,0,0,.15)}
.ek-check.is-bad .ek-box{border-color:var(--ek-bad)}
.ek-check-t{flex:1;min-width:0;font-size:11.5px;line-height:1.5;color:var(--ek-muted)}
.ek-check.is-bad .ek-check-t{color:var(--ek-bad)}
.ek-check-t a{color:var(--ek-text);text-underline-offset:2px}

.ek-pay{position:relative;margin-top:18px;width:100%;height:52px;border-radius:6px;background:#000!important;color:#fff!important;font-size:16px;
  font-weight:600;display:grid;place-items:center;transition:background .15s,transform .1s}
.ek-pay:hover{background:#1f1f1f!important}
.ek-pay:active{transform:scale(.99)}
.ek-pay.is-busy{cursor:progress}
.ek-pay.is-busy span{visibility:hidden}
.ek-pay.is-busy::after{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;border-radius:50%;animation:ek-spin .7s linear infinite}
.ek-err.is-pay{margin-top:12px}
.ek-foot{margin-top:36px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 16px;color:var(--ek-muted);font-size:12px}
.ek-secured{display:inline-flex;align-items:center;gap:5px}
.ek-secured svg{width:12px;height:12px}
.ek-links{display:flex;gap:12px}
.ek-links a{text-decoration:none}
.ek-links a:hover{color:var(--ek-muted)}

/* ── done ── */
.ek-done{animation:ek-step .32s var(--ek-ease)}
.ek-done-ic{width:44px;height:44px;border-radius:50%;background:#000;color:#fff;display:grid;place-items:center;animation:ek-pop .4s var(--ek-ease)}
.ek-done-ic svg{width:20px;height:20px}
.ek-done h1{margin:16px 0 6px;font-size:26px;line-height:1.2;font-weight:600;letter-spacing:-.025em;color:rgba(26,26,26,.92)}
.ek-done p{margin:0 0 20px;color:var(--ek-muted);font-size:14.5px}
.ek-done b{color:var(--ek-text);font-weight:500}
.ek-dl{margin:0 0 18px;padding:0;list-style:none;border:1px solid var(--ek-field);border-radius:10px}
.ek-dl li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:14px;font-weight:500}
.ek-dl li+li{border-top:1px solid var(--ek-line)}
.ek-dl small{color:var(--ek-muted);font-weight:400}
.ek-pay.is-link{text-decoration:none;margin-top:0}
.ek-pay.is-link span{display:inline-flex;align-items:center;gap:8px}
.ek-pay.is-link svg{width:16px;height:16px}
.ek-paid{margin-top:40px;display:flex;gap:14px;align-items:center;animation:ek-rise .3s var(--ek-ease)}
.ek-paid-ic{width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ek-brand);display:grid;place-items:center;flex:none}
.ek-paid-ic svg{width:22px;height:22px}
.ek-paid-t{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
.ek-paid-s{margin-top:2px;color:rgba(255,255,255,.82);font-size:14px}
.ek-mock{margin:14px 0 0;text-align:center;color:var(--ek-muted);font-size:12px}

/* ── phones and tablets: one column, a short coloured top with View Details ── */
@media (max-width:991px){
  .ek-app{flex-direction:column}
  .ek-side,.ek-main{justify-content:center;flex:none}
  .ek-main{flex:1 0 auto}
  .ek-side{background-attachment:scroll}
  .ek-side-in,.ek-main-in{max-width:480px;margin:0 16px;width:auto;flex:1 1 auto;min-width:0}
  .ek-side-in{padding:16px 0 22px}
  .ek-main-in{padding:24px 0 40px}
  .ek-sum{margin-top:18px;text-align:center}
  .ek-prod{font-size:15px}
  .ek-big{font-size:32px}
  .ek-details{display:inline-flex;align-items:center;gap:6px;margin-top:14px;height:32px;padding:0 12px 0 14px!important;
    border:1px solid rgba(255,255,255,.7)!important;color:#fff;border-radius:999px;font-size:13px;font-weight:500}
  .ek-details svg{width:12px;height:12px;transition:transform .26s var(--ek-ease)}
  .ek-side.is-open .ek-details svg{transform:rotate(180deg)}
  .ek-lines{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;margin-top:0;text-align:start;
    transition:grid-template-rows .28s var(--ek-ease),opacity .16s,visibility 0s .28s}
  .ek-lines-in{overflow:hidden;min-height:0}
  .ek-lines-in::before{content:"";display:block;height:20px}
  .ek-side.is-open .ek-lines{grid-template-rows:1fr;opacity:1;visibility:visible;transition:grid-template-rows .3s var(--ek-ease),opacity .22s .06s,visibility 0s}
  .ek-trust{display:none}
  .ek-paid{margin-top:18px;justify-content:center}
  .ek-paid-t{font-size:18px}
  .ek-foot{flex-direction:column}
}

@keyframes ek-rise{from{opacity:0;transform:translateY(-3px)}}
@keyframes ek-pop{from{opacity:0;transform:scale(.7)}}
@keyframes ek-spin{to{transform:rotate(360deg)}}
@keyframes ek-step{from{opacity:0;transform:translateX(16px)}}
@media (prefers-reduced-motion:reduce){.ek *,.ek *::before,.ek *::after{animation:none!important;transition:none!important}}
