
:root{
  --blue:#2E6BFF;          /* primary */
  --blue-dark:#1E4FD6;
  --navy:#0F1B3D;          /* deep headline/dark cards */
  --ink:#101828;
  --grey:#5B6474;
  --bg:#FFFFFF;
  --soft:#F5F8FE;          /* light section tint */
  --line:rgba(16,24,40,0.10);
  --orange:#FF9D42;        /* warm accent (stamps, highlights) */
  --gold:#F5B821;          /* stars */
  --green:#22A06B;
  --radius:18px;
  --shadow:0 18px 44px -18px rgba(16,24,40,0.18);
  /* legacy aliases used across pages */
  --teal-950:#0F1B3D;
  --teal-800:#2E6BFF;
  --teal-100:#E7EEFF;
  --sand:#F5F8FE;
  --coral:#2E6BFF;
  --coral-dark:#1E4FD6;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Plus Jakarta Sans','Work Sans',sans-serif; background:var(--bg); color:var(--ink); line-height:1.6; font-size:16px;}
h1,h2,h3,h4{font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; letter-spacing:-0.02em;}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:1140px; margin:0 auto; padding:0 20px;}

/* ---------- NAV ---------- */
nav{position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.92); backdrop-filter:blur(12px); border-bottom:1px solid var(--line);}
.nav-inner{display:flex; align-items:center; justify-content:space-between; height:70px;}
.logo{display:flex; align-items:center; gap:10px; text-decoration:none;}
.logo svg{width:34px; height:34px; flex-shrink:0;}
.logo .word{font-size:21px; font-weight:800; letter-spacing:-0.02em;}
.navlinks{display:flex; gap:28px; font-size:14.5px; align-items:center; font-weight:500;}
.navlinks a{text-decoration:none; color:#3A4356; transition:color .2s; padding:6px 0;}
.navlinks a:hover{color:var(--ink);}
.navlinks a.on{color:var(--blue);}
.navcta{background:var(--blue); color:#fff !important; padding:11px 22px; border-radius:12px; font-size:14px; font-weight:600; text-decoration:none;}
.navcta:hover{background:var(--blue-dark);}
.burger{display:none; background:none; border:none; cursor:pointer; padding:8px; flex-direction:column; gap:5px;}
.burger span{display:block; width:24px; height:2.5px; background:var(--ink); border-radius:2px;}
.mobile-menu{display:none; flex-direction:column; padding:8px 20px 22px; border-top:1px solid var(--line); background:#fff;}
.mobile-menu a{text-decoration:none; padding:13px 4px; font-size:16px; border-bottom:1px solid var(--line); font-weight:500;}
.mobile-menu a:last-child{border-bottom:none;}
.mobile-menu .navcta{text-align:center; margin-top:14px; padding:14px; border-radius:12px;}
.mobile-menu.open{display:flex;}

/* ---------- SHARED ---------- */
.eyebrow{font-size:12.5px; text-transform:uppercase; letter-spacing:.12em; color:var(--blue); font-weight:700; margin-bottom:14px; display:flex; align-items:center; gap:10px;}
.eyebrow::before{content:none;}
.eyebrow.center{justify-content:center;}
.section{padding:76px 0;}
.section.tint{background:var(--soft);}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(27px,4.5vw,38px); line-height:1.14; color:var(--navy);}
.section-head p{color:var(--grey); margin-top:14px; font-size:16.5px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head.center .eyebrow{justify-content:center;}
.btn{display:inline-block; text-decoration:none; border:none; cursor:pointer; font-family:inherit; font-weight:600; border-radius:12px; transition:transform .15s ease, background .2s, box-shadow .2s; text-align:center;}
.btn-primary{background:var(--blue); color:#fff; padding:15px 28px; font-size:15px; box-shadow:0 10px 24px -10px rgba(46,107,255,0.55);}
.btn-primary:hover{background:var(--blue-dark); transform:translateY(-1px);}
.btn-coral{background:var(--blue); color:#fff; padding:16px 30px; font-size:15.5px; box-shadow:0 12px 26px -10px rgba(46,107,255,0.55);}
.btn-coral:hover{background:var(--blue-dark); transform:translateY(-1px);}
.btn-ghost{padding:15px 24px; border:1.5px solid var(--line); color:var(--ink); background:#fff; font-size:15px;}
.btn-ghost:hover{border-color:var(--blue); color:var(--blue);}

/* ---------- HERO ---------- */
.hero{position:relative; padding:64px 0 84px; overflow:hidden;
  background:
    radial-gradient(ellipse 900px 480px at 100% -20%, rgba(46,107,255,0.10), transparent 60%),
    radial-gradient(ellipse 700px 480px at -10% 120%, rgba(255,157,66,0.10), transparent 60%),
    linear-gradient(180deg,#FFFFFF 0%, #F7FAFF 100%);
}
.hero-grid{display:grid; grid-template-columns:1fr 440px; gap:52px; align-items:start;}
.hero h1{font-size:clamp(36px,5.6vw,56px); line-height:1.05; margin-bottom:20px; color:var(--navy); font-weight:800;}
.hero h1 em{font-style:normal; color:var(--blue); position:relative; white-space:nowrap;}
.hero h1 em::after{content:''; position:absolute; left:0; right:0; bottom:-6px; height:8px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 7 Q 30 1 60 6 T 118 4' fill='none' stroke='%232E6BFF' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;}
.hero .lead{font-size:18px; color:#414B5F; max-width:500px; margin-bottom:12px;}
.hero .sub{font-size:15px; color:var(--grey); max-width:470px; margin-bottom:26px;}
.hero-proof{display:flex; align-items:center; gap:12px; font-size:13.5px; color:var(--grey); flex-wrap:wrap;}
.proof-dots{display:flex; flex-shrink:0;}
.proof-dots span{width:30px; height:30px; border-radius:50%; border:2px solid #fff; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700;}
.proof-dots span+span{margin-left:-9px;}
.stars{color:var(--gold); letter-spacing:1.5px;}
.trust-bullets{list-style:none; margin-top:20px;}
.trust-bullets li{display:flex; gap:11px; align-items:flex-start; font-size:14.5px; color:#414B5F; margin-bottom:11px;}
.trust-bullets .t{flex-shrink:0; width:20px; height:20px; border-radius:50%; background:var(--teal-100); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; margin-top:2px;}

/* ---------- REQUEST FORM CARD (white widget) ---------- */
.form-card{background:#fff; border:1px solid var(--line); border-radius:22px; padding:28px 26px; color:var(--ink); box-shadow:var(--shadow);}
.form-card h3{font-size:21px; margin-bottom:4px; color:var(--navy);}
.form-card .fc-sub{font-size:13.5px; color:var(--grey); margin-bottom:20px;}
.f-label{font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; color:#7A8296; margin:16px 0 9px; display:block; font-weight:700;}
.f-label:first-of-type{margin-top:0;}
.pill-row{display:flex; flex-wrap:wrap; gap:8px;}
.pill{padding:9px 15px; border-radius:100px; border:1px solid var(--line); background:#fff; color:#3A4356; font-size:13.5px; cursor:pointer; transition:all .15s; font-family:inherit; font-weight:500;}
.pill:hover{border-color:var(--blue); color:var(--blue);}
.pill.active{background:var(--blue); border-color:var(--blue); color:#fff;}
.form-card input[type=text], .form-card input[type=email], .form-card input[type=date], .form-card select{
  width:100%; background:#F7F9FD; border:1px solid var(--line);
  color:var(--ink); padding:13px 14px; border-radius:12px; font-size:15px; font-family:inherit;
}
.form-card input::placeholder{color:#9AA3B5;}
.frow{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
input[type=range]{width:100%; -webkit-appearance:none; appearance:none; height:5px; background:#E4EAF6; border-radius:3px; outline:none; margin-top:8px;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:22px; height:22px; border-radius:50%; background:var(--blue); cursor:pointer; border:3px solid #fff; box-shadow:0 2px 8px rgba(46,107,255,.5);}
.budget-readout{display:flex; justify-content:space-between; margin-top:9px; font-size:12.5px; color:var(--grey);}
.budget-readout strong{color:var(--blue); font-size:17px; font-weight:800;}
.form-card .btn-coral{width:100%; margin-top:22px;}
.f-fine{font-size:12.5px; color:var(--grey); margin-top:12px; text-align:center;}
.f-success{display:none; text-align:center; padding:30px 10px;}
.f-success.show{display:block;}
.f-success .big{font-size:42px; margin-bottom:12px;}
.f-success h4{font-size:20px; margin-bottom:8px; color:var(--blue);}
.f-success p{font-size:14.5px; color:var(--grey);}

/* ---------- CARDS & GRIDS ---------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center;}
.card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px 24px; transition:transform .15s ease, box-shadow .15s ease;}
.card.hover:hover{transform:translateY(-3px); box-shadow:var(--shadow);}
.card .fi{width:46px; height:46px; border-radius:14px; background:var(--teal-100); display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:14px;}
.card h3{font-size:17px; margin-bottom:8px; color:var(--navy);}
.card p{font-size:14px; color:var(--grey);}
.card.hl{border:1.5px solid var(--blue); box-shadow:0 14px 34px -18px rgba(46,107,255,0.4);}
.card.hl .fi{background:var(--blue);}
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; background:transparent; border:none; border-radius:0; overflow:visible;}
.step{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px;}
.step .num{width:36px; height:36px; border-radius:12px; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:800; margin-bottom:16px;}
.step h3{font-size:18px; margin-bottom:10px; color:var(--navy);}
.step p{font-size:14.5px; color:var(--grey);}

/* ---------- DESTINATION PHOTO CARDS ---------- */
.dest-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.dest-card{position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:3/3.6; display:flex; align-items:flex-end; text-decoration:none; box-shadow:0 14px 30px -16px rgba(16,24,40,.25); transition:transform .18s ease;}
.dest-card:hover{transform:translateY(-4px);}
.dest-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.dest-card::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,27,61,0) 40%, rgba(15,27,61,.82) 100%);}
.dest-tag{position:absolute; top:12px; right:12px; z-index:2; background:rgba(255,255,255,0.92); color:var(--navy); font-size:11.5px; font-weight:700; padding:5px 12px; border-radius:100px;}
.dest-info{position:relative; z-index:2; padding:18px; color:#fff; width:100%;}
.dest-info h3{font-size:18px; margin-bottom:3px; color:#fff;}
.dest-info .d-meta{font-size:12.5px; opacity:.85; display:flex; justify-content:space-between; align-items:center;}
.dest-info .d-meta .stars{font-size:12px;}

/* feature icon row */
.feat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.feat{display:flex; gap:14px; align-items:flex-start;}
.feat .ic{flex-shrink:0; width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:21px;}
.feat h4{font-size:15.5px; margin-bottom:4px; color:var(--navy);}
.feat p{font-size:13.5px; color:var(--grey);}
.ic.b1{background:#FFE9EC;} .ic.b2{background:#E4F5EC;} .ic.b3{background:#EFEAFE;} .ic.b4{background:#FFF3E0;}

/* trust strip */
.trust-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; background:var(--soft); border-radius:var(--radius); padding:26px 28px;}
.trust-strip .feat h4{font-size:14.5px;}
.trust-strip .feat p{font-size:12.5px;}

/* compare table */
.compare-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);}
.compare-row{display:grid; grid-template-columns:1fr 86px 86px; padding:15px 20px; font-size:14px; align-items:center; border-bottom:1px solid var(--line);}
.compare-row:last-child{border-bottom:none;}
.compare-row.head{background:var(--navy); color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.06em; font-weight:700;}
.compare-row .yes{color:var(--green); font-weight:800; text-align:center;}
.compare-row .no{color:#C2C9D6; text-align:center;}

/* plan doc peek */
.plan-doc{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow); position:relative;}
.plan-doc h4{font-size:18px; margin-bottom:4px; color:var(--navy);}
.plan-doc .doc-sub{font-size:12.5px; color:#8A93A6; margin-bottom:16px;}
.doc-line{display:flex; justify-content:space-between; font-size:13.5px; padding:9px 0; border-bottom:1px dashed var(--line); gap:12px;}
.doc-line strong{white-space:nowrap; font-weight:700;}
.doc-line.total{border-bottom:none; padding-top:13px;}
.doc-line.total strong{color:var(--blue); font-size:15.5px;}
.doc-flag{margin-top:16px; background:#FFF4EA; border-left:3px solid var(--orange); padding:11px 13px; font-size:13px; color:#8A5A2B; border-radius:0 10px 10px 0;}
.stamp{position:absolute; top:-18px; right:-12px; width:72px; height:72px; border-radius:50%; background:#fff; border:2px dashed var(--orange); display:flex; align-items:center; justify-content:center; transform:rotate(-12deg); font-size:9.5px; text-align:center; line-height:1.25; color:var(--orange); font-weight:800; text-transform:uppercase; letter-spacing:.04em; z-index:2;}

/* pricing */
.price-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch;}
.price-card{background:#fff; border:1px solid var(--line); border-radius:20px; padding:34px 28px; display:flex; flex-direction:column;}
.price-card.featured{border:2px solid var(--blue); position:relative; box-shadow:var(--shadow);}
.best-tag{position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--blue); color:#fff; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:5px 14px; border-radius:100px; white-space:nowrap;}
.price-card h3{font-size:20px; margin-bottom:5px; color:var(--navy);}
.price-card .for{font-size:13px; color:var(--grey); margin-bottom:18px;}
.price{font-size:42px; margin-bottom:20px; font-weight:800; color:var(--navy);}
.price small{font-size:14px; color:var(--grey); font-weight:500;}
.price-feats{list-style:none; margin-bottom:26px; flex:1;}
.price-feats li{font-size:14px; color:#414B5F; padding:7px 0 7px 26px; position:relative;}
.price-feats li::before{content:'✓'; position:absolute; left:0; color:var(--green); font-weight:800;}

/* reviews */
.review-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px;}
.review-stars{color:var(--gold); font-size:14px; margin-bottom:13px; letter-spacing:2px;}
.review-quote{font-size:16px; line-height:1.6; margin-bottom:20px; color:#2A3346; font-weight:500;}
.review-who{display:flex; align-items:center; gap:12px;}
.avatar{width:38px; height:38px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; flex-shrink:0;}
.who-meta{font-size:13px; color:var(--grey);}
.who-meta strong{display:block; color:var(--ink); font-size:14px; font-weight:700;}
.verified-tag{display:inline-flex; align-items:center; gap:6px; font-size:11px; color:var(--green); margin-top:11px; font-weight:700;}
.verified-tag::before{content:'✓'; width:14px; height:14px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; font-size:8px;}

/* white-page inputs */
.input-w{width:100%; background:#F7F9FD; border:1px solid var(--line); color:var(--ink); padding:14px 15px; border-radius:12px; font-size:15px; font-family:inherit;}
textarea.input-w{resize:vertical;}

/* faq */
details{border:1px solid var(--line); border-radius:14px; padding:18px 22px; margin-bottom:12px; background:#fff;}
details summary{font-size:16.5px; font-weight:700; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:14px; color:var(--navy);}
details summary::-webkit-details-marker{display:none;}
details summary::after{content:'+'; font-size:22px; color:var(--blue); font-weight:400; transition:transform .2s; flex-shrink:0;}
details[open] summary::after{transform:rotate(45deg);}
details p{margin-top:12px; font-size:15px; color:#414B5F; max-width:640px;}

/* roadmap */
.roadmap{margin-top:48px; background:var(--soft); border:1px dashed rgba(46,107,255,.4); border-radius:18px; padding:30px;}
.roadmap h3{font-size:19px; margin-bottom:5px; color:var(--navy);}
.roadmap .rm-sub{font-size:13.5px; color:var(--grey); margin-bottom:18px;}
.rm-pills{display:flex; flex-wrap:wrap; gap:9px;}
.rm-pill{font-size:13px; padding:8px 15px; border-radius:100px; background:#fff; border:1px solid var(--line); color:#414B5F; font-weight:500;}
.rm-pill span{color:var(--blue); margin-right:6px; font-weight:700;}

/* final CTA */
.final-cta{background:linear-gradient(135deg, var(--blue) 0%, #1E3FA8 100%); border-radius:24px; padding:56px 40px; text-align:center; color:#fff;}
.final-cta h2{font-size:clamp(26px,4.5vw,38px); margin-bottom:14px;}
.final-cta h2 em{font-style:normal; color:#FFD98A;}
.final-cta p{font-size:16px; opacity:.85; max-width:460px; margin:0 auto 28px;}
.final-cta .btn-coral{background:#fff; color:var(--blue); box-shadow:none;}
.final-cta .btn-coral:hover{background:#EFF4FF;}

/* page hero (inner pages) */
.page-hero{padding:56px 0 48px; background:linear-gradient(180deg, var(--soft) 0%, #fff 100%);}
.page-hero h1{font-size:clamp(30px,5vw,44px); line-height:1.1; max-width:680px; color:var(--navy); font-weight:800;}
.page-hero p{color:var(--grey); font-size:17px; margin-top:14px; max-width:580px;}

/* footer */
footer{background:var(--navy); color:#E8EDF9; padding:52px 0 30px;}
.footer-grid{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:30px; margin-bottom:38px;}
footer .logo .word{color:#fff;}
.footer-cols{display:flex; gap:56px; flex-wrap:wrap;}
.footer-col h5{font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; opacity:.55; margin-bottom:13px;}
.footer-col a{display:block; font-size:14px; margin-bottom:10px; text-decoration:none; opacity:.85;}
.footer-bottom{border-top:1px solid rgba(232,237,249,0.14); padding-top:24px; font-size:13px; opacity:.55;}

/* ---------- MOBILE ---------- */
@media (max-width:920px){
  .navlinks{display:none;}
  .burger{display:flex;}
  .hero-grid{grid-template-columns:1fr; gap:36px;}
  .form-card{padding:24px 20px;}
  .grid-3, .price-grid, .steps{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr; gap:32px;}
  .frow{grid-template-columns:1fr;}
  .section{padding:56px 0;}
  .final-cta{padding:44px 22px;}
  .compare-row{grid-template-columns:1fr 62px 62px; padding:13px 14px; font-size:13px;}
  .stamp{right:-6px;}
  .dest-grid{grid-template-columns:1fr 1fr;}
  .feat-row, .trust-strip{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .grid-3{grid-template-columns:1fr;}
  .hero{padding:44px 0 56px;}
  .dest-grid{grid-template-columns:1fr 1fr;}
  .feat-row, .trust-strip{grid-template-columns:1fr;}
}
@media (min-width:561px) and (max-width:920px){
  .grid-3{grid-template-columns:1fr 1fr;}
}

/* ---------- TRIP PLAN PAGE ---------- */
.plan-layout{display:grid; grid-template-columns:1fr 340px; gap:24px; align-items:start; padding:28px 0 60px;}
.plan-head{display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; margin-bottom:20px;}
.plan-head h1{font-size:clamp(24px,4vw,34px); color:var(--navy); font-weight:800;}
.plan-meta{display:flex; gap:18px; flex-wrap:wrap; margin-top:10px; font-size:14px; color:var(--grey);}
.plan-meta span{display:flex; align-items:center; gap:7px;}
.plan-desc{margin-top:12px; color:#414B5F; font-size:15px; max-width:560px;}
.plan-cover{border-radius:var(--radius); overflow:hidden; aspect-ratio:16/6; background:linear-gradient(160deg,#2E6BFF,#7FC8F8); margin-bottom:22px; position:relative;}
.plan-cover img{width:100%; height:100%; object-fit:cover;}
.tabs{display:flex; gap:4px; border-bottom:2px solid var(--line); margin-bottom:22px; overflow-x:auto;}
.tab{padding:12px 18px; font-size:14.5px; font-weight:600; color:var(--grey); background:none; border:none; cursor:pointer; border-bottom:2.5px solid transparent; margin-bottom:-2px; white-space:nowrap; font-family:inherit;}
.tab.on{color:var(--blue); border-bottom-color:var(--blue);}
.tabpane{display:none;}
.tabpane.on{display:block;}
.day-block{display:grid; grid-template-columns:74px 1fr; gap:16px; margin-bottom:18px;}
.day-rail{text-align:center;}
.day-dot{width:44px; height:44px; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-size:17px; margin:0 auto 6px; font-weight:700;}
.day-rail .dl{font-size:12.5px; font-weight:700; color:var(--navy);}
.day-rail .dd{font-size:11.5px; color:var(--grey);}
.day-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px;}
.day-card h3{font-size:17.5px; color:var(--navy); display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.day-card h3 .wx{font-size:12.5px; font-weight:600; color:var(--grey); background:var(--soft); padding:4px 10px; border-radius:100px;}
.acts{display:flex; flex-wrap:wrap; gap:10px 6px; margin-top:16px; align-items:center;}
.act{display:flex; gap:10px; align-items:center; background:var(--soft); border-radius:12px; padding:9px 13px;}
.act .ai{font-size:16px;}
.act .at{font-size:11px; color:var(--grey); font-weight:700;}
.act .al{font-size:13px; color:var(--ink); font-weight:600; line-height:1.3;}
.act .as{font-size:11.5px; color:var(--grey);}
.arrow{color:#C2C9D6; font-size:14px;}
.sideb{position:sticky; top:86px; display:flex; flex-direction:column; gap:18px;}
.sum-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow);}
.sum-card h4{font-size:16.5px; color:var(--navy); display:flex; justify-content:space-between; align-items:center;}
.on-budget{font-size:11px; font-weight:700; background:#E4F5EC; color:var(--green); padding:4px 10px; border-radius:100px;}
.total-cost{margin:14px 0 4px; font-size:30px; font-weight:800; color:var(--navy);}
.pp{font-size:12.5px; color:var(--grey); margin-bottom:16px;}
.cost-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.cost-cell{background:var(--soft); border-radius:12px; padding:12px 13px;}
.cost-cell .cl{font-size:11.5px; color:var(--grey); display:flex; gap:6px; align-items:center;}
.cost-cell .cv{font-size:14.5px; font-weight:700; color:var(--navy); margin-top:2px;}
.budget-note{display:flex; gap:12px; background:#E9F8F0; border-radius:14px; padding:14px 16px; align-items:flex-start;}
.budget-note .bi{width:26px; height:26px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; flex-shrink:0;}
.budget-note b{color:var(--green); font-size:13.5px;}
.budget-note p{font-size:12.5px; color:#3E5C4C;}
.qa-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.qa-btn{display:flex; gap:8px; align-items:center; justify-content:center; background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px; font-size:13px; font-weight:600; color:var(--ink); text-decoration:none; cursor:pointer; font-family:inherit;}
.qa-btn:hover{border-color:var(--blue); color:var(--blue);}
.stay-card{display:flex; gap:14px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:16px; margin-bottom:12px; align-items:center;}
.stay-thumb{width:86px; height:70px; border-radius:12px; background:linear-gradient(150deg,#2E6BFF,#8FD0F8); flex-shrink:0; overflow:hidden;}
.stay-thumb img{width:100%; height:100%; object-fit:cover;}
.stay-card h5{font-size:15px; color:var(--navy);}
.stay-card .sm{font-size:12.5px; color:var(--grey); margin-top:2px;}
.vtag{display:inline-flex; align-items:center; gap:5px; font-size:11px; color:var(--green); font-weight:700; margin-top:6px;}
.vtag::before{content:'✓'; width:13px; height:13px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; font-size:8px;}
.budget-rows .doc-line{font-size:14px;}
/* chat widget */
.chat-fab{position:fixed; right:18px; bottom:18px; z-index:200; width:58px; height:58px; border-radius:50%; background:var(--blue); color:#fff; border:none; font-size:24px; cursor:pointer; box-shadow:0 14px 30px -8px rgba(46,107,255,.6);}
.chat-panel{position:fixed; right:18px; bottom:86px; z-index:200; width:min(370px, calc(100vw - 36px)); height:480px; max-height:70vh; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 30px 70px -20px rgba(16,24,40,.4); display:none; flex-direction:column; overflow:hidden;}
.chat-panel.open{display:flex;}
.chat-head{background:var(--blue); color:#fff; padding:14px 16px;}
.chat-head h5{font-size:15px;}
.chat-head p{font-size:11.5px; opacity:.85;}
.chat-msgs{flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px;}
.msg{max-width:85%; padding:10px 13px; border-radius:14px; font-size:13.5px; line-height:1.5;}
.msg.bot{background:var(--soft); color:var(--ink); align-self:flex-start; border-bottom-left-radius:4px;}
.msg.me{background:var(--blue); color:#fff; align-self:flex-end; border-bottom-right-radius:4px;}
.chat-input{display:flex; gap:8px; padding:12px; border-top:1px solid var(--line);}
.chat-input input{flex:1; border:1px solid var(--line); border-radius:100px; padding:11px 15px; font-size:13.5px; font-family:inherit; background:#F7F9FD;}
.chat-input button{background:var(--blue); color:#fff; border:none; border-radius:50%; width:40px; height:40px; cursor:pointer; font-size:15px;}
@media (max-width:920px){
  .plan-layout{grid-template-columns:1fr;}
  .sideb{position:static;}
  .day-block{grid-template-columns:56px 1fr;}
  .plan-cover{aspect-ratio:16/9;}
}
