/* Nevo purchase journey: calm, explicit order states and mobile-first actions. */
.nv-flow { --nv-ink:#122b40; --nv-muted:#587083; --nv-line:#dce7ed; --nv-blue:#0876d8; --nv-soft:#f3f8fa; background:linear-gradient(#f7fafb,#f8fbfc); color:var(--nv-ink); padding:24px 0 82px; }
.nv-flow *, .nv-flow *::before, .nv-flow *::after { box-sizing:border-box; }
.nv-flow .container { width:min(1160px,calc(100% - 40px)); }
.nv-steps { display:flex; align-items:center; gap:15px; max-width:720px; padding:0 0 25px; border-bottom:1px solid var(--nv-line); color:#78909e; font-size:12px; font-weight:700; }
.nv-steps>span:not(.nv-steps-line) { display:flex; align-items:center; gap:8px; white-space:nowrap; }
.nv-steps b { display:grid; place-items:center; width:25px; height:25px; border:1px solid #d7e5eb; border-radius:50%; color:#718998; background:#fff; font-size:11px; }
.nv-steps .is-current { color:var(--nv-ink); }
.nv-steps .is-current b { border-color:var(--nv-blue); background:var(--nv-blue); color:#fff; }
.nv-steps .is-done { color:#087f81; }
.nv-steps .is-done b { border-color:#c8eae8; background:#e8f8f5; color:#087f81; }
.nv-steps-line { width:42px; height:1px; background:#d5e3e9; }
.nv-page-head { display:flex; justify-content:space-between; align-items:end; gap:22px; padding:29px 0 26px; }
.nv-page-head h1 { margin:4px 0 8px; font:700 clamp(32px,4vw,48px)/1.12 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing:-.045em; color:var(--nv-ink); }
.nv-page-head p:not(.nv-kicker) { max-width:650px; margin:0; color:var(--nv-muted); font-size:14px; line-height:1.6; }
.nv-kicker { margin:0; color:#087a9c; font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.nv-back { display:inline-flex; margin-bottom:19px; color:#2b6688; font-size:12px; font-weight:700; text-decoration:none; }
.nv-back:hover, .nv-text-link:hover { text-decoration:underline; }
.nv-count { flex:none; align-self:end; border:1px solid var(--nv-line); border-radius:8px; background:#fff; padding:9px 12px; color:#536c7e; font-size:12px; font-weight:700; }
.nv-columns { display:grid; grid-template-columns:minmax(0,1.58fr) minmax(290px,.82fr); align-items:start; gap:25px; }
.nv-main { min-width:0; }
.nv-plan, .nv-summary, .nv-empty, .nv-info-strip, .nv-state, .nv-order-progress { border:1px solid var(--nv-line); border-radius:16px; background:#fff; box-shadow:0 6px 24px rgba(24,57,77,.035); }
.nv-plan { display:grid; grid-template-columns:105px minmax(0,1fr); gap:21px; padding:19px; margin-bottom:12px; }
.nv-plan-mark { display:flex; flex-direction:column; justify-content:space-between; min-height:130px; border-radius:11px; padding:13px; background:#e6f3fb; color:#056eb4; }
.nv-plan-mark span { font-size:9px; font-weight:850; letter-spacing:.13em; }
.nv-plan-mark strong { align-self:end; font-size:23px; letter-spacing:-.07em; }
.nv-plan-info { min-width:0; }
.nv-plan-top { display:flex; justify-content:space-between; gap:14px; }
.nv-plan h2 { margin:5px 0 0; color:var(--nv-ink); font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:19px; font-weight:750; letter-spacing:-.025em; }
.nv-plan-price { flex:none; color:var(--nv-ink); font-size:17px; white-space:nowrap; }
.nv-plan-meta { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 16px; color:#577284; font-size:12px; }
.nv-plan-meta span:not(:last-child)::after { content:'·'; margin-left:8px; color:#a6b9c3; }
.nv-plan-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid #edf1f3; padding-top:13px; }
.nv-text-link, .nv-quantity button { color:#086eae; font-size:12px; font-weight:700; text-decoration:none; }
.nv-plan-actions, .nv-quantity { display:flex; align-items:center; gap:8px; }
.nv-plan-actions { gap:17px; }
.nv-quantity label { color:#5f7788; font-size:11px; }
.nv-quantity input { width:52px; min-height:34px; border:1px solid #cddfe8; border-radius:8px; padding:4px; text-align:center; color:var(--nv-ink); }
.nv-quantity button, .nv-remove { border:0; background:none; padding:5px 0; cursor:pointer; }
.nv-remove { color:#8c5360; font-size:12px; font-weight:700; }
.nv-info-strip { display:flex; align-items:start; gap:11px; margin-top:17px; padding:18px 20px; background:#f2f9fc; }
.nv-info-icon { display:grid; place-items:center; flex:none; width:22px; height:22px; border-radius:50%; background:#d4eef8; color:#096f9d; font-size:13px; font-weight:800; }
.nv-info-strip p { margin:0; color:#557184; font-size:12px; line-height:1.65; }
.nv-info-strip strong { color:var(--nv-ink); }
.nv-summary { position:sticky; top:90px; padding:25px; }
.nv-summary h2 { margin:6px 0 22px; color:var(--nv-ink); font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:22px; letter-spacing:-.03em; }
.nv-summary-row, .nv-summary-total { display:flex; justify-content:space-between; gap:10px; padding:10px 0; color:#587183; font-size:13px; }
.nv-summary-row strong { color:var(--nv-ink); }
.nv-summary-total { align-items:baseline; border-top:1px solid var(--nv-line); margin-top:11px; padding-top:17px; color:var(--nv-ink); font-weight:750; }
.nv-summary-total strong { font-size:23px; letter-spacing:-.04em; }
.nv-summary-note { margin:12px 0 21px; color:#607b8b; font-size:12px; line-height:1.6; }
.nv-button { display:inline-flex; justify-content:center; align-items:center; gap:20px; min-height:47px; border:1px solid #0069c5; border-radius:9px; padding:11px 16px; background:#0876d8; color:#fff; font-size:13px; font-weight:750; text-align:center; text-decoration:none; box-shadow:none; }
.nv-button:hover { background:#045fb4; color:#fff; }
.nv-button-wide { width:100%; justify-content:space-between; }
.nv-summary small { display:block; margin-top:12px; color:#738998; font-size:11px; text-align:center; }
.nv-mobile-action { display:none; }
.nv-empty { max-width:650px; margin:5px auto 70px; padding:55px 28px; text-align:center; }
.nv-empty-symbol { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 15px; border-radius:14px; background:#e9f5fb; color:#1682b1; font-size:32px; }
.nv-empty h2 { margin:0; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:24px; }
.nv-empty p { margin:10px 0 24px; color:var(--nv-muted); font-size:13px; }

/* Checkout: every decision stays visibly linked to the exact charge. */
.nv-flow .nevo-checkout-grid { display:grid; grid-template-columns:minmax(0,1.58fr) minmax(290px,.82fr); align-items:start; gap:25px; margin:0 auto 20px; }
.nv-flow .nevo-checkout-panel, .nv-flow .nevo-checkout-summary { border:1px solid var(--nv-line); border-radius:16px; box-shadow:0 6px 24px rgba(24,57,77,.035); }
.nv-flow .nevo-checkout-panel { padding:30px; }
.nv-flow .nevo-checkout-summary { position:sticky; top:90px; padding:25px; }
.nv-flow .nevo-checkout-section-head { margin:0 0 24px; }
.nv-flow .nevo-checkout-step { width:35px; height:35px; border-radius:9px; background:#e8f5fc; color:#0876a9; }
.nv-flow .nevo-checkout-section-head h2 { font-size:24px; letter-spacing:-.035em; }
.nv-flow .nevo-checkout-section-head p { color:#61798a; font-size:13px; }
.nv-flow .nevo-checkout-panel .field { border:1px solid #cbdce5; border-radius:9px; min-height:47px; }
.nv-flow .nevo-checkout-panel label { color:#264558; font-weight:700; }
.nv-flow .nevo-checkout-panel .primary-btn { border-radius:9px; background:#0876d8; box-shadow:none; }
.nv-flow .nevo-checkout-panel .primary-btn:hover { background:#045fb4; }
.nv-flow .nevo-checkout-panel .primary-btn:disabled { background:#b5c6cf; }
.nv-flow .nevo-code-sent { border:1px solid #d6e9ee; border-radius:12px; background:#f4fafc; }
.nv-flow .nevo-checkout-panel .notice { border:1px solid #dce9ee; border-radius:10px; background:#f4f9fb; color:#577182; }
.nv-flow .nevo-checkout-panel .notice>span:first-child { display:grid; place-items:center; flex:none; width:20px; height:20px; border-radius:50%; background:#d7ecf5; color:#13749b; font-size:12px; font-weight:800; }
.nv-flow .nevo-payment-section-title h3 { color:var(--nv-ink); }
.nv-flow .nevo-checkout-panel .nevo-payment-choice { min-height:76px; border:1px solid #d8e5ea; border-radius:11px; margin:9px 0; background:#fff; padding:12px 14px; box-shadow:none; }
.nv-flow .nevo-checkout-panel .nevo-payment-choice:hover, .nv-flow .nevo-checkout-panel .nevo-payment-choice:has(input:checked) { border-color:#1581c4; background:#f3faff; }
.nv-flow .nevo-payment-icon { border-radius:8px; background:#eaf4f9; color:#1b6b98; font-size:10px; }
.nv-flow .nevo-checkout-action { border:1px solid #d4e5ec; border-radius:11px; background:#f3f8fa; box-shadow:none; }
.nv-flow .nevo-checkout-action strong { color:var(--nv-ink); }
.nv-flow .nevo-checkout-summary h3 { color:var(--nv-ink); }
.nv-flow .nevo-checkout-summary .summary-row { gap:12px; }
.nv-flow .nevo-checkout-summary .summary-total { border:0; color:var(--nv-ink); }
.nv-flow .nevo-checkout-summary .summary-note { color:#627b8b; font-size:12px; line-height:1.6; }

/* Delivery: payment confirmation and profile readiness are different states. */
.nv-delivery-flow .nv-page-head { padding-bottom:19px; }
.nv-state { display:flex; gap:17px; align-items:flex-start; padding:25px; border-color:#cfe7ec; background:#f3fafb; }
.nv-state-icon { display:grid; place-items:center; flex:none; width:43px; height:43px; border-radius:12px; background:#dcedf5; color:#087ca7; font-size:21px; font-weight:800; }
.nv-state h2 { margin:3px 0 6px; color:var(--nv-ink); font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:24px; letter-spacing:-.03em; }
.nv-state p:not(.nv-kicker) { margin:0; color:#547082; font-size:13px; line-height:1.6; }
.nv-state-ready { border-color:#b9e6da; background:#f2fbf7; }
.nv-state-ready .nv-state-icon { background:#d5f1e5; color:#087f62; }
.nv-state-needs_attention, .nv-state-payment_failed { border-color:#ead5bf; background:#fffaf4; }
.nv-state-needs_attention .nv-state-icon, .nv-state-payment_failed .nv-state-icon { background:#f9e9d7; color:#a16625; }
.nv-order-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:14px 0 27px; padding:17px 22px; box-shadow:none; }
.nv-order-progress>div { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:start; gap:0 8px; padding:6px 12px; color:#8ba0ab; }
.nv-order-progress>div:not(:last-child) { border-right:1px solid var(--nv-line); }
.nv-order-progress span { grid-row:1/3; display:grid; place-items:center; width:25px; height:25px; border:1px solid #d8e4e9; border-radius:50%; font-size:10px; font-weight:800; }
.nv-order-progress strong { color:#506b7a; font-size:12px; }
.nv-order-progress small { margin-top:2px; font-size:11px; }
.nv-order-progress .is-done span { background:#e4f7ed; color:#0a795f; border-color:#caead8; }
.nv-order-progress .is-current span { background:#e7f2fc; color:#0876c9; border-color:#cde4f5; }
.nv-order-progress .is-alert span { background:#fff2de; color:#9e6827; border-color:#f1dfc5; }
.nv-delivery-flow .nevo-delivery-layout { max-width:100%; padding:0; }
.nv-delivery-flow .nevo-delivery-wait, .nv-delivery-flow .nevo-esim-card { border:1px solid var(--nv-line); border-radius:16px; box-shadow:0 6px 24px rgba(24,57,77,.035); }
.nv-delivery-flow .nevo-delivery-wait { max-width:100%; margin:0; padding:38px 25px; }
.nv-delivery-flow .nevo-delivery-wait-icon { background:#e9f3f8; color:#2379a0; font-size:20px; }
.nv-delivery-flow .nevo-delivery-wait.is-attention .nevo-delivery-wait-icon { background:#f9e9d7; color:#a16625; }
.nv-delivery-flow .nevo-delivery-wait h2 { font-size:22px; }
.nv-delivery-flow .nevo-esim-card { margin:0 0 20px; }
.nv-delivery-flow .nevo-esim-card-head h2, .nv-delivery-flow .nevo-esim-manual h3 { font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.nv-delivery-flow .nevo-esim-qr-panel, .nv-delivery-flow .nevo-esim-manual, .nv-delivery-flow .nevo-install-guide>div { border-color:var(--nv-line); border-radius:12px; background:#f9fcfd; }
.nv-delivery-flow .nevo-qr-box { border:1px solid #e0e9ed; border-radius:11px; background:#fff; box-shadow:none; }
.nv-delivery-flow .nevo-install-guide { gap:9px; }
.nv-delivery-flow .nevo-delivery-privacy { margin:19px auto 0; }

@media (max-width:900px) {
    .nv-columns, .nv-flow .nevo-checkout-grid { grid-template-columns:1fr; }
    .nv-summary, .nv-flow .nevo-checkout-summary { position:static; }
}
@media (max-width:640px) {
    .nv-flow { padding:15px 0 90px; }
    .nv-flow .container { width:min(100% - 28px,1160px); }
    .nv-steps { gap:7px; font-size:10px; padding-bottom:15px; }
    .nv-steps b { width:21px; height:21px; font-size:10px; }
    .nv-steps-line { width:12px; }
    .nv-page-head { align-items:start; padding:21px 0 19px; }
    .nv-page-head h1 { font-size:33px; }
    .nv-page-head p:not(.nv-kicker) { font-size:12px; }
    .nv-page-head .nv-count { display:none; }
    .nv-plan { grid-template-columns:1fr; gap:13px; padding:15px; }
    .nv-plan-mark { min-height:55px; flex-direction:row; align-items:center; }
    .nv-plan-mark strong { align-self:center; font-size:19px; }
    .nv-plan-top { flex-wrap:wrap; }
    .nv-plan-footer { align-items:start; flex-direction:column; }
    .nv-plan-actions { justify-content:space-between; width:100%; }
    .nv-summary { padding:21px; }
    .nv-cart-columns { padding-bottom:55px; }
    .nv-cart-columns .nv-summary .nv-button { display:none; }
    .nv-mobile-action { position:fixed; z-index:30; inset:auto 0 0; display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid #d7e4ea; background:#fff; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); box-shadow:0 -8px 28px rgba(25,55,75,.1); }
    .nv-mobile-action span, .nv-mobile-action strong { display:block; }
    .nv-mobile-action span { color:#688192; font-size:10px; }
    .nv-mobile-action strong { color:var(--nv-ink); font-size:17px; }
    .nv-mobile-action .nv-button { min-height:43px; }
    .nv-flow .nevo-checkout-grid { gap:16px; padding-bottom:100px; }
    .nv-flow .nevo-checkout-panel, .nv-flow .nevo-checkout-summary { padding:20px; }
    .nv-flow .nevo-checkout-action { position:fixed; z-index:30; inset:auto 0 0; display:flex; align-items:center; flex-direction:row; gap:12px; border:0; border-top:1px solid #d7e4ea; border-radius:0; margin:0; background:#fff; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); box-shadow:0 -8px 28px rgba(25,55,75,.1); }
    .nv-flow .nevo-checkout-action strong { font-size:17px; }
    .nv-flow .nevo-checkout-action .primary-btn { width:auto; max-width:52%; min-width:0; min-height:43px; padding:9px 12px; font-size:12px; }
    .nv-state { gap:12px; padding:19px; }
    .nv-state-icon { width:34px; height:34px; border-radius:9px; font-size:17px; }
    .nv-state h2 { font-size:20px; }
    .nv-order-progress { gap:7px; padding:12px; }
    .nv-order-progress>div { display:block; padding:3px; border:0 !important; }
    .nv-order-progress span { margin-bottom:5px; }
    .nv-order-progress strong, .nv-order-progress small { display:block; font-size:10px; line-height:1.35; }
    .nv-delivery-flow .nevo-delivery-wait { padding:28px 20px; }
}
@media (max-width:380px) {
    .nv-steps { font-size:9px; }
    .nv-steps-line { width:5px; }
    .nv-plan-actions { gap:8px; }
    .nv-quantity label { display:none; }
    .nv-flow .nevo-checkout-action .primary-btn { max-width:50%; font-size:11px; }
}
