:root{--p:#ed5a0b;--p2:#c94a05;--pt:#fff1ea;--ink:#13203a;--ink2:#1f3257;--bg:#f6f7fa;--card:#fff;--tx:#1b2433;--mut:#6a7487;--bd:#e4e7ee;--ok:#12803c;--warn:#b26a00;--err:#b42318;--r:14px;--sh:0 6px 24px rgba(19,32,58,.08)}
*{box-sizing:border-box}
body{margin:0;font-family:'Vazirmatn',Tahoma,Arial,sans-serif;background:var(--bg);color:var(--tx);line-height:1.8}
a{color:var(--p2);text-decoration:none}
.ico{vertical-align:-4px;flex:none}
.wrap{max-width:1140px;margin:0 auto;padding:0 18px}
main.wrap{padding-top:22px;padding-bottom:50px;min-height:60vh}
body.home main.wrap{padding-top:0}

/* header */
.top{background:#fff;border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:20}
.nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:10px;padding-bottom:10px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;font-size:20px}
.logo-mark{display:inline-flex;width:34px;height:34px;border-radius:10px;background:var(--p);color:#fff;align-items:center;justify-content:center}
.links{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.links a{color:var(--tx);font-size:14px;padding:5px 12px;border-radius:20px}
.links a:hover{background:var(--pt);color:var(--p2)}
.links a.btn{color:#fff}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--p);color:#fff!important;border:0;border-radius:10px;padding:9px 20px;font:inherit;font-weight:700;cursor:pointer;transition:.15s}
.btn:hover{background:var(--p2);transform:translateY(-1px)}
.btn.small{padding:3px 14px;font-size:13px;border-radius:8px}
.btn.big{padding:12px 28px;font-size:16px}
.btn.danger{background:var(--err)}
.btn.ghost{background:#eef0f5;color:var(--ink)!important}.btn.ghost:hover{background:#e1e5ee}
.btn.light{background:#fff;color:var(--p2)!important}.btn.light:hover{background:var(--pt)}
.btn.outline{background:transparent;border:2px solid #ffffff80;color:#fff!important}.btn.outline:hover{background:#ffffff1f}

/* cards & layout */
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:20px;margin-bottom:16px;box-shadow:var(--sh)}
.card.center,.center{text-align:center}.narrow{max-width:440px;margin:24px auto}.narrow-l{max-width:560px}
.row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.grow{flex:1;min-width:220px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid2>.card,.grid3>.card{margin:0}
.sec{margin:44px 0 16px;font-size:22px;color:var(--ink)}
.sec small{display:inline;font-size:14px;margin-right:8px}
h1,h2,h3{color:var(--ink)}

/* forms */
input,select,textarea{font:inherit;padding:10px 12px;border:1px solid #cdd3df;border-radius:10px;background:#fff;color:var(--tx);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid #ed5a0b55;border-color:var(--p)}
input[type=checkbox]{width:auto}
.form label{display:block;font-size:14px;margin:10px 0 2px;color:#34415a}
.form fieldset{border:1px solid var(--bd);border-radius:12px;margin:14px 0;padding:6px 16px 14px}
.form legend{font-weight:700;padding:0 8px;color:var(--ink)}
.chk{display:flex!important;gap:8px;align-items:center}
.inline{display:inline-flex;gap:8px;align-items:flex-end}.inline input{width:90px}
.search{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.search label{display:flex;flex-direction:column;font-size:13px;color:var(--mut);flex:1;min-width:140px;gap:2px}

/* misc */
.price{font-size:20px;font-weight:700;color:var(--p2)}.muted,small{color:var(--mut)}small{display:block}
.buy{text-align:center;min-width:170px}.buy .btn{margin-top:8px}
.stars{color:#e69500;font-size:14px}
.code{background:var(--pt);color:var(--p2);padding:1px 12px;border-radius:6px;direction:ltr;display:inline-block;font-weight:700;letter-spacing:.5px}
.badge{display:inline-block;padding:1px 10px;border-radius:12px;font-size:12px;font-weight:700}
.badge.ok{background:#e1f5e8;color:var(--ok)}.badge.warn{background:#fff1d6;color:var(--warn)}.badge.err{background:#fde7e5;color:var(--err)}
.alert{padding:11px 16px;border-radius:10px;margin-bottom:14px}
.alert.ok{background:#e1f5e8;color:var(--ok)}.alert.err{background:#fde7e5;color:var(--err)}.alert.warn{background:#fff1d6;color:var(--warn)}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:9px 10px;text-align:right;border-bottom:1px solid var(--bd)}th{background:#f7f8fb;color:#34415a}
.tablewrap{overflow-x:auto;padding:6px}
.bill{max-width:420px}.bill td:last-child{text-align:left;font-weight:700}.bill .tot td{border-top:2px solid var(--p);font-size:16px}
.steps{list-style:none;padding:0;display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.steps li{flex:1;min-width:110px;text-align:center;padding:8px 4px;border-radius:8px;background:#eef0f5;color:var(--mut);font-size:13px}
.steps li.done{background:#d9f2e1;color:var(--ok)}.steps li.done:before{content:'✔ '}.steps li.now{background:var(--p);color:#fff;font-weight:700}
.sum{background:var(--pt);border-radius:10px;padding:10px 14px;margin:14px 0}
.actions{display:flex;gap:10px;margin:10px 0}
.mini{display:flex;flex-direction:column;gap:2px;color:var(--tx)}.mini:hover{border-color:var(--p)}
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.subnav a{padding:5px 16px;border-radius:20px;background:#eceff5;color:var(--ink);font-size:14px}.subnav a.on{background:var(--p);color:#fff}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat{text-align:center;margin:0}.stat b{display:block;font-size:22px;color:var(--p2)}
.pager{display:flex;gap:6px;flex-wrap:wrap}.pager a{padding:3px 12px;border-radius:6px;background:#eceff5}.pager a.on{background:var(--p);color:#fff}
[hidden]{display:none!important}

/* ===== home ===== */
.hero2{background:radial-gradient(900px 400px at 85% -10%,#ed5a0b55,transparent 60%),linear-gradient(160deg,#0e1830,#1b2d52);color:#fff;border-radius:0 0 32px 32px;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:56px 0 120px}
body.home{overflow-x:hidden}
.hero2-in{max-width:1140px;margin:auto;padding:0 18px}
.pill{display:inline-flex;align-items:center;gap:6px;background:#ffffff1f;border-radius:30px;padding:4px 16px;font-size:13px}
.hero2 h1{color:#fff;font-size:44px;line-height:1.45;margin:14px 0 8px;max-width:640px}
.hero2 h1 em{font-style:normal;color:var(--p)}
.hero2 p{max-width:560px;color:#cfd8ea;font-size:17px;margin:0 0 22px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.hero-points{display:flex;gap:22px;flex-wrap:wrap;list-style:none;padding:0;margin:0;color:#cfd8ea;font-size:14px}
.hero-points .ico{color:var(--p)}
.searchbox{background:#fff;border:1px solid var(--bd);border-radius:20px;box-shadow:0 20px 50px rgba(19,32,58,.18);padding:18px;margin:-78px auto 0;max-width:1000px;position:relative;z-index:3}
.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.tabs button{display:inline-flex;align-items:center;gap:8px;background:#f1f3f8;color:var(--ink);border:0;border-radius:30px;padding:8px 20px;font:inherit;font-weight:700;cursor:pointer}
.tabs button.on{background:var(--p);color:#fff}
.searchbox .search .btn{height:46px}
.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:26px 0 0}
.trust div{text-align:center;padding:8px}.trust b{display:block;font-size:28px;color:var(--ink)}.trust span{font-size:13px;color:var(--mut)}
.dests{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.dest{position:relative;height:130px;border-radius:16px;color:#fff;padding:16px;display:flex;flex-direction:column;justify-content:flex-end;font-weight:700;font-size:19px;overflow:hidden;transition:.2s}
.dest:after{content:'';position:absolute;width:120px;height:120px;border-radius:50%;background:#ffffff14;top:-40px;left:-30px}
.dest:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(19,32,58,.2)}
.dest small{font-weight:400;font-size:12px;color:#ffffffd0}
.d0,.d4{background:linear-gradient(150deg,#13203a,#2c4a86)}.d1,.d5{background:linear-gradient(150deg,#c94a05,#ed5a0b 60%,#ff9a52)}
.d2,.d6{background:linear-gradient(150deg,#1f3257,#3d5f9c)}.d3,.d7{background:linear-gradient(150deg,#ed5a0b,#f58a3c)}
.coupon{position:relative;border-radius:16px;background:#fff;border:1px solid var(--bd);border-right:6px solid var(--p);padding:18px 20px;box-shadow:var(--sh)}
.coupon h3{margin:0 0 4px}.coupon .off{font-size:26px;font-weight:700;color:var(--p2)}
.trip{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--bd);border-radius:14px;padding:14px 16px;color:var(--tx);box-shadow:var(--sh);transition:.15s}
.trip:hover{border-color:var(--p);transform:translateY(-2px)}
.trip .tic{width:44px;height:44px;border-radius:12px;background:var(--pt);color:var(--p);display:flex;align-items:center;justify-content:center;flex:none}
.trip .tt{flex:1;min-width:0}.trip .tt b{display:block;color:var(--ink)}.trip .tt span{font-size:13px;color:var(--mut)}
.trip .pr{font-weight:700;color:var(--p2);white-space:nowrap}
.how{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;position:relative}
.how div{background:#fff;border:1px solid var(--bd);border-radius:16px;padding:20px 16px;text-align:center;box-shadow:var(--sh)}
.how i{display:inline-flex;width:42px;height:42px;border-radius:50%;background:var(--p);color:#fff;align-items:center;justify-content:center;font-style:normal;font-weight:700;margin-bottom:8px;box-shadow:0 0 0 6px var(--pt)}
.how b{display:block;color:var(--ink)}.how span{font-size:13px;color:var(--mut)}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
.feat{text-align:center;margin:0}
.feat .fi{display:inline-flex;width:54px;height:54px;border-radius:16px;background:var(--pt);color:var(--p);align-items:center;justify-content:center;margin-bottom:6px}
.feat h3{margin:4px 0}.feat p{margin:0;color:var(--mut);font-size:14px}
.faq details{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:12px 18px;margin-bottom:10px}
.faq summary{cursor:pointer;font-weight:700;color:var(--ink)}.faq p{margin:8px 0 2px;color:var(--mut)}
.cta{background:linear-gradient(135deg,#c94a05,#ed5a0b 55%,#ff8a3d);color:#fff;border-radius:22px;text-align:center;padding:38px 18px;margin-top:50px;position:relative;overflow:hidden}
.cta:before{content:'';position:absolute;width:260px;height:260px;border-radius:50%;background:#ffffff1a;top:-110px;right:-60px}
.cta h2{color:#fff;margin:0 0 4px;font-size:26px}.cta p{margin:0 0 16px;color:#ffe9dc}

/* footer */
.foot{background:var(--ink);color:#b9c4db;padding:40px 0 10px;font-size:14px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1.4fr;gap:30px}
.fgrid b{display:block;color:#fff;margin-bottom:6px}.fgrid a,.fgrid span{display:block;color:#b9c4db;margin-bottom:2px}.fgrid a:hover{color:#fff}
.flogo{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:20px;margin-bottom:6px}
.foot .copy{text-align:center;margin-top:26px;padding-top:14px;border-top:1px solid #ffffff1a;font-size:12px;color:#8e9bb8}

@media(max-width:860px){.grid2,.grid3,.features,.fgrid{grid-template-columns:1fr}.dests,.how,.trust{grid-template-columns:repeat(2,1fr)}.hero2 h1{font-size:30px}.hero2{padding-bottom:110px}.buy{width:100%}}
@media print{.top,.foot,.no-print,.alert{display:none!important}body{background:#fff}.card{border:1px solid #999;box-shadow:none}}

/* ===== tickets: exact 3in x 5in ===== */
.tk-wrap{margin:8px 0 18px}
.tk-sheet{display:flex;flex-wrap:wrap;gap:18px}
.tk{width:3in;height:5in;background:#fff;border:1px solid #d5d9e2;border-radius:.12in;box-shadow:var(--sh);display:flex;flex-direction:column;overflow:hidden;position:relative;color:#13203a;font-size:10px;line-height:1.5;break-after:page;page-break-after:always;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.tk:last-child{break-after:auto;page-break-after:auto}
.tk-h{background:var(--p);color:#fff;padding:0 .16in;display:flex;justify-content:space-between;align-items:center;height:.5in;flex:none}
.tk-h b{font-size:14px}.tk-h span{font-size:11px;display:flex;gap:5px;align-items:center}
.tk-route{padding:.12in .16in .06in;display:flex;justify-content:space-between;align-items:center;flex:none;min-height:.78in}
.tk-route>div{flex:1;text-align:center}.tk-route small{display:block;font-size:9px;color:#6a7487;line-height:1.2}
.tk-route strong{display:block;font-size:19px;line-height:1.3;color:#13203a}.tk-route em{font-style:normal;font-size:11px;color:#6a7487}
.tk-route .ar{flex:none;width:.4in;color:var(--p);display:flex;justify-content:center}
.tk-route.one strong{font-size:16px}
.tk-grid{display:grid;grid-template-columns:1fr 1fr;gap:.07in .1in;padding:.08in .16in;flex:1;align-content:start;overflow:hidden}
.tk-grid>div{min-width:0}.tk-grid small{display:block;font-size:8.5px;color:#6a7487;line-height:1.2}
.tk-grid b{display:block;font-size:11px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-grid .full{grid-column:1/-1}
.tk-cut{position:relative;border-top:2px dashed #cfd5e1;margin:.04in .1in;flex:none}
.tk-cut:before,.tk-cut:after{content:'';position:absolute;top:-.1in;width:.18in;height:.18in;border-radius:50%;background:#f6f7fa;border:1px solid #d5d9e2}
.tk-cut:before{right:-.2in}.tk-cut:after{left:-.2in}
.tk-qr{display:flex;align-items:center;gap:.12in;padding:.06in .16in;flex:none;height:1.5in}
.tk-qr .qr{width:1.2in;height:1.2in;flex:none;padding:.05in;border:1px solid #e4e7ee;border-radius:.06in;display:flex;align-items:center;justify-content:center;background:#fff}
.tk-qr .qr img,.tk-qr .qr canvas{width:100%!important;height:100%!important}
.tk-ref{flex:1;min-width:0}.tk-ref small{display:block;font-size:8.5px;color:#6a7487;line-height:1.3}
.tk-ref b{display:block;font-size:17px;letter-spacing:1px;color:var(--p2);direction:ltr;text-align:right}
.tk-ref .ok{display:inline-block;margin:3px 0;font-weight:700;color:var(--ok);font-size:10px}
.tk-f{flex:none;text-align:center;font-size:9px;color:#6a7487;padding:0 .1in .08in}

@media print{
  body.print-tickets main.wrap{padding:0;margin:0;max-width:none;min-height:0}
  body.print-tickets main>*:not(.tk-wrap){display:none!important}
  body.print-tickets .tk-head{display:none}
  body.print-tickets .tk-wrap,body.print-tickets .tk-sheet{display:block;margin:0;gap:0}
  body.print-tickets .tk{border:0;border-radius:0;box-shadow:none;margin:0}
  body.print-tickets .tk-cut:before,body.print-tickets .tk-cut:after{background:#fff}
  body:not(.print-tickets) .tk-wrap{display:none!important}
}

/* ===== invoice print: fit any paper, including 3x5in label paper ===== */
@media print{
  @page{margin:5mm}
  body{font-size:11px;line-height:1.55;background:#fff}
  body:not(.print-tickets) main.wrap{padding:0;max-width:none;min-height:0}
  body:not(.print-tickets) .card{border:0;box-shadow:none;padding:0;margin:0 0 10px;border-radius:0;background:#fff}
  body:not(.print-tickets) .row{display:block}
  body:not(.print-tickets) .grow{min-width:0}
  body:not(.print-tickets) h2{font-size:16px;margin:0 0 2px}
  body:not(.print-tickets) h3{font-size:13px}
  body:not(.print-tickets) h4{font-size:12px;margin:8px 0 2px}
  body:not(.print-tickets) table{font-size:10px}
  body:not(.print-tickets) th,body:not(.print-tickets) td{padding:2px 3px;word-break:break-word}
  body:not(.print-tickets) .steps li{min-width:0;font-size:9px;padding:3px 2px}
  body:not(.print-tickets) .badge{font-size:10px}
}
@media print and (max-width:4.3in){
  body:not(.print-tickets) table,body:not(.print-tickets) tbody,body:not(.print-tickets) tr,body:not(.print-tickets) td,body:not(.print-tickets) th{display:block;width:100%}
  body:not(.print-tickets) th{display:none}
  body:not(.print-tickets) tr{border-bottom:1px solid #ccc;margin-bottom:3px;padding-bottom:2px}
  body:not(.print-tickets) td{border:0}
  body:not(.print-tickets) .bill{max-width:none}
  body:not(.print-tickets) .bill tr{display:flex;justify-content:space-between}
  body:not(.print-tickets) .bill td{width:auto;display:inline}
  body:not(.print-tickets) .steps{display:block}
  body:not(.print-tickets) .steps li{display:block;text-align:right;margin-bottom:2px}
}

/* ===== partner block (companies) ===== */
.partner{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--bd);border-right:6px solid var(--p);border-radius:16px;padding:22px;margin-top:40px;box-shadow:var(--sh)}
.partner h3{margin:0 0 4px}.partner p{margin:0;color:var(--mut)}

/* =====================================================================
   v7 — responsive on every device + page UI polish
   ===================================================================== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
img,svg,video,canvas{max-width:100%}
.top{padding-top:env(safe-area-inset-top)}
.wrap{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
.skip{position:absolute;inset-inline-start:12px;top:-70px;background:var(--ink);color:#fff;padding:8px 16px;border-radius:0 0 10px 10px;z-index:100}
.skip:focus{top:0}
:focus-visible{outline:3px solid #ffb48a;outline-offset:2px}
.links a.on:not(.btn){color:var(--p2);background:var(--pt);font-weight:700}
.menu-btn{display:none;background:#fff;border:1px solid var(--bd);border-radius:12px;width:44px;height:44px;align-items:center;justify-content:center;color:var(--ink);cursor:pointer}
.bnav{display:none}
#pwa-install{margin-top:10px}
#ios-hint{display:block;margin-top:8px;color:#c8d6e8;font-size:12px}

/* page header, breadcrumbs, filter bar */
.crumbs{font-size:13px;color:var(--mut);margin:0 0 4px}.crumbs a{color:var(--mut)}.crumbs a:hover{color:var(--p)}.crumbs span{margin:0 4px;opacity:.55}
.pg-h{display:flex;align-items:center;gap:10px;font-size:clamp(20px,3.6vw,30px);line-height:1.4;margin:6px 0 14px;color:var(--ink)}
.pg-h .ico{color:var(--p);flex:none}
.fbar{border-radius:16px;box-shadow:var(--sh);padding:14px 16px}
.fbar .btn{height:46px}
.res-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 2px 12px}
.sorts{display:flex;gap:6px}
.sorts a{padding:5px 14px;border-radius:20px;background:#fff;border:1px solid var(--bd);font-size:13px;color:var(--tx)}
.sorts a.on{background:var(--p);border-color:var(--p);color:#fff}
.empty{padding:38px 18px}.empty-i{color:#f0b99a;margin-bottom:6px}.empty h3{margin:0 0 4px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips a{display:inline-flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--bd);border-radius:24px;padding:7px 15px;font-size:14px;color:var(--tx)}
.chips a:hover{border-color:var(--p);color:var(--p2);background:var(--pt)}
.seo-text{margin-top:22px}.seo-text h2{font-size:18px;margin:0 0 6px}.seo-text p{color:#4a5468;margin:0;line-height:2}

/* trip result cards */
.tcard{display:flex;background:#fff;border:1px solid var(--bd);border-radius:16px;margin-bottom:12px;overflow:hidden;box-shadow:var(--sh);transition:box-shadow .15s,border-color .15s}
.tcard:hover{border-color:#f3b896;box-shadow:0 12px 30px rgba(237,90,11,.14)}
.tc-main{flex:1;padding:16px 18px;min-width:0}
.tc-co{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.tc-ic{width:40px;height:40px;border-radius:12px;background:var(--pt);color:var(--p);display:flex;align-items:center;justify-content:center;flex:none}
.tc-co b{display:block;line-height:1.3}.tc-co small{display:block;color:var(--mut)}
.tc-line{display:flex;align-items:center;gap:12px}
.tc-pt{text-align:center;min-width:76px}
.tc-pt b{display:block;font-size:24px;line-height:1.2;color:var(--ink)}.tc-pt span{font-size:13px;color:var(--mut)}
.tc-mid{flex:1;text-align:center;min-width:80px}.tc-mid small{display:block;font-size:12px;color:var(--mut)}
.tc-mid i{display:block;position:relative;height:0;border-top:2px dashed #f0b99a;margin:8px 6px}
.tc-mid i:before,.tc-mid i:after{content:'';position:absolute;top:-6px;width:9px;height:9px;border-radius:50%;background:var(--p)}
.tc-mid i:before{right:-6px}.tc-mid i:after{left:-6px}
.tc-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.tc-meta span{font-size:12px;background:#f4f5f8;border-radius:20px;padding:2px 11px;color:#4a5468}
.tc-meta .low{background:#fde7e5;color:var(--err);font-weight:700}
.tc-buy{width:210px;flex:none;border-right:2px dashed #e8ebf2;padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#fffaf6;text-align:center}
.tc-buy .btn{margin-top:8px;width:100%}

/* booking page layout */
.book-grid{display:grid;gap:18px;align-items:start}
.book-grid>.card,.book-grid>form{margin-bottom:0}
@media(min-width:900px){
  .book-grid{grid-template-columns:minmax(0,1fr) 340px}
  .book-grid>form{grid-column:1;grid-row:1}
  .book-grid>.card:first-child{grid-column:2;grid-row:1;position:sticky;top:84px}
  .fbar{position:sticky;top:68px;z-index:6}
}

/* forms */
.form input:focus,.form select:focus,.form textarea:focus,.search input:focus,.search select:focus{border-color:var(--p);box-shadow:0 0 0 3px rgba(237,90,11,.15);outline:0}
.narrow{box-shadow:var(--sh);border-radius:18px}
.tablewrap table{min-width:560px}

/* ---------- breakpoints ---------- */
@media(min-width:1400px){.wrap{max-width:1280px}.panel .wrap{max-width:1360px}}
@media(max-width:1000px){
  .features{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:repeat(2,1fr)}.dests{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .menu-btn{display:inline-flex}
  .links{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--bd);box-shadow:0 14px 28px rgba(19,32,58,.12);flex-direction:column;align-items:stretch;gap:0;padding:6px 18px 16px;max-height:calc(100vh - 70px);overflow-y:auto}
  .top.nav-open .links{display:flex}
  .links a{padding:13px 6px;border-radius:0;border-bottom:1px solid #f0f1f5;font-size:15px}
  .links a.btn{margin-top:12px;text-align:center;border-bottom:0;border-radius:12px;padding:12px}
  .nav{flex-wrap:nowrap}
}
@media(max-width:760px){
  body:not(.panel){padding-bottom:calc(66px + env(safe-area-inset-bottom))}
  .bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--bd);padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(19,32,58,.10)}
  .bnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--mut);padding:5px 0;border-radius:12px}
  .bnav a.on{color:var(--p);font-weight:700;background:var(--pt)}
  input,select,textarea{font-size:16px;min-height:46px}
  .btn{min-height:44px}.btn.small{min-height:36px}
  .card{padding:15px}
  .card>table{display:block;overflow-x:auto;max-width:100%;width:100%}
  .search{flex-direction:column;align-items:stretch}.search label{min-width:0}.search .btn,.fbar .btn{width:100%}
  .searchbox{margin-top:-60px;padding:14px;border-radius:18px}
  .tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .hero-cta{flex-direction:column;align-items:stretch}.hero-cta .btn{text-align:center;justify-content:center}
  .hero-points{flex-direction:column;gap:6px;align-items:center}
  .subnav{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:6px}
  .subnav a{flex:none}
  .stats{grid-template-columns:repeat(2,1fr)}
  .tk-sheet{justify-content:center}
  .tcard{flex-direction:column}
  .tc-buy{width:auto;flex-direction:row;justify-content:space-between;border-right:0;border-top:2px dashed #e8ebf2;padding:12px 16px}
  .tc-buy small{display:none}.tc-buy .btn{width:auto;margin:0;padding-left:26px;padding-right:26px}
  .tc-pt{min-width:64px}.tc-pt b{font-size:21px}
  .res-h{flex-direction:column;align-items:flex-start}
  .partner{padding:18px}.partner .btn{width:100%;text-align:center}
  .cta .btn{width:100%}
  .row{gap:10px}
}
@media(max-width:640px){
  .grid2,.grid3,.features,.fgrid{grid-template-columns:1fr}
  .dests,.how,.trust{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:380px){
  .wrap{padding-left:12px;padding-right:12px}.card{padding:12px}
  .tc-pt b{font-size:18px}.hero2 h1{font-size:26px}
}
@media(hover:none){.tcard:hover{box-shadow:var(--sh);border-color:var(--bd)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.bnav,.menu-btn,.skip,#pwa-install,#ios-hint{display:none!important}}

/* ===== seat map ===== */
.seatbox{overflow:hidden}
.seatmap{max-width:330px;margin:6px auto 4px;padding:14px 12px 10px;background:#f7f8fb;border:2px solid #e4e7ee;border-radius:28px 28px 16px 16px}
.sm-front{text-align:center;font-size:12px;color:#8a94a8;margin-bottom:10px;border-bottom:2px dashed #dfe3ec;padding-bottom:8px}
.sm-row{display:flex;justify-content:center;gap:0;margin-bottom:7px}
.sm-group{display:flex;gap:6px}
.sm-aisle{width:28px;flex:none}
.seat{display:inline-flex;align-items:center;justify-content:center;width:40px;height:42px;border-radius:10px 10px 6px 6px;border:2px solid #cfd5e1;background:#fff;font:inherit;font-size:11px;font-weight:700;color:var(--ink);cursor:pointer;padding:0;min-height:0;position:relative;transition:transform .08s,background .12s}
button.seat:hover{border-color:var(--p);transform:translateY(-1px)}
.seat.sel{background:var(--p);border-color:var(--p);color:#fff}
.seat.taken{background:#e8ebf2;border-color:#e8ebf2;color:#a4acbd;cursor:not-allowed;text-decoration:line-through}
.seat.gap{visibility:hidden}
.sm-legend{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;font-size:12px;color:var(--mut);margin:8px 0 2px}
.sm-legend span{display:inline-flex;align-items:center;gap:6px}
.sm-legend .seat{width:18px;height:18px;border-radius:5px;border-width:2px;cursor:default}
#seat-msg{text-align:center;margin:6px 0 0}
.seat-chip{font-weight:400;color:var(--p2);font-size:13px}
@media(max-width:380px){.seat{width:34px;height:38px}.sm-aisle{width:20px}.sm-group{gap:4px}}

/* ticket: seat cell */
.tk-grid .seatc b{font-size:15px;color:var(--p2);letter-spacing:.5px}
.tk-qr{height:1.4in}


/* ===== WhatsApp widget ===== */
.wa{position:fixed;left:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:45;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.wa-fab{position:relative;width:60px;height:60px;border-radius:50%;border:0;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px rgba(37,211,102,.45);transition:transform .15s}
.wa-fab:hover{transform:scale(1.06)}
.wa-dot{position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;background:#ed5a0b;border:2px solid #fff}
.wa-dot:after{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid #ed5a0b;opacity:.5;animation:wapulse 1.8s infinite}
@keyframes wapulse{0%{transform:scale(.6);opacity:.6}100%{transform:scale(1.5);opacity:0}}
.wa-panel{width:320px;max-width:calc(100vw - 36px);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 18px 50px rgba(19,32,58,.28);border:1px solid var(--bd)}
.wa-head{display:flex;align-items:center;gap:10px;background:#075e54;color:#fff;padding:14px}
.wa-av{width:42px;height:42px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;flex:none}
.wa-ht{flex:1;min-width:0}.wa-ht b{display:block;line-height:1.3}.wa-ht small{display:block;font-size:11px;opacity:.85;line-height:1.5}
.wa-x{background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px;min-height:0}
.wa-body{background:#efeae2;padding:14px;max-height:50vh;overflow-y:auto}
.wa-bubble{background:#fff;border-radius:0 12px 12px 12px;padding:10px 12px;font-size:14px;line-height:1.8;box-shadow:0 1px 2px rgba(0,0,0,.08);margin-bottom:10px}
.wa-qs{display:flex;flex-direction:column;gap:7px}
.wa-q{display:block;background:#fff;border:1px solid #cfe9d9;color:#075e54;border-radius:20px;padding:8px 14px;font-size:13px;text-align:center}
.wa-q:hover{background:#e7f8ee;border-color:#25d366}
.wa-start{display:flex;align-items:center;justify-content:center;gap:8px;background:#25d366;color:#fff;padding:13px;font-weight:700}
.wa-start:hover{background:#1ebe5a}
.wa-hours{display:block;text-align:center;color:var(--mut);padding:6px 10px 10px;font-size:12px}
@media(max-width:760px){.wa{left:12px;bottom:calc(78px + env(safe-area-inset-bottom))}.wa-fab{width:54px;height:54px}}
@media print{.wa{display:none!important}}

/* ===== boarding scanner ===== */
.scan-grid{display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:18px;align-items:start}
.cam-wrap{position:relative;border-radius:18px;overflow:hidden;background:#0b1220;aspect-ratio:4/3;margin-bottom:12px}
.cam-wrap video{width:100%;height:100%;object-fit:cover;display:block}
.cam-frame{position:absolute;inset:18% 18%;border-radius:18px;box-shadow:0 0 0 999px rgba(11,18,32,.35);border:3px solid var(--p);pointer-events:none}
.cam-off{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#8d99b3;font-size:14px;background:#0b1220}
.scan-manual{display:flex;gap:8px;margin-top:10px}.scan-manual input{flex:1}
.scan-res{border-top:6px solid #e4e7ee;min-height:200px}
.scan-res.lv-ok{border-top-color:var(--ok)}.scan-res.lv-warn{border-top-color:#e0a100}.scan-res.lv-bad{border-top-color:var(--err)}
.sr-t{margin:0 0 8px;font-size:22px}
.lv-ok .sr-t{color:var(--ok)}.lv-warn .sr-t{color:#a87400}.lv-bad .sr-t{color:var(--err)}
.sr-ref{font-size:20px;font-weight:700;letter-spacing:1px;direction:ltr;text-align:right;color:var(--p2)}
.sr-info{margin-bottom:10px;line-height:1.9}
.sr-pax{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.pax-row{display:flex;align-items:center;gap:10px;background:#f7f8fb;border:1px solid var(--bd);border-radius:12px;padding:10px 12px}
.pax-row.done{background:#eefaf2;border-color:#bfe6cc}
.pax-n{flex:1;min-width:0}.pax-n b{display:block}.pax-n small{display:block;color:var(--mut)}
@media(max-width:900px){.scan-grid{grid-template-columns:1fr}}
@media print{.scan-grid{display:none}}


/* ===== checkout: account step ===== */
.acct{background:#fffaf6;border-color:#f3b896!important}
.seg{display:flex;gap:8px;margin:8px 0 4px;flex-wrap:wrap}
.seg-i{flex:1;min-width:150px;display:flex!important;align-items:center;gap:8px;justify-content:center;border:2px solid var(--bd);border-radius:12px;padding:10px 12px;background:#fff;cursor:pointer;margin:0!important;font-weight:700}
.seg-i:has(input:checked){border-color:var(--p);background:var(--pt);color:var(--p2)}
.seg-i input{width:auto;min-height:0}


/* ===== blog ===== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.post-card{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--bd);border-radius:16px;padding:18px;color:var(--tx);box-shadow:var(--sh);transition:border-color .15s,box-shadow .15s}
.post-card:hover{border-color:#f3b896;box-shadow:0 12px 30px rgba(237,90,11,.12)}
.post-card h2,.post-card h3{margin:0;font-size:17px;line-height:1.7;color:var(--ink)}
.post-card p{margin:0;color:#4a5468;font-size:14px;line-height:1.9;flex:1}
.post-card small{color:var(--mut)}
.post-tag{align-self:flex-start;background:var(--pt);color:var(--p2);border-radius:20px;padding:1px 12px;font-size:12px;font-weight:700}
.article{max-width:760px;margin:0 auto 10px}
.article h1{font-size:clamp(22px,4vw,32px);line-height:1.6;margin:6px 0 4px;color:var(--ink)}
.post-meta{color:var(--mut);margin:0 0 18px}
.prose{font-size:17px;line-height:2.15;color:#2a3347}
.prose h2{font-size:22px;margin:30px 0 6px;color:var(--ink)}.prose h3{font-size:18px;margin:22px 0 4px;color:var(--ink)}
.prose p{margin:0 0 14px}.prose ul{padding-right:24px;margin:0 0 14px}.prose li{margin-bottom:4px}
.prose a{color:var(--p2);text-decoration:underline}
.sec-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.soc{display:block;margin-top:6px}.soc a{margin-left:10px;color:#c8d6e8}
@media(max-width:1000px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr}.prose{font-size:16px}}
