/* ========================================================================
   purchase-sims.css — Purchase Additional SIMs journey

   Ported from the production website checkout
   (app/assets/stylesheets/checkout_journey/*.scss), converted to plain CSS
   and renamed to the platform's mp- prefix. Where the checkout SCSS and this
   project's tokens disagreed, the tokens win: these screens sit inside the
   platform, not on the website.

   Deliberate divergence: the small-caps letterspaced eyebrow (mp-eyebrow in
   the SCSS) is dropped throughout. Section heads, the summary head, review
   row labels and the confirmation hero use ordinary headings and labels at
   this project's type scale.
   ======================================================================== */

/* ---- Journey shell: two columns, sticky summary ---- */
.mp-pj{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:32px;align-items:start}
.mp-pj-left{display:flex;flex-direction:column;gap:24px;min-width:0}
.mp-pj-right{position:sticky;top:24px}
@media (max-width:1100px){.mp-pj{grid-template-columns:minmax(0,1fr)}.mp-pj-right{position:static}}

/* ---- Step breadcrumb ---- */
.mp-pj-crumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.mp-pj-crumb-item{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:500;color:var(--fg-3)}
.mp-pj-crumb-item.is-done{color:var(--fg-1)}
.mp-pj-crumb-item.is-current{color:var(--fg-1);font-weight:600}
.mp-pj-crumb-item.is-upcoming{opacity:.55}
.mp-pj-crumb-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:12px;font-weight:700;border-radius:50%;background:var(--mp-cream);color:var(--fg-2)}
.mp-pj-crumb-item.is-done .mp-pj-crumb-num{background:var(--mp-bright-lime);color:var(--mp-deep-forest)}
.mp-pj-crumb-item.is-current .mp-pj-crumb-num{background:var(--mp-deep-forest);color:#fff}
.mp-pj-crumb-label{font-size:15px}
.mp-pj-crumb-sep{width:30px;height:1px;background:var(--mp-cream)}
@media (max-width:560px){.mp-pj-crumb-item:not(.is-current) .mp-pj-crumb-label{display:none}}

/* ---- Section head (no eyebrow) ---- */
.mp-pj-head{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}
.mp-pj-head-title{font-size:30px;font-weight:700;letter-spacing:-.015em;line-height:1.15;color:var(--fg-1);margin:0}
.mp-pj-head-sub{font-size:16px;line-height:1.55;color:var(--fg-3);max-width:60ch;margin:0}

/* ---- Configurator ---- */
.mp-pj-config{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:32px;display:flex;flex-direction:column;gap:32px}
@media (max-width:560px){.mp-pj-config{padding:24px;gap:24px}}
.mp-pj-row{display:flex;flex-direction:column;gap:16px}
.mp-pj-row-head{display:flex;align-items:center;gap:12px}
.mp-pj-row-title{font-size:17px;font-weight:600;color:var(--fg-1);margin:0}
.mp-pj-dot{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--mp-chalk);color:var(--mp-pine);flex-shrink:0}

/* Data plan tiles. Sized on the container, not the viewport: these sit in the
   journey's left column beside a 380px summary, so a viewport breakpoint
   fires far too late and the tiles overflow instead of wrapping. */
