/* WildFares SEO pages: the one stylesheet (no Tailwind runtime on these pages).
   Values are the approved design kit's exact tokens: drafts/beta4-work-2026-10-23/
   approved_designs/kit/CONVENTIONS.md (type scale, buttons, badges, rows, history
   blocks, maps) and the SiteHeader, SiteFooter, LockedLive, PlanBox and StickyCTA
   artboards. Phone first: nothing has a fixed width over 375px; grids use
   auto-fit with min(..., 100%); tables become stacked cards under 768px. */

:root {
  --ink: #0f172a;
  --ink-2: #1e293b;
  --body: #475569;
  --muted: #64748b;
  --line: #e2e8f0;
  --line-soft: #f1f5f9;
  --ground: #f8fafc;
  --brand-50: #f0f9ff;
  --brand-100: #e0f2fe;
  --brand-200: #bae6fd;
  --brand-300: #7dd3fc;
  --brand-400: #38bdf8;
  --brand-500: #0ea5e9;
  --brand-600: #0284c7;
  --brand-700: #0369a1;
  --brand-800: #075985;
  --brand-900: #0c4a6e;
  --night: #020617;
  --live: #059669;
  --card-shadow: 0 20px 25px -5px rgba(226, 232, 240, 0.5), 0 8px 10px -6px rgba(226, 232, 240, 0.5);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #f8fafc; color: #0f172a; font-family: Inter, sans-serif; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, p, figure { margin: 0; }
img, svg { max-width: 100%; }
a { color: #0369a1; }
a:hover { color: #075985; }
[hidden] { display: none !important; }
.wf-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.wf-skip { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 12px 16px; background: #ffffff; color: #0369a1; font-weight: 700; }
.wf-skip:focus { left: 16px; top: 16px; }
.wf-page { position: relative; min-width: 0; background: #f8fafc; color: #0f172a; font-family: Inter, sans-serif; -webkit-font-smoothing: antialiased; }
.wf-flex-none { flex: none; }
.wf-rel { position: relative; }
.wf-white { color: #ffffff !important; }
.wf-center { justify-content: center; }
.wf-mt12 { margin-top: 12px; }
.wf-mt16 { margin-top: 16px; }
.wf-mt24 { margin-top: 24px; }
.wf-mt32 { margin-top: 32px; }
.wf-mt48 { margin-top: 48px; }

/* Containers and layout (CONVENTIONS 3) */
.wf-container { max-width: 1152px; margin: 0 auto; padding: 0 24px; }
.wf-container-wide { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.wf-narrow { max-width: 672px; }
.wf-head { max-width: 672px; margin-bottom: 40px; }
.wf-head-center { max-width: 768px; margin: 0 auto 80px; text-align: center; }
.wf-plans { max-width: 1024px; margin: 0 auto; }
.wf-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 32px; }
.wf-grid-stats { grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
.wf-grid-links { grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); gap: 8px 24px; }
.wf-btnrow { display: flex; flex-wrap: wrap; gap: 16px; }
.wf-stack { display: flex; flex-direction: column; gap: 24px; }

/* Sections and grounds (CONVENTIONS 4) */
.wf-section { padding: 96px 0; background: #ffffff; }
.wf-section-alt { background: #f8fafc; }
.wf-section-map { padding: 0 0 96px; background: #f8fafc; }

/* Type (CONVENTIONS 5) */
.wf-h1-hero { font-family: 'Space Grotesk', sans-serif; font-size: 72px; line-height: 90px; font-weight: 700; letter-spacing: -0.025em; }
.wf-h1 { font-family: 'Space Grotesk', sans-serif; font-size: 48px; line-height: 60px; font-weight: 700; letter-spacing: -0.025em; }
.wf-h2 { font-family: 'Space Grotesk', sans-serif; font-size: 36px; line-height: 40px; font-weight: 700; color: #0f172a; }
.wf-h2-xl { font-size: 48px; line-height: 48px; margin: 0 0 32px; }
.wf-h-lg { font-family: 'Space Grotesk', sans-serif; font-size: 24px; line-height: 32px; font-weight: 700; }
.wf-h3 { font-family: 'Space Grotesk', sans-serif; font-size: 20px; line-height: 28px; font-weight: 700; color: #0f172a; }
.wf-h-sm { font-family: 'Space Grotesk', sans-serif; font-size: 18px; line-height: 24.75px; font-weight: 700; }
.wf-lead { margin: 24px 0 0; max-width: 672px; font-size: 20px; line-height: 32.5px; font-weight: 300; color: #cbd5e1; }
.wf-body-lg { font-size: 18px; line-height: 29.25px; color: #64748b; }
.wf-body { font-size: 16px; line-height: 26px; color: #64748b; }
.wf-small { font-size: 14px; line-height: 22.75px; color: #475569; }
.wf-caption { font-size: 12px; line-height: 19.5px; color: #64748b; }
.wf-label { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #64748b; }
.wf-eyebrow { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #0369a1; }
.wf-micro { font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.wf-time { font-size: 14px; line-height: 20px; font-weight: 700; color: #1e293b; }

/* Header (SiteHeader) */
.wf-hdr-wrap { position: sticky; top: 0; z-index: 50; height: 0; }
.wf-hdr { position: relative; z-index: 50; width: 100%; background: rgba(2, 6, 23, 0.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255, 255, 255, 0.1); color: #f1f5f9; }
.wf-hdr-nav { position: relative; max-width: 1280px; margin: 0 auto; padding: 16px 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.wf-hdr-brand { display: flex; align-items: center; gap: 12px; flex: none; text-decoration: none; }
.wf-logo { display: block; width: 32px; height: 32px; border-radius: 8px; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.wf-hdr-wordmark { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 20px; line-height: 28px; letter-spacing: -0.025em; color: #ffffff; }
.wf-hdr-brand:hover .wf-hdr-wordmark { color: #7dd3fc; }
.wf-badge-preview { padding: 2px 6px; border: 1px solid rgba(56, 189, 248, 0.3); border-radius: 4px; background: rgba(14, 165, 233, 0.2); color: #7dd3fc; font-size: 9px; line-height: 14px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.wf-hdr-links { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px 24px; }
.wf-hdr-link { font-size: 14px; line-height: 20px; font-weight: 700; color: #cbd5e1; text-decoration: none; }
.wf-hdr-link:hover { color: #bae6fd; }
.wf-hdr-app { display: flex; align-items: center; gap: 4px; color: #7dd3fc; }
.wf-hdr-toggle { display: none; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin-right: -10px; padding: 0; border: 0; background: transparent; color: #e2e8f0; cursor: pointer; }
.wf-hdr-panel { position: absolute; top: 100%; left: 0; right: 0; display: flex; flex-direction: column; gap: 4px; padding: 16px; background: rgba(2, 6, 23, 0.95); border-bottom: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); }
.wf-hdr-panel .wf-hdr-link { padding: 12px 0; color: #e2e8f0; }
.wf-hdr-panel .wf-hdr-app { gap: 8px; color: #7dd3fc; }
.wf-panel-cta { margin-top: 8px; padding: 12px 20px; }

/* Buttons (CONVENTIONS 8) */
.wf-btn-hero, .wf-btn-glass, .wf-btn-primary, .wf-btn-secondary, .wf-btn-neutral, .wf-btn-bright, .wf-btn-white, .wf-btn-trial, .wf-btn-row { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; text-decoration: none; }
.wf-btn-hero { padding: 16px 32px; border-radius: 16px; background: #0284c7; color: #ffffff; font-size: 18px; line-height: 28px; box-shadow: 0 20px 25px -5px rgba(14, 165, 233, 0.2), 0 8px 10px -6px rgba(14, 165, 233, 0.2); }
.wf-btn-hero:hover { background: #0ea5e9; color: #ffffff; }
.wf-btn-glass { padding: 16px 32px; border-radius: 16px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.1); color: #ffffff; font-size: 18px; line-height: 28px; backdrop-filter: blur(4px); }
.wf-btn-glass:hover { background: rgba(255, 255, 255, 0.2); color: #ffffff; }
.wf-btn-glass-lg { gap: 12px; padding: 20px 40px; border-color: rgba(255, 255, 255, 0.2); font-size: 20px; }
.wf-btn-primary { padding: 12px 32px; border: 1px solid transparent; border-radius: 12px; background: #0284c7; color: #ffffff; font-size: 16px; line-height: 24px; box-shadow: 0 10px 15px -3px rgba(14, 165, 233, 0.2), 0 4px 6px -4px rgba(14, 165, 233, 0.2); }
.wf-btn-primary:hover { background: #0369a1; color: #ffffff; }
.wf-btn-secondary { padding: 12px 32px; border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; color: #475569; font-size: 16px; line-height: 24px; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.wf-btn-secondary:hover, .wf-btn-row:hover, .wf-also-link:hover { border-color: #7dd3fc; color: #0284c7; }
.wf-btn-row { gap: 6px; min-height: 44px; padding: 0 14px; border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; color: #0369a1; font-size: 14px; line-height: 20px; }
.wf-btn-neutral { padding: 16px 24px; border-radius: 16px; background: #f1f5f9; color: #0f172a; font-size: 16px; line-height: 24px; }
.wf-btn-neutral:hover { background: #e2e8f0; color: #0f172a; }
.wf-btn-bright { padding: 10px 20px; border-radius: 12px; background: #0ea5e9; color: #ffffff; font-size: 14px; line-height: 20px; box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.3), 0 4px 6px -4px rgba(2, 132, 199, 0.3); }
.wf-btn-bright:hover { background: #38bdf8; color: #ffffff; }
.wf-btn-trial { padding: 16px 24px; border-radius: 16px; background: #0ea5e9; color: #ffffff; font-size: 16px; line-height: 24px; box-shadow: 0 10px 15px -3px rgba(14, 165, 233, 0.3), 0 4px 6px -4px rgba(14, 165, 233, 0.3); }
.wf-btn-trial:hover { background: #38bdf8; color: #ffffff; }
.wf-btn-white { gap: 12px; padding: 20px 40px; border-radius: 16px; background: #ffffff; color: #0c4a6e; font-size: 20px; line-height: 28px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.wf-btn-white:hover { background: #f0f9ff; color: #0c4a6e; }
.wf-link { display: inline-flex; align-items: center; gap: 6px; color: #0369a1; font-weight: 700; text-decoration: none; }
.wf-link:hover { color: #075985; text-decoration: underline; }
.wf-link-44 { min-height: 44px; font-size: 14px; line-height: 20px; }
.wf-link-row { min-height: 44px; padding: 0 4px; font-size: 14px; line-height: 20px; }

/* Dark hero (CONVENTIONS 6) */
.wf-hero { padding: 128px 0 96px; background: #020617; color: #ffffff; }
.wf-hero-pull { padding-bottom: 160px; }
.wf-hero .wf-h1 { color: #ffffff; }
.wf-hero-grid { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 48px; }
.wf-hero-main { flex: 1 1 560px; min-width: 0; }
.wf-hero-aside { flex: 0 1 380px; min-width: 0; padding: 28px; border-radius: 24px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); }
.wf-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 32px; font-size: 12px; line-height: 16px; font-weight: 700; color: #94a3b8; }
.wf-crumbs a { color: #94a3b8; text-decoration: none; }
.wf-crumbs a:hover { color: #bae6fd; }
.wf-crumbs [aria-current] { color: #7dd3fc; }
.wf-eyebrow-dark { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 24px; padding: 8px 16px; border-radius: 9999px; background: rgba(12, 74, 110, 0.5); border: 1px solid rgba(14, 165, 233, 0.3); color: #bae6fd; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.wf-eyebrow-dark > span { display: inline-flex; align-items: center; }
.wf-live-dot { flex: none; width: 8px; height: 8px; border-radius: 9999px; background: #34d399; }
.wf-indep { margin: 8px 0 0; font-size: 12px; line-height: 19.5px; color: #94a3b8; }
.wf-hero-ctas { margin-top: 40px; }
.wf-hero-ctas-free { margin-top: 16px; }
.wf-hero-searches { margin: 32px 0 0; font-size: 14px; line-height: 20px; font-weight: 700; color: #e2e8f0; }
.wf-hero-note { margin: 24px 0 0; max-width: 672px; font-size: 14px; line-height: 20px; color: #94a3b8; }
.wf-aside-title { font-family: Inter, sans-serif; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #7dd3fc; }

/* Cards and panels (CONVENTIONS 7) */
.wf-card { background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); padding: 32px; }
.wf-card-table { background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); padding: 0; overflow: hidden; }
.wf-card-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 24px; padding: 20px 24px; border-bottom: 1px solid #f1f5f9; background: rgba(248, 250, 252, 0.5); }
.wf-panel { background: rgba(255, 255, 255, 0.9); border: 1px solid rgba(148, 163, 184, 0.25); border-radius: 24px; box-shadow: 0 14px 40px -20px rgba(15, 23, 42, 0.35); backdrop-filter: blur(8px); padding: 32px; }
.wf-dark { position: relative; overflow: hidden; background: #0f172a; border-radius: 24px; padding: 48px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); color: #ffffff; }
.wf-glow { position: absolute; top: -96px; right: -64px; width: 288px; height: 288px; border-radius: 9999px; background: rgba(14, 165, 233, 0.2); filter: blur(64px); pointer-events: none; }
.wf-glow-plan { right: -96px; width: 256px; height: 256px; }
.wf-stat { padding: 24px; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); }
.wf-stat-value { font-family: 'Space Grotesk', sans-serif; font-size: 36px; line-height: 40px; font-weight: 700; color: #0f172a; }
.wf-stat-label { margin: 4px 0 0; font-size: 14px; line-height: 20px; color: #64748b; }
.wf-stat-building { display: flex; align-items: center; height: 40px; }

/* Badges and chips (CONVENTIONS 9) */
.wf-pill { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 9999px; background: #e0f2fe; color: #075985; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.025em; text-transform: uppercase; }
.wf-cat { padding: 4px 10px; border-radius: 9999px; background: #f0f9ff; color: #0369a1; font-size: 12px; line-height: 16px; font-weight: 700; }
.wf-new { padding: 2px 8px; border: 1px solid #d1fae5; border-radius: 9999px; background: #ecfdf5; color: #047857; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.wf-stop-ns { font-size: 12px; line-height: 16px; font-weight: 700; color: #0369a1; }
.wf-stop-1 { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 16px; font-weight: 700; color: #475569; }
.wf-stop-dot { width: 6px; height: 6px; border-radius: 9999px; background: #fb923c; }
.wf-partner { padding: 2px 6px; border-radius: 4px; background: #f1f5f9; color: #475569; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.wf-building { display: inline-block; padding: 2px 8px; border-radius: 9999px; background: #f1f5f9; color: #475569; font-size: 12px; line-height: 16px; font-weight: 700; }
.wf-chip-airport { padding: 2px 8px; border: 1px solid #e0f2fe; border-radius: 9999px; background: #f0f9ff; color: #0369a1; font-size: 10px; line-height: 15px; font-weight: 700; }
.wf-chip { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 9999px; background: #f1f5f9; color: #334155; font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: none; }
.wf-chip:hover { background: #e0f2fe; color: #075985; }
.wf-airport-btn { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1px solid #e2e8f0; border-radius: 9999px; background: #ffffff; color: #475569; font-family: Inter, sans-serif; font-size: 14px; line-height: 20px; font-weight: 700; cursor: pointer; }
.wf-airport-btn[aria-pressed="true"] { border-color: #0369a1; background: #0369a1; color: #ffffff; }

/* Members-only live badges (filled by seo.js; never in the public HTML) */
.wf-live-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border: 1px solid #d1fae5; border-radius: 9999px; background: #ecfdf5; color: #047857; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.wf-live-badge::before { content: ""; width: 6px; height: 6px; border-radius: 9999px; background: #10b981; }
.wf-seat { padding: 2px 6px; border-radius: 4px; background: #f0f9ff; color: #0369a1; font-size: 10px; line-height: 15px; font-weight: 700; }
.wf-seat-low { background: #fffbeb; color: #b45309; }
.wf-noseats { padding: 2px 6px; border-radius: 4px; background: #f1f5f9; color: #475569; font-size: 10px; line-height: 15px; font-weight: 700; }
.wf-live { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.wf-live-day { font-size: 12px; line-height: 16px; font-weight: 700; color: #475569; }

/* Destination rows (CONVENTIONS 10) */
.wf-rows { margin: 0; padding: 0; list-style: none; }
.wf-rows-head { display: flex; gap: 12px 24px; padding: 12px 20px; background: #f8fafc; border-bottom: 1px solid #f1f5f9; }
.wf-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 16px 20px; border-top: 1px solid #f1f5f9; }
.wf-row:hover { background: #f8fafc; }
.wf-cell-dest { flex: 2 1 220px; min-width: 0; }
.wf-cell { flex: 1 1 110px; min-width: 0; }
.wf-cell-text { font-size: 14px; line-height: 20px; color: #475569; }
.wf-cell-seats { flex: 1.4 1 170px; min-width: 0; }
.wf-cell-actions { flex: 0 0 auto; display: flex; gap: 8px; }
.wf-cell-actions-head { flex: 0 0 196px; }
.wf-row-name { font-size: 16px; line-height: 24px; font-weight: 700; color: #0f172a; text-decoration: none; }
a.wf-row-name:hover { color: #075985; text-decoration: underline; }
.wf-row-sub { margin: 2px 0 0; font-size: 12px; line-height: 16px; font-weight: 700; color: #64748b; }
.wf-phone-label { display: block; margin-bottom: 2px; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #64748b; }
.wf-lockcell { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 12px; line-height: 16px; font-weight: 700; color: #64748b; text-decoration: none; }
.wf-lockcell:hover { color: #0369a1; }
.wf-upgrade-line { padding: 12px 20px; border-top: 1px solid #f1f5f9; background: #f0f9ff; font-size: 14px; line-height: 22.75px; font-weight: 600; color: #0369a1; }
.wf-upgrade-line .wf-link { display: inline; color: #075985; }

/* History blocks (CONVENTIONS 11) */
.wf-notice { padding: 12px 16px; border: 1px solid #bae6fd; border-radius: 12px; background: #f0f9ff; color: #0369a1; font-size: 14px; line-height: 22.75px; font-weight: 600; }
.wf-bars { display: flex; flex-direction: column; gap: 8px; }
.wf-bar { display: grid; grid-template-columns: 44px minmax(0, 1fr) 48px; align-items: center; gap: 12px; }
.wf-bar-day { font-size: 12px; line-height: 16px; font-weight: 700; color: #475569; }
.wf-bar-track { display: block; height: 10px; border-radius: 9999px; background: #e0f2fe; overflow: hidden; }
.wf-bar-fill { display: block; height: 100%; background: #0284c7; }
.wf-bar-val { font-size: 12px; line-height: 16px; font-weight: 700; color: #334155; text-align: right; }
.wf-bar-none { font-size: 10px; color: #64748b; }
.wf-strip { display: flex; flex-wrap: wrap; gap: 3px; }
.wf-sq { display: inline-block; width: 14px; height: 14px; border-radius: 3px; }
.wf-sq-open { background: #0284c7; }
.wf-sq-closed { background: #cbd5e1; }
.wf-sq-unchecked { background: #ffffff; border: 1px solid #e2e8f0; }
.wf-strip-key { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 12px 0 4px; padding: 0; list-style: none; font-size: 12px; line-height: 19.5px; color: #64748b; }
.wf-strip-key li { display: flex; align-items: center; gap: 6px; }

/* Map card (CONVENTIONS 13) */
.wf-map-card { margin: 0; padding: 16px; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); }
.wf-map-pull { position: relative; margin-top: -96px; }
.wf-map-clip { border-radius: 16px; overflow: hidden; }
.wf-map-clip svg { display: block; width: 100%; height: auto; }
.wf-map-cap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; padding: 4px 8px 0; }
.wf-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 16px 0 0; padding: 0; list-style: none; font-size: 12px; line-height: 16px; font-weight: 700; color: #475569; }
.wf-legend li { display: flex; align-items: center; gap: 8px; }
.wf-legend-sw { flex: none; }
.wf-map-live { stroke: #059669 !important; stroke-opacity: 1 !important; stroke-width: 2.75 !important; }
.wf-map-dim { stroke-opacity: 0.35 !important; }

/* Members-only teaser (LockedLive) */
.wf-lock { width: 100%; padding: 32px; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); color: #0f172a; }
.wf-lock-head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.wf-lock-icon { display: flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; border-radius: 9999px; background: #f0f9ff; color: #0369a1; }
.wf-lock-line { margin: 12px 0 0; max-width: 672px; font-size: 16px; line-height: 26px; color: #64748b; }
.wf-lock-rows { margin-top: 24px; display: flex; flex-direction: column; gap: 8px; }
.wf-lock-row { display: flex; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; }
.wf-lock-dot { flex: none; width: 10px; height: 10px; border-radius: 9999px; background: #e2e8f0; }
.wf-lock-bar1 { flex: 0 1 34%; height: 12px; border-radius: 9999px; background: #e2e8f0; }
.wf-lock-bar2 { flex: 0 1 18%; height: 12px; border-radius: 9999px; background: #f1f5f9; }
.wf-lock-gap { flex: 1 1 auto; }
.wf-lock-pillbar { flex: none; width: 72px; height: 24px; border-radius: 8px; background: #f1f5f9; }
.wf-lock-ctas { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.wf-lock-small { margin: 12px 0 0; }

/* Free vs Supporter (PlanBox) */
.wf-plan { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 32px; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); }
.wf-plan-dark { background: #0f172a; border: 1px solid rgba(14, 165, 233, 0.4); box-shadow: 0 25px 50px -12px rgba(12, 74, 110, 0.3); color: #ffffff; }
.wf-plan-top { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.wf-trial-flag { display: inline-flex; padding: 4px 10px; border: 1px solid rgba(56, 189, 248, 0.3); border-radius: 9999px; background: rgba(14, 165, 233, 0.2); color: #bae6fd; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.wf-plan-price { margin: 16px 0 24px; display: flex; align-items: baseline; gap: 4px; }
.wf-plan-amount { font-family: 'Space Grotesk', sans-serif; font-size: 36px; line-height: 40px; font-weight: 700; color: #0f172a; }
.wf-plan-per { font-size: 16px; line-height: 24px; font-weight: 500; color: #64748b; }
.wf-plan-per-dark { color: #94a3b8; }
.wf-plan-list { position: relative; flex: 1 1 auto; margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; font-size: 16px; line-height: 24px; color: #475569; }
.wf-plan-list li { display: flex; align-items: flex-start; gap: 12px; }
.wf-plan-list-dark { color: #cbd5e1; }
.wf-plan-check { flex: none; margin-top: 2px; }
.wf-plan-btn { display: block; margin-top: 32px; width: 100%; text-align: center; }
.wf-plan-yours { margin: 32px 0 0; width: 100%; padding: 15px 24px; border: 1px solid #e2e8f0; border-radius: 16px; color: #475569; font-size: 16px; line-height: 24px; font-weight: 700; text-align: center; }
.wf-plan-disclose { position: relative; margin: 12px 0 0; font-size: 12px; line-height: 19.5px; color: #94a3b8; text-align: center; }
.wf-plans-foot { margin: 24px auto 0; max-width: 672px; text-align: center; }
.wf-plans-foot a { color: #64748b; text-decoration: underline; }

/* FAQ, switcher, side cards */
.wf-faq-title { margin: 0 0 40px; }
.wf-faq-grid { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 48px 32px; }
.wf-faq-main { flex: 1.8 1 520px; min-width: 0; }
.wf-faq-side { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.wf-faq { display: flex; flex-direction: column; gap: 12px; }
.wf-faq-item { border: 1px solid #e2e8f0; border-radius: 16px; background: #ffffff; }
.wf-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 16px; cursor: pointer; list-style: none; font-size: 16px; line-height: 24px; font-weight: 700; color: #1e293b; }
.wf-faq-item summary::-webkit-details-marker { display: none; }
.wf-faq-plus { flex: none; font-size: 20px; line-height: 24px; font-weight: 400; color: #64748b; }
.wf-faq-item[open] .wf-faq-plus { transform: rotate(45deg); }
.wf-faq-item p { margin: 0; padding: 0 16px 16px; font-size: 14px; line-height: 22.75px; color: #475569; }
.wf-side-card { padding: 24px; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); }
.wf-also { margin: 16px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.wf-also-link, .wf-also-here, .wf-also-dash { display: flex; flex-direction: column; padding: 10px 14px; border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; color: #0f172a; text-decoration: none; }
.wf-also-here { border-color: #bae6fd; background: #f0f9ff; }
.wf-also-dash { border-style: dashed; background: #f8fafc; }
.wf-also-title { font-size: 14px; line-height: 20px; font-weight: 700; }
.wf-also-title-here { color: #0369a1; }
.wf-also-title-dash { display: flex; align-items: center; gap: 8px; color: #475569; }
.wf-also-sub { font-size: 12px; line-height: 16px; color: #64748b; }
.wf-also-sub-here { color: #475569; }

/* Closing CTA */
.wf-closing { position: relative; overflow: hidden; padding: 96px 0; background: #0c4a6e; }
.wf-closing-curve { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.1; }
.wf-closing-inner { position: relative; text-align: center; }
.wf-closing-line { margin: 0 auto 48px; max-width: 672px; font-size: 20px; line-height: 32.5px; font-weight: 300; color: #e0f2fe; }
.wf-closing-note { margin: 32px 0 0; font-size: 14px; line-height: 20px; color: #bae6fd; }

/* Sticky phone bar (StickyCTA) */
.wf-sticky-wrap { position: sticky; bottom: 0; z-index: 40; }
.wf-sticky { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 8px 12px 16px; background: rgba(2, 6, 23, 0.95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 -10px 15px -3px rgba(0, 0, 0, 0.1), 0 -4px 6px -4px rgba(0, 0, 0, 0.1); color: #e2e8f0; }
.wf-sticky-line { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; color: #e2e8f0; }
.wf-sticky-btn { flex: none; padding: 12px 16px; white-space: nowrap; }
.wf-sticky-x { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: #94a3b8; cursor: pointer; }

/* Footer (SiteFooter) */
.wf-ftr { width: 100%; padding: 48px 0; background: #020617; border-top: 1px solid #1e293b; color: #cbd5e1; }
.wf-ftr-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); gap: 32px 24px; }
.wf-ftr-col { display: flex; flex-direction: column; }
.wf-ftr-head { margin: 0 0 8px; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #f1f5f9; }
.wf-ftr-link { display: flex; align-items: center; min-height: 36px; font-size: 14px; line-height: 20px; color: #cbd5e1; text-decoration: none; }
.wf-ftr-link:hover, .wf-ftr-legal-link:hover { color: #ffffff; }
.wf-ftr-strong { font-weight: 700; color: #7dd3fc; }
.wf-ftr-app { gap: 8px; }
.wf-ftr-bar { margin-top: 40px; padding-top: 32px; border-top: 1px solid #1e293b; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; }
.wf-ftr-brand { display: flex; align-items: center; gap: 12px; font-size: 16px; line-height: 24px; font-weight: 700; color: #f1f5f9; }
.wf-ftr-logo { display: block; width: 32px; height: 32px; border-radius: 4px; }
.wf-ftr-legal { flex: 1 1 360px; max-width: 576px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; text-align: right; font-size: 12px; line-height: 16px; color: #94a3b8; }
.wf-ftr-legal p { margin: 0; }
.wf-ftr-legal-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 16px; font-weight: 700; }
.wf-ftr-legal-link { display: inline-flex; align-items: center; min-height: 32px; color: #94a3b8; text-decoration: none; }

/* Phones (the page helmet's switches) */
@media (max-width: 767px) {
  .wf-hdr-links { display: none !important; }
  .wf-hdr-toggle { display: inline-flex !important; }
  .wf-hide-phone { display: none !important; }
  .wf-section { padding-top: 64px !important; padding-bottom: 64px !important; }
  .wf-h1-hero { font-size: 48px !important; line-height: 60px !important; }
  .wf-h1 { font-size: 36px !important; line-height: 45px !important; }
  .wf-h2 { font-size: 30px !important; line-height: 36px !important; }
  .wf-lead { font-size: 18px !important; line-height: 29.25px !important; }
  .wf-map-minor { display: none; }
  .wf-map-lg .wf-map-major { font-size: 34px; }
  .wf-map-lg .wf-map-focus { font-size: 38px; }
  .wf-dark { padding: 32px; }
  .wf-ftr-legal { align-items: flex-start; text-align: left; }
  .wf-ftr-legal-links { justify-content: flex-start; }
}

/* From 768px (tablets and up) */
@media (min-width: 768px) {
  .wf-hdr-panel { display: none !important; }
  .wf-sticky-wrap, .wf-sticky { display: none !important; }
  .wf-show-phone { display: none !important; }
}

/* ── Place pages and hubs (app/seo_pages.py; approved designs GowildFromChicago,
   GowildToOrlando, FlightsFromChicago, DiscountDenFromChicago and Main) ── */
.wf-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.wf-i { flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.wf-i-b { stroke-width: 2.25; }
.wf-minw0 { min-width: 0; }
.wf-grow { flex: 999 1 560px; min-width: 0; }
.wf-flex { display: flex; }
.wf-block { display: block; }
.wf-strong { color: #0f172a; font-weight: 700; }
.wf-ink2 { margin: 0; color: #475569; }
.wf-16 { font-size: 16px; }
.wf-self-start { align-self: flex-start; }
.wf-center-text { text-align: center; }
.wf-plain { margin: 0; padding: 0; list-style: none; }
.wf-inline { display: inline; font-weight: 700; }
.wf-flexrow { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 32px; }
.wf-gap48 { gap: 48px; }
.wf-split { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 64px 32px; }
.wf-split-col { flex: 1 1 420px; min-width: 0; }
.wf-col-300 { flex: 1 1 300px; min-width: 0; }
.wf-col-320 { flex: 1 1 320px; min-width: 0; }
.wf-col-432 { flex: 1 1 432px; min-width: 0; }
.wf-col-640 { flex: 1 1 640px; min-width: 0; }
.wf-side-320 { flex: 1 1 320px; min-width: 0; }
.wf-stack16 { display: flex; flex-direction: column; gap: 16px; }
.wf-grid-440 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr)); gap: 32px; align-items: start; }
.wf-grid-400 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr)); gap: 48px; align-items: start; }
.wf-grid-420 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 32px; align-items: start; }
.wf-grid-200 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 24px; }
.wf-grid-24 { gap: 24px; }
.wf-head-32 { margin-bottom: 32px; }
.wf-head-center-40 { margin-bottom: 40px; }

/* Hero additions */
.wf-hero-main.wf-grow { flex: 999 1 560px; }
.wf-hero-aside-320 { flex: 1 1 320px; padding: 32px; }
.wf-hero-aside-360 { flex: 1 1 360px; padding: 32px; }
.wf-indep-12 { margin-top: 12px; }
.wf-hero-intro { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 16px; line-height: 26px; font-weight: 600; color: #ffffff; }
.wf-hero-intro:empty { display: none; }
.wf-hero-small { margin: 4px 0 0; max-width: 672px; font-size: 12px; line-height: 19.5px; color: #94a3b8; }
.wf-win-list { margin: 20px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 20px; }
.wf-win-item { display: flex; align-items: flex-start; gap: 14px; }
.wf-win-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 9999px; background: rgba(12, 74, 110, 0.5); color: #7dd3fc; }
.wf-win-big { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 20px; line-height: 28px; font-weight: 700; color: #ffffff; }
.wf-win-text { margin: 2px 0 0; font-size: 14px; line-height: 22.75px; color: #cbd5e1; }
.wf-win-links { margin-top: 16px; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, 0.1); display: flex; flex-wrap: wrap; gap: 0 24px; }
.wf-dark-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14px; line-height: 20px; font-weight: 700; color: #7dd3fc; text-decoration: none; }
.wf-dark-link:hover { color: #bae6fd; }
.wf-dark-inline { color: #7dd3fc; font-weight: 700; }
.wf-dark-inline:hover { color: #bae6fd; }
.wf-label-dark { color: #94a3b8; }
.wf-tiles-dark { margin-top: 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100px, 100%), 1fr)); gap: 24px 32px; }
.wf-tiles-120 { grid-template-columns: repeat(auto-fit, minmax(min(120px, 100%), 1fr)); gap: 24px; }
.wf-tile-dark-label { margin: 4px 0 0; font-size: 14px; line-height: 20px; color: #94a3b8; }
.wf-tile-dark-foot { margin: 24px 0 0; font-size: 12px; line-height: 19.5px; color: #94a3b8; }
.wf-aside-text { margin: 12px 0 0; font-size: 14px; line-height: 22.75px; color: #cbd5e1; }
.wf-aside-rule { margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.1); }
.wf-chips-dark { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.wf-chip-dark { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 9999px; background: rgba(255, 255, 255, 0.1); color: #e2e8f0; font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: none; }
.wf-chip-dark:hover { background: rgba(255, 255, 255, 0.2); color: #ffffff; }
.wf-chip-dark-here { border-color: #ffffff; background: #ffffff; color: #0c4a6e; font-weight: 700; }
.wf-chip-dark-here:hover { background: #ffffff; color: #0c4a6e; }

/* Airport filter chips (client-side) and the airport pages switcher (links) */
.wf-chips { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wf-chips-label { margin-right: 4px; }
.wf-apnav { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; font-size: 14px; line-height: 20px; color: #475569; }
.wf-apnav-dark { color: #94a3b8; }
.wf-apnav-here { font-weight: 700; color: #0f172a; }
.wf-apnav-dark .wf-apnav-here { color: #ffffff; }
.wf-apnav .wf-link { min-height: 44px; }
.wf-apnav-dark .wf-link { color: #7dd3fc; }
.wf-apnav-dark .wf-link:hover { color: #bae6fd; }

/* Table columns: each row gives every cell the same flex basis, so columns line up and
   wrap into a stacked card on a phone (CONVENTIONS 10). */
.wf-dest { min-width: 0; }
.wf-c-d170 { flex: 2 1 170px; min-width: 0; }
.wf-c-d172 { flex: 2 1 172px; min-width: 0; }
.wf-c-d200 { flex: 2 1 200px; min-width: 0; }
.wf-c-d220 { flex: 2 1 220px; min-width: 0; }
.wf-c-n80 { flex: 1 1 80px; min-width: 0; }
.wf-c-n96 { flex: 1 1 96px; min-width: 0; }
.wf-c-n100 { flex: 1 1 100px; min-width: 0; }
.wf-c-n110 { flex: 1 1 110px; min-width: 0; }
.wf-c-n120 { flex: 1 1 120px; min-width: 0; }
.wf-c-h170 { flex: 1.6 1 170px; min-width: 0; }
.wf-c-o150 { flex: 1.3 1 150px; min-width: 0; }
.wf-c-w150 { flex: 1.4 1 150px; min-width: 0; }
.wf-c-w160 { flex: 1.4 1 160px; min-width: 0; }
.wf-c-w170 { flex: 1.4 1 170px; min-width: 0; }
.wf-c-a200 { flex: 0 0 200px; }
.wf-c-a204 { flex: 0 0 204px; }
.wf-c-a210 { flex: 0 0 210px; }
.wf-c-a220 { flex: 0 0 220px; }
.wf-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.wf-acts-end { justify-content: flex-end; }
.wf-rows-head-20, .wf-row-20 { gap: 12px 20px; }
.wf-row-meta { margin: 2px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 12px; line-height: 16px; font-weight: 700; color: #64748b; }
.wf-row-via { gap: 6px; color: #475569; }
.wf-row-code { font-size: 12px; line-height: 16px; font-weight: 700; color: #64748b; }
.wf-pill-sm { padding: 2px 8px; border-radius: 9999px; background: #f0f9ff; color: #0369a1; font-size: 10px; line-height: 15px; font-weight: 700; }
.wf-typ-main { margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; color: #0f172a; }
.wf-typ-sub { margin: 0; font-size: 12px; line-height: 16px; color: #64748b; }
.wf-hist-line { margin: 0 0 4px; font-size: 12px; line-height: 16px; color: #475569; }
.wf-hist-line strong { color: #0f172a; }
.wf-strong-block { display: block; font-weight: 700; color: #0f172a; }
.wf-sub-block { display: block; font-size: 12px; line-height: 16px; color: #64748b; }
.wf-mstrip { display: grid; grid-template-columns: repeat(20, 6px); gap: 2px; }
.wf-mstrip > span { display: block; width: 6px; height: 6px; border-radius: 1.5px; }
.wf-ms-o { background: #0284c7; }
.wf-ms-c { background: #cbd5e1; }
.wf-ms-u { background: #ffffff; box-shadow: inset 0 0 0 1px #e2e8f0; }
.wf-subhead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 12px 20px; border-top: 1px solid #e2e8f0; background: #f8fafc; }
.wf-cut, .wf-ap-off { display: none !important; }
.wf-more-row { display: flex; justify-content: center; padding: 16px 20px; border-top: 1px solid #f1f5f9; }
.wf-btn-more { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 24px; border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; color: #475569; font-family: Inter, sans-serif; font-size: 14px; line-height: 20px; font-weight: 700; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); cursor: pointer; }
.wf-btn-more:hover { border-color: #7dd3fc; color: #0284c7; }
.wf-more-bar { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 56px; padding: 12px 20px; border: 0; border-top: 1px solid #f1f5f9; background: #ffffff; color: #0369a1; font-family: Inter, sans-serif; font-size: 14px; line-height: 20px; font-weight: 700; cursor: pointer; }
.wf-more-bar:hover { background: #f8fafc; }
[aria-expanded="true"] > svg { transform: rotate(180deg); }
.wf-foot { margin: 16px 0 0; max-width: 672px; font-size: 12px; line-height: 19.5px; color: #64748b; }
.wf-foot-stack { margin-top: 16px; display: flex; flex-direction: column; gap: 4px; }
.wf-label-plain { font-size: 12px; line-height: 16px; font-weight: 700; color: #64748b; }
.wf-small-muted { margin: 2px 0 0; font-size: 14px; line-height: 20px; color: #64748b; }

/* Cards and lists */
.wf-card-head-c { align-items: center; }
.wf-card-head-tight { padding: 12px 24px; gap: 0 16px; }
.wf-card-head-plain { padding: 20px 24px; border-bottom: 1px solid #f1f5f9; background: rgba(248, 250, 252, 0.5); }
.wf-card-foot { margin: 0; padding: 16px 24px; border-top: 1px solid #f1f5f9; font-size: 12px; line-height: 19.5px; color: #64748b; }
.wf-card-pad { margin: 0; padding: 20px 24px; }
.wf-card-link { padding: 8px 20px; border-top: 1px solid #f1f5f9; }
.wf-card-col { display: flex; flex-direction: column; }
.wf-card-bottom { margin-top: auto; padding-top: 20px; }
.wf-card-bottom-12 { margin-top: auto; padding-top: 12px; }
.wf-band-foot { margin: 0; padding: 12px 24px; border-top: 1px solid #f1f5f9; background: #f0f9ff; font-size: 14px; line-height: 22.75px; font-weight: 600; color: #0369a1; }
.wf-band-foot .wf-link { color: #075985; }
.wf-live-row { gap: 8px 16px; padding: 14px 24px; }
.wf-lr-name { flex: 1 1 160px; min-width: 0; }
.wf-lr-vals { flex: 1 1 160px; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.wf-row-trip { gap: 8px 16px; padding: 14px 24px; }
.wf-trip-main { flex: 1 1 220px; min-width: 0; }
.wf-trip-main .wf-row-name { margin: 0; }
.wf-trip-text { margin: 2px 0 0; font-size: 14px; line-height: 20px; color: #475569; }
.wf-trip-live { flex: 0 1 auto; min-width: 0; }
.wf-figline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.wf-figline-text { margin: 0; flex: 1 1 200px; font-size: 14px; line-height: 20px; color: #64748b; }
.wf-tile-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 9999px; background: #f0f9ff; color: #0369a1; }
.wf-tile { flex: none; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 24px; border-radius: 16px; }
.wf-tile-brand { background: #f0f9ff; color: #0284c7; }
.wf-tile-orange { background: #fff7ed; color: #ea580c; }
.wf-tile-blue { background: #eff6ff; color: #2563eb; }
.wf-tile-live { margin-bottom: 0; background: #ecfdf5; color: #059669; }
.wf-card-link-big { display: flex; flex-direction: column; color: #0f172a; text-decoration: none; }
.wf-card-link-big:hover { border-color: #bae6fd; color: #0f172a; }
.wf-card-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-size: 14px; line-height: 20px; font-weight: 700; color: #0369a1; }
.wf-card-guide { display: flex; flex-direction: column; padding: 24px; color: #0f172a; text-decoration: none; }
.wf-card-guide .wf-cat { align-self: flex-start; }
.wf-card-guide:hover { border-color: #bae6fd; color: #0f172a; }
.wf-chiprow { display: flex; flex-wrap: wrap; gap: 8px; }
.wf-chip-44 { min-height: 44px; padding: 0 16px; }
.wf-seg { display: flex; flex-wrap: wrap; gap: 4px; max-width: 100%; width: fit-content; padding: 4px; border-radius: 16px; background: #f1f5f9; }
.wf-seg-here, .wf-seg-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 12px; font-size: 14px; line-height: 20px; text-decoration: none; }
.wf-seg-here { background: #ffffff; color: #0f172a; font-weight: 700; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.wf-seg-link { color: #334155; font-weight: 600; }
.wf-seg-link:hover { background: #e0f2fe; color: #075985; }
.wf-rank { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.wf-rank li { display: grid; grid-template-columns: 104px minmax(0, 1fr) 88px; align-items: center; gap: 12px; }
.wf-rank-name { font-size: 14px; line-height: 20px; }
.wf-lockline { display: flex; align-items: flex-start; gap: 8px; margin: 16px 0 0; font-size: 14px; line-height: 22.75px; font-weight: 600; color: #475569; }
.wf-btnrow-tight { gap: 8px 16px; align-items: center; }
.wf-btn-sm { min-height: 44px; padding: 10px 20px; font-size: 14px; line-height: 20px; color: #0369a1; }
.wf-wayback-art { margin-top: 20px; padding: 16px 20px 12px; border-radius: 16px; background: #f0f9ff; }
.wf-wayback-art svg { display: block; width: 100%; height: auto; }
.wf-faq-pad { padding: 16px; }
.wf-faq-pad summary { min-height: 28px; padding: 0; }
.wf-faq-pad p { margin: 12px 0 0; padding: 0; }
.wf-checklist { margin: 24px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; font-size: 16px; line-height: 24px; color: #475569; }
.wf-checklist li { display: flex; align-items: flex-start; gap: 12px; }
.wf-checklist svg { color: #0284c7; margin-top: 2px; }
.wf-eyebrow-live { display: flex; align-items: center; gap: 8px; color: #047857; }
.wf-notice-i { display: flex; align-items: flex-start; gap: 10px; }
.wf-notice-i svg { margin-top: 2px; }
.wf-list-card { margin: 0; padding: 0; list-style: none; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); overflow: hidden; }
.wf-list-card li + li { border-top: 1px solid #f1f5f9; }
.wf-list-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 12px 20px; color: #0f172a; font-size: 15px; line-height: 22px; font-weight: 600; text-decoration: none; }
.wf-list-link:hover { background: #f8fafc; color: #075985; }

/* Discount Den */
.wf-minibar { margin-top: 6px; max-width: 120px; height: 6px; border-radius: 9999px; background: #f1f5f9; overflow: hidden; }
.wf-minibar > div { height: 100%; }
.wf-wrap8 { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.wf-wrap12 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.wf-note-12 { margin: 0; font-size: 12px; line-height: 16px; font-weight: 600; color: #64748b; }
.wf-fig16 { margin: 0; font-size: 16px; line-height: 20px; font-weight: 700; color: #0f172a; }
.wf-bandlist { margin: 24px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 16px; }
.wf-band-title { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; line-height: 20px; font-weight: 700; color: #0f172a; }
.wf-band-names { margin: 4px 0 0; font-size: 14px; line-height: 22.75px; color: #475569; }
.wf-mini-list { margin: 8px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 22.75px; color: #475569; }
.wf-gap12 { gap: 12px; }
.wf-table-wrap { overflow-x: auto; border: 1px solid #e2e8f0; border-radius: 16px; }
.wf-table { width: 100%; min-width: 360px; border-collapse: collapse; font-size: 14px; line-height: 20px; color: #475569; }
.wf-table th, .wf-table td { padding: 12px 16px; text-align: left; }
.wf-table thead tr { background: #f8fafc; }
.wf-table thead th { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #64748b; }
.wf-table tbody tr { border-top: 1px solid #f1f5f9; }
.wf-table tbody th { font-weight: 700; color: #0f172a; }
.wf-linkrow { display: flex; flex-wrap: wrap; gap: 0 24px; }
.wf-lock-icon-live { background: #ecfdf5; color: #047857; }
.wf-also-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; background: #ffffff; border: 1px solid #e2e8f0; border-radius: 24px; color: #0f172a; text-decoration: none; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
a.wf-also-card:hover { border-color: #7dd3fc; color: #0f172a; }
.wf-also-card-here { background: #f0f9ff; border-color: #bae6fd; box-shadow: none; }
.wf-pill-plain { padding: 4px 10px; border-radius: 9999px; background: #e0f2fe; color: #075985; font-size: 12px; line-height: 16px; font-weight: 700; }
.wf-chipgroups { display: flex; flex-direction: column; gap: 20px; }
.wf-chipgroup { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.wf-chipgroup-h { flex: 0 0 160px; margin: 0; }

/* Hubs */
.wf-hub-hero { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 48px 64px; }
.wf-hub-main { flex: 1 1 460px; min-width: 0; }
.wf-hub-finder { flex: 1 1 420px; min-width: 0; padding: 24px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 24px; }
.wf-fam-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.wf-fam-here, .wf-fam-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 9999px; font-size: 14px; line-height: 20px; font-weight: 700; text-decoration: none; }
.wf-fam-here { border: 1px solid #0369a1; background: #0369a1; color: #ffffff; }
.wf-fam-link { border: 1px solid #475569; background: transparent; color: #cbd5e1; }
.wf-fam-link:hover { background: rgba(255, 255, 255, 0.1); color: #ffffff; }
.wf-finder { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 8px; background: #ffffff; border: 1px solid #e2e8f0; border-radius: 16px; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.wf-finder-field { flex: 999 1 220px; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 8px 12px; }
.wf-finder-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 9999px; background: #f0f9ff; color: #0284c7; }
.wf-finder-label { display: block; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #64748b; }
.wf-finder-input { display: block; width: 100%; margin: 2px 0 0; padding: 4px 0; border: 0; background: transparent; font-family: Inter, sans-serif; font-size: 16px; line-height: 24px; font-weight: 700; color: #1e293b; }
.wf-finder-input:focus { outline: 2px solid #7dd3fc; outline-offset: 2px; border-radius: 4px; }
.wf-finder-btn { flex: 1 0 auto; min-height: 56px; padding: 12px 24px; border: 0; border-radius: 12px; font-family: Inter, sans-serif; font-size: 16px; line-height: 24px; cursor: pointer; box-shadow: 0 10px 15px -3px rgba(14, 165, 233, 0.2), 0 4px 6px -4px rgba(14, 165, 233, 0.2); }
.wf-finder-pop { display: flex; flex-wrap: wrap; align-items: center; gap: 0 16px; margin-top: 8px; }
.wf-finder-pop-l { font-size: 14px; line-height: 20px; font-weight: 600; color: #94a3b8; }
.wf-map-cap-12 { padding: 12px 8px 0; }
.wf-map-sum { margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; color: #0f172a; }
.wf-figs { display: flex; flex-wrap: wrap; gap: 16px 24px; margin-top: 24px; }
.wf-iconline { display: flex; align-items: flex-start; gap: 8px; margin: 20px 0 0; font-size: 14px; line-height: 22.75px; color: #475569; }
.wf-iconline svg { color: #0369a1; margin-top: 2px; }
.wf-region { margin-top: 12px; }
.wf-region-name { margin: 0 0 8px; font-size: 14px; line-height: 20px; font-weight: 700; color: #0f172a; }
.wf-region-card { display: flex; flex-direction: column; gap: 4px; width: 100%; padding: 20px; background: #ffffff; border: 1px solid #e2e8f0; border-radius: 16px; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); color: #0f172a; text-decoration: none; }
a.wf-region-card:hover { border-color: #7dd3fc; color: #0f172a; }
.wf-region-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-family: 'Space Grotesk', sans-serif; font-size: 18px; line-height: 24.75px; font-weight: 700; color: #0f172a; }
.wf-region-rule { margin-top: 2px; font-size: 12px; line-height: 16px; font-weight: 700; color: #0369a1; }
.wf-region-rule-dom { color: #047857; }
.wf-meaning { display: flex; flex-direction: column; gap: 20px; margin: 20px 0 0; padding: 0; list-style: none; }
.wf-meaning li { display: flex; align-items: flex-start; gap: 16px; }
.wf-meaning-t { margin: 0; font-size: 16px; line-height: 24px; font-weight: 700; color: #0f172a; }
.wf-member-card { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.wf-guide-list { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.wf-guide-link { display: block; padding: 16px 20px; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 16px; box-shadow: 0 10px 15px -3px rgba(226, 232, 240, 0.5), 0 4px 6px -4px rgba(226, 232, 240, 0.5); text-decoration: none; }
.wf-guide-link:hover { border-color: #7dd3fc; }
.wf-guide-t { display: block; margin-top: 4px; font-size: 16px; line-height: 22px; font-weight: 700; color: #0f172a; }

/* Spacing utilities (last, so they win over the component margins above) */
.wf-mt8 { margin-top: 8px; }
.wf-mt12 { margin-top: 12px; }
.wf-mt16 { margin-top: 16px; }
.wf-mt20 { margin-top: 20px; }
.wf-mt24 { margin-top: 24px; }
.wf-mt32 { margin-top: 32px; }
.wf-mt40 { margin-top: 40px; }
.wf-mt48 { margin-top: 48px; }
.wf-mt64 { margin-top: 64px; }
.wf-mt72 { margin-top: 72px; }
.wf-mb12 { margin-bottom: 12px; }
.wf-mb16 { margin-bottom: 16px; }
.wf-mb20 { margin-bottom: 20px; }
.wf-mb24 { margin-bottom: 24px; }
.wf-mb32 { margin-bottom: 32px; }
.wf-mb40 { margin-bottom: 40px; }
@media (max-width: 767px) {
  .wf-chipgroup-h { flex-basis: 100%; }
  .wf-hero-aside-320, .wf-hero-aside-360 { padding: 24px; }
}

/* ── Tonight and share landings (app/seo_tonight.py, app/share_cards.py; approved designs Tonight,
   ShareLanding). Prefixes wf-tn- and wf-sh-. Phone first: no fixed width over 375px. */
.wf-tn-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-bottom: 32px; }
.wf-tn-top .wf-crumbs { margin-bottom: 0; }
.wf-tn-from { display: flex; align-items: center; gap: 12px; padding: 6px 6px 6px 16px; border-radius: 16px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); color: #7dd3fc; }
.wf-tn-from p { margin: 0; font-size: 14px; line-height: 20px; color: #cbd5e1; }
.wf-tn-from strong { color: #ffffff; }
.wf-tn-from-pin { display: flex; flex: none; }
.wf-tn-change { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border-radius: 12px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.1); color: #ffffff; font-family: Inter, sans-serif; font-size: 14px; line-height: 20px; font-weight: 700; cursor: pointer; }
.wf-tn-change:hover { background: rgba(255, 255, 255, 0.2); }
.wf-tn-picker { margin: -16px 0 32px; padding: 16px; border-radius: 16px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); }
.wf-tn-picker-label { margin: 0; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #94a3b8; }
.wf-tn-picks { margin: 12px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.wf-tn-pick { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 9999px; background: rgba(255, 255, 255, 0.1); color: #ffffff; font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: none; }
.wf-tn-pick:hover { background: rgba(255, 255, 255, 0.2); color: #ffffff; }
.wf-tn-pick-on { background: #0284c7; font-weight: 700; }
.wf-tn-eyebrow-row { display: flex; }
.wf-tn-main { position: relative; margin-top: -96px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 32px; }
.wf-tn-list { flex: 1.6 1 560px; min-width: 0; }
.wf-tn-aside { flex: 1 1 320px; min-width: 0; }
.wf-tn-bhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 20px 24px; border-bottom: 1px solid #f1f5f9; background: rgba(248, 250, 252, 0.5); }
.wf-tn-sub { margin: 2px 0 0; font-size: 14px; line-height: 20px; color: #64748b; }
.wf-tn-count { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border: 1px solid #d1fae5; border-radius: 9999px; background: #ecfdf5; color: #047857; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.wf-tn-count::before { content: ""; width: 6px; height: 6px; border-radius: 9999px; background: #10b981; }
.wf-tn-group { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; padding: 12px 20px; background: #f8fafc; border-top: 1px solid #f1f5f9; }
.wf-tn-glabel { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #475569; }
.wf-tn-gnote { font-size: 12px; line-height: 16px; color: #64748b; }
.wf-tn-li { border-top: 1px solid #f1f5f9; }
.wf-tn-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 14px 20px; background: #ffffff; color: #0f172a; text-decoration: none; }
.wf-tn-row:hover { background: #f8fafc; color: #0f172a; }
.wf-tn-when { flex: 0 0 84px; }
.wf-tn-time { display: block; font-size: 20px; line-height: 28px; font-weight: 700; color: #1e293b; }
.wf-tn-ap { display: block; font-size: 12px; line-height: 16px; font-weight: 700; color: #64748b; }
.wf-tn-dest { flex: 1 1 170px; min-width: 0; }
.wf-tn-city { display: block; font-size: 16px; line-height: 24px; font-weight: 700; color: #0f172a; }
.wf-tn-kind { display: block; font-size: 12px; line-height: 16px; font-weight: 700; color: #0369a1; }
.wf-tn-kind span { color: #64748b; }
.wf-tn-badges { flex: 1 1 170px; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.wf-tn-trip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border: 1px solid #bae6fd; border-radius: 9999px; background: #ffffff; color: #075985; font-size: 10px; line-height: 15px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.wf-tn-note { font-size: 12px; line-height: 16px; font-weight: 600; color: #475569; }
.wf-tn-go { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14px; line-height: 20px; font-weight: 700; color: #0369a1; }
.wf-tn-empty { padding: 20px; border-top: 1px solid #f1f5f9; font-size: 14px; line-height: 22.75px; color: #475569; }
.wf-tn-lockrow { display: flex; align-items: center; gap: 16px; padding: 20px; border-top: 1px solid #f1f5f9; background: #ffffff; color: #94a3b8; }
.wf-tn-lb1 { flex: 0 0 72px; height: 14px; border-radius: 9999px; background: #e2e8f0; }
.wf-tn-lb2 { flex: 0 1 30%; height: 12px; border-radius: 9999px; background: #e2e8f0; }
.wf-tn-lb3 { flex: 0 1 16%; height: 12px; border-radius: 9999px; background: #f1f5f9; }
.wf-tn-lockword { flex: none; font-size: 12px; line-height: 16px; font-weight: 700; color: #64748b; }
.wf-tn-bfoot { padding: 16px 20px 20px; border-top: 1px solid #f1f5f9; }
.wf-tn-bfoot-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; }
.wf-tn-foot-text { margin: 0; font-size: 14px; line-height: 20px; color: #475569; }
.wf-tn-mt4 { margin-top: 4px; }
.wf-tn-steps { margin: 24px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 20px; }
.wf-tn-step { display: flex; gap: 16px; }
.wf-tn-sicon { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 9999px; background: #f0f9ff; color: #0369a1; }
.wf-tn-stitle { margin: 0; font-size: 14px; line-height: 20px; font-weight: 700; color: #0f172a; }
.wf-tn-stext { margin: 4px 0 0; font-size: 14px; line-height: 22.75px; color: #475569; }
.wf-tn-afoot { margin-top: 24px; padding-top: 20px; border-top: 1px solid #f1f5f9; }
.wf-tn-alinks { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 0 20px; }
.wf-tn-onpage { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.wf-tn-onpage-label { margin-right: 4px; }
.wf-tn-chip { min-height: 44px; padding: 0 16px; }
.wf-tn-head { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 40px; }
.wf-tn-plans-head { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-bottom: 48px; }
.wf-tn-stats { margin: 32px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 32px; }
.wf-tn-stat { padding: 24px; background: #f8fafc; border: 1px solid #f1f5f9; border-radius: 24px; }
.wf-tn-stat dd { margin: 8px 0 0; font-size: 14px; line-height: 20px; color: #64748b; }
.wf-tn-c-dest { flex: 2 1 200px; min-width: 0; }
.wf-tn-c { flex: 1 1 110px; min-width: 0; font-size: 14px; line-height: 20px; color: #475569; }
.wf-tn-c-dur { flex: 1 1 90px; min-width: 0; font-size: 14px; line-height: 20px; color: #475569; }
.wf-tn-c-act { flex: 0 0 212px; display: flex; justify-content: flex-end; gap: 8px; }
.wf-tn-alert { margin-top: 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.wf-tn-alert-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 16px; background: #f0f9ff; color: #0284c7; }
.wf-tn-alert-body { flex: 1 1 320px; min-width: 0; }
.wf-tn-alert-cta { flex: 0 1 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.wf-tn-bcard-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.wf-tn-histline { max-width: 768px; color: #475569; }
.wf-tn-grid420 { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 32px; align-items: start; }
.wf-tn-toplist { margin: 24px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.wf-tn-toplist li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; }
.wf-tn-topname { display: inline-flex; align-items: center; min-height: 32px; font-size: 14px; line-height: 20px; font-weight: 700; color: #0f172a; text-decoration: none; }
a.wf-tn-topname:hover { color: #075985; text-decoration: underline; }
.wf-tn-topval { font-size: 12px; line-height: 16px; font-weight: 700; color: #334155; }
.wf-tn-ptile { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 24px; border-radius: 16px; }
.wf-tn-ptile-blue { background: #eff6ff; color: #2563eb; }
.wf-tn-ptile-green { background: #ecfdf5; color: #059669; }
.wf-tn-faq { max-width: 768px; margin: 0 auto; }
.wf-tn-cards { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 32px; }
.wf-tn-cards li { display: flex; }
.wf-tn-card { flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 24px; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); text-decoration: none; }
.wf-tn-card:hover { border-color: #7dd3fc; }
.wf-tn-card-title { display: inline-flex; align-items: center; gap: 6px; font-family: 'Space Grotesk', sans-serif; font-size: 18px; line-height: 24.75px; font-weight: 700; color: #0f172a; }
.wf-tn-card-sub { font-size: 14px; line-height: 22.75px; color: #64748b; }
.wf-tn-guides { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px 12px; }
.wf-tn-inline { font-weight: 700; color: #0369a1; }
.wf-sh-hero { padding: 112px 0 32px; background: #f8fafc; }
.wf-sh-wrap { max-width: 672px; margin: 0 auto; padding: 0 24px; }
.wf-sh-h1 { font-family: 'Space Grotesk', sans-serif; font-size: 30px; line-height: 36px; font-weight: 700; letter-spacing: -0.025em; color: #0f172a; }
.wf-sh-fig { margin: 20px 0 0; }
.wf-sh-card { position: relative; overflow: hidden; aspect-ratio: 1200 / 630; display: flex; flex-direction: column; justify-content: space-between; padding: 16px 20px; border-radius: 24px; background: #0c4a6e; color: #ffffff; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.wf-sh-curve { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.1; }
.wf-sh-top { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.wf-sh-brand { display: flex; align-items: center; gap: 8px; font-family: 'Space Grotesk', sans-serif; font-size: 15px; line-height: 20px; font-weight: 700; letter-spacing: -0.025em; color: #ffffff; }
.wf-sh-brand img { display: block; width: 24px; height: 24px; border-radius: 6px; }
.wf-sh-site { font-size: 12px; line-height: 16px; font-weight: 600; color: #bae6fd; }
.wf-sh-route { position: relative; display: flex; align-items: center; gap: 12px; }
.wf-sh-end { flex: none; }
.wf-sh-end-r { text-align: right; }
.wf-sh-code { margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 32px; line-height: 36px; font-weight: 700; letter-spacing: -0.025em; color: #ffffff; }
.wf-sh-city { margin: 0; font-size: 12px; line-height: 16px; font-weight: 600; color: #e0f2fe; }
.wf-sh-arc { flex: 1 1 auto; min-width: 0; }
.wf-sh-title { position: relative; margin: 0; font-family: 'Space Grotesk', sans-serif; font-size: 26px; line-height: 30px; font-weight: 700; color: #ffffff; }
.wf-sh-line { position: relative; margin: 0; font-size: 12px; line-height: 16px; font-weight: 700; color: #ffffff; }
.wf-sh-status { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wf-sh-asof { font-size: 12px; line-height: 16px; font-weight: 600; color: #bae6fd; }
.wf-sh-cap { margin: 12px 0 0; font-size: 12px; line-height: 19.5px; color: #64748b; }
.wf-sh-sec { padding: 40px 0; background: #ffffff; }
.wf-sh-sec-alt { background: #f8fafc; }
.wf-sh-h2 { font-family: 'Space Grotesk', sans-serif; font-size: 24px; line-height: 32px; font-weight: 700; color: #0f172a; }
.wf-sh-btn { display: flex; width: 100%; }
.wf-sh-about { margin-top: 32px; padding: 24px; background: #ffffff; border: 1px solid #f1f5f9; border-radius: 24px; box-shadow: var(--card-shadow); }
.wf-sh-links { margin: 8px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr)); column-gap: 16px; }
.wf-sh-links a { display: flex; align-items: center; min-height: 44px; font-size: 14px; line-height: 20px; font-weight: 700; color: #0369a1; text-decoration: none; }
@media (max-width: 767px) {
  .wf-tn-c-act { flex: 1 1 100%; justify-content: flex-start; }
  .wf-tn-aside { padding: 24px; }
}

/* Route pages (app/seo_routes.py, seo/route.html; approved design RouteChicagoOrlando).
   Own wf-rt-* classes only, appended last; no margins that fight the spacing utilities. */
.wf-rt-sched { padding: 0 0 96px; background: #f8fafc; }
.wf-rt-schedgrid { position: relative; margin-top: -96px; display: flex; flex-wrap: wrap; align-items: stretch; gap: 32px; }
.wf-rt-map { flex: 1.4 1 480px; min-width: 0; }
.wf-rt-schedcard { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; }
.wf-rt-h2sm { margin: 8px 0 0; font-family: 'Space Grotesk', sans-serif; font-size: 24px; line-height: 32px; font-weight: 700; color: #0f172a; }
.wf-rt-dl { margin: 24px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap: 20px 24px; }
.wf-rt-dd { margin: 4px 0 0; font-size: 18px; line-height: 28px; font-weight: 700; color: #0f172a; }
.wf-rt-ddsub { margin: 0; font-size: 14px; line-height: 20px; color: #64748b; }
.wf-rt-days { margin-top: 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.wf-rt-dayrow { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.wf-rt-day { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 9999px; background: #e0f2fe; color: #075985; font-size: 12px; line-height: 16px; font-weight: 700; }
.wf-rt-day-off { background: #f1f5f9; color: #94a3b8; }
.wf-rt-daylabel { font-size: 14px; line-height: 20px; font-weight: 700; color: #0f172a; }
.wf-rt-also { margin-top: 24px; padding-top: 20px; border-top: 1px solid #f1f5f9; display: flex; flex-direction: column; gap: 12px; }
.wf-rt-alsoline { font-size: 14px; line-height: 22.75px; color: #475569; }
.wf-rt-alsoline strong { color: #0f172a; }
.wf-rt-inline { font-weight: 700; color: #0369a1; }
.wf-rt-foot { margin-top: auto; padding-top: 16px; font-size: 12px; line-height: 19.5px; color: #64748b; }
.wf-rt-onpage { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.wf-rt-head { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 40px; }
.wf-rt-h2 { max-width: 768px; }
.wf-rt-intro { max-width: 672px; font-size: 18px; line-height: 29.25px; color: #64748b; }
.wf-rt-pillrow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; font-size: 14px; line-height: 20px; font-weight: 700; color: #0f172a; }
.wf-rt-pilltext { display: inline-flex; align-items: center; gap: 8px; }
.wf-rt-pilltext svg { color: #0369a1; }
.wf-rt-cardhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.wf-rt-start { justify-content: flex-start; gap: 12px; }
.wf-rt-sub { margin-top: 4px; font-size: 14px; line-height: 20px; color: #64748b; }
.wf-rt-bigrow { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.wf-rt-bigrow .wf-rt-sub { margin-top: 0; }
.wf-rt-big { font-family: 'Space Grotesk', sans-serif; font-size: 36px; line-height: 40px; font-weight: 700; color: #0f172a; }
.wf-rt-seats { margin-top: 64px; display: flex; flex-direction: column; gap: 32px; }
.wf-rt-c1 { flex: 2 1 220px; min-width: 0; }
.wf-rt-c2 { flex: 1 1 110px; min-width: 0; }
.wf-rt-c3 { flex: 1.4 1 170px; min-width: 0; }
.wf-rt-c4 { flex: 0 0 auto; min-width: 0; }
.wf-rows-head .wf-rt-c4 { flex: 0 0 196px; }
.wf-rt-flight { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; font-size: 14px; line-height: 20px; color: #475569; }
.wf-rt-kind { font-size: 12px; line-height: 16px; font-weight: 700; color: #0369a1; }
.wf-rt-alert { padding: clamp(32px, 4vw, 48px); }
.wf-rt-alertrow { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 24px 40px; }
.wf-rt-alertmain { flex: 1 1 380px; min-width: 0; display: flex; align-items: flex-start; gap: 16px; }
.wf-rt-alerticon { display: flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; border-radius: 16px; background: rgba(14, 165, 233, 0.15); color: #7dd3fc; }
.wf-rt-alerth { font-family: 'Space Grotesk', sans-serif; font-size: 24px; line-height: 32px; font-weight: 700; color: #ffffff; }
.wf-rt-alertp { margin-top: 8px; font-size: 16px; line-height: 26px; color: #94a3b8; }
.wf-rt-alertcta { flex: 0 1 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.wf-rt-alertnote { margin-top: 8px; font-size: 12px; line-height: 19.5px; color: #94a3b8; }
.wf-rt-alertback { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14px; line-height: 20px; font-weight: 700; color: #7dd3fc; text-decoration: none; }
.wf-rt-alertback:hover { color: #bae6fd; }
.wf-rt-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 32px; }
.wf-rt-fares { margin-top: 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px 32px; }
.wf-rt-faresmain { flex: 1 1 420px; min-width: 0; }
.wf-rt-faresicon { display: flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; border-radius: 9999px; background: #f0f9ff; color: #0369a1; }
.wf-rt-farescta { flex: 0 1 auto; }
.wf-rt-ghosts { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.wf-rt-ghost { display: flex; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid #e2e8f0; border-radius: 12px; background: #ffffff; }
.wf-rt-g1 { flex: 0 1 34%; height: 12px; border-radius: 9999px; background: #e2e8f0; }
.wf-rt-g2 { flex: 0 1 18%; height: 12px; border-radius: 9999px; background: #f1f5f9; }
.wf-rt-g3 { flex: 1 1 auto; }
.wf-rt-g4 { flex: none; width: 72px; height: 24px; border-radius: 8px; background: #f1f5f9; }
.wf-rt-cards { display: flex; flex-wrap: wrap; gap: 32px; }
.wf-rt-backcard { flex: 1 1 100%; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 24px 40px; }
.wf-rt-arc { flex: 0 1 320px; min-width: 0; padding: 16px; border-radius: 16px; background: #f0f9ff; }
.wf-rt-arc svg { display: block; width: 100%; height: auto; }
.wf-rt-backmain { flex: 1 1 320px; min-width: 0; }
.wf-rt-altcard { flex: 1 1 300px; min-width: 0; }
.wf-rt-links { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 4px 24px; }
.wf-rt-inlinebuild { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wf-rt-navs { margin-top: 64px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 32px; }
.wf-rt-navlist { margin: 12px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.wf-rt-faq { max-width: 1024px; margin: 0 auto; }
@media (max-width: 767px) {
  .wf-rt-sched { padding-bottom: 64px; }
  .wf-rt-alerth { font-size: 20px; line-height: 28px; }
  .wf-rt-big { font-size: 30px; line-height: 36px; }
}
.wf-sh-wrap-flush { padding: 0; }
