/* Nodex Travels Online — Lavender Aurora design system */
:root{
  --bg:#fbfaff;--mist:#f4f0ff;--lilac:#ede7ff;--lav:#c4b5fd;--lav-2:#a78bfa;--violet:#7c3aed;--violet-2:#8b5cf6;--plum:#2a1b4d;--ink:#1d1433;--muted:#6b6185;--line:#e6defc;
  --peach:#ffb59a;--gold:#fcd34d;--mint:#99f6e4;--white:#fff;
  --grad:linear-gradient(120deg,#8b5cf6 0%,#a78bfa 45%,#f0abfc 100%);
  --grad-soft:linear-gradient(160deg,#f6f2ff 0%,#efe8ff 50%,#fdf2ff 100%);
  --grad-text:linear-gradient(100deg,#6d28d9,#a855f7 45%,#ec4899 90%);
  --shadow:0 30px 60px -30px rgba(76,29,149,.35);--shadow-s:0 12px 30px -16px rgba(76,29,149,.3);
  --r:28px;--display:'Bricolage Grotesque',system-ui,sans-serif;--serif:'Instrument Serif',Georgia,serif;--body:'Figtree',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--bg);line-height:1.65;font-size:17px;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.container{width:min(1220px,92%);margin:0 auto}
.center{text-align:center}
h1,h2,h3,h4{font-family:var(--display);line-height:1.05;letter-spacing:-.025em;color:var(--plum)}
h1{font-size:clamp(2.6rem,6vw,5.4rem);font-weight:800}
h2{font-size:clamp(2.1rem,4.2vw,3.6rem);font-weight:800;margin:.6rem 0 1rem}
h3{font-size:1.3rem;font-weight:700;letter-spacing:-.01em}
h2 em,h1 em,.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.grad-text{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;font-family:var(--serif);font-style:italic;font-weight:400;padding-right:.08em}
.lead{color:var(--muted);font-size:1.12rem;max-width:640px}
.center .lead{margin:0 auto}
.note{color:var(--muted);font-size:.85rem;margin-top:1.2rem}
.section{padding:120px 0;position:relative}
.bg-mist{background:var(--grad-soft)}
.bg-mist::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(124,58,237,.09) 1px,transparent 1px);background-size:26px 26px;mask:linear-gradient(transparent,#000 20%,#000 80%,transparent);pointer-events:none}
.bg-mist>*{position:relative}

/* pills & buttons */
.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.42rem 1rem .42rem .5rem;border-radius:99px;background:#fff;border:1px solid var(--line);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--violet);box-shadow:var(--shadow-s)}
.pill::before{content:"";width:20px;height:20px;border-radius:50%;background:var(--grad);box-shadow:inset 0 -3px 6px rgba(0,0,0,.15),0 0 0 4px #f1ebff;animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:inset 0 -3px 6px rgba(0,0,0,.15),0 0 0 8px rgba(167,139,250,.15)}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 1.6rem;border-radius:99px;font-weight:700;font-size:.98rem;border:0;transition:transform .35s cubic-bezier(.2,.9,.3,1.4),box-shadow .35s;position:relative;overflow:hidden;white-space:nowrap}
.btn-primary{background:linear-gradient(120deg,#7c3aed,#a855f7);color:#fff;box-shadow:0 14px 30px -10px rgba(124,58,237,.65),inset 0 1px 0 rgba(255,255,255,.35)}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s}
.btn-primary:hover::after{transform:translateX(120%)}
.btn:hover{transform:translateY(-3px) scale(1.02)}
.btn-ghost{background:#fff;color:var(--plum);border:1.5px solid var(--line);box-shadow:var(--shadow-s)}
.btn-ghost:hover{border-color:var(--lav)}
.btn-glass{background:rgba(255,255,255,.7);backdrop-filter:blur(10px);color:var(--violet);border:1px solid #fff;box-shadow:var(--shadow-s)}
.ring{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.25);animation:ring 1.8s infinite;font-size:.9rem}
@keyframes ring{0%,60%,100%{transform:rotate(0)}10%,30%{transform:rotate(-14deg)}20%,40%{transform:rotate(14deg)}}
.actions,.actions-row{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.center .actions,.center .actions-row,.center>.actions-row{justify-content:center}

/* header */
.topline{background:var(--plum);color:#e9e2ff;font-size:.82rem}
.topline .container{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0}
.topline a{color:var(--gold);font-weight:700}
.header{position:sticky;top:0;z-index:50;padding:14px 0;transition:.4s}
.header .bar{width:min(1260px,94%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:10px 12px 10px 18px;border-radius:99px;background:rgba(255,255,255,.72);backdrop-filter:blur(18px) saturate(1.6);border:1px solid rgba(255,255,255,.9);box-shadow:0 10px 40px -20px rgba(76,29,149,.35)}
.header.scrolled{padding:8px 0}
.logo,.flogo{display:flex;align-items:center;gap:.7rem}
.logo img,.flogo img{width:44px;height:44px;filter:drop-shadow(0 8px 12px rgba(124,58,237,.35));transition:transform .6s}
.logo:hover img{transform:rotate(-10deg) scale(1.08)}
.wordmark{font-family:var(--display);font-weight:800;font-size:1.25rem;color:var(--plum);line-height:1;letter-spacing:-.02em}
.wordmark i{font-family:var(--serif);font-weight:400;color:var(--violet);font-size:1.35rem}
.wordmark small{display:block;font-family:var(--body);font-size:.58rem;letter-spacing:.2em;color:var(--muted);font-weight:700;margin-top:4px}
.nav{display:flex;align-items:center;gap:.2rem}
.nav a:not(.btn){padding:.55rem .85rem;border-radius:99px;font-weight:600;font-size:.92rem;color:var(--muted);transition:.25s}
.nav a:not(.btn):hover{color:var(--plum);background:var(--mist)}
.nav a.active{color:var(--violet);background:var(--lilac)}
.nav .btn{padding:.75rem 1.2rem;margin-left:.4rem}
.burger{display:none;width:46px;height:46px;border-radius:50%;border:0;background:var(--lilac);color:var(--violet);font-size:1.2rem}

/* scroll progress + cursor glow */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad);z-index:100}
.glow{position:fixed;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(167,139,250,.18),transparent 65%);pointer-events:none;z-index:0;transform:translate(-50%,-50%);transition:opacity .3s}

/* HERO */
.hero{position:relative;padding:60px 0 40px;overflow:hidden}
.aurora{position:absolute;inset:-20% -10% auto;height:120%;pointer-events:none;z-index:0}
.aurora span{position:absolute;border-radius:50%;filter:blur(70px);opacity:.65;animation:drift 18s ease-in-out infinite alternate}
.aurora span:nth-child(1){width:520px;height:520px;background:#ddd6fe;left:-5%;top:5%}
.aurora span:nth-child(2){width:460px;height:460px;background:#fbcfe8;right:0;top:0;animation-delay:-6s}
.aurora span:nth-child(3){width:380px;height:380px;background:#c7d2fe;left:40%;top:35%;animation-delay:-12s}
@keyframes drift{to{transform:translate(60px,40px) scale(1.15)}}
.hero>.container{position:relative;z-index:2}
.hero-top{text-align:center;max-width:980px;margin:0 auto}
.hero h1{margin:1.3rem 0 1rem;font-size:clamp(2.8rem,7.4vw,6.4rem)}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .ch{display:inline-block;transform:translateY(110%) rotate(8deg);opacity:0;animation:chUp .9s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes chUp{to{transform:none;opacity:1}}
.rotator{display:inline-grid;vertical-align:bottom;height:1.08em;overflow:hidden}
.rotator b{grid-area:1/1;font-family:var(--serif);font-style:italic;font-weight:400;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;transform:translateY(100%);opacity:0;transition:transform .7s cubic-bezier(.7,0,.2,1),opacity .5s;padding-right:.1em}
.rotator b.on{transform:none;opacity:1}
.rotator b.out{transform:translateY(-100%);opacity:0}
.hero .lead{margin:0 auto;font-size:1.2rem}
.hero .actions{justify-content:center}
.trip-bar{margin:2.4rem auto 0;max-width:860px;display:grid;grid-template-columns:repeat(3,1fr) auto;gap:6px;padding:8px;border-radius:26px;background:rgba(255,255,255,.8);backdrop-filter:blur(12px);border:1px solid #fff;box-shadow:var(--shadow)}
.trip-bar div{padding:.7rem 1.1rem;text-align:left;border-radius:20px;transition:.3s}
.trip-bar div:hover{background:var(--mist)}
.trip-bar small{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.trip-bar b{font-family:var(--display);color:var(--plum);font-size:1.05rem}
.trip-bar .btn{border-radius:20px}
.stage{position:relative;margin:70px auto 0;max-width:1100px;height:520px}
.window{position:absolute;left:50%;top:0;transform:translateX(-50%);width:min(560px,80%);height:100%;border-radius:280px 280px 40px 40px;overflow:hidden;box-shadow:0 50px 90px -40px rgba(76,29,149,.55);border:10px solid #fff}
.window img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);animation:slowpan 20s ease-in-out infinite alternate}
@keyframes slowpan{to{transform:scale(1.05) translateX(-3%)}}
.window::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(42,27,77,.45))}
.window .cap{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:#fff;z-index:2;font-family:var(--serif);font-style:italic;font-size:1.6rem}
.orbit{position:absolute;inset:0;pointer-events:none}
.float{position:absolute;width:120px;filter:drop-shadow(0 25px 25px rgba(76,29,149,.3));animation:bob 6s ease-in-out infinite}
.float:nth-child(2){animation-delay:-1.5s}.float:nth-child(3){animation-delay:-3s}.float:nth-child(4){animation-delay:-4.5s}
@keyframes bob{50%{transform:translateY(-22px) rotate(-6deg)}}
.f1{left:4%;top:8%}.f2{right:5%;top:2%;width:140px}.f3{left:12%;bottom:6%;width:110px}.f4{right:12%;bottom:12%;width:100px}
.chipcard{position:absolute;z-index:3;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border:1px solid #fff;border-radius:22px;padding:14px 18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:12px;font-size:.88rem;animation:bob 7s ease-in-out infinite}
.chipcard b{display:block;font-family:var(--display);color:var(--plum);font-size:1.05rem}
.chipcard small{color:var(--muted)}
.chipcard img{width:44px}
.c1{left:0;top:42%}.c2{right:0;top:38%;animation-delay:-3s}
.av-stack{display:flex}.av-stack span{width:34px;height:34px;border-radius:50%;border:3px solid #fff;margin-left:-10px;display:grid;place-items:center;font-weight:800;font-size:.8rem;color:#fff;background:var(--grad)}
.av-stack span:first-child{margin-left:0}.av-stack span:nth-child(2){background:linear-gradient(120deg,#f472b6,#fb923c)}.av-stack span:nth-child(3){background:linear-gradient(120deg,#60a5fa,#a78bfa)}
.flight-path{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.flight-path path{fill:none;stroke:#a78bfa;stroke-width:2;stroke-dasharray:6 10;animation:dash 30s linear infinite}
@keyframes dash{to{stroke-dashoffset:-600}}
.flyer{position:absolute;width:150px;z-index:4;offset-path:path("M -60 380 C 200 120, 500 520, 760 200 S 1100 60, 1200 140");animation:fly 14s linear infinite;offset-rotate:auto 0deg}
@keyframes fly{from{offset-distance:0%}to{offset-distance:100%}}
.brand-heading,.hero-promise,.hero-caption,.hero-grid,.trust{}
.trust{display:flex;justify-content:center;flex-wrap:wrap;gap:1.4rem;margin-top:1.6rem;color:var(--muted);font-size:.9rem;font-weight:600}
.trust span::before{content:"✦ ";color:var(--violet-2)}

/* marquee */
.marquee{padding:34px 0;overflow:hidden;border-block:1px solid var(--line);background:#fff;position:relative}
.marquee-track{display:flex;gap:3rem;width:max-content;animation:scroll 40s linear infinite}
.marquee-track span{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4vw,3.4rem);color:transparent;-webkit-text-stroke:1.5px var(--lav);display:flex;align-items:center;gap:3rem;white-space:nowrap;transition:.3s}
.marquee-track span:hover{color:var(--violet);-webkit-text-stroke-color:var(--violet)}
.marquee-track span::after{content:"✈";-webkit-text-stroke:0;color:var(--violet-2);font-size:.6em}
@keyframes scroll{to{transform:translateX(-50%)}}

/* stats: ring infographics */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:60px auto 0;position:relative;z-index:2}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-s);transition:.4s}
.stat:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.stat img{width:68px;flex:none;transition:transform .5s}
.stat:hover img{transform:rotate(-10deg) scale(1.1)}
.stat b{display:block;font-family:var(--display);font-size:2.2rem;font-weight:800;line-height:1;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{color:var(--muted);font-size:.9rem;font-weight:600}
.rings{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:56px}
.ringcard{background:#fff;border-radius:var(--r);padding:30px 20px;border:1px solid var(--line);text-align:center;box-shadow:var(--shadow-s);position:relative;overflow:hidden}
.ringcard svg{width:150px;height:150px;transform:rotate(-90deg);margin:0 auto}
.ringcard circle{fill:none;stroke-width:12;stroke-linecap:round}
.ringcard .trk{stroke:var(--lilac)}
.ringcard .val{stroke:url(#rg);stroke-dasharray:377;stroke-dashoffset:377;transition:stroke-dashoffset 2s cubic-bezier(.2,.8,.2,1)}
.ringcard.in .val{stroke-dashoffset:var(--off)}
.ringcard .mid{position:absolute;left:0;right:0;top:30px;height:150px;display:grid;place-items:center}
.ringcard .mid img{width:64px}
.ringcard b{display:block;font-family:var(--display);font-size:2.3rem;font-weight:800;color:var(--plum);margin-top:12px}
.ringcard span{color:var(--muted);font-weight:600;font-size:.92rem}

/* bento */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(230px,auto);gap:20px;margin-top:56px;text-align:left}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px;position:relative;overflow:hidden;transition:transform .5s,box-shadow .5s;transform-style:preserve-3d;display:flex;flex-direction:column;justify-content:space-between;gap:1rem}
.tile::before{content:"";position:absolute;inset:auto -30% -60% auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,#ede9fe,transparent 70%);transition:.6s}
.tile:hover::before{transform:scale(1.6)}
.tile:hover{box-shadow:var(--shadow)}
.tile>*{position:relative}
.tile .ic{width:96px;margin-bottom:.6rem;filter:drop-shadow(0 16px 18px rgba(124,58,237,.3));transition:transform .6s cubic-bezier(.2,.9,.3,1.4)}
.tile:hover .ic{transform:translateY(-8px) rotate(-8deg) scale(1.08)}
.tile p{color:var(--muted);font-size:.96rem;margin-top:.4rem}
.tile:nth-child(1){grid-column:span 2;grid-row:span 2;background:linear-gradient(160deg,#7c3aed,#a855f7 60%,#f0abfc);color:#fff;border:0}
.tile:nth-child(1) h3{color:#fff;font-size:2.2rem}
.tile:nth-child(1) p{color:#f3e8ff;font-size:1.1rem;max-width:420px}
.tile:nth-child(1) .ic{width:200px}
.tile:nth-child(1)::before{background:radial-gradient(circle,rgba(255,255,255,.25),transparent 70%)}
.tile:nth-child(6){grid-column:1/-1;background:var(--grad-soft);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px}
.tile:nth-child(6) .ic{margin:0;width:110px}
.tile .btn{align-self:flex-start}
@media (max-width:700px){.tile:nth-child(6){grid-template-columns:1fr}}

/* timeline / steps */
.steps-sec{background:#fff}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:64px;position:relative}
.timeline.four{grid-template-columns:repeat(4,1fr)}
.timeline .prog{position:absolute;top:70px;left:12%;right:12%;height:3px;background:repeating-linear-gradient(90deg,var(--lav) 0 10px,transparent 10px 20px);animation:dashx 1.5s linear infinite}
@keyframes dashx{to{background-position:20px 0}}
.tstep{position:relative;background:#fff;border-radius:var(--r);padding:0 24px 30px;text-align:center}
.tstep .ico{width:140px;height:140px;margin:0 auto 22px;border-radius:50%;background:var(--grad-soft);display:grid;place-items:center;position:relative;border:6px solid #fff;box-shadow:var(--shadow)}
.tstep .ico img{width:90px;animation:bob 5s ease-in-out infinite}
.tstep .num{position:absolute;top:-4px;right:-4px;width:44px;height:44px;border-radius:50%;background:var(--plum);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:.9rem;border:4px solid #fff}
.tstep p{color:var(--muted);margin-top:.5rem}

/* boarding pass journey */
.passes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px;text-align:left}
.pass{display:grid;grid-template-columns:1fr 90px;background:#fff;border-radius:24px;box-shadow:var(--shadow);overflow:hidden;position:relative;transition:transform .5s}
.pass:hover{transform:translateY(-10px) rotate(-1deg)}
.pass .main{padding:26px}
.pass .stub{background:var(--grad);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;border-left:2px dashed rgba(255,255,255,.7);font-family:var(--display);font-weight:800}
.pass .stub b{font-size:2.2rem;line-height:1}
.pass .stub small{font-size:.65rem;letter-spacing:.2em}
.pass::before,.pass::after{content:"";position:absolute;right:79px;width:22px;height:22px;border-radius:50%;background:var(--mist)}
.pass::before{top:-11px}.pass::after{bottom:-11px}
.pass .route{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;color:var(--plum);font-size:1.5rem;margin-bottom:.8rem}
.pass .route i{flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--lav) 0 6px,transparent 6px 12px);position:relative}
.pass .route i::after{content:"✈";position:absolute;top:-13px;left:0;color:var(--violet);font-style:normal;font-size:1rem;animation:planeX 3s ease-in-out infinite}
@keyframes planeX{to{left:calc(100% - 16px)}}
.pass img{width:70px;float:right;margin:-8px -6px 0 8px}
.pass p{color:var(--muted);font-size:.95rem}

/* destinations */
.dest-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:44px}
.slider-nav{display:flex;gap:.6rem;align-items:center}
.slider-nav button{width:54px;height:54px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-size:1.2rem;color:var(--violet);transition:.3s}
.slider-nav button:hover{background:var(--violet);color:#fff;transform:scale(1.08)}
.slider{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(260px,24vw,320px);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 4px 30px;scrollbar-width:none}
.slider::-webkit-scrollbar{display:none}
.dest{position:relative;height:440px;border-radius:200px 200px 28px 28px;overflow:hidden;scroll-snap-align:start;box-shadow:var(--shadow-s);transition:transform .6s,border-radius .6s,box-shadow .6s;isolation:isolate}
.dest:nth-child(even){border-radius:28px 28px 200px 200px}
.dest img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.dest::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(42,27,77,.85));z-index:1}
.dest:hover{transform:translateY(-10px);border-radius:28px;box-shadow:var(--shadow)}
.dest:hover img{transform:scale(1.12)}
.dest .tag{position:absolute;top:24px;left:50%;transform:translateX(-50%);z-index:2;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);padding:.35rem .9rem;border-radius:99px;font-size:.75rem;font-weight:700;color:var(--violet);white-space:nowrap}
.dest:nth-child(even) .tag{top:auto;bottom:130px}
.dest .info{position:absolute;bottom:0;left:0;right:0;padding:26px;z-index:2;color:#fff}
.dest .info small{opacity:.85}
.dest .info h3{color:#fff;font-size:1.9rem;margin:.2rem 0}
.dest .go{font-size:.85rem;font-weight:700;color:var(--gold);opacity:0;transform:translateY(10px);display:inline-block;transition:.4s}
.dest:hover .go{opacity:1;transform:none}

/* about */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.about-grid p{color:var(--muted);margin-bottom:1rem}
.about-grid strong{color:var(--plum)}
.collage{position:relative;height:560px}
.collage .p1{position:absolute;left:0;top:0;width:75%;height:80%;object-fit:cover;border-radius:200px 200px 30px 30px;box-shadow:var(--shadow)}
.collage .p2{position:absolute;right:0;bottom:0;width:48%;height:52%;object-fit:cover;border-radius:30px;border:8px solid #fff;box-shadow:var(--shadow);animation:bob 8s ease-in-out infinite}
.collage .badge{position:absolute;left:6%;bottom:6%;background:var(--plum);color:#e9e2ff;border-radius:24px;padding:18px 22px;max-width:220px;font-size:.85rem;box-shadow:var(--shadow);z-index:2}
.collage .badge b{display:block;font-family:var(--display);font-size:2.4rem;color:#fff;line-height:1}
.collage::before{content:"";position:absolute;right:8%;top:6%;width:120px;height:120px;background:url(../img/i-globe.png) center/contain no-repeat;z-index:2;animation:bob 6s ease-in-out infinite;filter:drop-shadow(0 20px 20px rgba(76,29,149,.3))}
.mini-feats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:1.6rem 0}
.mini-feats div{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px 14px;font-weight:700;font-size:.92rem;color:var(--plum);transition:.3s}
.mini-feats div:hover{border-color:var(--lav);transform:translateX(4px)}
.mini-feats img{width:40px}

/* compare / infographic */
.info-wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:70px;align-items:center}
.checks{list-style:none;margin:1.8rem 0 2rem;display:grid;gap:14px}
.checks li{display:flex;gap:16px;background:#fff;border-radius:22px;padding:18px 20px;border:1px solid var(--line);transition:.35s}
.checks li:hover{transform:translateX(8px);box-shadow:var(--shadow-s)}
.checks .n{flex:none;width:42px;height:42px;border-radius:14px;background:var(--grad);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800}
.checks b{display:block;color:var(--plum);font-family:var(--display);font-size:1.08rem}
.checks span{color:var(--muted);font-size:.95rem}
.compare{background:#fff;border-radius:32px;padding:36px;box-shadow:var(--shadow);border:1px solid var(--line);position:relative}
.compare h4{font-size:1.35rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.6rem}
.compare h4 img{width:70px;animation:bob 5s infinite}
.bar-row{margin-bottom:1.3rem}
.bar-row .lbl{font-weight:700;color:var(--plum);font-size:.95rem;margin-bottom:.4rem}
.compare .bar{height:14px;border-radius:99px;background:var(--mist);overflow:hidden;margin-top:6px}
.compare .bar i{display:block;height:100%;width:0;border-radius:99px;background:var(--grad);transition:width 1.8s cubic-bezier(.2,.8,.2,1);position:relative}
.compare .bar i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shine 2.2s infinite}
@keyframes shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.compare .bar.muted i{background:#d6d0e6}.compare .bar.muted i::after{display:none}
.legend{display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.85rem;color:var(--muted);font-weight:600;margin-top:1rem}
.legend span::before{content:"";display:inline-block;width:12px;height:12px;border-radius:4px;background:var(--grad);margin-right:6px;vertical-align:-1px}
.legend .m::before{background:#d6d0e6}

/* testimonials */
.testi-wrap{overflow:hidden;margin-top:50px;mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.testi-track{display:flex;gap:24px;width:max-content;animation:scroll 50s linear infinite;padding:20px 0}
.testi-wrap:hover .testi-track{animation-play-state:paused}
.testi{width:380px;background:#fff;border-radius:var(--r);padding:30px;border:1px solid var(--line);box-shadow:var(--shadow-s);position:relative;transition:.4s}
.testi:nth-child(odd){transform:rotate(-1.2deg)}.testi:nth-child(even){transform:rotate(1.2deg) translateY(14px)}
.testi:hover{transform:none scale(1.03);box-shadow:var(--shadow)}
.testi::before{content:"“";position:absolute;right:22px;top:-6px;font-family:var(--serif);font-size:7rem;line-height:1;color:var(--lilac)}
.stars{color:#f59e0b;letter-spacing:3px}
.testi p{margin:.8rem 0 1.4rem;color:var(--ink);font-size:1.02rem;position:relative}
.who{display:flex;align-items:center;gap:12px}
.av{width:46px;height:46px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800}
.who b{display:block;color:var(--plum)}.who small{color:var(--muted)}

/* faq */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:start}
.faq-side{position:sticky;top:120px;background:linear-gradient(160deg,#2a1b4d,#4c1d95);color:#e9e2ff;border-radius:32px;padding:40px;overflow:hidden}
.faq-side .pill{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.2);box-shadow:none}
.faq-side h3{color:#fff;font-size:2.2rem;margin:1rem 0 .6rem}
.faq-side img{width:160px;margin:1.4rem 0;animation:bob 6s infinite;filter:drop-shadow(0 20px 30px rgba(0,0,0,.35))}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:22px;margin-bottom:12px;transition:.3s;overflow:hidden}
.faq-item.open{border-color:var(--lav);box-shadow:var(--shadow-s)}
.faq-q{width:100%;text-align:left;background:none;border:0;padding:22px 64px 22px 24px;font-family:var(--display);font-weight:700;font-size:1.08rem;color:var(--plum);position:relative}
.faq-q::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:var(--lilac);color:var(--violet);display:grid;place-items:center;font-size:1.3rem;transition:.4s}
.faq-item.open .faq-q::after{transform:translateY(-50%) rotate(135deg);background:var(--violet);color:#fff}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s ease}
.faq-a p{padding:0 24px 22px;color:var(--muted)}

/* CTA */
.cta{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;padding:60px;border-radius:40px;background:linear-gradient(120deg,#f5f0ff,#fce7f3 60%,#ede9fe);position:relative;overflow:hidden;border:1px solid #fff;box-shadow:var(--shadow)}
.cta::before{content:"";position:absolute;width:300px;height:220px;right:30%;top:-40px;background:url(../img/plane3d.png) center/contain no-repeat;opacity:.9;animation:bob 7s infinite;pointer-events:none}
.cta>*{position:relative}
.cta h2{font-size:clamp(2.2rem,4vw,3.4rem)}
.cta p{color:var(--muted);font-size:1.1rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:1.4rem}
.chips span{padding:.45rem 1rem;border-radius:99px;background:#fff;font-weight:700;font-size:.85rem;color:var(--violet);border:1px solid var(--line)}
.cta-card{background:#fff;border-radius:30px;padding:28px;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:.8rem}
.cta-card .agent{width:110px;height:110px;border-radius:50%;object-fit:cover;border:5px solid var(--lilac)}
.live{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;font-weight:700;color:#059669;background:#ecfdf5;padding:.3rem .8rem;border-radius:99px}
.live-dot{width:9px;height:9px;border-radius:50%;background:#10b981;box-shadow:0 0 0 0 rgba(16,185,129,.6);animation:live 1.6s infinite}
@keyframes live{to{box-shadow:0 0 0 12px rgba(16,185,129,0)}}
.cta-card .phone{font-family:var(--display);font-weight:800;font-size:1.8rem;color:var(--plum)}
.cta-card small{color:var(--muted)}

/* page hero (inner) */
.page-hero{position:relative;padding:110px 0 120px;text-align:center;overflow:hidden;background:var(--grad-soft)}
.page-hero .bgimg{position:absolute;left:50%;bottom:-60%;width:min(900px,90%);aspect-ratio:1;transform:translateX(-50%);border-radius:50%;background-size:cover;background-position:center;opacity:.22;filter:saturate(.7) hue-rotate(20deg)}
.page-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(221,214,254,.8),transparent 40%),radial-gradient(circle at 85% 30%,rgba(251,207,232,.7),transparent 40%);pointer-events:none}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{margin:1.2rem auto .8rem;max-width:900px;font-size:clamp(2.5rem,6vw,5rem)}
.page-hero p{color:var(--muted);max-width:640px;margin:0 auto;font-size:1.15rem}
.crumbs{display:inline-flex;gap:.6rem;margin-top:1.8rem;padding:.5rem 1.1rem;border-radius:99px;background:#fff;font-size:.88rem;font-weight:600;color:var(--muted);box-shadow:var(--shadow-s)}
.crumbs a{color:var(--violet)}.crumbs b{color:var(--lav)}
.ph-float{position:absolute;z-index:1;width:110px;filter:drop-shadow(0 20px 20px rgba(76,29,149,.25));animation:bob 6s ease-in-out infinite;pointer-events:none}
.ph-float.a{left:7%;top:28%}.ph-float.b{right:7%;top:20%;width:130px;animation-delay:-2s}.ph-float.c{left:16%;bottom:10%;width:80px;animation-delay:-4s}.ph-float.d{right:15%;bottom:12%;width:90px;animation-delay:-3s}

/* cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;text-align:left}
.vcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px;transition:.45s;position:relative;overflow:hidden}
.vcard::after{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:var(--grad);transition:width .6s}
.vcard:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.vcard:hover::after{width:100%}
.vcard img{width:90px;margin-bottom:1rem;filter:drop-shadow(0 14px 16px rgba(124,58,237,.3));transition:.5s}
.vcard:hover img{transform:rotate(-8deg) scale(1.08)}
.vcard p,.vcard li{color:var(--muted)}
.vcard h3{margin-bottom:.5rem}
.vcard ul{padding-left:1.1rem;margin-top:.6rem}
.go-link{display:inline-block;margin-top:1rem;font-weight:700;color:var(--violet)}
.info-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;text-align:left}
.info-list>div{background:#fff;border-radius:24px;padding:28px;border:1px solid var(--line)}
.info-list p{color:var(--muted)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;text-align:left}
.svc-card{background:#fff;border:1px solid var(--line);border-radius:32px;padding:34px;display:flex;flex-direction:column;gap:.6rem;transition:.5s;position:relative;overflow:hidden}
.svc-card::before{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:var(--grad-soft);transition:.6s}
.svc-card:hover::before{transform:scale(2.5)}
.svc-card:hover{transform:translateY(-10px);box-shadow:var(--shadow)}
.svc-card>*{position:relative}
.svc-card .ic{width:100px;filter:drop-shadow(0 16px 18px rgba(124,58,237,.3));transition:.5s}
.svc-card:hover .ic{transform:rotate(-10deg) scale(1.1)}
.svc-card p{color:var(--muted)}
.svc-list{list-style:none;margin:.4rem 0 1rem;display:grid;gap:6px;flex:1}
.svc-list li{font-size:.94rem;color:var(--ink);padding-left:28px;position:relative}
.svc-list li::before{content:"✓";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;background:var(--lilac);color:var(--violet);font-size:.7rem;display:grid;place-items:center;font-weight:800}
.svc-card .btn{align-self:flex-start}

/* guide (destinations) */
.guide{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:56px;text-align:left}
.guide-item{display:grid;grid-template-columns:200px 1fr;gap:22px;background:#fff;border-radius:30px;padding:16px;border:1px solid var(--line);transition:.45s}
.guide-item:hover{box-shadow:var(--shadow);transform:translateY(-6px)}
.guide-item .ph{border-radius:22px;overflow:hidden;min-height:200px;background-size:cover;background-position:center}
.guide-item .ph img{width:100%;height:100%;object-fit:cover;transition:1s}
.guide-item:hover .ph img{transform:scale(1.1)}
.guide-item>div:last-child{padding:10px 10px 10px 0;display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}
.guide-item p{color:var(--muted);font-size:.95rem}
.meta{display:flex;flex-wrap:wrap;gap:6px}
.meta span{font-size:.75rem;font-weight:700;padding:.25rem .7rem;border-radius:99px;background:var(--lilac);color:var(--violet)}
.guide-item .btn{padding:.7rem 1.2rem;font-size:.88rem}
.guide-intro{background:var(--grad-soft);border-radius:22px;padding:22px;margin-bottom:1.5rem}

/* legal */
.legal-wrap{display:grid;grid-template-columns:280px 1fr;gap:50px;align-items:start;text-align:left}
.toc{position:sticky;top:120px;background:#fff;border:1px solid var(--line);border-radius:26px;padding:24px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-s)}
.toc h4{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--violet);margin-bottom:.8rem}
.toc a{padding:.5rem .8rem;border-radius:12px;color:var(--muted);font-size:.9rem;font-weight:600;transition:.25s;border-left:3px solid transparent}
.toc a:hover,.toc a.on{background:var(--mist);color:var(--violet);border-left-color:var(--violet)}
.legal{background:#fff;border:1px solid var(--line);border-radius:32px;padding:50px;box-shadow:var(--shadow-s)}
.legal h2{font-size:1.6rem;margin:2.2rem 0 .8rem;scroll-margin-top:120px;display:flex;align-items:center;gap:.6rem}
.legal h2::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--grad);transform:rotate(45deg);flex:none}
.legal h2:first-of-type{margin-top:.6rem}
.legal h3{margin:1.4rem 0 .5rem}
.legal p,.legal li{color:#4a4062;margin-bottom:.8rem}
.legal ul,.legal ol{padding-left:1.3rem}
.legal a{color:var(--violet);font-weight:600}
.updated{display:inline-block;background:var(--lilac);color:var(--violet);padding:.3rem .9rem;border-radius:99px;font-size:.82rem;font-weight:700}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:30px;padding:34px;text-align:center;transition:.45s;display:flex;flex-direction:column;align-items:center;gap:.4rem}
.contact-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.contact-card img{width:100px;animation:bob 6s infinite}
.contact-card a,.contact-card .big{font-family:var(--display);font-weight:800;font-size:1.2rem;color:var(--violet);word-break:break-word}
.contact-card small{color:var(--muted)}
.form-wrap{margin-top:80px;display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:start}
.form{background:#fff;border-radius:32px;padding:40px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:16px;border:1px solid var(--line)}
.form .full{grid-column:1/-1}
.form label{display:block;font-weight:700;font-size:.85rem;color:var(--plum);margin-bottom:.35rem}
.form input,.form textarea,.form select{width:100%;padding:.95rem 1.1rem;border-radius:16px;border:1.5px solid var(--line);background:var(--bg);font:inherit;color:var(--ink);transition:.25s}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--violet-2);box-shadow:0 0 0 4px rgba(167,139,250,.2);background:#fff}
.form textarea{min-height:140px;resize:vertical}
.form-msg{display:block;color:var(--violet);font-weight:600;font-size:.92rem}

/* footer */
.footer{position:relative;margin-top:40px;padding:110px 0 30px;background:linear-gradient(180deg,#f3eeff,#e9e1ff);overflow:hidden}
.footer::before{content:"NODEX";position:absolute;left:50%;bottom:-.25em;transform:translateX(-50%);font-family:var(--display);font-weight:800;font-size:clamp(6rem,22vw,20rem);color:transparent;-webkit-text-stroke:1.5px rgba(124,58,237,.14);letter-spacing:-.04em;line-height:1;pointer-events:none;white-space:nowrap}
.footer .container{position:relative}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px}
.footer p{color:var(--muted);font-size:.94rem;margin-top:1rem}
.footer h4{font-size:1rem;margin-bottom:1rem}
.footer ul{list-style:none;display:grid;gap:.5rem}
.footer ul a{color:var(--muted);font-weight:500;transition:.25s}
.footer ul a:hover{color:var(--violet);padding-left:4px}
.footer .call{display:inline-block;margin-top:.6rem;font-family:var(--display);font-weight:800;font-size:1.5rem;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.copy{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:60px;padding-top:24px;border-top:1px solid rgba(124,58,237,.15);font-size:.85rem;color:var(--muted)}
.float-call{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;align-items:center;gap:10px;padding:10px 20px 10px 10px;border-radius:99px;background:linear-gradient(120deg,#7c3aed,#a855f7);color:#fff;font-weight:700;font-size:.9rem;box-shadow:0 20px 40px -12px rgba(124,58,237,.7)}
.float-call .ring{width:38px;height:38px;background:#fff;color:var(--violet)}

/* motion */
.motion-ready .reveal{opacity:0;transform:translateY(40px) scale(.98);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.motion-ready .reveal.in{opacity:1;transform:none}
.d1{transition-delay:.1s!important}.d2{transition-delay:.2s!important}.d3{transition-delay:.3s!important}
.split-words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em}
.split-words .w>span{display:inline-block;transform:translateY(105%) rotate(6deg);transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.split-words.in .w>span{transform:none}
.tilt{transform-style:preserve-3d;will-change:transform}

@media (max-width:1100px){
  .nav{position:fixed;inset:86px 4% auto;flex-direction:column;align-items:stretch;background:#fff;border-radius:28px;padding:16px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(-10px);transition:.3s}
  .nav.open{opacity:1;pointer-events:auto;transform:none}
  .nav a:not(.btn){padding:.8rem 1rem}
  .nav .btn{margin:.4rem 0 0}
  .burger{display:block}
  .bento{grid-template-columns:repeat(2,1fr)}
  .stats,.rings{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  body{font-size:16px}
  .section{padding:80px 0}
  .about-grid,.info-wrap,.faq-grid,.cta,.legal-wrap,.form-wrap{grid-template-columns:1fr;gap:40px}
  .grid-3,.svc-grid,.passes,.contact-grid,.info-list,.timeline,.timeline.four,.guide{grid-template-columns:1fr}
  .timeline .prog{display:none}
  .guide-item{grid-template-columns:1fr}
  .toc,.faq-side{position:static}
  .trip-bar{grid-template-columns:1fr 1fr}
  .trip-bar .btn{grid-column:1/-1}
  .stage{height:440px}
  .float{width:80px}.f2{width:90px}
  .chipcard{display:none}
  .flyer{width:100px}
  .cta{padding:34px}
  .cta::before{display:none}
  .collage{height:440px}
  .legal{padding:28px}
  .topline .container span{display:none}
  .topline .container{justify-content:center}
  .ph-float{width:70px!important;opacity:.7}
  .ph-float.c,.ph-float.d{display:none}
  .form{grid-template-columns:1fr;padding:26px}
}
@media (max-width:560px){
  .bento{grid-template-columns:1fr}
  .tile:nth-child(1),.tile:nth-child(6){grid-column:auto;grid-row:auto}
  .stats,.rings{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .float-call span:last-child{display:none}
  .float-call{padding:10px}
  .header .bar{padding:8px 8px 8px 14px}
  .wordmark small{display:none}
  .testi{width:300px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready .reveal,.split-words .w>span,.hero h1 .ch{opacity:1!important;transform:none!important}}