.mp-pj-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:12px}
.mp-pj-plan-opt{position:relative;background:#fff;border:1.5px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px 10px;min-height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font-family:inherit;color:var(--fg-1);transition:border-color 150ms,background 150ms,color 150ms}
.mp-pj-plan-opt:hover{border-color:var(--mp-pine)}
.mp-pj-plan-opt.is-active{background:var(--mp-deep-forest);border-color:var(--mp-deep-forest);color:#fff}
.mp-pj-plan-num{font-size:21px;font-weight:700;line-height:1.15;letter-spacing:-.02em;text-align:center}
.mp-pj-plan-price{font-size:13px;margin-top:4px;color:var(--fg-3)}
.mp-pj-plan-opt.is-active .mp-pj-plan-price{color:rgba(255,255,255,.72)}
.mp-pj-plan-check,.mp-pj-type-check{position:absolute;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--mp-sapling);color:var(--mp-deep-forest);opacity:0;transform:scale(.8);transition:opacity 150ms,transform 150ms}
.mp-pj-plan-check{top:8px;right:8px;width:18px;height:18px}
.mp-pj-type-check{top:10px;right:10px;width:22px;height:22px}
.mp-pj-plan-opt.is-active .mp-pj-plan-check,.mp-pj-type-opt.is-active .mp-pj-type-check{opacity:1;transform:scale(1)}
.mp-pj-plan-note{display:inline-flex;align-items:center;gap:8px;background:var(--mp-chalk);color:var(--mp-deep-forest);font-size:14px;font-weight:600;padding:8px 14px;border-radius:var(--radius-pill);align-self:flex-start}

/* SIM type tiles */
.mp-pj-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.mp-pj-type-grid{grid-template-columns:1fr}}
.mp-pj-type-opt{position:relative;display:flex;align-items:center;gap:14px;padding:18px 20px;background:#fff;border:1.5px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font-family:inherit;color:var(--fg-1);transition:border-color 150ms,background 150ms,color 150ms}
.mp-pj-type-opt:hover{border-color:var(--mp-pine)}
.mp-pj-type-opt.is-active{background:var(--mp-deep-forest);color:#fff;border-color:var(--mp-deep-forest)}
.mp-pj-type-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--mp-chalk);color:var(--mp-pine);flex-shrink:0}
.mp-pj-type-opt.is-active .mp-pj-type-icon{background:rgba(255,255,255,.12);color:#fff}
.mp-pj-type-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.mp-pj-type-label{font-size:16px;font-weight:600}
.mp-pj-type-sub{font-size:14px;color:var(--fg-3)}
.mp-pj-type-opt.is-active .mp-pj-type-sub{color:rgba(255,255,255,.72)}

/* Quantity row */
.mp-pj-qty-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.mp-pj-qty{display:inline-flex;align-items:center;border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:#fff}
.mp-pj-qty-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:46px;border:none;background:#fff;color:var(--fg-2);cursor:pointer;transition:background 150ms,color 150ms}
.mp-pj-qty-btn:hover:not(:disabled){background:var(--mp-chalk);color:var(--mp-pine)}
.mp-pj-qty-btn:disabled{opacity:.35;cursor:not-allowed}
.mp-pj-qty-input{width:68px;height:46px;text-align:center;font-size:16px;font-weight:600;border:none;outline:none;font-family:inherit;color:var(--fg-1);background:#fff;-moz-appearance:textfield}
.mp-pj-qty-input::-webkit-outer-spin-button,.mp-pj-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.mp-pj-qty-preview{font-size:14px;color:var(--fg-3);display:inline-flex;align-items:baseline;gap:6px}
.mp-pj-qty-preview strong{font-weight:700;color:var(--fg-1);font-size:16px}
.mp-pj-add{margin-left:auto}
@media (max-width:560px){.mp-pj-add{margin-left:0;width:100%}}

/* ---- Order summary ---- */
.mp-pj-sum{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:24px;display:flex;flex-direction:column;gap:18px}
.mp-pj-sum-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mp-pj-sum-title{font-size:16px;font-weight:700;color:var(--fg-1);margin:0}
.mp-pj-sum-empty{border-radius:var(--radius-lg);padding:24px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.mp-pj-sum-empty p{font-size:14px;color:var(--fg-3);margin:0;line-height:1.45}
.mp-pj-sum-empty-ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--mp-chalk);color:var(--mp-pine)}
.mp-pj-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.mp-pj-line{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-subtle)}
.mp-pj-line:last-child{border-bottom:0}
.mp-pj-line-ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--mp-chalk);color:var(--mp-pine)}
.mp-pj-line-body{min-width:0}
.mp-pj-line-title{font-size:15px;font-weight:600;color:var(--fg-1)}
.mp-pj-line-sub{font-size:13px;color:var(--fg-3);margin-top:2px}
.mp-pj-line-price{font-size:15px;font-weight:600;color:var(--fg-1);white-space:nowrap}
.mp-pj-line-x{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:transparent;border:1px solid var(--border-subtle);color:var(--fg-3);cursor:pointer;padding:0;transition:color 150ms,border-color 150ms,background 150ms}
.mp-pj-line-x:hover{color:var(--mp-ember);border-color:var(--mp-ember);background:var(--mp-ember-tint)}
.mp-pj-totals{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px solid var(--border-subtle)}
.mp-pj-trow{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:14px;color:var(--fg-2)}
.mp-pj-trow--muted{color:var(--fg-3)}
.mp-pj-trow--total{margin-top:4px;padding-top:8px;border-top:1px solid var(--border-subtle)}
.mp-pj-trow-val{text-align:right;color:var(--fg-1);font-weight:600}
.mp-pj-trow--total strong{font-size:22px;font-weight:700;color:var(--fg-1);display:block;line-height:1.2}
.mp-pj-trow--total em{font-style:normal;font-size:13px;color:var(--fg-3)}
.mp-pj-vat{display:inline-flex;align-self:flex-end;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--fg-3);cursor:pointer}
.mp-pj-vat input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.mp-pj-vat-track{width:32px;height:18px;border-radius:var(--radius-pill);background:var(--mp-cream);position:relative;transition:background 150ms}
.mp-pj-vat-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.15);transition:transform 150ms}
.mp-pj-vat input:checked+.mp-pj-vat-track{background:var(--mp-pine)}
.mp-pj-vat input:checked+.mp-pj-vat-track .mp-pj-vat-thumb{transform:translateX(14px)}
.mp-pj-vat-label{color:var(--fg-2)}

