/* Transit & Flow Group — sitewide v2: mega menu, components, motion */
/* ---------- Enterprise typography: Manrope system ---------- */
/* Poppins now loaded non-blocking via wp_head (v1.35) */
:root{
  --tf-font: 'Poppins', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}
body, button, input, select, textarea,
h1, h2, h3, h4, h5, h6,
.navbar, .megafactory-main-menu, .nav-link,
.tf-h2, .tf-eyebrow, .tf-lead, .tf-btn,
.tf-card, .tf-step, .tf-faq, .tf-calc, .tf-trust-item, .tf-stat{
  font-family: var(--tf-font) !important;
}
h1, h2, h3, h4, .tf-h2{ letter-spacing:-0.01em; }
/* ---------- Mega menu: Services dropdown as multi-column grid ---------- */
#menu-item-4103.dropdown { position: static; }
#menu-item-4103 .dropdown-menu{
  display:none;
  position:absolute; left:0; right:0; width:100%;
  margin:0; padding:28px 40px; border:0; border-radius:0;
  background:#FFFFFF; box-shadow:0 18px 40px rgba(2,38,74,0.18);
  columns:4; column-gap:32px;
  z-index:9999;
}
#menu-item-4103.dropdown:hover .dropdown-menu,
#menu-item-4103.dropdown:focus-within .dropdown-menu{ display:block; }
#menu-item-4103 .dropdown-menu li{
  display:block; break-inside:avoid; margin-bottom:4px;
}
#menu-item-4103 .dropdown-menu li a{
  display:block; padding:9px 12px; border-radius:6px;
  color:#02264A !important; font-weight:600; font-size:14.5px;
  transition:background-color .18s ease, color .18s ease, padding-left .18s ease;
}
#menu-item-4103 .dropdown-menu li a:hover{
  background:#EAF4FA; color:#0092CD !important; padding-left:18px;
}
/* ---------- Buttons ---------- */
.tf-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 30px; border-radius:11px; font-weight:700; font-size:15.5px;
  letter-spacing:.2px; text-decoration:none !important; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
  border:2px solid transparent; line-height:1.1;
}
/* ===== v1.89 unified three-tier button system (site-wide brand consistency) =====
   Tier 1 PRIMARY: gradient blue — matches header .tfh-est and footer CTA .a-est.
   Tier 2 SECONDARY: solid navy — the confident second action.
   Tier 3 GHOST/OUTLINE: transparent with border (white on dark, navy on light). */
