:root{
  --navy:#0E2A47;--navy2:#163A5F;--signal:#F5B700;--paper:#FBFCFD;--panel:#EEF2F6;--ink:#13202E;--ink2:#46566A;--muted:#5B6878;
  --line:#DCE3EB;--ok:#1F8A5B;--up:#C7392F;--link:#1659A8;
  --disp:"Archivo",system-ui,sans-serif;--body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"Martian Mono",ui-monospace,Menlo,monospace;
  --w:1160px;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.65 var(--body);color:var(--ink);background:var(--paper);min-height:100vh;display:flex;flex-direction:column}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px;border-radius:6px}
.wrap{max-width:var(--w);margin:0 auto;padding:0 20px}
.mono{font-family:var(--mono)}
/* header */
header.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20}
header.top .wrap{display:flex;align-items:center;gap:22px;height:62px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font:800 19px/1 var(--disp);font-stretch:112%;letter-spacing:-.2px}
.brand:hover{text-decoration:none}
.brand i{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--signal);color:var(--navy);font:700 13px/1 var(--mono);font-style:normal}
.brand b{color:var(--signal);font-weight:800}
nav.main{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
nav.main a{color:#C9D6E5;font-size:14.5px;font-weight:500;padding:7px 12px;border-radius:99px}
nav.main a:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.fy{font:600 12px/1 var(--mono);color:var(--navy);background:var(--signal);padding:6px 9px;border-radius:6px;white-space:nowrap}
.ns{display:none}
/* type */
h1,h2,h3{font-family:var(--disp);letter-spacing:-.3px;line-height:1.15}
h1{font-size:clamp(28px,4.2vw,46px);font-weight:800;font-stretch:115%;margin:0 0 12px}
h2{font-size:24px;font-weight:750;font-stretch:108%;margin:42px 0 14px}
h3{font-size:18px;font-weight:700;margin:22px 0 6px}
.eyebrow{font:600 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);margin:0 0 12px}
.lede{font-size:18px;color:var(--ink2);margin:0 0 20px;max-width:760px}
main{padding:0 0 56px;flex:1 0 auto}
main>.wrap>h1:first-child,main>.wrap>p.eyebrow:first-child{margin-top:28px}
.crumbs{font-size:13px;color:var(--muted);padding:18px 0 14px}.crumbs a{color:var(--muted)}
/* hero */
.hero{background:var(--navy);color:#fff;padding:46px 0 52px;margin-bottom:34px;position:relative;overflow:hidden}
.hero h1{color:#fff;max-width:760px}
.hero .eyebrow{color:var(--signal)}
.hero .lede{color:#C9D6E5}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:42px;align-items:center}
.find{display:flex;gap:8px;background:#fff;border-radius:14px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.25);position:relative}
.find input{flex:1;min-width:0;border:0;font:500 17px var(--body);padding:12px 12px;color:var(--ink);background:transparent;outline:none}
.find .btn{white-space:nowrap}
.hint{font-size:13px;color:#9FB3C8;margin-top:10px}.hint a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35)}
/* departure board (signature) */
.board{background:#0A1F35;border:1px solid #23466B;border-radius:16px;padding:14px 14px 10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.board-head,.board-row{display:grid;grid-template-columns:minmax(0,1fr) 44px 108px 62px;gap:10px;align-items:center}
.board-head{font:600 11.5px/1 var(--mono);letter-spacing:.08em;color:#7FA1C4;padding:0 10px 10px;text-transform:uppercase}
.board-row{padding:9px 10px;border-top:1px solid #17375A;color:var(--signal);font:600 14px/1.2 var(--mono);text-transform:uppercase;cursor:pointer;border-radius:8px}
.board-row:hover{background:#12304F;text-decoration:none}
.board-row span{white-space:nowrap;overflow:hidden;text-overflow:clip}
.board-row .c{color:#FFE18A}.board-row .n{text-align:right}
.board-foot{display:flex;justify-content:space-between;font:500 12px/1 var(--mono);color:#7FA1C4;padding:10px 10px 2px}
.flap{display:inline-block;animation:flap .32s ease-out}
@keyframes flap{0%{transform:rotateX(90deg);opacity:.2}100%{transform:rotateX(0);opacity:1}}
/* facts strip */
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:0 0 30px}
.fact{background:#fff;padding:16px 18px}
.fact small{display:block;font:600 12px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.fact b{display:block;font:800 26px/1.2 var(--disp);font-stretch:110%;margin-top:6px}
.fact em{font-style:normal;font-size:13px;color:var(--ink2)}
/* cards + tables */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
table{width:100%;border-collapse:collapse;background:#fff;font-size:15px}
th,td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
tr:last-child td{border-bottom:0}
th{background:var(--panel);font:600 11.5px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink2)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
td.n{font-family:var(--mono);font-size:14px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.up{color:var(--up)}.down{color:#17744B}
.note{font-size:13px;color:var(--muted)}
/* rate bars */
.bars{display:flex;flex-direction:column;gap:9px}
.bar{display:grid;grid-template-columns:minmax(0,1fr) 70px;gap:10px;align-items:center;font-size:14.5px}
.bar a{color:var(--ink);font-weight:500}
.bar .track{grid-column:1/-1;height:8px;background:var(--panel);border-radius:99px;overflow:hidden;margin-top:-4px}
.bar .fill{height:100%;background:var(--navy2);border-radius:99px;transform-origin:left;animation:grow .9s cubic-bezier(.2,.8,.2,1) both}
.bar .fill.hot{background:var(--up)}
.bar .v{text-align:right;font:600 13.5px var(--mono)}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* tile map */
.tilemap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;max-width:860px;margin:0 auto}
.tile{aspect-ratio:1;border-radius:9px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;font:700 13px/1.1 var(--mono);transition:transform .15s}
.tile small{font:600 11.5px/1 var(--mono);margin-top:4px}
.tile:hover{transform:translateY(-2px) scale(1.06);text-decoration:none;box-shadow:0 6px 14px rgba(14,42,71,.25)}
.tile.lt{color:#061325}
.legend{display:flex;align-items:center;justify-content:center;gap:8px;font:500 12.5px var(--mono);color:var(--ink2);margin-top:14px}
.legend i{display:inline-block;width:140px;height:10px;border-radius:99px;background:linear-gradient(90deg,#E3EEFB,#5B9BE0,#1D5BA8,#0E2A47)}
/* boarding pass (city pages) */
.pass{display:grid;grid-template-columns:minmax(0,1fr) 230px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 12px 30px rgba(14,42,71,.08);margin:6px 0 24px}
.pass-main{padding:24px 26px 22px}
.pass-top{display:flex;justify-content:space-between;align-items:center;font:600 12px/1 var(--mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.pass-top .tag{background:var(--signal);color:var(--navy);padding:5px 8px;border-radius:5px}
.pass h1{margin:14px 0 4px;font-size:clamp(26px,3.6vw,40px)}
.pass .sub{color:var(--ink2);font-size:14.5px}
.pass-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}
.pf small{display:block;font:600 11.5px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.pf b{display:block;font:800 30px/1.15 var(--disp);font-stretch:108%;margin-top:6px;letter-spacing:-.5px}
.pf em{font-style:normal;font-size:12.5px;color:var(--ink2)}
.pass-stub{background:var(--navy);color:#fff;padding:24px 22px;position:relative;border-left:2px dashed #3B5E85;display:flex;flex-direction:column;gap:14px}
.pass-stub::before,.pass-stub::after{content:"";position:absolute;left:-13px;width:24px;height:24px;border-radius:50%;background:var(--paper)}
.pass-stub::before{top:-12px}.pass-stub::after{bottom:-12px}
.pass-stub small{font:600 11.5px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:#8FB0D2}
.pass-stub b{display:block;font:800 24px/1.1 var(--disp);color:var(--signal);margin-top:5px}
.pass-stub .delta{font:600 13px var(--mono)}
/* season strip */
.strip{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;margin:6px 0 6px}
.mo{border-radius:8px;padding:10px 4px 9px;text-align:center;color:#fff;position:relative}
.mo small{display:block;font:600 11.5px/1 var(--mono);text-transform:uppercase}
.mo b{display:block;font:700 13.5px/1.2 var(--mono);margin-top:6px}
.mo.lt{color:#061325}
.mo.now{outline:3px solid var(--signal);outline-offset:2px}
.mo.now::after{content:"now";position:absolute;left:50%;transform:translateX(-50%);bottom:-22px;font:600 11px var(--mono);color:var(--ink2)}
.strip-cap{display:flex;justify-content:space-between;font:500 12px var(--mono);color:var(--muted);margin-top:26px}
/* tool */
.tool{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 22px 18px;box-shadow:0 10px 26px rgba(14,42,71,.06);position:relative;margin:26px 0}
.tool::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--navy) 0 70%,var(--signal) 70%);border-radius:18px 18px 0 0}
.tool h2{margin:4px 0 14px;font-size:21px}
.tool .row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.tool label{display:flex;flex-direction:column;font:600 12px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);gap:6px;flex:1 1 170px}
.tool input,.tool select{font:500 16px var(--body);padding:11px 12px;border:1px solid #C7D2DE;border-radius:10px;background:#fff;min-width:0;color:var(--ink);text-transform:none;letter-spacing:0}
.tool input:focus,.tool select:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px rgba(245,183,0,.45)}
.btn{font:700 15px var(--body);background:var(--signal);color:var(--navy);border:0;border-radius:10px;padding:12px 20px;cursor:pointer}
.btn:hover{filter:brightness(1.05)}
.btn.dark{background:var(--navy);color:#fff}
.result{margin-top:16px}.err{color:var(--up);font-size:14px;margin-top:8px}
.answer{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0}
.stat{background:var(--panel);border-radius:12px;padding:13px 15px}
.stat b{display:block;font:800 26px/1.2 var(--disp);letter-spacing:-.5px}
.stat small{color:var(--ink2);font:600 12px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.04em}
.stat:first-child{background:var(--navy);color:#fff}.stat:first-child small{color:var(--signal)}
/* search suggestions */
.sugg{position:relative}
.sugg ul{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;max-height:320px;overflow:auto;box-shadow:0 16px 36px rgba(14,42,71,.18);color:var(--ink);text-align:left}
.sugg li{padding:9px 12px;cursor:pointer;font:500 15px/1.4 var(--body);text-transform:none;letter-spacing:0;color:var(--ink);border-radius:8px}.sugg li .note{font-size:13px}.sugg li:hover,.sugg li.on{background:#FFF4CC}
.searchbar{display:flex;gap:8px;background:#fff;border:1px solid #C7D2DE;border-radius:14px;padding:5px;margin:6px 0 22px}
.searchbar input{flex:1;min-width:0;border:0;outline:none;font:500 16px var(--body);padding:10px 12px;background:transparent}
/* misc */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.grid a{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--ink);font-weight:500;display:flex;justify-content:space-between}
.grid a:hover{border-color:var(--navy);text-decoration:none}
.grid a span{font:500 12px var(--mono);color:var(--muted)}
.pill{display:inline-block;font:600 11.5px/1.4 var(--mono);padding:2px 7px;border-radius:99px;background:#FFF4CC;color:#7A5A00;text-transform:uppercase}
.related{display:flex;flex-wrap:wrap;gap:8px}.related a{background:#fff;border:1px solid var(--line);border-radius:99px;padding:6px 13px;font-size:14px;color:var(--ink)}
.related a:hover{border-color:var(--navy);text-decoration:none}
.faq h3{font-size:17px;margin:18px 0 4px}
.faq p{margin:0;color:var(--ink2);max-width:780px}
.prose p,.prose li{max-width:780px}
tr.total td{font-weight:700;background:#F6F8FB;border-top:2px solid var(--line)}
tr.total td.n{font-size:15px}
.rt td{vertical-align:middle}.rt .nm a{font-weight:600;color:var(--ink)}.rt .nm small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.mini{height:8px;background:var(--panel);border-radius:99px;overflow:hidden;min-width:90px}.mini i{display:block;height:100%;background:var(--navy2);border-radius:99px;transform-origin:left;animation:grow .9s cubic-bezier(.2,.8,.2,1) both}
.filterbox{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 14px}.filterbox input,.filterbox select{font:500 15px var(--body);padding:10px 12px;border:1px solid #C7D2DE;border-radius:10px;background:#fff}
.filterbox input{flex:1 1 260px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chips button{font:500 14px var(--body);background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:6px 12px;cursor:pointer;color:var(--ink)}.chips button:hover{border-color:var(--navy)}
.res-link{font-weight:600}
h1.long{font-size:clamp(24px,3vw,34px)}
.ad-slot{margin:22px 0}
.callout{border-left:4px solid var(--signal);background:#fff;padding:14px 18px;border-radius:0;margin:18px 0}
ul.clean{padding-left:20px}ul.clean li{margin:6px 0}
footer{background:var(--navy);color:#C9D6E5;padding:30px 0;font-size:14px}
footer a{color:#fff}
footer .cols{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}
footer .note{color:#8FB0D2}
@media(max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:28px}.cols2{grid-template-columns:1fr}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.pass{grid-template-columns:1fr}.pass-stub{border-left:0;border-top:2px dashed #3B5E85;flex-direction:row;flex-wrap:wrap}.pass-stub::before,.pass-stub::after{display:none}}
@media(max-width:640px){.pass-fields{grid-template-columns:1fr 1fr}.strip{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:28px}.tilemap{gap:3px}.tile{border-radius:6px;font-size:11.5px}.tile small{display:none}.board{padding:10px 8px 8px}.board-head,.board-row{grid-template-columns:minmax(0,1fr) 26px 78px 38px;gap:6px;font-size:11.5px;padding-left:6px;padding-right:6px}.board-head{font-size:11px}.hero{padding:28px 0 32px}.hero h1{font-stretch:100%;font-size:32px}.hero .lede{font-size:16px}.find .btn{padding:12px 14px}.pf b{font-size:24px}.pass-main{padding:20px}.board-foot{flex-direction:column;gap:6px}}
@media(prefers-reduced-motion:reduce){.flap,.bar .fill{animation:none}.tile{transition:none}}

/* mobile pass 2 (audit 10 Nov) */
@media(max-width:640px){
header.top{position:relative}
header.top .wrap{flex-wrap:wrap;height:auto;padding-top:12px;row-gap:4px}
header.top .fy{margin-left:auto}
nav.main{order:3;width:calc(100% + 20px);margin:0 -10px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:8px;gap:2px}
nav.main::-webkit-scrollbar{display:none}
.nl{display:none}.ns{display:inline}
.chg th:nth-child(2),.chg td:nth-child(2){display:none}
.tight th,.tight td{padding:10px 4px}.tight td.n{font-size:12.5px}.tight th{font-size:11px}.tight th:first-child,.tight td:first-child{padding-left:10px}.tight th:last-child,.tight td:last-child{padding-right:10px}.tight th{letter-spacing:0}
nav.main a{font-size:14px;padding:7px 10px;white-space:nowrap}
table{font-size:14.5px}
th,td{padding:10px 9px}
th{font-size:11px}
td.n{font-size:13.5px;white-space:nowrap}td.n .note{display:block;font-size:12px}
.rt th:nth-child(4),.rt td:nth-child(4){display:none}
.strip-cap{justify-content:center;text-align:center}
.strip-cap span:first-child,.strip-cap span:last-child{display:none}
.pf small,.pass-stub small{line-height:1.25}
.answer{grid-template-columns:1fr 1fr}.answer .stat:first-child{grid-column:1/-1}.answer .stat:first-child:nth-last-child(even)~.stat:last-child{grid-column:1/-1}
.stat b{font-size:24px}
}
td.d{white-space:nowrap}