/* Proration block with its info popover */
.mp-pj-pro{background:var(--mp-warm-white);border:1px dashed var(--mp-cream);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.mp-pj-pro-label{font-size:13px;font-weight:600;color:var(--fg-3);display:inline-flex;align-items:center;gap:6px}
.mp-pj-pro-help{position:relative;display:inline-flex}
.mp-pj-pro-trigger{display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:0;color:var(--fg-3);cursor:pointer}
.mp-pj-pro-trigger:hover{color:var(--fg-1)}
.mp-pj-pro-pop{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:8px;width:270px;padding:12px 14px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-card-hover);font-size:13px;font-weight:400;color:var(--fg-2);line-height:1.5;z-index:20}
.mp-pj-pro-val{font-size:20px;font-weight:700;color:var(--mp-deep-forest)}
.mp-pj-pro-note{font-size:13px;color:var(--fg-3);line-height:1.45}

/* ---- Review block (row labels, not eyebrows) ---- */
.mp-pj-review{background:var(--mp-chalk);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px 22px;display:flex;flex-direction:column;gap:12px}
.mp-pj-rrow{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;align-items:baseline;font-size:15px;color:var(--fg-2)}
.mp-pj-rrow-label{font-size:14px;font-weight:600;color:var(--fg-3)}
.mp-pj-rrow-val{color:var(--fg-1)}
.mp-pj-rrow--bill{border-top:1px solid var(--border-subtle);padding-top:14px;margin-top:2px}
.mp-pj-rrow--bill strong{font-size:17px;font-weight:700;color:var(--fg-1)}
.mp-pj-rrow-note{display:block;font-size:13.5px;color:var(--fg-3);margin-top:3px}
@media (max-width:560px){.mp-pj-rrow{grid-template-columns:minmax(0,1fr);gap:2px}}

/* ---- Invoice selector: neutral, never a status colour ---- */
.mp-pj-inv{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px 22px;display:flex;flex-direction:column;gap:4px}
.mp-pj-inv-title{font-size:16px;font-weight:700;color:var(--fg-1);margin:0 0 14px}
.mp-pj-inv-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;align-items:center}
.mp-pj-inv-label{font-size:14px;font-weight:600;color:var(--fg-3)}
.mp-pj-inv-pick{position:relative;justify-self:start;min-width:0}
.mp-pj-inv-trigger{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--border-subtle);border-radius:var(--radius-md);padding:10px 14px;font-family:inherit;font-size:15px;font-weight:600;color:var(--fg-1);cursor:pointer;min-width:240px;text-align:left;transition:border-color 150ms}
.mp-pj-inv-trigger:hover{border-color:var(--mp-pine)}
.mp-pj-inv-trigger span{flex:1}
.mp-pj-inv-trigger .mp-ic{color:var(--fg-3);flex-shrink:0}
.mp-pj-inv-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:320px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card-hover);padding:6px;z-index:30;max-height:320px;overflow-y:auto}
.mp-pj-inv-opt{display:flex;align-items:flex-start;gap:10px;width:100%;padding:11px 12px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;text-align:left;transition:background 120ms}
.mp-pj-inv-opt:hover{background:var(--mp-chalk)}
.mp-pj-inv-opt.is-selected{background:var(--mp-chalk)}
.mp-pj-inv-opt-body{flex:1;min-width:0;display:flex;flex-direction:column}
.mp-pj-inv-opt-name{display:block;font-size:15px;font-weight:600;color:var(--fg-1)}
.mp-pj-inv-opt-meta{display:block;font-size:13px;color:var(--fg-3);margin-top:3px}
.mp-pj-inv-opt-tick{width:16px;height:16px;flex-shrink:0;color:var(--mp-pine);margin-top:3px}
.mp-pj-inv-sep{height:1px;background:var(--border-subtle);margin:6px 4px}
.mp-pj-inv-note{grid-column:2;font-size:13.5px;color:var(--fg-3);line-height:1.45}
.mp-pj-inv-name{grid-column:2;margin-top:12px;max-width:380px}
@media (max-width:560px){.mp-pj-inv-row{grid-template-columns:minmax(0,1fr);gap:8px}.mp-pj-inv-note,.mp-pj-inv-name{grid-column:1}}

