/* TravelCode shared base — design tokens, typography, buttons, NAV, FOOTER */

:root{
  --bg:#F6F6F4;
  --bg-2:#F0EFEA;
  --surface:#FFFFFF;
  --ink:#0B0D12;
  --ink-2:#2C3038;
  --ink-3:#5C6273;
  --muted:#8A91A1;
  --line:#E3E6EC;
  --line-2:#CFD3DC;
  --blue:#1F4FB8;
  --blue-bright:#306DDE;
  --blue-50:#EEF3FC;
  --blue-100:#DBE5F8;
  --green:#0E7A4B;
  --amber:#C28A1F;
  --red:#B8331E;
  --night:#0B0D12;
  --night-2:#15181F;
  --night-3:#22262F;
  --signage:#FFC847;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',-apple-system,system-ui,sans-serif;
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  font-size:15px;line-height:1.5;
  letter-spacing:-.005em;
}
::selection{background:var(--ink);color:#fff}
a{color:inherit;text-decoration:none}
button,input{font-family:inherit;color:inherit}
h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;letter-spacing:-.022em}
p{margin:0}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-feature-settings:"tnum"}
.tnum{font-feature-settings:"tnum"}

.page{max-width:1280px;margin:0 auto;padding:0 32px;position:relative}
@media (max-width:720px){ .page{padding:0 18px} }

