/*
 Theme Name:   Metro Air Refresh (MiCar Child)
 Theme URI:    https://metroair.biz
 Description:  Polished, conservative refresh of the MiCar theme for Metro Air — fonts, accessible CTAs, sticky mobile click-to-call. Child of micar1.4.
 Author:       WestShore Web
 Template:     micar1.4
 Version:      1.3.0
 Text Domain:  micar-refresh
*/

/* =========================================================
   Design tokens
   ========================================================= */
:root{
  --ma-blue:#0B3C5D;    --ma-blue-mid:#1F6FA5;
  --ma-orange:#F4791F;  --ma-orange-deep:#D9650E;
  --ma-ink:#1A2227;     --ma-mist:#D7E2EA;
  --ma-font-head:"Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ma-font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ma-radius:8px;      --ma-shadow:0 6px 20px rgba(11,60,93,.12);
  --ma-callbar-h:58px;
}

/* =========================================================
   Typography — font family ONLY. No global color or size
   overrides (those broke headings on colored sections).
   ========================================================= */
body{ font-family:var(--ma-font-body); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6{ font-family:var(--ma-font-head); }
a:hover{ color:var(--ma-orange-deep); }

/* =========================================================
   "Now Hiring" announcement bar — tidy the text size/spacing.
   It is an <h3> inside the top yellow WPBakery row.
   ========================================================= */
.vc_custom_1641518207631{ padding:10px 16px !important; }
.vc_custom_1641518207631 h3{
  font-size:16px; line-height:1.45; font-weight:500; margin:0;
}
.vc_custom_1641518207631 h3 strong{ font-weight:700; }
.vc_custom_1641518207631 a{ text-decoration:underline; }
@media (min-width:1025px){
  .vc_custom_1641518207631 h3{ font-size:17px; }
}

/* =========================================================
   Hide ONLY the dead WooCommerce shop button (Woo removed)
   ========================================================= */
.shop-button{ display:none !important; }

/* =========================================================
   City landing pages: drop the theme's duplicate page-title H2
   (the content already provides a keyword-rich H1)
   ========================================================= */
.ma-landing .titlte-page-default{ display:none; }
.ma-landing .entry-content, .ma-landing .page-content{ max-width:920px; }
.ma-landing .entry-content h2{ margin-top:1.4em; }

/* =========================================================
   CTA styling — scoped to the estimate form submit + explicit
   .ma-btn helpers ONLY. We do NOT recolor theme/WPBakery buttons.
   ========================================================= */
.wpcf7-submit, a.ma-btn, .ma-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:14px 28px;
  font-family:var(--ma-font-head); font-size:17px; font-weight:600; line-height:1;
  background:var(--ma-orange); color:var(--ma-ink);
  border:0; border-radius:var(--ma-radius); text-decoration:none;
  box-shadow:var(--ma-shadow); transition:transform .18s ease, background .18s ease; cursor:pointer;
}
.wpcf7-submit:hover, .ma-btn:hover{
  background:var(--ma-orange-deep); color:#fff; transform:translateY(-2px);
}

/* Estimate form fields: cleaner, consistent inputs */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
.wpcf7 textarea, .wpcf7 select{
  border:1px solid var(--ma-mist); border-radius:var(--ma-radius);
  padding:12px 14px; font-family:var(--ma-font-body); font-size:16px;
}
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus{
  outline:2px solid var(--ma-blue-mid); outline-offset:1px;
}

/* =========================================================
   Sticky mobile click-to-call bar (<=768 only)
   ========================================================= */
.ma-callbar{ display:none; }
@media (max-width:768px){
  .ma-callbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:1000;
    height:var(--ma-callbar-h); padding-bottom:env(safe-area-inset-bottom);
    box-shadow:0 -2px 12px rgba(0,0,0,.18);
  }
  .ma-callbar a{
    flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
    font-family:var(--ma-font-head); font-weight:700; font-size:16px; text-decoration:none;
  }
  .ma-callbar__call{ background:var(--ma-orange); color:var(--ma-ink); }
  .ma-callbar__req{ background:var(--ma-blue); color:#fff; }
  body{ padding-bottom:calc(var(--ma-callbar-h) + env(safe-area-inset-bottom)); }
}

/* =========================================================
   MOBILE ROUND 1 — kill horizontal overflow, fit header,
   clamp heading sizes (≤768px)
   ========================================================= */
@media (max-width:768px){
  html, body{ overflow-x:hidden; max-width:100vw; }
  img{ max-width:100%; height:auto; }
  .logo img{ max-width:220px; }
  /* header call-to-action phone block */
  .main-header .vc_cta3-content-header h2{ font-size:20px !important; line-height:1.25; }
  .main-header .vc_cta3 p{ font-size:13px !important; line-height:1.45; margin-bottom:0; }
  .main-header .vc_cta3{ padding:8px 12px !important; }
  /* heading clamps so nothing exceeds the viewport */
  h1{ font-size:26px !important; line-height:1.22; }
  h2{ font-size:21px !important; line-height:1.25; }
  h3{ font-size:18px !important; }
  /* landing pages: comfortable side padding on mobile */
  .ma-landing .entry-content, .ma-landing .page-content{ padding-left:16px; padding-right:16px; }
  /* Now Hiring bar wraps cleanly */
  .vc_custom_1641518207631 h3{ white-space:normal; word-break:break-word; font-size:14px; line-height:1.4; }
  /* generic guard: no child forces width beyond screen */
  .container, .vc_row, .wpb_row, .vc_column-inner, .wpb_wrapper{ max-width:100%; }
}

/* =========================================================
   MOBILE ROUND 2 — Now Hiring bar wrap, sticky-bar fit,
   tap targets, content spacing (≤768px)
   ========================================================= */
@media (max-width:768px){
  /* "Now Hiring" bar: always wrap, never clip */
  .vc_custom_1641518207631{ padding:8px 14px !important; overflow:visible; }
  .vc_custom_1641518207631 h3,
  .vc_custom_1641518207631 h3 *{ white-space:normal !important; word-break:break-word; font-size:13px !important; line-height:1.4 !important; }
  /* Sticky call bar: fit both labels comfortably */
  .ma-callbar{ height:60px; }
  .ma-callbar a{ font-size:15px; padding:0 6px; letter-spacing:0; }
  body{ padding-bottom:calc(60px + env(safe-area-inset-bottom)); }
  /* Bigger tap targets */
  .toggle-mobile-menu{ min-width:48px; min-height:48px; }
  .dropdown-link, .dropdown-list a, .menu-footer a, #footer a{ padding-top:9px; padding-bottom:9px; display:inline-block; }
  /* Landing-page content breathing room */
  .ma-landing .entry-content h2{ margin-top:1.5em; }
  .ma-landing .entry-content ul{ padding-left:1.1em; }
  .ma-landing .entry-content li{ margin-bottom:.45em; line-height:1.55; }
}

/* =========================================================
   MOBILE ROUND 3 — force heading wrap (no clipped titles),
   tame long service H1s (≤768px)
   ========================================================= */
@media (max-width:768px){
  h1, h2, h3, h4,
  .entry-content h1, .entry-content h2, .entry-content h3,
  .vc_custom_heading, .wpb_heading{
    white-space:normal !important;
    overflow-wrap:break-word !important;
    word-break:break-word !important;
    hyphens:auto;
  }
  .ma-landing .entry-content h1, .entry-content h1, h1{ font-size:24px !important; line-height:1.25 !important; }
  .ma-header-phone{ white-space:nowrap; }
}

/* =========================================================
   MOBILE ROUND 3c — fix content overflow on default-template
   pages (box-sizing + Bootstrap row margins) (≤768px)
   ========================================================= */
@media (max-width:768px){
  #main-content, #main-content *{ box-sizing:border-box; }
  #main-content .container,
  #main-content .row,
  #main-content [class*="col-"],
  #main-content article,
  #main-content .entry-content{ max-width:100% !important; }
  #main-content .row{ margin-left:0 !important; margin-right:0 !important; }
  #main-content [class*="col-"]{ padding-left:0 !important; padding-right:0 !important; }
}

/* =========================================================
   MOBILE ROUND 3d — DECISIVE: tie content width to viewport
   so nothing can overflow regardless of ancestor widths (≤768)
   ========================================================= */
@media (max-width:768px){
  html,body{ overflow-x:hidden !important; }
  #main-content{ width:100% !important; max-width:100vw !important; overflow-x:hidden !important; }
  #main-content > .container{ width:100% !important; max-width:100% !important; margin:0 auto !important; }
  #main-content .row{ width:100% !important; max-width:100% !important; margin:0 !important; }
  #main-content [class*="col-"]{ width:100% !important; max-width:100% !important; float:none !important; padding:0 !important; }
  #main-content article{ width:100% !important; max-width:100% !important; }
  #main-content .entry-content{ width:100% !important; max-width:100% !important; margin:0 !important; padding:0 16px !important; box-sizing:border-box !important; }
  #main-content .entry-content *{ max-width:100% !important; overflow-wrap:break-word; }
}

/* =========================================================
   TRUST BAR (injected after header) — verified facts only
   ========================================================= */