.tf-btn-primary{ background:linear-gradient(150deg,#0092CD,#22b6e6); color:#fff !important; box-shadow:0 12px 26px -12px rgba(0,146,205,.55); }
.tf-btn-primary:hover{ background:linear-gradient(150deg,#0a3d78,#0092CD); transform:translateY(-2px); box-shadow:0 16px 30px -12px rgba(0,146,205,.6); }
.tf-btn-secondary{ background:#02264A; color:#fff !important; border-color:#02264A; }
.tf-btn-secondary:hover{ background:#0a3d78; border-color:#0a3d78; transform:translateY(-2px); }
.tf-btn-outline{ background:transparent; border-color:#FFFFFF; color:#FFFFFF !important; }
.tf-btn-outline:hover{ background:#FFFFFF; color:#02264A !important; transform:translateY(-2px); }
.tf-btn-outline-dark,.tf-btn-ghost{ background:transparent; border-color:#02264A; color:#02264A !important; }
.tf-btn-outline-dark:hover,.tf-btn-ghost:hover{ background:#02264A; color:#fff !important; transform:translateY(-2px); }
.tf-btn:focus-visible{ outline:3px solid rgba(0,146,205,.45); outline-offset:2px; }
/* --- Legacy/theme content buttons mapped onto the same three tiers. Our own
   components use .tf-btn/.tfh-*/.fx-cta/.tr-cta/.a-est (never a bare .btn/.button),
   so these selectors normalize theme CTAs without touching plugin chrome. --- */
.entry-content a.button,.wpb_wrapper a.button,#primary a.button,
.entry-content .btn,.wpb_wrapper .btn,#primary .btn,
.entry-content .wp-block-button__link,.wpb_wrapper .wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;border-radius:11px;font-weight:700;font-size:15.5px;letter-spacing:.2px;
  text-decoration:none !important;border:2px solid transparent;line-height:1.1;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.entry-content a.button,.wpb_wrapper a.button,#primary a.button,
.entry-content .btn-primary,.wpb_wrapper .btn-primary,#primary .btn-primary,
.entry-content .wp-block-button__link,.wpb_wrapper .wp-block-button__link{
  background:linear-gradient(150deg,#0092CD,#22b6e6);color:#fff !important;box-shadow:0 12px 26px -12px rgba(0,146,205,.55);
}
.entry-content a.button:hover,.wpb_wrapper a.button:hover,#primary a.button:hover,
.entry-content .btn-primary:hover,.wpb_wrapper .btn-primary:hover,#primary .btn-primary:hover,
.entry-content .wp-block-button__link:hover,.wpb_wrapper .wp-block-button__link:hover{
  background:linear-gradient(150deg,#0a3d78,#0092CD);color:#fff !important;transform:translateY(-2px);
}
.entry-content .btn-secondary,.wpb_wrapper .btn-secondary,#primary .btn-secondary{
  background:#02264A;color:#fff !important;border-color:#02264A;
}
.entry-content .btn-secondary:hover,.wpb_wrapper .btn-secondary:hover,#primary .btn-secondary:hover{
  background:#0a3d78;border-color:#0a3d78;color:#fff !important;transform:translateY(-2px);
}
.entry-content .btn-outline,.wpb_wrapper .btn-outline,#primary .btn-outline,
.entry-content .btn-link,.wpb_wrapper .btn-link{
  background:transparent;color:#02264A !important;border-color:#02264A;
}
.entry-content .btn-outline:hover,.wpb_wrapper .btn-outline:hover,#primary .btn-outline:hover{
  background:#02264A;color:#fff !important;transform:translateY(-2px);
}
/* ---------- Layout helpers ---------- */
.tf-section{ padding:72px 24px; }
.tf-section-dark{ background:#02264A; color:#fff; }
.tf-section-light{ background:#ffffff; }
.tf-inner{ max-width:1180px; margin:0 auto; }
.tf-eyebrow{
  display:inline-block; font-size:13px; font-weight:800; letter-spacing:1.6px;
  text-transform:uppercase; color:#0092CD; margin-bottom:14px;
}
.tf-section-dark .tf-eyebrow{ color:#7ec8ea; }
.tf-h2{ font-size:clamp(27px,3.2vw,38px); font-weight:700; color:#02264A; margin:0 0 16px; line-height:1.16; letter-spacing:-0.02em; }
.tf-section-dark .tf-h2{ color:#fff; }
.tf-lead{ font-size:18px; line-height:1.65; color:#4a5b6b; max-width:700px; }
.tf-section-dark .tf-lead{ color:#cfe1ee; }
/* ---------- Fade-up animation ---------- */
.tf-fade{ animation: tfFadeUp .7s ease both; }
@keyframes tfFadeUp{ from{ opacity:0; transform:translateY(22px);} to{ opacity:1; transform:none;} }
@media (prefers-reduced-motion: reduce){ .tf-fade{ animation:none; } }
/* ---------- Trust strip ---------- */
.tf-trust{ display:flex; flex-wrap:wrap; gap:20px; justify-content:center; }
.tf-trust-item{
  flex:1 1 200px; max-width:220px; text-align:center; padding:18px 14px;
  background:#fff; border-radius:10px; box-shadow:0 6px 18px rgba(2,38,74,.08);
}
.tf-trust-item .tf-icon{ font-size:30px; margin-bottom:8px; display:block; }
.tf-trust-item strong{ display:block; font-size:14.5px; color:#02264A; }
/* ---------- Service cards ---------- */
.tf-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:20px; }
.tf-card{
  display:block; background:#fff; border-radius:12px; padding:26px 22px;
  box-shadow:0 6px 20px rgba(2,38,74,.08); text-decoration:none !important;
  border-top:3px solid #0092CD; transition:transform .22s ease, box-shadow .22s ease;
}
.tf-card:hover{ transform:translateY(-6px); box-shadow:0 16px 32px rgba(2,38,74,.18); }
.tf-card .tf-card-title{ font-weight:800; color:#02264A !important; font-size:16.5px; margin:0 0 8px; }
.tf-card .tf-card-desc{ color:#5b6b78; font-size:14px; line-height:1.5; margin:0; }
.tf-card .tf-card-link{ display:inline-block; margin-top:12px; font-size:13.5px; font-weight:700; color:#0092CD !important; }
/* ---------- Stats / counters ---------- */
.tf-stats{ display:flex; flex-wrap:wrap; gap:28px; }
.tf-stat{ flex:1 1 150px; text-align:center; }
.tf-stat .tf-stat-num{ font-size:42px; font-weight:900; color:#0092CD; display:block; line-height:1; }
.tf-stat .tf-stat-label{ font-size:13.5px; color:#cfe1ee; text-transform:uppercase; letter-spacing:.6px; margin-top:6px; }
/* ---------- Process steps ---------- */
.tf-steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:24px; counter-reset:tfstep; }
.tf-step{ position:relative; padding:28px 22px 22px; background:#fff; border-radius:12px; box-shadow:0 6px 18px rgba(2,38,74,.08); }
.tf-step::before{
  counter-increment:tfstep; content:counter(tfstep);
  position:absolute; top:-16px; left:22px; width:36px; height:36px; border-radius:50%;
  background:#0092CD; color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center;
}
.tf-step h4{ margin:14px 0 8px; color:#02264A; font-size:16.5px; }
.tf-step p{ color:#5b6b78; font-size:14px; margin:0; }
/* ---------- FAQ accordion (native details, no JS needed) ---------- */
.tf-faq details{
  background:#fff; border-radius:10px; margin-bottom:12px; padding:0;
  box-shadow:0 4px 14px rgba(2,38,74,.06); overflow:hidden;
}
.tf-faq summary{
  cursor:pointer; list-style:none; padding:18px 22px; font-weight:700; color:#02264A;
  font-size:16px; display:flex; justify-content:space-between; align-items:center;
}
.tf-faq summary::-webkit-details-marker{ display:none; }
.tf-faq summary::after{ content:''; flex:0 0 auto; width:11px; height:11px; margin-left:14px; margin-top:-2px; border-right:2.5px solid #0092CD; border-bottom:2.5px solid #0092CD; transform:rotate(45deg); transition:transform .25s ease; }
.tf-faq details[open] summary::after{ transform:rotate(-135deg); margin-top:2px; }
.tf-faq details p{ padding:0 22px 20px; margin:0; color:#4a5b6b; line-height:1.6; }
/* ---------- Estimate calculator ---------- */
.tf-calc{ background:#fff; border-radius:22px; box-shadow:0 30px 70px -20px rgba(2,38,74,.28); border:1px solid rgba(2,38,74,.06); padding:38px 36px; max-width:660px; margin:0 auto; }
.tf-calc h3{ color:#02264A; margin:0 0 8px; font-size:25px; font-weight:800; letter-spacing:-0.01em; }
.tf-calc .tf-calc-sub{ color:#5b6b78; font-size:14.5px; line-height:1.6; margin-bottom:26px; }
.tf-calc-row{ margin-bottom:18px; }
.tf-calc-row label{ display:block; font-weight:700; color:#02264A; font-size:13.5px; margin-bottom:8px; }
.tf-calc-row select, .tf-calc-row input{
  width:100%; padding:15px 16px; border:1.5px solid #dbe6ee; border-radius:14px; font-size:15.5px; color:#02264A;
  box-sizing:border-box; background:#fbfdfe; transition:border-color .2s, box-shadow .2s, background .2s;
}
.tf-calc form .tf-btn-primary{ border-radius:14px; padding:16px 20px; font-size:16px; letter-spacing:.01em; transition:transform .18s ease; }
.tf-calc form .tf-btn-primary:hover{ transform:translateY(-2px); }
.tf-calc form .tf-btn-primary:active{ transform:translateY(0); }
.tf-calc-result{
  margin-top:24px; padding:26px 22px; border-radius:18px; text-align:center; display:none;
  background:linear-gradient(160deg,#F5FAFD 0%,#E7F3FB 100%); border:1px solid rgba(0,146,205,.14);
}
.tf-calc-result.tf-show{ display:block; animation:tfResultIn .5s cubic-bezier(.22,1,.36,1) both; }
@keyframes tfResultIn{ from{ opacity:0; transform:translateY(14px) scale(.98); } to{ opacity:1; transform:none; } }
.tf-calc-result .tf-price{ font-size:clamp(30px,7vw,40px); font-weight:900; letter-spacing:-0.02em; line-height:1.05; font-variant-numeric:tabular-nums; background:linear-gradient(92deg,#02264A 0%,#0092CD 90%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.tf-calc-result .tf-price-note{ font-size:12.5px; line-height:1.55; color:#5b6b78; margin-top:10px; max-width:460px; margin-left:auto; margin-right:auto; }
@media (max-width:900px){
  #menu-item-4103 .dropdown-menu{ columns:2; }
}
/* ============ v2.1 responsive + fixes (master review) ============ */
/* Header wordmark: cap the oversized mobile site title, make it a clean wordmark */
.site-title, .main-logo .site-title, .logobar .site-title{
  font-size:clamp(17px,4.6vw,24px) !important;
  font-weight:800 !important; line-height:1.15 !important;
  letter-spacing:-0.01em !important; white-space:nowrap;
}
/* Process steps: explicit numbers (CSS counter was rendering all as 1) */
.tf-steps{counter-reset:none;}
.tf-step::before{content:"" !important;}
.tf-steps .tf-step:nth-child(1)::before{content:"1" !important;}
.tf-steps .tf-step:nth-child(2)::before{content:"2" !important;}
.tf-steps .tf-step:nth-child(3)::before{content:"3" !important;}
.tf-steps .tf-step:nth-child(4)::before{content:"4" !important;}
.tf-steps .tf-step:nth-child(5)::before{content:"5" !important;}
.tf-steps .tf-step:nth-child(6)::before{content:"6" !important;}
/* Mobile spacing + typography polish */
@media (max-width:640px){
  .tf-section{padding:48px 20px !important;}
  .tf-h2{font-size:clamp(23px,5.8vw,29px) !important;}
  .tf-lead{font-size:16.5px;}
  .tf-inner{padding-left:0;padding-right:0;}
  .tf-trust{gap:12px;}
  .tf-trust-item{flex:1 1 46%;max-width:none;padding:16px 10px;}
  .tf-trust-item strong{font-size:13px;}
  .tf-grid{grid-template-columns:1fr;}
  .tf-steps{grid-template-columns:1fr;}
  .tf-hero .tf-inner, .tf-hero-slider .tf-inner{padding-left:20px;padding-right:20px;}
}
/* Category-page interior hero: comfortable mobile height */
@media (max-width:640px){
  .tf-hero > div{min-height:240px !important;}
}
/* ============ v2.2 mobile corrective pass (master UI review) ============ */
/* 1) Header wordmark — beat the theme's higher-specificity mobile title */
.mobile-logo a.site-title, .mobile-logo .site-title,
.main-logo a.site-title, .main-logo .site-title,
.logobar a.site-title, .logobar .site-title, a.site-title{
  font-size:clamp(16px,4.2vw,22px) !important; font-weight:800 !important;
  line-height:1.25 !important; letter-spacing:-0.01em !important; white-space:nowrap !important;
}
/* 2) Kill the white gap above the hero (theme content padding + empty slider wrapper) */
.megafactory-content-inner{ padding-top:0 !important; }
.header-slider-wrapper{ display:none !important; }
#primary .entry-content{ padding-top:0 !important; margin-top:0 !important; }
#primary .entry-content > p:first-child{ margin:0 !important; padding:0 !important; line-height:0 !important; }
/* 3) Branded dropdown / form controls */
.tf-calc-row select, .tf-calc-row input{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  font-size:16px !important; line-height:1.5; height:auto; color:#02264A;
  border:1.5px solid #cfe0ea; border-radius:8px; padding:14px 44px 14px 16px;
  background-color:#fff;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2302264A' stroke-width='2' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:12px;
}
.tf-calc-row input{ padding-right:16px; background-image:none; }
.tf-calc-row select:focus, .tf-calc-row input:focus{ border-color:#0092CD; outline:none; box-shadow:0 0 0 3px rgba(0,146,205,.15); }
/* 4) Mobile layout corrections */
@media (max-width:640px){
  /* trust strip: unambiguous 2-column grid, compact */
  .tf-trust{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:12px !important; }
  .tf-trust-item{ max-width:none !important; margin:0 !important; padding:16px 8px !important; }
  .tf-trust-item .tf-icon{ font-size:24px !important; margin-bottom:6px !important; }
  .tf-trust-item strong{ font-size:12.5px !important; line-height:1.25 !important; }
  /* extra hero legibility on small screens */
  .tf-hero-slider .tf-slide::after{ content:""; position:absolute; inset:0; background:rgba(2,38,74,.28); z-index:1; }
  .tf-hero-slider .tf-slide-inner{ position:relative; z-index:2; }
  /* calculator padding tighter, full-width control */
  .tf-calc{ padding:22px 18px !important; }
  .tf-calc h3{ font-size:20px !important; }
  /* CTA buttons: full-width, easy tap targets */
  .tf-hero-slider .tf-hero-ctas{ flex-direction:column; align-items:stretch; }
  .tf-hero-slider .tf-hero-ctas .tf-btn{ width:100%; }
  .tf-section .tf-btn{ min-height:48px; }
}
/* ============ v2.3 kill hero top-gap across theme wrappers ============ */
.megafactory-content-wrapper, .megafactory-content, .megafactory-page,
.megafactory-content-inner, .megafactory-content-inner > .container,
.megafactory-content-inner > .container > .row,
.megafactory-content-inner > .container > .row > [class*="col-"],
#primary.content-area, #primary .entry-content,
#primary .entry-content > .post, #primary [id^="page-"]{
  padding-top:0 !important; margin-top:0 !important;
}
#primary .entry-content > p:first-child{ margin:0 !important; padding:0 !important; height:0; line-height:0 !important; font-size:0; }/* ============ v2.4 kill duplicate theme featured-image banner ============ */
/* Every TF page ships its own tf-hero/tf-svc-hero. The theme also renders */
/* the featured image as a top banner, producing the same image twice. */
/* Hide the theme banner; featured image is retained for social/OG use. */
.single-featured-image-header{ display:none !important; }
/* ============ v2.5 estimator conversion CTA + heading hygiene ============ */
/* Hide theme page-title bar: every TF page has its own tf-hero h1, so the */
/* theme title bar is a duplicate h1. Removing it fixes heading structure. */
.page-title-wrap, header#page-title{ display:none !important; }
.tf-calc-cta{ margin-top:20px; padding-top:18px; border-top:1px solid rgba(2,38,74,.10); display:flex; flex-direction:column; align-items:center; gap:12px; }
.tf-calc-cta-btn{ width:100%; max-width:420px; border-radius:14px; padding:16px 20px; font-size:16px; }
.tf-calc-cta-note{ font-size:12.5px; line-height:1.55; color:#4a5b6b; max-width:440px; text-align:center; }
/* ============ v2.7 premium mobile dock — Home / Reviews / Book Now / Chat ============ */
.tf-mobilebar{ display:none; }
@media (max-width:768px){
  /* html/body kept white and non-overscrolling so no rubber-band flash of a
     different colour can appear beneath the dock at the page bottom (belt to the
     JS visualViewport pin's braces). */
  html{ background:#fff; }
  html, body{ overscroll-behavior-y:none; }
  .tf-mobilebar{ position:fixed; left:0; right:0; bottom:0; z-index:9998; display:flex; align-items:flex-end; justify-content:space-around;
    will-change:transform; background:#fff; padding:9px 6px calc(9px + env(safe-area-inset-bottom,0px)); box-shadow:0 -8px 28px rgba(2,38,74,.14);
    font-family:'Manrope','Inter',sans-serif; }
  .tf-mobilebar::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#02264A 0%,#0092CD 60%,#38bdf8 100%); }
  .tf-dock-item{ flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:3px; padding:6px 2px 0; margin:0; border:0; background:transparent !important; color:inherit; cursor:pointer; text-decoration:none !important; -webkit-appearance:none; appearance:none; -webkit-tap-highlight-color:transparent; -webkit-user-select:none; user-select:none; outline:none; }
  /* Chat is a <button>; without this iOS renders a native control that turns black on tap/focus. Lock it transparent in every state. */
  .tf-dock-item:hover, .tf-dock-item:focus, .tf-dock-item:active, .tf-dock-item:focus-within{ background:transparent !important; }
  .tf-dock-item:focus-visible{ outline:2px solid #0092CD; outline-offset:2px; border-radius:10px; }
  .tf-dock-ic{ position:relative; display:flex; align-items:center; justify-content:center; width:28px; height:28px; color:#02264A; transition:transform .16s ease,color .16s ease; }
  .tf-dock-ic svg{ width:24px; height:24px; }
  .tf-dock-mark{ width:28px; height:28px; object-fit:contain; display:block; }
  .tf-dock-lb{ font-size:11px; font-weight:800; letter-spacing:.01em; color:#02264A; line-height:1; }
  .tf-dock-item:active .tf-dock-ic{ transform:scale(.88); }
  .tf-dock-item.tf-dock-active .tf-dock-ic{ color:#0092CD; }
  .tf-dock-item.tf-dock-active .tf-dock-lb{ color:#0092CD; }
  /* Elevated primary CTA. Kept in NORMAL FLOW (position:relative, not absolute) so the
     entire tile lives inside the link's own box and is reliably tappable on touch/iOS,
     which an absolutely-positioned tile outside the box is not. A negative bottom margin
     trims the reserved space so the bar stays compact; the label still aligns with the
     others via the bar's flex-end. */
  .tf-dock-book .tf-dock-fab{ position:relative; top:-20px; margin-bottom:-16px; display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:16px;
    background:linear-gradient(140deg,#0a3d78 0%,#0092CD 100%); color:#fff; box-shadow:0 0 0 4px #fff, 0 10px 20px rgba(0,146,205,.40); transition:transform .16s ease; }
  .tf-dock-book .tf-dock-fab svg{ width:23px; height:23px; }
  .tf-dock-book:active .tf-dock-fab{ transform:translateY(-3px) scale(.96); }
  .tf-dock-book .tf-dock-lb{ color:#0092CD; font-weight:800; }
  /* Chat "online" dot */
  .tf-dock-dot{ position:absolute; top:-2px; right:-3px; width:9px; height:9px; border-radius:50%; background:#22c55e; border:2px solid #fff; }
  /* On mobile the dock's Chat item is the entry point; hide the floating launcher. */
  #tf-chat-launch{ display:none !important; }
  /* Reserve the dock's height on the FOOTER itself (not the body) so the page ends
     exactly at the footer with no trailing white space, while the last footer row
     still clears the fixed dock. */
  .tff{ padding-bottom:calc(74px + env(safe-area-inset-bottom,0px)) !important; }
}
/* ============ v2.5 premium typography pass (brand + UI + marketing review) ============ */
/* Section headings: refined weight and tracking, tame theme sizing on every page.
   Applies to plugin sections AND plain <h2>/<h3> inside marketing content site-wide. */
.tf-inner h2, .tf-section h2, #primary .entry-content h2, .tf-h2{
  font-weight:700; color:#02264A; letter-spacing:-0.02em; line-height:1.18;
}
.tf-inner h3, .tf-section h3, #primary .entry-content h3{
  font-weight:700; color:#02264A; letter-spacing:-0.015em; line-height:1.24;
}
/* Body emphasis (lead-ins like "Honest pricing.") — clean semibold, not heavy black.
   This is the single biggest driver of a premium, uncluttered read. */
#primary .entry-content p strong, #primary .entry-content li strong,
.tf-section p strong, .tf-inner p strong, .tf-faq p strong, .tf-lead strong{
  font-weight:600 !important; color:#02264A;
}
.tf-section-dark p strong, .tf-section-dark .tf-lead strong{ color:#eaf4fb; }
/* Eyebrow label: lighter, airier premium kicker */
.tf-eyebrow{ font-weight:700; letter-spacing:2px; font-size:12px; }
/* FAQ: quieter question weight, tighter cards for a $2B-brand feel */
.tf-faq summary{ font-weight:600 !important; font-size:15.5px; }
.tf-faq details{ border-radius:14px; }
/* Mobile: cap oversized content headings, beat the Megafactory theme with !important */
@media (max-width:640px){
  .tf-inner h2, .tf-section h2, #primary .entry-content h2, .tf-h2{
    font-size:clamp(23px,5.8vw,29px) !important; line-height:1.2 !important;
    font-weight:700 !important; letter-spacing:-0.02em !important;
    overflow-wrap:break-word; word-break:normal;
  }
  .tf-inner h3, .tf-section h3, #primary .entry-content h3{
    font-size:clamp(18px,4.8vw,21px) !important; line-height:1.28 !important; font-weight:700 !important;
  }
  #primary .entry-content p strong, .tf-section p strong, .tf-inner p strong{ font-weight:600 !important; }
  .tf-eyebrow{ font-size:11.5px; letter-spacing:1.8px; }
  .tf-faq summary{ font-size:15px !important; padding:14px 4px; }
  .tf-faq details{ padding:2px 14px; }
}
@media (max-width:380px){
  .tf-inner h2, .tf-section h2, #primary .entry-content h2, .tf-h2{ font-size:22px !important; }
}/* ============ v2.6 hero slider heading color guard ============ */
/* The v2.5 typography pass (#primary .entry-content h2) can out-specify the hero's
   own white rule, turning slide H2 headings dark on the navy hero. Force white. */
.tf-hero-slider h1, .tf-hero-slider h2, .tf-hero-slider h3,
.tf-hero-slider .tf-slide-copy h1, .tf-hero-slider .tf-slide-copy h2,
.tf-hero-slider .tf-slide-h1, .tf-hero-slider .tf-slide-h2{ color:#fff !important; }
/* ============ v2.7 dark-section heading color guard ============ */
/* Any heading inside a dark section must stay white; the v2.5 entry-content rule
   was rendering them navy-on-navy (invisible), leaving large empty blue areas. */
.tf-section-dark h1, .tf-section-dark h2, .tf-section-dark h3, .tf-section-dark .tf-h2,
#primary .entry-content .tf-section-dark h2, #primary .entry-content .tf-section-dark h3{ color:#fff !important; }

/* ===== v3.0 — Blog single-post polish (brand-match) ===== */
.single-post .post-thumbnail img, .single-post article > img:first-child{border-radius:16px;box-shadow:0 18px 44px -24px rgba(2,38,74,.35)}
.single-post .entry-meta.top-meta{display:flex;align-items:center;gap:10px;font-family:var(--tf-font,'Poppins',sans-serif);font-size:13.5px;color:#5b6b78;margin:6px 0 4px}
.single-post .entry-meta .avatar{border-radius:50%;width:34px;height:34px}
.single-post .entry-meta a{color:#02264A;font-weight:600;text-decoration:none}
.single-post .entry-meta.bottom-meta{margin-top:26px;padding-top:16px;border-top:1px solid #eef3f7;font-size:13px}
.single-post .entry-meta.bottom-meta a{display:inline-block;background:#f2f7fb;border:1px solid #e3edf4;color:#33566f;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:18px;margin:3px 4px 3px 0;text-decoration:none}
.single-post .entry-meta.bottom-meta a:hover{background:#eaf4fa;color:#0079a8}
.single-post h1.entry-title,.single-post .entry-header h1{font-weight:800;color:#02264A;line-height:1.25}
.single-post .entry-content{font-size:16.5px;line-height:1.75;color:#334a5e}
.single-post .entry-content h2{color:#02264A;font-weight:800;margin-top:34px}
.single-post .entry-content h3{color:#02264A;font-weight:700;margin-top:26px}
.single-post .entry-content a{color:#0079a8}
.single-post .post-navigation,.single-post .nav-links{font-family:var(--tf-font,'Poppins',sans-serif)}
/* comments are disabled site-wide; hard-hide any theme remnants */
.comments-area,#comments,.comment-respond,#respond{display:none !important}
