:root{
  --ink:#0C0F2B;--ink-2:#161A45;
  --violet:#5B4BE8;--violet-lo:#8272FF;--violet-dk:#3B2FB5;--violet-wash:#F0EDFF;
  --sky:#1FA9EA;--flame:#FF6A3D;--flame-dk:#F2521F;--mint:#0FA971;--mint-wash:#E4F7EF;
  --paper:#F6F5FC;--line:#E8E7F3;--line-2:#D8D6EA;--muted:#5C5F82;--dim:#84879F;
  --r-s:10px;--r-m:16px;--r-l:22px;--r-xl:30px;
  --sh-1:0 1px 2px rgba(12,15,43,.05),0 6px 18px rgba(12,15,43,.05);
  --sh-2:0 2px 5px rgba(12,15,43,.06),0 18px 40px rgba(12,15,43,.09);
  --sh-3:0 6px 12px rgba(12,15,43,.08),0 34px 70px rgba(12,15,43,.16);
  --wrap:1240px;
}*{box-sizing:border-box}body.esn-v3-page{margin:0;background:var(--paper);color:var(--ink)}.esn-v3{font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.62;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}.esn-v3 img{max-width:100%;display:block}.esn-v3 a{color:inherit;text-decoration:none}.esn-v3 button{font:inherit;color:inherit}.esn-v3 h1,.esn-v3 h2,.esn-v3 h3{margin:0;font-weight:800;letter-spacing:-.03em;line-height:1.07}.esn-v3 h1{font-size:clamp(2.6rem,6vw,4.7rem)}.esn-v3 h2{font-size:clamp(1.95rem,4.2vw,3.15rem)}.esn-v3 h3{font-size:1.1rem;letter-spacing:-.015em;line-height:1.28}.esn-v3 p{margin:0}.esn-v3 .wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}.esn-v3 .sec{padding:88px 0}.esn-v3 .sec-sm{padding:56px 0}.esn-v3 :focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:8px}.esn-v3 .split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;margin-bottom:42px}.esn-v3 .split p{color:var(--muted);font-size:1.05rem;max-width:34em;padding-top:9px}.esn-v3 .head-row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:32px}.esn-v3 .viewall{font-weight:700;color:var(--violet);font-size:.95rem;white-space:nowrap}.esn-v3 .viewall:hover{text-decoration:underline}.esn-v3 .sq{width:11px;height:11px;background:var(--flame);border-radius:3px;display:inline-block;transform:rotate(14deg);margin-right:14px;vertical-align:middle}
@media(max-width:860px){.esn-v3 .split{grid-template-columns:1fr;gap:18px}}.esn-v3 .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;cursor:pointer;
  font-weight:700;border-radius:13px;padding:14px 24px;font-size:.98rem;
  transition:transform .13s ease,box-shadow .13s ease,background .13s ease}.esn-v3 .btn-flame{background:linear-gradient(180deg,var(--flame),var(--flame-dk));color:#fff;box-shadow:0 2px 4px rgba(242,82,31,.28),0 12px 26px rgba(242,82,31,.3)}.esn-v3 .btn-flame:hover{transform:translateY(-1px)}.esn-v3 .btn-vio{background:linear-gradient(180deg,var(--violet-lo),var(--violet));color:#fff;box-shadow:0 2px 4px rgba(59,47,181,.2),0 12px 26px rgba(91,75,232,.28)}.esn-v3 .btn-vio:hover{transform:translateY(-1px)}.esn-v3 .btn-ghost{background:#fff;border:1px solid var(--line-2)}.esn-v3 .btn-ghost:hover{border-color:var(--ink)}.esn-v3 .btn-white{background:#fff;color:var(--violet)}.esn-v3 .btn-outline{background:transparent;border:1.5px solid rgba(255,255,255,.55);color:#fff}.esn-v3 .btn-outline:hover{background:rgba(255,255,255,.12)}.esn-v3 .btn-sm{padding:10px 17px;font-size:.88rem;border-radius:11px}/* header */
.esn-v3 .hdr-space{height:22px}.esn-v3 .hdr{position:sticky;top:14px;z-index:70;padding:0 24px}.esn-v3 .hdr-in{max-width:var(--wrap);margin:0 auto;background:#fff;border-radius:20px;box-shadow:var(--sh-2);
  display:flex;align-items:center;gap:16px;padding:12px 18px}.esn-v3 .brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:1.12rem;letter-spacing:-.035em}.esn-v3 .brand i{width:32px;height:32px;border-radius:10px;background:linear-gradient(145deg,var(--violet-lo),var(--ink));
  display:grid;place-items:center;color:#fff;font-style:normal;font-size:.78rem;font-weight:800}.esn-v3 .brand span{color:var(--sky)}.esn-v3 .mainnav{display:flex;gap:4px;font-size:.93rem;font-weight:700}.esn-v3 .mainnav a{padding:9px 12px;border-radius:11px;color:var(--muted)}.esn-v3 .mainnav a:hover{background:var(--paper);color:var(--ink)}.esn-v3 .mainnav a.hot{background:#FFF1EB;color:var(--flame-dk)}.esn-v3 .hsearch{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:var(--paper);
  border:1px solid var(--line);border-radius:13px;padding:10px 14px;color:var(--dim);font-size:.92rem}.esn-v3 .hsearch input{border:0;background:none;outline:0;width:100%;font:inherit;color:var(--ink)}.esn-v3 .hend{display:flex;align-items:center;gap:8px}.esn-v3 .sel{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:12px;
  padding:9px 12px;font-weight:700;font-size:.86rem;cursor:pointer;white-space:nowrap}.esn-v3 .sel:hover{border-color:var(--line-2)}
@media(max-width:1180px){.esn-v3 .mainnav{display:none}}
@media(max-width:780px){.esn-v3 .hsearch{display:none}}/* ---------- 01 hero ---------- */
.esn-v3 .hero{position:relative;text-align:center;padding:72px 0 18px;overflow:hidden}.esn-v3 .hero:before{content:"";position:absolute;left:50%;top:-190px;width:1100px;height:640px;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(130,114,255,.24),transparent 72%);pointer-events:none}.esn-v3 .hero-in{position:relative;z-index:6;max-width:900px;margin:0 auto;padding:0 24px}.esn-v3 .hero h1 .g{background:linear-gradient(96deg,var(--violet),var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent}.esn-v3 .hero-sub{color:var(--muted);font-size:1.12rem;margin-top:20px;font-weight:500}.esn-v3 .hero-form{margin:30px auto 0;max-width:640px;display:flex;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:18px;padding:9px;box-shadow:var(--sh-2);position:relative}.esn-v3 .hero-form .sIcon{position:absolute;left:26px;top:50%;transform:translateY(-50%);color:var(--dim)}.esn-v3 .hero-form input{flex:1;border:0;outline:0;background:none;font:inherit;font-size:1.02rem;font-weight:600;padding:14px 10px 14px 40px;min-width:0}.esn-v3 .hero-form input::placeholder{color:var(--dim);font-weight:500}.esn-v3 .sugg{position:absolute;left:0;right:0;top:calc(100% + 10px);background:#fff;border-radius:16px;box-shadow:var(--sh-3);
  padding:7px;display:none;z-index:40;text-align:left;max-height:300px;overflow:auto}.esn-v3 .sugg.on{display:block}.esn-v3 .sugg a{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:11px;font-weight:600;font-size:.95rem}.esn-v3 .sugg a:hover,.esn-v3 .sugg a:focus{background:var(--violet-wash)}.esn-v3 .sugg img{width:26px;height:19px;object-fit:cover;border-radius:4px;box-shadow:0 0 0 1px rgba(0,0,0,.1)}.esn-v3 .sugg em{margin-left:auto;font-style:normal;color:var(--dim);font-size:.85rem;font-weight:600}.esn-v3 .sugg .none{padding:15px 13px;color:var(--muted);font-size:.93rem}.esn-v3 .chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}.esn-v3 .chip{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:8px 14px;font-weight:700;font-size:.88rem;box-shadow:var(--sh-1)}.esn-v3 .chip img{width:19px;height:14px;object-fit:cover;border-radius:3px}.esn-v3 .chip:hover{border-color:var(--violet);color:var(--violet)}
@media(max-width:560px){.esn-v3 .hero-form{flex-wrap:wrap}.esn-v3 .hero-form input{flex:1 1 100%;padding:12px 10px 12px 40px}.esn-v3 .hero-form .btn{width:100%}
}/* coupon tickets */
.esn-v3 .tickets{position:absolute;inset:0;pointer-events:none;z-index:4}.esn-v3 .tk{position:absolute;pointer-events:auto;width:214px;color:#fff;border-radius:13px;padding:13px 17px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:linear-gradient(135deg,var(--violet-lo),var(--violet-dk));box-shadow:var(--sh-3)}.esn-v3 .tk:before,.esn-v3 .tk:after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;background:var(--paper);top:50%;margin-top:-7.5px}.esn-v3 .tk:before{left:-8px}.esn-v3 .tk:after{right:-8px}.esn-v3 .tk .tkl{min-width:0;font-family:"JetBrains Mono",ui-monospace,monospace}.esn-v3 .tk .b{display:block;font-size:.62rem;font-weight:700;letter-spacing:.09em;opacity:.8;white-space:nowrap;line-height:1.3}.esn-v3 .tk .c{display:block;font-size:.82rem;font-weight:700;margin-top:4px;letter-spacing:.02em;white-space:nowrap;line-height:1.3}.esn-v3 .tk .o{flex:none;font-size:1.16rem;font-weight:800;letter-spacing:-.03em;line-height:1}.esn-v3 .tk1{left:1.5%;top:96px;transform:rotate(-7deg)}.esn-v3 .tk2{left:0;top:206px;transform:rotate(3deg)}.esn-v3 .tk3{left:2.5%;top:316px;transform:rotate(-4deg)}.esn-v3 .tk4{right:1.5%;top:88px;transform:rotate(6deg)}.esn-v3 .tk5{right:0;top:200px;transform:rotate(-3deg)}.esn-v3 .tk6{right:2.5%;top:310px;transform:rotate(5deg)}
@media(max-width:1340px){.esn-v3 .tk{width:194px;padding:12px 14px}.esn-v3 .tk .o{font-size:1.04rem}}
@media(max-width:1180px){.esn-v3 .tickets{position:static;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:34px;pointer-events:auto}.esn-v3 .tk{position:static;transform:none;width:auto;min-width:174px;box-shadow:var(--sh-2)}.esn-v3 .tk:before,.esn-v3 .tk:after{display:none}
}/* ---------- 02 scale strip ---------- */
.esn-v3 .scale{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.esn-v3 .scale-in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:20px 0}.esn-v3 .scale .s{display:flex;align-items:baseline;gap:9px}.esn-v3 .scale .s b{font-size:1.28rem;font-weight:800;letter-spacing:-.03em}.esn-v3 .scale .s span{font-size:.83rem;color:var(--muted);font-weight:600}.esn-v3 .scale .sync{display:flex;align-items:center;gap:9px;font-size:.83rem;color:var(--muted);font-weight:600}.esn-v3 .scale .sync i{width:7px;height:7px;border-radius:50%;background:var(--mint);display:block;box-shadow:0 0 0 4px rgba(15,169,113,.15)}/* ---------- 03 destinations ---------- */
.esn-v3 .dgrid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:16px}.esn-v3 .dc{position:relative;border-radius:var(--r-l);overflow:hidden;background:var(--ink);box-shadow:var(--sh-1);display:block}.esn-v3 .dc .bg{position:absolute;inset:-30%;background-size:cover;background-position:center;filter:blur(26px) saturate(1.7)}.esn-v3 .dc .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,15,43,.05) 24%,rgba(12,15,43,.87) 100%)}.esn-v3 .dc .lbl{position:absolute;left:16px;right:16px;bottom:14px;color:#fff}.esn-v3 .dc .lbl .n{display:flex;align-items:center;gap:9px;font-weight:800;font-size:1.04rem;letter-spacing:-.02em}.esn-v3 .dc .lbl .n img{width:23px;height:17px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.4)}.esn-v3 .dc .lbl .m{display:block;font-size:.82rem;font-weight:600;color:#C9CCEA;margin-top:3px}.esn-v3 .dc .price{position:absolute;top:13px;right:13px;background:rgba(255,255,255,.94);color:var(--ink);
  border-radius:10px;padding:6px 10px;font-weight:800;font-size:.82rem}.esn-v3 .dc .photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;
  transition:opacity .55s ease,transform .5s ease}.esn-v3 .dc .photo.on{opacity:1}.esn-v3 .dc:hover .photo.on{transform:scale(1.06)}.esn-v3 .dc:hover .bg{filter:blur(20px) saturate(2)}.esn-v3 .dc.big{grid-column:span 2;grid-row:span 2}.esn-v3 .dc.wide{grid-column:span 2}.esn-v3 .dc-all{grid-column:span 2;border:1px dashed var(--line-2);border-radius:var(--r-l);background:#fff;
  display:flex;flex-direction:column;justify-content:center;padding:22px 26px}.esn-v3 .dc-all b{font-size:1.5rem;font-weight:800;letter-spacing:-.03em}.esn-v3 .dc-all span{color:var(--muted);font-size:.9rem;margin:4px 0 14px}.esn-v3 .dc-all:hover{border-color:var(--violet)}
