.plan-page {
    min-height: 70vh;
    padding: 34px 0 82px;
    background:
        radial-gradient(circle at 8% 3%, rgba(201,164,93,.10), transparent 22%),
        radial-gradient(circle at 90% 14%, rgba(3,52,107,.08), transparent 25%),
        #f4f7fb;
}

.plan-shell {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.plan-back { margin-bottom: 18px; }
.plan-back a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #52667d;
    text-decoration: none;
    font-size: 12px;
    font-weight: 750;
}
.plan-back__icon {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: #03346b;
    box-shadow: 0 6px 18px rgba(3,52,107,.08);
    transition: transform .2s ease;
}
.plan-back a:hover .plan-back__icon { transform: translateX(-3px); }

.plan-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 26px;
    align-items: start;
}
.plan-detail { min-width: 0; display: grid; gap: 18px; }

.plan-destinations {
    position: relative;
    overflow: hidden;
    padding: 24px 26px;
    border: 1px solid rgba(3,52,107,.10);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(3,52,107,.055);
}
.plan-destinations::after {
    content: "";
    position: absolute;
    right: -45px;
    top: -60px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: rgba(201,164,93,.08);
    pointer-events: none;
}
.plan-destinations__heading {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
}
.plan-destinations__heading p {
    margin: 0 0 3px;
    color: #a17a36;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .15em;
}
.plan-destinations__heading h2 {
    margin: 0;
    color: #03346b;
    font-size: 22px;
    line-height: 1.25;
}
.plan-destinations__heading strong {
    color: #03346b;
    font-size: 27px;
    line-height: 1;
}
.plan-destinations__heading strong span { margin-left: 2px; font-size: 10px; color: #78889a; }
.plan-destinations__list {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.plan-destinations__list a {
    display: inline-flex;
    min-height: 31px;
    align-items: center;
    padding: 5px 11px;
    border: 1px solid #dce6ef;
    border-radius: 999px;
    background: #f6f9fc;
    color: #36516f;
    text-decoration: none;
    font-size: 10px;
    font-weight: 700;
    transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}
.plan-destinations__list a:hover {
    transform: translateY(-1px);
    border-color: rgba(201,164,93,.52);
    background: #fff8e9;
    color: #7f5f25;
}
.plan-destinations__empty { margin: 0; color: #7a899a; font-size: 12px; }

.plan-hero-card {
    position: relative;
    overflow: hidden;
    padding: 34px;
    border-radius: 28px;
    background:
        radial-gradient(circle at 82% 14%, rgba(201,164,93,.18), transparent 28%),
        linear-gradient(145deg, #032d60 0%, #03346b 52%, #074881 100%);
    color: #fff;
    box-shadow: 0 24px 54px rgba(3,52,107,.20);
}
.plan-hero-card__glow {
    position: absolute;
    right: -90px;
    bottom: -110px;
    width: 300px;
    height: 300px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 50%;
    box-shadow: 0 0 0 34px rgba(255,255,255,.025), 0 0 0 70px rgba(255,255,255,.018);
}
.plan-hero-card__content {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 32px;
}
.plan-eyebrow {
    margin: 0 0 8px;
    color: #e7cf98;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .18em;
}
.plan-hero-card h1 {
    margin: 0;
    font-size: clamp(38px, 6vw, 66px);
    line-height: 1;
    letter-spacing: -.04em;
}
.plan-hero-card h1 small {
    color: rgba(255,255,255,.70);
    font-size: .36em;
    font-weight: 650;
    letter-spacing: 0;
}
.plan-hero-card__lead {
    max-width: 560px;
    margin: 18px 0 0;
    color: rgba(255,255,255,.70);
    font-size: 13px;
    line-height: 1.85;
}
.plan-price-panel {
    flex: 0 0 auto;
    min-width: 190px;
    padding: 20px 22px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 20px;
    background: rgba(255,255,255,.09);
    backdrop-filter: blur(8px);
}
.plan-price-panel > span {
    display: block;
    color: #e5cb90;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .18em;
}
.plan-price-panel strong {
    display: block;
    margin-top: 5px;
    color: #fff;
    font-size: clamp(32px, 4vw, 44px);
    line-height: 1.1;
    overflow-wrap: anywhere;
}
.plan-price-panel small { display: block; margin-top: 4px; color: rgba(255,255,255,.58); font-size: 10px; }

.plan-spec-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 10px;
    margin-top: 32px;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.14);
}
.plan-spec {
    min-width: 0;
    padding: 15px 16px;
    border-radius: 16px;
    background: rgba(255,255,255,.075);
}
.plan-spec > span { display: block; color: #dcc38c; font-size: 8px; font-weight: 850; letter-spacing: .14em; }
.plan-spec strong { display: block; margin-top: 4px; color: #fff; font-size: 23px; line-height: 1.2; overflow-wrap: anywhere; }
.plan-spec strong em { margin-left: 3px; font-style: normal; font-size: 11px; font-weight: 650; color: rgba(255,255,255,.65); }
.plan-spec small { display: block; margin-top: 4px; color: rgba(255,255,255,.48); font-size: 9px; }

.plan-purchase-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 28px 30px;
    border: 1px solid rgba(3,52,107,.10);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(3,52,107,.06);
}
.plan-purchase-card__copy { min-width: 0; }
.plan-purchase-card__copy p { margin: 0 0 4px; color: #a17a36; font-size: 9px; font-weight: 850; letter-spacing: .15em; }
.plan-purchase-card__copy h2 { margin: 0; color: #03346b; font-size: 23px; }
.plan-purchase-card__copy span { display: block; margin-top: 8px; color: #6f8093; font-size: 11px; line-height: 1.7; }
.plan-purchase-card__actions { flex: 0 0 280px; display: grid; gap: 9px; }
.plan-button {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 8px 7px 18px;
    border-radius: 999px;
    text-decoration: none;
    font-size: 15px;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(3,52,107,.10);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.plan-button--primary {
    background: linear-gradient(135deg, #b58a3e 0%, #d0ad67 48%, #e3ca94 100%);
    color: #042e5c;
}
.plan-button--secondary {
    background: linear-gradient(135deg, #03346b 0%, #075193 100%);
    color: #fff;
}
.plan-button--secondary:hover{
    color:#fff;
}
.plan-button__icon {
    display: grid;
    flex: 0 0 35px;
    width: 35px;
    height: 35px;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.76);
    color: #03346b;
    font-size: 14px;
}
.plan-button--secondary .plan-button__icon { background: rgba(255,255,255,.14); color: #fff; }
.plan-button:hover { transform: translateY(-2px); box-shadow: 0 15px 30px rgba(3,52,107,.15); filter: saturate(1.06); }

.plan-sidebar { position: sticky; top: 96px; }
.recent-esim {
    overflow: hidden;
    border: 1px solid rgba(3,52,107,.10);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(3,52,107,.065);
}
.recent-esim__heading { padding: 20px 20px 16px; border-bottom: 1px solid #edf1f5; }
.recent-esim__heading p { margin: 0 0 4px; color: #a17b39; font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.recent-esim__heading h2 { margin: 0; color: #03346b; font-size: 18px; }
.recent-esim__list { padding: 7px 12px 12px; }
.recent-esim__empty { margin: 0; padding: 14px 8px; color: #8b97a5; font-size: 11px; line-height: 1.7; }
.recent-esim__item { display: block; padding: 12px 8px; border-bottom: 1px solid #edf1f5; color: inherit; text-decoration: none; }
.recent-esim__item:last-child { border-bottom: 0; }
.recent-esim__item:hover { color: inherit; background: #f8fafc; }
.recent-esim__country { color: #748397; font-size: 10px; }
.recent-esim__spec { display: flex; gap: 6px; margin-top: 4px; color: #03346b; font-size: 16px; font-weight: 800; }
.recent-esim__price { margin-top: 5px; color: #56697f; font-size: 11px; }

.plan-empty {
    padding: 72px 24px;
    border: 1px solid #dce5ee;
    border-radius: 24px;
    background: #fff;
    text-align: center;
}
.plan-empty__mark { display: grid; width: 64px; height: 64px; place-items: center; margin: 0 auto 18px; border-radius: 50%; background: #eef3f8; color: #03346b; font-size: 24px; font-weight: 850; }
.plan-empty h1 { margin: 0; color: #03346b; }
.plan-empty p { margin: 10px 0 22px; color: #718196; font-size: 12px; }
.plan-empty a { display: inline-flex; min-height: 46px; align-items: center; padding: 8px 22px; border-radius: 999px; background: linear-gradient(135deg,#03346b,#075193); color: #fff; text-decoration: none; font-weight: 800; }

@media (max-width: 980px) {
    .plan-layout { grid-template-columns: 1fr; }
    .plan-sidebar { display: none; }
}

@media (max-width: 700px) {
    .plan-page { padding: 22px 0 58px; }
    .plan-shell { width: min(100% - 24px, 1180px); }
    .plan-destinations { padding: 20px 18px; border-radius: 19px; }
    .plan-destinations__heading h2 { font-size: 19px; }
    .plan-destinations__heading strong { font-size: 23px; }
    .plan-destinations__list { gap: 6px; }
    .plan-destinations__list a { min-height: 29px; padding: 4px 9px; font-size: 9px; }
    .plan-hero-card { padding: 25px 20px; border-radius: 22px; }
    .plan-hero-card__content { flex-direction: column; gap: 24px; }
    .plan-hero-card h1 { font-size: 43px; }
    .plan-hero-card__lead { font-size: 11px; }
    .plan-price-panel { width: 100%; min-width: 0; padding: 16px 18px; }
    .plan-price-panel strong { font-size: 35px; }
    .plan-spec-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 24px; padding-top: 18px; }
    .plan-spec { padding: 11px 8px; border-radius: 12px; }
    .plan-spec strong { font-size: 16px; }
    .plan-spec small { font-size: 7px; }
    .plan-purchase-card { flex-direction: column; align-items: stretch; padding: 22px 18px; border-radius: 20px; }
    .plan-purchase-card__actions { flex-basis: auto; width: 100%; }
    .plan-button { width: 100%; }
}

@media (max-width: 420px) {
    .plan-spec-grid { grid-template-columns: 1fr 1fr; }
    .plan-spec:last-child { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
    .plan-back__icon,
    .plan-destinations__list a,
    .plan-button { transition: none; }
}

/* v02 refinement */
.plan-destinations__heading { align-items: center; }
.plan-destinations__heading h2 { font-size: clamp(24px,3vw,34px); letter-spacing: -.035em; }
.plan-destinations__count { flex: 0 0 auto; min-width: 88px; padding: 10px 13px; border: 1px solid rgba(3,52,107,.09); border-radius: 15px; background: #f7f9fc; text-align: right; }
.plan-destinations__count > span { display:block; margin-bottom:3px; color:#9a7533; font-size:8px; font-weight:850; letter-spacing:.14em; }
.plan-destinations__count strong { display:block; color:#03346b; font-size:24px; line-height:1; }
.plan-destinations__count strong em { margin-left:2px; color:#718196; font-size:9px; font-style:normal; }
.plan-hero-card__lead,
.plan-spec-grid { display:none !important; }
.plan-hero-card { padding: 38px 36px; }
.plan-hero-card__content { align-items:center; }
.plan-hero-card__capacity { color:#fff !important; text-shadow:0 2px 16px rgba(0,0,0,.22); -webkit-text-fill-color:#fff; }
.plan-hero-card h1 { display:flex; align-items:flex-end; gap:9px; }
.plan-hero-card h1 small { padding-bottom:5px; color:#ecd7a8; font-size:.34em; }
.plan-price-panel { background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.24); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }
.recent-esim__price { display:inline-flex; margin-top:8px; padding:5px 9px; border:1px solid rgba(201,164,93,.22); border-radius:999px; background:#faf6ed; color:#76561d; font-size:14px; font-weight:850; line-height:1.15; }

.plan-related { padding:30px; border:1px solid rgba(3,52,107,.10); border-radius:26px; background:#fff; box-shadow:0 14px 38px rgba(3,52,107,.06); }
.plan-related__heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.plan-related__heading p { margin:0 0 4px; color:#a17a36; font-size:9px; font-weight:850; letter-spacing:.15em; }
.plan-related__heading h2 { margin:0; color:#03346b; font-size:24px; letter-spacing:-.025em; }
.plan-related__heading > span { max-width:280px; color:#8290a0; font-size:10px; line-height:1.6; text-align:right; }
.plan-related__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.related-esim-card { position:relative; overflow:hidden; padding:18px; border:1px solid #e3eaf1; border-radius:19px; background:linear-gradient(180deg,#fff,#f8fafc); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.related-esim-card:hover { transform:translateY(-3px); border-color:rgba(201,164,93,.45); box-shadow:0 15px 30px rgba(3,52,107,.10); }
.related-esim-card__top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.related-esim-card__country { color:#546b83; font-size:10px; font-weight:750; }
.related-esim-card__score { padding:4px 7px; border-radius:999px; background:#fff5df; color:#8b6829; font-size:8px; font-weight:750; }
.related-esim-card__score strong { font-size:11px; }
.related-esim-card__spec { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:13px; }
.related-esim-card__spec > div { padding:11px; border-radius:13px; background:#eef4f9; }
.related-esim-card__spec small { display:block; color:#8090a1; font-size:7px; font-weight:850; letter-spacing:.12em; }
.related-esim-card__spec strong { display:block; margin-top:3px; color:#03346b; font-size:17px; }
.related-esim-card__spec em { margin-left:2px; font-size:9px; font-style:normal; }
.related-esim-card__price { display:flex; align-items:baseline; gap:6px; margin-top:14px; }
.related-esim-card__price small { color:#8795a4; font-size:9px; }
.related-esim-card__price strong { color:#03346b; font-size:22px; letter-spacing:-.03em; }
.related-esim-card__price span { color:#8795a4; font-size:9px; }
.related-esim-card > a { display:flex; align-items:center; justify-content:space-between; min-height:42px; margin-top:13px; padding:7px 9px 7px 14px; border-radius:999px; background:linear-gradient(135deg,#03346b,#075193); color:#fff; text-decoration:none; font-size:10px; font-weight:800; }
.related-esim-card > a span { display:grid; width:27px; height:27px; place-items:center; border-radius:50%; background:rgba(255,255,255,.14); }

@media (max-width:700px) {
  .plan-hero-card { padding:27px 21px; }
  .plan-hero-card__content { gap:20px; }
  .plan-hero-card h1 { display:block; }
  .plan-hero-card h1 small { display:block; margin-top:8px; padding-bottom:0; font-size:16px; }
  .plan-related { padding:22px 16px; border-radius:21px; }
  .plan-related__heading { display:block; }
  .plan-related__heading h2 { font-size:20px; }
  .plan-related__heading > span { display:block; margin-top:8px; text-align:left; }
  .plan-related__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .related-esim-card { padding:12px; border-radius:15px; }
  .related-esim-card__top { align-items:flex-start; flex-direction:column; gap:5px; }
  .related-esim-card__spec { gap:5px; }
  .related-esim-card__spec > div { padding:8px; }
  .related-esim-card__spec strong { font-size:14px; }
  .related-esim-card__price { flex-wrap:wrap; gap:4px; }
  .related-esim-card__price strong { font-size:18px; }
  .related-esim-card > a { min-height:38px; padding-left:10px; font-size:9px; }
}

/* v03: cart summary in plan sidebar */
.plan-sidebar {
    display: grid;
    gap: 20px;
}

.plan-cart-summary {
    overflow: hidden;
    border: 1px solid rgba(3,52,107,.11);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(3,52,107,.065);
}

.plan-cart-summary__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 18px 15px;
    border-bottom: 1px solid #edf1f5;
}

.plan-cart-summary__heading p {
    margin: 0 0 4px;
    color: #a17b39;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .14em;
}

.plan-cart-summary__heading h2 {
    margin: 0;
    color: #03346b;
    font-size: 18px;
}

.plan-cart-summary__count {
    display: grid;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    place-items: center;
    border-radius: 999px;
    background: #c9a45d;
    color: #03346b;
    font-size: 12px;
    font-weight: 900;
}

.plan-cart-summary__items {
    max-height: 330px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 4px 14px;
    scrollbar-width: thin;
    scrollbar-color: #cbd7e3 transparent;
}

.plan-cart-summary__item {
    padding: 13px 2px;
    border-bottom: 1px solid #edf1f5;
}

.plan-cart-summary__item:last-child {
    border-bottom: 0;
}

.plan-cart-summary__item > a {
    display: block;
    color: inherit;
    text-decoration: none;
}

.plan-cart-summary__item > a:hover strong {
    color: #075193;
}

.plan-cart-summary__item strong {
    display: block;
    color: #03346b;
    font-size: 13px;
    line-height: 1.45;
}

.plan-cart-summary__item > a > span,
.plan-cart-summary__item > span {
    display: block;
    margin-top: 3px;
    color: #718398;
    font-size: 10px;
    line-height: 1.55;
}

.plan-cart-summary__item > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-top: 7px;
}

.plan-cart-summary__item small {
    color: #8491a0;
    font-size: 9px;
}

.plan-cart-summary__item b {
    color: #76561d;
    font-size: 14px;
}

.plan-cart-summary__item.is-unavailable {
    opacity: .62;
}

.plan-cart-summary__footer {
    padding: 14px 16px 16px;
    border-top: 1px solid #edf1f5;
    background: #f8fafc;
}

.plan-cart-summary__footer > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 11px;
}

.plan-cart-summary__footer > div span {
    color: #718398;
    font-size: 10px;
    font-weight: 700;
}

.plan-cart-summary__footer > div strong {
    color: #03346b;
    font-size: 18px;
}

.plan-cart-summary__footer > a {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 8px 7px 14px;
    border-radius: 999px;
    background: linear-gradient(135deg,#03346b,#075193);
    color: #fff;
    text-decoration: none;
    font-size: 11px;
    font-weight: 850;
}

.plan-cart-summary__footer > a:hover {
    color: #fff;
    box-shadow: 0 9px 20px rgba(3,52,107,.16);
}

.plan-cart-summary__footer > a span:last-child {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
}

/* Confirmed network carrier information */
.plan-carrier-info,.ai-search-result__carrier{font-size:.88rem;line-height:1.55;font-weight:600;margin:10px 0 2px;overflow-wrap:anywhere;color:inherit}
.plan-carrier-note,.ai-search-result__carrier small{display:block;font-size:.75rem;line-height:1.5;margin:1px 0 8px;opacity:.78}
.ai-search-result__split-notice,.ai-split-notice{font-size:.86rem;line-height:1.5;margin:6px 0;color:#9a5119;font-weight:600}
