/* ===========================================================
   Minnesota Vikings vs Chicago Bears Tickets
   /tickets/vikings-vs-bears/  — two-city ticket planner
   Every class in this file is prefixed bt-. Nothing here is
   shared with style.css or with any other page stylesheet.
   =========================================================== */

/* ---------- self-hosted expanded face (no CDN webfonts) ---------- */
@font-face{
  font-family:"Archivo Expanded BT";
  src:url("/assets/fonts/archivo-expanded-600.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Archivo Expanded BT";
  src:url("/assets/fonts/archivo-expanded-700.woff2") format("woff2");
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Archivo Expanded BT";
  src:url("/assets/fonts/archivo-expanded-900.woff2") format("woff2");
  font-weight:900;font-style:normal;font-display:swap;
}

/* ---------- tokens ---------- */
.page-twocity{
  --bt-paper:#f5f5f8;
  --bt-card:#ffffff;
  --bt-line:#d2d2de;
  --bt-line-2:#b9b9c8;
  --bt-ink:#1a1a1a;
  --bt-muted:#54545e;

  /* Minnesota */
  --bt-purple:#4f2683;
  --bt-purple-d:#3b1c63;
  --bt-purple-ink:#2a1450;
  --bt-purple-wash:#f3eefb;

  /* Chicago */
  --bt-navy:#0b162a;
  --bt-navy-2:#152744;
  --bt-navy-wash:#eef1f6;
  --bt-orange:#c83803;          /* fill / large accent only, never body text */
  --bt-orange-ink:#7d2404;      /* darkened, safe for small text on light */

  /* gold accent — only ever a fill behind dark ink, never text on white */
  --bt-gold:#ffc62f;
  --bt-gold-ink:#231800;

  --bt-exp:"Archivo Expanded BT","Archivo",var(--display);
  --bt-r:6px;
  --bt-head-h:58px;             /* site header is sticky at 58px */
  background:var(--bt-paper);
}

/* ---------- page furniture ---------- */
.bt-sec{padding:38px 0}
.bt-sec-alt{background:var(--bt-card);border-top:1px solid var(--bt-line);border-bottom:1px solid var(--bt-line)}
.bt-sec-tint{background:linear-gradient(180deg,#efecf6 0%,var(--bt-paper) 100%);border-top:1px solid var(--bt-line)}

.bt-kicker{
  display:block;font-family:var(--bt-exp);font-weight:700;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--bt-purple);margin-bottom:9px;
}
.bt-h1{
  font-family:var(--bt-exp);font-weight:900;text-transform:uppercase;
  font-size:clamp(26px,4.2vw,44px);line-height:1.05;letter-spacing:.005em;
  color:var(--bt-purple-ink);margin:0;
}
.bt-h2{
  font-family:var(--bt-exp);font-weight:700;text-transform:uppercase;
  font-size:clamp(20px,2.4vw,30px);line-height:1.12;letter-spacing:.01em;color:var(--bt-purple-ink);
}
.bt-h3{
  font-family:var(--bt-exp);font-weight:600;text-transform:uppercase;
  font-size:clamp(15px,1.6vw,18px);letter-spacing:.05em;line-height:1.25;color:var(--bt-purple-ink);
}
.bt-h4{
  font-family:var(--bt-exp);font-weight:600;font-size:13.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--bt-purple-ink);
}
.bt-lede{font-size:16.5px;line-height:1.65;color:var(--bt-muted);max-width:72ch;margin-top:12px}
.bt-p{font-size:15.5px;line-height:1.7;color:var(--bt-ink);max-width:74ch;margin-top:12px}
.bt-p a,.bt-lede a{color:var(--bt-purple);text-decoration:underline;text-underline-offset:2px}
.bt-p a:hover,.bt-lede a:hover{color:var(--bt-purple-d)}
.bt-p+.bt-p{margin-top:12px}

.bt-list{margin-top:12px;max-width:74ch}
.bt-list li{position:relative;padding-left:22px;font-size:15px;line-height:1.65;margin-top:9px;color:var(--bt-ink)}
.bt-list li::before{
  content:"";position:absolute;left:0;top:8px;width:8px;height:8px;
  background:var(--bt-gold);border:1px solid #8a6a00;transform:rotate(45deg);
}

.bt-note{
  font-size:13.5px;line-height:1.65;color:var(--bt-muted);margin-top:16px;
  padding:12px 14px;border-left:4px solid var(--bt-gold);background:#fffaea;max-width:76ch;
}
/* links inside notes, pending blocks and warnings must still look like links */
.bt-note a,.bt-warn a,.bt-pending a,.bt-accslot a,.bt-dial-read a,.bt-side dd a{
  color:var(--bt-purple);text-decoration:underline;text-underline-offset:2px;
}
.bt-note a:hover,.bt-warn a:hover,.bt-pending a:hover,.bt-accslot a:hover{color:var(--bt-purple-d)}
.bt-warn{
  margin-top:18px;padding:14px 16px;background:#fff;border:1px solid var(--bt-line);
  border-left:5px solid var(--bt-orange);max-width:76ch;
}
.bt-warn b{display:block;font-family:var(--bt-exp);font-weight:700;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--bt-orange-ink);margin-bottom:6px}
.bt-warn span{display:block;font-size:14.5px;line-height:1.65;color:var(--bt-ink)}