/* ---- Journey footer ---- */
.mp-pj-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mp-pj-foot-note{font-size:13.5px;color:var(--fg-3);margin:6px 0 0}
@media (max-width:560px){.mp-pj-foot{flex-direction:column-reverse;align-items:stretch}}

/* ---- Confirmation ---- */
.mp-pj-confirm{max-width:820px;display:flex;flex-direction:column;gap:24px}
.mp-pj-hero{background:var(--mp-moss);color:#fff;border-radius:var(--radius-xl);padding:36px 40px;display:flex;align-items:center;gap:24px;box-shadow:0 24px 40px rgba(3,45,16,.22)}
@media (max-width:560px){.mp-pj-hero{flex-direction:column;align-items:flex-start;padding:28px 24px}}
.mp-pj-hero-mark{flex-shrink:0;width:56px;height:56px;border-radius:50%;background:var(--mp-bright-lime);color:var(--mp-moss);display:inline-flex;align-items:center;justify-content:center}
.mp-pj-hero-ref{font-size:14px;font-weight:600;color:var(--mp-sapling);margin-bottom:6px}
.mp-pj-hero-title{font-size:28px;font-weight:700;letter-spacing:-.015em;line-height:1.2;margin:0 0 6px;color:#fff}
.mp-pj-hero-sub{font-size:15px;color:rgba(255,255,255,.82);line-height:1.55;margin:0}
.mp-pj-card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:28px 32px;display:flex;flex-direction:column;gap:20px}
@media (max-width:560px){.mp-pj-card{padding:24px 20px}}
.mp-pj-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.mp-pj-card-head h2{font-size:18px;font-weight:700;color:var(--fg-1);margin:0}
.mp-pj-card-meta{font-size:14px;color:var(--fg-3)}
.mp-pj-clines{list-style:none;margin:0;padding:0}
.mp-pj-cline{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--border-subtle)}
.mp-pj-cline:last-child{border-bottom:0}
.mp-pj-cline-ic{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--mp-chalk);color:var(--mp-pine)}
.mp-pj-cline-price{font-size:17px;font-weight:700;color:var(--fg-1);white-space:nowrap}
.mp-pj-ctot{padding-top:12px;border-top:1px solid var(--border-subtle);display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:14px;color:var(--fg-2)}
.mp-pj-ctot strong{font-size:20px;font-weight:700;color:var(--fg-1)}
.mp-pj-callout{display:flex;gap:14px;align-items:flex-start;background:var(--mp-chalk);border-radius:var(--radius-md);padding:16px 18px}
.mp-pj-callout-ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--mp-pine);flex-shrink:0}
.mp-pj-callout-title{font-size:15px;font-weight:600;color:var(--fg-1)}
.mp-pj-callout-sub{font-size:13.5px;color:var(--fg-3);margin-top:3px;line-height:1.5}
.mp-pj-next{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:28px 32px}
@media (max-width:560px){.mp-pj-next{padding:24px 20px}}
.mp-pj-next h2{font-size:18px;font-weight:700;color:var(--fg-1);margin:0 0 16px}
.mp-pj-next-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.mp-pj-next-item{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:flex-start}
.mp-pj-next-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--mp-deep-teal);color:var(--mp-chalk);font-size:13px;font-weight:700}
.mp-pj-next-title{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--fg-1)}
.mp-pj-next-title .mp-ic{color:var(--mp-pine)}
.mp-pj-next-text{font-size:14px;color:var(--fg-2);line-height:1.55;margin-top:4px}
