:root { --seed:#3B80E1; --primary:#005DB8; --deep:#001B3E; --muted:#4a5872; --soft:#EEF4FF; --line:#dbe3f0; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font-family:'Roboto',system-ui,-apple-system,sans-serif; color:var(--deep); background:#fff;
  -webkit-font-smoothing:antialiased; }
a { color:var(--primary); }
img { max-width:100%; height:auto; }
.fp-wrap { max-width:1080px; margin:0 auto; padding:0 24px; }
.material-symbols-rounded { font-family:'Material Symbols Rounded'; font-weight:normal; font-style:normal;
  line-height:1; letter-spacing:normal; text-transform:none; white-space:nowrap; direction:ltr;
  -webkit-font-feature-settings:'liga'; font-feature-settings:'liga'; display:inline-block; overflow:hidden; }

.fp-hero { background:linear-gradient(120deg,#C9DCFB,#E8F0FF 58%,#F7FAFF); padding:72px 0 80px; overflow:hidden; }
.fp-hero .fp-wrap { display:flex; align-items:center; gap:72px; }
.fp-hero-text { flex:1; min-width:0; }
.fp-brand { display:flex; align-items:center; gap:14px; font-size:24px; font-weight:700; color:var(--deep); text-decoration:none; }
.fp-brand img { width:56px; height:56px; border-radius:14px; box-shadow:0 6px 16px rgba(0,93,184,.25); }
.fp-hero h1 { font-size:58px; line-height:1.04; letter-spacing:-1.5px; margin:28px 0 18px; font-weight:800; }
.fp-eyebrow { display:block; font-size:15px; letter-spacing:1.2px; text-transform:uppercase; font-weight:700;
  color:var(--primary); margin-bottom:14px; line-height:1.4; }
.fp-accent { display:block; color:var(--primary); }
.fp-hero p { font-size:19px; line-height:1.55; color:var(--muted); max-width:480px; margin:0 0 30px; }
.fp-badge { display:inline-block; }
.fp-badge img { display:block; height:80px; width:auto; margin-left:-13px; }
.fp-small { font-size:13px; color:var(--muted); margin-top:6px; }

.fp-mock { position:relative; width:380px; flex:none; padding-bottom:64px; margin-right:24px; }
.fp-stub { background:#fff; border-radius:16px; height:80px; display:flex; align-items:center; justify-content:center;
  font-weight:800; letter-spacing:-.5px; }
.fp-s1 { width:88%; margin-left:8%; opacity:.62; font-size:28px; color:#5578a8; transform:rotate(-5deg);
  box-shadow:0 8px 20px rgba(0,40,100,.10); }
.fp-s2 { width:96%; margin:-8px 0 0 3%; opacity:.85; font-size:30px; color:#26496f; transform:rotate(-2.5deg);
  box-shadow:0 10px 24px rgba(0,40,100,.12); }
.fp-pass { position:relative; margin-top:-6px; background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 22px 46px rgba(0,40,100,.22); }
.fp-route { padding:20px 24px 0; font-size:36px; font-weight:800; letter-spacing:-1px; }
.fp-plane { color:var(--seed); font-size:23px; margin:0 6px; vertical-align:middle; }
.fp-meta { display:flex; gap:44px; padding:14px 24px 20px; }
.fp-k { font-size:11px; font-weight:700; letter-spacing:1px; color:#74777F; }
.fp-v { font-size:19px; font-weight:800; margin-top:2px; }
.fp-tear { height:2px; background:repeating-linear-gradient(90deg,#C4C6D0 0 7px,transparent 7px 14px); }
.fp-barcode { margin:15px 24px 20px; height:40px; background:repeating-linear-gradient(90deg,var(--deep) 0 3px,
  transparent 3px 6px,var(--deep) 6px 8px,transparent 8px 13px); }
.fp-notif { position:absolute; left:-56px; bottom:0; width:290px; background:#fff; border-radius:17px;
  padding:13px 16px; box-shadow:0 14px 34px rgba(0,40,100,.20); text-align:left; }
.fp-notif-hdr { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:700; color:#74777F; letter-spacing:.3px; }
.fp-notif-hdr img { width:20px; height:20px; border-radius:6px; }
.fp-notif-ttl { font-size:17px; font-weight:800; margin-top:7px; }
.fp-notif-bdy { font-size:13px; color:#49566d; margin-top:2px; }

.fp-section { padding:80px 0; }
.fp-section.fp-alt { background:var(--soft); }
.fp-section h2 { font-size:36px; letter-spacing:-.6px; margin:0 0 10px; font-weight:800; line-height:1.15; }
.fp-lead { font-size:18px; color:var(--muted); margin:0 0 40px; max-width:660px; line-height:1.55; }

.fp-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; list-style:none; padding:0; margin:0;
  counter-reset:step; }
.fp-steps li { counter-increment:step; background:#fff; border:1px solid var(--line); border-radius:20px; padding:24px; }
.fp-steps li::before { content:counter(step); display:grid; place-items:center; width:36px; height:36px;
  border-radius:50%; background:var(--primary); color:#fff; font-weight:700; margin-bottom:14px; }
.fp-steps h3 { font-size:18px; margin:0 0 8px; }
.fp-steps p { margin:0; color:var(--muted); line-height:1.55; font-size:15px; }

.fp-cases { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.fp-case { background:#fff; border:1px solid var(--line); border-radius:20px; padding:24px; }
.fp-ic { width:44px; height:44px; border-radius:13px; background:#D6E3FF; color:var(--primary);
  display:grid; place-items:center; margin-bottom:16px; }
.fp-ic .material-symbols-rounded { font-size:24px; width:24px; height:24px; }
.fp-case h3 { font-size:18px; margin:0 0 8px; font-weight:700; }
.fp-case p { margin:0; color:var(--muted); line-height:1.55; font-size:15px; }

.fp-phone { width:250px; flex:none; border-radius:32px; padding:8px; background:#1d2027;
  box-shadow:0 24px 48px rgba(0,27,62,.25); }
.fp-phone img { display:block; width:100%; border-radius:25px; }
.fp-shots { display:flex; gap:28px; justify-content:center; flex-wrap:wrap; }
.fp-shot { text-align:center; margin:0; }
.fp-shot .fp-phone { width:180px; margin:0 auto; }
.fp-shot figcaption { margin-top:16px; font-weight:700; font-size:15px; }
.fp-shot figcaption small { display:block; font-weight:400; color:var(--muted); font-size:13px; margin-top:3px; }

.fp-faq { max-width:760px; }
.fp-faq details { border-bottom:1px solid var(--line); padding:18px 0; }
.fp-faq summary { cursor:pointer; font-size:18px; font-weight:700; list-style:none; display:flex;
  justify-content:space-between; gap:16px; }
.fp-faq summary::-webkit-details-marker { display:none; }
.fp-faq summary::after { content:'+'; color:var(--primary); font-size:24px; line-height:1; }
.fp-faq details[open] summary::after { content:'−'; }
.fp-faq details p { margin:10px 0 0; color:var(--muted); line-height:1.6; }

.fp-private { display:flex; gap:20px; align-items:flex-start; background:#fff; border:1px solid var(--line);
  border-radius:20px; padding:28px; }
.fp-private .material-symbols-rounded { font-size:32px; width:32px; height:32px; color:var(--primary); flex:none; }
.fp-private h2 { font-size:24px; margin:0; }
.fp-private p { margin:6px 0 0; color:var(--muted); line-height:1.6; }

.fp-cta { text-align:center; }
.fp-cta .fp-icon { width:72px; height:72px; border-radius:18px; }
.fp-cta h2 { margin-top:18px; }
.fp-cta .fp-lead { margin:0 auto 24px; }
.fp-cta .fp-badge img { margin:0 auto; }

.fp-top { border-bottom:1px solid var(--line); padding:16px 0; }
.fp-top .fp-brand { font-size:18px; }
.fp-top .fp-brand img { width:36px; height:36px; border-radius:10px; box-shadow:none; }
.fp-doc { max-width:720px; margin:0 auto; padding:48px 24px 72px; line-height:1.65; }
.fp-doc h1 { font-size:36px; letter-spacing:-.5px; margin:0 0 6px; }
.fp-doc h2 { font-size:20px; margin:36px 0 8px; }
.fp-doc .fp-date { color:var(--muted); margin:0 0 28px; }
.fp-doc ul { padding-left:22px; }
.fp-doc li { margin:6px 0; }
.fp-doc code { font-family:ui-monospace,Menlo,monospace; font-size:.9em; background:var(--soft); padding:1px 5px; border-radius:4px; }
.fp-foot { border-top:1px solid var(--line); padding:28px 24px; text-align:center; font-size:14px; color:var(--muted); }
.fp-foot nav a { margin:0 10px; }
.fp-foot p { margin:12px 0 0; font-size:12px; }

@media (max-width:900px) {
  .fp-hero .fp-wrap { flex-direction:column; text-align:center; gap:48px; }
  .fp-hero .fp-brand { justify-content:center; }
  .fp-hero p { margin-left:auto; margin-right:auto; }
  .fp-hero h1 { font-size:42px; }
  .fp-badge img { margin:0 auto; }
  .fp-mock { width:100%; max-width:360px; margin:0 auto; text-align:left; }
  .fp-notif { left:-8px; width:270px; }
  .fp-steps, .fp-cases { grid-template-columns:1fr; }
  .fp-section { padding:56px 0; }
  .fp-section h2 { font-size:30px; }
  .fp-private { flex-direction:column; }
}
@media (max-width:400px) {
  .fp-route { font-size:30px; }
  .fp-meta { gap:28px; }
  .fp-shot .fp-phone { width:150px; }
}