.ma-trust{
  display:flex; flex-wrap:wrap; gap:8px 22px; justify-content:center; align-items:center;
  background:#E8F1F8; color:#0B3C5D; border-bottom:1px solid #D7E2EA;
  padding:10px 14px; font-family:var(--ma-font-head); font-weight:600; font-size:14px;
}
.ma-trust span{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.ma-trust span::before{ content:"\2714"; color:#2E7D52; font-size:12px; }
.ma-trust .ma-trust__finance{ color:#2E7D52; }
@media (max-width:768px){ .ma-trust{ font-size:12px; gap:6px 14px; padding:8px 10px; } }

/* =========================================================
   VISUAL POLISH ROUND — finishing details (2026-06-23)
   ========================================================= */

/* 1) Navigation: readable white on the dark-blue nav bar, orange active/hover */
.main-nav.main-nav1 .menu-link.main-menu-link,
ul#menu-menu-1 .menu-link,
.main-nav1 > ul > li > a{ color:#ffffff !important; font-weight:600; }
.main-nav.main-nav1 .current-menu-item > .menu-link,
.main-nav.main-nav1 .current_page_item > .menu-link,
.main-nav.main-nav1 .menu-link:hover,
.main-nav1 > ul > li > a:hover{ color:#F4791F !important; }

/* 2) "Now Hiring" announcement: high-contrast, professional (navy on the bar) */
.vc_custom_1641518207631 h3,
.vc_custom_1641518207631 h3 *,
.vc_custom_1641518207631 strong{ color:#0B3C5D !important; }
.vc_custom_1641518207631 a{ color:#0B3C5D !important; font-weight:700; text-decoration:underline; }
.vc_custom_1641518207631 a:hover{ color:#D9650E !important; }

/* 3) Blue site frame / side gutters — protect content + header so text stays readable */
html, body{ background-color:#0B3C5D !important; }
.top-header{ background-color:#0B3C5D !important; }
.main-header, .main-header-light{ background-color:#ffffff !important; }
#main-content, #main-content.content-pages{ background-color:#ffffff; }

/* 4) Header/footer dropdown panels: solid navy panel, readable light text */
.open-store.dropdown-box .dropdown-list{
  background:#0B3C5D; padding:14px 16px; border-radius:10px;
  box-shadow:0 12px 30px rgba(0,0,0,.28); min-width:230px;
}
.open-store.dropdown-box .dropdown-list,
.open-store.dropdown-box .dropdown-list *{ color:#ffffff !important; }
.dropdown-box .dropdown-link{ color:#ffffff !important; }
.dropdown-box .dropdown-list a:hover{ color:#F4791F !important; }

/* 5) Content images: finished, consistent — soft radius + subtle shadow (exclude logo/badges/slider) */
.entry-content img,
.wpb_single_image img,
.vc_single_image-img img{ border-radius:10px; box-shadow:0 6px 18px rgba(11,60,93,.16); }
.logo img, .ma-trust img, .rev_slider img, #footer .wpb_single_image img{ border-radius:0 !important; box-shadow:none !important; }

/* 6) Estimate form (Contact Form 7): industry-standard, finished */
.entry-content .wpcf7, .wpcf7{
  background:#ffffff; border:1px solid #D7E2EA; border-radius:12px;
  padding:24px 22px; box-shadow:0 8px 26px rgba(11,60,93,.10);
}
.wpcf7-form p{ margin:0 0 16px; }
.wpcf7-form label{ display:block; font-family:var(--ma-font-head); font-weight:600; color:#0B3C5D; margin-bottom:5px; font-size:14px; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
.wpcf7 input[type="date"], .wpcf7 textarea, .wpcf7 select{
  width:100%; border:1px solid #C7D5DF; border-radius:8px; padding:12px 14px;
  font-size:16px; background:#fff; transition:border-color .15s ease, box-shadow .15s ease;
}
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus{
  border-color:#1F6FA5; box-shadow:0 0 0 3px rgba(31,111,165,.18); outline:none;
}
.wpcf7 textarea{ min-height:120px; }
.wpcf7 .wpcf7-list-item{ margin:0 16px 6px 0; }
.wpcf7-submit{ width:100%; margin-top:6px; font-size:18px; }
@media (min-width:769px){ .wpcf7-submit{ width:auto; min-width:240px; } }

/* =========================================================
   Footer dropdown panels (.currency-language) — broadened so
   header AND footer dropdowns get a solid readable panel
   ========================================================= */
.dropdown-box .dropdown-list{
  background:#0B3C5D !important; padding:12px 14px; border-radius:10px;
  box-shadow:0 12px 30px rgba(0,0,0,.30); min-width:220px; list-style:none; margin-top:6px;
}
.dropdown-box .dropdown-list,
.dropdown-box .dropdown-list li,
.dropdown-box .dropdown-list p,
.dropdown-box .dropdown-list a,
.dropdown-box .dropdown-link,
.dropdown-box .dropdown-link.white{ color:#ffffff !important; }
.dropdown-box .dropdown-list a{ display:block; padding:4px 0; }
.dropdown-box .dropdown-list a:hover{ color:#F4791F !important; }

/* =========================================================
   Reviews CTA strip (injected above footer)
   ========================================================= */
.ma-reviews-cta{ background:#1F6FA5; color:#fff; padding:22px 16px; text-align:center; }
.ma-reviews-cta__inner{ max-width:1100px; margin:0 auto; display:flex; gap:14px 20px; align-items:center; justify-content:center; flex-wrap:wrap; }
.ma-reviews-cta__txt{ font-family:var(--ma-font-head); font-weight:600; font-size:18px; color:#fff; }
.ma-reviews-btn{ display:inline-flex; align-items:center; gap:8px; background:#F4791F; color:#1A2227 !important; font-family:var(--ma-font-head); font-weight:700; font-size:16px; padding:12px 24px; border-radius:8px; text-decoration:none; box-shadow:0 6px 18px rgba(0,0,0,.18); transition:background .15s ease, transform .15s ease; }
.ma-reviews-btn:hover{ background:#D9650E; color:#fff !important; transform:translateY(-2px); }
@media (max-width:768px){ .ma-reviews-cta__txt{ font-size:16px; } .ma-reviews-cta{ padding:18px 14px; } }

/* =========================================================
   HOMEPAGE HERO (real van still poster + subtle motion loop)
   ========================================================= */
body:has(.ma-hero) #rev_slider_19_1_wrapper, body:has(.ma-hero) .rev_slider_wrapper{ display:none !important; }
.ma-hero{ position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden; background:#0B3C5D; }
.ma-hero__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.ma-hero__overlay{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(11,60,93,.85) 0%, rgba(11,60,93,.6) 45%, rgba(11,60,93,.25) 100%); }
.ma-hero__inner{ position:relative; z-index:2; width:100%; max-width:1180px; margin:0 auto; padding:56px 24px; color:#fff; }
.ma-hero__eyebrow{ font-family:var(--ma-font-head); font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#E8F1F8; font-size:14px; margin:0 0 10px; }
.ma-hero__title{ font-family:var(--ma-font-head); font-weight:700; color:#fff !important; font-size:48px; line-height:1.08; margin:0 0 14px; max-width:18ch; }
.ma-hero__sub{ font-size:19px; line-height:1.5; color:#fff; max-width:48ch; margin:0 0 26px; }
.ma-hero__cta{ display:flex; gap:14px; flex-wrap:wrap; }
.ma-hero__btn{ display:inline-flex; align-items:center; gap:8px; font-family:var(--ma-font-head); font-weight:700; font-size:17px; padding:15px 28px; border-radius:8px; text-decoration:none; transition:background .15s ease, transform .15s ease; }
.ma-hero__btn--call{ background:#F4791F; color:#1A2227 !important; box-shadow:0 6px 18px rgba(0,0,0,.2); }
.ma-hero__btn--call:hover{ background:#D9650E; color:#fff !important; transform:translateY(-2px); }
.ma-hero__btn--est{ background:transparent; color:#fff !important; border:2px solid #fff; }
.ma-hero__btn--est:hover{ background:#fff; color:#0B3C5D !important; }
@media (max-width:768px){
  .ma-hero{ min-height:430px; background:#0B3C5D url('https://metroair.biz/wp-content/uploads/2018/03/hf_20260624_042449_54c753de-2107-40cf-a6fb-4c7e2656dd91.png') center/cover no-repeat; }
  .ma-hero__bg{ display:none; }                 /* mobile: poster still only, skip the video for speed */
  .ma-hero__overlay{ background:linear-gradient(180deg, rgba(11,60,93,.78), rgba(11,60,93,.55)); }
  .ma-hero__inner{ padding:40px 18px; }
  .ma-hero__title{ font-size:30px; }
  .ma-hero__sub{ font-size:16px; }
}

/* =========================================================
   Scroll-play cinemagraphs (real content photos in motion)
   ========================================================= */
.ma-motion-wrap{ position:relative; display:inline-block; max-width:100%; line-height:0; }
.ma-motion-wrap img{ display:block; max-width:100%; height:auto; }
.ma-motion{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .8s ease; border-radius:10px; pointer-events:none; }
.ma-motion.is-playing{ opacity:1; }

/* =========================================================
   AUDIT ROUND 1 — quick wins (contrast, focus, hero, prose,
   sticky-bar safe-area, reclaim top bar)  2026-06-24
   ========================================================= */

/* P0 — accessible CTA color: darkened accent + WHITE text on all money buttons (>=4.5:1) */
.ma-hero__btn--call, .ma-callbar__call, .ma-callbar__req, .ma-reviews-btn,
.wpcf7-submit, a.ma-btn, .ma-btn, .wpcf7 input[type="submit"]{
  background:#C24E00 !important; color:#ffffff !important;
}
.ma-hero__btn--call:hover, .ma-callbar__call:hover, .ma-callbar__req:hover,
.ma-reviews-btn:hover, .wpcf7-submit:hover, .ma-btn:hover, .wpcf7 input[type="submit"]:hover{
  background:#A23F00 !important; color:#ffffff !important;
}

/* P0 — sticky call/estimate bar: real tap height + iOS safe-area inset */
@media (max-width:768px){
  .ma-callbar{ height:auto !important; padding-bottom:env(safe-area-inset-bottom) !important; box-shadow:0 -2px 14px rgba(0,0,0,.22); }
  .ma-callbar a{ min-height:54px !important; font-size:16px !important; }
  body{ padding-bottom:calc(54px + env(safe-area-inset-bottom)) !important; }
}

/* P1 — visible keyboard focus everywhere */
:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  outline:3px solid #1363A0 !important; outline-offset:2px; border-radius:2px;
}

/* P1 — body readability: cap measure, darken text, comfortable leading */
#main-content .entry-content p, #main-content .entry-content li,
.wpb_text_column p, .wpb_text_column li{ line-height:1.65; }
#main-content .entry-content p, .wpb_text_column p{ max-width:70ch; }
#main-content .entry-content{ color:#222; }

/* P1 — hero: constrain H1 (stop orphan 'Years'), responsive scale, vertical center */
.ma-hero{ min-height:clamp(440px,46vw,620px) !important; align-items:center; }
.ma-hero__title{ max-width:15ch; font-size:clamp(1.9rem,5vw,3rem) !important; line-height:1.08 !important; }
.ma-hero__overlay{ background:linear-gradient(90deg, rgba(11,60,93,.88) 0%, rgba(11,60,93,.6) 48%, rgba(11,60,93,.22) 100%) !important; }

/* P2 — trust strip min legible size */
.ma-trust{ font-size:14px !important; }
@media (max-width:768px){ .ma-trust{ font-size:13px !important; } }

/* P0 — reclaim the #1 conversion pixel: hide the loud yellow "Now Hiring" top bar
   (REVERSIBLE — careers still at /apply; relocate to footer in round 2). FLAG FOR MATTHEW. */
.vc_custom_1641518207631{ display:none !important; }

/* =========================================================
   AUDIT ROUND 2 — estimate form hardening (labels/fieldsets/CTA)
   ========================================================= */
.wpcf7 .form-req-note{ font-size:.85rem; color:#555; margin:0 0 14px; }
.wpcf7 .req{ color:#c0392b; }
.wpcf7 label[for]{ display:block; font-family:var(--ma-font-head); font-weight:600; color:#0B3C5D; font-size:14px; margin-bottom:5px; }
.wpcf7 fieldset{ border:1px solid #D7E2EA; border-radius:8px; padding:12px 14px; margin:0 0 16px; }
.wpcf7 legend{ font-family:var(--ma-font-head); font-weight:600; color:#0B3C5D; font-size:14px; padding:0 6px; }
.wpcf7 .wpcf7-radio .wpcf7-list-item{ display:block; min-height:44px; display:flex; align-items:center; gap:10px; margin:0 0 4px; }
.wpcf7 .wpcf7-radio .wpcf7-list-item-label{ font-weight:500; }
.wpcf7 .form-reassure{ font-size:.85rem; color:#555; margin:10px 0 0; }
@media (min-width:769px){
  .wpcf7 .wpcf7-radio .wpcf7-list-item{ display:inline-flex; min-height:0; margin:0 18px 6px 0; }
}

/* =========================================================
   AUDIT ROUND 3 — form-first on mobile, map cap, type ramp
   ========================================================= */
/* rank 12: estimate page — form before the map on mobile/tablet, cap map height */
@media (max-width:1024px){
  .wpb_row:has(.contact-form){ display:flex !important; flex-direction:column; }
  .contact-form{ order:-1; }
  .wpb_row:has(.contact-form) .wpb_single_image img{ max-height:280px; width:100%; object-fit:cover; border-radius:10px; }
}
/* rank 13: clearer typographic hierarchy on content pages */
#main-content .entry-content h2, .wpb_text_column h2{
  font-family:var(--ma-font-head); font-weight:700; color:#0B3C5D;
  font-size:clamp(1.5rem,2.2vw,1.95rem); line-height:1.2; margin-top:2.2rem; margin-bottom:.5rem;
}
#main-content .entry-content h3, .wpb_text_column h3{ font-weight:600; color:#0B3C5D; }
#main-content .entry-content{ font-size:17px; }
#main-content .entry-content li{ margin-bottom:.4rem; }

/* =========================================================
   AUDIT ROUND 4 — hero availability line + reduced-motion a11y
   ========================================================= */
.ma-hero__avail{ margin:16px 0 0; color:#fff; font-family:var(--ma-font-head); font-weight:600; font-size:14px; opacity:.96; }
.ma-hero__avail::first-letter{ font-size:1.05em; }
@media (prefers-reduced-motion: reduce){
  .ma-hero__bg{ display:none !important; }   /* show the poster still instead of autoplaying video */
}

/* =========================================================
   NAV + HEADER CLEANUP (navy palette, dropdowns, restore hiring bar)
   ========================================================= */
/* Restore the Now Hiring bar (per Matthew) but slimmer + calmer */
.vc_custom_1641518207631{ display:block !important; padding:7px 16px !important; }
.vc_custom_1641518207631 h3{ font-size:13px !important; line-height:1.4 !important; }

/* Navy nav bar (drop purple) */
.header-nav, .header-nav.bg-color, .vc_row.header-nav, .vc_section.header1 .header-nav{ background-color:#0B3C5D !important; }
.main-nav.main-nav1 .menu-link.main-menu-link, ul#menu-menu-1 .menu-link{ color:#ffffff !important; font-weight:600; }
.main-nav.main-nav1 .current-menu-item > .menu-link,
.main-nav.main-nav1 .current_page_item > .menu-link,
.main-nav.main-nav1 .menu-link:hover{ color:#F4791F !important; }

/* Dropdown submenus */
.main-nav1 .menu, .main-nav1 .main-menu-item{ position:relative; }
.main-nav1 .menu-item-has-children > .menu-link::after{ content:" \25BE"; font-size:.72em; opacity:.85; }
.main-nav1 .sub-menu{
  position:absolute; top:100%; left:0; min-width:248px; margin:0; padding:8px 0; list-style:none;
  background:#0B3C5D; border-top:3px solid #F4791F; box-shadow:0 14px 34px rgba(0,0,0,.30);
  z-index:980; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .16s ease, transform .16s ease;
}
.main-nav1 .main-menu-item:hover > .sub-menu,
.main-nav1 .menu-item-has-children:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:none; }
.main-nav1 .sub-menu li{ display:block; float:none; width:auto; }
.main-nav1 .sub-menu .menu-link, .main-nav1 .sub-menu a{
  display:block; padding:9px 18px; color:#fff !important; white-space:nowrap; font-weight:500; line-height:1.3;
}
.main-nav1 .sub-menu .menu-link:hover, .main-nav1 .sub-menu a:hover{ background:rgba(255,255,255,.10); color:#F4791F !important; }

/* Mobile: show nested items indented inside the drawer */
@media (max-width:768px){
  .main-nav1 .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border-top:0; background:rgba(0,0,0,.18); padding:0; min-width:0; }
  .main-nav1 .sub-menu .menu-link{ padding-left:34px; font-weight:500; }
  .main-nav1 .menu-item-has-children > .menu-link::after{ content:""; }
}

/* =========================================================
   NAV POLISH — clean active state (remove white box)
   ========================================================= */
.main-nav1 .menu-link.main-menu-link{ background:transparent !important; border:0 !important; border-radius:0 !important; }
.main-nav1 .current-menu-item > .menu-link, .main-nav1 .current_page_item > .menu-link{
  color:#F4791F !important; box-shadow:inset 0 -3px 0 #F4791F;
}
@media (max-width:768px){
  .main-nav1 .current-menu-item > .menu-link, .main-nav1 .current_page_item > .menu-link{ box-shadow:none; }
}

/* =========================================================
   HEADER CONDENSE — drop the dated marketing paragraph
   (keep the "Call us at (727)..." phone CTA)
   ========================================================= */
.main-header .vc_cta3 .vc_cta3-content > p,
.main-header .vc_cta3_content-container > .vc_cta3-content > p{ display:none !important; }
.main-header .vc_cta3{ padding-top:14px !important; padding-bottom:14px !important; }
@media (min-width:769px){ .main-header .vc_cta3-content-header h2{ font-size:26px; } }

/* =========================================================
   MOBILE NAV — REPAIR + REBUILD  (refresh-150)
   ---------------------------------------------------------
   Root cause: the theme's theme.js dies on
   `$(...).live is not a function` (jQuery removed .live in 1.9),
   so the theme's own mobile-menu reveal never runs. The hamburger
   DOES still toggle `.active` on nav.main-nav, but the menu <ul>
   stays pushed off-canvas (left:-305px) while still reserving
   ~240px of vertical height — producing a giant EMPTY navy band
   and a dead-looking hamburger.

   The theme's header geometry is also broken on mobile (the nav
   naturally lays out *inside* the white logo row and opens upward
   behind it, and z-index can't lift it out because the white row
   is its own stacking context). So instead of fighting it, we
   render the open menu as a FIXED FULL-SCREEN OVERLAY DRAWER that
   ignores the theme's header geometry entirely. JS-independent —
   relies only on the `.active` class the hamburger already sets.
   Every state below was validated live at 390px. Breakpoint 991px.
   ========================================================= */
@media (max-width:991px){

  /* --- CLOSED: hide the menu so the navy band can't reserve empty height --- */
  nav.main-nav.main-nav1 > ul#menu-menu-1{ display:none !important; }

  /* --- OPEN: full-screen fixed overlay drawer --- */
  nav.main-nav.main-nav1.active > ul#menu-menu-1{
    display:block !important;
    position:fixed !important; inset:0 !important;
    width:100% !important; height:100% !important; max-height:100% !important;
    overflow-y:auto !important; -webkit-overflow-scrolling:touch !important;
    z-index:99998 !important;
    margin:0 !important; padding:84px 0 28px !important;  /* top pad clears the close X */
    background:#0B3C5D !important;
  }

  /* Top-level rows: comfortable, finger-sized, subtle dividers */
  nav.main-nav.main-nav1.active > ul#menu-menu-1 > li{
    display:block !important; width:100% !important; float:none !important;
    border-top:1px solid rgba(255,255,255,.12) !important;
  }
  nav.main-nav.main-nav1.active > ul#menu-menu-1 > li:first-child{ border-top:0 !important; }
  nav.main-nav.main-nav1.active .menu-link.main-menu-link{
    display:block !important; width:100% !important;
    padding:16px 24px !important; line-height:1.3 !important;
    min-height:52px !important; box-sizing:border-box !important;
    font-size:18px !important; color:#fff !important;
  }

  /* Sub-menus (Services + Service Areas) expand inline & indented so the
     service + city landing pages stay reachable (good for users AND SEO). */
  nav.main-nav.main-nav1.active #menu-menu-1 .sub-menu{
    display:block !important; position:static !important;
    opacity:1 !important; visibility:visible !important; transform:none !important;
    box-shadow:none !important; background:rgba(0,0,0,.20) !important;
    width:100% !important; min-width:0 !important; margin:0 !important; padding:0 !important;
  }
  nav.main-nav.main-nav1.active #menu-menu-1 .sub-menu > li{
    border-top:1px solid rgba(255,255,255,.08) !important;
  }
  nav.main-nav.main-nav1.active #menu-menu-1 .sub-menu .menu-link,
  nav.main-nav.main-nav1.active #menu-menu-1 .sub-menu a{
    display:block !important; padding:13px 24px 13px 40px !important;
    color:#dfe8f0 !important; font-size:16px !important;
    min-height:46px !important; box-sizing:border-box !important; white-space:normal !important;
  }

  /* --- HAMBURGER / CLOSE AFFORDANCE --- */
  .toggle-mobile-menu{
    display:inline-flex !important; align-items:center; justify-content:center;
    width:48px !important; height:48px !important; margin:4px 0 !important;
  }
  /* When open, pin the (X) above the overlay and make it white for contrast */
  nav.main-nav.main-nav1.active .toggle-mobile-menu{
    position:fixed !important; top:16px !important; right:16px !important; left:auto !important;
    z-index:100000 !important; width:44px !important; height:44px !important;
  }
  nav.main-nav.main-nav1.active .toggle-mobile-menu::before,
  nav.main-nav.main-nav1.active .toggle-mobile-menu::after{ background-color:#fff !important; }

  /* Back-to-top button was poking ~50px off the right edge */
  .scroll-top.dark, a.scroll-top{ right:14px !important; }
}

/* =========================================================
   EMPTY GALLERY SLIDER — REPAIR  (refresh-150)
   ---------------------------------------------------------
   The WPBakery FlexSlider photo gallery (.wpb_flexslider) renders
   as a tall BLANK box on mobile: it initialised as a horizontal
   carousel (translate3d strip) but without a clipping viewport,
   so the active slide is shifted off-screen and you just see an
   empty frame + dead ‹ › arrows + dots. Rather than depend on the
   (broken) slider JS, flatten it on mobile into a clean static
   2-column photo grid and hide the broken controls. Validated live.
   Desktop (>=992px) keeps the original slider untouched.
   ========================================================= */
@media (max-width:991px){
  .wpb_flexslider,
  .wpb_flexslider .flex-viewport{
    height:auto !important; max-height:none !important; min-height:0 !important;
    overflow:visible !important;
  }
  .wpb_flexslider .slides{
    width:100% !important; max-width:100% !important;
    transform:none !important; transition:none !important;
    display:grid !important; grid-template-columns:1fr 1fr !important; gap:8px !important;
    height:auto !important; margin:0 !important; padding:0 !important;
  }
  .wpb_flexslider .slides > li{
    width:auto !important; max-width:100% !important; float:none !important;
    margin:0 !important; display:block !important; opacity:1 !important;
    position:relative !important; left:auto !important;
  }
  .wpb_flexslider .slides > li img{
    width:100% !important; height:auto !important; display:block !important;
    aspect-ratio:4/3 !important; object-fit:cover !important; border-radius:6px !important;
  }
  /* Hide the dead slider chrome (arrows + pager dots) */
  .wpb_flexslider .flex-direction-nav,
  .wpb_flexslider .flex-control-nav{ display:none !important; }
}

/* =========================================================
   STICKY CALL BAR — REAL BUTTONS  (refresh-150)
   ---------------------------------------------------------
   Previously both items were the same dark-orange, full-width and
   edge-to-edge with no gap or rounding, so the bar read as "words
   on an orange slab" rather than buttons. Rebuild as a navy bar
   holding two distinct rounded pills (orange Call + white Estimate)
   with a gap, radius and shadow. Overrides the earlier callbar
   rules above (loaded last + !important). Validated live.
   ========================================================= */
@media (max-width:768px){
  .ma-callbar{
    display:flex !important; gap:10px !important; align-items:stretch !important;
    background:#0B3C5D !important;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom)) !important;
    height:auto !important; box-shadow:0 -4px 16px rgba(0,0,0,.30) !important;
  }
  .ma-callbar a{
    flex:1 !important; min-height:50px !important; border-radius:10px !important;
    font-family:var(--ma-font-head) !important; font-weight:700 !important; font-size:16px !important;
    display:flex !important; align-items:center !important; justify-content:center !important; gap:8px !important;
    box-shadow:0 2px 6px rgba(0,0,0,.28) !important; line-height:1 !important;
  }
  .ma-callbar__call{ background:#F4791F !important; color:#0B2236 !important; }   /* orange pill */
  .ma-callbar__req{ background:#ffffff !important; color:#0B3C5D !important; }     /* white pill */
  .ma-callbar__call:hover, .ma-callbar__call:active{ background:#E06A12 !important; color:#0B2236 !important; }
  .ma-callbar__req:hover,  .ma-callbar__req:active{ background:#EAF1F6 !important; color:#0B3C5D !important; }
  /* reserve room so the fixed bar never covers page content */
  body{ padding-bottom:calc(72px + env(safe-area-inset-bottom)) !important; }
}

/* =========================================================
   COMPACT MOBILE HEADER — custom injected bar  (refresh-152)
   ---------------------------------------------------------
   The theme's mobile header is a broken multi-row WPBakery mess
   (tall logo row + a separate nav band holding an off-canvas
   hamburger). Re-anchoring that hamburger proved too fragile, so
   functions.php injects a clean compact bar (.ma-mobnav): centered
   logo + a hamburger on the right that toggles `nav.main-nav.active`
   — which drives the existing full-screen overlay menu. Here we
   STYLE that bar and HIDE the theme's original logo row + toggle on
   mobile. The original .header-nav stays (collapsed) because the
   overlay menu's <ul> lives inside it.
   ========================================================= */
@media (max-width:768px){
  /* hide the theme's logo row + its (off-canvas) hamburger */
  .main-header{ display:none !important; }
  a.toggle-mobile-menu{ display:none !important; }

  /* our clean compact bar */
  .ma-mobnav{
    position:relative; display:flex; align-items:center; justify-content:center;
    padding:10px 16px; background:#ffffff; border-bottom:1px solid #e7edf2;
    box-shadow:0 1px 4px rgba(11,60,93,.06);
  }
  .ma-mobnav__logo{ display:inline-block; margin:0 auto; line-height:0; }
  .ma-mobnav__logo img{ max-width:150px; height:auto; display:block; }

  /* hamburger button, pinned right and vertically centered */
  .ma-mobnav__burger{
    position:absolute; top:50%; right:14px; transform:translateY(-50%);
    width:44px; height:44px; padding:9px; margin:0;
    background:transparent; border:0; cursor:pointer; z-index:60;
    display:flex; flex-direction:column; justify-content:space-between;
  }
  .ma-mobnav__burger span{
    display:block; height:3px; width:100%; border-radius:2px;
    background:#0B3C5D; transition:transform .25s ease, opacity .2s ease;
  }
  /* X state when the menu is open (button is pinned above the overlay) */
  .ma-mobnav__burger.is-open{ position:fixed; top:16px; right:16px; z-index:100001; }
  .ma-mobnav__burger.is-open span{ background:#ffffff; }
  .ma-mobnav__burger.is-open span:nth-child(1){ transform:translateY(9.5px) rotate(45deg); }
  .ma-mobnav__burger.is-open span:nth-child(2){ opacity:0; }
  .ma-mobnav__burger.is-open span:nth-child(3){ transform:translateY(-9.5px) rotate(-45deg); }
}
/* the injected bar is mobile-only */
@media (min-width:769px){ .ma-mobnav{ display:none !important; } }

/* =========================================================
   STICKY CALL BAR — REVEAL ON SCROLL  (refresh-151)
   Hide the bottom buttons until the user scrolls past the
   first screen (the hero already shows Call + Free Estimate).
   The .ma-callbar--show class is toggled by JS in functions.php.
   ========================================================= */
@media (max-width:768px){
  .ma-callbar{
    transform:translateY(120%) !important;
    transition:transform .28s ease !important;
    will-change:transform;
  }
  .ma-callbar.ma-callbar--show{ transform:translateY(0) !important; }
}

/* =========================================================
   CONSISTENT MOBILE GUTTERS + RHYTHM  (refresh-151)
   Industry-standard 16px side padding and tighter, even
   vertical spacing between content rows while scrolling.
   ========================================================= */
@media (max-width:768px){
  /* even side gutters on the main content rows */
  #main-content .container{ padding-left:16px !important; padding-right:16px !important; box-sizing:border-box !important; }
  /* tame oversized VC section vertical padding for an even rhythm */
  #main-content .vc_row,
  #main-content .vc_section{ padding-top:18px !important; padding-bottom:18px !important; }
  /* consistent gap under stacked images/text blocks */
  #main-content .wpb_single_image,
  #main-content .wpb_text_column{ margin-bottom:16px !important; }
}


/* === PROFESSIONAL POLISH (refresh-153) === */
/* Metro Air — clean / classy / mechanical content polish.
   Additive, scoped layer appended after refresh-152. Does NOT redefine the
   injected header (.ma-mobnav), overlay menu, sticky call bar (.ma-callbar),
   gallery grid (.wpb_flexslider), hero (.ma-hero) or the review band
   (.ma-reviews-cta / .ma-reviews-btn) — all already handled in refresh-152.
   No global heading colors, no footer recolors. Every rule is scoped to a
   page-id body class, a template body class (.ma-landing), or a real content
   component selector. Palette tokens reused from refresh-152 :root.
   AA note: orange behind WHITE text uses #C24E00; orange behind NAVY/INK
   text uses #F4791F. */

/* =========================================================================
   1. SITEWIDE DESIGN SYSTEM  (scoped to content, never to chrome)
   ========================================================================= */

/* ---- 1a. Content image treatment: rounded 8px + soft shadow -----------
   Scoped to in-content single images and galleries on the pages that need it.
   Excludes hero/logo/gallery-grid (those are component-handled in 152). */
.home .entry-content .wpb_single_image img,
.home .entry-content .wpb_gallery .slides img,
body.page-id-2  .entry-content .vc_single_image-img,
body.page-id-925 .entry-content .wpb_single_image img,
body.page-id-934 .wpb_single_image .vc_single_image-img,
body.page-id-928 .col-sm-7 .vc_single_image-wrapper img{
  display:block; width:100%; height:auto;
  border-radius:var(--ma-radius);
  box-shadow:0 8px 24px rgba(11,60,93,.15);
}

/* Kill dated grey VC box borders wherever they appear on content images. */
body.page-id-2  .entry-content .vc_single_image-wrapper,
body.page-id-925 .entry-content .wpb_single_image .vc_single_image-wrapper,
body.page-id-934 .wpb_single_image .vc_single_image-wrapper{
  border:0 !important; border-radius:var(--ma-radius); overflow:hidden;
  box-shadow:0 8px 24px rgba(11,60,93,.15); display:block;
}

/* ---- 1b. Primary / secondary button system (content CTAs) -------------
   ONE primary pill (orange #C24E00 on white text, AA-safe) reused across
   every content CTA, plus a navy secondary. */
.home .entry-content .ma-reviews-btn,
.page-id-925 .entry-content > .wpb-content-wrapper p[style*="center"]:last-of-type,
body.page-id-928 .contact-form .wpcf7-submit,
body.ma-landing .entry-content p a[href^='tel:'],
body.ma-landing .entry-content p a[href*='estimate-or-repair-request']{
  font-family:var(--ma-font-head); font-weight:600;
  border-radius:var(--ma-radius); text-decoration:none;
  transition:background .15s ease, transform .12s ease;
}

/* =========================================================================
   2. SERVICE + CITY TEMPLATE  (body.ma-landing)
   Shared rules for every service AND city landing page. refresh-152 already
   caps .entry-content at 920px and hides the duplicate .titlte-page-default
   page-title bar, so we DO NOT touch the title bar here; the content H1
   becomes the real page title. We tighten the measure and add hierarchy.
   ========================================================================= */

/* Content area breathing room + readable measure (overrides 152's 920px). */
body.ma-landing #main-content.content-pages{ padding-top:40px; padding-bottom:52px; }
body.ma-landing .st-default.content-pages .container{ max-width:1080px; }
body.ma-landing .entry-content,
body.ma-landing article.page .entry-content{
  max-width:800px; margin-left:auto; margin-right:auto;
  color:var(--ma-ink); font-family:var(--ma-font-body);
  font-size:17px; line-height:1.75;
}

/* Type hierarchy — H1 lead, H2 sections, H3 sub/FAQ. Navy + Poppins. */
body.ma-landing .entry-content h1,
body.ma-landing article.page .entry-content h1{
  font-family:var(--ma-font-head); font-weight:700; color:var(--ma-blue);
  font-size:clamp(2rem,4vw,2.4rem); line-height:1.18; margin:0 0 .55em;
  padding-bottom:.45em; border-bottom:3px solid var(--ma-orange);
  display:inline-block;
}
body.ma-landing .entry-content h2,
body.ma-landing article.page .entry-content h2{
  font-family:var(--ma-font-head); font-weight:700; color:var(--ma-blue);
  font-size:28px; line-height:1.25; margin:46px 0 14px;
  padding-bottom:10px; border-bottom:2px solid #E8F1F8; scroll-margin-top:80px;
}
body.ma-landing .entry-content h3,
body.ma-landing article.page .entry-content h3{
  font-family:var(--ma-font-head); font-weight:600; color:var(--ma-blue);
  font-size:20px; line-height:1.3; margin:28px 0 8px;
}
body.ma-landing .entry-content > p:first-of-type{
  font-size:1.16rem; line-height:1.65; color:var(--ma-ink); margin-top:.5em;
}
body.ma-landing .entry-content p,
body.ma-landing article.page .entry-content p{ margin:0 0 18px; }
body.ma-landing .entry-content li,
body.ma-landing article.page .entry-content li{
  font-family:var(--ma-font-body); font-size:17px; line-height:1.7;
  color:var(--ma-ink);
}
body.ma-landing article.page .entry-content li strong{ color:var(--ma-blue); font-weight:700; }

/* FAQ: hairline divider treatment for H3 question + following answer. */
body.ma-landing .entry-content h3 + p{
  margin:0 0 18px; padding:0 0 18px; border-bottom:1px solid #E8F1F8;
  color:var(--ma-ink);
}

/* Branded marker bullet lists (benefits / services / signs). */
body.ma-landing .entry-content ul:not(.list-none){
  list-style:none; margin:14px 0 22px; padding:0;
}
body.ma-landing .entry-content ul:not(.list-none) li{
  position:relative; padding:6px 0 6px 30px; margin:0 0 8px; line-height:1.6;
}
body.ma-landing .entry-content ul:not(.list-none) li:before{
  content:''; position:absolute; left:2px; top:11px; width:10px; height:10px;
  border-radius:2px; background:var(--ma-orange); transform:rotate(45deg);
}

/* Inline body links in paragraphs — brand orange, subtle underline. */
body.ma-landing .entry-content p a:not([href^='tel:']):not([href*='estimate-or-repair-request']){
  color:#C24E00; font-weight:600; text-decoration:underline; text-underline-offset:2px;
}

/* "Areas We Serve" — last H2's following UL becomes a tidy navy chip grid.
   This wins over the generic bullet rule above via the same specificity +
   source order. */
body.ma-landing .entry-content h2:last-of-type + ul{
  list-style:none; margin:16px 0 24px; padding:0; display:grid;
  grid-template-columns:repeat(3,1fr); gap:12px 16px;
}
body.ma-landing .entry-content h2:last-of-type + ul li{
  margin:0; padding:0; list-style:none;
}
body.ma-landing .entry-content h2:last-of-type + ul li:before{ display:none; }
body.ma-landing .entry-content h2:last-of-type + ul li a{
  display:block; padding:12px 16px; background:#E8F1F8; border:1px solid #d3e3f0;
  border-radius:var(--ma-radius); color:var(--ma-blue); font-weight:600;
  font-size:15px; text-decoration:none; text-align:center; line-height:1.3;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
body.ma-landing .entry-content h2:last-of-type + ul li a:hover{
  background:var(--ma-blue); border-color:var(--ma-blue); color:#fff;
}

/* CTA buttons in body copy — primary call (orange) + secondary estimate (navy). */
body.ma-landing .entry-content p a[href^='tel:'],
body.ma-landing .entry-content p a[href*='estimate-or-repair-request']{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:50px; margin:8px 12px 8px 0; padding:14px 26px;
  font-size:16px; line-height:1; box-shadow:0 6px 18px rgba(11,60,93,.16);
}
body.ma-landing .entry-content p a[href^='tel:']{
  background:#C24E00; color:#ffffff;            /* primary, AA on white text */
}
body.ma-landing .entry-content p a[href^='tel:']:hover{ background:#A63F00; color:#fff; transform:translateY(-2px); }
body.ma-landing .entry-content p a[href*='estimate-or-repair-request']{
  background:#ffffff; color:var(--ma-blue); border:2px solid var(--ma-blue);
  box-shadow:none;                              /* secondary outline */
}
body.ma-landing .entry-content p a[href*='estimate-or-repair-request']:hover{
  background:var(--ma-blue); color:#fff; transform:translateY(-2px);
}

/* =========================================================================
   3. HOME  (body.home / .home .entry-content)
   ========================================================================= */
.home .entry-content{ }

/* Section headings — navy Poppins with an orange accent rule. */
.home .entry-content .wpb_text_column h3{
  font-family:var(--ma-font-head); color:var(--ma-blue); font-weight:700;
  font-size:1.55rem; line-height:1.2; letter-spacing:-.01em;
  margin:0 0 .55em; position:relative; padding-bottom:.4em;
}
.home .entry-content .wpb_text_column h3::after{
  content:''; position:absolute; left:0; bottom:0; width:44px; height:3px;
  border-radius:2px; background:var(--ma-orange);
}
.home .entry-content .wpb_text_column h3[style*='text-align: center']::after,
.home .entry-content .wpb_text_column h3[style*='text-align:center']::after{
  left:50%; transform:translateX(-50%);
}
.home .entry-content .wpb_text_column h3:empty{ display:none; } /* stray empty H3 */

/* Body copy rhythm. */
.home .entry-content .wpb_text_column p{
  font-family:var(--ma-font-body); color:var(--ma-ink);
  font-size:1.02rem; line-height:1.7; margin:0 0 1.05em;
}

/* Mist info panels (Turn to Metro Air for / benefits). */
.home .entry-content .wpb_text_column.vc_custom_1642540170389,
.home .entry-content .wpb_text_column.vc_custom_1642540213537{
  background:#E8F1F8; border:1px solid #d3e4f1; border-radius:10px;
  padding:18px 20px; margin-bottom:18px;
}

/* Navy panel for the closing "Get Service You Can Recommend" CTA copy. */
.home .entry-content .vc_row.vc_inner:last-of-type .col-sm-12 .wpb_text_column:last-of-type{
  background:var(--ma-blue); color:#ffffff; border-radius:12px;
  padding:32px 36px; box-shadow:0 10px 30px rgba(11,60,93,.18);
}

/* Even vertical rhythm between inner rows. */
.home .entry-content .vc_row.wpb_row.vc_inner{ margin-bottom:30px; }

/* In-content review/secondary CTA pill (AA orange on white). */
.home .entry-content .ma-reviews-btn{
  display:inline-block; background:#C24E00; color:#ffffff !important;
  padding:13px 26px; border-radius:999px;
  box-shadow:0 4px 14px rgba(194,78,0,.3);
}
.home .entry-content .ma-reviews-btn:hover{ background:#A63F00; color:#fff !important; }

/* =========================================================================
   4. ABOUT US  (body.page-id-2)
   ========================================================================= */
body.page-id-2 .entry-content > .wpb-content-wrapper{
  display:block; padding-top:56px; padding-bottom:56px;
  max-width:1180px; margin-left:auto; margin-right:auto;
}
body.page-id-2 .entry-content h3{
  font-family:var(--ma-font-head); font-weight:700; font-size:30px;
  line-height:1.2; color:var(--ma-blue); margin:0 0 18px; padding-bottom:12px;
  border-bottom:3px solid var(--ma-orange); display:inline-block;
}
body.page-id-2 .entry-content p{
  font-family:var(--ma-font-body); font-size:16px; line-height:1.7;
  color:var(--ma-ink); margin:0 0 16px;
}
body.page-id-2 .entry-content .vc_single_image-img{ width:100%; height:auto; }
body.page-id-2 .entry-content img.wp-image-1070{   /* Trane anniversary award */
  display:block; margin:0 auto; width:100%; max-width:380px; height:auto;
  border-radius:var(--ma-radius); box-shadow:0 8px 24px rgba(11,60,93,.15);
}
/* Neutralise negative-margin custom column pulling award out of alignment. */
body.page-id-2 .entry-content .vc_column-inner.vc_custom_1524855012965{
  margin-top:0 !important; padding:0 !important;
}

/* =========================================================================
   5. REPAIR & SERVICE HUB  (body.page-id-925)
   ========================================================================= */
.page-id-925 .entry-content{
  max-width:1180px; margin:0 auto; padding:48px 24px 8px;
  font-family:var(--ma-font-body); color:var(--ma-ink); line-height:1.7;
}
/* Page title = first row's H3. */
.page-id-925 .entry-content > .wpb-content-wrapper > .vc_row:first-child h3{
  font-family:var(--ma-font-head); font-size:34px; line-height:1.2;
  font-weight:700; color:var(--ma-blue); margin:0 auto 18px; max-width:860px;
  letter-spacing:-.01em;
}
.page-id-925 .entry-content > .wpb-content-wrapper > .vc_row:first-child p{
  font-size:18px; line-height:1.75; color:var(--ma-ink); max-width:820px;
  margin:0 auto 8px; text-align:center;
}
/* Sub-section headings. */
.page-id-925 .entry-content h3{
  font-family:var(--ma-font-head); font-size:24px; line-height:1.25;
  font-weight:600; color:var(--ma-blue); margin:36px 0 14px;
}
.page-id-925 .entry-content .wpb_single_image.major-padding{ padding:0 !important; margin-top:46px; }
/* Service-name strong labels in the left list. */
.page-id-925 .entry-content .vc_row.vc_inner .col-sm-6:first-child p strong{
  display:inline-block; color:#C24E00; font-family:var(--ma-font-head);
  font-size:16px; font-weight:600; font-style:normal; margin-top:6px;
}
/* "Explore Our HVAC Services" link list as mist cards. */
.page-id-925 .entry-content ul li{
  list-style:none; position:relative; padding:12px 16px 12px 40px; margin:8px 0;
  background:#E8F1F8; border-radius:var(--ma-radius); line-height:1.55;
}
.page-id-925 .entry-content ul li a{ color:var(--ma-blue); font-weight:600; text-decoration:none; }
.page-id-925 .entry-content h3:last-of-type{ text-align:center; margin-top:44px; }
/* Closing phone paragraph styled as a real primary CTA pill. */
.page-id-925 .entry-content > .wpb-content-wrapper p[style*="center"]:last-of-type{
  display:block; max-width:560px; margin:0 auto; background:#C24E00;
  color:#ffffff; padding:18px 28px; font-size:18px; font-weight:600;
  box-shadow:0 10px 24px rgba(194,78,0,.25);
}

/* =========================================================================
   6. FILTERS / HEATING  (body.page-id-931)
   ========================================================================= */
body.page-id-931 .entry-content > .wpb-content-wrapper{
  display:block; max-width:1140px; margin:0 auto; padding:40px 24px 56px;
}
body.page-id-931 .vc_row .col-sm-12 .wpb_text_column h3{
  font-family:var(--ma-font-head); font-weight:700; font-size:34px;
  line-height:1.15; color:var(--ma-blue); text-align:center; margin:8px 0 14px;
  letter-spacing:-.01em;
}
body.page-id-931 .vc_row .col-sm-12 .wpb_text_column p{
  font-family:var(--ma-font-body); font-size:17px; line-height:1.7;
  color:var(--ma-ink); text-align:center; max-width:760px; margin:0 auto 8px;
}
/* Filter product cards. */
body.page-id-931 .vc_row .wpb_column.col-sm-4 > .vc_column-inner{
  background:#ffffff; border:1px solid #E8F1F8; border-radius:12px;
  box-shadow:0 6px 20px rgba(11,60,93,.08); padding:26px 22px 28px;
  margin:12px 10px 24px; height:100%; display:flex; flex-direction:column;
  align-items:center; text-align:center;
  transition:box-shadow .2s ease, transform .2s ease;
}
body.page-id-931 .vc_row .wpb_column.col-sm-4 > .vc_column-inner:hover{
  box-shadow:0 12px 30px rgba(11,60,93,.16); transform:translateY(-3px);
}
body.page-id-931 .wpb_column.col-sm-4 h3#title,
body.page-id-931 .wpb_column.col-sm-4 h3 #productTitle{
  font-family:var(--ma-font-head) !important; font-weight:600 !important;
  font-size:20px !important; line-height:1.25 !important; color:var(--ma-blue) !important;
  text-align:center; margin:0 0 6px;
}
body.page-id-931 .wpb_column.col-sm-4 .wpb_text_column:first-child p{
  font-family:var(--ma-font-body); font-size:14px; line-height:1.5;
  color:#5A6b76; text-transform:uppercase; letter-spacing:.04em;
  text-align:center; margin:0 0 16px;
}
body.page-id-931 .wpb_column.col-sm-4 .wpb_text_column img.aligncenter{
  display:block; margin:0 auto 18px; float:none; max-height:170px; width:auto;
  border-radius:var(--ma-radius);
}
/* "Buy on Amazon" affiliate-link affordance. */
body.page-id-931 #main-content .wpb_column.col-sm-4 .wpb_text_column:last-child p > a:first-child{
  display:inline-flex; align-items:center; justify-content:center; margin-top:4px;
  padding:10px 22px; background:#C24E00; color:#ffffff !important;
  font-family:var(--ma-font-head); font-weight:600; font-size:14px;
  letter-spacing:.02em; border-radius:var(--ma-radius); text-decoration:none;
  box-shadow:0 3px 10px rgba(194,78,0,.28); transition:background .15s ease;
}
body.page-id-931 #main-content .wpb_column.col-sm-4 .wpb_text_column:last-child p > a:first-child:hover{ background:#A63F00; }
/* Newsletter band — brand the input + Subscribe button. */
body.page-id-931 .newsletter-signup .form-newsletter input[type=email]{
  border:1px solid rgba(255,255,255,.4); border-radius:var(--ma-radius);
  padding:12px 16px; font-family:var(--ma-font-body); font-size:15px;
  background:#ffffff; color:var(--ma-ink); min-height:46px;
}
body.page-id-931 .newsletter-signup .form-newsletter input[type=submit]{
  background:var(--ma-orange); color:#ffffff !important;
  font-family:var(--ma-font-head); font-weight:600; font-size:15px;
  border:none; border-radius:var(--ma-radius); padding:13px 28px; cursor:pointer;
  box-shadow:0 4px 12px rgba(244,121,31,.35); transition:background .15s ease;
}
body.page-id-931 .newsletter-signup .form-newsletter input[type=submit]:hover{ background:#D9650E; }
body.page-id-931 img.wp-image-1005{ float:none; display:block; margin:0 0 14px; border-radius:var(--ma-radius); }

/* =========================================================================
   7. LOCATION  (body.page-id-934)
   ========================================================================= */
.page-id-934 #main-content .entry-content{ padding-top:48px; padding-bottom:56px; }
.page-id-934 .entry-content > .wpb-content-wrapper > .vc_row:first-child > .col-sm-8 > .vc_column-inner,
.page-id-934 .entry-content > .wpb-content-wrapper > .vc_row:first-child > .col-sm-4 > .vc_column-inner{
  padding-left:14px; padding-right:14px;
}
/* Rounded, shadowed Google map. */
.page-id-934 .wpgmza_map{
  border-radius:10px; overflow:hidden; box-shadow:0 6px 20px rgba(11,60,93,.14);
  border:1px solid #E8F1F8; height:440px !important;
}
/* Headings. */
.page-id-934 .entry-content h3{
  font-family:var(--ma-font-head); font-weight:700; font-size:26px;
  line-height:1.25; color:var(--ma-blue); margin:0 0 14px; padding-bottom:10px;
  border-bottom:3px solid var(--ma-orange); display:inline-block;
}
.page-id-934 .entry-content p{
  font-family:var(--ma-font-body); font-size:16px; line-height:1.7; color:var(--ma-ink);
}
/* "Areas We Serve" — branded link-card grid. */
.page-id-934 .entry-content > .wpb-content-wrapper > .vc_row:last-child ul{
  list-style:none; margin:18px 0 0; padding:0; display:grid;
  grid-template-columns:repeat(3,1fr); gap:14px;
}
.page-id-934 .entry-content > .wpb-content-wrapper > .vc_row:last-child ul li{
  list-style:none; margin:0; padding:0;
}
.page-id-934 .entry-content > .wpb-content-wrapper > .vc_row:last-child ul li a{
  display:block; padding:14px 16px; background:#E8F1F8; border:1px solid #d6e6f3;
  border-radius:var(--ma-radius); color:var(--ma-blue); font-family:var(--ma-font-body);
  font-weight:600; font-size:15px; text-decoration:none; transition:all .15s ease;
}
.page-id-934 .entry-content > .wpb-content-wrapper > .vc_row:last-child ul li a:hover{
  background:var(--ma-blue); border-color:var(--ma-blue); color:#ffffff;
  box-shadow:0 4px 12px rgba(11,60,93,.22); transform:translateY(-1px);
}
/* Remove stray WPBakery spacer br + give the two rows clean separation. */
.page-id-934 .entry-content > .wpb-content-wrapper > br{ display:none; }
.page-id-934 .entry-content > .wpb-content-wrapper > .vc_row:last-child{
  margin-top:44px; padding-top:36px; border-top:1px solid #E8F1F8;
}

/* =========================================================================
   8. ESTIMATE / REPAIR REQUEST FORM  (body.page-id-928)
   ========================================================================= */
body.page-id-928 .entry-content .wpb-content-wrapper{ padding:40px 0 48px; }
/* Balanced two-column pair (map | form). */
body.page-id-928 .entry-content .vc_row.wpb_row{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
}
body.page-id-928 .col-sm-7 .wpb_single_image{ text-align:center; }
/* Headings + intro. */
body.page-id-928 .entry-content > .wpb-content-wrapper > .vc_row:first-child h3{
  font-family:var(--ma-font-head); font-weight:700; font-size:34px;
  line-height:1.2; color:var(--ma-blue); margin:8px 0 14px;
}
body.page-id-928 .entry-content > .wpb-content-wrapper > .vc_row:first-child p{
  font-family:var(--ma-font-body); font-size:16px; line-height:1.65;
  color:var(--ma-ink); max-width:760px; margin:0 auto;
}
/* Contained form card. */
body.page-id-928 .contact-form .vc_column-inner{
  background:#ffffff; border:1px solid #E8F1F8; border-top:4px solid var(--ma-blue);
  border-radius:12px; box-shadow:0 10px 30px rgba(11,60,93,.10); padding:32px 28px;
}
/* Inputs + focus. */
body.page-id-928 .contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-radio){
  width:100%; box-sizing:border-box; border:1.5px solid #d7e3ee;
  border-radius:var(--ma-radius); padding:12px 14px; font-family:var(--ma-font-body);
  font-size:15px; color:var(--ma-ink); background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease;
}
body.page-id-928 .contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-radio):focus{
  outline:none; border-color:var(--ma-orange); box-shadow:0 0 0 3px rgba(244,121,31,.18);
}
/* Labels + legends. */
body.page-id-928 .contact-form .wpcf7-form > p > label,
body.page-id-928 .contact-form .wpcf7-form fieldset > legend{
  display:inline-block; font-family:var(--ma-font-head); font-weight:600;
  font-size:13px; letter-spacing:.02em; color:var(--ma-blue); margin-bottom:6px;
}
body.page-id-928 .contact-form .wpcf7-form fieldset > legend{ padding:0; float:none; width:auto; margin-bottom:8px; }
/* Radio fieldsets + inline pill options. */
body.page-id-928 .contact-form .wpcf7-form fieldset:not(.hidden-fields-container){
  border:1px solid #E8F1F8; background:#F7FBFE; border-radius:10px;
  padding:14px 16px; margin:0 0 18px;
}
body.page-id-928 .contact-form .wpcf7-radio{ display:flex; flex-wrap:wrap; gap:8px 18px; }
body.page-id-928 .contact-form .wpcf7-radio .wpcf7-list-item{
  display:inline-flex; align-items:center; gap:7px; margin:0;
  font-family:var(--ma-font-body); font-size:15px; color:var(--ma-ink);
}
/* Submit = confident full-width primary (AA orange on white text). */
body.page-id-928 .contact-form .wpcf7-submit{
  width:100%; background:#C24E00; color:#ffffff; border:none;
  border-radius:var(--ma-radius); padding:16px 24px; font-family:var(--ma-font-head);
  font-weight:700; font-size:16px; letter-spacing:.02em; cursor:pointer;
  box-shadow:0 6px 16px rgba(194,78,0,.28);
  transition:background .15s ease, transform .05s ease; margin-top:4px;
}
body.page-id-928 .contact-form .wpcf7-submit:hover{ background:#A63F00; }
body.page-id-928 .contact-form .form-reassure{
  font-family:var(--ma-font-body); font-size:13px; color:#5b6b78;
  text-align:center; margin:14px 0 0;
}

/* =========================================================================
   9. MOBILE  (<=768px)  — gutters, scaled type, stacked columns
   ========================================================================= */
@media (max-width:768px){

  /* ---- Service / city template ---- */
  body.ma-landing #main-content.content-pages,
  body.ma-landing .st-default.content-pages .container,
  body.ma-landing #main-content .content-pages .container,
  body.ma-landing #main-content .entry-content,
  body.ma-landing .entry-content,
  body.ma-landing article.page .entry-content{
    padding-left:16px; padding-right:16px;
  }
  body.ma-landing #main-content.content-pages{ padding-top:32px; padding-bottom:36px; }
  body.ma-landing .entry-content h1,
  body.ma-landing article.page .entry-content h1{ font-size:26px; line-height:1.22; }
  body.ma-landing .entry-content h2,
  body.ma-landing article.page .entry-content h2{ font-size:22px; margin-top:34px; }
  /* Areas grid → 2-up on phones for usable tap targets. */
  body.ma-landing .entry-content h2:last-of-type + ul{ grid-template-columns:repeat(2,1fr); gap:8px; }
  /* Stacked CTA buttons go full width. */
  body.ma-landing .entry-content p a[href^='tel:'],
  body.ma-landing .entry-content p a[href*='estimate-or-repair-request']{
    display:flex; width:100%; margin:8px 0;
  }

  /* ---- Home ---- */
  body.home .entry-content{ padding-left:16px; padding-right:16px; }
  .home .entry-content .wpb_text_column h3{ font-size:1.32rem; line-height:1.22; }
  .home .entry-content .col-sm-8 .wpb_single_image{ max-width:100%; margin-bottom:18px; }

  /* ---- About ---- */
  body.page-id-2 .entry-content > .wpb-content-wrapper{ padding:32px 16px; }
  body.page-id-2 .entry-content h3{ font-size:23px; margin-bottom:14px; padding-bottom:10px; }
  body.page-id-2 .entry-content .vc_row.wpb_row.vc_inner{
    display:flex; flex-direction:column; gap:24px; margin-bottom:32px;
  }
  body.page-id-2 .entry-content img.wp-image-1070{ max-width:300px; margin:0 auto; }

  /* ---- Repair hub ---- */
  .page-id-925 .entry-content{ padding-left:16px; padding-right:16px; padding-top:28px; }

  /* ---- Filters ---- */
  body.page-id-931 .vc_row .wpb_column.col-sm-4 > .vc_column-inner{ margin:10px 0 16px; padding:22px 18px; }

  /* ---- Location ---- */
  .page-id-934 #main-content .container{ padding-left:16px; padding-right:16px; }
  .page-id-934 .entry-content > .wpb-content-wrapper > .vc_row:last-child ul{ grid-template-columns:repeat(2,1fr); gap:12px; }

  /* ---- Estimate form ---- */
  body.page-id-928 .entry-content .vc_row.wpb_row > .wpb_column{
    padding-left:16px; padding-right:16px; margin-bottom:20px;
  }
}

/* =========================================================================
   10. DESKTOP  (>=769px)  — balanced two-column rows & capped image stacks
   ========================================================================= */
@media (min-width:769px){

  /* ---- Home: balance 8/4 row, cap the wide image stack ---- */
  .home .entry-content .col-sm-8 .wpb_single_image{
    max-width:560px; margin-left:0; margin-bottom:24px;
  }

  /* ---- About: vertically-centered, evenly-gapped inner rows ---- */
  body.page-id-2 .entry-content .vc_row.wpb_row.vc_inner{
    display:flex; flex-wrap:wrap; align-items:center; gap:40px; margin-bottom:48px;
  }
  body.page-id-2 .entry-content .vc_row.wpb_row.vc_inner > .wpb_column{
    flex:1 1 0; min-width:0; padding-left:0; padding-right:0;
  }

  /* ---- Repair hub: balanced inner two-column row ---- */
  .page-id-925 .entry-content .vc_row.vc_inner{
    display:flex; flex-wrap:wrap; align-items:flex-start; gap:40px; margin:8px 0;
  }
  .page-id-925 .entry-content .vc_row.vc_inner > .col-sm-6{
    flex:1 1 0; width:auto; min-width:280px; padding:0;
  }

  /* ---- Estimate form: centered, full-width map image ---- */
  body.page-id-928 .col-sm-7 .vc_single_image-wrapper img{
    width:100%; height:auto; max-width:560px; display:block; margin:0 auto;
    border-radius:12px; box-shadow:0 10px 30px rgba(11,60,93,.12);
  }
}

/* =========================================================
   QA FIXES (refresh-154) — westshore-web playbook pass
   ========================================================= */

/* 1) Filters: Amazon affiliate IMAGE widgets are dead (ws-na.amazon-adsystem
   .../widgets/q -> 0x0 broken img), leaving empty orange buttons. Hide the
   broken image and show a real "Buy on Amazon" text label on the button. */
body.page-id-931 #main-content .wpb_column.col-sm-4 .wpb_text_column:last-child p > a:first-child img{ display:none !important; }
body.page-id-931 #main-content .wpb_column.col-sm-4 .wpb_text_column:last-child p > a:first-child{ min-width:150px; }
body.page-id-931 #main-content .wpb_column.col-sm-4 .wpb_text_column:last-child p > a:first-child::after{
  content:"Buy on Amazon"; font-family:var(--ma-font-head); font-weight:600; font-size:14px; letter-spacing:.02em;
}

/* 2) Outdated "Serving Pinellas County for 40 Years" baked graphic — the
   business is 50+ yrs and every other surface says so. Hide the stale image
   sitewide (reversible). REPLACE with a correct "50+ Years" asset when ready. */
img[src*="serving-pinellas-county-for-40-years"]{ display:none !important; }


/* =========================================================
   MOBILE GUTTER FIX (refresh-155) — text was hugging the left
   ---------------------------------------------------------
   WPBakery nests .vc_row.wpb_row with margin:-15px at several
   levels; stacked, they pulled content to left:2px (defeating the
   container/entry-content padding) and pushed headings off the
   right. Give ONE clean 16px gutter from .container, drop the
   doubled entry-content padding, and neutralise the nested-row
   negative margins + column side padding on mobile. Card padding
   lives on .vc_column-inner (untouched), so the filter cards keep
   their look. Validated live at 390px (heading left:2 -> 16, no
   horizontal overflow).
   ========================================================= */
@media (max-width:768px){
  #main-content .container{ padding-left:16px !important; padding-right:16px !important; box-sizing:border-box !important; }
  #main-content .entry-content{ padding-left:0 !important; padding-right:0 !important; }
  #main-content .entry-content .vc_row.wpb_row{ margin-left:0 !important; margin-right:0 !important; }
  #main-content .entry-content .wpb_column,
  #main-content .entry-content [class*="vc_col-"],
  #main-content .entry-content [class*="col-sm-"]{ padding-left:0 !important; padding-right:0 !important; }
}

/* =========================================================================
   refresh-156 — UNIFORM TYPE SCALE (site-wide consistency pass)
   One type ramp for EVERY content page so headings/body match across Home,
   About, Services, Location, Filters, Estimate AND the city/service landing
   pages. Sizes only (color/decoration left to the per-page rules so we never
   recolor a heading sitting on a dark panel). High specificity + !important
   so it normalises the old per-page sizes (home 24.8 / about 30 / services 34
   / filters 34) to one consistent scale.
   ========================================================================= */
:root{
  /* micar theme sets root font-size to 10px (62.5%), so rem renders 1.6x too
     small here. These use px + vw and are root-size-proof. */
  --ma-t-section: clamp(22px, 16px + .9vw, 28px);   /* 22 -> 28px  section heading */
  --ma-t-sub:     clamp(18px, 16px + .3vw, 20px);   /* 18 -> 20px  sub-heading */
  --ma-t-body:    17px;                              /* body copy */
}

/* Section headings — every H2/H3 inside WPBakery text on a non-landing page. */
body:not(.ma-landing) #main-content .wpb_text_column h2,
body:not(.ma-landing) #main-content .wpb_text_column h3{
  font-size: var(--ma-t-section) !important;
  line-height: 1.28 !important;
  font-weight: 700 !important;
  font-family: var(--ma-font-head) !important;
  letter-spacing: -.01em !important;
}
/* Sub-headings — H4/H5 + the promoted service-name labels. */
body:not(.ma-landing) #main-content .wpb_text_column h4,
body:not(.ma-landing) #main-content .wpb_text_column h5{
  font-size: var(--ma-t-sub) !important;
  line-height: 1.32 !important;
  font-weight: 600 !important;
  font-family: var(--ma-font-head) !important;
}
/* Body copy + list items — one size, one rhythm everywhere. */
body:not(.ma-landing) #main-content .wpb_text_column p,
body:not(.ma-landing) #main-content .wpb_text_column li{
  font-size: var(--ma-t-body) !important;
  line-height: 1.7 !important;
}
/* Keep the landing pages locked to the SAME ramp (they were already close). */
body.ma-landing .entry-content h2{ font-size: var(--ma-t-section) !important; line-height:1.28 !important; }
body.ma-landing .entry-content h3{ font-size: var(--ma-t-sub) !important; line-height:1.32 !important; }
body.ma-landing .entry-content p,
body.ma-landing .entry-content li{ font-size: var(--ma-t-body) !important; line-height:1.7 !important; }
/* Tighten the landing H1 so the page-title tier matches site-wide (was up to 38px). */
body.ma-landing .entry-content h1{ font-size: clamp(26px, 20px + 1.2vw, 32px) !important; }

/* Services hub: real service sub-headings (promoted from inline <em><strong>).
   These render as block H4s after the content edit. */
.page-id-925 .entry-content .wpb_text_column h4{
  color: var(--ma-blue) !important; margin: 22px 0 6px !important;
}
.page-id-925 .entry-content .wpb_text_column h4:first-child{ margin-top: 4px !important; }


/* =========================================================================
   refresh-156 — CLEAN HEADER CTA  (replaces the dated grey "Call us" box)
   New markup lives in header post 877 as .ma-headcta inside a vc_column_text.
   Left: brand value line + trust line.  Right: orange phone button + outline
   Free-Estimate button. Shown on desktop/tablet only (mobile uses .ma-mobnav).
   ========================================================================= */
.ma-headcta{
  display:flex; align-items:center; justify-content:flex-end; gap:28px;
  flex-wrap:wrap; width:100%; min-height:96px; padding:6px 0;
}
.ma-headcta__info{
  display:flex; flex-direction:column; gap:4px; text-align:right; margin-right:auto;
}
.ma-headcta__kicker{
  font-family:var(--ma-font-head); font-weight:700; color:var(--ma-blue);
  font-size:clamp(1rem, .7rem + .6vw, 1.22rem); line-height:1.2; letter-spacing:-.01em;
}
.ma-headcta__sub{
  font-family:var(--ma-font-head); font-weight:600; color:#5b6b78;
  font-size:13px; letter-spacing:.01em; text-transform:none;
}
.ma-headcta__actions{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.ma-headcta__btn{
  display:inline-flex; align-items:center; gap:10px; text-decoration:none;
  font-family:var(--ma-font-head); font-weight:700; line-height:1;
  border-radius:10px; transition:background .15s ease, color .15s ease, transform .15s ease, box-shadow .15s ease;
  white-space:nowrap;
}
.ma-headcta__btn--call{
  background:#F4791F; color:#fff !important; padding:11px 22px;
  box-shadow:0 6px 18px rgba(244,121,31,.32);
}
.ma-headcta__btn--call:hover{ background:#d96512; color:#fff !important; transform:translateY(-2px); box-shadow:0 9px 22px rgba(244,121,31,.4); }
.ma-headcta__btn-ico{ font-size:1.25em; line-height:1; }
.ma-headcta__btn-txt{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.ma-headcta__btn-txt small{ font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; opacity:.92; }
.ma-headcta__btn-txt b{ font-size:1.18rem; font-weight:700; letter-spacing:.01em; }
.ma-headcta__btn--est{
  background:#fff; color:var(--ma-blue) !important; padding:12px 22px;
  border:2px solid var(--ma-blue);
}
.ma-headcta__btn--est:hover{ background:var(--ma-blue); color:#fff !important; transform:translateY(-2px); }

/* The header CTA column should fill the row + vertically center its content. */
.main-header .vc_cta3-container,
.main-header .ma-headcta{ height:100%; }
.main-header .wpb_column:last-child > .vc_column-inner,
.main-header .wpb_column:last-child > .vc_column-inner > .wpb_wrapper{ height:100%; display:flex; align-items:center; }

/* Tablet: keep it tidy as the row narrows (769–1024). */
@media (max-width:1024px) and (min-width:769px){
  .ma-headcta{ gap:16px; min-height:80px; }
  .ma-headcta__sub{ display:none; }
  .ma-headcta__btn--call{ padding:10px 16px; }
  .ma-headcta__btn--est{ padding:11px 16px; }
  .ma-headcta__btn-txt b{ font-size:1.05rem; }
}
/* Mobile: header CTA is replaced by the .ma-mobnav bar — hide it. */
@media (max-width:768px){ .ma-headcta{ display:none !important; } }

/* Services hub: left-align the service-list column so the H4 sub-headings and
   their paragraphs read as one tidy block (the centered section title keeps its
   inline center). */
.page-id-925 .entry-content .vc_row.vc_inner .col-sm-6:first-child .wpb_text_column,
.page-id-925 .entry-content .vc_row.vc_inner .col-sm-6:first-child .wpb_text_column p,
.page-id-925 .entry-content .vc_row.vc_inner .col-sm-6:first-child .wpb_text_column h4{
  text-align:left !important;
}
