  /* ============ TOKENS ============ */
  :root{
    --paper:#FBF6EA;--surface:#FFFFFF;--surface-2:#FFF9EE;
    --ink:#17271B;--ink-soft:#5A6B5E;
    --clover:#2E8A4B;--clover-deep:#1C5A31;
    --carrot:#FF7A2F;--carrot-deep:#E85F14;
    --sky:#CFE8F0;--sky-ink:#2C6B7E;--sun:#FFC53D;--line:#EADFC8;
    --shadow:18px 18px 0 rgba(28,90,49,.10);
    --font-display:ui-rounded,"SF Pro Rounded","Hiragino Maru Gothic ProN",system-ui,sans-serif;
    --font-body:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    --font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
    --r-lg:26px;--r-md:16px;--r-sm:10px;
  }
  @media (prefers-color-scheme:dark){
    :root{--paper:#0F1912;--surface:#16221A;--surface-2:#1B2A20;
      --ink:#EEF4E9;--ink-soft:#A2B4A6;--clover:#54BE78;--clover-deep:#8CDDA6;
      --carrot:#FF9048;--carrot-deep:#FFB27E;--sky:#1E3944;--sky-ink:#9AD3E4;
      --sun:#F5C24A;--line:#28382D;--shadow:18px 18px 0 rgba(0,0,0,.35);}
  }
  :root[data-theme="light"]{--paper:#FBF6EA;--surface:#FFFFFF;--surface-2:#FFF9EE;
    --ink:#17271B;--ink-soft:#5A6B5E;--clover:#2E8A4B;--clover-deep:#1C5A31;
    --carrot:#FF7A2F;--carrot-deep:#E85F14;--sky:#CFE8F0;--sky-ink:#2C6B7E;
    --sun:#FFC53D;--line:#EADFC8;--shadow:18px 18px 0 rgba(28,90,49,.10);}
  :root[data-theme="dark"]{--paper:#0F1912;--surface:#16221A;--surface-2:#1B2A20;
    --ink:#EEF4E9;--ink-soft:#A2B4A6;--clover:#54BE78;--clover-deep:#8CDDA6;
    --carrot:#FF9048;--carrot-deep:#FFB27E;--sky:#1E3944;--sky-ink:#9AD3E4;
    --sun:#F5C24A;--line:#28382D;--shadow:18px 18px 0 rgba(0,0,0,.35);}

  *{box-sizing:border-box}
  body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);
    line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  h1,h2,h3,.display{font-family:var(--font-display);font-weight:800;line-height:1.02;
    letter-spacing:-.02em;text-wrap:balance;margin:0}
  p{margin:0}a{color:inherit}
  .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
  .eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;
    text-transform:uppercase;color:var(--clover);font-weight:600}
  .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
  ul{margin:0;padding:0}

  /* NAV */
  .nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 86%,transparent);
    backdrop-filter:blur(10px);border-bottom:2px solid var(--line)}
  .nav .wrap{display:flex;align-items:center;gap:18px;height:68px}
  .brand{display:flex;align-items:center;gap:9px;font-family:var(--font-display);
    font-weight:800;font-size:20px;letter-spacing:-.02em;cursor:pointer;background:none;border:0;color:inherit}
  .brand .logo{width:46px;height:36px;flex:none}
  .bw-b{color:var(--carrot)}
  .nav-spacer{flex:1}
  .theme-btn{width:40px;height:40px;border-radius:999px;border:2px solid var(--line);
    background:var(--surface);cursor:pointer;font-size:17px;line-height:1;display:grid;place-items:center;color:inherit}

  .btn{font-family:var(--font-display);font-weight:800;font-size:15px;border:0;cursor:pointer;
    border-radius:999px;padding:13px 22px;display:inline-flex;align-items:center;gap:8px;
    text-decoration:none;transition:transform .12s ease}
  .btn-carrot{background:var(--carrot);color:#fff}
  .btn-carrot:hover{transform:translateY(-2px)}

  /* HERO */
  /* overflow-x:clip (not hidden) — a vertical clip cuts off the autocomplete
     dropdown, and overflow-x:hidden would force overflow-y into a scroll box */
  .hero{position:relative;padding:56px 0 24px;overflow-x:clip}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
  /* Grid items default to a min-content floor, which held the hero column 17px wider
     than the 320px viewport and pushed the headline, lede and search box out. */
  .hero-grid>*{min-width:0}
  .hero h1{font-size:clamp(44px,7vw,86px)}
  .hero h1 .stop{color:var(--carrot);white-space:nowrap}
  .hero .lede{font-size:clamp(17px,2.2vw,20px);color:var(--ink-soft);max-width:44ch;margin-top:20px}
  .badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
  .chip{font-family:var(--font-mono);font-size:12.5px;font-weight:600;background:var(--surface);
    border:2px solid var(--line);border-radius:999px;padding:6px 13px;display:inline-flex;gap:7px;align-items:center}
  .chip b{color:var(--clover)}

  .search{margin-top:30px;position:relative;max-width:460px}
  .search-box{display:flex;align-items:center;gap:10px;background:var(--surface);
    border:3px solid var(--ink);border-radius:999px;padding:8px 8px 8px 20px;box-shadow:var(--shadow)}
  .search input{flex:1;border:0;background:none;font-size:17px;font-family:var(--font-body);
    color:var(--ink);outline:none;min-width:0}
  .search input::placeholder{color:var(--ink-soft)}
  .results{position:absolute;left:0;right:0;top:calc(100% + 8px);background:var(--surface);
    border:2px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:6px;z-index:30;display:none}
  .results.open{display:block}
  .results li{list-style:none}
  .results button{width:100%;text-align:left;display:flex;align-items:center;gap:12px;
    padding:11px 12px;border:0;background:none;border-radius:var(--r-sm);cursor:pointer;color:inherit}
  .results button:hover,.results button:focus{background:var(--surface-2);outline:none}
  .results .rc{font-family:var(--font-mono);font-weight:700;color:var(--clover);font-size:13px;width:38px}
  .results .rn{font-family:var(--font-display);font-weight:700;font-size:15px}
  .results .rv{margin-left:auto;font-size:12px;color:var(--ink-soft)}

  .hero-art{position:relative;min-height:340px}
  .arc-svg{width:100%;height:auto;display:block;overflow:visible}
  .hop-path{fill:none;stroke:var(--carrot);stroke-width:4;stroke-linecap:round;stroke-dasharray:10 12}
  .draw{stroke-dasharray:640;stroke-dashoffset:640;animation:draw 1.5s .3s ease forwards}
  @keyframes draw{to{stroke-dashoffset:0}}
  .pin circle{fill:var(--surface);stroke:var(--ink);stroke-width:3}
  .pin text{font-family:var(--font-mono);font-weight:700;font-size:13px;fill:var(--ink)}
  .rabbit{transform-box:fill-box;transform-origin:center bottom;animation:hop 2.8s ease-in-out infinite}
  @keyframes hop{0%,100%{transform:translateY(0)}45%{transform:translateY(-13px)}}

  section{padding:64px 0}
  .head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px}
  .head-row h2{font-size:clamp(28px,4vw,40px)}
  .head-row p{color:var(--ink-soft);max-width:40ch}

  .origins{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
  .ocard{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);
    padding:20px;cursor:pointer;text-align:left;color:inherit;transition:transform .12s,border-color .12s;
    display:flex;flex-direction:column;gap:4px}
  .ocard:hover{transform:translateY(-4px);border-color:var(--clover)}
  .ocard .oc{font-family:var(--font-mono);font-weight:700;color:var(--clover);font-size:13px}
  .ocard .on{font-family:var(--font-display);font-weight:800;font-size:21px}
  .ocard .ov{font-size:13px;color:var(--ink-soft);margin-top:2px}
  .ocard .arc-mini{margin-top:10px}

  .steps{background:var(--clover-deep);color:#EAFBF0;border-radius:var(--r-lg);padding:44px;
    display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  :root[data-theme="dark"] .steps{background:var(--surface-2);color:var(--ink);border:2px solid var(--line)}
  @media (prefers-color-scheme:dark){.steps{background:var(--surface-2);color:var(--ink);border:2px solid var(--line)}}
  :root[data-theme="light"] .steps{background:var(--clover-deep);color:#EAFBF0;border:0}
  .step .sn{font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;opacity:.7}
  .step h3{font-size:22px;margin:8px 0;color:var(--sun)}
  .step p{opacity:.85;font-size:15px}

  /* LANDING */
  .crumbs{font-family:var(--font-mono);font-size:12.5px;color:var(--ink-soft);padding-top:26px;
    display:flex;gap:8px;align-items:center}
  .crumbs a{color:var(--clover);text-decoration:none;cursor:pointer}
  .lp-hero{padding:18px 0 8px}
  .lp-hero h1{font-size:clamp(34px,5.4vw,60px)}
  .lp-hero h1 em{font-style:normal;color:var(--clover)}
  .lp-sub{font-size:19px;color:var(--ink-soft);margin-top:14px}
  .lp-sub b{color:var(--carrot)}
  .lp-stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
  .stat{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);padding:14px 20px}
  .stat .n{font-family:var(--font-display);font-weight:800;font-size:26px;line-height:1}
  .stat .l{font-size:12px;color:var(--ink-soft);margin-top:5px;text-transform:uppercase;letter-spacing:.06em}

  /* MAP */
  .mapcard{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-lg);
    padding:22px;margin-top:26px}
  .mhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;flex-wrap:wrap}
  .mhead h3{font-family:var(--font-display);font-size:20px}
  .mhead .mnote{font-size:12.5px;color:var(--ink-soft)}
  .mapwrap{position:relative}
  #map{width:100%;height:auto;display:block;touch-action:pan-y}
  #map:focus-visible{outline:3px solid var(--carrot);outline-offset:3px}
  /* Only claim the drag gesture once there is something to pan; at the fitted view a
     touch drag must still scroll the page. */
  #map.is-zoomed{cursor:grab;touch-action:none}
  #map.is-zoomed:active{cursor:grabbing}
  .mapzoom{position:absolute;top:8px;right:8px;display:flex;gap:6px;align-items:center}
  .mz{font-family:var(--font-display);font-weight:700;font-size:15px;line-height:1;
    border:2px solid var(--line);background:var(--surface);color:var(--ink);
    border-radius:999px;width:32px;height:32px;cursor:pointer;padding:0}
  .mz:hover:not(:disabled){border-color:var(--carrot);color:var(--carrot)}
  .mz:disabled{opacity:.4;cursor:default}
  .mz-reset{width:auto;padding:0 12px;font-size:12px}
  .mapzoom-hint{font-size:11.5px;color:var(--ink-soft);margin-top:8px;text-align:right}
  @media (max-width:640px){.mapzoom-hint{display:none}}
  .map-graticule{stroke:var(--line);stroke-width:1;stroke-dasharray:3 6;fill:none}
  .map-arc{fill:none;stroke:var(--carrot);stroke-width:2;stroke-dasharray:4 5;stroke-linecap:round;opacity:.7}
  .map-dot{fill:var(--clover);stroke:var(--surface);stroke-width:2}
  .map-dot.intl{fill:var(--sky-ink)}
  .map-lbl{font-family:var(--font-mono);font-size:10px;font-weight:700;fill:var(--ink-soft)}
  .map-origin{fill:var(--carrot);stroke:var(--surface);stroke-width:3}
  .map-origin-lbl{font-family:var(--font-mono);font-size:12px;font-weight:800;fill:var(--carrot-deep)}

  .filter{position:sticky;top:68px;z-index:20;background:color-mix(in srgb,var(--paper) 90%,transparent);
    backdrop-filter:blur(8px);padding:18px 0;margin-top:24px;border-bottom:2px solid var(--line)}
  .filter .flabel{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;
    letter-spacing:.12em;color:var(--ink-soft);margin-bottom:10px}
  .days{display:flex;gap:8px;flex-wrap:wrap}
  .day{font-family:var(--font-display);font-weight:700;font-size:14px;border:2px solid var(--line);
    background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 16px;cursor:pointer}
  .day[aria-pressed="true"]{background:var(--carrot);border-color:var(--carrot);color:#fff}
  :root[data-theme="dark"] .day[aria-pressed="true"]{color:#241206}
  @media (prefers-color-scheme:dark){.day[aria-pressed="true"]{color:#241206}}
  :root[data-theme="light"] .day[aria-pressed="true"]{color:#fff}
  .day.all[aria-pressed="true"]{background:var(--clover);border-color:var(--clover);color:#fff}

  .routes{display:flex;flex-direction:column;gap:14px;margin-top:26px}
  .route{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);
    padding:18px 22px;display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:16px 24px;align-items:center}
  .route.intl{border-color:color-mix(in srgb,var(--sky-ink) 40%,var(--line))}
  .rt-main{display:flex;align-items:center;gap:16px;min-width:0}
  /* overflow-wrap:anywhere: names like "Sarasota/Bradenton" have no space to break at
     (browsers do not break after "/"), which floors the card's min-content width and
     pushes the row past the card edge at 320px. */
  .rt-dest{min-width:0;overflow-wrap:anywhere}
  .rt-dest .dc{font-family:var(--font-mono);font-weight:700;color:var(--clover);font-size:12.5px}
  .rt-dest .dn{font-family:var(--font-display);font-weight:800;font-size:22px;line-height:1.05}
  .rt-dest .dr{font-size:12.5px;color:var(--ink-soft)}
  .intl-tag{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;
    color:var(--sky-ink);border:1.5px solid currentColor;border-radius:999px;padding:2px 8px;margin-left:8px}
  /* min-width:0 on both: as a grid item .rt-meta would otherwise be floored at its
     min-content width, stretching the column past the card and pushing chips and the
     weekday strip over the right border on narrow phones. */
  .rt-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end;min-width:0}
  .airlines{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
  .al{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-weight:600;
    font-size:12.5px;background:var(--surface-2);border:2px solid var(--line);border-radius:999px;
    padding:3px 12px 3px 4px;color:var(--ink);max-width:100%}
  a.al{text-decoration:none}
  a.al:hover{border-color:var(--clover);color:var(--clover)}
  a.al:focus-visible{outline:2px solid var(--carrot);outline-offset:2px}
  .al .al-mark{width:20px;height:20px;flex:none;border-radius:6px}
  .al img.al-logo{background:#fff;padding:2px;box-sizing:border-box}
  .al .al-swatch{display:inline-grid;place-items:center;box-shadow:inset 0 0 0 1.5px var(--line);
    font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:-.02em;line-height:1}
  /* Wraps so the 7-day strip drops to its own line rather than forcing the row (and
     therefore the card) wider than the viewport. */
  .rt-numbers{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap;min-width:0}
  .fcount{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink-soft);white-space:nowrap;text-align:center}
  .fcount b{display:block;color:var(--clover);font-size:17px;font-family:var(--font-display)}
  .ftime{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink-soft);white-space:nowrap;text-align:center}
  .ftime b{display:block;color:var(--clover);font-size:17px;font-family:var(--font-display)}
  .weekstrip{display:flex;gap:4px}
  .wd{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-family:var(--font-mono);
    font-size:10px;font-weight:700;background:var(--surface-2);color:var(--ink-soft);border:1.5px solid var(--line)}
  .wd.on{background:var(--clover);color:#fff;border-color:var(--clover)}
  :root[data-theme="dark"] .wd.on{color:#0F1912}
  @media (prefers-color-scheme:dark){.wd.on{color:#0F1912}}
  :root[data-theme="light"] .wd.on{color:#fff}
  .fares{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--carrot-deep);
    text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
  .fares:hover{text-decoration:underline}
  .empty{text-align:center;padding:50px;color:var(--ink-soft);font-family:var(--font-display);font-weight:700}

  .seo{background:var(--surface-2);border:2px solid var(--line);border-radius:var(--r-lg);padding:38px;margin-top:44px}
  .seo h2{font-size:26px;margin-bottom:14px}
  .seo p{color:var(--ink-soft);max-width:70ch;margin-bottom:14px}
  .seo p b{color:var(--ink)}

  footer{border-top:2px solid var(--line);padding:40px 0;margin-top:20px}
  .foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
  .foot .fb{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800}
  .foot .fb .logo{width:39px;height:30px}
  .foot small{color:var(--ink-soft);font-size:13px}

  @media (max-width:860px){
    .hero-grid{grid-template-columns:1fr}
    .hero-art{min-height:240px;order:-1}
    /* no .origins override here — the base auto-fit already yields 2-3 columns in this
       range, and forcing exactly 2 is what pushed the grid past narrow viewports */
    .steps{grid-template-columns:1fr;padding:30px}
    .route{grid-template-columns:1fr}
    .rt-meta{justify-content:flex-start}
    .head-row{flex-direction:column;align-items:flex-start}
  }
  /* Must follow the 860px block (equal specificity — source order decides).
     Phones: let auto-fit decide the column count from the space available rather than
     hardcoding one. Card-title metrics vary a lot by platform (SF Pro Rounded on iOS is
     ~13% narrower than the fallback elsewhere), so a fixed breakpoint tuned to one font
     is either too greedy or wastes a column. minmax(min(145px,100%),1fr) yields two
     columns from ~360px up and one below, whatever the font. The title scales with the
     viewport instead of stepping down, so a 440px phone keeps ~19px, not 16px. */
  @media (max-width:560px){
    .origins{grid-template-columns:repeat(2,1fr);gap:12px}
    .origins>*{min-width:0}
    .ocard{padding:14px}
    .ocard .on{font-size:clamp(16px,4.4vw,21px);overflow-wrap:break-word}
    .ocard .arc-mini{margin-top:6px}
  }
  /* Under 360px two columns leave too little room for a city name at any readable size. */
  @media (max-width:359px){
    .origins{grid-template-columns:1fr}
  }
  @media (prefers-reduced-motion:reduce){
    .draw{animation:none;stroke-dashoffset:0}.rabbit{animation:none}.btn,.ocard{transition:none}
  }

  /* ---- route-pair page ---- */
  .pair-h2{font-size:22px;margin:34px 0 0}
  .pair-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin:20px 0 8px}
  .pg-day{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);
    padding:12px 6px;text-align:center}
  .pg-day.off{background:var(--surface-2);opacity:.55}
  .pg-name{display:block;font-family:var(--font-mono);font-size:11px;font-weight:700;
    color:var(--ink-soft);text-transform:uppercase}
  .pg-n{display:block;font-family:var(--font-display);font-size:24px;color:var(--clover);margin-top:4px}
  .pg-day.off .pg-n{color:var(--ink-soft)}
  .pg-lbl{font-size:11px;color:var(--ink-soft)}
  .pair-airlines{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0}
  .siblings{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 8px}
  .sib{background:var(--surface);border:2px solid var(--line);border-radius:999px;
    padding:8px 16px;text-decoration:none;color:var(--ink);font-size:14px}
  .sib:hover{border-color:var(--clover)}
  .sib b{font-family:var(--font-mono);color:var(--clover)}
  @media (max-width:640px){.pair-grid{grid-template-columns:repeat(4,1fr)}}
  .mapcard-sm{max-width:600px;margin:24px auto 0}
  a.rt-dest{text-decoration:none;color:inherit}
  a.rt-dest:hover .dn{color:var(--clover);text-decoration:underline}

  /* ---- flight schedule: table + gantt + day filter ---- */
  .pg-day{font:inherit;cursor:pointer;text-align:center}
  .pg-day[disabled]{cursor:default;opacity:.5}
  .pg-day[aria-pressed="true"]{border-color:var(--clover);box-shadow:inset 0 0 0 1px var(--clover)}
  .pg-all{font-family:var(--font-display);font-weight:700;font-size:13px;border:2px solid var(--line);
    background:var(--surface);color:var(--ink);border-radius:var(--r-md);padding:0 16px;cursor:pointer}
  .pg-all[aria-pressed="true"]{border-color:var(--clover);color:var(--clover)}
  .fsched-sec{margin-top:16px}
  .fsched-sec>.pair-h2:first-child{margin-top:0}
  .fsched-note{font-size:13px;color:var(--ink-soft);margin:6px 0 16px}
  .fgantt{width:100%;height:auto;display:block;margin-bottom:20px}
  .fg-bar{fill:var(--carrot);opacity:.85;rx:3}
  .fg-tick{fill:var(--carrot)}
  .fg-lbl{font-family:var(--font-mono);font-size:11px;fill:var(--ink)}
  .fg-axis{stroke:var(--line);stroke-width:1}
  .fg-axis-lbl{font-family:var(--font-mono);font-size:10px;fill:var(--ink-soft)}
  .fg-sw{font-family:var(--font-mono);font-size:8px;font-weight:700}
  /* flair: bars pop in left-to-right */
  @keyframes fg-pop{from{opacity:0}}
  .fg-bar,.fg-tick,.fg-chip,.fg-lbl{animation:fg-pop .35s ease-out backwards}
  @media (prefers-reduced-motion:reduce){
    .fg-bar,.fg-tick,.fg-chip,.fg-lbl{animation:none}
  }
  table.fsched{width:100%;border-collapse:collapse;font-size:14px}
  table.fsched th{text-align:left;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;
    letter-spacing:.06em;color:var(--ink-soft);padding:6px 10px;border-bottom:2px solid var(--line)}
  table.fsched td{padding:9px 10px;border-bottom:1px solid var(--line)}
  .fs-ident{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}
  .fs-dep,.fs-dur{font-family:var(--font-mono)}
  .fs-row[hidden]{display:none}

  /* A table cannot shrink below its min-content width, so on a phone it either forces
     the page sideways or spills out of its section. Scroll it inside its own box. */
  .tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  .tscroll>table{min-width:min-content}
  .near-table{width:100%;border-collapse:collapse;margin:8px 0 32px}
  .near-table th{text-align:left;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);padding:8px 12px;border-bottom:1px solid var(--line)}
  .near-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
  .near-table .near-seed{background:color-mix(in srgb,var(--clover) 8%,var(--surface))}
  .near-city{display:block;font-size:12px;color:var(--ink-soft)}

/* client day-filter hides cards without re-rendering (SEO: all cards in HTML) */
.route[hidden]{display:none}
.crumbs a{text-decoration:none}
.brand{text-decoration:none}
.ocard{text-decoration:none}
  .near-back{margin:28px 0 0;padding-top:20px;border-top:1px solid var(--line)}
  .near-back ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
  .near-back li span{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}
  .carrier-back{margin:0 0 20px}
  .carrier-back p{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
  .carrier-back span{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}
  .parking-link{margin:20px 0 0}
  .parking-link p{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
  .parking-link span{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}