/* ── Buttons ── */
.btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;padding:11px 18px!important;border-radius:10px!important;font-size:14px!important;font-weight:600!important;cursor:pointer!important;border:1px solid transparent!important;transition:all .15s ease!important;text-decoration:none!important;letter-spacing:-.005em!important;line-height:1!important;white-space:nowrap!important}
.btn-primary{background:var(--ink)!important;color:#fff!important;height: auto!important; width: auto!important;}
.btn-primary:hover{background:var(--blue)!important;transform:translateY(-1px)!important}
.btn-secondary{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line-2)!important; height: auto!important; width: auto!important;}
.btn-secondary:hover{border-color:var(--ink)!important;background:var(--bg-2)!important}
.btn-blue{background:var(--blue)!important;color:#fff!important}
.btn-blue:hover{background:var(--ink)!important}
.btn-sm{padding:9px 14px!important;font-size:13px!important}
.btn .arrow{transition:transform .2s!important;display:inline-block!important}
.btn:hover .arrow{transform:translateX(3px)!important}

/* ── Typography ── */
section{padding:128px 0;position:relative}
@media (max-width:720px){ section{padding:80px 0} }

.h-display{font-size:clamp(40px,5.4vw,72px);line-height:1.02;letter-spacing:-.03em;font-weight:600;text-wrap:balance}
.h-section{font-size:clamp(32px,3.8vw,52px);line-height:1.05;letter-spacing:-.025em;font-weight:600;text-wrap:balance}
.lede{font-size:17px;line-height:1.55;color:var(--ink-2);max-width:54ch;text-wrap:pretty;font-weight:400}
.lede.dark{color:rgba(255,255,255,.72)}

/* ── Stub links (for not-yet-implemented routes) ── */
.is-stub{pointer-events:none;opacity:.55;cursor:not-allowed}

/* ───────────────────────────────────────────────────────
   NAV
   ─────────────────────────────────────────────────────── */
.nav-shell{background:var(--bg);position:sticky;top:0;z-index:60;border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;height:64px;gap:24px}
.nav-mark{display:flex;align-items:center;flex-shrink:0}
.nav-mark img{height:30px;width:auto;display:block}
.nav-meta{display:none}
.nav-meta .group{display:flex;flex-direction:column;gap:1px;line-height:1.2}
.nav-meta .lbl{font-size:9.5px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.nav-meta .val{font-size:12px;color:var(--ink);font-weight:600;letter-spacing:.02em}
.nav-spacer{flex:1}
.nav-links{display:flex;gap:4px;align-items:center;position:relative}
.nav-links a{font-size:14px;font-weight:500;color:var(--ink-2);padding:8px 14px;border-radius:8px;transition:background .15s}
.nav-links a:hover{background:var(--bg-2);color:var(--ink)}
.nav-links a.current{color:var(--ink);background:var(--bg-2)}
.nav-cta{display:flex;align-items:center;gap:8px}

@media (max-width:1100px){ .nav-meta{display:none} }
@media (max-width:900px){ .nav-links{display:none} }

/* ── NAV mega-menu ── */
.nav-item-mega{position:relative;display:inline-flex;align-items:center}
.nav-link-with-caret{display:inline-flex;align-items:center;gap:4px}
.nav-caret{font-size:10px;line-height:1;opacity:.6;transition:transform .18s ease,opacity .18s ease}
.nav-item-mega:hover .nav-caret,
.nav-item-mega:focus-within .nav-caret{opacity:1;transform:translateY(1px)}
.nav-mega{
  position:absolute;top:calc(100% + 6px);left:50%;
  transform:translateX(-50%) translateY(4px);
  min-width:820px;max-width:920px;
  background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:0 18px 42px -16px rgba(20,18,14,.18),0 6px 16px -8px rgba(20,18,14,.08);
  padding:22px;
  opacity:0;pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
  z-index:90;
}
.nav-item-mega:hover .nav-mega,
.nav-item-mega:focus-within .nav-mega{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav-mega::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}
.nav-mega-inner{display:grid;grid-template-columns:.9fr 1.3fr 1fr;gap:24px}
.nav-mega-inner-2col{grid-template-columns:1.4fr 1fr}
.nav-mega-eyebrow{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:10px;padding-left:10px}
.nav-mega-item{display:block;padding:10px 12px;border-radius:9px;text-decoration:none;color:inherit;transition:background .14s ease}
.nav-mega-item:hover{background:var(--bg-2)}
.nav-mega-title{font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.2}
.nav-mega-desc{font-size:12.5px;color:var(--ink-2);line-height:1.45;margin-top:3px;text-wrap:pretty}
.nav-mega-new{display:inline-block;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--amber,#C8941A);color:#fff;padding:2px 6px;border-radius:99px;margin-left:6px;vertical-align:middle;line-height:1.2}
.nav-mega-promo{background:var(--ink);color:#fff;border-radius:11px;padding:18px 18px 16px;display:flex;flex-direction:column;gap:10px;margin:-4px}
.nav-mega-promo-eyebrow{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);font-weight:600}
.nav-mega-promo-title{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:20px;font-weight:500;letter-spacing:-.02em;line-height:1.15;color:#fff}
.nav-mega-promo-desc{font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.78);text-wrap:pretty;margin:0}
.nav-mega-promo-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.nav-mega-promo-tags span{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.04em;padding:4px 8px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:rgba(255,255,255,.82)}
@media (max-width:900px){ .nav-mega{display:none} }

/* ── NAV burger + mobile drawer ── */
.nav-burger{display:none;background:none;border:0;width:40px;height:40px;padding:8px;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;align-items:center}
.nav-burger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .18s ease,opacity .18s ease}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-drawer{position:fixed;top:64px;left:0;right:0;bottom:0;background:var(--bg);z-index:55;overflow-y:auto;border-top:1px solid var(--line)}
.nav-drawer-inner{padding:20px 22px 32px;display:flex;flex-direction:column;gap:2px;max-width:520px;margin:0 auto}
.nav-drawer-link{font-size:18px;font-weight:600;color:var(--ink);padding:14px 4px;border-bottom:1px solid var(--line);text-decoration:none;letter-spacing:-.01em}
.nav-drawer-sub{display:flex;flex-direction:column;padding:6px 12px 14px;gap:2px;border-bottom:1px solid var(--line)}
.nav-drawer-sub a{font-size:14.5px;color:var(--ink-2);padding:8px 4px;text-decoration:none}
.nav-drawer-foot{display:flex;flex-direction:column;gap:10px;margin-top:24px}
.nav-drawer-foot .btn.btn-primary.btn-sm{min-height: 44px;}
.nav-drawer-login{font-size:15px;font-weight:500;color:var(--ink-2);padding:12px 0;text-align:center;border:1px solid var(--line);border-radius:10px;text-decoration:none; min-height: 44px;}
@media (max-width:900px){
  .nav-burger{display:inline-flex}
  .nav-cta .nav-login-link,.nav-cta .btn{display:none}
}
@media (min-width:901px){
  .nav-drawer{display:none !important}
}
body.nav-drawer-open{overflow:hidden}

/* ───────────────────────────────────────────────────────
   FOOTER
   ─────────────────────────────────────────────────────── */
footer{padding:96px 0 40px;background:var(--bg);border-top:1px solid var(--line);margin-top:32px}
footer h5,footer h6{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-weight:600;margin:0 0 18px}
footer h6{margin:0 0 14px}
footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
footer a{font-size:14px;color:var(--ink-2);transition:color .15s}
footer a:hover{color:var(--blue)}

.foot-top{display:grid;grid-template-columns:repeat(5,1fr);gap:32px;align-items:start;padding-bottom:32px}
.foot-top .foot-logo{height:30px;width:auto;grid-column:1/3;grid-row:1;align-self:center;justify-self:start}
.foot-top .foot-contact-block{grid-column:1/3;grid-row:2}
.foot-tagline{font-size:14px;line-height:1.55;color:var(--ink-2);margin:0;grid-column:3/-1;grid-row:1;align-self:center}

.foot-contact-block ul{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:8px;font-size:13.5px;color:var(--ink-2)}
.foot-contact-block ul a{color:var(--ink);font-weight:500}
.foot-emergency{font-size:13.5px;color:var(--ink);margin:0;font-weight:600}
.foot-emergency a{color:var(--blue)}
.foot-li-link{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-weight:500}

.foot-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:32px;padding-top:8px}
.foot-bottom{margin-top:64px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-3);letter-spacing:.04em}
.foot-bottom .right{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.foot-region{font-size:11px;color:var(--ink-3);letter-spacing:.02em;font-family:'Inter',sans-serif;font-weight:400;text-transform:none}

.foot-issuer-bottom{padding:20px;margin-top:18px;border-top:1px solid var(--line)}
.foot-issuer-bottom p{font-size:11px;line-height:1.65;color:var(--ink-3);max-width:none;margin:0;font-weight:400}

@media (max-width:900px){
  .foot-top{display:flex;flex-direction:column;gap:28px;padding-bottom:28px}
  .foot-top .foot-logo,
  .foot-top .foot-contact-block,
  .foot-tagline,
  .foot-apps-inline{grid-column:auto;grid-row:auto;width:100%;align-self:flex-start}
  .foot-top .foot-logo{width:auto;align-self:flex-start}
  .foot-tagline{max-width:none}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px 24px}
  .foot-bottom{margin-top:32px;flex-direction:column;align-items:flex-start;gap:14px}
  .foot-bottom .right{align-items:flex-start}
}
@media (max-width:640px){ .foot-grid{grid-template-columns:1fr} }

