/* ============================================================
   Panda Journeys — IMMERSIVE flagship stylesheet (v5)
   ============================================================ */
:root{
  --ink:#0a130d;--ink2:#0e1c14;--green:#16493a;--green-d:#0f3528;--green-bright:#1aa37a;
  --gold:#c0973f;--gold-l:#e7cf95;--cream:#f6f1e8;--paper:#fff;--line:#e6e0d2;
  --muted:#6f7a72;--text:#2f3a33;--max:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--ink);color:#eaeee9;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.serif{font-family:'Fraunces',Georgia,'Times New Roman',serif}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 34px}
.eye{font-size:.73rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:700}
.center{text-align:center}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:400;line-height:1.05;letter-spacing:-.015em}

/* chrome */
.prog{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-l));z-index:999;box-shadow:0 0 8px rgba(192,151,63,.5);pointer-events:none}
.grain{position:fixed;inset:0;z-index:8;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.cursor{position:fixed;top:0;left:0;width:30px;height:30px;border:1.5px solid rgba(231,207,149,.8);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:980;transition:width .25s,height .25s,background .25s;mix-blend-mode:difference}
.cursor.big{width:64px;height:64px;background:rgba(231,207,149,.12)}
@media(hover:none){.cursor{display:none}}
#particles{position:fixed;inset:0;z-index:7;pointer-events:none}
.loading{position:fixed;inset:0;z-index:1000;background:var(--ink);display:flex;align-items:center;justify-content:center;transition:opacity .7s,visibility .7s}
.loading.gone{opacity:0;visibility:hidden}
.loading .l{font-family:'Fraunces';font-style:italic;color:var(--gold-l);font-size:1.4rem;letter-spacing:.02em;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:1}}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:800;display:flex;align-items:center;justify-content:space-between;padding:24px 40px;transition:.4s}
.nav.solid{background:rgba(10,19,13,.95);backdrop-filter:blur(14px);padding:14px 40px;border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 6px 24px -10px rgba(0,0,0,.4)}
.nav,.nav *{cursor:none}
.nav .brand{display:flex;align-items:center;gap:10px;font-family:'Fraunces';font-weight:600;font-size:1.4rem}
.nav .brand img{width:38px;height:38px;border-radius:9px;object-fit:cover}
.nav .brand b{color:var(--gold-l)}
.nav .links{display:flex;gap:30px;align-items:center;font-size:.9rem;font-weight:500}
.nav .links a{opacity:.85;transition:.25s;position:relative}
.nav .links a::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--gold);transition:.3s}
.nav .links a:hover{opacity:1}.nav .links a:hover::after{width:100%}
.nav .navcta{border:1px solid rgba(231,207,149,.55);padding:9px 18px;border-radius:999px;color:var(--gold-l)}
.nav .navcta:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.nav-toggle{display:none;background:none;border:none;color:#fff;font-size:1.6rem;cursor:pointer}
@media(max-width:880px){.nav .links{position:fixed;inset:0 0 0 auto;width:74%;max-width:320px;flex-direction:column;justify-content:center;gap:26px;background:rgba(10,19,13,.97);backdrop-filter:blur(16px);transform:translateX(100%);transition:.4s;padding:40px;font-size:1.1rem}.nav .links.open{transform:none}.nav-toggle{display:block;z-index:2}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;justify-content:center;padding:15px 30px;border-radius:999px;font-weight:600;font-size:1rem;border:none;cursor:pointer;transition:.3s;position:relative;overflow:hidden}
.btn-g{background:var(--gold);color:var(--ink)}.btn-g:hover{background:var(--gold-l);transform:translateY(-2px)}
.btn-o{border:1px solid rgba(255,255,255,.5);color:#fff}.btn-o:hover{background:#fff;color:var(--ink)}
.btn-wa{background:#1eb858;color:#fff}.btn-wa:hover{background:#179447;transform:translateY(-2px)}

/* HERO */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;display:flex;align-items:flex-end}
#heroCanvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block}
.hero-fallback{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(10,19,13,.42),rgba(10,19,13,0) 28%,rgba(10,19,13,.4) 62%,rgba(10,19,13,.97))}
.hero-in{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:0 40px 9vh;pointer-events:none}
.hero .eye{display:inline-block;margin-bottom:20px}
.hero h1{font-size:clamp(2.7rem,7.4vw,6.4rem);max-width:15ch}
.hero h1 .ln{display:block;overflow:hidden}.hero h1 .ln span{display:inline-block}
.hero h1 em{font-style:italic;color:var(--gold-l)}
.hero .sub{max-width:48ch;margin:28px 0 32px;font-size:1.16rem;color:rgba(234,238,233,.82)}
.hero .ctas{display:flex;gap:15px;flex-wrap:wrap;pointer-events:auto}
.hero .hint{position:absolute;right:40px;bottom:38px;z-index:2;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6)}
@media(max-width:820px){.hero .hint{display:none}.hero-in{padding-bottom:13vh}}