/* ---------- pending notes: things the brief never supplied ---------- */
.bt-pending{
  display:block;margin-top:14px;padding:12px 14px;max-width:76ch;
  background:repeating-linear-gradient(135deg,#f1f1f5 0 10px,#e7e7ee 10px 20px);
  border:1px dashed #7a7a8c;color:#2c2c36;
}
.bt-pending b{
  display:inline-block;font-family:var(--bt-exp);font-weight:700;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;background:#2c2c36;color:#fff;padding:3px 8px;margin-bottom:7px;
}
.bt-pending span{display:block;font-size:14px;line-height:1.6}
.bt-pending-sm{margin-top:10px;padding:10px 12px}

/* ---------- buttons ---------- */
.bt-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--bt-exp);font-weight:700;font-size:12.5px;letter-spacing:.09em;
  text-transform:uppercase;padding:13px 20px;border-radius:3px;
  min-height:44px;min-width:44px;text-align:center;
  border:1px solid transparent;cursor:pointer;
  transition:background 200ms,color 200ms,border-color 200ms,transform 200ms;
}
.bt-btn svg{width:16px;height:16px;flex:none}
.bt-btn-purple{background:var(--bt-purple);color:#fff}
.bt-btn-purple:hover{background:#5e2f9c;transform:translateY(-1px)}
.bt-btn-navy{background:var(--bt-navy);color:#fff}
.bt-btn-navy:hover{background:var(--bt-navy-2);transform:translateY(-1px)}
.bt-btn-line{background:#fff;color:var(--bt-purple);border-color:var(--bt-line-2)}
.bt-btn-line:hover{border-color:var(--bt-purple);background:var(--bt-purple-wash)}
.bt-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}

/* controls that only make sense once the script is running */
.bt-jsctl[hidden]{display:none}

/* ---------- banner ---------- */
.bt-banner{background:#120b22;border-bottom:4px solid var(--bt-gold)}
.bt-banner-in{padding-top:0;padding-bottom:0}
.bt-banner-svg{display:block;width:100%;height:auto;max-height:340px}
.bt-banner-img{display:block;width:100%;height:auto;max-height:300px;object-fit:cover}

/* ---------- breadcrumb + intro ---------- */
.bt-crumbs{display:flex;flex-wrap:wrap;gap:7px;font-size:12.5px;color:var(--bt-muted);padding-top:20px}
.bt-crumbs a{color:var(--bt-purple);text-decoration:underline;text-underline-offset:2px}
.bt-crumbs span[aria-current]{color:var(--bt-muted)}
.bt-crumbs em{font-style:normal;color:var(--bt-line-2)}

.bt-intro{padding-top:14px;padding-bottom:34px}
.bt-updated{
  display:inline-flex;align-items:center;gap:8px;margin-top:16px;
  font-family:var(--bt-exp);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  background:var(--bt-gold);color:var(--bt-gold-ink);padding:6px 11px;
}
.bt-updated svg{width:14px;height:14px;flex:none}

/* ---------- next-game line above the split ---------- */
.bt-nextline{
  margin-top:26px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;
  padding:14px 16px;background:var(--bt-purple-ink);color:#fff;border-radius:var(--bt-r);
}
.bt-nextline b{font-family:var(--bt-exp);font-weight:700;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bt-gold)}
.bt-nextline strong{font-family:var(--bt-exp);font-weight:700;font-size:clamp(15px,2vw,20px);letter-spacing:.02em}
.bt-nextline span{font-size:14px;color:rgba(255,255,255,.82)}

/* ---------- city switch (sticky under the 58px site header) ---------- */
.bt-switch{
  position:sticky;top:var(--bt-head-h);z-index:40;
  background:var(--bt-card);border-top:1px solid var(--bt-line);border-bottom:1px solid var(--bt-line-2);
  box-shadow:0 2px 10px rgba(20,10,40,.07);
}
.bt-switch-in{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:10px;padding-bottom:10px}
.bt-switch-lab{
  font-family:var(--bt-exp);font-weight:700;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bt-muted);margin-right:2px;
}
.bt-tabs{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.bt-tab{
  display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:10px 16px;
  border:1px solid var(--bt-line-2);background:#fff;color:var(--bt-ink);border-radius:3px;
  font-family:var(--bt-exp);font-weight:600;font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;
  cursor:pointer;transition:background 200ms,border-color 200ms,color 200ms;
}
.bt-tab svg{width:17px;height:17px;flex:none}
.bt-tab .bt-tab-mark{
  display:inline-block;width:10px;height:10px;flex:none;border:2px solid currentColor;border-radius:50%;
}
.bt-tab[aria-selected="true"].bt-tab-chi{background:var(--bt-navy);border-color:var(--bt-navy);color:#fff}
.bt-tab[aria-selected="true"].bt-tab-msp{background:var(--bt-purple);border-color:var(--bt-purple);color:#fff}
.bt-tab[aria-selected="true"] .bt-tab-mark{background:currentColor}
.bt-tab:hover{border-color:var(--bt-purple)}

/* ---------- the vertical two-city split ---------- */
.bt-split{
  display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:26px;
  border:1px solid var(--bt-line);border-radius:var(--bt-r);overflow:hidden;background:#fff;
}
.bt-side{position:relative;min-width:0;padding:26px 22px 24px;isolation:isolate;overflow:hidden}
.bt-side+.bt-side{border-left:1px solid var(--bt-line)}
.bt-side-chi{background:var(--bt-navy-wash)}
.bt-side-msp{background:var(--bt-purple-wash)}
.bt-side-silo{
  position:absolute;right:-10px;bottom:-6px;z-index:-1;
  width:230px;height:110px;opacity:.16;
}
.bt-side-chi .bt-side-silo{color:var(--bt-navy)}
.bt-side-msp .bt-side-silo{color:var(--bt-purple)}
.bt-side-tag{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--bt-exp);font-weight:700;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  padding:5px 10px;color:#fff;
}
.bt-side-chi .bt-side-tag{background:var(--bt-navy)}
.bt-side-msp .bt-side-tag{background:var(--bt-purple)}
.bt-side-tag svg{width:14px;height:14px;flex:none}
.bt-side h3{margin-top:12px}
.bt-side-venue{margin-top:6px;font-size:14.5px;color:var(--bt-muted)}
.bt-side dl{margin:16px 0 0;display:grid;grid-template-columns:auto 1fr;gap:7px 14px;min-width:0}
.bt-side dt{
  font-family:var(--bt-exp);font-weight:600;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--bt-muted);padding-top:2px;min-width:0;
}
.bt-side dd{margin:0;font-size:14.5px;line-height:1.5;color:var(--bt-ink);min-width:0}

/* ---------- ticket stubs ---------- */
.bt-stubs{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}
.bt-stub{
  position:relative;min-width:0;background:#fff;border:1px solid var(--bt-line);
  border-radius:var(--bt-r);display:flex;min-height:0;overflow:hidden;
}
.bt-stub-rail{
  flex:none;width:62px;display:flex;align-items:center;justify-content:center;color:#fff;
}
.bt-stub-chi .bt-stub-rail{background:var(--bt-navy)}
.bt-stub-msp .bt-stub-rail{background:var(--bt-purple)}
.bt-stub-rail span{
  writing-mode:vertical-rl;transform:rotate(180deg);
  font-family:var(--bt-exp);font-weight:700;font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  white-space:nowrap;
}
.bt-stub-perf{
  flex:none;width:2px;background-image:linear-gradient(180deg,var(--bt-line-2) 0 7px,transparent 7px 14px);
  background-size:2px 14px;
}
.bt-stub-body{flex:1;min-width:0;padding:20px 18px}
.bt-stub-body h3{font-size:clamp(15px,1.7vw,19px)}
.bt-stub dl{margin:14px 0 0;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;min-width:0}
.bt-stub dt{
  font-family:var(--bt-exp);font-weight:600;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--bt-muted);padding-top:2px;min-width:0;
}
.bt-stub dd{margin:0;font-size:14.5px;line-height:1.5;color:var(--bt-ink);min-width:0}
.bt-status{
  display:inline-flex;align-items:center;gap:7px;padding:4px 9px;
  font-family:var(--bt-exp);font-weight:600;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
}
.bt-status svg{width:13px;height:13px;flex:none}
.bt-status-set{background:#e6f2e8;color:#164b21;border:1px solid #164b21}
.bt-status-tba{background:#fff3d6;color:#5e3f00;border:1px dashed #5e3f00}
.bt-stub-foot{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}

/* ---------- comparison table ---------- */
.bt-tablewrap{margin-top:20px;overflow-x:auto;border:1px solid var(--bt-line);border-radius:var(--bt-r);background:#fff}
.bt-table{width:100%;border-collapse:collapse;min-width:560px;font-size:14.5px}
.bt-table caption{text-align:left;padding:14px 16px 0;font-size:13.5px;color:var(--bt-muted)}
.bt-table th,.bt-table td{border:1px solid var(--bt-line);padding:11px 14px;text-align:left;vertical-align:top;line-height:1.5}
.bt-table thead th{
  font-family:var(--bt-exp);font-weight:700;font-size:11px;letter-spacing:.11em;text-transform:uppercase;
  background:var(--bt-purple-ink);color:#fff;border-color:var(--bt-purple-ink);
}
.bt-table tbody th{
  font-family:var(--bt-exp);font-weight:600;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--bt-purple-ink);width:1%;white-space:nowrap;
}
.bt-row-a{background:#fff}
.bt-row-b{background:#f4f4f8}

/* ---------- route decision ---------- */
.bt-routes{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.bt-route{
  min-width:0;background:#fff;border:1px solid var(--bt-line);border-radius:var(--bt-r);
  padding:22px 20px;border-top:5px solid var(--bt-navy);
}
.bt-route-open{border-top-color:var(--bt-navy)}
.bt-route-gap{border-top-color:#7a7a8c;background:#fafafc}
.bt-route-step{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--bt-exp);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bt-muted);
}
.bt-route-step svg{width:15px;height:15px;flex:none}
.bt-route h3{margin-top:10px}
.bt-sub{
  margin-top:18px;font-family:var(--bt-exp);font-weight:600;font-size:11.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--bt-purple-ink);
}

/* ---------- price dial ---------- */
.bt-dialwrap{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:26px;margin-top:24px;align-items:start}
.bt-dialcard{
  min-width:0;background:#fff;border:1px solid var(--bt-line);border-radius:var(--bt-r);padding:20px;
}
.bt-dial{display:block;width:100%;height:auto;max-width:300px;margin:0 auto}
.bt-dial-needle{transform-box:fill-box;transform-origin:50% 100%;transition:transform 600ms ease}
.bt-dial-legend{display:flex;justify-content:space-between;gap:10px;margin-top:12px;min-width:0}
.bt-dial-legend span{
  font-family:var(--bt-exp);font-weight:600;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--bt-muted);min-width:0;
}
.bt-dial-read{
  margin-top:14px;padding:11px 13px;background:var(--bt-purple-wash);border:1px solid #cdbde8;
  font-size:14px;line-height:1.55;color:var(--bt-purple-ink);
}
.bt-dial-read b{display:block;font-family:var(--bt-exp);font-weight:700;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;margin-bottom:4px}
.bt-factors{min-width:0}
.bt-factor{
  display:flex;gap:14px;align-items:flex-start;min-width:0;
  background:#fff;border:1px solid var(--bt-line);border-radius:var(--bt-r);padding:14px 16px;margin-top:12px;
}
.bt-factor svg{width:26px;height:26px;flex:none;color:var(--bt-purple)}
.bt-factor div{min-width:0}
.bt-factor b{display:block;font-family:var(--bt-exp);font-weight:600;font-size:12.5px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--bt-purple-ink)}
.bt-factor span{display:block;font-size:14px;line-height:1.6;color:var(--bt-muted);margin-top:4px}

/* ---------- ticket safety scanner ---------- */
.bt-scan{margin-top:24px;background:#fff;border:1px solid var(--bt-line);border-radius:var(--bt-r);overflow:hidden}
.bt-scan-head{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:16px 18px;
  background:var(--bt-purple-ink);color:#fff;min-width:0;
}
.bt-scan-icon{width:34px;height:34px;flex:none;color:var(--bt-gold)}
.bt-scan-head div{min-width:0;flex:1}
.bt-scan-head b{display:block;font-family:var(--bt-exp);font-weight:700;font-size:13px;letter-spacing:.09em;text-transform:uppercase}
.bt-scan-head>div>span{display:block;font-size:13.5px;color:rgba(255,255,255,.82);margin-top:3px}
.bt-scan-count{
  flex:none;font-family:var(--bt-exp);font-weight:700;font-size:12px;letter-spacing:.08em;
  background:var(--bt-gold);color:var(--bt-gold-ink);padding:7px 12px;
}
.bt-scanbar{height:8px;background:#e3e3ec;position:relative;overflow:hidden}
.bt-scanbar i{
  display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,#1c6b2c 0 8px,#248238 8px 16px);
  transition:width 350ms ease;
}
.bt-checks{padding:6px 0}
.bt-check{
  display:flex;gap:14px;align-items:flex-start;min-width:0;
  padding:14px 18px;border-top:1px solid var(--bt-line);
}
.bt-check:first-child{border-top:0}
.bt-check-box{
  flex:none;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;margin:0;
}
.bt-check input{
  width:26px;height:26px;margin:0;accent-color:#1c6b2c;cursor:pointer;
}
.bt-check-lab{min-width:0;flex:1;cursor:pointer;display:block;padding:9px 0}
.bt-check-lab b{
  display:block;font-family:var(--bt-exp);font-weight:600;font-size:13px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--bt-purple-ink);
}
.bt-check-lab span{display:block;font-size:14.5px;line-height:1.6;color:var(--bt-ink);margin-top:4px}
.bt-check-state{
  flex:none;align-self:flex-start;margin-top:4px;display:inline-flex;align-items:center;gap:6px;
  font-family:var(--bt-exp);font-weight:700;font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  padding:5px 9px;border:1px solid var(--bt-line-2);color:var(--bt-muted);background:#f6f6fa;
}
.bt-check-state svg{width:13px;height:13px;flex:none}
.bt-check-state .bt-state-done{display:none}
.bt-check-done .bt-check-state{background:#e6f2e8;border-color:#164b21;color:#164b21}
.bt-check-done .bt-check-state .bt-state-done{display:inline-flex;align-items:center;gap:6px}
.bt-check-done .bt-check-state .bt-state-todo{display:none}
.bt-check-done{background:#f4faf5}
.bt-scan-foot{padding:14px 18px;border-top:1px solid var(--bt-line);background:#fafafc}

/* ---------- game-day clock ---------- */
.bt-clock{margin-top:22px;position:relative;padding-left:34px}
.bt-clock::before{content:"";position:absolute;left:12px;top:8px;bottom:8px;width:3px;background:var(--bt-line-2)}
.bt-step{position:relative;padding:0 0 22px}
.bt-step:last-child{padding-bottom:0}
.bt-step-dot{
  position:absolute;left:-34px;top:2px;width:27px;height:27px;border-radius:50%;
  background:#fff;border:3px solid var(--bt-purple);display:grid;place-items:center;
}
.bt-step-dot svg{width:13px;height:13px;color:var(--bt-purple)}
.bt-step-chi .bt-step-dot{border-color:var(--bt-navy)}
.bt-step-chi .bt-step-dot svg{color:var(--bt-navy)}
.bt-step b{
  display:block;font-family:var(--bt-exp);font-weight:700;font-size:12.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--bt-purple-ink);
}
.bt-step p{margin-top:6px;font-size:15px;line-height:1.65;color:var(--bt-ink);max-width:70ch}
.bt-step-kick .bt-step-dot{background:var(--bt-gold);border-color:#8a6a00}
.bt-step-kick .bt-step-dot svg{color:var(--bt-gold-ink)}

/* ---------- weather split ---------- */
.bt-weather{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}
.bt-wcol{
  min-width:0;background:#fff;border:1px solid var(--bt-line);border-radius:var(--bt-r);padding:20px;
  border-top:5px solid var(--bt-navy);
}
.bt-wcol-msp{border-top-color:var(--bt-purple)}
.bt-wcol-head{display:flex;align-items:center;gap:11px;min-width:0}
.bt-wcol-head svg{width:30px;height:30px;flex:none;color:var(--bt-purple)}
.bt-wcol-chi .bt-wcol-head svg{color:var(--bt-navy)}
.bt-wcol-head h3{min-width:0}
.bt-wcol-env{
  display:inline-block;margin-top:12px;padding:4px 9px;background:#eceaf3;border:1px solid var(--bt-line-2);
  font-family:var(--bt-exp);font-weight:600;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--bt-purple-ink);
}

/* ---------- accessible seating ---------- */
.bt-accbtns{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.bt-accslot{
  min-width:0;flex:1 1 280px;padding:14px 16px;border:1px dashed #7a7a8c;background:#f1f1f5;
}
.bt-accslot b{display:block;font-family:var(--bt-exp);font-weight:700;font-size:12.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--bt-purple-ink)}
.bt-accslot em{
  display:inline-block;margin-top:8px;font-style:normal;
  font-family:var(--bt-exp);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  background:#2c2c36;color:#fff;padding:3px 8px;
}
.bt-accslot span{display:block;margin-top:7px;font-size:13.5px;line-height:1.55;color:#2c2c36}

/* ---------- FAQ ---------- */
.bt-faq{margin-top:22px;border:1px solid var(--bt-line);border-radius:var(--bt-r);background:#fff;overflow:hidden}
.bt-faq-item{border-top:1px solid var(--bt-line);padding:18px}
.bt-faq-item:first-child{border-top:0}
.bt-faq-item h3{font-size:15px;text-transform:none;letter-spacing:.01em}
.bt-faq-item p{margin-top:8px;font-size:15px;line-height:1.7;color:var(--bt-ink);max-width:74ch}

/* ---------- final purchase panel ---------- */
.bt-panelform{
  margin-top:22px;background:#fff;border:1px solid var(--bt-line);border-radius:var(--bt-r);overflow:hidden;
}
.bt-panelform-head{padding:18px;background:var(--bt-purple-ink);color:#fff}
.bt-panelform-head b{display:block;font-family:var(--bt-exp);font-weight:700;font-size:13px;letter-spacing:.09em;text-transform:uppercase}
.bt-panelform-head span{display:block;font-size:13.5px;color:rgba(255,255,255,.82);margin-top:4px}
.bt-fields{display:grid;grid-template-columns:1fr 1fr;gap:0}
.bt-field{min-width:0;padding:16px 18px;border-top:1px solid var(--bt-line)}
.bt-field:nth-child(odd){border-right:1px solid var(--bt-line)}
.bt-label{
  display:block;font-family:var(--bt-exp);font-weight:600;font-size:11px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--bt-purple-ink);margin-bottom:8px;
}
.bt-input,.bt-select{
  width:100%;min-height:44px;padding:10px 12px;font:inherit;font-size:15px;color:var(--bt-ink);
  background:#fff;border:1px solid var(--bt-line-2);border-radius:3px;
}
.bt-out{
  display:block;min-height:44px;padding:11px 12px;font-size:15px;color:var(--bt-ink);
  background:#f6f6fa;border:1px solid var(--bt-line);border-radius:3px;
}
.bt-radios{display:flex;flex-wrap:wrap;gap:8px}
.bt-radio{
  display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:9px 14px;
  border:1px solid var(--bt-line-2);border-radius:3px;background:#fff;cursor:pointer;font-size:15px;
}
.bt-radio input{width:20px;height:20px;margin:0;accent-color:var(--bt-purple);flex:none}
.bt-radio:hover{border-color:var(--bt-purple)}
.bt-panelform-foot{padding:18px;border-top:1px solid var(--bt-line);background:#fafafc}

/* ---------- related ---------- */
.bt-related{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:20px}
.bt-rel{
  min-width:0;display:block;background:#fff;border:1px solid var(--bt-line);border-radius:var(--bt-r);
  padding:16px;transition:border-color 200ms,transform 200ms;
}
.bt-rel:hover{border-color:var(--bt-purple);transform:translateY(-2px)}
.bt-rel b{display:flex;align-items:center;gap:9px;font-family:var(--bt-exp);font-weight:600;font-size:13px;
  letter-spacing:.05em;text-transform:uppercase;color:var(--bt-purple-ink);min-width:0}
.bt-rel b svg{width:16px;height:16px;flex:none;color:var(--bt-purple)}
.bt-rel span{display:block;margin-top:7px;font-size:14px;line-height:1.55;color:var(--bt-muted)}

/* ---------- city panels: open by default, script closes one ---------- */
.bt-city{margin-top:24px}
.bt-city[hidden]{display:none}
.bt-city-head{
  display:flex;flex-wrap:wrap;align-items:center;gap:11px;min-width:0;
  padding:12px 16px;border-radius:var(--bt-r) var(--bt-r) 0 0;color:#fff;
}
.bt-city-chi .bt-city-head{background:var(--bt-navy)}
.bt-city-msp .bt-city-head{background:var(--bt-purple)}
.bt-city-head svg{width:20px;height:20px;flex:none}
.bt-city-head b{font-family:var(--bt-exp);font-weight:700;font-size:12.5px;letter-spacing:.11em;text-transform:uppercase;min-width:0}
.bt-city-body{
  border:1px solid var(--bt-line);border-top:0;border-radius:0 0 var(--bt-r) var(--bt-r);
  background:#fff;padding:22px 20px;
}
.bt-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- decorative silhouettes / illustration sizing ---------- */
.bt-ico{width:18px;height:18px}
.bt-silo-lg{width:100%;height:auto;max-height:150px}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .bt-split{grid-template-columns:1fr}
  .bt-side-silo{display:none}
  .bt-side+.bt-side{border-left:0;border-top:1px solid var(--bt-line)}
  .bt-stubs{grid-template-columns:1fr}
  .bt-routes{grid-template-columns:1fr}
  .bt-weather{grid-template-columns:1fr}
  .bt-dialwrap{grid-template-columns:1fr}
  .bt-fields{grid-template-columns:1fr}
  .bt-field:nth-child(odd){border-right:0}
}
@media (max-width:640px){
  .bt-sec{padding:28px 0}
  .bt-switch-in{gap:8px}
  .bt-switch-lab{width:100%;margin-bottom:2px}
  .bt-tabs{width:100%}
  .bt-tab{flex:1 1 140px;justify-content:center}
  .bt-side dl,.bt-stub dl{grid-template-columns:1fr;gap:3px 0}
  .bt-side dt,.bt-stub dt{padding-top:9px}
  .bt-stub-rail{width:44px}
  .bt-stub-rail span{font-size:11px;letter-spacing:.18em}
  .bt-check{padding:13px 14px;gap:8px}
  .bt-check-state{margin-top:0}
  .bt-scan-head{gap:11px}
  .bt-banner-svg{max-height:190px}
  .bt-clock{padding-left:28px}
  .bt-clock::before{left:9px}
  .bt-step-dot{left:-28px;width:23px;height:23px}
}
@media (max-width:420px){
  .bt-check{flex-wrap:wrap}
  .bt-check-state{order:3;margin-left:52px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .bt-city,.bt-tab,.bt-btn,.bt-rel{transition:none!important}
  .bt-dial-needle{transition:none!important}
  .bt-scanbar i{transition:none!important}
  .bt-scan-icon,.bt-scanline{animation:none!important}
  .bt-btn:hover,.bt-rel:hover,.bt-tab:hover{transform:none!important}
}

/* ---------- no-script fallback note (visible until the script runs) ---------- */
.bt-jsoff[hidden]{display:none}

/* ---------- a heading that is a marked placeholder, not supplied copy ---------- */
.bt-h3-gap{color:#41414e;font-weight:600;letter-spacing:.08em}