/* ── App store badges ── */
.foot-apps-inline{grid-column:3/-1;grid-row:2;align-self:start}
.app-badges{display:flex;gap:10px;flex-wrap:wrap}
.app-badge{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:10px 18px;border-radius:10px;text-decoration:none;transition:transform .15s,background .15s;min-width:148px}
.app-badge:hover{transform:translateY(-1px);background:#000;color:#fff}
.app-badge svg{flex-shrink:0;color:#fff}
.app-badge span{display:flex;flex-direction:column;line-height:1.15}
.app-badge em{font-style:normal;font-size:9.5px;letter-spacing:.06em;opacity:.78;text-transform:uppercase;font-weight:400;margin-bottom:1px}
.app-badge strong{font-size:14px;font-weight:600;letter-spacing:-.01em;line-height:1.1}

/* Hide legacy auth-banner logo strip on TC auth pages (login/register/forgot use landing-tc layout) */
.auth-banners-list-section{display:none}

/* ───────────────────────────────────────────────────────
   STICKY TOP BAR (announcement + nav move and pin together)
   ─────────────────────────────────────────────────────── */
.tc-topbar{position:sticky;top:0;z-index:60}
.tc-topbar .nav-shell{position:static}

/* ───────────────────────────────────────────────────────
   LAUNCH-OFFER PROMO BAR (net-60-card / expense-management)
   ─────────────────────────────────────────────────────── */
.n60-promo{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;background:var(--ink);color:#fff;padding:10px 24px;font-size:13px;text-align:center;text-decoration:none}
.n60-promo .tag{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--night);background:var(--signage);padding:4px 9px;border-radius:99px}
.n60-promo .txt{color:rgba(255,255,255,.82);letter-spacing:-.005em}
.n60-promo .txt b{color:#fff;font-weight:600}
.n60-promo .go{font-weight:600;color:var(--signage);white-space:nowrap}
.n60-promo:hover .go{text-decoration:underline}
@media (max-width:640px){ .n60-promo .go{display:none} }

/* "Launch offer" tag used in the nav Spend mega-menu */
.n60-mega-tag{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--night);background:var(--signage);padding:2px 7px;border-radius:99px;vertical-align:middle;margin-left:6px;white-space:nowrap}

/* ───────────────────────────────────────────────────────
   ANNOUNCEMENT BAR
   ─────────────────────────────────────────────────────── */
.tc-announce{background:var(--blue-bright);color:#fff}
.tc-announce-inner{display:flex;align-items:center;gap:16px;min-height:44px;padding-top:9px;padding-bottom:9px}
.tc-announce-text{font-size:14px;font-weight:500;letter-spacing:-.005em;line-height:1.35;flex:1;min-width:0}
.tc-announce-link{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:14px;font-weight:600;color:#fff;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:1px;transition:border-color .15s}
.tc-announce-link:hover{border-bottom-color:#fff}
.tc-announce-link span{transition:transform .2s}
.tc-announce-link:hover span{transform:translateX(3px)}
.tc-announce-close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;background:transparent;color:rgba(255,255,255,.8);font-size:15px;line-height:1;border-radius:8px;cursor:pointer;transition:background .15s,color .15s}
.tc-announce-close:hover{background:rgba(255,255,255,.15);color:#fff}
@media (max-width:640px){
  .tc-announce-inner{gap:10px}
  .tc-announce-text{font-size:13px}
  .tc-announce-link{font-size:13px}
}
