/* ui.css — the 2026-09 redesign's shared components, used by the homepage (/) and every
   dealer page (/d/<slug>/). Loaded AFTER site.css (tokens: --gold, --violet, --muted ...).
   Mobile-first at 390px; every tappable >=44px; all motion is off under prefers-reduced-motion.
   Components: .u-hero, .u-kira (savings slider), .u-esim (phone check), .u-order (2-step form),
   .u-sec / .u-eyebrow / .u-h2 (section heads), .u-rv (reveal on scroll), .u-bubble (dealer WhatsApp). */
:root{--u-ink:#1A0B33;--u-bg:#0B0416;--u-panel:#170A30;--u-dim:#9C88C4;--u-ok:#25D366}
.u-disp{font-family:"Bricolage Grotesque","Plus Jakarta Sans",sans-serif;letter-spacing:-.02em}
.u-gold{background:linear-gradient(90deg,var(--gold),#FFE7A8,var(--gold2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* buttons */
.u-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 28px;border:0;border-radius:999px;
  color:var(--u-ink);font-weight:800;font-size:17px;line-height:1.2;font-family:inherit;text-decoration:none;cursor:pointer;
  background:linear-gradient(100deg,var(--gold) 0%,#FFF1C4 45%,var(--gold) 55%,var(--gold2) 100%);background-size:200% 100%;
  box-shadow:0 14px 34px -14px rgba(243,210,122,.7);transition:transform .2s,box-shadow .2s}
.u-cta:hover{transform:translateY(-2px);box-shadow:0 18px 40px -10px rgba(243,210,122,.75)}
.u-cta[disabled]{opacity:.6;cursor:progress;transform:none}
.u-cta svg{width:20px;height:20px}
.u-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 24px;border-radius:999px;
  border:1px solid rgba(255,255,255,.2);color:#fff;font-weight:700;font-size:15px;text-decoration:none;background:transparent;font-family:inherit;cursor:pointer;
  transition:background .2s,border-color .2s}
.u-ghost:hover{background:rgba(255,255,255,.08);border-color:var(--gold)}
.u-ghost svg{width:16px;height:16px}

/* invite pill */
.u-invite{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:5px 16px 5px 5px;border-radius:999px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);font-size:13.5px;color:#E6DAFF}
.u-invite[hidden]{display:none}
.u-invite b{color:#fff}
.u-av{position:relative;flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--u-ink);font-weight:800;font-size:12px}
.u-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.u-live{flex:none;width:8px;height:8px;border-radius:50%;background:var(--u-ok)}

/* hero */
.u-hero{position:relative;display:grid;gap:28px;padding:28px 16px 12px;overflow-x:clip}
.u-hero h1{margin:0;font-size:46px;line-height:1;font-weight:800;color:#fff;text-wrap:balance}
.u-lede{margin:0;font-size:16.5px;line-height:1.55;color:var(--muted);max-width:34em}
.u-lede b{color:#fff}.u-lede .g{color:var(--gold)}
.u-hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.u-ticks{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0;padding:0;list-style:none;font-size:14px;color:var(--muted)}
.u-ticks li{display:flex;align-items:center;gap:8px}
.u-ticks svg{width:18px;height:18px;color:var(--gold);flex:none}
.u-hero-copy{display:flex;flex-direction:column;gap:20px}
.u-stage{position:relative;height:250px}
.u-orb{position:absolute;left:50%;top:50%;width:230px;height:230px;margin:-115px 0 0 -115px}
.u-orb i{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(243,210,122,.45)}
.u-orb i:nth-child(2){border-color:rgba(168,85,247,.55)}
.u-orb::after{content:"";position:absolute;inset:60px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--violet-lt),#4C1D95 70%);box-shadow:0 0 90px rgba(168,85,247,.7)}
.u-sim{position:absolute;left:50%;top:50%;width:240px;height:152px;margin:-76px 0 0 -120px;border-radius:20px;padding:18px;box-sizing:border-box;
  display:flex;flex-direction:column;justify-content:space-between;color:#fff;
  background:linear-gradient(135deg,var(--violet) 0%,var(--magenta) 60%,var(--gold) 140%);box-shadow:0 30px 70px -20px rgba(0,0,0,.8);transform:rotate(-5deg)}
.u-sim .row{display:flex;justify-content:space-between;align-items:center}
.u-sim .brand{font-size:21px;font-weight:800}
.u-sim .tag{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:rgba(0,0,0,.25)}
.u-sim .chipc{width:46px;height:36px;border-radius:7px;background:linear-gradient(135deg,#FFE7A8,var(--gold2))}
.u-sim small{font-size:11.5px;letter-spacing:.12em;opacity:.85}
.u-float{position:absolute;display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:16px;
  background:rgba(30,14,60,.85);border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 50px -10px rgba(0,0,0,.6);font-size:12px;color:var(--muted)}
.u-float b{display:block;font-size:13.5px;color:#fff}
.u-float .big{font-size:26px;font-weight:800;color:var(--gold);line-height:1}
.u-float.f1{left:0;bottom:0}
.u-float.f2{right:0;top:0;flex-direction:column;align-items:flex-start;gap:2px}
.u-float .ok{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:rgba(37,211,102,.15);color:var(--u-ok)}
.u-float .ok svg{width:20px;height:20px}

/* marquee */
.u-marq{overflow:hidden;border-block:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);padding:16px 0;margin-top:20px}
.u-marq>div{display:flex;gap:40px;width:max-content;white-space:nowrap;font-weight:700;font-size:15px;color:var(--u-dim)}
.u-marq em{font-style:normal;color:var(--gold)}

/* sections */
.u-sec{padding:56px 16px 0}
.u-eyebrow{display:block;font-size:12px;font-weight:800;letter-spacing:.2em;color:var(--gold);text-transform:uppercase}
.u-h2{margin:10px 0 0;font-size:34px;line-height:1.04;font-weight:800;color:#fff;text-wrap:balance}
.u-fine{margin:12px 0 0;font-size:12px;line-height:1.5;color:var(--u-dim)}
.u-fine a{color:var(--gold)}
.u-panel{border-radius:28px;padding:24px 20px;background:linear-gradient(145deg,#24104C,#140726);border:1px solid rgba(255,255,255,.1)}

/* Kira Jimat */
.u-kira{display:flex;flex-direction:column;gap:18px}
.u-kira .now{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.u-kira .now output{font-size:56px;font-weight:800;color:#fff;line-height:1}
.u-kira .now span{color:var(--u-dim);font-size:14px}
.u-kira label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--u-dim)}
.u-kira input[type=range]{width:100%;height:44px;margin:0;accent-color:var(--gold);cursor:pointer}
.u-kira .cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.u-kira .cmp>div{padding:16px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);font-size:12.5px;color:var(--u-dim)}
.u-kira .cmp>div.hl{background:rgba(243,210,122,.1);border-color:rgba(243,210,122,.5);color:var(--gold)}
.u-kira .cmp b{display:block;margin-top:4px;font-size:26px;font-weight:800;color:#fff;line-height:1.1}
.u-kira .cmp .hl b{color:var(--gold)}
.u-kira .cmp small{display:block;font-size:12px;color:var(--u-dim);font-weight:600}
/* Prabayar / Pascabayar toggle + one-tap amounts (5 Oct 2026) */
.u-kseg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.u-kseg button{min-height:44px;border:0;border-radius:10px;background:transparent;color:var(--u-dim);font:inherit;font-weight:800;font-size:14px;cursor:pointer}
.u-kseg button[aria-pressed="true"]{background:var(--gold);color:var(--u-ink)}
.u-kamts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.u-kamts button{min-height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:#fff;font:inherit;font-weight:800;font-size:15px;cursor:pointer}
.u-kamts button[aria-pressed="true"]{border-color:var(--gold);background:rgba(243,210,122,.14);color:var(--gold)}
.u-kira .cmp .hl b{overflow-wrap:anywhere}
/* Mini version in the homepage hero: chips + one result line, no slider */
.u-kmini{display:grid;gap:10px;margin-top:18px;padding:14px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);max-width:460px}
.u-kmini[hidden]{display:none}
.home-more .u-kmini{max-width:none;margin-top:0} /* homepage: after the order form, full column width like the form */
.u-kmini-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.u-kmini-q{font-size:14px;font-weight:800;color:#fff}
.u-kmini .u-kseg{flex:1 1 200px;max-width:260px}
.u-kmini-res{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13.5px;color:var(--u-dim)}
.u-kmini-res b{font-size:22px;color:var(--gold);line-height:1.1}
.u-kmini-fine{margin:0;font-size:11.5px;color:var(--u-dim)}

/* eSIM check (standalone panel and inside the order form) */
.u-brands{display:flex;flex-wrap:wrap;gap:8px}
.u-brands button{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);
  color:#E6DAFF;font-weight:700;font-size:14px;line-height:1.2;font-family:inherit;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.u-brands button[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--u-ink)}
.u-esim-res{display:flex;gap:12px;align-items:center;padding:14px;border-radius:16px;font-size:13.5px;line-height:1.45;
  background:rgba(243,210,122,.1);border:1px solid rgba(243,210,122,.45);color:#FFE7A8;transition:background .3s,border-color .3s,color .3s}
.u-esim-res[hidden]{display:none}
.u-esim-res.ok{background:rgba(37,211,102,.12);border-color:rgba(37,211,102,.5);color:#C9F7DA}
.u-esim-res b{display:block;font-size:15px;color:inherit}
.u-esim-res svg{flex:none;width:22px;height:22px}

/* 2-step order form */
.u-order{position:relative;display:flex;flex-direction:column;gap:18px;padding:24px 18px;border-radius:28px;
  background:linear-gradient(180deg,#1F0D40,#150829);border:1px solid rgba(255,255,255,.12);box-shadow:0 50px 120px -40px rgba(124,58,237,.7)}
.u-order .oh{display:flex;justify-content:space-between;align-items:center}
.u-order .oh h2{margin:0;font-size:24px;font-weight:800;color:#fff}
.u-order .oh .price{font-size:30px;font-weight:800;color:var(--gold);background:none;padding:0;box-shadow:none}
.u-prog{display:flex;flex-direction:column;gap:8px}
.u-prog .lbl{display:flex;justify-content:space-between;font-size:12.5px;font-weight:700;color:var(--u-dim)}
.u-prog .lbl b{color:var(--gold)}
.u-prog .u-bar{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.u-prog .u-bar i{display:block;height:100%;width:50%;border-radius:3px;background:linear-gradient(90deg,var(--gold2),var(--gold));transition:width .4s cubic-bezier(.2,.8,.2,1)}
.u-order[data-step="2"] .u-prog .u-bar i{width:100%}
.u-step{display:flex;flex-direction:column;gap:14px}
.u-step[hidden]{display:none}
.u-q{font-size:13px;font-weight:700;color:#E6DAFF}
.u-sim-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0;margin:0;padding:0}
.u-sim-pick legend{padding:0;margin-bottom:8px;font-size:13px;font-weight:700;color:#E6DAFF}
.u-sim-pick label{position:relative}
.u-sim-pick input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.u-sim-pick span{display:flex;flex-direction:column;gap:3px;min-height:64px;justify-content:center;padding:12px 14px;border-radius:16px;
  border:2px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#fff;font-size:12.5px;transition:all .2s}
.u-sim-pick span b{font-size:15.5px}
.u-sim-pick span small{color:var(--u-dim);font-size:12px}
.u-sim-pick input:checked+span{border-color:var(--gold);background:rgba(243,210,122,.12)}
.u-sim-pick input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.u-deliv{display:flex;gap:8px;border:0;margin:0;padding:0}
.u-deliv[hidden]{display:none}
.u-deliv legend{padding:0;margin-bottom:8px;font-size:13px;font-weight:700;color:#E6DAFF}
.u-deliv label{flex:1;position:relative}
.u-deliv input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.u-deliv span{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:14px;border:1px solid rgba(255,255,255,.16);font-size:14px;font-weight:700;color:var(--muted)}
.u-deliv input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--u-ink)}
.u-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;color:#E6DAFF}
.u-field[hidden]{display:none}
.u-field input,.u-field textarea{width:100%;box-sizing:border-box;min-height:52px;padding:0 16px;border-radius:14px;border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.05);color:#fff;font-weight:500;font-size:16px;line-height:1.2;font-family:inherit}
.u-field textarea{padding:12px 16px;min-height:88px;resize:vertical}
.u-field input::placeholder,.u-field textarea::placeholder{color:#8F7BB8}
.u-field input:focus,.u-field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(243,210,122,.2)}
.u-agree{position:relative;display:flex;min-height:44px;cursor:pointer}
.u-agree input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.u-agree span{position:relative;padding-left:34px;font-size:13px;line-height:1.45;color:var(--muted)}
.u-agree span a{color:var(--gold);text-decoration:underline}
.u-agree span::before{content:"";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line2);box-sizing:border-box}
.u-agree input:checked+span::before{background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%231A0B33' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;border-color:var(--gold)}
.u-agree input:focus-visible+span::before{outline:2px solid var(--gold);outline-offset:2px}
.u-summary{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);font-size:14px}
.u-summary b{font-size:20px;color:var(--gold)}
.u-order .u-cta{width:100%}
.u-back{min-height:44px;background:none;border:0;color:var(--muted);font-weight:700;font-size:14px;line-height:1.2;font-family:inherit;cursor:pointer}
.u-err{margin:0;font-size:13px;font-weight:600;color:#FF8A3D}
.u-err:empty{display:none}
.u-hint{margin:0;font-size:12px;line-height:1.45;color:var(--u-dim);text-align:center}
/* WhatsApp order form (lib/order_form.js waOrderFormHtml, /d/<slug>/ + homepage): one row per SIM choice (price on the right), the number as two chips */
.u-pick{display:grid;gap:10px;border:0;margin:0;padding:0}
.u-pick legend{padding:0;margin-bottom:8px;font-size:13px;font-weight:700;color:#E6DAFF}
.u-pick label{position:relative;display:block}
.u-pick input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.u-pick label>span{display:flex;flex-direction:column;gap:3px;justify-content:center;min-height:60px;padding:12px 74px 12px 16px;border-radius:16px;
  border:2px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#fff;transition:border-color .2s,background .2s}
.u-pick b{font-size:15.5px}
.u-pick small{color:var(--u-dim);font-size:12.5px;line-height:1.4}
.u-pick em{position:absolute;top:50%;right:16px;transform:translateY(-50%);font-style:normal;font-size:20px;font-weight:800;color:var(--gold);pointer-events:none}
.u-pick input:checked+span{border-color:var(--gold);background:rgba(243,210,122,.12)}
.u-pick input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.u-pick2{grid-template-columns:repeat(2,minmax(0,1fr))}
.u-pick[hidden],.u-pick label[hidden]{display:none} /* passport mode (ui.js) hides options; display beats [hidden] otherwise */
.u-pick2 label>span{min-height:52px;padding:10px 12px;text-align:center;align-items:center}
.u-pick2 b{font-size:14px;line-height:1.25}
.u-waorder .u-cta svg{width:20px;height:20px}
.u-waorder .u-hint a{color:var(--gold)}
.u-hint:empty,.u-hint[hidden]{display:none}
.u-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* dealer WhatsApp bubble (floating, bottom-right) */
.u-bubble{position:fixed;right:16px;bottom:calc(92px + env(safe-area-inset-bottom));z-index:31;display:flex;align-items:center;gap:10px;min-height:56px;
  padding:6px;border-radius:999px;background:#fff;color:var(--u-ink);text-decoration:none;box-shadow:0 16px 40px -10px rgba(0,0,0,.75)}
.u-bubble[hidden]{display:none}
.u-bubble .u-av{width:44px;height:44px;font-size:14px;overflow:visible}
.u-bubble .u-av img{border-radius:50%}
.u-bubble .u-av::after{content:"";position:absolute;right:-2px;bottom:-2px;width:16px;height:16px;border-radius:50%;background:var(--u-ok);border:3px solid #fff}
.u-bubble .t{display:none;flex-direction:column;padding-right:14px;font-size:12px;color:#5B4880}
.u-bubble .t b{font-size:14px;color:var(--u-ink)}

/* language switch */
.u-lang{display:inline-flex;padding:0;border-radius:999px;border:1px solid rgba(255,255,255,.16)}
.u-lang a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 10px;border-radius:999px;
  font-size:13px;font-weight:700;color:var(--muted);text-decoration:none}
.u-lang a[aria-current=true]{background:#fff;color:var(--u-ink)}

/* desktop */
@media(min-width:900px){
  .u-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:40px;padding:64px 40px 20px}
  .u-hero h1{font-size:clamp(56px,6vw,84px);line-height:.98}
  .u-lede{font-size:19px}
  .u-stage{height:520px}
  .u-orb{width:360px;height:360px;margin:-180px 0 0 -180px}
  .u-orb::after{inset:90px}
  .u-sim{width:300px;height:190px;margin:-95px 0 0 -150px;padding:24px}
  .u-sim .brand{font-size:24px}
  .u-float.f1{left:4%;bottom:12%}
  .u-float.f2{right:2%;top:10%}
  .u-float .big{font-size:34px}
  .u-sec{padding:100px 40px 0}
  .u-h2{font-size:52px}
  .u-panel{padding:40px}
  .u-order{padding:36px}
  .u-kira .now output{font-size:72px}
  .u-kira .cmp b{font-size:32px}
  .u-bubble{right:28px}
  .u-bubble .t{display:flex}
}

/* motion (only when the visitor hasn't asked for less) */
@media(prefers-reduced-motion:no-preference){
  .u-cta{animation:u-sheen 3.5s linear infinite}
  .u-live{animation:u-blink 1.6s ease-in-out infinite}
  .u-orb i{animation:u-ring 2.8s ease-out infinite}
  .u-orb i:nth-child(2){animation-delay:.93s}
  .u-orb i:nth-child(3){animation-delay:1.86s}
  .u-sim{animation:u-float 6s ease-in-out infinite}
  .u-float{animation:u-bob 5s ease-in-out infinite}
  .u-float.f2{animation-delay:1.2s}
  .u-marq>div{animation:u-marq 28s linear infinite}
  .u-bubble{animation:u-bob 3s ease-in-out infinite}
  .u-hero-copy>*{animation:u-rise .8s cubic-bezier(.2,.8,.2,1) both}
  .u-hero-copy>:nth-child(2){animation-delay:.1s}.u-hero-copy>:nth-child(3){animation-delay:.2s}
  .u-hero-copy>:nth-child(4){animation-delay:.3s}.u-hero-copy>:nth-child(5){animation-delay:.4s}
  /* reveal on scroll: ui.js adds .in; html.reveal-all (a 3.5s timer in <head>) guarantees nothing stays hidden */
  html.js .u-rv{opacity:0;transform:translateY(32px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
  html.js .u-rv.in,html.reveal-all .u-rv{opacity:1;transform:none}
  .u-step:not([hidden]){animation:u-rise .45s cubic-bezier(.2,.8,.2,1) both}
}
@keyframes u-sheen{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes u-blink{50%{opacity:.25}}
@keyframes u-ring{0%{transform:scale(.6);opacity:.7}100%{transform:scale(1.8);opacity:0}}
@keyframes u-float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-14px) rotate(-2deg)}}
@keyframes u-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes u-marq{to{transform:translateX(-50%)}}
@keyframes u-rise{from{opacity:0;transform:translateY(16px)}}
