/* The blog in the customer-journey design, loaded after css/tbf-landing.css (blog.php and blog-detail.php add both):
   - the standalone posts (blog-* classes; blog-detail.php maps their inline dark-theme colours, see tbf_blog_light());
   - the five built-in articles (ba-*) and the index (bl-*), whose dark <style> blocks were removed.
   Rules start with body.tbf-journey so the older dark-theme stylesheets, loaded on every page, cannot win over them. */

/* Standalone posts: hero, article column, tables, call-to-action box, the related box after the article */
body.tbf-journey .blog-post-main { display:block; background:#f5f7fa; color:#14243a; }
body.tbf-journey .blog-post-main .container, body.tbf-journey .blog-after .container { max-width:820px; padding-left:20px; padding-right:20px; }
body.tbf-journey .blog-hero-section { padding:28px 0 32px; background:linear-gradient(180deg,#e9f0f7 0%,#f5f7fa 100%); border-bottom:1px solid #e4e9f0; }
body.tbf-journey .blog-hero-section .tl-crumbs { margin-bottom:20px; }
body.tbf-journey .blog-category-tag { display:inline-block; margin:0 0 14px; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:700; letter-spacing:.2px; }
body.tbf-journey .blog-hero-section h1 { margin:0 0 12px; font-size:clamp(30px,3.4vw,42px); line-height:1.15; letter-spacing:-1px; font-weight:800; color:#14243a; }
body.tbf-journey .blog-meta { margin:0; font-size:14px; line-height:1.6; color:#536176; }
body.tbf-journey .blog-content { padding-top:32px; padding-bottom:8px; }
body.tbf-journey .blog-content p, body.tbf-journey .blog-content li { font-size:17px; line-height:1.75; color:#3d4b60; }
body.tbf-journey .blog-content p { margin:0 0 16px; }
body.tbf-journey .blog-content .blog-intro { margin:0 0 24px; font-size:19px; line-height:1.65; font-weight:500; color:#14243a; }
body.tbf-journey .blog-content h2 { margin:40px 0 12px; font-size:clamp(22px,2.3vw,27px); line-height:1.25; letter-spacing:-.4px; font-weight:800; color:#14243a; }
body.tbf-journey .blog-content h3 { margin:28px 0 10px; font-size:19px; line-height:1.35; font-weight:700; color:#14243a; }
body.tbf-journey .blog-content ul, body.tbf-journey .blog-content ol { margin:0 0 18px; padding-left:24px; }
body.tbf-journey .blog-content li { margin:0 0 6px; }
body.tbf-journey .blog-content strong { color:#14243a; }
body.tbf-journey .blog-content a:not([style]) { color:#c8102e; font-weight:600; }
body.tbf-journey .blog-content img { max-width:100%; height:auto; border-radius:12px; }
body.tbf-journey .blog-content table { background:#fff; border:1px solid #dce3ec; }
body.tbf-journey .blog-content .blog-table { width:100%; margin:20px 0; border-collapse:collapse; overflow:hidden; border-radius:12px; font-size:15px; }
body.tbf-journey .blog-content .blog-table th { padding:12px 16px; text-align:left; background:#f0f4f9; color:#14243a; font-weight:700; }
body.tbf-journey .blog-content .blog-table td { padding:12px 16px; border-top:1px solid #e4e9f0; color:#3d4b60; }
body.tbf-journey .blog-cta-box { margin:36px 0 8px; padding:24px 26px; background:#fff; border:1px solid #dce3ec; border-radius:16px; box-shadow:0 4px 18px #14243a0a; }
body.tbf-journey .blog-cta-box h3 { margin:0 0 8px; font-size:19px; font-weight:700; color:#14243a; }
body.tbf-journey .blog-cta-box p:last-child { margin:0; }
body.tbf-journey .blog-after { padding:8px 0 56px; background:#f5f7fa; }
body.tbf-journey .blog-after h2, body.tbf-journey .blog-after h3 { color:#14243a; }

/* Built-in articles (blog-detail.php's own template) */
body.tbf-journey .ba-page { display:block; min-height:80vh; padding-bottom:72px; background:linear-gradient(180deg,#e9f0f7 0,#f5f7fa 420px); color:#14243a; font-family:inherit; }
body.tbf-journey .ba-page .ba-c { max-width:820px; margin:0 auto; padding:0 20px; }
body.tbf-journey .ba-page .ba-hero { padding:28px 0 8px; }
body.tbf-journey .ba-page .ba-back { display:inline-flex; align-items:center; gap:6px; margin:0 0 18px; font-size:14px; font-weight:600; color:#536176; text-decoration:none; }
body.tbf-journey .ba-page .ba-back:hover { color:#c8102e; }
body.tbf-journey .ba-page .ba-cat { display:inline-flex; align-items:center; margin:0 0 14px; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:700; }
body.tbf-journey .ba-page .ba-hero h1 { margin:0 0 12px; font-size:clamp(30px,3.4vw,42px); line-height:1.15; letter-spacing:-1px; font-weight:800; color:#14243a; }
body.tbf-journey .ba-page .ba-meta { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin:0 0 28px; font-size:14px; color:#536176; }
body.tbf-journey .ba-page .ba-quick { margin:0 0 32px; padding:20px 22px; background:#fff; border:1px solid #dce3ec; border-left:4px solid #c8102e; border-radius:12px; }
body.tbf-journey .ba-page .ba-quick h3 { margin:0 0 6px; font-size:15px; font-weight:700; color:#c8102e; }
body.tbf-journey .ba-page .ba-quick p { margin:0; font-size:16px; line-height:1.7; color:#3d4b60; }
body.tbf-journey .ba-page .ba-body { margin-bottom:40px; }
body.tbf-journey .ba-page .ba-body h2 { margin:36px 0 12px; font-size:clamp(22px,2.3vw,27px); line-height:1.25; letter-spacing:-.4px; font-weight:800; color:#14243a; }
body.tbf-journey .ba-page .ba-body h3 { margin:24px 0 10px; font-size:19px; font-weight:700; color:#14243a; }
body.tbf-journey .ba-page .ba-body p, body.tbf-journey .ba-page .ba-body li { font-size:17px; line-height:1.75; color:#3d4b60; }
body.tbf-journey .ba-page .ba-body p { margin:0 0 16px; }
body.tbf-journey .ba-page .ba-body ul, body.tbf-journey .ba-page .ba-body ol { margin:0 0 16px; padding-left:24px; }
body.tbf-journey .ba-page .ba-body li { margin:0 0 6px; }
body.tbf-journey .ba-page .ba-body a { color:#c8102e; font-weight:600; text-decoration:none; }
body.tbf-journey .ba-page .ba-body strong { color:#14243a; }
body.tbf-journey .ba-page :is(.ba-faq,.ba-related) { margin:0 0 32px; padding-top:32px; border-top:1px solid #dce3ec; }
body.tbf-journey .ba-page :is(.ba-faq,.ba-related) h3 { margin:0 0 12px; font-size:20px; font-weight:800; color:#14243a; }
body.tbf-journey .ba-page .ba-faq-i { margin:0; overflow:hidden; background:none; border:0; border-bottom:1px solid #dce3ec; border-radius:0; }
body.tbf-journey .ba-page .ba-faq-q { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:18px 0; cursor:pointer; font-size:17px; font-weight:500; color:#14243a; }
body.tbf-journey .ba-page .ba-faq-q:hover { color:#c8102e; }
body.tbf-journey .ba-page .ba-faq-q i { flex:none; display:grid; place-items:center; width:30px; height:30px; border:1px solid #dce3ec; border-radius:50%; color:#14243a; font-size:18px; transition:transform .2s; }
body.tbf-journey .ba-page .ba-faq-i.open .ba-faq-q i { transform:rotate(180deg); color:#c8102e; }
body.tbf-journey .ba-page .ba-faq-a { max-height:0; padding:0; overflow:hidden; transition:max-height .3s ease; }
body.tbf-journey .ba-page .ba-faq-i.open .ba-faq-a { max-height:900px; padding:0 0 16px; }
body.tbf-journey .ba-page .ba-faq-a p { margin:0; font-size:15px; line-height:1.7; color:#536176; }
body.tbf-journey .ba-page .ba-related-links { display:flex; flex-wrap:wrap; gap:10px; }
body.tbf-journey .ba-page .ba-related-links a { display:inline-flex; align-items:center; gap:6px; padding:10px 16px; background:#fff; border:1px solid #dce3ec; border-radius:10px; color:#14243a; font-size:14px; font-weight:600; text-decoration:none; }
body.tbf-journey .ba-page .ba-related-links a:hover { border-color:#b6c3d3; color:#c8102e; }
body.tbf-journey .ba-page .ba-cta { margin:0 0 24px; padding:28px 32px; text-align:left; background:#e8eef5; border:0; border-radius:16px; }
body.tbf-journey .ba-page .ba-cta h3 { margin:0 0 8px; font-size:22px; font-weight:800; color:#14243a; }
body.tbf-journey .ba-page .ba-cta p { margin:0 0 18px; font-size:16px; line-height:1.6; color:#3d4b60; }
body.tbf-journey .ba-page .ba-cta a { display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:0 22px; border-radius:8px; font-size:15px; font-weight:700; text-decoration:none; }
body.tbf-journey .ba-page .ba-cta .wa { background:#fff; color:#0b7a4b; border:1px solid #b9e0cb; }
body.tbf-journey .ba-page .ba-cta .wa:hover { background:#f0faf4; border-color:#8fd0ad; }

/* The index (blog.php): search, category filter, guide cards, airport guides */
body.tbf-journey .bl-page { display:block; min-height:80vh; padding-bottom:72px; background:linear-gradient(180deg,#e9f0f7 0,#f5f7fa 520px); color:#14243a; font-family:inherit; }
body.tbf-journey .bl-page .bl-c { width:min(1160px,calc(100% - 64px)); max-width:none; margin-inline:auto; padding:0; }
body.tbf-journey .bl-page .tl-crumbs a { color:#536176; font-weight:400; }
body.tbf-journey .bl-page .bl-hero { padding:28px 0 8px; text-align:left; overflow:visible; }
body.tbf-journey .bl-page .bl-hero::before { content:none; }
body.tbf-journey .bl-page .bl-hero .tl-crumbs { margin-bottom:24px; }
body.tbf-journey .bl-page .bl-hero h1 { margin:0 0 12px; font-size:clamp(32px,3.7vw,48px); line-height:1.1; letter-spacing:-1.2px; font-weight:800; color:#14243a; }
body.tbf-journey .bl-page .bl-hero h1 span { color:#c8102e; }
body.tbf-journey .bl-page .bl-hero .sub { max-width:680px; margin:0; font-size:17px; line-height:1.65; color:#3d4b60; }
body.tbf-journey .bl-page #blogSearch { min-height:50px; font-size:16px!important; -webkit-text-fill-color:#14243a; }
body.tbf-journey .bl-page #blogSearch::placeholder { color:#8593a5; -webkit-text-fill-color:#8593a5; opacity:1; }
body.tbf-journey .bl-page .bl-cats { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px; margin:20px 0 28px; }
body.tbf-journey .bl-page .bl-cat { padding:8px 14px; border:1px solid #dce3ec; border-radius:999px; background:#fff; color:#3d4b60; font-size:13px; font-weight:600; cursor:pointer; transition:background .15s,border-color .15s,color .15s; }
body.tbf-journey .bl-page .bl-cat:hover { border-color:#14243a; color:#14243a; background:#fff; }
body.tbf-journey .bl-page .bl-cat.active { border-color:#14243a; background:#14243a; color:#fff; }
body.tbf-journey .bl-page .bl-count { margin:0 0 16px; text-align:left; font-size:14px; color:#536176; }
body.tbf-journey .bl-page .bl-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; margin-bottom:40px; }
body.tbf-journey .bl-page .bl-card { display:flex; flex-direction:column; overflow:hidden; background:#fff; border:1px solid #dce3ec; border-radius:16px; box-shadow:0 4px 18px #14243a0a; color:#14243a; text-decoration:none; transition:border-color .15s,box-shadow .15s; }
body.tbf-journey .bl-page .bl-card:hover { border-color:#b6c3d3; box-shadow:0 6px 24px #14243a14; transform:none; }
body.tbf-journey .bl-page .bl-card--hidden { display:none; }
body.tbf-journey .bl-page .bl-grid.is-filtering .bl-card--hidden { display:flex; }   /* a search or category shows every match */
body.tbf-journey .bl-page .bl-grid.is-filtering + div { display:none; }              /* …and Load More waits until it is cleared */
body.tbf-journey .bl-page .bl-card--reveal { animation:blCardReveal .4s ease-out forwards; }
@keyframes blCardReveal { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
body.tbf-journey .bl-page .bl-card-img { display:flex; align-items:center; justify-content:center; height:96px; background:linear-gradient(135deg,#fff0f3,#edf4ff); }
body.tbf-journey .bl-page .bl-card-img i { font-size:34px; opacity:1; }
body.tbf-journey .bl-page .bl-card-body { padding:18px 18px 20px; }
body.tbf-journey .bl-page .bl-card-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:8px; }
body.tbf-journey .bl-page .bl-card-meta .cat { padding:4px 10px; border-radius:999px; font-size:11px; font-weight:700; }
body.tbf-journey .bl-page .bl-card-meta .date { font-size:12px; color:#536176; }
body.tbf-journey .bl-page .bl-card-body h2 { margin:0 0 6px; font-size:16px; line-height:1.4; font-weight:700; color:#14243a; }
body.tbf-journey .bl-page .bl-card-body p { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin:0 0 10px; font-size:14px; line-height:1.55; color:#536176; }
body.tbf-journey .bl-page .bl-card-body .read { display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:700; color:#c8102e; }
body.tbf-journey .bl-page .bl-airport { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:40px; padding-top:40px; border-top:1px solid #dce3ec; }
body.tbf-journey .bl-page .bl-airport-card { padding:20px; text-align:left; background:#fff; border:1px solid #dce3ec; border-radius:14px; color:#14243a; text-decoration:none; transition:border-color .15s; }
body.tbf-journey .bl-page .bl-airport-card:hover { border-color:#b6c3d3; transform:none; }
body.tbf-journey .bl-page .bl-airport-card h3 { margin:8px 0 4px; font-size:16px; font-weight:700; color:#14243a; }
body.tbf-journey .bl-page .bl-airport-card p { margin:0; font-size:13px; color:#536176; }

@media (max-width: 768px) {
  body.tbf-journey .bl-page .bl-c { width:calc(100% - 32px); }
  body.tbf-journey .bl-page .bl-hero { padding:16px 0 4px; }
  body.tbf-journey .bl-page .bl-hero h1 { font-size:30px; letter-spacing:-1px; }
  body.tbf-journey .bl-page .bl-hero .sub { font-size:16px; }
  body.tbf-journey .bl-page .bl-grid, body.tbf-journey .bl-page .bl-airport { grid-template-columns:1fr; }
  body.tbf-journey .ba-page .ba-hero { padding:16px 0 4px; }
  body.tbf-journey .ba-page .ba-cta { padding:24px 18px; }
  body.tbf-journey .blog-hero-section { padding:16px 0 24px; }
  body.tbf-journey .blog-content .blog-table { display:block; overflow-x:auto; }   /* wide tables scroll in their own box */
}
@media (max-width: 640px) {
  /* the category chips in one row that swipes sideways, edge to edge, instead of six or seven rows above the guides */
  body.tbf-journey .bl-page .bl-cats { flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scroll-padding-inline:16px; scrollbar-width:none; margin:16px -16px 20px; padding:2px 16px; }
  body.tbf-journey .bl-page .bl-cats::-webkit-scrollbar { display:none; }
  body.tbf-journey .bl-page .bl-cat { flex:0 0 auto; white-space:nowrap; scroll-snap-align:start; }
  body.tbf-journey :is(.blog-hero-section, .ba-page .ba-hero) h1 { font-size:28px; letter-spacing:-.8px; }
  body.tbf-journey :is(.blog-content, .ba-page .ba-body) :is(p, li) { font-size:16px; }
  body.tbf-journey .blog-content .blog-intro { font-size:17px; }
  body.tbf-journey .blog-cta-box { padding:20px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  body.tbf-journey :is(.bl-card, .bl-cat, .bl-airport-card, .ba-faq-q i, .ba-faq-a) { transition:none; }
  body.tbf-journey .bl-page .bl-card--reveal { animation:none; }
}