@media(max-width:1000px){.esn-v3 .dgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.esn-v3 .dgrid{grid-template-columns:1fr;grid-auto-rows:158px}.esn-v3 .dc.big,.esn-v3 .dc.wide,.esn-v3 .dc-all{grid-column:span 1}.esn-v3 .dc.big{grid-row:span 1}.esn-v3 .dc-all{min-height:158px}}/* ---------- 04 need cards ---------- */
.esn-v3 .needs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.esn-v3 .need{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:26px;box-shadow:var(--sh-1);
  display:flex;flex-direction:column;transition:transform .14s ease,box-shadow .14s ease}.esn-v3 .need:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.esn-v3 .need .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff;margin-bottom:20px;
  background:linear-gradient(140deg,var(--violet-lo),var(--violet-dk))}.esn-v3 .need .ic.f{background:linear-gradient(140deg,#FF9A5A,var(--flame-dk))}.esn-v3 .need .ic.s{background:linear-gradient(140deg,#5DD3F5,#0F86C4)}.esn-v3 .need .ic.m{background:linear-gradient(140deg,#43D3A0,#0B7A52)}.esn-v3 .need h3{font-size:1.35rem;margin-bottom:7px}.esn-v3 .need p{color:var(--muted);font-size:.93rem}.esn-v3 .need .cnt{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-weight:800;font-size:.92rem}.esn-v3 .need .cnt span{color:var(--dim);font-weight:600;font-size:.85rem;margin-left:6px}.esn-v3 .need .also{margin-top:10px;font-size:.85rem;color:var(--violet);font-weight:700}
@media(max-width:960px){.esn-v3 .needs{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.esn-v3 .needs{grid-template-columns:1fr}}/* ---------- 05 value table ---------- */
.esn-v3 .vtable{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1);overflow:hidden}.esn-v3 .vrow{display:grid;grid-template-columns:44px 1.5fr 1fr 1fr .9fr auto;gap:18px;align-items:center;
  padding:18px 26px;border-bottom:1px solid var(--line)}.esn-v3 .vhead{background:#FBFAFF;font-size:.7rem;font-weight:800;letter-spacing:.11em;color:var(--dim);padding:14px 26px}.esn-v3 .vrow:last-child{border-bottom:0}.esn-v3 .vrow:hover{background:#FBFAFF}.esn-v3 .rank-n{width:30px;height:30px;border-radius:9px;background:var(--violet-wash);color:var(--violet);
  display:grid;place-items:center;font-weight:800;font-size:.85rem}.esn-v3 .vrow .who{display:flex;align-items:center;gap:11px;font-weight:700;min-width:0}.esn-v3 .vrow .who img{width:26px;height:19px;object-fit:cover;border-radius:4px;box-shadow:0 0 0 1px rgba(12,15,43,.14);flex:none}.esn-v3 .vrow .who small{display:block;color:var(--dim);font-weight:600;font-size:.8rem}.esn-v3 .vrow .cell{font-weight:700;font-size:.94rem}.esn-v3 .vrow .cell small{display:block;color:var(--dim);font-weight:600;font-size:.76rem}.esn-v3 .ppg{font-weight:800;font-size:1.15rem;letter-spacing:-.03em;color:var(--mint)}.esn-v3 .vfoot{padding:18px 26px;background:#FBFAFF;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:.87rem;color:var(--muted);font-weight:600;align-items:center}
@media(max-width:1000px){.esn-v3 .vhead{display:none}.esn-v3 .vrow{grid-template-columns:44px 1fr auto;gap:12px 14px;padding:18px}.esn-v3 .vrow .cell{grid-column:2;font-size:.86rem}.esn-v3 .vrow .cell.hidem{display:none}.esn-v3 .vrow .btn{grid-column:2/4;justify-self:start}
}/* ---------- 06 tools ---------- */
.esn-v3 .tools{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.esn-v3 .tool{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:20px;box-shadow:var(--sh-1);
  display:flex;gap:14px;align-items:flex-start;transition:transform .14s ease,box-shadow .14s ease}.esn-v3 .tool:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.esn-v3 .tool .ic{width:40px;height:40px;border-radius:12px;background:var(--violet-wash);color:var(--violet);display:grid;place-items:center;flex:none}.esn-v3 .tool h3{font-size:1rem;margin-bottom:3px}.esn-v3 .tool p{color:var(--muted);font-size:.86rem}
@media(max-width:960px){.esn-v3 .tools{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.esn-v3 .tools{grid-template-columns:1fr}}/* ---------- 07 regional ---------- */
.esn-v3 .regs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.esn-v3 .reg{background:var(--ink);color:#fff;border-radius:var(--r-l);padding:24px;box-shadow:var(--sh-2);position:relative;overflow:hidden}.esn-v3 .reg:after{content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(130,114,255,.4),transparent)}.esn-v3 .reg .photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .55s ease}.esn-v3 .reg .photo.on{opacity:.42}.esn-v3 .reg:after{z-index:1}.esn-v3 .reg:hover .photo.on{opacity:.55}.esn-v3 .reg h3{color:#fff;font-size:1.3rem;position:relative;z-index:2}.esn-v3 .reg p{color:#C2C6E6;font-size:.88rem;margin-top:6px;position:relative;z-index:2}.esn-v3 .reg .n{margin-top:18px;font-weight:800;font-size:1.25rem;position:relative;z-index:2}.esn-v3 .reg .n span{font-size:.8rem;color:#9AA0CC;font-weight:600;margin-left:6px}
@media(max-width:1000px){.esn-v3 .regs{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.esn-v3 .regs{grid-template-columns:1fr}}/* ---------- 08 coupons ---------- */
.esn-v3 .cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.esn-v3 .cp{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--sh-1);display:flex;flex-direction:column;overflow:hidden}.esn-v3 .cp-top{padding:20px 22px 14px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.esn-v3 .cp-top b{font-size:1.1rem;font-weight:800}.esn-v3 .cp-off{background:var(--ink);color:#fff;border-radius:9px;padding:7px 11px;font-weight:800;font-size:.9rem;white-space:nowrap}.esn-v3 .cp-code{margin:0 22px;border:1px dashed var(--line-2);border-radius:11px;background:var(--paper);
  display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px}.esn-v3 .cp-code code{font-family:"JetBrains Mono",monospace;font-size:.88rem;font-weight:700;letter-spacing:.02em}.esn-v3 .copy{border:0;background:var(--violet-wash);color:var(--violet);font-weight:800;font-size:.76rem;padding:6px 11px;border-radius:8px;cursor:pointer}.esn-v3 .copy:hover{background:var(--violet);color:#fff}.esn-v3 .copy.done{background:var(--mint-wash);color:var(--mint)}.esn-v3 .cp-cond{padding:14px 22px 20px;margin-top:auto;font-size:.85rem;color:var(--muted);font-weight:600}
@media(max-width:960px){.esn-v3 .cgrid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.esn-v3 .cgrid{grid-template-columns:1fr}}/* ---------- 09 provider wall ---------- */
.esn-v3 .pwall{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.esn-v3 .pw{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:16px;box-shadow:var(--sh-1);text-align:center}.esn-v3 .pw:hover{border-color:var(--line-2);box-shadow:var(--sh-2)}.esn-v3 .pw i{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;font-style:normal;
  font-weight:800;font-size:.78rem;margin:0 auto 10px}.esn-v3 .pw b{display:block;font-size:.88rem;font-weight:700}.esn-v3 .pw span{display:block;font-size:.76rem;color:var(--dim);font-weight:600;margin-top:2px}.esn-v3 .pw.more{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--violet-wash);border-color:transparent;color:var(--violet)}.esn-v3 .pw.more b{font-size:1.15rem}
@media(max-width:1080px){.esn-v3 .pwall{grid-template-columns:repeat(4,1fr)}}
@media(max-width:720px){.esn-v3 .pwall{grid-template-columns:repeat(3,1fr)}}
@media(max-width:460px){.esn-v3 .pwall{grid-template-columns:repeat(2,1fr)}}/* ---------- 10 blog ---------- */
.esn-v3 .bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.esn-v3 .bl{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:24px;box-shadow:var(--sh-1);display:flex;flex-direction:column}.esn-v3 .bl:hover{box-shadow:var(--sh-2)}.esn-v3 .bl-img{display:block;height:148px;border-radius:13px;margin-bottom:16px;background-size:cover;background-position:center;
  background-image:linear-gradient(135deg,var(--violet-wash),#E3F3FD);transition:transform .4s ease}.esn-v3 .bl:hover .bl-img{transform:scale(1.02)}.esn-v3 .bl .cat{font-size:.72rem;font-weight:800;letter-spacing:.11em;color:var(--sky)}.esn-v3 .bl h3{font-size:1.16rem;margin:9px 0 8px}.esn-v3 .bl p{color:var(--muted);font-size:.9rem}.esn-v3 .bl .pair{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:.85rem;font-weight:700;color:var(--violet)}.esn-v3 .bl .pair span{color:var(--dim);font-weight:600;display:block;font-size:.79rem;margin-bottom:3px}.esn-v3 .bmore{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.esn-v3 .bm{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:16px 18px;box-shadow:var(--sh-1);
  display:flex;align-items:center;gap:12px}.esn-v3 .bm:hover{border-color:var(--violet);box-shadow:var(--sh-2)}.esn-v3 .bm b{display:block;font-size:.94rem;font-weight:700;line-height:1.3}.esn-v3 .bm span{display:block;font-size:.79rem;color:var(--dim);font-weight:600;margin-top:2px}.esn-v3 .bm i{margin-left:auto;flex:none;color:var(--line-2);font-style:normal}.esn-v3 .bm:hover i{color:var(--violet)}
@media(max-width:1080px){.esn-v3 .bmore{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.esn-v3 .bmore{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.esn-v3 .bmore{grid-template-columns:1fr}}
@media(max-width:960px){.esn-v3 .bgrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.esn-v3 .bgrid{grid-template-columns:1fr}}/* ---------- 11 new to esim ---------- */
.esn-v3 .newband{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:34px;box-shadow:var(--sh-1);
  display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:center}.esn-v3 .newband h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:12px}.esn-v3 .newband p{color:var(--muted)}.esn-v3 .newband .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.esn-v3 .glinks{display:grid;gap:10px}.esn-v3 .gl{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:var(--r-m);padding:14px 16px;background:var(--paper)}.esn-v3 .gl:hover{border-color:var(--violet);background:#fff}.esn-v3 .gl i{width:34px;height:34px;border-radius:10px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--violet);flex:none}.esn-v3 .gl b{font-size:.93rem;font-weight:700}.esn-v3 .gl span{display:block;font-size:.8rem;color:var(--dim);font-weight:600}
@media(max-width:900px){.esn-v3 .newband{grid-template-columns:1fr;gap:26px;padding:26px}}/* ---------- 12 how it works ---------- */
.esn-v3 .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-bottom:34px}.esn-v3 .step{position:relative;padding-top:24px}.esn-v3 .step .gn{position:absolute;right:0;top:-18px;font-size:4.2rem;font-weight:800;letter-spacing:-.06em;color:rgba(91,75,232,.09);line-height:1}.esn-v3 .step .ic{width:44px;height:44px;border-radius:14px;background:linear-gradient(140deg,var(--violet-lo),var(--violet-dk));
  display:grid;place-items:center;color:#fff;margin-bottom:16px;position:relative}.esn-v3 .step h3{font-size:1.4rem;margin-bottom:8px}.esn-v3 .step p{color:var(--muted);font-size:.94rem}.esn-v3 .disc{background:var(--ink);color:#fff;border-radius:var(--r-xl);padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center}.esn-v3 .disc h3{color:#fff;font-size:1.4rem;margin-bottom:10px}.esn-v3 .disc p{color:#A9ADD4;font-size:.94rem}.esn-v3 .disc ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.esn-v3 .disc li{display:flex;gap:11px;align-items:flex-start;font-size:.92rem;color:#D3D6EE}.esn-v3 .disc li i{width:18px;height:18px;border-radius:50%;background:rgba(75,225,172,.16);color:#4BE1AC;display:grid;place-items:center;flex:none;margin-top:3px;font-size:.65rem;font-style:normal;font-weight:800}
@media(max-width:900px){.esn-v3 .steps{grid-template-columns:1fr;gap:26px}.esn-v3 .disc{grid-template-columns:1fr;gap:22px;padding:26px}}/* ---------- 13 faq ---------- */
.esn-v3 .faq{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}.esn-v3 details{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:17px 20px;box-shadow:var(--sh-1)}.esn-v3 summary{cursor:pointer;list-style:none;font-weight:700;font-size:.99rem;display:flex;justify-content:space-between;gap:16px;align-items:center}.esn-v3 summary::-webkit-details-marker{display:none}.esn-v3 summary:after{content:"";width:9px;height:9px;border-right:2.4px solid var(--violet);border-bottom:2.4px solid var(--violet);
  transform:rotate(45deg);flex:none;margin-top:-4px;transition:transform .15s ease}.esn-v3 details[open] summary:after{transform:rotate(-135deg);margin-top:3px}.esn-v3 details p{margin-top:11px;color:var(--muted);font-size:.93rem}
@media(max-width:820px){.esn-v3 .faq{grid-template-columns:1fr}}/* ---------- 14 newsletter ---------- */
.esn-v3 .news{border-radius:var(--r-xl);padding:56px 40px;text-align:center;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(112deg,#2B1C6B,var(--violet) 46%,#B24BC9 100%);box-shadow:var(--sh-3)}.esn-v3 .news:before{content:"";position:absolute;inset:0;opacity:.22;
  background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:52px 52px}.esn-v3 .news h2,.esn-v3 .news p,.esn-v3 .news form,.esn-v3 .news .fine{position:relative}.esn-v3 .news p{color:#E4DEFF;margin-top:13px;font-size:1.04rem}.esn-v3 .news form{display:flex;gap:10px;justify-content:center;margin-top:26px;flex-wrap:wrap}.esn-v3 .news input{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.13);color:#fff;border-radius:13px;
  padding:14px 17px;font:inherit;font-weight:600;min-width:270px}.esn-v3 .news input::placeholder{color:#CFCBF7}.esn-v3 .news .fine{color:#CFC9F5;font-size:.83rem;margin-top:16px}/* ---------- footer ---------- */
.esn-v3 .foot{background:linear-gradient(180deg,#1B1140,#0C0F2B);color:#fff;margin-top:76px;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:60px 0 28px}.esn-v3 .fgroup{margin-bottom:36px}.esn-v3 .ftitle{font-family:"JetBrains Mono",monospace;font-size:.73rem;font-weight:700;letter-spacing:.15em;color:#B6A9FF;
  margin-bottom:16px;display:flex;align-items:center;gap:11px}.esn-v3 .ftitle i{width:8px;height:8px;background:var(--flame);border-radius:2px;display:block;flex:none}.esn-v3 .flinks{display:grid;grid-template-columns:repeat(6,1fr);gap:11px 22px}.esn-v3 .flinks a{color:#B9BCE0;font-size:.86rem;font-weight:500}.esn-v3 .flinks a:hover{color:#fff}.esn-v3 .fbottom{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.6fr;gap:34px;padding-top:36px;border-top:1px solid rgba(255,255,255,.11)}.esn-v3 .fbottom h4{font-size:.97rem;font-weight:800;margin:0 0 14px}.esn-v3 .fbottom ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.esn-v3 .fbottom a{color:#B9BCE0;font-size:.87rem}.esn-v3 .fbottom a:hover{color:#fff}.esn-v3 .fbottom p{color:#9EA2CC;font-size:.87rem}.esn-v3 .copyr{margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.11);display:flex;justify-content:space-between;
  gap:16px;flex-wrap:wrap;color:#82869F;font-size:.83rem}
@media(max-width:1080px){.esn-v3 .flinks{grid-template-columns:repeat(3,1fr)}.esn-v3 .fbottom{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.esn-v3 .flinks{grid-template-columns:1fr 1fr}.esn-v3 .fbottom{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}/* ── SERVER-RENDERED PHOTOGRAPHY ──────────────────────────────────────────
   The demo fetched Pexels from the browser into background-image spans. The
   photos are now harvested during a sync, stored locally and emitted as real
   <img> elements, so they carry width/height, lazy-load natively and can be
   converted to AVIF by FlyingPress. These rules make the design's .photo and
   .bl-img classes behave as images rather than backgrounds. */
.esn-v3 .dc .photo,.esn-v3 .reg .photo{width:100%;height:100%;object-fit:cover;display:block;border:0}.esn-v3 img.bl-img{width:100%;height:148px;object-fit:cover;display:block}

/* ── MOBILE SEARCH FORM ───────────────────────────────────────────────────
   The form wraps under about 600px, and .sIcon sat at top:50% of the whole
   form - once wrapped, that centre falls in the gap BETWEEN the input and the
   Compare button, leaving the magnifier floating in mid-air while the input
   kept a 40px indent for an icon no longer beside it. */
@media(max-width:600px){.esn-v3 .hero-form{flex-direction:column;align-items:stretch}.esn-v3 .hero-form .sIcon{top:34px;transform:none}
}/* ── section 10 additions ─────────────────────────────────────────────────
   .bmore is the twelve-card grid, so the "all guides" button needed its own
   wrapper rather than reusing that class. */
.esn-v3 .bmore-h{margin:36px 0 4px;font-size:1.15rem}.esn-v3 .bmore-p{color:var(--muted);font-size:.94rem}.esn-v3 .ball{margin-top:26px}.esn-v3 .photocred{margin:22px 0 0;color:var(--dim);font-size:.82rem}.esn-v3 .photocred a{color:var(--violet);font-weight:700}/* ── HOMEPAGE HEADER AND FOOTER ───────────────────────────────────────────
   v3 now renders its own header and footer on the front page, and the theme's
   are unhooked there (kadence_header / kadence_footer), so these only ever
   apply on the homepage. Every other page keeps the theme chrome untouched.
   The design CSS already styles .hdr/.foot; what it lacked was the mobile
   menu, because the original file had no burger at all. */
.esn-v3 .brand img{height:34px;width:auto}.esn-v3 .burger{display:none;width:42px;height:42px;border:1px solid var(--line);background:#fff;
  border-radius:12px;cursor:pointer;align-items:center;justify-content:center;flex:none}.esn-v3 .drawer{display:none}
@media(max-width:1180px){.esn-v3 .burger{display:flex}.esn-v3 .drawer{display:block;max-width:var(--wrap);margin:10px auto 0;background:#fff;border-radius:18px;
    box-shadow:var(--sh-2);padding:10px;overflow:hidden}.esn-v3 .drawer[hidden]{display:none}.esn-v3 .drawer a{display:block;padding:12px 14px;border-radius:11px;font-weight:700;color:var(--ink)}.esn-v3 .drawer a:hover{background:var(--paper)}.esn-v3 .drawer .dsep{height:1px;background:var(--line);margin:8px 4px}
}
@media(max-width:520px){.esn-v3 .brand img{height:28px}}/* ── TEXT ON THE VIOLET NEWSLETTER BAND ───────────────────────────────────
   .news sets color:#fff on the container, but the theme sets an explicit
   heading colour that outranks inheritance - so "New codes, straight to your
   inbox" rendered near-black on the gradient at 3.3:1. Same root cause as the
   footer h4. White measures 14.2:1 on the darkest stop, 5.8:1 on the lightest.
   (.newband was checked and is WHITE - its dark heading is correct there.) */
.esn-v3 .news h2{color:#fff}.esn-v3 .news p{color:#F1EEFF}.esn-v3 .news .fine{color:#EAE5FF}/* photo credit sat at 3.53:1 on white */
.esn-v3 .photocred{color:#5C5F82}/* provider logos from the database, in place of the initials monogram */
.esn-v3 .pw i.pw-logo{background:#fff;border:1px solid var(--line);padding:5px;overflow:hidden}.esn-v3 .pw i.pw-logo img{width:100%;height:100%;object-fit:contain;display:block}/* the burger measured 42x42, under the 44px minimum tap target */
.esn-v3 .burger{width:44px;height:44px}

/* ── MOBILE VERTICAL RHYTHM ───────────────────────────────────────────────
   .sec carries 88px of padding top and bottom, which is right on a desktop
   but left 176px of dead space between sections on an 844px-tall phone -
   a fifth of the screen blank between every block. */
@media(max-width:600px){.esn-v3 .sec{padding:44px 0}.esn-v3 .sec-sm{padding:34px 0}.esn-v3 .hero{padding:40px 0 14px}.esn-v3 .split{margin-bottom:24px}
}/* ══════════════════════════════════════════════════════════════════════════
   THE FOLLOWING BLOCKS WERE TWICE APPLIED TO THE SERVER FILE AND TWICE LOST
   WHEN THIS LOCAL SOURCE WAS RE-UPLOADED OVER IT. They live here now. Never
   patch uploads/esn-home/home-v3.css directly - edit this file and reinstall.
   ══════════════════════════════════════════════════════════════════════════ */
/* ── FULL-BLEED CORRECTION ────────────────────────────────────────────────
   v3 is drawn as a full-width page: the footer is a band across the viewport,
   the scale strip rules edge to edge, the hero glow bleeds out. Rendered
   through the_content it inherits Kadence's .content-container, capped at
   1290px - so on a wide screen the footer becomes a floating box with a
   gutter either side. Releasing the cap lets .esn-v3 fill the content area
   while .wrap (1240px) still holds the text column. Done this way rather than
   with 100vw margins, which overflow by the scrollbar width.

   Keyed on body.esn-v3-page, added by ESN_Home_V3::body_class() wherever
   is_v3_page() is true. It was body.home, which silently left the providers
   page capped at 1290px the moment that page started using the same
   stylesheet - its footer rendered as a 1242px box with gutters either side
   while the homepage next to it was full width. Any page that adopts v3 gets
   the class, so this cannot go stale again. */
body.esn-v3-page .content-container.site-container{max-width:none;margin-left:0;margin-right:0;padding-left:0;padding-right:0}body.esn-v3-page .content-area{margin-top:0;margin-bottom:0}body.esn-v3-page .site-main,body.esn-v3-page .entry-content,body.esn-v3-page .entry-content-wrap,body.esn-v3-page article.entry{max-width:none}/* ── FOOTER HEADING COLOUR ────────────────────────────────────────────────
   Browse / Company / Affiliate disclosure rendered at rgb(10,15,27) on the
   rgb(12,15,43) footer - 1.02:1, invisible. The theme sets a heading colour
   that outweighed the design's, which never declared one for h4. */
.esn-v3 .foot h4,.esn-v3 .fbottom h4{color:#A9AECD}.esn-v3 .foot h2,.esn-v3 .foot h3{color:#fff}/* ── FOOTER WORDMARK ──────────────────────────────────────────────────────
   There is no light variant of the logo in the media library, so
   brightness(0) invert(1) flattened the whole mark - mask and wordmark - into
   a white blob. The footer uses the design's styled text mark instead. */
.esn-v3 .foot .brand{font-weight:800;font-size:1.12rem;letter-spacing:-.035em;color:#fff;display:inline-flex;align-items:center;gap:9px}.esn-v3 .foot .brand i{width:32px;height:32px;border-radius:10px;background:linear-gradient(145deg,var(--violet-lo),var(--violet));
  display:grid;place-items:center;color:#fff;font-style:normal;font-size:.78rem;font-weight:800;flex:none}.esn-v3 .foot .brand span{color:var(--sky)}

/* ── MOBILE TOUCH TARGETS & LEGIBILITY ────────────────────────────────────
   Measured at 390x844. Two classes of problem, both invisible on a desktop:

   TARGETS. The FAQ rows were 26px tall, the coupon Copy buttons 32px and the
   footer link rows 22px. All three are primary controls on a phone and all
   three sat under the 44px the platform guidelines ask for - the FAQ worst of
   all, since a 26px row spanning 300px is easy to miss vertically and there
   is nothing else to tap if you do.

   LEGIBILITY. The deal-ticket provider label resolved to 9.9px and the blog
   eyebrow to 11.5px. Both are set in rem off a root that does not grow on
   mobile, so they render at their desktop size on a screen held at arm's
   length. 11px is the floor for anything a reader is meant to read.

   Inline links inside running prose (the Pexels credit, links in copy) are
   deliberately left alone - they are sized by their line box, and padding
   them to 44px would tear the paragraph apart. */
@media(max-width:600px){/* FAQ rows: 26px -> 46px, and the padding gives the chevron room too. */
.esn-v3 .faq summary{min-height:46px;padding:11px 0}/* Copy buttons: 32px -> 40px, and wide enough not to need a precise hit. */
.esn-v3 .copy{min-height:40px;padding:9px 16px;font-size:.82rem}/* Footer columns: 22px rows -> 34px, which with the 1fr 1fr grid gap keeps
     a comfortable gap between adjacent link centres. */
.esn-v3 .flinks a{display:block;padding:6px 0;font-size:.9rem}/* Section CTAs ("All 230 countries", "How we rank") are the only way into
     those listings on a phone, where the nav is behind the burger. */
.esn-v3 .viewall{display:inline-flex;align-items:center;min-height:40px}/* Header logo doubles as the home link. */
.esn-v3 .hdr-in .brand{padding:6px 0}/* Below the 11px floor. */
.esn-v3 .tk .b{font-size:.7rem}.esn-v3 .bl .cat{font-size:.76rem}
}

/* ── SMALL-PHONE HERO ─────────────────────────────────────────────────────
   h1 is clamp(2.6rem,6vw,4.7rem), and 6vw only overtakes the 2.6rem floor at
   about 693px wide - so every phone gets the floor, 41.6px, whether the screen
   is 430px or 320px. It reads well down to ~390px and is verified not to
   overflow at 320px, but it does crowd the narrowest screens, so they get one
   step down. 390px and up is deliberately left exactly as it renders today. */
@media(max-width:380px){.esn-v3 .hero h1{font-size:2.15rem}
}/* ══════════════════════════════════════════════════════════════════════════
   PROVIDERS PAGE  (/all-providers/)
   Everything here is nested under .pv, which wraps that page's content inside
   the shared .esn-v3 container. Two classes genuinely collide with the
   homepage - .hero (72px top padding, no breadcrumb) and .chips (the centred
   country row) - and nesting is what lets both pages keep their own version
   without either one having to rename anything. The header, footer, buttons,
   .wrap, .sec-sm, details/summary and every token are inherited, not redefined,
   so the two pages cannot drift apart visually either.
   ══════════════════════════════════════════════════════════════════════════ */
/* hero */
.esn-v3 .pv .hero{padding:52px 0 34px;text-align:center}.esn-v3 .pv .hero-in{position:relative;max-width:860px;margin:0 auto;padding:0 24px}.esn-v3 .pv .crumb{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:99px;padding:8px 16px;font-size:.85rem;font-weight:700;box-shadow:var(--sh-1);margin-bottom:26px}.esn-v3 .pv .crumb .sep{color:var(--line-2)}.esn-v3 .pv .crumb .cur{color:var(--violet)}.esn-v3 .pv .hero h1{font-size:clamp(2.5rem,5.6vw,4.3rem)}.esn-v3 .pv .lede{color:var(--muted);font-size:1.09rem;margin-top:18px}.esn-v3 .pv .hstats{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px}.esn-v3 .pv .hstat{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:12px 18px;box-shadow:var(--sh-1)}.esn-v3 .pv .hstat i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;font-style:normal}.esn-v3 .pv .hstat b{display:block;font-size:1.18rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}.esn-v3 .pv .hstat>span>span{display:block;font-size:.79rem;color:var(--dim);font-weight:600}/* toolbar. top:96px clears the sticky header pill; it goes static on phones,
   where two sticky bars would eat most of a short viewport */
.esn-v3 .pv .bar{position:sticky;top:96px;z-index:60;background:rgba(246,245,252,.92);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.esn-v3 .pv .bar-in{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.esn-v3 .pv .find{flex:1;min-width:220px;display:flex;align-items:center;gap:10px;background:#fff;
  border:1px solid var(--line-2);border-radius:13px;padding:11px 15px}.esn-v3 .pv .find input{border:0;outline:0;background:none;width:100%;font-weight:600;font:inherit;color:inherit}.esn-v3 .pv .chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start;margin-top:0}.esn-v3 .pv .fchip{border:1px solid var(--line-2);background:#fff;border-radius:11px;padding:10px 15px;
  font-weight:700;font-size:.87rem;cursor:pointer;white-space:nowrap;font-family:inherit;color:inherit}.esn-v3 .pv .fchip:hover{border-color:var(--ink)}.esn-v3 .pv .fchip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.esn-v3 .pv .sortwrap{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line-2);
  border-radius:13px;padding:8px 12px}.esn-v3 .pv .sortwrap label{font-size:.8rem;font-weight:800;letter-spacing:.06em;color:var(--dim)}.esn-v3 .pv .sortwrap select{border:0;outline:0;background:none;font-weight:700;font-size:.9rem;cursor:pointer;font-family:inherit;color:inherit}.esn-v3 .pv .count{padding:16px 0 0;font-size:.9rem;color:var(--muted);font-weight:600}/* provider cards */
.esn-v3 .pv .pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.esn-v3 .pv .pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:22px;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;transition:transform .14s ease,box-shadow .14s ease}.esn-v3 .pv .pcard:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.esn-v3 .pv .pcard.hide{display:none}.esn-v3 .pv .pc-top{display:flex;align-items:center;gap:14px;margin-bottom:18px}.esn-v3 .pv .mono{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;
  font-weight:800;font-size:.95rem;flex:none;box-shadow:var(--sh-1)}/* a mirrored logo sits on white and is contained, never cropped - several are
   wordmarks whose aspect ratio is nothing like square */
.esn-v3 .pv .mono.has-logo{background:#fff;border:1px solid var(--line);padding:5px}.esn-v3 .pv .mono.has-logo img{width:100%;height:100%;object-fit:contain;display:block}.esn-v3 .pv .pc-id{min-width:0}.esn-v3 .pv .pc-id h3{font-size:1.15rem;margin:0;font-weight:800;letter-spacing:-.015em;line-height:1.3}.esn-v3 .pv .pcode{display:inline-flex;align-items:center;gap:7px;margin-top:5px;background:var(--mint-wash);
  color:#0B7A52;border-radius:8px;padding:4px 9px;font-size:.76rem;font-weight:800}.esn-v3 .pv .pcode code{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;letter-spacing:.02em}.esn-v3 .pv .pcode.alt{background:var(--violet-wash);color:var(--violet)}.esn-v3 .pv .pcode.none{background:var(--paper);color:var(--dim);font-weight:700}.esn-v3 .pv .pc-metric{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.esn-v3 .pv .pc-num b{font-size:1.55rem;font-weight:800;letter-spacing:-.035em}.esn-v3 .pv .pc-num span{font-size:.78rem;color:var(--dim);font-weight:700;margin-left:7px}.esn-v3 .pv .pc-share{font-size:.79rem;color:var(--muted);font-weight:700;white-space:nowrap}.esn-v3 .pv .pc-bar{height:7px;border-radius:99px;background:#EDEBF8;overflow:hidden;margin:11px 0 16px}.esn-v3 .pv .pc-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--sky),var(--violet))}.esn-v3 .pv .pc-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.esn-v3 .pv .tg{font-size:.74rem;font-weight:800;border-radius:8px;padding:5px 10px;background:var(--paper);color:var(--muted)}.esn-v3 .pv .tg-major{background:var(--violet-wash);color:var(--violet)}.esn-v3 .pv .tg-broad{background:#E3F3FD;color:#0F6FA5}.esn-v3 .pv .tg-partial{background:#FFF3E8;color:#B4560F}.esn-v3 .pv .tg-none{background:#FDECEF;color:#B3283E}.esn-v3 .pv .pc-cond{color:var(--muted);font-size:.83rem;margin:0 0 16px;line-height:1.45}.esn-v3 .pv .pc-foot{margin-top:auto;display:flex;gap:9px;flex-wrap:wrap}.esn-v3 .pv .pc-foot .btn{flex:1;min-width:120px}.esn-v3 .pv .empty{display:none;background:#fff;border:1px dashed var(--line-2);border-radius:var(--r-l);
  padding:36px;text-align:center;margin-top:22px}.esn-v3 .pv .empty.on{display:block}.esn-v3 .pv .empty b{display:block;font-size:1.15rem;margin-bottom:6px}.esn-v3 .pv .empty p{color:var(--muted);font-size:.93rem}.esn-v3 .pv .empty a{color:var(--violet);font-weight:700}
@media(max-width:980px){.esn-v3 .pv .pgrid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.esn-v3 .pv .pgrid{grid-template-columns:1fr}.esn-v3 .pv .bar{position:static}}/* leaders */
.esn-v3 .pv .lead-h{margin-bottom:26px}.esn-v3 .pv .leaders{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.esn-v3 .pv .ld{background:var(--ink);color:#fff;border-radius:var(--r-l);padding:24px;box-shadow:var(--sh-2);
  position:relative;overflow:hidden}.esn-v3 .pv .ld:after{content:"";position:absolute;right:-46px;top:-46px;width:150px;height:150px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(130,114,255,.42),transparent)}.esn-v3 .pv .ld .k{font-size:.72rem;font-weight:800;letter-spacing:.11em;color:#B6A9FF;position:relative}.esn-v3 .pv .ld b{display:block;font-size:1.45rem;font-weight:800;letter-spacing:-.035em;margin:9px 0 3px;position:relative}.esn-v3 .pv .ld .v{display:block;font-size:1.9rem;font-weight:800;letter-spacing:-.04em;color:#4BE1AC;position:relative;line-height:1.1}.esn-v3 .pv .ld p{color:#A9ADD4;font-size:.86rem;margin-top:9px;position:relative}
@media(max-width:1000px){.esn-v3 .pv .leaders{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.esn-v3 .pv .leaders{grid-template-columns:1fr}}/* method */
.esn-v3 .pv .method{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:34px;
  box-shadow:var(--sh-1);display:grid;grid-template-columns:1fr 1.15fr;gap:38px}.esn-v3 .pv .method h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:12px}.esn-v3 .pv .method>div>p{color:var(--muted)}.esn-v3 .pv .method ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}.esn-v3 .pv .method li{display:flex;gap:13px;align-items:flex-start}.esn-v3 .pv .method li i{width:22px;height:22px;border-radius:7px;background:var(--violet-wash);color:var(--violet);
  display:grid;place-items:center;flex:none;font-style:normal;font-size:.7rem;font-weight:800;margin-top:3px}.esn-v3 .pv .method li b{display:block;font-size:.97rem}.esn-v3 .pv .method li span span{color:var(--muted);font-size:.9rem}
@media(max-width:900px){.esn-v3 .pv .method{grid-template-columns:1fr;gap:24px;padding:26px}}/* closing CTA */
.esn-v3 .pv .cta{border-radius:var(--r-xl);padding:52px 40px;text-align:center;color:#fff;position:relative;
  overflow:hidden;background:linear-gradient(112deg,#2B1C6B,var(--violet) 46%,#B24BC9 100%);box-shadow:var(--sh-3)}.esn-v3 .pv .cta:before{content:"";position:absolute;inset:0;opacity:.22;
  background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:52px 52px}.esn-v3 .pv .cta h2,.esn-v3 .pv .cta p,.esn-v3 .pv .cta .row{position:relative}.esn-v3 .pv .cta h2{color:#fff}.esn-v3 .pv .cta p{color:#E4DEFF;margin-top:13px}.esn-v3 .pv .cta .row{display:flex;gap:12px;justify-content:center;margin-top:26px;flex-wrap:wrap}

/* mobile: the same 44px floor the homepage uses, applied to this page's controls */
@media(max-width:600px){.esn-v3 .pv .hero{padding:34px 0 20px}.esn-v3 .pv .hstat{padding:10px 14px}.esn-v3 .pv .fchip{min-height:44px}.esn-v3 .pv .sortwrap{min-height:44px}.esn-v3 .pv .find{min-height:44px}.esn-v3 .pv .pc-foot .btn{min-height:44px}.esn-v3 .pv .cta{padding:34px 22px}.esn-v3 .pv .method{padding:22px}
}/* ── FOOTER BRAND MARK ─────────────────────────────────────────────────────
   The real logo, not a text imitation. The artwork is dark on transparency,
   so it needs a light ground to sit on over the #0C0F2B footer; the chip is
   the smallest honest way to use the actual brand asset there. Sized off the
   300px "medium" file so it stays crisp on a 2x screen. */
.esn-v3 .foot .fbrand{display:inline-flex;align-items:center;background:#fff;
  padding:9px 15px;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.18)}.esn-v3 .foot .fbrand img{display:block;height:30px;width:auto}
@media(max-width:600px){.esn-v3 .foot .fbrand{padding:8px 13px}.esn-v3 .foot .fbrand img{height:26px}
}.esn-v3 /* ══════════════════════════════════════════════════════════════════════════
   COUNTRY PAGE  (/esim/{cc}.esn-v3 /)
   Nested under .cy,.esn-v3 the same way the providers page is nested under .pv,.esn-v3 so
   the three pages share one stylesheet without fighting over .hero,.esn-v3 .chips or
   .cta. The handful of components both sub-pages need are written as a pair of
   selectors rather than given a third wrapper class - duplicating two
   selectors is cheaper than re-rendering the providers page markup to add one.
   ══════════════════════════════════════════════════════════════════════════ */

/* hero */
.cy .hero{padding:44px 0 30px;text-align:center}.esn-v3 .cy .hero-in{position:relative;max-width:880px;margin:0 auto;padding:0 24px}.esn-v3 .cy .crumb{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:99px;padding:8px 16px;font-size:.85rem;font-weight:700;box-shadow:var(--sh-1);margin-bottom:22px}.esn-v3 .cy .crumb .sep{color:var(--line-2)}.esn-v3 .cy .crumb .cur{color:var(--violet)}.esn-v3 .cy .bigflag{width:80px;height:60px;object-fit:cover;border-radius:10px;margin:0 auto 18px;
  box-shadow:0 6px 22px rgba(12,15,43,.22)}.esn-v3 .cy .hero h1{font-size:clamp(2.1rem,4.6vw,3.6rem)}.esn-v3 .cy .lede{color:var(--muted);font-size:1.06rem;margin-top:16px}.esn-v3 .cy .metaline{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 22px;margin-top:22px;
  font-size:.93rem;color:var(--muted);font-weight:600}.esn-v3 .cy .metaline b{color:var(--ink);font-weight:800}.esn-v3 .cy .byline{margin-top:14px;font-size:.86rem;color:var(--dim);font-weight:600}.esn-v3 .cy .byline a{color:var(--violet);font-weight:700}/* shared section furniture */
.esn-v3 .cy .head-flex{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:24px}.esn-v3 .cy .head-flex>div{max-width:640px}.esn-v3 .cy .head-flex p{color:var(--muted);margin-top:10px}.esn-v3 .cy .mb-s{margin-bottom:10px}.esn-v3 .cy .mb-m{margin-bottom:22px}.esn-v3 .cy .sub-s{color:var(--muted);margin-bottom:20px}.esn-v3 .cy .fine-note{margin-top:14px;color:var(--dim);font-size:.86rem}/* top picks */
.esn-v3 .cy .picks{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.esn-v3 .cy .pick{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:20px;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:11px;
  transition:transform .14s ease,box-shadow .14s ease}.esn-v3 .cy .pick:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.esn-v3 .cy .pick.lead{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-wash),var(--sh-1)}.esn-v3 .cy .pk-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.esn-v3 .cy .pk-rank{font-size:.66rem;font-weight:800;letter-spacing:.1em;color:var(--violet);
  background:var(--violet-wash);border-radius:7px;padding:4px 8px;white-space:nowrap}.esn-v3 .cy .pk-rank.f{color:var(--flame-dk);background:#FFF1EB}.esn-v3 .cy .pk-code{font-size:.7rem;font-weight:800;background:var(--mint-wash);color:#0B7A52;
  border-radius:7px;padding:4px 8px;font-family:"JetBrains Mono",ui-monospace,monospace;white-space:nowrap}.esn-v3 .cy .pk-code.alt{background:var(--paper);color:var(--muted)}.esn-v3 .cy .pk-price{display:flex;align-items:baseline;gap:9px}.esn-v3 .cy .pk-price b{font-size:1.7rem;font-weight:800;letter-spacing:-.04em;line-height:1}.esn-v3 .cy .pk-price s{color:var(--dim);font-size:.9rem;font-weight:600}.esn-v3 .cy .pk-ppg{font-size:.86rem;color:var(--muted);font-weight:700;margin-top:-4px}.esn-v3 .cy .pk-spec{display:flex;flex-wrap:wrap;gap:6px}.esn-v3 .cy .pk-spec span{background:var(--paper);border-radius:7px;padding:5px 9px;font-size:.75rem;color:var(--muted);font-weight:600}.esn-v3 .cy .pk-spec b{color:var(--ink);font-weight:800}.esn-v3 .cy .pk-prov{margin-top:auto;display:flex;align-items:center;gap:9px;font-weight:700;font-size:.9rem;
  border-top:1px solid var(--line);padding-top:12px}.esn-v3 .cy .pk-prov i{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:#fff;
  font-style:normal;font-size:.66rem;font-weight:800;flex:none}.esn-v3 .cy .pk-prov em{font-style:normal;color:var(--dim);font-size:.76rem;font-weight:600}.esn-v3 .cy .pk-prov .go{margin-left:auto;color:var(--violet);font-size:1.2rem;font-weight:800}
@media(max-width:1080px){.esn-v3 .cy .picks{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.esn-v3 .cy .picks{grid-template-columns:1fr}}/* trip shapes */
.esn-v3 .cy .trips{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.esn-v3 .cy .trip{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:20px;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:9px}.esn-v3 .cy .trip:hover{border-color:var(--violet)}.esn-v3 .cy .trip .lab{font-size:.66rem;font-weight:800;letter-spacing:.1em;color:var(--sky)}.esn-v3 .cy .trip p{color:var(--muted);font-size:.88rem}.esn-v3 .cy .trip .amt{margin-top:auto;display:flex;align-items:baseline;gap:8px;padding-top:10px}.esn-v3 .cy .trip .amt b{font-size:1.3rem;font-weight:800;letter-spacing:-.035em}.esn-v3 .cy .trip .amt s{color:var(--dim);font-size:.84rem}.esn-v3 .cy .trip .who{font-size:.78rem;color:var(--dim);font-weight:600}
@media(max-width:1080px){.esn-v3 .cy .trips{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.esn-v3 .cy .trips{grid-template-columns:1fr}}/* filter bar */
.esn-v3 .cy .bar{position:sticky;top:96px;z-index:60;background:rgba(246,245,252,.93);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}.esn-v3 .cy .bar-in{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.esn-v3 .cy .bar-lab{font-size:.72rem;font-weight:800;letter-spacing:.1em;color:var(--dim)}.esn-v3 .cy .fchip{border:1px solid var(--line-2);background:#fff;border-radius:10px;padding:9px 13px;
  font-weight:700;font-size:.84rem;cursor:pointer;white-space:nowrap;font-family:inherit;color:inherit}.esn-v3 .cy .fchip:hover{border-color:var(--ink)}.esn-v3 .cy .fchip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.esn-v3 .cy .sorts{margin-left:auto;display:flex;gap:6px;background:#fff;border:1px solid var(--line-2);border-radius:11px;padding:4px}.esn-v3 .cy .sorts button{border:0;background:none;border-radius:8px;padding:7px 11px;font-weight:700;
  font-size:.82rem;cursor:pointer;color:var(--muted);font-family:inherit}.esn-v3 .cy .sorts button[aria-pressed=true]{background:var(--violet-wash);color:var(--violet)}.esn-v3 .cy .found{font-weight:700;color:var(--muted);margin:18px 0 14px;font-size:.93rem}/* plan table */
.esn-v3 .cy .ptable{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1);overflow:hidden}.esn-v3 .cy .prow{display:grid;grid-template-columns:34px minmax(0,2.4fr) .8fr .9fr .9fr 1.15fr 1.05fr auto;
  gap:12px;align-items:center;padding:13px 18px;border-top:1px solid var(--line)}.esn-v3 .cy .prow:first-child{border-top:0}.esn-v3 .cy .phead{background:var(--paper);font-size:.68rem;font-weight:800;letter-spacing:.09em;color:var(--dim);padding:11px 18px}.esn-v3 .cy .pnum{font-weight:800;color:var(--dim);font-size:.84rem}.esn-v3 .cy .pplan{display:flex;align-items:center;gap:11px;min-width:0}.esn-v3 .cy .pplan i{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;
  font-style:normal;font-size:.7rem;font-weight:800;flex:none}.esn-v3 .cy .pplan b{display:block;font-size:.93rem;font-weight:800;letter-spacing:-.01em}.esn-v3 .cy .pplan small{display:block;color:var(--dim);font-size:.77rem;font-weight:600}.esn-v3 .cy .tag5g{display:inline-block;margin-left:7px;background:var(--mint-wash);color:#0B7A52;
  border-radius:5px;padding:1px 5px;font-size:.62rem;font-weight:800;letter-spacing:.04em;vertical-align:middle}.esn-v3 .cy .pcell{font-size:.88rem;font-weight:700}.esn-v3 .cy .pcell small{display:block;color:var(--dim);font-size:.72rem;font-weight:600}.esn-v3 .cy .pcode{display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--line-2);background:var(--paper);
  border-radius:9px;padding:7px 10px;cursor:pointer;font-family:inherit;color:var(--ink);min-width:0}.esn-v3 .cy .pcode code{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.74rem;font-weight:700}.esn-v3 .cy .pcode em{font-style:normal;font-size:.7rem;font-weight:800;color:#0B7A52}.esn-v3 .cy .pcode:hover{border-color:var(--violet);color:var(--violet)}.esn-v3 .cy .pcode.copied{background:var(--mint-wash);border-color:var(--mint);color:#0B7A52}.esn-v3 .cy .pcode.copied code:after{content:" copied"}.esn-v3 .cy .pcode.no{border-style:solid;border-color:var(--line);color:var(--dim);font-size:.76rem;font-weight:700;cursor:default}.esn-v3 .cy .pprice b{display:block;font-size:1.06rem;font-weight:800;letter-spacing:-.03em;line-height:1.2}.esn-v3 .cy .pprice s{color:var(--dim);font-size:.78rem;font-weight:600;margin-right:5px}.esn-v3 .cy .pprice .gb{display:block;font-size:.72rem;color:var(--muted);font-weight:700}.esn-v3 .cy .pfoot{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding:16px 18px;background:var(--paper);border-top:1px solid var(--line)}.esn-v3 .cy .pfoot span{color:var(--muted);font-size:.82rem;max-width:64ch}
@media(max-width:1080px){.esn-v3 .cy .prow{grid-template-columns:28px minmax(0,2.2fr) 1.1fr 1fr auto;gap:10px}.esn-v3 .cy .hidem{display:none}
}
@media(max-width:720px){.esn-v3 .cy .bar{position:static}.esn-v3 .cy .prow{grid-template-columns:1fr auto;gap:10px 12px;padding:14px 16px}.esn-v3 .cy .phead{display:none}.esn-v3 .cy .pnum{display:none}.esn-v3 .cy .pplan{grid-column:1/-1}.esn-v3 .cy .pcell{display:none}.esn-v3 .cy .pcode{justify-self:start}.esn-v3 .cy .pprice{text-align:right}.esn-v3 .cy .prow .btn{grid-column:1/-1;width:100%;min-height:44px}.esn-v3 .cy .sorts{margin-left:0;width:100%;overflow-x:auto}
}/* simple tables (providers, networks) */
.esn-v3 .cy .tscroll{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--sh-1)}.esn-v3 .cy table.simple{width:100%;border-collapse:collapse;min-width:620px}.esn-v3 .cy table.simple th{text-align:left;font-size:.68rem;font-weight:800;letter-spacing:.09em;color:var(--dim);
  background:var(--paper);padding:12px 16px;white-space:nowrap}.esn-v3 .cy table.simple td{padding:13px 16px;border-top:1px solid var(--line);font-size:.9rem;font-weight:700}.esn-v3 .cy table.simple .nm{display:flex;align-items:center;gap:10px}.esn-v3 .cy table.simple .nm i{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:#fff;
  font-style:normal;font-size:.66rem;font-weight:800;flex:none}.esn-v3 .cy table.simple .nm a:hover{color:var(--violet)}.esn-v3 .cy .best{background:var(--mint-wash);color:#0B7A52;border-radius:6px;padding:2px 7px;font-size:.66rem;font-weight:800;white-space:nowrap}.esn-v3 .cy .na{color:var(--dim);font-weight:600;font-size:.82rem}.esn-v3 .cy .ok{color:var(--mint);font-weight:800}/* activation steps */
.esn-v3 .cy .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.esn-v3 .cy .step{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:20px;box-shadow:var(--sh-1)}.esn-v3 .cy .step .n{width:28px;height:28px;border-radius:9px;background:var(--violet-wash);color:var(--violet);
  display:grid;place-items:center;font-weight:800;font-size:.82rem;margin-bottom:12px}.esn-v3 .cy .step p{color:var(--muted);font-size:.88rem;margin-top:7px}
@media(max-width:960px){.esn-v3 .cy .steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.esn-v3 .cy .steps{grid-template-columns:1fr}}/* guide prose */
.esn-v3 .cy .guide{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:34px;box-shadow:var(--sh-1);
  max-width:78ch}.esn-v3 .cy .guide .kick{font-size:.68rem;font-weight:800;letter-spacing:.11em;color:var(--sky);margin-bottom:10px}.esn-v3 .cy .guide h3{margin:26px 0 8px;font-size:1.08rem}.esn-v3 .cy .guide p{color:var(--muted);margin-top:10px}.esn-v3 .cy .guide ul{margin:10px 0 0;padding-left:20px;color:var(--muted);display:grid;gap:8px}.esn-v3 .cy .guide b{color:var(--ink)}.esn-v3 .cy .guide a{color:var(--violet);font-weight:700}
@media(max-width:600px){.esn-v3 .cy .guide{padding:22px}}/* trust trio */
.esn-v3 .cy .trio{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.esn-v3 .cy .tr{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:20px;
  box-shadow:var(--sh-1);display:flex;gap:13px;align-items:flex-start}.esn-v3 .cy .tr i{width:38px;height:38px;border-radius:11px;background:var(--violet-wash);display:grid;
  place-items:center;flex:none;font-style:normal;font-size:1.05rem}.esn-v3 .cy .tr i.s{background:#E3F3FD}.esn-v3 .cy .tr i.f{background:var(--mint-wash)}.esn-v3 .cy .tr b{display:block;font-size:.97rem}.esn-v3 .cy .tr span span{color:var(--muted);font-size:.87rem}.esn-v3 .cy .tr a{color:var(--violet);font-weight:700}
@media(max-width:900px){.esn-v3 .cy .trio{grid-template-columns:1fr}}/* nearby */
.esn-v3 .cy .near{display:flex;flex-wrap:wrap;gap:9px}.esn-v3 .cy .nb{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:10px 15px;font-weight:700;font-size:.9rem;box-shadow:var(--sh-1)}.esn-v3 .cy .nb:hover{border-color:var(--violet);color:var(--violet)}.esn-v3 .cy .nb img{width:20px;height:15px;object-fit:cover;border-radius:3px}.esn-v3 .cy .nb em{font-style:normal;color:var(--dim);font-size:.78rem;font-weight:600}/* closing CTA */
.esn-v3 .cy .cta{border-radius:var(--r-xl);padding:48px 40px;text-align:center;color:#fff;position:relative;
  overflow:hidden;background:linear-gradient(112deg,#2B1C6B,var(--violet) 46%,#B24BC9 100%);box-shadow:var(--sh-3)}.esn-v3 .cy .cta:before{content:"";position:absolute;inset:0;opacity:.22;
  background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:52px 52px}.esn-v3 .cy .cta h2,.esn-v3 .cy .cta p,.esn-v3 .cy .cta .row{position:relative}.esn-v3 .cy .cta h2{color:#fff}.esn-v3 .cy .cta p{color:#E4DEFF;margin-top:12px}.esn-v3 .cy .cta .row{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap}/* provider marks: the real logo, on white so a dark wordmark stays legible and
   contained so a wide one is not cropped. Several provider logos are wordmarks
   whose aspect ratio is nothing like the square tile they sit in. */
.esn-v3 .cy i.has-logo{background:#fff;border:1px solid var(--line);padding:3px;overflow:hidden}.esn-v3 .cy i.has-logo img{width:100%;height:100%;object-fit:contain;display:block}.esn-v3 .cy .pk-prov i.has-logo{padding:2px}.esn-v3 .cy table.simple .nm i.has-logo{padding:2px}

/* mobile: the 44px tap floor and the 11px type floor this site uses everywhere */
@media(max-width:600px){.esn-v3 .cy .hero{padding:30px 0 20px}.esn-v3 .cy .fchip{min-height:44px}.esn-v3 .cy .sorts button{min-height:40px}.esn-v3 .cy .nb{min-height:44px}.esn-v3 .cy .cta{padding:32px 22px}.esn-v3 .cy .metaline{gap:8px 16px;font-size:.88rem}/* .66rem resolves to 10.6px, under the 11px floor: these eyebrows are the
     only label saying what each card actually is, so they have to be readable
     at arm's length rather than merely present. */
.esn-v3 .cy .pk-rank,.esn-v3 .cy .trip .lab,.esn-v3 .cy .guide .kick{font-size:.7rem}.esn-v3 .cy .pplan small{font-size:.79rem}
}/* ══════════════════════════════════════════════════════════════════════════
   DEALS PAGE  (/best-esim-deals/)
   Nested under .dl, the fourth page on this stylesheet after .pv and .cy.
   Same reasoning: .hero, .chip and .cta all mean something different here, so
   nesting lets each page keep its own without renaming anything.
   ══════════════════════════════════════════════════════════════════════════ */
/* hero */
.esn-v3 .dl .hero{padding:44px 0 30px;text-align:center}.esn-v3 .dl .hero-in{position:relative;max-width:900px;margin:0 auto;padding:0 24px}.esn-v3 .dl .crumb{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:99px;padding:8px 16px;font-size:.85rem;font-weight:700;box-shadow:var(--sh-1);margin-bottom:18px}.esn-v3 .dl .crumb .sep{color:var(--line-2)}.esn-v3 .dl .crumb .cur{color:var(--violet)}.esn-v3 .dl .pills{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-bottom:18px}.esn-v3 .dl .pill{background:var(--violet-wash);color:var(--violet);border-radius:99px;padding:7px 15px;
  font-size:.8rem;font-weight:800}.esn-v3 .dl .pill.v{background:var(--mint-wash);color:#0B7A52}.esn-v3 .dl .hero h1{font-size:clamp(2.1rem,4.6vw,3.6rem)}.esn-v3 .dl .lede{color:var(--muted);font-size:1.06rem;margin-top:16px}.esn-v3 .dl .hform{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:13px 18px;box-shadow:var(--sh-2);max-width:520px;margin:26px auto 0;color:var(--dim)}.esn-v3 .dl .hform input{flex:1;border:0;outline:0;background:none;font:inherit;font-weight:600;color:var(--ink);min-width:0}.esn-v3 .dl .hstats{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:26px}.esn-v3 .dl .hstat{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:12px 18px;box-shadow:var(--sh-1)}.esn-v3 .dl .hstat i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;font-style:normal}.esn-v3 .dl .hstat b{display:block;font-size:1.05rem;font-weight:800;letter-spacing:-.03em;line-height:1.2}.esn-v3 .dl .hstat>span>span{display:block;font-size:.79rem;color:var(--dim);font-weight:600}/* shared furniture */
.esn-v3 .dl .head-flex{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:12px}.esn-v3 .dl .head-flex>div{max-width:640px}.esn-v3 .dl .head-flex p{color:var(--muted);margin-top:10px}.esn-v3 .dl .mb-s{margin-bottom:8px}.esn-v3 .dl .mb-m{margin-bottom:22px}.esn-v3 .dl .mb-l{margin-bottom:38px}.esn-v3 .dl .sub{color:var(--muted);margin-top:10px;max-width:64ch}.esn-v3 .dl .sub-s{color:var(--muted);margin-bottom:20px}.esn-v3 .dl .found{margin-top:16px;font-weight:700;color:var(--muted);font-size:.92rem}.esn-v3 .dl .excl{color:var(--dim);font-size:.85rem;font-weight:600;margin-bottom:22px;max-width:80ch}/* the four biggest discounts */
.esn-v3 .dl .topc{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.esn-v3 .dl .tc{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:22px;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:8px}.esn-v3 .dl .tc.lead{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:var(--sh-2)}.esn-v3 .dl .tc .rk{font-size:.66rem;font-weight:800;letter-spacing:.1em;color:var(--violet)}.esn-v3 .dl .tc.lead .rk{color:#B6A9FF}.esn-v3 .dl .tc .big{font-size:2.5rem;font-weight:800;letter-spacing:-.045em;line-height:1}.esn-v3 .dl .tc.lead .big{color:#4BE1AC}.esn-v3 .dl .tc .nm{font-weight:800;font-size:1.02rem;letter-spacing:-.02em}.esn-v3 .dl .tc .cd{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;
  border:1px dashed var(--line-2);background:var(--paper);border-radius:10px;padding:9px 12px;
  cursor:pointer;font-family:inherit;color:var(--ink);margin-top:2px}.esn-v3 .dl .tc.lead .cd{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}.esn-v3 .dl .tc .cd code{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.82rem;font-weight:700}.esn-v3 .dl .tc .cd em{font-style:normal;font-size:.64rem;font-weight:800;letter-spacing:.08em;color:var(--violet)}.esn-v3 .dl .tc.lead .cd em{color:#B6A9FF}.esn-v3 .dl .tc .cd.copied{background:var(--mint-wash);border-color:var(--mint);color:#0B7A52}.esn-v3 .dl .tc .cd.copied em:after{content:"IED"}.esn-v3 .dl .tc .fine{margin-top:auto;color:var(--muted);font-size:.82rem;line-height:1.45}.esn-v3 .dl .tc.lead .fine{color:#A9ADD4}
@media(max-width:1080px){.esn-v3 .dl .topc{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.esn-v3 .dl .topc{grid-template-columns:1fr}}/* the code table */
.esn-v3 .dl .ctable{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1);
  overflow:hidden;margin-top:16px}.esn-v3 .dl .crow{display:grid;grid-template-columns:minmax(0,1.9fr) 1.15fr .7fr minmax(0,2fr) .9fr auto;
  gap:14px;align-items:center;padding:13px 18px;border-top:1px solid var(--line)}.esn-v3 .dl .crow:first-child{border-top:0}.esn-v3 .dl .chead{background:var(--paper);font-size:.68rem;font-weight:800;letter-spacing:.09em;color:var(--dim);padding:11px 18px}.esn-v3 .dl .cprov{display:flex;align-items:center;gap:11px;min-width:0}.esn-v3 .dl .cprov i{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;
  font-style:normal;font-size:.7rem;font-weight:800;flex:none}.esn-v3 .dl .cprov i.has-logo{background:#fff;border:1px solid var(--line);padding:3px;overflow:hidden}.esn-v3 .dl .cprov i.has-logo img{width:100%;height:100%;object-fit:contain;display:block}.esn-v3 .dl .cprov b{display:block;font-size:.95rem;font-weight:800;letter-spacing:-.01em}.esn-v3 .dl .cprov small{display:block;color:var(--dim);font-size:.76rem;font-weight:600}.esn-v3 .dl .ccode{display:inline-flex;align-items:center;gap:8px;border:1px dashed var(--line-2);
  background:var(--paper);border-radius:9px;padding:8px 11px;cursor:pointer;font-family:inherit;
  color:var(--ink);justify-self:start;min-width:0}.esn-v3 .dl .ccode code{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.78rem;font-weight:700}.esn-v3 .dl .ccode:hover{border-color:var(--violet);color:var(--violet)}.esn-v3 .dl .ccode.copied{background:var(--mint-wash);border-color:var(--mint);color:#0B7A52}.esn-v3 .dl .ccode.copied code:after{content:" copied"}.esn-v3 .dl .coff{font-weight:800;font-size:1.02rem;letter-spacing:-.03em;color:#0B7A52}.esn-v3 .dl .coff.zero{font-size:.8rem;font-weight:700;color:var(--dim);letter-spacing:0}.esn-v3 .dl .ccond{color:var(--muted);font-size:.84rem;line-height:1.45}.esn-v3 .dl .ccond .none{color:var(--dim);font-style:italic}.esn-v3 .dl .cver{color:var(--dim);font-size:.79rem;font-weight:600;white-space:nowrap}.esn-v3 .dl .cempty{display:none;padding:34px 18px;text-align:center;border-top:1px solid var(--line)}.esn-v3 .dl .cempty.on{display:block}.esn-v3 .dl .cempty b{display:block;font-size:1.1rem;margin-bottom:6px}.esn-v3 .dl .cempty p{color:var(--muted);font-size:.92rem}.esn-v3 .dl .cempty a{color:var(--violet);font-weight:700}
@media(max-width:1080px){.esn-v3 .dl .crow{grid-template-columns:minmax(0,1.8fr) 1.2fr .7fr auto;gap:12px}.esn-v3 .dl .ccond,.esn-v3 .dl .cver{display:none}.esn-v3 .dl .chead span:nth-child(4),.esn-v3 .dl .chead span:nth-child(5){display:none}
}
@media(max-width:660px){.esn-v3 .dl .crow{grid-template-columns:1fr auto;gap:10px 12px;padding:14px 16px}.esn-v3 .dl .chead{display:none}.esn-v3 .dl .cprov{grid-column:1/-1}.esn-v3 .dl .ccode{justify-self:start}.esn-v3 .dl .coff{text-align:right}.esn-v3 .dl .crow .btn{grid-column:1/-1;width:100%;min-height:44px}
}/* best value cards */
.esn-v3 .dl .drops{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.esn-v3 .dl .dp{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:20px;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:10px}.esn-v3 .dl .dp-top{display:flex;align-items:center;gap:11px}.esn-v3 .dl .dp-top img{width:40px;height:30px;object-fit:cover;border-radius:5px;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.08)}.esn-v3 .dl .dp-top .globe{width:40px;height:30px;display:grid;place-items:center;font-size:1.2rem;flex:none}.esn-v3 .dl .dp-top b{display:block;font-size:.98rem;font-weight:800;letter-spacing:-.02em}.esn-v3 .dl .dp-top small{display:block;color:var(--dim);font-size:.78rem;font-weight:600}.esn-v3 .dl .dp-badge{margin-left:auto;background:var(--mint-wash);color:#0B7A52;border-radius:8px;
  padding:5px 9px;font-size:.75rem;font-weight:800;white-space:nowrap}.esn-v3 .dl .dp-price{display:flex;align-items:baseline;gap:9px}.esn-v3 .dl .dp-price b{font-size:1.6rem;font-weight:800;letter-spacing:-.04em;line-height:1}.esn-v3 .dl .dp-price s{color:var(--dim);font-size:.88rem;font-weight:600}.esn-v3 .dl .dp-ppg{color:var(--muted);font-size:.84rem;font-weight:700}.esn-v3 .dl .dp-spec{display:flex;flex-wrap:wrap;gap:6px}.esn-v3 .dl .dp-spec span{background:var(--paper);border-radius:7px;padding:5px 9px;font-size:.75rem;color:var(--muted);font-weight:700}.esn-v3 .dl .dp .btn{margin-top:auto}.esn-v3 .dl .dp.more{background:linear-gradient(150deg,var(--violet-wash),#fff);border-style:dashed}.esn-v3 .dl .dp.more p{color:var(--muted);font-size:.89rem}
@media(max-width:960px){.esn-v3 .dl .drops{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.esn-v3 .dl .drops{grid-template-columns:1fr}}/* steps */
.esn-v3 .dl .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.esn-v3 .dl .step{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:20px;box-shadow:var(--sh-1)}.esn-v3 .dl .step .n{width:28px;height:28px;border-radius:9px;background:var(--violet-wash);color:var(--violet);
  display:grid;place-items:center;font-weight:800;font-size:.82rem;margin-bottom:12px}.esn-v3 .dl .step p{color:var(--muted);font-size:.88rem;margin-top:7px}
@media(max-width:960px){.esn-v3 .dl .steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.esn-v3 .dl .steps{grid-template-columns:1fr}}/* chip rows */
.esn-v3 .dl .chiprow{display:flex;flex-wrap:wrap;gap:9px}.esn-v3 .dl .chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:10px 15px;font-weight:700;font-size:.88rem;box-shadow:var(--sh-1)}.esn-v3 .dl .chip:hover{border-color:var(--violet);color:var(--violet)}.esn-v3 .dl .chip em{font-style:normal;color:var(--dim);font-size:.76rem;font-weight:600}.esn-v3 .dl .chip.alt{background:var(--violet-wash);color:var(--violet);border-color:transparent}/* guide prose */
.esn-v3 .dl .guide{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:34px;
  box-shadow:var(--sh-1);max-width:78ch}.esn-v3 .dl .guide .kick{font-size:.68rem;font-weight:800;letter-spacing:.11em;color:var(--sky);margin-bottom:10px}.esn-v3 .dl .guide h3{margin:26px 0 8px;font-size:1.08rem}.esn-v3 .dl .guide p{color:var(--muted);margin-top:10px}.esn-v3 .dl .guide ul{margin:10px 0 0;padding-left:20px;color:var(--muted);display:grid;gap:8px}.esn-v3 .dl .guide b{color:var(--ink)}
@media(max-width:600px){.esn-v3 .dl .guide{padding:22px}}/* closing CTA */
.esn-v3 .dl .cta{border-radius:var(--r-xl);padding:48px 40px;text-align:center;color:#fff;position:relative;
  overflow:hidden;background:linear-gradient(112deg,#2B1C6B,var(--violet) 46%,#B24BC9 100%);box-shadow:var(--sh-3)}.esn-v3 .dl .cta:before{content:"";position:absolute;inset:0;opacity:.22;
  background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:52px 52px}.esn-v3 .dl .cta h2,.esn-v3 .dl .cta p,.esn-v3 .dl .cta .row{position:relative}.esn-v3 .dl .cta h2{color:#fff}.esn-v3 .dl .cta p{color:#E4DEFF;margin-top:12px}.esn-v3 .dl .cta .row{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap}

/* mobile: the 44px tap floor and 11px type floor used across the site */
@media(max-width:600px){.esn-v3 .dl .hero{padding:30px 0 20px}.esn-v3 .dl .hform{min-height:44px}.esn-v3 .dl .chip{min-height:44px}.esn-v3 .dl .ccode,.esn-v3 .dl .tc .cd{min-height:44px}.esn-v3 .dl .cta{padding:32px 22px}.esn-v3 .dl .tc .rk,.esn-v3 .dl .guide .kick{font-size:.7rem}/* the COPY label resolved to 10.2px - it is the only word telling you the
     chip is a button, so it clears the 11px floor like everything else */
.esn-v3 .dl .tc .cd em{font-size:.7rem}.esn-v3 .dl .tc .big{font-size:2.1rem}
}.esn-v3 /* ══════════════════════════════════════════════════════════════════════════
   PROVIDER PAGE  (/esim-provider/{slug}.esn-v3 /)
   Fifth page on this stylesheet,.esn-v3 nested under .pp after .pv,.esn-v3 .cy and .dl.
   ══════════════════════════════════════════════════════════════════════════ */

/* hero */
.pp .hero{padding:36px 0 26px;text-align:center}.esn-v3 .pp .hero-in{position:relative;max-width:880px;margin:0 auto;padding:0 24px}.esn-v3 .pp .crumb{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:99px;padding:8px 16px;font-size:.85rem;font-weight:700;box-shadow:var(--sh-1);margin-bottom:22px}.esn-v3 .pp .crumb .sep{color:var(--line-2)}.esn-v3 .pp .crumb .cur{color:var(--violet)}/* the mark sits on white: provider logos are mostly dark wordmarks */
.esn-v3 .pp .plogo{width:82px;height:82px;border-radius:22px;margin:0 auto 20px;background:#fff;
  border:1px solid var(--line);box-shadow:var(--sh-2);display:grid;place-items:center;padding:11px}.esn-v3 .pp .plogo i{width:100%;height:100%;border-radius:12px;display:grid;place-items:center;color:#fff;
  font-style:normal;font-weight:800;font-size:1.3rem;letter-spacing:-.04em}.esn-v3 .pp .plogo i.has-logo{background:#fff;border:0;padding:0}.esn-v3 .pp .plogo i.has-logo img{width:100%;height:100%;object-fit:contain;display:block}.esn-v3 .pp .hero h1{font-size:clamp(2.1rem,4.6vw,3.6rem)}.esn-v3 .pp .pills{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:16px}.esn-v3 .pp .pill{display:inline-flex;align-items:center;gap:7px;background:var(--violet-wash);color:var(--violet);
  border-radius:99px;padding:6px 14px;font-size:.8rem;font-weight:800}.esn-v3 .pp .pill.m{background:var(--mint-wash);color:#0B7A52}.esn-v3 .pp .lede{color:var(--muted);font-size:1.05rem;margin-top:18px}.esn-v3 .pp .metaline{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 26px;margin-top:20px;
  font-size:.9rem;color:var(--muted);font-weight:600}.esn-v3 .pp .metaline b{color:var(--ink);font-weight:800}.esn-v3 .pp .herobtns{display:flex;gap:10px;justify-content:center;margin-top:24px;flex-wrap:wrap}/* shared furniture */
.esn-v3 .pp .head-flex{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:22px}.esn-v3 .pp .head-flex>div{max-width:640px}.esn-v3 .pp .head-flex p{color:var(--muted);margin-top:10px}.esn-v3 .pp .mb-s{margin-bottom:8px}.esn-v3 .pp .mb-m{margin-bottom:20px}.esn-v3 .pp .sub{color:var(--muted);margin-top:10px;max-width:74ch}.esn-v3 .pp .sub-s{color:var(--muted);margin-bottom:22px;max-width:74ch}.esn-v3 .pp .fine-note{color:var(--dim);font-size:.85rem;font-weight:600;margin-top:14px;max-width:80ch}.esn-v3 .pp .na{color:var(--dim);font-weight:600;font-size:.85rem}/* promo bar */
.esn-v3 .pp .promobar{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1);
  padding:24px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.esn-v3 .pp .promobar .tag{width:48px;height:48px;border-radius:14px;background:var(--mint-wash);
  display:grid;place-items:center;flex:none;font-size:1.3rem}.esn-v3 .pp .promobar .txt{flex:1;min-width:220px}.esn-v3 .pp .promobar h3{font-size:1.12rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.esn-v3 .pp .promobar h3 em{font-style:normal;background:var(--ink);color:#fff;border-radius:8px;padding:3px 9px;font-size:.8rem;font-weight:800}.esn-v3 .pp .promobar p{color:var(--muted);font-size:.92rem;margin-top:5px}.esn-v3 .pp .codebtn{display:inline-flex;align-items:center;gap:10px;background:var(--paper);
  border:1px dashed var(--line-2);border-radius:12px;padding:12px 16px;cursor:pointer;font-family:inherit;color:var(--ink)}.esn-v3 .pp .codebtn code{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.95rem;font-weight:700}.esn-v3 .pp .codebtn:hover{background:var(--mint-wash);border-color:var(--mint)}.esn-v3 .pp .codebtn.done{background:var(--mint-wash);border-style:solid;border-color:var(--mint);color:#0B7A52}/* facts grid */
.esn-v3 .pp .facts{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1);
  display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden}.esn-v3 .pp .fact{padding:22px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.esn-v3 .pp .fact:nth-child(3n){border-right:0}.esn-v3 .pp .fact .k{font-size:.71rem;font-weight:800;letter-spacing:.11em;color:var(--dim)}.esn-v3 .pp .fact .v{font-weight:700;font-size:1.02rem;margin-top:5px}.esn-v3 .pp .fact .v small{display:block;color:var(--muted);font-size:.86rem;font-weight:600;margin-top:3px;letter-spacing:0}.esn-v3 .pp .fact .v.big{font-size:1.6rem;font-weight:800;letter-spacing:-.035em}
@media(max-width:900px){.esn-v3 .pp .facts{grid-template-columns:1fr 1fr}.esn-v3 .pp .fact:nth-child(3n){border-right:1px solid var(--line)}.esn-v3 .pp .fact:nth-child(2n){border-right:0}
}
@media(max-width:560px){.esn-v3 .pp .facts{grid-template-columns:1fr}.esn-v3 .pp .fact{border-right:0!important}}/* plan cards */
.esn-v3 .pp .pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.esn-v3 .pp .pc{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:20px;box-shadow:var(--sh-1);
  display:flex;flex-direction:column;gap:8px;transition:transform .14s ease,box-shadow .14s ease}.esn-v3 .pp .pc:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.esn-v3 .pp .pc-top{display:flex;align-items:center;gap:11px}.esn-v3 .pp .pc-top img{width:32px;height:23px;object-fit:cover;border-radius:5px;box-shadow:0 0 0 1px rgba(12,15,43,.14);flex:none}.esn-v3 .pp .pc-top b{font-size:1rem;font-weight:800;min-width:0}.esn-v3 .pp .pc-off{margin-left:auto;background:var(--mint-wash);color:#0B7A52;border-radius:8px;padding:4px 9px;font-size:.72rem;font-weight:800;white-space:nowrap}.esn-v3 .pp .pc-price{display:flex;align-items:baseline;gap:9px}.esn-v3 .pp .pc-price b{font-size:1.7rem;font-weight:800;letter-spacing:-.045em;line-height:1}.esn-v3 .pp .pc-price s{color:var(--dim);font-size:.9rem;font-weight:600}.esn-v3 .pp .pc-ppg{color:#0B7A52;font-weight:800;font-size:.82rem}.esn-v3 .pp .pc-spec{display:flex;gap:7px;flex-wrap:wrap;margin:6px 0 4px}.esn-v3 .pp .pc-spec span{background:var(--paper);border-radius:9px;padding:6px 10px;font-size:.78rem;font-weight:700;color:var(--muted)}.esn-v3 .pp .pc .btn{margin-top:auto}
@media(max-width:980px){.esn-v3 .pp .pcards{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.esn-v3 .pp .pcards{grid-template-columns:1fr}}/* plan table */
.esn-v3 .pp .ptable{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1);
  overflow:hidden;margin-top:20px}.esn-v3 .pp .prow{display:grid;grid-template-columns:40px minmax(0,1.9fr) .8fr .8fr 1.05fr .95fr auto;gap:14px;
  align-items:center;padding:14px 22px;border-bottom:1px solid var(--line)}.esn-v3 .pp .prow:last-child{border-bottom:0}.esn-v3 .pp .phead{background:#FBFAFF;font-size:.69rem;font-weight:800;letter-spacing:.11em;color:var(--dim);padding:13px 22px}.esn-v3 .pp .prow:not(.phead):hover{background:#FBFAFF}.esn-v3 .pp .pnum{width:29px;height:29px;border-radius:9px;background:var(--paper);color:var(--muted);
  display:grid;place-items:center;font-weight:800;font-size:.83rem}.esn-v3 .pp .prow:nth-child(2) .pnum{background:var(--mint-wash);color:#0B7A52}.esn-v3 .pp .pplan{display:flex;align-items:center;gap:12px;min-width:0}.esn-v3 .pp .pplan img{width:28px;height:20px;object-fit:cover;border-radius:4px;box-shadow:0 0 0 1px rgba(12,15,43,.14);flex:none}.esn-v3 .pp .pplan b{display:block;font-size:.94rem;font-weight:700;line-height:1.3}.esn-v3 .pp .pplan small{display:block;color:var(--dim);font-size:.78rem;font-weight:600}.esn-v3 .pp .pcell{font-weight:700;font-size:.9rem}.esn-v3 .pp .pcell small{display:block;color:var(--dim);font-size:.74rem;font-weight:600}.esn-v3 .pp .ccode{display:inline-flex;align-items:center;gap:7px;background:var(--paper);border:1px dashed var(--line-2);
  border-radius:9px;padding:7px 10px;font-size:.73rem;font-weight:700;cursor:pointer;white-space:nowrap;
  font-family:inherit;color:var(--ink);justify-self:start}.esn-v3 .pp .ccode code{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700}.esn-v3 .pp .ccode em{font-style:normal;color:#0B7A52;font-weight:800}.esn-v3 .pp .ccode:hover{background:var(--mint-wash);border-color:var(--mint)}.esn-v3 .pp .ccode.done{background:var(--mint-wash);border-style:solid;border-color:var(--mint);color:#0B7A52}.esn-v3 .pp .ccode.no{border-style:solid;border-color:var(--line);color:var(--dim);cursor:default}.esn-v3 .pp .pprice{text-align:right}.esn-v3 .pp .pprice b{font-size:1.06rem;font-weight:800;letter-spacing:-.03em;display:block}.esn-v3 .pp .pprice s{color:var(--dim);font-size:.77rem;font-weight:600}.esn-v3 .pp .pprice .gb{display:block;font-size:.73rem;color:#0B7A52;font-weight:800}.esn-v3 .pp .pfoot{padding:18px 22px;background:#FBFAFF;display:flex;justify-content:space-between;
  align-items:center;gap:14px;flex-wrap:wrap}.esn-v3 .pp .pfoot span{font-size:.85rem;color:var(--muted);font-weight:600;max-width:70ch}
@media(max-width:1080px){.esn-v3 .pp .phead{display:none}.esn-v3 .pp .prow{grid-template-columns:38px minmax(0,1fr) auto;gap:10px 12px;padding:16px}.esn-v3 .pp .pcell,.esn-v3 .pp .ccode{grid-column:2}.esn-v3 .pp .pcell.hidem{display:none}.esn-v3 .pp .pprice{grid-column:3;grid-row:1;text-align:right}.esn-v3 .pp .prow .btn{grid-column:2/4;justify-self:start;min-height:44px}
}/* the take */
.esn-v3 .pp .take{display:grid;grid-template-columns:1fr 1fr;gap:18px}.esn-v3 .pp .verdict{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:26px;box-shadow:var(--sh-1)}.esn-v3 .pp .verdict.win{border-left:4px solid var(--mint)}.esn-v3 .pp .verdict.lose{border-left:4px solid var(--flame)}.esn-v3 .pp .verdict h3{font-size:1.14rem;margin-bottom:14px;display:flex;align-items:center;gap:10px}.esn-v3 .pp .verdict h3 i{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-style:normal;
  font-size:.75rem;font-weight:800;flex:none}.esn-v3 .pp .verdict.win h3 i{background:var(--mint-wash);color:#0B7A52}.esn-v3 .pp .verdict.lose h3 i{background:#FFF1EB;color:var(--flame-dk)}.esn-v3 .pp .verdict ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}.esn-v3 .pp .verdict li{display:flex;gap:11px;align-items:flex-start;color:var(--muted);font-size:.93rem}.esn-v3 .pp .verdict li b{color:var(--ink)}.esn-v3 .pp .verdict li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--line-2);flex:none;margin-top:9px}
@media(max-width:860px){.esn-v3 .pp .take{grid-template-columns:1fr}}/* country cards + chips */
.esn-v3 .pp .ccards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.esn-v3 .pp .cc{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:16px;
  box-shadow:var(--sh-1);display:flex;align-items:center;gap:12px}.esn-v3 .pp .cc img{width:32px;height:23px;object-fit:cover;border-radius:5px;box-shadow:0 0 0 1px rgba(12,15,43,.14);flex:none}.esn-v3 .pp .cc b{display:block;font-size:.94rem;font-weight:700}.esn-v3 .pp .cc small{display:block;color:var(--dim);font-size:.78rem;font-weight:600}.esn-v3 .pp .cc .go{margin-left:auto;color:var(--line-2);font-weight:800}.esn-v3 .pp .cc:hover{border-color:var(--violet)}.esn-v3 .pp .cc:hover .go{color:var(--violet)}
@media(max-width:1000px){.esn-v3 .pp .ccards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.esn-v3 .pp .ccards{grid-template-columns:1fr}}.esn-v3 .pp .chiprow{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.esn-v3 .pp .chip{background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 15px;
  font-weight:700;font-size:.86rem;box-shadow:var(--sh-1)}.esn-v3 .pp .chip:hover{border-color:var(--violet);color:var(--violet)}/* comparison table */
.esn-v3 .pp .tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.esn-v3 .pp table.simple{width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);
  box-shadow:var(--sh-1);border-collapse:separate;border-spacing:0;overflow:hidden;min-width:680px}.esn-v3 .pp table.simple th{background:#FBFAFF;text-align:left;font-size:.7rem;font-weight:800;letter-spacing:.1em;
  color:var(--dim);padding:14px 18px;white-space:nowrap}.esn-v3 .pp table.simple td{padding:14px 18px;border-top:1px solid var(--line);font-size:.92rem;font-weight:600}.esn-v3 .pp table.simple tr:hover td{background:#FBFAFF}.esn-v3 .pp table.simple .nm{display:flex;align-items:center;gap:11px;font-weight:700}.esn-v3 .pp table.simple .nm i{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:#fff;
  font-style:normal;font-size:.62rem;font-weight:800;flex:none}.esn-v3 .pp table.simple .nm i.has-logo{background:#fff;border:1px solid var(--line);padding:2px;overflow:hidden}.esn-v3 .pp table.simple .nm i.has-logo img{width:100%;height:100%;object-fit:contain;display:block}.esn-v3 .pp table.simple .nm a:hover{color:var(--violet)}.esn-v3 .pp table.simple tr.me td{background:#FBFAFF}.esn-v3 .pp .best{background:var(--mint-wash);color:#0B7A52;border-radius:7px;padding:3px 8px;font-size:.7rem;
  font-weight:800;margin-left:8px;white-space:nowrap}/* steps */
.esn-v3 .pp .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-1)}.esn-v3 .pp .step{padding:26px 24px;border-right:1px solid var(--line)}.esn-v3 .pp .step:last-child{border-right:0}.esn-v3 .pp .step .n{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:grid;
  place-items:center;font-weight:800;font-size:.85rem;margin-bottom:14px}.esn-v3 .pp .step h3{font-size:1.01rem;margin-bottom:6px}.esn-v3 .pp .step p{color:var(--muted);font-size:.88rem}
@media(max-width:900px){.esn-v3 .pp .steps{grid-template-columns:1fr 1fr}.esn-v3 .pp .step:nth-child(2n){border-right:0}.esn-v3 .pp .step:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:520px){.esn-v3 .pp .steps{grid-template-columns:1fr}.esn-v3 .pp .step{border-right:0;border-bottom:1px solid var(--line)}}/* what you get */
.esn-v3 .pp .safe{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.esn-v3 .pp .sf{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:18px;
  box-shadow:var(--sh-1);display:flex;gap:13px;align-items:flex-start}.esn-v3 .pp .sf i{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:none;
  font-style:normal;font-size:1.05rem;background:var(--violet-wash)}.esn-v3 .pp .sf i.s{background:#E3F3FD}.esn-v3 .pp .sf i.m{background:var(--mint-wash)}.esn-v3 .pp .sf b{display:block;font-size:.94rem;font-weight:800}.esn-v3 .pp .sf span span{color:var(--muted);font-size:.85rem}
@media(max-width:900px){.esn-v3 .pp .safe{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.esn-v3 .pp .safe{grid-template-columns:1fr}}/* closing CTA */
.esn-v3 .pp .cta{border-radius:var(--r-xl);padding:48px 40px;text-align:center;color:#fff;position:relative;
  overflow:hidden;background:linear-gradient(112deg,#2B1C6B,var(--violet) 46%,#B24BC9 100%);box-shadow:var(--sh-3)}.esn-v3 .pp .cta:before{content:"";position:absolute;inset:0;opacity:.22;
  background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:52px 52px}.esn-v3 .pp .cta h2,.esn-v3 .pp .cta p,.esn-v3 .pp .cta .row{position:relative}.esn-v3 .pp .cta h2{color:#fff}.esn-v3 .pp .cta p{color:#E4DEFF;margin-top:12px}.esn-v3 .pp .cta .row{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap}

/* mobile: the 44px tap floor and 11px type floor used across the site */
@media(max-width:600px){.esn-v3 .pp .hero{padding:26px 0 18px}.esn-v3 .pp .plogo{width:70px;height:70px;border-radius:18px;padding:9px}.esn-v3 .pp .chip{min-height:44px}.esn-v3 .pp .codebtn,.esn-v3 .pp .ccode{min-height:44px}.esn-v3 .pp .cta{padding:32px 22px}.esn-v3 .pp .metaline{gap:8px 16px;font-size:.88rem}.esn-v3 .pp .fact .k{font-size:.74rem}
}/* ══════════════════════════════════════════════════════════════════════════
   COVERAGE INDEX  (/esim-coverage/)
   Sixth page on this stylesheet, nested under .cv.

   Class names were checked against the existing global rules before use.
   .cgrid and .n are already styled globally by the homepage, so this page uses
   .cvgrid and .cn instead - the .tk collision on the provider page (homepage
   coupon ticket, position:absolute, width:214px) came from skipping that step.
   ══════════════════════════════════════════════════════════════════════════ */
/* hero */
.esn-v3 .cv .hero{padding:40px 0 26px;text-align:center}.esn-v3 .cv .hero-in{position:relative;max-width:900px;margin:0 auto;padding:0 24px}.esn-v3 .cv .crumb{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:99px;padding:8px 16px;font-size:.85rem;font-weight:700;box-shadow:var(--sh-1);margin-bottom:20px}.esn-v3 .cv .crumb .sep{color:var(--line-2)}.esn-v3 .cv .crumb .cur{color:var(--violet)}.esn-v3 .cv .hero h1{font-size:clamp(2.1rem,4.6vw,3.6rem)}.esn-v3 .cv .lede{color:var(--muted);font-size:1.06rem;margin-top:16px}.esn-v3 .cv .hstats{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:26px}.esn-v3 .cv .hstats>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 22px;
  box-shadow:var(--sh-1);min-width:132px}.esn-v3 .cv .hstats b{display:block;font-size:1.32rem;font-weight:800;letter-spacing:-.035em;line-height:1.15}.esn-v3 .cv .hstats span{display:block;font-size:.68rem;color:var(--dim);font-weight:800;letter-spacing:.1em;margin-top:2px}.esn-v3 .cv .byline{margin-top:14px;font-size:.85rem;color:var(--dim);font-weight:600}/* section furniture */
.esn-v3 .cv .mb-s{margin-bottom:8px}.esn-v3 .cv .mb-m{margin-bottom:22px}.esn-v3 .cv .sub-s{color:var(--muted);margin-bottom:20px;max-width:78ch}.esn-v3 .cv .fine-note{margin-top:16px;color:var(--dim);font-size:.85rem;max-width:80ch}/* deepest catalogues */
.esn-v3 .cv .pop{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.esn-v3 .cv .popc{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:15px;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:7px;transition:transform .13s ease,box-shadow .13s ease}.esn-v3 .cv .popc:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:var(--violet)}.esn-v3 .cv .popc img{width:40px;height:30px;object-fit:cover;border-radius:5px;box-shadow:0 0 0 1px rgba(12,15,43,.12)}.esn-v3 .cv .popc b{font-size:.93rem;font-weight:800;letter-spacing:-.015em;line-height:1.25}.esn-v3 .cv .popc small{color:var(--dim);font-size:.76rem;font-weight:600}
@media(max-width:1180px){.esn-v3 .cv .pop{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.esn-v3 .cv .pop{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.esn-v3 .cv .pop{grid-template-columns:1fr 1fr}}/* sticky filter bar. top:96px clears the header pill; static on phones, where
   two sticky bars would take most of a short viewport */
.esn-v3 .cv .bar{position:sticky;top:96px;z-index:60;background:rgba(246,245,252,.94);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0}.esn-v3 .cv .bar-in{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.esn-v3 .cv .find{flex:1;min-width:250px;display:flex;align-items:center;gap:10px;background:#fff;
  border:1px solid var(--line-2);border-radius:13px;padding:11px 15px}.esn-v3 .cv .find input{flex:1;border:0;outline:0;background:none;font:inherit;font-weight:600;color:var(--ink);min-width:0}.esn-v3 .cv .rchips{display:flex;gap:7px;flex-wrap:wrap}.esn-v3 .cv .rchip{border:1px solid var(--line-2);background:#fff;border-radius:10px;padding:9px 13px;
  font-weight:700;font-size:.83rem;cursor:pointer;white-space:nowrap;font-family:inherit;color:inherit}.esn-v3 .cv .rchip:hover{border-color:var(--ink)}.esn-v3 .cv .rchip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.esn-v3 .cv .jump{display:flex;gap:5px;flex-wrap:wrap;margin-top:11px}.esn-v3 .cv .ltr{width:31px;height:31px;border:1px solid var(--line);background:#fff;border-radius:8px;
  font-weight:800;font-size:.79rem;cursor:pointer;font-family:inherit;color:var(--muted);padding:0}.esn-v3 .cv .ltr:hover{border-color:var(--violet);color:var(--violet)}.esn-v3 .cv .ltr[aria-pressed=true]{background:var(--violet);border-color:var(--violet);color:#fff}.esn-v3 .cv .ltr.clear{width:auto;padding:0 11px;color:var(--dim)}.esn-v3 .cv .count{margin:18px 0 14px;font-weight:700;color:var(--muted);font-size:.92rem}/* the A-Z index */
.esn-v3 .cv .cvgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.esn-v3 .cv .cty{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:12px 14px;
  box-shadow:var(--sh-1);display:flex;align-items:center;gap:11px;min-width:0}.esn-v3 .cv .cty:hover{border-color:var(--violet)}.esn-v3 .cv .cty:hover .go{color:var(--violet)}.esn-v3 .cv .cty img{width:28px;height:21px;object-fit:cover;border-radius:4px;flex:none;box-shadow:0 0 0 1px rgba(12,15,43,.12)}.esn-v3 .cv .cn{flex:1;min-width:0;font-weight:700;font-size:.9rem;display:flex;align-items:baseline;gap:8px}.esn-v3 .cv .cn em{font-style:normal;color:var(--dim);font-size:.75rem;font-weight:600;margin-left:auto;flex:none}.esn-v3 .cv .cty .go{color:var(--line-2);font-weight:800;flex:none}.esn-v3 .cv .cvempty{display:none;background:#fff;border:1px dashed var(--line-2);border-radius:var(--r-l);
  padding:36px;text-align:center;margin-top:16px}.esn-v3 .cv .cvempty.on{display:block}.esn-v3 .cv .cvempty b{display:block;font-size:1.12rem;margin-bottom:6px}.esn-v3 .cv .cvempty p{color:var(--muted);font-size:.92rem}
@media(max-width:1080px){.esn-v3 .cv .cvgrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.esn-v3 .cv .cvgrid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.esn-v3 .cv .cvgrid{grid-template-columns:1fr}}/* regional packs */
.esn-v3 .cv .packs{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.esn-v3 .cv .pk{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:16px;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:5px}.esn-v3 .cv .pk b{font-size:.94rem;font-weight:800;letter-spacing:-.015em}.esn-v3 .cv .pk small{color:var(--dim);font-size:.78rem;font-weight:600}.esn-v3 .cv .pk.go-all{background:linear-gradient(150deg,var(--violet-wash),#fff);border-style:dashed}.esn-v3 .cv .pk.go-all:hover{border-color:var(--violet)}
@media(max-width:1080px){.esn-v3 .cv .packs{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.esn-v3 .cv .packs{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.esn-v3 .cv .packs{grid-template-columns:1fr}}/* closing CTA */
.esn-v3 .cv .cta{border-radius:var(--r-xl);padding:48px 40px;text-align:center;color:#fff;position:relative;
  overflow:hidden;background:linear-gradient(112deg,#2B1C6B,var(--violet) 46%,#B24BC9 100%);box-shadow:var(--sh-3)}.esn-v3 .cv .cta:before{content:"";position:absolute;inset:0;opacity:.22;
  background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:52px 52px}.esn-v3 .cv .cta h2,.esn-v3 .cv .cta p,.esn-v3 .cv .cta .row{position:relative}.esn-v3 .cv .cta h2{color:#fff}.esn-v3 .cv .cta p{color:#E4DEFF;margin-top:12px}.esn-v3 .cv .cta .row{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap}

/* mobile: the 44px tap floor and 11px type floor used across the site */
@media(max-width:600px){.esn-v3 .cv .hero{padding:28px 0 18px}.esn-v3 .cv .bar{position:static}.esn-v3 .cv .find{min-height:44px}.esn-v3 .cv .rchip{min-height:44px}/* 44px like every other tap target on the site. 26 letters at 44px wrap
     to four rows on a 390px screen instead of three, which is a fair trade
     for not shipping the one control that misses the floor. */
.esn-v3 .cv .ltr{width:44px;height:44px;font-size:.88rem}.esn-v3 .cv .ltr.clear{height:44px}.esn-v3 .cv .cty{min-height:52px}.esn-v3 .cv .cta{padding:32px 22px}.esn-v3 .cv .hstats>div{padding:11px 16px;min-width:0;flex:1 1 44%}.esn-v3 .cv .hstats span{font-size:.7rem}.esn-v3 .cv .popc small,.esn-v3 .cv .pk small,.esn-v3 .cv .cn em{font-size:.8rem}
}/* ══════════════════════════════════════════════════════════════════════════
   COMPARE TOOL  (/esim-compare/)
   Seventh page on this stylesheet, nested under .cm.

   Class names were checked against the existing global rules first. .hero,
   .chip and .faq have global definitions and are REUSED here on purpose, so
   this page is only overriding padding and the chip's inner layout. The
   breadcrumb's current-page span is .cur2, not .cur, because .cur is the
   homepage currency toggle - the .tk collision on the provider page came from
   skipping exactly this check.
   ══════════════════════════════════════════════════════════════════════════ */
/* hero */
.esn-v3 .cm .hero{padding:40px 0 22px}.esn-v3 .cm .hero-in{position:relative;max-width:880px;margin:0 auto;padding:0 24px}.esn-v3 .cm .crumb{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:99px;padding:8px 16px;font-size:.85rem;font-weight:700;box-shadow:var(--sh-1);margin-bottom:20px}.esn-v3 .cm .crumb .sep{color:var(--line-2)}.esn-v3 .cm .crumb .cur2{color:var(--violet)}.esn-v3 .cm .lede{color:var(--muted);font-size:1.05rem;margin-top:16px}.esn-v3 .cm .hstats{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:26px}.esn-v3 .cm .hstats>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 22px;
  box-shadow:var(--sh-1);min-width:150px}.esn-v3 .cm .hstats b{display:block;font-size:1.32rem;font-weight:800;letter-spacing:-.035em;line-height:1.15}.esn-v3 .cm .hstats span{display:block;font-size:.68rem;color:var(--dim);font-weight:800;letter-spacing:.1em;margin-top:2px}.esn-v3 .cm .byline{margin-top:14px;font-size:.85rem;color:var(--dim);font-weight:600}/* section furniture */
.esn-v3 .cm .mb-s{margin-bottom:8px}.esn-v3 .cm .mb-m{margin-bottom:22px}.esn-v3 .cm .sub-s{color:var(--muted);margin-bottom:20px;max-width:78ch}/* numbered step label */
.esn-v3 .cm .steplab{display:flex;align-items:center;gap:12px;margin-bottom:16px}.esn-v3 .cm .steplab.st2{margin-top:34px}.esn-v3 .cm .steplab i{width:28px;height:28px;border-radius:9px;background:var(--ink);color:#fff;display:grid;
  place-items:center;font-style:normal;font-weight:800;font-size:.82rem;flex:none}.esn-v3 .cm .steplab h2{font-size:1.35rem}.esn-v3 .cm .steplab p{color:var(--muted);font-size:.92rem;margin-left:auto;text-align:right}/* picker shell */
.esn-v3 .cm .panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-1);overflow:hidden}.esn-v3 .cm .filters{display:flex;gap:10px;padding:18px;border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center}.esn-v3 .cm .find{flex:1;min-width:230px;display:flex;align-items:center;gap:10px;background:var(--paper);
  border:1px solid var(--line-2);border-radius:12px;padding:11px 14px}.esn-v3 .cm .find input{flex:1;border:0;outline:0;background:none;font:inherit;font-weight:600;color:var(--ink);min-width:0}.esn-v3 .cm .selwrap{display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line-2);
  border-radius:12px;padding:9px 12px}.esn-v3 .cm .selwrap label{font-size:.68rem;font-weight:800;letter-spacing:.09em;color:var(--dim)}.esn-v3 .cm .selwrap select{border:0;outline:0;background:none;font:inherit;font-weight:700;font-size:.87rem;
  cursor:pointer;max-width:172px;color:var(--ink)}.esn-v3 .cm .curnote{padding:12px 18px;margin:0;background:#FBFAFF;border-bottom:1px solid var(--line);
  color:var(--dim);font-size:.82rem;font-weight:600}/* the option list */
.esn-v3 .cm .list{max-height:430px;overflow-y:auto;transition:opacity .12s ease}.esn-v3 .cm .list.busy{opacity:.45}.esn-v3 .cm .opt{display:grid;grid-template-columns:24px 34px 1fr auto auto;gap:13px;align-items:center;
  padding:12px 18px;border:0;border-bottom:1px solid var(--line);cursor:pointer;width:100%;
  background:none;text-align:left;font:inherit;color:inherit}.esn-v3 .cm .opt:hover{background:#FBFAFF}.esn-v3 .cm .opt.on{background:var(--violet-wash)}.esn-v3 .cm .box{width:20px;height:20px;border-radius:6px;border:2px solid var(--line-2);display:grid;
  place-items:center;color:#fff;font-size:.68rem;font-weight:800}.esn-v3 .cm .opt.on .box{background:var(--violet);border-color:var(--violet)}.esn-v3 .cm .opt img{width:30px;height:22px;object-fit:contain;border-radius:4px;background:#fff;
  box-shadow:0 0 0 1px rgba(12,15,43,.1)}.esn-v3 .cm .nolg{width:30px;height:22px;border-radius:4px;display:grid;place-items:center;background:var(--violet-wash);
  color:var(--violet);font-size:.6rem;font-weight:800;letter-spacing:.03em}.esn-v3 .cm .opt .t{min-width:0}.esn-v3 .cm .opt .t b{display:block;font-size:.93rem;font-weight:700;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.esn-v3 .cm .opt .t small{display:block;color:var(--dim);font-size:.77rem;font-weight:600}.esn-v3 .cm .opt .gb{font-weight:800;font-size:.86rem;color:var(--mint);white-space:nowrap}.esn-v3 .cm .opt .pr{font-weight:800;font-size:1rem;white-space:nowrap;text-align:right}.esn-v3 .cm .opt:disabled{opacity:.4;cursor:not-allowed}.esn-v3 .cm .none{display:none;padding:30px 18px;text-align:center}.esn-v3 .cm .none.on{display:block}.esn-v3 .cm .none b{display:block;font-size:1.05rem;margin-bottom:4px}.esn-v3 .cm .none p{color:var(--muted);font-size:.92rem}/* the tray */
.esn-v3 .cm .tray{display:flex;align-items:center;gap:10px;padding:15px 18px;background:#FBFAFF;
  border-top:1px solid var(--line);flex-wrap:wrap}.esn-v3 .cm .tray .lbl{font-size:.7rem;font-weight:800;letter-spacing:.1em;color:var(--dim)}.esn-v3 .cm .slot{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line-2);
  border-radius:11px;padding:7px 11px;font-weight:700;font-size:.85rem}.esn-v3 .cm .slot img{width:22px;height:16px;object-fit:contain;border-radius:3px;flex:none}.esn-v3 .cm .slot button{border:0;background:none;color:var(--dim);cursor:pointer;font-weight:800;
  padding:0 2px;font-size:1rem;line-height:1}.esn-v3 .cm .slot button:hover{color:var(--flame-dk)}.esn-v3 .cm .slot.ghost{border-style:dashed;color:var(--dim);font-weight:600}.esn-v3 .cm .tray .btn{margin-left:auto}/* the comparison */
.esn-v3 .cm .cmp{display:none;margin-top:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  box-shadow:var(--sh-2);overflow:hidden}.esn-v3 .cm .cmp.on{display:block}.esn-v3 .cm .pickmore{display:none;background:#fff;border:1px dashed var(--line-2);border-radius:var(--r-l);
  padding:34px;text-align:center}.esn-v3 .cm .pickmore.on{display:block}.esn-v3 .cm .pickmore b{display:block;font-size:1.1rem;margin-bottom:6px}.esn-v3 .cm .pickmore p{color:var(--muted);font-size:.92rem;max-width:56ch;margin:0 auto}.esn-v3 .cm .cmp-top{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;
  align-items:center;gap:16px;flex-wrap:wrap}.esn-v3 .cm .cmp-top h2{font-size:1.28rem}.esn-v3 .cm .cmp-top p{color:var(--muted);font-size:.89rem;margin-top:4px}.esn-v3 .cm .verdictbox{background:var(--mint-wash);color:#0B7A52;border-radius:12px;padding:12px 16px;
  font-weight:700;font-size:.91rem;max-width:52ch}.esn-v3 .cm .tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.esn-v3 .cm .cmpt{width:100%;border-collapse:separate;border-spacing:0;min-width:660px}.esn-v3 .cm .cmpt th,.esn-v3 .cm .cmpt td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:center;
  font-size:.92rem;font-weight:600;vertical-align:middle}/* the row-label column stays put while the plan columns scroll under it */
.esn-v3 .cm .cmpt tbody th,.esn-v3 .cm .cmpt thead th:first-child{text-align:left;font-weight:800;font-size:.72rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--dim);background:#FBFAFF;
  position:sticky;left:0;z-index:2;min-width:136px}.esn-v3 .cm .cmpt thead th{background:#FBFAFF;vertical-align:bottom;padding:16px 15px}.esn-v3 .cm .cmpt thead th.win{background:var(--mint-wash)}.esn-v3 .cm .colhead{display:block}.esn-v3 .cm .colhead img{width:34px;height:24px;object-fit:contain;margin:0 auto 7px;border-radius:4px;
  background:#fff;box-shadow:0 0 0 1px rgba(12,15,43,.1)}.esn-v3 .cm .colhead b{display:block;font-size:.98rem;font-weight:800;letter-spacing:-.02em}.esn-v3 .cm .colhead small{display:block;color:var(--dim);font-size:.76rem;font-weight:600;margin-top:2px}.esn-v3 .cm .colhead small.pt{color:var(--muted);font-size:.72rem;max-width:19ch;margin:3px auto 0}.esn-v3 .cm .ribbon{display:inline-block;background:var(--mint);color:#fff;border-radius:7px;padding:3px 9px;
  font-size:.63rem;font-weight:800;letter-spacing:.06em;margin-bottom:8px}.esn-v3 .cm .cell-win{background:var(--mint-wash);color:#0B7A52;font-weight:800}.esn-v3 .cm .cmpt .big{font-size:1.08rem;font-weight:800;display:block}.esn-v3 .cm .cmpt s{color:var(--dim);font-size:.78rem;font-weight:600}.esn-v3 .cm .cmpt small.dim{display:block;color:var(--dim);font-size:.74rem;font-weight:600;margin-top:2px}.esn-v3 .cm .cmpt .dim{color:var(--dim);font-weight:600}.esn-v3 .cm .cmpt .yes{color:#0B7A52;font-weight:800}.esn-v3 .cm .cmpt code{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.8rem;font-weight:700;background:var(--violet-wash);color:var(--violet-dk);
  border-radius:6px;padding:3px 7px}.esn-v3 .cm .cmpt td.buy{padding:16px 15px;border-bottom:0}.esn-v3 .cm .cmpt td.buy .btn{width:100%}/* matchup chips - .chip itself is the shared global rule */
.esn-v3 .cm .chiprow{display:flex;flex-wrap:wrap;gap:9px}.esn-v3 .cm .chip{flex-direction:column;align-items:flex-start;gap:1px;padding:9px 15px}.esn-v3 .cm .chip b{font-size:.88rem;font-weight:800}.esn-v3 .cm .chip em{font-style:normal;color:var(--dim);font-size:.75rem;font-weight:600}/* method panel */
.esn-v3 .cm .method{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:32px;
  box-shadow:var(--sh-1);display:grid;grid-template-columns:1fr 1.15fr;gap:36px}.esn-v3 .cm .method h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:12px}.esn-v3 .cm .method>div>p{color:var(--muted)}.esn-v3 .cm .method ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}.esn-v3 .cm .method li{display:flex;gap:13px;align-items:flex-start}.esn-v3 .cm .method li i{width:22px;height:22px;border-radius:7px;background:var(--violet-wash);color:var(--violet);
  display:grid;place-items:center;flex:none;font-style:normal;font-size:.7rem;font-weight:800;margin-top:3px}.esn-v3 .cm .method li b{display:block;font-size:.95rem}.esn-v3 .cm .method li>span>span{color:var(--muted);font-size:.89rem}.esn-v3 .cm .method li em{font-style:normal;font-weight:700;color:var(--ink)}
@media(max-width:900px){.esn-v3 .cm .method{grid-template-columns:1fr;gap:22px;padding:24px}}/* closing CTA */
.esn-v3 .cm .cta{border-radius:var(--r-xl);padding:48px 40px;text-align:center;color:#fff;position:relative;
  overflow:hidden;background:linear-gradient(112deg,#2B1C6B,var(--violet) 46%,#B24BC9 100%);box-shadow:var(--sh-3)}.esn-v3 .cm .cta:before{content:"";position:absolute;inset:0;opacity:.22;
  background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:52px 52px}.esn-v3 .cm .cta h2,.esn-v3 .cm .cta p,.esn-v3 .cm .cta .row{position:relative}.esn-v3 .cm .cta h2{color:#fff}.esn-v3 .cm .cta p{color:#E4DEFF;margin-top:12px;max-width:60ch;margin-left:auto;margin-right:auto}.esn-v3 .cm .cta .row{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap}

/* mobile: the 44px tap floor and 11px type floor used across the site */
@media(max-width:820px){.esn-v3 .cm .steplab{flex-wrap:wrap}.esn-v3 .cm .steplab p{margin-left:0;text-align:left;width:100%}
}
@media(max-width:600px){.esn-v3 .cm .hero{padding:26px 0 16px}.esn-v3 .cm .hstats>div{padding:11px 16px;min-width:0;flex:1 1 44%}.esn-v3 .cm .hstats span{font-size:.7rem}.esn-v3 .cm .filters{padding:14px;gap:8px}.esn-v3 .cm .find{min-height:44px;min-width:0;width:100%}.esn-v3 .cm .selwrap{min-height:44px;flex:1 1 46%}.esn-v3 .cm .selwrap select{max-width:none;flex:1;min-width:0}/* the flag and the per-GB chip are the two things worth dropping first:
     the price and the plan name are what a thumb is scanning for */
.esn-v3 .cm .opt{grid-template-columns:22px 1fr auto;gap:10px;padding:11px 14px;min-height:56px}.esn-v3 .cm .opt img,.esn-v3 .cm .nolg,.esn-v3 .cm .opt .gb{display:none}.esn-v3 .cm .slot{min-height:44px}.esn-v3 .cm .cmp-top{padding:16px}.esn-v3 .cm .verdictbox{max-width:none;font-size:.88rem}/* 11px type floor and 44px tap floor, same as every other page here.
     .68rem lands on 10.88px and .63rem on 10.08px, so the field labels, the
     ribbon and the row headings are nudged up rather than left just under. */
.esn-v3 .cm .cmpt tbody th,.esn-v3 .cm .cmpt thead th:first-child{min-width:112px;font-size:.7rem}.esn-v3 .cm .selwrap label{font-size:.7rem}.esn-v3 .cm .ribbon{font-size:.7rem}.esn-v3 .cm .cmpt td.buy .btn{min-height:44px}.esn-v3 .cm .cmpt th,.esn-v3 .cm .cmpt td{padding:11px 12px;font-size:.88rem}.esn-v3 .cm .opt .t small,.esn-v3 .cm .colhead small,.esn-v3 .cm .curnote,.esn-v3 .cm .chip em{font-size:.79rem}.esn-v3 .cm .cta{padding:32px 22px}
}/* ══════════════════════════════════════════════════════════════════════════
   SCROLL-TO-TOP

   The theme prints this button and the theme's CSS positioned it, but v3
   pages no longer load kadence-global, so both of Kadence's two nodes lost
   position:fixed, fell into the document flow and stacked at the bottom-left
   of the page under the footer. Restyled here rather than re-adding the
   theme stylesheets for one button.

   Kadence emits TWO nodes with the same arrow: an <a> that is aria-hidden
   with tabindex -1 for sighted use, and a focusable <button> for screen
   readers. Only the link should be visible - that is why two arrows showed.
   The button stays reachable and appears on focus, so a keyboard user can
   still see what they have landed on.

   Every selector begins with body. so the scoping installer skips it: these
   elements are children of <body>, outside .esn-v3, and a
   ".esn-v3 #kt-scroll-up" rule would never match them.
   ══════════════════════════════════════════════════════════════════════════ */
body.esn-v3-page #kt-scroll-up{position:fixed;right:18px;bottom:18px;z-index:80;
  width:44px;height:44px;display:grid;place-items:center;border-radius:14px;
  background:rgba(12,15,43,.88);color:#fff;text-decoration:none;
  box-shadow:0 6px 18px rgba(12,15,43,.3);
  transition:transform .13s ease,background .13s ease}body.esn-v3-page #kt-scroll-up:hover{background:var(--violet);transform:translateY(-2px)}body.esn-v3-page #kt-scroll-up .kadence-svg-iconset{display:grid;place-items:center}body.esn-v3-page #kt-scroll-up svg{width:18px;height:18px;display:block}body.esn-v3-page #kt-scroll-up-reader{position:absolute;width:1px;height:1px;
  margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}body.esn-v3-page #kt-scroll-up-reader:focus{position:fixed;right:18px;bottom:70px;
  width:auto;height:auto;margin:0;padding:10px 14px;clip:auto;overflow:visible;
  white-space:normal;border-radius:12px;background:var(--ink);color:#fff;z-index:81;
  box-shadow:0 6px 18px rgba(12,15,43,.3)}body.esn-v3-page #kt-scroll-up-reader:focus svg{width:18px;height:18px;display:block}
@media(max-width:600px){body.esn-v3-page #kt-scroll-up{right:12px;bottom:12px}body.esn-v3-page #kt-scroll-up-reader:focus{right:12px;bottom:64px}
}
