:root{
    --ink:#14213D;
    --paper:#FBF9F5;
    --paper-deep:#F1EDE4;
    --slate:#5B6478;
    --line:#E4E0D6;
    --pop:#E8442C;
    --pop-deep:#C4361F;
    --mint:#0FA98C;
    --white:#FFFFFF;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{background:var(--paper);color:var(--ink);font-family:'Heebo',sans-serif;line-height:1.6;overflow-x:hidden;}
  h1,h2,h3{font-family:'Rubik',sans-serif;font-weight:700;letter-spacing:-0.01em;}
  .mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.02em;}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
  @media(max-width:640px){.wrap{padding:0 20px;}}
  a:focus-visible, button:focus-visible{outline:2px solid var(--pop);outline-offset:3px;}
  @media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}}

  /* perforated divider - ticket stub motif */
  .perf{
    height:1px;border:none;background:none;position:relative;
    background-image:linear-gradient(to left, var(--line) 60%, transparent 0%);
    background-position:bottom; background-size:14px 1px; background-repeat:repeat-x;
    margin:0;
  }

  /* ---------- Header ---------- */
  header{position:fixed;top:0;right:0;left:0;z-index:100;background:rgba(251,249,245,0.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
  .nav{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;max-width:1180px;margin:0 auto;position:relative;}
  .logo{font-family:'Rubik',sans-serif;font-weight:900;font-size:1.3rem;}
  .logo span{color:var(--pop);}
  .nav-links{display:flex;gap:30px;font-size:0.95rem;color:var(--slate);font-weight:500;}
  .nav-links a:hover{color:var(--ink);}
  .nav-cta{background:var(--pop);color:var(--white);padding:10px 22px;border-radius:100px;font-size:0.9rem;font-weight:700;transition:background .2s, transform .2s;}
  .nav-cta:hover{background:var(--pop-deep);transform:translateY(-1px);}
  .nav-toggle{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;}
  @media(max-width:820px){.nav-links{display:none;}.nav-toggle{display:block;}.nav-cta{display:none;}}
  .nav-links.mobile-open{
    display:flex !important;flex-direction:column;position:absolute;top:100%;right:0;left:0;
    background:var(--paper);border:1px solid var(--line);border-top:none;padding:14px 24px;gap:14px;
    box-shadow:0 12px 24px -8px rgba(20,33,61,0.15);z-index:150;
  }

  /* ---------- Hero ---------- */
  .hero{padding:150px 0 90px;}
  .hero-grid{display:grid;grid-template-columns:1.05fr 0.8fr;gap:56px;align-items:center;}
  @media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:48px;}.hero-grid > div:last-child{order:-1;max-width:280px;margin:0 auto;}}

  .eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--line);padding:6px 14px;border-radius:100px;font-size:0.82rem;font-weight:600;color:var(--pop);margin-bottom:22px;}
  .hero h1{font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.14;margin-bottom:22px;}
  .hero h1 em{font-style:normal;color:var(--pop);}
  .hero p.lead{font-size:1.1rem;color:var(--slate);max-width:460px;margin-bottom:32px;}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:28px;}
  .btn-primary{background:var(--ink);color:var(--paper);padding:17px 34px;border-radius:100px;font-weight:700;font-size:1.02rem;transition:background .2s, transform .2s;display:inline-block;}
  .btn-primary:hover{background:var(--pop);transform:translateY(-1px);}
  .btn-secondary{padding:15px 28px;border-radius:100px;font-weight:700;font-size:0.95rem;border:1px solid var(--slate);color:var(--ink);transition:border-color .2s;}
  .btn-secondary:hover{border-color:var(--ink);}
  .hero-note{font-size:0.85rem;color:var(--slate);}

  /* phone stories mockup */
  .phone{
    width:260px;height:520px;margin-inline-start:auto;background:var(--ink);border-radius:34px;
    padding:10px;box-shadow:0 30px 60px -25px rgba(20,33,61,0.45);position:relative;
  }
  .phone-screen{
    width:100%;height:100%;border-radius:26px;overflow:hidden;position:relative;
    background:linear-gradient(160deg,#1D3A6E 0%, #14213D 55%, #0D1730 100%);
  }
  .story-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .3s ease;}
  .story-overlay{position:absolute;inset:0;background:linear-gradient(to top, rgba(13,23,48,0.9) 0%, rgba(13,23,48,0.15) 45%, rgba(13,23,48,0.35) 100%);}
  .story-bars{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:4px;z-index:3;}
  .story-bars .bar{flex:1;height:3px;background:rgba(255,255,255,0.3);border-radius:3px;overflow:hidden;}
  .story-bars .bar span{display:block;height:100%;background:var(--white);width:0%;}
  .story-bars .bar.done span{width:100%;}
  .story-bars .bar.active span{animation:fillBar 3.4s linear forwards;}
  @keyframes fillBar{from{width:0%;}to{width:100%;}}
  .story-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:22px 18px;color:var(--white);z-index:2;}
  .story-dest{font-family:'Rubik',sans-serif;font-weight:800;font-size:1.5rem;margin-bottom:4px;}
  .story-sub{font-size:0.82rem;color:rgba(255,255,255,0.75);margin-bottom:14px;}
  .story-tag{display:inline-flex;align-self:flex-start;background:rgba(255,255,255,0.14);backdrop-filter:blur(4px);padding:6px 12px;border-radius:100px;font-size:0.75rem;font-weight:600;}

  /* ---------- trust ---------- */
  .trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;}
  .trust-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;color:var(--slate);font-size:0.9rem;}
  .trust-row strong{color:var(--ink);font-family:'Rubik',sans-serif;font-size:1.35rem;font-weight:800;display:block;}

  /* ---------- sections ---------- */
  section.block{padding:72px 0;}
  .block.bordered{border-bottom:1px solid var(--line);}
  .tag-label{display:inline-flex;align-items:center;gap:8px;color:var(--mint);font-size:0.85rem;font-weight:700;margin-bottom:16px;}
  .tag-label::before{content:'●';font-size:0.6rem;}
  .section-head{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;margin-bottom:52px;}
  @media(max-width:800px){.section-head{grid-template-columns:1fr;gap:16px;}}
  .section-head h2{font-size:clamp(1.8rem,3.2vw,2.3rem);}
  .section-head p{color:var(--slate);font-size:1.02rem;align-self:end;}

  /* destinations - story bubbles */
  .bubble-row{display:flex;gap:22px;overflow-x:auto;padding-bottom:14px;margin-bottom:46px;scrollbar-width:thin;}
  .bubble{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;}
  .bubble-ring{width:78px;height:78px;border-radius:50%;padding:3px;background:conic-gradient(var(--pop), var(--mint), var(--pop));}
  .bubble-inner{width:100%;height:100%;border-radius:50%;background:var(--paper-deep);display:flex;align-items:center;justify-content:center;font-size:1.8rem;border:3px solid var(--paper);overflow:hidden;}
  .bubble-inner img{width:100%;height:100%;object-fit:cover;}
  .bubble span{font-size:0.82rem;font-weight:600;color:var(--slate);}

  .dest-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  @media(max-width:900px){.dest-cards{grid-template-columns:1fr 1fr;}}
  @media(max-width:600px){.dest-cards{grid-template-columns:1fr;}}
  .dest-card{background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .25s, box-shadow .25s;}
  .dest-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(20,33,61,0.3);}
  .dest-media{height:150px;display:flex;align-items:center;justify-content:center;font-size:3rem;position:relative;}
  .dest-body{padding:20px 20px 22px;}
  .dest-body .price{color:var(--pop);font-weight:700;font-size:0.9rem;}
  .dest-body h3{font-size:1.15rem;margin:6px 0 6px;}
  .dest-body p{color:var(--slate);font-size:0.88rem;}

  /* how it works - ticket stub steps */
  .steps{display:flex;flex-direction:column;}
  .step{display:grid;grid-template-columns:64px 1fr;gap:22px;padding:24px 0;position:relative;}
  .step:not(:last-child){border-bottom:1px dashed var(--line);}
  .step .num{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center;font-family:'Rubik',sans-serif;font-weight:800;font-size:0.95rem;}
  .step h3{font-size:1.1rem;margin-bottom:5px;}
  .step p{color:var(--slate);font-size:0.93rem;max-width:600px;}

  /* testimonial */
  .testimonial{background:var(--ink);color:var(--paper);padding:80px 0;}
  .testimonial blockquote{font-family:'Rubik',sans-serif;font-size:clamp(1.35rem,2.4vw,1.9rem);max-width:760px;line-height:1.45;font-weight:500;}
  .testimonial cite{display:block;margin-top:22px;color:#AEB6C9;font-size:0.95rem;font-style:normal;}

  /* contact */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
  @media(max-width:800px){.contact-grid{grid-template-columns:1fr;}}
  .field{margin-bottom:16px;}
  .field label{display:block;font-size:0.85rem;color:var(--slate);margin-bottom:6px;font-weight:500;}
  .field input,.field select,.field textarea{width:100%;background:var(--white);border:1px solid var(--line);padding:12px 14px;font-family:'Heebo',sans-serif;font-size:0.95rem;color:var(--ink);border-radius:10px;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--pop);}
  .submit-btn{background:var(--pop);color:var(--white);padding:14px 30px;border:none;border-radius:100px;font-weight:700;font-size:0.95rem;cursor:pointer;transition:background .2s;}
  .submit-btn:hover{background:var(--pop-deep);}
  .contact-info h3{font-size:1.4rem;margin-bottom:6px;}
  .contact-info{display:flex;flex-direction:column;gap:20px;}
  .contact-info .row{display:flex;flex-direction:column;gap:2px;}
  .contact-info .row span:first-child{color:var(--slate);font-size:0.85rem;}
  .contact-info .row span:last-child{font-size:1.02rem;font-weight:500;}

  footer{padding:30px 0;color:var(--slate);font-size:0.85rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}

  .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- sub-page header ---------- */
  .page-header{padding:150px 0 50px;border-bottom:1px solid var(--line);}
  .page-header h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:12px;}
  .page-header p{color:var(--slate);font-size:1.05rem;max-width:600px;}

  /* ---------- floating WhatsApp button ---------- */
  .whatsapp-float{
    position:fixed;bottom:24px;left:24px;z-index:200;
    width:58px;height:58px;border-radius:50%;
    background:#25D366;display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 24px -6px rgba(0,0,0,0.35);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .whatsapp-float:hover{transform:scale(1.08);box-shadow:0 10px 28px -6px rgba(0,0,0,0.45);}
  .whatsapp-float svg{width:30px;height:30px;fill:#FFFFFF;}
  @media(max-width:640px){.whatsapp-float{width:52px;height:52px;bottom:18px;left:18px;}.whatsapp-float svg{width:26px;height:26px;}}

  /* ---------- deal cards ---------- */
  .deal-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  @media(max-width:900px){.deal-cards{grid-template-columns:1fr 1fr;}}
  @media(max-width:600px){.deal-cards{grid-template-columns:1fr;}}
  .deal-card{background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .25s, box-shadow .25s;display:flex;flex-direction:column;}
  .deal-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(20,33,61,0.3);}
  .deal-media{height:150px;overflow:hidden;}
  .deal-media img{width:100%;height:100%;object-fit:cover;}
  .deal-body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1;}
  .deal-body h3{font-size:1.2rem;margin-bottom:8px;}
  .deal-meta{color:var(--slate);font-size:0.85rem;margin-bottom:8px;}
  .deal-icons{font-size:0.9rem;color:var(--ink);font-weight:600;margin-bottom:12px;}
  .deal-price{color:var(--pop);font-weight:800;font-family:'Rubik',sans-serif;font-size:1.15rem;margin-bottom:14px;}
  .deal-cta{
    margin-top:auto;background:#25D366;color:var(--white);text-align:center;padding:12px;border-radius:10px;
    font-weight:700;font-size:0.92rem;transition:background .2s;display:block;
  }
  .deal-cta:hover{background:#1EBE57;}

  /* ---------- value props ---------- */
  .value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
  @media(max-width:900px){.value-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:560px){.value-grid{grid-template-columns:1fr;}}
  .value-card{text-align:center;padding:8px 10px;}
  .value-icon{
    width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--paper);
    display:flex;align-items:center;justify-content:center;margin:0 auto 16px;
  }
  .value-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2;}
  .value-card h3{font-size:1.05rem;margin-bottom:8px;}
  .value-card p{color:var(--slate);font-size:0.88rem;line-height:1.6;}

  /* ---------- testimonials grid ---------- */
  .testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  @media(max-width:900px){.testi-grid{grid-template-columns:1fr;}}
  .testi-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:22px;}
  .testi-stars{color:#F5A623;font-size:0.95rem;margin-bottom:12px;}
  .testi-card p{color:var(--ink);font-size:0.93rem;line-height:1.65;margin-bottom:14px;}
  .testi-author{display:flex;align-items:center;gap:10px;}
  .testi-avatar{width:36px;height:36px;border-radius:50%;background:var(--pop);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.85rem;flex-shrink:0;}
  .testi-name{font-weight:700;font-size:0.88rem;}
  .testi-dest{color:var(--slate);font-size:0.8rem;}

  /* ---------- quick form ---------- */
  .quick-form{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:32px;max-width:820px;margin:0 auto;}
  .quick-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
  @media(max-width:700px){.quick-form-grid{grid-template-columns:1fr;}}
  .quick-form .submit-btn{width:100%;font-size:1.02rem;padding:16px;}


  /* ---------- TravelTok AI planner ---------- */
  .ai-planner-section{background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(255,255,255,0));}
  .ai-planner{max-width:860px;margin:0 auto;background:var(--white);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 24px 60px -45px rgba(20,33,61,.55);}
  .ai-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,92,92,.08);color:var(--pop-deep);border-radius:999px;padding:8px 12px;font-size:.84rem;font-weight:700;margin-bottom:14px;}
  .ai-dot{width:8px;height:8px;border-radius:50%;background:var(--pop);box-shadow:0 0 0 5px rgba(255,92,92,.12);}
  .ai-planner textarea{width:100%;resize:vertical;min-height:132px;border:1px solid var(--line);border-radius:16px;padding:16px;font:inherit;line-height:1.6;color:var(--ink);background:var(--paper);}
  .ai-planner textarea:focus{outline:none;border-color:var(--pop);box-shadow:0 0 0 3px rgba(255,92,92,.08);}
  .ai-suggestions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px;}
  .ai-suggestions button{border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:999px;padding:8px 12px;font:inherit;font-size:.82rem;cursor:pointer;}
  .ai-suggestions button:hover{border-color:var(--pop);}
  .ai-submit{width:100%;border:0;border-radius:999px;padding:15px 22px;background:var(--ink);color:#fff;font:inherit;font-weight:800;font-size:1rem;cursor:pointer;transition:transform .2s,opacity .2s;}
  .ai-submit:hover{transform:translateY(-1px);}.ai-submit:disabled{opacity:.55;cursor:wait;transform:none;}
  .ai-status{min-height:22px;text-align:center;color:var(--slate);font-size:.88rem;margin-top:10px;}
  .ai-result{margin-top:18px;border:1px solid var(--line);border-radius:18px;padding:22px;background:var(--paper);}
  .ai-result h3{font-size:1.35rem;margin-bottom:6px}.ai-result .ai-summary{color:var(--slate);line-height:1.65;margin-bottom:18px;}
  .ai-route{display:grid;gap:10px;margin:14px 0 18px}.ai-stop{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}.ai-stop strong{display:block;margin-bottom:3px}.ai-stop span{color:var(--slate);font-size:.88rem;line-height:1.5;}
  .ai-tips{margin:14px 0 18px;padding-right:18px}.ai-tips li{margin:6px 0;color:var(--slate);}
  .ai-whatsapp{display:block;text-align:center;background:#25D366;color:#fff;padding:13px 16px;border-radius:999px;font-weight:800;}
  .ai-disclaimer{color:var(--slate);font-size:.76rem;text-align:center;line-height:1.5;margin-top:14px;}
  @media(max-width:640px){.ai-planner{padding:20px 16px;border-radius:18px}.ai-suggestions{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.ai-suggestions button{white-space:nowrap;flex:0 0 auto}}
  .ai-questions{display:grid;gap:12px;margin:16px 0}.ai-questions label{display:grid;gap:6px;font-weight:700;font-size:.9rem}.ai-questions input,.ai-lead-grid input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;background:#fff;color:var(--ink)}
  .ai-continue{margin-top:8px}.ai-refine{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.ai-refine>span{display:block;font-weight:800;margin-bottom:10px}.ai-refine-buttons{display:flex;flex-wrap:wrap;gap:8px}.ai-refine-buttons button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;font:inherit;font-size:.82rem;cursor:pointer}.ai-refine-buttons button:hover{border-color:var(--pop)}
  .ai-lead-form{max-width:860px;margin:16px auto 0;background:var(--ink);color:#fff;border-radius:20px;padding:24px}.ai-lead-form h3{margin-bottom:6px}.ai-lead-form>p{opacity:.82;margin-bottom:14px;line-height:1.5}.ai-lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.ai-lead-form .ai-whatsapp{width:100%;border:0;font:inherit;cursor:pointer}.ai-lead-status{text-align:center;min-height:20px;margin-top:8px;font-size:.84rem;opacity:.85}@media(max-width:640px){.ai-lead-grid{grid-template-columns:1fr}.ai-refine-buttons{overflow-x:auto;flex-wrap:nowrap}.ai-refine-buttons button{white-space:nowrap;flex:0 0 auto}}
