
:root{
  --navy:#0a1628;--navy2:#162240;--teal:#0d9e8a;--teal-lt:#e6f7f5;--teal-dk:#0a7a6a;
  --red:#e53e3e;--green:#276749;--gbg:#f0fff4;--abg:#fffbeb;--rbg:#fff5f5;
  --g50:#f8f9fa;--g100:#f1f3f5;--g200:#e9ecef;--g400:#adb5bd;--g600:#6c757d;
  --white:#fff;--fd:'DM Serif Display',Georgia,serif;--fb:'DM Sans',system-ui,sans-serif;
  --r:10px;--rl:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fb);color:var(--navy);background:var(--white);line-height:1.6}

/* ── MODAL ── */
.mo{position:fixed;inset:0;background:rgba(10,22,40,.78);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;transition:opacity .5s;pointer-events:none}
.mo.show{opacity:1;pointer-events:all}
.mo.off{display:none}
.md{background:var(--white);border-radius:var(--rl);padding:2rem;max-width:460px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25);transform:translateY(24px);transition:transform .5s,opacity .5s;opacity:0}
.mo.show .md{transform:translateY(0);opacity:1}
.md-logo{font-family:var(--fd);font-size:1.25rem;margin-bottom:.4rem}
.md-logo span{color:var(--teal)}
.md h2{font-size:1rem;font-weight:500;margin-bottom:.4rem}
.md p{font-size:.84rem;color:var(--g600);margin-bottom:1rem;line-height:1.6}
.mf label{display:block;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--g600);margin-bottom:4px;margin-top:.75rem}
.mf select,.mf input{width:100%;padding:.56rem .8rem;border:1px solid var(--g200);border-radius:8px;font-size:.875rem;font-family:var(--fb);color:var(--navy);outline:none}
.mf select:focus,.mf input:focus{border-color:var(--teal)}
.mb{display:flex;gap:8px;margin-top:1.1rem}
.mb button{flex:1;padding:.65rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;font-family:var(--fb);border:none}
.mb .save{background:var(--navy);color:var(--white)}
.mb .skip{background:var(--g100);color:var(--g600)}
.md-note{font-size:.68rem;color:var(--g400);margin-top:.6rem;text-align:center}

/* ── NAV ── */
nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--g200);padding:0 2rem}
.ni{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:60px}
.logo{font-family:var(--fd);font-size:1.4rem;color:var(--navy);text-decoration:none}
.logo span{color:var(--teal)}
.nl{display:flex;align-items:center;gap:2rem}
.nl a{font-size:.875rem;color:var(--g600);text-decoration:none}
.nl a:hover{color:var(--navy)}
.nl .cta{background:var(--navy);color:var(--white)!important;padding:.4rem 1rem;border-radius:6px;font-weight:500!important}
.ub{display:none;align-items:center;gap:6px;font-size:.78rem;color:var(--g600);background:var(--g50);border:1px solid var(--g200);border-radius:20px;padding:.28rem .8rem;cursor:pointer}
.ub.on{display:flex}
.ubd{width:7px;height:7px;background:var(--teal);border-radius:50%}

/* ── HERO ── */
.hero{background:var(--navy);color:var(--white);padding:7rem 2rem 5rem;text-align:center;position:relative;overflow:hidden;animation:fu .8s ease both}
@keyframes fu{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(13,158,138,.15),transparent 70%);pointer-events:none}
.htag{display:inline-block;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);background:rgba(13,158,138,.1);border:1px solid rgba(13,158,138,.2);padding:.28rem .875rem;border-radius:20px;margin-bottom:1.5rem}
.hero h1{font-family:var(--fd);font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.18;max-width:820px;margin:0 auto 1.25rem;font-weight:400}
.hero h1 em{color:var(--teal);font-style:italic}
.hero-sub{font-size:1rem;color:rgba(255,255,255,.72);max-width:640px;margin:0 auto 2.5rem;font-weight:300;line-height:1.75}
.hero-sub strong{color:rgba(255,255,255,.92);font-weight:400}
.hbtns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
.bp{background:var(--teal);color:var(--white);padding:.72rem 2rem;border-radius:8px;font-size:.95rem;font-weight:500;text-decoration:none;border:none;cursor:pointer;font-family:var(--fb);transition:background .2s}
.bp:hover{background:var(--teal-dk)}
.bg{background:transparent;color:var(--white);padding:.72rem 2rem;border-radius:8px;font-size:.95rem;text-decoration:none;border:1px solid rgba(255,255,255,.25);transition:all .2s}
.bg:hover{border-color:rgba(255,255,255,.5)}
.hstats{display:flex;justify-content:center;gap:3rem;margin-top:4rem;padding-top:3rem;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
.hs .num{font-family:var(--fd);font-size:1.9rem;color:var(--teal)}
.hs .lbl{font-size:.75rem;color:rgba(255,255,255,.45);margin-top:.2rem}

/* ── SECTIONS ── */
.sec{padding:5rem 2rem;scroll-margin-top:70px}
.si{max-width:1100px;margin:0 auto}
.stag{font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:.5rem}
.sh{font-family:var(--fd);font-size:clamp(1.8rem,3vw,2.4rem);color:var(--navy);line-height:1.2;margin-bottom:.8rem;font-weight:400}
.ss{font-size:.95rem;color:var(--g600);max-width:540px;line-height:1.7}
.gray{background:var(--g50)}

/* ── HOW IT WORKS ── */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.25rem;margin-top:2.5rem}
.step{padding:1.4rem;border:1px solid var(--g200);border-radius:var(--rl)}
.sn{width:30px;height:30px;background:var(--navy);color:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:500;margin-bottom:.875rem}
.step h3{font-size:.9rem;font-weight:500;margin-bottom:.35rem}
.step p{font-size:.85rem;color:var(--g600);line-height:1.6}