/* HERO entry animation (CSS-only, no JS/GSAP dependency) */
@keyframes heroLineIn{from{transform:translateY(110%)}to{transform:translateY(0)}}
@keyframes heroFadeIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.hero h1 .ln span{display:inline-block;animation:heroLineIn 1.1s cubic-bezier(.16,1,.3,1) both}
.hero h1 .ln:nth-child(1) span{animation-delay:.15s}
.hero h1 .ln:nth-child(2) span{animation-delay:.27s}
.hero h1 .ln:nth-child(3) span{animation-delay:.39s}
.hero .eye,.hero .sub,.hero .ctas{animation:heroFadeIn 1s cubic-bezier(.16,1,.3,1) both}
.hero .eye{animation-delay:.6s}.hero .sub{animation-delay:.7s}.hero .ctas{animation-delay:.8s}
@media(prefers-reduced-motion:reduce){.hero h1 .ln span,.hero .eye,.hero .sub,.hero .ctas{animation:none}}

/* marquee */
.marq{border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden;white-space:nowrap;padding:18px 0;background:#08110b}
.marq .t{display:inline-block;animation:marq 36s linear infinite}
.marq span{font-family:'Fraunces';font-style:italic;font-size:1.4rem;color:rgba(231,207,149,.85);margin:0 36px}
.marq span b{color:rgba(234,238,233,.35);font-style:normal}
@keyframes marq{to{transform:translateX(-50%)}}

/* section shell */
.sec{padding:13vh 0;position:relative}
.sec-head{max-width:760px;margin:0 auto 5vh;text-align:center}
.sec-head h2{font-size:clamp(2rem,4.6vw,3.5rem);margin:14px 0}
.sec-head p{color:rgba(234,238,233,.7)}

/* DESTINATION EXPLORER */
.dest{position:relative}
.dpanel{position:relative;height:96vh;min-height:560px;display:flex;align-items:center;overflow:hidden}
.dpanel .bg{position:absolute;inset:-10%;background-size:cover;background-position:center;z-index:0}
.dpanel::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,15,11,.88) 0%,rgba(8,15,11,.45) 45%,rgba(8,15,11,.15) 100%)}
.dpanel.flip::after{background:linear-gradient(270deg,rgba(8,15,11,.88) 0%,rgba(8,15,11,.45) 45%,rgba(8,15,11,.15) 100%)}
.dpanel .dc{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 40px;width:100%}
.dpanel.flip .dc{text-align:right}
.dpanel .inner{max-width:46ch}.dpanel.flip .inner{margin-left:auto}
.dpanel h3{font-size:clamp(2rem,5vw,3.6rem);margin:14px 0 14px}
.dpanel .lede{color:rgba(234,238,233,.82);font-size:1.12rem;margin-bottom:14px}
.dpanel .facts{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0 26px;font-size:.86rem;color:var(--gold-l)}
.dpanel.flip .facts{justify-content:flex-end}
.dpanel .facts span{border:1px solid rgba(231,207,149,.3);padding:6px 13px;border-radius:999px}
.addtrip{display:inline-flex;align-items:center;gap:9px;background:rgba(231,207,149,.12);border:1px solid rgba(231,207,149,.5);color:var(--gold-l);padding:12px 22px;border-radius:999px;font-weight:600;cursor:pointer;transition:.25s;font-family:inherit;font-size:.95rem}
.addtrip:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.addtrip.added{background:var(--green-bright);color:#fff;border-color:var(--green-bright)}
@media(max-width:820px){.dpanel::after,.dpanel.flip::after{background:linear-gradient(180deg,rgba(8,15,11,.55),rgba(8,15,11,.9))}.dpanel.flip .dc{text-align:left}.dpanel.flip .facts{justify-content:flex-start}.dpanel.flip .inner{margin-left:0}}

/* 3D ROUTE MAP */
.map-sec{background:linear-gradient(180deg,#08110b,#0e1c14);padding:13vh 0}
.map-wrap{max-width:var(--max);margin:0 auto;padding:0 34px;display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:stretch}
.map-stage{position:relative;border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.08);min-height:520px;background:#0b1610}
#mapCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab}
#mapCanvas:active{cursor:grabbing}
.map-tabs{position:absolute;left:16px;top:16px;z-index:3;display:flex;flex-wrap:wrap;gap:8px;max-width:80%}
.map-tabs button{background:rgba(10,19,13,.7);border:1px solid rgba(231,207,149,.3);color:#eaeee9;padding:8px 14px;border-radius:999px;font-size:.82rem;font-weight:600;cursor:pointer;transition:.2s;font-family:inherit;backdrop-filter:blur(6px)}
.map-tabs button:hover{border-color:var(--gold-l)}
.map-tabs button.on{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.map-hint{position:absolute;right:16px;bottom:14px;z-index:3;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.map-info{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:30px;display:flex;flex-direction:column}
.map-info .tag{color:var(--gold-l);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.map-info h3{font-size:1.9rem;margin:8px 0 6px}
.map-info .blurb{color:rgba(234,238,233,.72);font-size:.96rem;margin-bottom:16px}
.map-stops{list-style:none;flex:1;overflow:auto}
.map-stops li{display:grid;grid-template-columns:26px 1fr;gap:12px;padding:11px 0;border-bottom:1px dashed rgba(255,255,255,.1);opacity:0;transform:translateX(10px);animation:din .45s forwards}
@keyframes din{to{opacity:1;transform:none}}
.map-stops .mn{font-family:'Fraunces';color:var(--gold);font-weight:600}
.map-stops b{color:#fff;font-weight:500}.map-stops span{color:rgba(234,238,233,.66);font-size:.88rem;display:block}
.map-info .mfoot{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.map-info .mfoot .num{font-family:'Fraunces';color:var(--gold-l);font-size:1.1rem}
@media(max-width:880px){.map-wrap{grid-template-columns:1fr}.map-stage{min-height:380px}}

/* GLOBE */
.globe-sec{position:relative;min-height:120vh;padding:14vh 0 0;background:var(--ink)}
#globeCanvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block;cursor:grab}
#globeCanvas:active{cursor:grabbing}
.globe-head{position:relative;z-index:3;text-align:center;max-width:760px;margin:0 auto}
.globe-head h2{font-size:clamp(2rem,4.6vw,3.6rem);margin:14px 0}
.globe-head p{color:rgba(234,238,233,.7);max-width:52ch;margin:0 auto}
.globe-cities{position:relative;z-index:3;display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.globe-cities span{border:1px solid rgba(231,207,149,.3);color:var(--gold-l);padding:6px 14px;border-radius:999px;font-size:.8rem;background:rgba(231,207,149,.05)}

/* TRIP BUILDER (bright inset) */
.tb{background:var(--cream);color:var(--text);padding:12vh 0}
.tb .tb-head{text-align:center;max-width:680px;margin:0 auto 4vh}
.tb .tb-head .eye{color:var(--gold)}
.tb .tb-head h2{color:var(--ink);font-size:clamp(2rem,4.4vw,3.2rem);margin:12px 0}
.tb .tb-head p{color:var(--muted)}
.tb-grid{max-width:1240px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 1.05fr;gap:32px;align-items:start}
@media(max-width:900px){.tb-grid{grid-template-columns:1fr}}
.tb-panel{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 10px 40px rgba(22,36,29,.07)}
.qblock{margin-bottom:24px}.qblock:last-child{margin-bottom:0}
.qlabel{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.qlabel .qn{width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:'Fraunces'}
.qlabel h3{font-family:'Fraunces';font-weight:500;font-size:1.1rem;color:var(--ink)}
.qlabel small{color:var(--muted);font-size:.78rem;margin-left:auto}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:9px}
.opt{border:1.6px solid var(--line);background:var(--cream);border-radius:12px;padding:12px;cursor:pointer;transition:.18s;font-weight:600;color:var(--ink);font-size:.9rem;text-align:left;font-family:inherit;display:flex;align-items:center;gap:8px}
.opt .e{font-size:1.3rem;line-height:1}
.opt:hover{border-color:var(--green);transform:translateY(-2px)}
.opt.sel{border-color:var(--green);background:#e9f3ee}
.opt.sel::after{content:"✓";margin-left:auto;color:var(--green);font-weight:800}
.months{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.mo{border:1.4px solid var(--line);background:var(--cream);border-radius:9px;padding:9px 2px;text-align:center;cursor:pointer;font-weight:700;font-size:.8rem;color:var(--muted);font-family:inherit;transition:.16s}
.mo:hover{border-color:var(--green);color:var(--green)}.mo.sel{background:var(--green);color:#fff;border-color:var(--green)}
.tb-live{position:sticky;top:18px;position:-webkit-sticky}
.tb-card{border-top:3px solid var(--gold);box-shadow:0 18px 60px -20px rgba(22,36,29,.25);transition:transform .25s,box-shadow .25s}
.tb-card:hover{transform:translateY(-3px);box-shadow:0 28px 80px -20px rgba(22,36,29,.35)}
.tb-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 18px 50px rgba(22,36,29,.13)}
.tb-card .ch{position:relative;height:220px;overflow:hidden}
.tb-card .ch img{width:100%;height:100%;object-fit:cover;transition:transform 6s ease}
.tb-card .ch.show img{transform:scale(1.08)}
.tb-card .ch::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,15,11,.9),transparent 60%)}
.tb-card .ch .lab{position:absolute;left:20px;right:20px;bottom:15px;z-index:2;color:#fff}
.tb-card .ch .lab .tag{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-l);font-weight:700}
.tb-card .ch .lab h3{font-weight:500;font-size:1.6rem;margin-top:4px;color:#fff}
.tb-match{display:flex;flex-wrap:wrap;gap:6px;padding:15px 22px 2px}
.tb-match span{background:#eef4f0;border:1px solid #d6e6dd;color:var(--green);border-radius:999px;padding:4px 11px;font-size:.73rem;font-weight:700}
.tb-why{padding:8px 22px 0;font-size:.88rem;color:var(--muted)}.tb-why b{color:var(--text)}
.tb-days{padding:12px 22px 2px}.tb-days h4{font-family:'Fraunces';font-weight:500;font-size:.92rem;color:var(--ink);margin-bottom:6px}
.ditem{display:grid;grid-template-columns:28px 1fr;gap:11px;padding:7px 0;border-bottom:1px dashed var(--line);opacity:0;transform:translateX(10px);animation:din .4s forwards}
.ditem:last-child{border-bottom:none}.ditem .dn{font-family:'Fraunces';font-weight:600;color:var(--gold);font-size:.9rem}
.ditem .dt{font-size:.88rem;color:var(--text)}
.tb-sum{margin:8px 22px 0;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tb-sum .s{font-size:.8rem;color:var(--muted)}.tb-sum .s b{display:block;font-family:'Fraunces';font-size:1.18rem;color:var(--ink);font-weight:600}
.tb-sum .s.price b{color:var(--green)}
.tb-season{margin:12px 22px 0;font-size:.85rem;padding:10px 14px;border-radius:11px;font-weight:600}
.tb-season.good{background:#e9f3ee;color:#236048;border:1px solid #cfe6da}
.tb-season.ok{background:#fdf4e3;color:#8a6a23;border:1px solid #efddb6}
.tb-cta{padding:16px 22px 22px}
.tb-cta .btn{width:100%}.tb-cta .btn+.btn{margin-top:9px}
.tb-sub{background:transparent;color:var(--green);border:1.5px solid var(--green)}.tb-sub:hover{background:var(--green);color:#fff}
.tb-empty{padding:54px 26px;text-align:center;color:var(--muted)}.tb-empty .big{font-size:2.4rem;margin-bottom:10px}
.flash{animation:flash .5s}@keyframes flash{0%{box-shadow:0 0 0 0 rgba(192,151,63,.5)}100%{box-shadow:0 18px 50px rgba(22,36,29,.13)}}

/* REVIEWS */
.rev-sec{padding:13vh 0;background:var(--ink2)}
.rating-hero{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:14px}
.rating-hero .stars{color:var(--gold);font-size:1.4rem;letter-spacing:3px}
.rating-hero .score{color:rgba(234,238,233,.8)}.rating-hero .score b{color:var(--gold-l)}
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:5vh;max-width:var(--max);margin-left:auto;margin-right:auto;padding:0 34px}
.review{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:12px;transition:.25s}
.review:hover{transform:translateY(-5px);border-color:rgba(231,207,149,.3)}
.review .rs{color:var(--gold);letter-spacing:2px}
.review .rt{font-size:.96rem;color:rgba(234,238,233,.85);flex:1;line-height:1.6}
.review .rw{display:flex;align-items:center;gap:11px}
.review .rf{font-size:1.6rem}
.review .rm b{display:block;color:#fff;font-size:.92rem}.review .rm span{font-size:.79rem;color:rgba(234,238,233,.55)}
.review .rr{align-self:flex-start;background:rgba(231,207,149,.1);border:1px solid rgba(231,207,149,.25);border-radius:999px;padding:4px 11px;font-size:.72rem;font-weight:700;color:var(--gold-l)}
@media(max-width:980px){.reviews{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.reviews{grid-template-columns:1fr}}

/* TRUST */
.trust-sec{padding:13vh 0;background:var(--ink)}
.trust-box{max-width:var(--max);margin:0 auto;padding:0 34px;display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:center}
.trust-box h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin:12px 0 14px}
.trust-box p{color:rgba(234,238,233,.74)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:9px 22px;margin:20px 0;font-size:.93rem}
.kv dt{color:rgba(234,238,233,.55)}.kv dd{color:#fff;font-weight:600}
.cred{display:grid;gap:14px}
.cred figure{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:12px}
.cred img{border-radius:8px;width:100%}.cred figcaption{font-size:.8rem;color:rgba(234,238,233,.55);margin-top:8px;text-align:center}
@media(max-width:880px){.trust-box{grid-template-columns:1fr}}

/* FINAL CTA + footer */
.final{position:relative;padding:18vh 0;text-align:center;overflow:hidden}
.final .bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;opacity:.45}
.final::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(60% 80% at 50% 50%,rgba(10,19,13,.7),rgba(10,19,13,.96))}
.final .in{position:relative;z-index:2}
.final h2{font-size:clamp(2.4rem,6vw,5rem);line-height:1}
.final p{color:rgba(234,238,233,.82);margin:20px auto 30px;max-width:48ch;font-size:1.14rem}
footer{background:#06100a;padding:60px 0 30px;color:rgba(234,238,233,.5)}
.foot-grid{max-width:var(--max);margin:0 auto;padding:0 34px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:36px}
.foot-grid h4{color:#fff;font-size:.86rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;font-family:'Inter'}
.foot-grid a{display:block;padding:4px 0;color:rgba(234,238,233,.6);font-size:.9rem}.foot-grid a:hover{color:var(--gold-l)}
.foot-brand{font-family:'Fraunces';font-size:1.3rem;color:var(--gold-l);margin-bottom:8px}
.foot-legal{font-size:.8rem;color:rgba(234,238,233,.4);line-height:1.8}
.foot-bottom{max-width:var(--max);margin:40px auto 0;padding:22px 34px 0;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem;color:rgba(234,238,233,.4);text-align:center}
.float-wa{position:fixed;bottom:24px;right:24px;z-index:300;display:flex;align-items:center;gap:9px;background:#1eb858;color:#fff;padding:13px 20px;border-radius:999px;font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:.2s}
.float-wa:hover{transform:scale(1.05)}
@media(max-width:880px){.foot-grid{grid-template-columns:1fr 1fr}.float-wa .txt{display:none}}

/* reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.65,.3,1),transform .9s cubic-bezier(.2,.65,.3,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}*{animation-duration:.01ms!important}}

/* ===== SVG Sichuan map ===== */
.map-stage{perspective:1200px}
#mapStage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .3s ease}
#mapStage svg{width:100%;height:100%;display:block}
.mp-prov{fill:url(#terr);stroke:rgba(231,207,149,.55);stroke-width:2;filter:drop-shadow(0 12px 30px rgba(0,0,0,.5))}
.mp-grat{stroke:rgba(255,255,255,.05);stroke-width:1}
.mp-ridge{stroke:rgba(231,207,149,.13);stroke-width:1.2;fill:none}
.mp-river{stroke:rgba(90,170,200,.35);stroke-width:2;fill:none}
.route-line{fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;opacity:.12;transition:opacity .4s}
.route-line.on{opacity:1;filter:drop-shadow(0 0 7px currentColor)}
.mp-city{fill:#7d958a;transition:.3s}
.mp-city.on{fill:var(--gold-l)}
.mp-clabel{fill:rgba(234,238,233,.45);font:600 15px Inter,sans-serif;transition:.3s}
.mp-clabel.on{fill:#fff}
.mp-hub{fill:var(--gold-l)}
.mp-travel{fill:#fff;filter:drop-shadow(0 0 6px #fff)}
.mp-pulse{fill:none;stroke:var(--gold-l);stroke-width:2;opacity:0}

/* ===== Real Guests · Real Footage (moments) ===== */
.moments-sec{padding:13vh 0;background:var(--ink)}
.moments-wrap{position:relative;max-width:1400px;margin:5vh auto 0}
.moments{display:flex;gap:18px;overflow-x:auto;padding:8px 34px 24px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.moments::-webkit-scrollbar{height:8px}.moments::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:99px}
.moment{flex:0 0 300px;scroll-snap-align:start;height:420px;border-radius:18px;overflow:hidden;position:relative;display:flex;align-items:flex-end;box-shadow:0 14px 40px rgba(0,0,0,.4);transition:transform .35s ease}
.moment:hover{transform:translateY(-6px)}
.moment .m-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.moment .cap{position:relative;z-index:2;padding:18px;width:100%;background:linear-gradient(to top,rgba(8,15,11,.9),transparent)}
.moment .cap b{display:block;font-family:'Fraunces';font-weight:500;font-size:1.1rem;color:#fff}
.moment .cap span{font-size:.82rem;color:rgba(234,238,233,.7)}
.moments-wrap::after{content:"";position:absolute;top:0;right:0;bottom:24px;width:70px;background:linear-gradient(to right,transparent,var(--ink));pointer-events:none}
.swipehint{text-align:center;color:rgba(234,238,233,.4);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-top:6px}

/* explorer journey link + final video bg */
.mjourney{display:inline-block;margin-left:6px;color:var(--gold-l);font-weight:600;font-size:.92rem;border-bottom:1px solid rgba(231,207,149,.4);padding-bottom:2px}
.mjourney:hover{color:#fff;border-color:#fff}
.dpanel .inner .mjourney{margin-top:10px}
.final video.bg{width:100%;height:100%;object-fit:cover}

/* ===== Tour detail / listing pages ===== */
.tour-hero{position:relative;height:72vh;min-height:500px;overflow:hidden;display:flex;align-items:flex-end}
.tour-hero .bg{position:absolute;inset:-8%;background-size:cover;background-position:center;z-index:0}
.tour-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,19,13,.45),rgba(10,19,13,.05) 30%,rgba(10,19,13,.5) 62%,rgba(10,19,13,.97))}
.tour-hero .th-in{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 40px 8vh;width:100%}
.tcrumbs{font-size:.84rem;color:rgba(255,255,255,.6);margin-bottom:16px}
.tcrumbs a{color:rgba(255,255,255,.85)}.tcrumbs a:hover{color:var(--gold-l)}
.tour-hero h1{font-size:clamp(2.4rem,5.5vw,4.4rem);max-width:16ch;margin:10px 0}
.tour-hero .lede{max-width:54ch;color:rgba(234,238,233,.85);font-size:1.14rem;margin-bottom:24px}
.tsec{padding:9vh 0}
.tsec.alt{background:var(--ink2)}
.tfacts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:var(--max);margin:0 auto;padding:0 34px}
.tfact{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:20px 16px;text-align:center}
.tfact b{display:block;font-family:'Fraunces';color:var(--gold-l);font-size:1.05rem;line-height:1.2}
.tfact span{font-size:.8rem;color:rgba(234,238,233,.6);display:block;margin-top:6px}
.tnotice{max-width:920px;margin:26px auto 0;padding:0 34px}
.tnotice .in{background:rgba(231,207,149,.08);border:1px solid rgba(231,207,149,.25);border-radius:14px;padding:18px 22px;color:rgba(234,238,233,.85);font-size:.95rem}
.twrap{max-width:920px;margin:0 auto;padding:0 34px}
.thead{text-align:center;margin-bottom:5vh}
.thead h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-top:10px}
.tl-day{display:grid;grid-template-columns:88px 1fr;gap:26px;padding:26px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.tl-day:last-child{border-bottom:none}
.tl-day .dn{font-family:'Fraunces';text-align:center;background:rgba(231,207,149,.08);border:1px solid rgba(231,207,149,.25);border-radius:12px;padding:12px 6px;height:fit-content;color:var(--gold-l);font-size:.82rem}
.tl-day .dn b{display:block;font-size:1.7rem;line-height:1.1}
.tl-day h3{font-size:1.3rem;margin-bottom:8px;color:#fff}
.tl-day p{color:rgba(234,238,233,.75)}
.tl-day p a{color:var(--gold-l);border-bottom:1px solid rgba(231,207,149,.4)}
.tl-day .meals{font-size:.74rem;color:var(--gold);font-weight:700;letter-spacing:.06em;margin-top:10px}
.tincl-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:var(--max);margin:0 auto;padding:0 34px}
.tincl{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:26px}
.tincl h3{font-size:1.2rem;margin-bottom:12px}
.tincl ul{list-style:none}
.tincl li{padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.1);color:rgba(234,238,233,.8);font-size:.95rem}
.tincl.yes li::before{content:"✓  ";color:#5cd1a4;font-weight:800}
.tincl.no li::before{content:"✗  ";color:#ef8b6f;font-weight:800}
.tprice{max-width:920px;margin:24px auto 0;padding:0 34px}
.tprice .in{background:rgba(231,207,149,.07);border:1px solid rgba(231,207,149,.2);border-radius:14px;padding:18px 22px;font-size:.93rem;color:rgba(234,238,233,.82)}
.tcta{position:relative;padding:14vh 0;text-align:center;overflow:hidden}
.tcta .bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;opacity:.4}
.tcta::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(60% 80% at 50% 50%,rgba(10,19,13,.72),rgba(10,19,13,.96))}
.tcta .in{position:relative;z-index:2;padding:0 34px}
.tcta h2{font-size:clamp(2rem,4.6vw,3.4rem)}
.tcta p{color:rgba(234,238,233,.82);margin:16px auto 26px;max-width:48ch}
.tcta .btn-note{color:rgba(234,238,233,.5);margin-top:12px;font-size:.84rem}
/* tours listing grid */
.troutes{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:var(--max);margin:0 auto;padding:0 34px}
.troute{position:relative;border-radius:18px;overflow:hidden;height:58vh;min-height:420px;display:flex;align-items:flex-end}
.troute .ph{position:absolute;inset:-10%;background-size:cover;background-position:center;z-index:0;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.troute::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(8,15,11,.92),rgba(8,15,11,.1) 58%,rgba(8,15,11,.35))}
.troute:hover .ph{transform:scale(1.07)}
.troute .meta{position:relative;z-index:2;padding:34px;width:100%}
.troute .tag{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-l);font-weight:700}
.troute h3{font-family:'Fraunces';font-weight:400;font-size:1.9rem;margin:8px 0 8px;color:#fff}
.troute p{color:rgba(234,238,233,.78);font-size:.96rem;max-width:46ch}
.troute .go{display:inline-flex;align-items:center;gap:8px;margin-top:14px;color:var(--gold-l);font-weight:600;font-size:.92rem}
@media(max-width:820px){.tfacts{grid-template-columns:1fr 1fr}.tincl-grid{grid-template-columns:1fr}.tl-day{grid-template-columns:60px 1fr;gap:16px}.troutes{grid-template-columns:1fr}.troute{height:52vh}}

/* ===== Mobile polish ===== */
@media(max-width:600px){
  .sec,.tb,.rev-sec,.trust-sec,.moments-sec,.map-sec,.tsec{padding:9vh 0}
  .globe-sec{min-height:88vh;padding-top:10vh}
  .dpanel{height:86vh;min-height:460px}
  .dpanel h3{font-size:2rem}
  .moment{flex:0 0 78vw;height:60vh}
  .map-stage{min-height:300px}
  .map-wrap,.tb-grid,.reviews,.tfacts,.tincl-grid,.troutes{padding-left:18px;padding-right:18px}
  .hero-in{padding-left:22px;padding-right:22px}
  .hero .ctas .btn,.tcta .btn,.final .btn{width:100%}
  .nav{padding:14px 18px}
  .moments{padding-left:18px;padding-right:18px}
  .sec-head,.globe-head{padding-left:18px;padding-right:18px}
  .tour-hero .th-in{padding-left:22px;padding-right:22px}
  .map-tabs{max-width:92%}
  .map-tabs button{font-size:.76rem;padding:7px 11px}
}
/* prevent horizontal scroll from wide elements */
html,body{max-width:100%;overflow-x:hidden}

/* AI widget 区域隐藏 cursor（让按钮看起来是"实"的） */
.ai-fab,.ai-fab *,.ai-panel,.ai-panel *{cursor:auto !important}
.ai-fab{cursor:pointer !important}



/* ===== LIVE AI PLAYGROUND (panda-journeys) ===== */
.pj-pg-wrap{
  position:relative;
  background:linear-gradient(180deg,#08110b 0%,#0a1610 60%,#08110b 100%);
  padding:60px 40px 80px;
  z-index:5;
}
.pj-pg-card{
  max-width:1024px;margin:0 auto;
  background:rgba(8,17,11,.94);
  border:1px solid rgba(184,134,11,.4);
  border-radius:20px;
  box-shadow:0 40px 100px -20px rgba(0,0,0,.6), 0 0 60px -20px rgba(184,134,11,.25);
  overflow:hidden;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.pj-pg-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  border-bottom:1px solid rgba(184,134,11,.18);
  padding:14px 22px;
  background:rgba(8,17,11,.6);
}
.pj-pg-dots{display:flex;gap:7px}
.pj-pg-dots span{width:11px;height:11px;border-radius:50%;display:block}
.pj-pg-dots span:nth-child(1){background:#ff5f57}
.pj-pg-dots span:nth-child(2){background:#ffbd2e}
.pj-pg-dots span:nth-child(3){background:#28c840}
.pj-pg-title{flex:1;text-align:center;min-width:0}
.pj-pg-brand{
  font-family:'Fraunces',Georgia,serif;
  color:#E5DCC8;font-size:.98rem;font-weight:600;
  letter-spacing:.01em;
}
.pj-pg-cta{
  display:inline-flex;align-items:center;gap:8px;
  margin-top:7px;
  background:linear-gradient(135deg,#F5DDC0,#B8860B);
  color:#0e1c14;
  padding:6px 16px;border-radius:99px;
  font-size:.78rem;font-weight:700;letter-spacing:.02em;
  box-shadow:0 4px 20px rgba(184,134,11,.4);
  animation:pjCtaPulse 2.4s ease-in-out infinite;
}
.pj-pg-cta .pj-pg-arrow{font-size:1rem;transition:transform .2s}
.pj-pg-cta:hover .pj-pg-arrow{transform:translateX(3px)}
@keyframes pjCtaPulse{
  0%,100%{box-shadow:0 4px 20px rgba(184,134,11,.4)}
  50%{box-shadow:0 6px 28px rgba(184,134,11,.65)}
}
.pj-pg-status{display:flex;align-items:center;gap:7px;font-size:.7rem;color:#28c840;font-weight:700;letter-spacing:.1em;flex-shrink:0}
.pj-pg-pulse{
  position:relative;width:8px;height:8px;border-radius:50%;background:#28c840;
}
.pj-pg-pulse::before{
  content:"";position:absolute;inset:-4px;border-radius:50%;
  background:rgba(40,200,64,.5);
  animation:pjPing 1.6s cubic-bezier(0,0,.2,1) infinite;
}
@keyframes pjPing{
  0%{opacity:.75;transform:scale(1)}
  100%{opacity:0;transform:scale(2.2)}
}

.pj-pg-body{padding:28px 28px 24px}
.pj-pg-form{
  display:flex;align-items:center;gap:12px;
  background:rgba(6,14,10,.7);
  border:1px solid rgba(184,134,11,.3);
  border-radius:12px;
  padding:14px 16px;
  transition:border-color .2s,box-shadow .2s;
}
.pj-pg-form:focus-within{
  border-color:#E5DCC8;
  box-shadow:0 0 0 3px rgba(184,134,11,.18);
}
.pj-pg-form .pj-pg-arrow{color:#E5DCC8;font-family:'Fraunces',serif;font-size:1.15rem;flex-shrink:0}
.pj-pg-form input{
  flex:1;background:transparent;border:none;outline:none;
  color:#fff;font-size:.95rem;font-family:inherit;min-width:0;
}
.pj-pg-form input::placeholder{color:rgba(234,238,233,.4)}
.pj-pg-form button{
  background:linear-gradient(135deg,#F5DDC0,#B8860B);
  color:#0e1c14;border:none;border-radius:8px;
  padding:7px 18px;font-size:.78rem;font-weight:700;cursor:pointer;
  font-family:inherit;letter-spacing:.04em;flex-shrink:0;
  transition:filter .15s;
}
.pj-pg-form button:hover{filter:brightness(1.1)}
.pj-pg-form button:disabled{opacity:.6;cursor:wait}

.pj-pg-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pj-chip{
  background:rgba(14,28,20,.55);
  border:1px solid rgba(184,134,11,.25);
  color:rgba(234,238,233,.85);
  padding:7px 14px;border-radius:99px;
  font-size:.8rem;cursor:pointer;transition:.2s;
  font-family:inherit;
}
.pj-chip:hover{
  border-color:#E5DCC8;
  background:rgba(14,28,20,.95);
  color:#fff;transform:translateY(-1px);
}

.pj-pg-response{
  margin-top:18px;
  min-height:170px;max-height:380px;
  overflow-y:auto;
  background:rgba(6,14,10,.55);
  border:1px solid rgba(184,134,11,.12);
  border-radius:12px;
  padding:16px;
  font-size:.9rem;
  line-height:1.6;
  color:rgba(234,238,233,.92);
  scrollbar-width:thin;
  scrollbar-color:rgba(184,134,11,.4) transparent;
}
.pj-pg-response::-webkit-scrollbar{width:6px}
.pj-pg-response::-webkit-scrollbar-thumb{background:rgba(184,134,11,.4);border-radius:3px}
.pj-pg-hint{
  display:flex;align-items:center;gap:8px;
  color:rgba(234,238,233,.5);
  font-style:italic;
  font-size:.86rem;
}
.pj-pg-hint .pj-pg-dot{width:7px;height:7px;border-radius:50%;background:rgba(184,134,11,.5);display:block}
.pj-msg{margin-top:12px;padding:11px 14px;border-radius:11px;line-height:1.6}
.pj-msg-user{
  background:rgba(184,134,11,.16);
  border:1px solid rgba(184,134,11,.35);
  color:#fff;font-weight:500;
  white-space:pre-wrap;
}
.pj-msg-ai{
  background:rgba(14,28,20,.75);
  border:1px solid rgba(184,134,11,.22);
  color:rgba(234,238,233,.95);
  white-space:pre-wrap;
}
.pj-msg-ai strong{color:#E5DCC8}
.pj-msg-ai em{color:#F5DDC0;font-style:italic}
.pj-msg-typing{
  display:inline-flex;gap:4px;color:rgba(184,134,11,.9);
}
.pj-msg-typing span{
  width:6px;height:6px;border-radius:50%;background:currentColor;
  animation:pjTyping 1.2s ease-in-out infinite;
}
.pj-msg-typing span:nth-child(2){animation-delay:.2s}
.pj-msg-typing span:nth-child(3){animation-delay:.4s}
@keyframes pjTyping{
  0%,60%,100%{opacity:.3;transform:translateY(0)}
  30%{opacity:1;transform:translateY(-3px)}
}
.pj-msg-error{
  background:rgba(255,90,90,.12);
  border:1px solid rgba(255,90,90,.3);
  color:#ffb8b8;
}

@media(max-width:820px){
  .pj-pg-wrap{padding:40px 16px 56px}
  .pj-pg-body{padding:20px 16px 18px}
  .pj-pg-title{text-align:left}
  .pj-pg-head{padding:12px 16px;gap:10px}
  .pj-pg-brand{font-size:.88rem}
  .pj-pg-cta{font-size:.72rem;padding:5px 12px}
  .pj-pg-status{display:none}
}

/* ===== Cookie consent banner ===== */
#pj-cookie-banner{
  position:fixed;bottom:20px;left:20px;right:20px;z-index:900;
  max-width:560px;margin:0 auto;
  background:rgba(8,17,11,.96);color:#fff;
  border:1px solid rgba(184,134,11,.4);border-radius:14px;
  padding:14px 18px;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  box-shadow:0 16px 40px rgba(0,0,0,.45),0 0 30px rgba(184,134,11,.18);
  font-size:.85rem;line-height:1.45;
  transform:translateY(0);transition:transform .4s cubic-bezier(.2,.65,.3,1),opacity .4s;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
#pj-cookie-banner.gone{transform:translateY(140%);opacity:0;pointer-events:none}
#pj-cookie-banner .pj-ck-text{flex:1;min-width:220px;color:rgba(234,238,233,.9)}
#pj-cookie-banner .pj-ck-text a{color:#E5DCC8;text-decoration:underline}
#pj-cookie-banner .pj-ck-btns{display:flex;gap:8px}
#pj-cookie-banner .pj-ck-accept,
#pj-cookie-banner .pj-ck-decline{
  border:none;border-radius:8px;padding:8px 14px;
  font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit;
  transition:filter .15s;
}
#pj-cookie-banner .pj-ck-accept{background:linear-gradient(135deg,#F5DDC0,#B8860B);color:#0e1c14}
#pj-cookie-banner .pj-ck-decline{background:transparent;color:rgba(234,238,233,.7);border:1px solid rgba(234,238,233,.3)}
#pj-cookie-banner .pj-ck-accept:hover,#pj-cookie-banner .pj-ck-decline:hover{filter:brightness(1.1)}
@media(max-width:560px){#pj-cookie-banner{left:12px;right:12px;bottom:12px;font-size:.8rem}}

/* ===== Random guest pop (trust) ===== */
#pj-guest-pop{
  position:fixed;bottom:96px;left:24px;z-index:700;
  display:flex;align-items:center;gap:12px;
  background:rgba(8,17,11,.92);color:#fff;
  border:1px solid rgba(184,134,11,.35);border-radius:14px;
  padding:10px 14px 10px 10px;
  box-shadow:0 12px 32px rgba(0,0,0,.4),0 0 24px rgba(184,134,11,.15);
  max-width:340px;
  font-size:.84rem;line-height:1.4;
  opacity:0;transform:translateX(-20px) scale(.95);
  transition:opacity .45s cubic-bezier(.2,.65,.3,1),transform .45s cubic-bezier(.2,.65,.3,1);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  pointer-events:none;
}
#pj-guest-pop.show{opacity:1;transform:translateX(0) scale(1)}
#pj-guest-pop .pj-gp-avatar{
  width:36px;height:36px;border-radius:50%;
  background:rgba(184,134,11,.18);
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;flex-shrink:0;
  border:1px solid rgba(184,134,11,.4);
}
#pj-guest-pop .pj-gp-body{min-width:0;flex:1}
#pj-guest-pop .pj-gp-line{color:rgba(234,238,233,.95);font-weight:500}
#pj-guest-pop .pj-gp-line strong{color:#E5DCC8}
#pj-guest-pop .pj-gp-time{color:rgba(184,134,11,.85);font-size:.72rem;margin-top:2px;letter-spacing:.04em}
@media(max-width:560px){#pj-guest-pop{bottom:88px;left:12px;max-width:240px;font-size:.78rem}}