/* ── TOOL ── */
.tw{background:var(--white);border:1px solid var(--g200);border-radius:var(--rl);box-shadow:0 2px 12px rgba(0,0,0,.06);overflow:hidden;margin-top:1.75rem}
.ttabs{display:flex;border-bottom:1px solid var(--g200);background:var(--g50);overflow-x:auto}
.ttab{padding:.75rem 1.1rem;font-size:.84rem;font-weight:500;color:var(--g600);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-family:var(--fb)}
.ttab.on{color:var(--navy);border-bottom-color:var(--teal);background:var(--white)}
.tb{padding:1.5rem}
.tp{display:none}.tp.on{display:block}

/* ── FORM ── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}
.f label{display:block;font-size:.7rem;font-weight:500;color:var(--g600);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.f input,.f select{width:100%;padding:.56rem .8rem;border:1px solid var(--g200);border-radius:8px;font-size:.875rem;font-family:var(--fb);color:var(--navy);background:var(--white);outline:none;transition:border-color .15s}
.f input:focus,.f select:focus{border-color:var(--teal)}
.lbtn{width:100%;padding:.7rem;background:var(--navy);color:var(--white);border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;font-family:var(--fb);margin-top:4px;transition:background .2s}
.lbtn:hover{background:var(--navy2)}
.lbtn:disabled{opacity:.4;cursor:not-allowed}
.slbl{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.07em;color:var(--g400);padding-top:.875rem;margin:.875rem 0 .5rem;border-top:0.5px solid var(--g200)}
.errmsg{font-size:.8rem;color:var(--red);margin-top:6px;display:none}
.nf{background:var(--teal-lt);border:1px solid rgba(13,158,138,.2);border-radius:10px;padding:10px 13px;margin-bottom:10px;display:none;font-size:.84rem;color:#0a5a50;line-height:1.6}

/* ── RESULTS ── */
.rbox{background:var(--g50);border-radius:12px;padding:1.1rem 1.25rem;margin-bottom:12px;display:none}
.rbox.show{display:block}
.rlbl{font-size:.875rem;font-weight:500;color:var(--navy);margin-bottom:.75rem}
.rrow{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:10px}
.rm{background:var(--white);border:1px solid var(--g200);border-radius:10px;padding:10px 12px}
.rm .ml{font-size:.66rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--g600);margin-bottom:3px}
.rm .mv{font-size:1.35rem;font-weight:500;font-family:var(--fd);color:var(--navy)}
.rm .ms{font-size:.68rem;color:var(--g400);margin-top:1px}
.rm .ms a{color:var(--teal);text-decoration:none}
.rm .ms a:hover{text-decoration:underline}
.rnote{font-size:.72rem;color:var(--g400);line-height:1.5}
.rnote a{color:var(--teal);text-decoration:none}
.rnote a:hover{text-decoration:underline}
.ibox{background:var(--teal-lt);border:1px solid rgba(13,158,138,.18);border-radius:10px;padding:10px 13px;margin-bottom:10px;font-size:.84rem;color:#0a5a50;line-height:1.6}
.ibox strong{font-weight:500;display:block;margin-bottom:2px}

/* ── PDF ── */
.pdf-sec{display:none;margin-top:1.25rem}
.pdf-wrap{border:1px solid var(--g200);border-radius:var(--rl);overflow:hidden}
.pdf-hd{background:var(--navy);color:var(--white);padding:.875rem 1.1rem;display:flex;justify-content:space-between;align-items:center}
.plogo{font-family:var(--fd);font-size:1rem}
.plogo span{color:var(--teal)}
.pmeta{font-size:.68rem;color:rgba(255,255,255,.55);text-align:right}
.pdf-bd{padding:1.1rem}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.875rem}
.pf .pfl{color:var(--g400);text-transform:uppercase;letter-spacing:.05em;font-size:.63rem;margin-bottom:2px}
.pf .pfv{font-weight:500;font-size:.84rem;color:var(--navy)}
.pvs{padding:.75rem .875rem;border-radius:8px;margin-bottom:.75rem;border:1px solid var(--g200);background:var(--g50)}
.pvt{font-size:.85rem;font-weight:500;color:var(--navy)}
.pvd{font-size:.78rem;color:var(--g600);margin-top:2px}
.pft{font-size:.63rem;color:var(--g400);border-top:1px solid var(--g200);padding-top:.5rem;display:flex;justify-content:space-between}
.ptop{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.ptop span{font-size:.7rem;font-weight:500;color:var(--g600);text-transform:uppercase;letter-spacing:.05em}
.pbtn{padding:.5rem 1rem;background:var(--navy);color:var(--white);border:none;border-radius:7px;font-size:.78rem;font-weight:500;cursor:pointer;font-family:var(--fb)}

/* ── PER DIEM TABLE ── */
.pd-exp{background:var(--teal-lt);border:1px solid rgba(13,158,138,.2);border-radius:var(--rl);padding:1.1rem;margin-bottom:12px;display:none}
.pd-exp h4{font-size:.875rem;font-weight:500;color:var(--teal-dk);margin-bottom:.75rem}
.pdt{width:100%;border-collapse:collapse;font-size:.84rem}
.pdt th{text-align:left;padding:6px 10px;font-weight:500;color:var(--teal-dk);font-size:.72rem;background:rgba(13,158,138,.1);border-bottom:1px solid rgba(13,158,138,.15)}
.pdt td{padding:7px 10px;border-bottom:0.5px solid rgba(13,158,138,.12);vertical-align:top}
.pdt td:first-child{font-weight:500;color:#0a5a50;white-space:nowrap}
.pdt td:nth-child(2){color:var(--navy);font-weight:500;text-align:right;white-space:nowrap}
.pdt td:last-child{font-size:.78rem;color:#0a5a50}
.pdt tr:last-child td{border-bottom:none;background:rgba(13,158,138,.06)}
.pd-rule{background:rgba(255,255,255,.6);border-radius:8px;padding:.65rem .75rem;font-size:.8rem;color:#0a5a50;margin-top:.75rem;line-height:1.6}
.pd-rule strong{font-weight:500;display:block;margin-bottom:2px}

/* ── GROUND TRANSPORT ── */
.gt-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--g200)}
.gt-tab{padding:.55rem 1rem;font-size:.84rem;font-weight:500;color:var(--g600);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:var(--fb)}
.gt-tab.on{color:var(--navy);border-bottom-color:var(--teal)}
.gt-panel{display:none}.gt-panel.on{display:block}
.ft{width:100%;border-collapse:collapse;font-size:.875rem}
.ft td{padding:7px 0;border-bottom:0.5px solid var(--g100)}
.ft td:last-child{text-align:right;color:var(--navy);font-weight:500}
.ft tfoot tr td{padding:8px 0;font-weight:600;border-top:2px solid var(--g200);border-bottom:none}
.map-wrap{width:100%;height:420px;border-radius:var(--rl);overflow:hidden;border:1px solid var(--g200);margin-bottom:1rem;display:none}
.map-wrap iframe{width:100%;height:100%;border:none}
.gt-verdict{border-radius:10px;padding:11px 14px;border:1px solid #9ae6b4;background:var(--gbg);margin-top:10px}
.gt-vt{font-size:.875rem;font-weight:500;color:var(--green);margin-bottom:2px}
.gt-vb{font-size:.82rem;color:var(--g600)}

/* ── AUTOCOMPLETE ── */
.ac-wrap{position:relative}
.ac-drop{position:absolute;top:100%;left:0;right:0;background:var(--white);border:1px solid var(--g200);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:50;max-height:220px;overflow-y:auto;display:none;margin-top:2px}
.ac-item{padding:8px 12px;cursor:pointer;font-size:.875rem;color:var(--navy);border-bottom:0.5px solid var(--g100)}
.ac-item:hover{background:var(--g50)}
.ac-item span{font-weight:500}

/* ── ADVISORY ── */
.adv-card{border:1px solid var(--g200);border-radius:var(--rl);overflow:hidden}
.adv-hd{padding:.875rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:.875rem}
.adv-hd.l1{background:#f0fff4;border-bottom:1px solid #9ae6b4}
.adv-hd.l2{background:#fffbeb;border-bottom:1px solid #fbd38d}
.adv-hd.l3{background:#fff5f5;border-bottom:1px solid #feb2b2}
.adv-hd.l4{background:#742a2a;border-bottom:1px solid #c53030}
.adv-cn{font-size:1rem;font-weight:500;color:var(--navy)}
.adv-hd.l4 .adv-cn{color:var(--white)}
.adv-lt{font-size:.78rem;margin-top:2px}
.adv-hd.l1 .adv-lt{color:var(--green)}.adv-hd.l2 .adv-lt{color:#b7791f}
.adv-hd.l3 .adv-lt{color:var(--red)}.adv-hd.l4 .adv-lt{color:rgba(255,255,255,.8)}
.adv-badge{font-size:.72rem;font-weight:500;padding:.3rem .8rem;border-radius:20px;white-space:nowrap;flex-shrink:0}
.adv-badge.l1{background:var(--green);color:var(--white)}.adv-badge.l2{background:#b7791f;color:var(--white)}
.adv-badge.l3{background:var(--red);color:var(--white)}.adv-badge.l4{background:#c53030;color:var(--white)}
.adv-bd{padding:.875rem 1.1rem}
.adv-msg{font-size:.84rem;color:var(--g600);line-height:1.65;margin-bottom:.6rem}
.adv-lnk{font-size:.78rem;color:var(--teal);text-decoration:none;font-weight:500}
.adv-lnk:hover{text-decoration:underline}
.aq-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:.875rem}
.aq{padding:.35rem .75rem;background:var(--white);border:1px solid var(--g200);border-radius:20px;font-size:.78rem;cursor:pointer;color:var(--navy);font-family:var(--fb)}
.aq:hover{border-color:var(--teal);color:var(--teal)}

/* ── ADMIN ── */
.atbl{width:100%;border-collapse:collapse;font-size:.8rem}
.atbl th{text-align:left;font-size:.66rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--g600);padding:5px 7px;border-bottom:1px solid var(--g200)}
.atbl td{padding:5px 7px;border-bottom:1px solid var(--g100);vertical-align:middle}
.atbl input{width:60px;padding:3px 5px;border:1px solid var(--g200);border-radius:5px;font-size:.78rem}
.delbtn{background:none;border:none;color:var(--g400);cursor:pointer;font-size:.72rem}
.delbtn:hover{color:var(--red)}
.addrow{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;align-items:end;margin-top:10px}
.addrow label{font-size:.66rem;color:var(--g600);display:block;margin-bottom:2px}
.addrow input{width:100%;padding:4px 5px;border:1px solid var(--g200);border-radius:5px;font-size:.78rem}
.addbtn{padding:5px 9px;background:var(--navy);color:var(--white);border:none;border-radius:5px;font-size:.78rem;cursor:pointer;font-family:var(--fb)}
.exprow{display:flex;gap:7px;margin-top:.875rem;flex-wrap:wrap}
.expbtn{padding:.42rem .875rem;font-size:.8rem;border:1px solid var(--g200);border-radius:7px;background:var(--white);cursor:pointer;font-family:var(--fb);color:var(--navy)}
.expbtn:hover{border-color:var(--navy)}
.leaflet-container{font-family:var(--fb)!important}
.leaflet-pane{z-index:1!important}
.leaflet-top,.leaflet-bottom{z-index:2!important}
.pdf-btn{padding:.55rem 1.2rem;background:var(--teal);color:var(--white);border:none;border-radius:8px;font-size:.84rem;font-weight:500;cursor:pointer;font-family:var(--fb)}
.pdf-btn:hover{background:var(--teal-dk)}

/* ── FOOTER ── */
footer{background:var(--navy);color:rgba(255,255,255,.55);padding:3rem 2rem}
.fi{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.flogo{font-family:var(--fd);font-size:1.15rem;color:var(--white)}
.flogo span{color:var(--teal)}
.flinks{display:flex;gap:1.5rem;flex-wrap:wrap}
.flinks a{font-size:.78rem;color:rgba(255,255,255,.4);text-decoration:none}
.flinks a:hover{color:rgba(255,255,255,.8)}
.fcopy{font-size:.7rem;color:rgba(255,255,255,.28);margin-top:.5rem;width:100%}

@media(max-width:600px){
  .g2,.g3{grid-template-columns:1fr}.rrow{grid-template-columns:1fr 1fr}
  .hstats{gap:1.5rem}.addrow{grid-template-columns:1fr 1fr}
  .pgrid{grid-template-columns:1fr}.nl{display:none}
}
@media print{
  nav,.ttabs,.hero,.sec:not(.tool-sec),.pbtn,footer,.mo{display:none!important}
  .pdf-sec{display:block!important}
  #print-hdr,#print-ftr{display:block!important}
  .tw{border:none!important;box-shadow:none!important}
}
  .pdf-sec{display:block!important}.tw{border:none;box-shadow:none}
}
