
  /* Brand color variables — single source of truth, easy to swap */
  :root {
    --tc-orange: #F27D00;
    --tc-orange-dark: #D86E00;
    --tc-blue: #0a5a72;
    --tc-blue-dark: #0a5a72;
    --tc-light-gray: #f7f9fb;
  }

  /* Footer polish — logo size, dividers, icons, etc. */
  .site-primary-footer-wrap .widget_media_image img {
    max-width: 220px !important;
    height: auto !important;
  }
  .site-primary-footer-wrap .widget_media_image,
  .site-primary-footer-wrap .site-footer-section-1 aside,
  .site-primary-footer-wrap .site-footer-section-1 .footer-widget-area-inner {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
  }
  /* Hairline dividers between Quick Links menu items */
  .site-primary-footer-wrap #menu-primary {
    border-top: 1px solid #d8dde0;
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .site-primary-footer-wrap #menu-primary > li {
    border-bottom: 1px solid #d8dde0;
    padding: 8px 0;
    margin: 0 !important;
  }
  .site-primary-footer-wrap #menu-primary > li > .menu-link {
    padding: 0 !important;
  }
  /* Get In Touch styling — phone/email with icons */
  .site-primary-footer-wrap .tc-touch-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
  }
  .site-primary-footer-wrap .tc-touch-icon {
    display: inline-flex;
    width: 18px;
    height: 18px;
    color: #0a5a72;
    flex-shrink: 0;
  }
  .site-primary-footer-wrap .tc-touch-row a {
    color: #0a5a72;
    font-weight: 600;
    text-decoration: none;
  }
  .site-primary-footer-wrap .tc-touch-row a:hover {
    text-decoration: underline;
  }
  .site-primary-footer-wrap .tc-touch-phone {
    font-size: 16px;
  }
  .site-primary-footer-wrap .tc-touch-email {
    font-size: 14px;
    word-break: break-word;
  }
  .site-primary-footer-wrap .tc-touch-hours {
    padding-top: 14px;
    margin-top: 14px;
    border-top: 1px solid #d8dde0;
    font-size: 13px;
    color: #2c3e50;
  }
  .site-primary-footer-wrap .tc-touch-hours strong {
    color: #1a2b3c;
    display: block;
    margin-bottom: 4px;
  }

  /* Footer: 3-col horizontal layout. Grid is on the OUTER container because
     sections 1/3/4 live at different DOM levels (section-1 inside grid-row, 3 & 4 as siblings) */
  .site-primary-footer-wrap .ast-builder-grid-row-container-inner {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 40px !important;
    align-items: flex-start !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
  }
  .site-primary-footer-wrap .ast-builder-grid-row {
    display: block !important;
    max-width: none !important;
    margin: 0 !important;
  }
  @media (max-width: 600px) {
    .site-primary-footer-wrap .ast-builder-grid-row-container-inner {
      grid-template-columns: 1fr !important;
    }
  }

  /* Logo sizing — new tagline-free horizontal PNG */
  .ast-site-identity .custom-logo,
  .site-branding .custom-logo,
  img.custom-logo {
    width: 280px !important;
    height: auto !important;
    max-width: 280px !important;
  }
  .ast-site-identity .site-logo-img a,
  .site-branding .site-logo-img a {
    max-width: 280px !important;
    display: inline-block !important;
  }

  /* Hiring banner: the whole bar is the link, not just the two words */
  .simple-banner .simple-banner-text a.tc-banner-link {
    display: flex; align-items: center; justify-content: center; gap: 5px;
    margin: -10px -20px; padding: 10px 44px; text-decoration: none;
  }
  .simple-banner .simple-banner-text a.tc-banner-link .tc-bl-lead { color: #ffffff; }
  .simple-banner .simple-banner-text a.tc-banner-link .tc-bl-cta {
    color: #F27D00; text-decoration: underline; text-underline-offset: 2px;
  }
  .simple-banner .simple-banner-button { z-index: 3; }

  li.menu-item-32 { position: relative !important; overflow: visible !important; }
  ul.main-header-menu, .main-header-menu, .ast-nav-menu { overflow: visible !important; }

  /* Shift the entire header row right so it's more visually centered.
     Phone is now inside the nav, so collapse the previously-empty right grid column. */
  .ast-primary-header-bar .ast-container,
  .ast-primary-header-bar.main-header-bar .site-primary-header-wrap,
  .site-primary-header-wrap.ast-container {
    padding-left: 60px !important;
    padding-right: 60px !important;
    max-width: 100% !important;
  }
  .ast-builder-grid-row.ast-grid-center-col-layout {
    grid-template-columns: auto 1fr !important;
  }
  /* Tighten gaps between nav items (existing) */
  ul.main-header-menu > li.menu-item > .menu-link,
  ul#ast-hf-menu-1 > li > .menu-link {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
  /* Remove extra margin around logo container */
  .site-header-primary-section-left,
  .site-header-primary-section-left .ast-builder-layout-element {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }

  /* Hide the original desktop phone widget (we're putting the phone in the nav instead) */
  #ast-desktop-header .header-widget-area,
  #ast-desktop-header aside.widget_text {
    display: none !important;
  }
  /* Style the phone <li> in the nav so it stands out a bit */
  li.menu-item-phone .menu-link {
    font-weight: 700 !important;
  }

  /* Hover state for Instant Pricing tag — fills solid green with white text */
  .tc-pricing-tag a {
    transition: background-color 0.15s, color 0.15s !important;
  }
  .tc-pricing-tag a:hover,
  .tc-pricing-tag a:focus {
    background: #F27D00 !important;
    color: #ffffff !important;
  }
  /* When Instant Pricing tag is hovered, keep parent Residential Services in its non-hover color */
  .ast-builder-menu-1 .main-header-menu > li.menu-item-32:has(.tc-pricing-tag > a:hover) > .menu-link,
  li.menu-item-32:has(.tc-pricing-tag > a:hover) > a.menu-link {
    color: var(--ast-global-color-3) !important;
  }
  /* Mobile menu: Instant Pricing pill goes inline-right beside Residential Services
     (instead of awkwardly positioned below on a separate row). Desktop unchanged. */
  @media (max-width: 1279px) {
    #ast-mobile-header li.menu-item-32 {
      display: flex !important;
      align-items: center !important;
      flex-wrap: nowrap !important;
      padding: 4px 18px 4px 0 !important;
      border-bottom: 1px solid rgba(0,0,0,0.08) !important;
    }
    #ast-mobile-header li.menu-item-32 > a.menu-link {
      flex: 1 1 auto !important;
      border-bottom: none !important;
    }
    #ast-mobile-header li.menu-item-32 .tc-pricing-tag {
      position: static !important;
      top: auto !important;
      left: auto !important;
      right: auto !important;
      text-align: right !important;
      padding: 0 !important;
      margin: 0 !important;
      flex: 0 0 auto !important;
      pointer-events: auto !important;
    }
  }


  /* ============================================================
     NEW PALETTE: orange CTAs for primary actions
     ============================================================ */
  /* Generic primary action button (page-level CTAs) */
  .tc-cta-btn.tc-orange-cta,
  a.tc-cta-btn.tc-orange-cta {
    background: var(--tc-orange) !important;
    color: #ffffff !important;
    border: 2px solid var(--tc-orange) !important;
    box-shadow: 0 4px 12px rgba(242,125,0,0.25) !important;
    transition: background-color 0.18s, transform 0.18s, box-shadow 0.18s !important;
  }
  .tc-cta-btn.tc-orange-cta:hover,
  a.tc-cta-btn.tc-orange-cta:hover {
    background: var(--tc-orange-dark) !important;
    border-color: var(--tc-orange-dark) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(242,125,0,0.32) !important;
  }

  /* === REVERTABLE: typography balance — prevents orphans on last line. */
  /* If this causes any layout issue, delete this entire block (between the === markers). */
  h1, h2, h3, h4,
  .tc-page-lead p, .tc-fdc-body, .tc-cta-block p, .tc-about-section p,
  .tc-intro p, .tc-scripture, .tc-stats-note, .tc-info-block p,
  .tc-hero-pair .tc-hero-blurb {
    text-wrap: balance;
  }
  /* === END REVERTABLE BLOCK === */

  /* === REVERTABLE: callout-section paragraph alignment === */
  /* Centers paragraphs in short callout sections to match their centered headings. */
  /* Lists are unaffected. If this causes issues, delete this entire block. */
  .tc-intro p,
  .tc-info-block p,
  .tc-by-request > p {
    text-align: center;
  }
  /* === END REVERTABLE: callout paragraph alignment === */

  /* === v81 header + footer redesign === */
  /* Left-shift the nav: collapse the empty center grid column and let the
     menu sit immediately to the right of the logo. */
  @media (min-width: 922px) {
    .ast-builder-grid-row-container .ast-builder-grid-row {
      grid-template-columns: auto 1fr auto !important;
      grid-column-gap: 28px !important;
    }
    .site-header-primary-section-center {
      justify-content: flex-start !important;
    }
    .site-header-primary-section-center .ast-main-header-bar-alignment {
      justify-content: flex-start !important;
    }
    .site-header-primary-section-center .main-navigation {
      margin-left: 0 !important;
    }
  }
  /* Phone in nav: brand blue, inline icon */
  .menu-item-phone .menu-link {
    color: var(--tc-blue, #0a5a72) !important;
    display: inline-flex !important;
    align-items: center !important;
  }
  .menu-item-phone .menu-link:hover {
    color: var(--tc-blue-dark, #0a5a72) !important;
  }
  /* === v192b: override Astra's parent 3-col grid that was squeezing our footer === */
  .site-primary-footer-wrap.tc-footer-3col .ast-builder-grid-row-container-inner,
  .site-primary-footer-wrap.tc-footer-4col .ast-builder-grid-row-container-inner {
    grid-template-columns: 1fr !important;
  }
  /* === v81 footer redesign — 4 columns === */
  .site-primary-footer-wrap.tc-footer-3col .ast-builder-footer-grid-columns,
  .site-primary-footer-wrap.tc-footer-4col .ast-builder-footer-grid-columns {
    display: grid !important;
    grid-template-columns: 0.9fr 1fr 1fr 1.1fr !important;
    gap: 32px !important;
    align-items: start !important;
  }
  @media (max-width: 900px) {
    .site-primary-footer-wrap.tc-footer-3col .ast-builder-footer-grid-columns,
    .site-primary-footer-wrap.tc-footer-4col .ast-builder-footer-grid-columns {
      grid-template-columns: 1fr 1fr !important;
      gap: 28px !important;
    }
  }
  @media (max-width: 600px) {
    .site-primary-footer-wrap.tc-footer-3col .ast-builder-footer-grid-columns,
    .site-primary-footer-wrap.tc-footer-4col .ast-builder-footer-grid-columns {
      grid-template-columns: 1fr !important;
      gap: 24px !important;
    }
  }
  .tc-since-badge {
    display: inline-block;
    background: rgba(242,125,0,0.12);
    color: var(--tc-orange, #F27D00);
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    margin-top: 12px;
    letter-spacing: 0.3px;
  }
  .tc-service-areas-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .tc-service-areas-list li {
    padding: 4px 0 !important;
    color: #5f6b73;
    font-size: 14px;
  }
  .tc-service-areas-list li a {
    color: #5f6b73 !important;
    text-decoration: none;
    border-bottom: 1px dotted rgba(95,107,115,0.35);
    transition: color 0.15s, border-color 0.15s;
  }
  .tc-service-areas-list li a:hover {
    color: #0a5a72 !important;
    border-bottom-color: #0a5a72;
  }
  .tc-current-area {
    color: #1a2b3c !important;
    font-weight: 600;
  }
  .tc-google-review-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f7c948;
    color: #5e3700 !important;
    padding: 7px 14px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none !important;
    margin-top: 10px;
    transition: background 0.15s;
  }
  .tc-google-review-link:hover {
    background: #ecbb35;
    color: #4a2900 !important;
  }
  .tc-google-review-link svg {
    width: 14px;
    height: 14px;
  }
  /* Hide the Instant Pricing pill in the FOOTER quick links only */
  .site-footer .tc-pricing-tag { display: none !important; }


  /* v82: tighten footer Quick Links spacing so col 3 doesn't tower over others */
  .site-footer .menu-link {
    padding: 5px 0 !important;
    line-height: 1.45 !important;
  }
  .site-footer #menu-primary li {
    padding: 0 !important;
    margin: 0 !important;
    border-bottom: 0.5px solid rgba(0,0,0,0.06);
  }
  .site-footer #menu-primary li:last-child { border-bottom: none; }
  /* tighten Since 2009 margin to match new vertical rhythm */
  .tc-since-badge { margin-top: 8px !important; }


  /* v82b: fix residential's leftover padding + make Service Areas stretch to match Quick Links column height */
  .site-footer #menu-primary .menu-item-32,
  .site-footer #menu-primary .menu-item-32 a {
    padding-bottom: 0 !important;
  }
  .site-footer .tc-service-areas-list {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    height: 100% !important;
    min-height: 220px;
  }
  .site-footer-primary-section-3a aside,
  .site-footer-primary-section-3a section {
    height: 100% !important;
  }


  /* v82c: match Service Areas styling to Quick Links + push column bottoms to align */
  .site-footer .tc-service-areas-list {
    display: block !important;  /* override v82b flex; we'll match Quick Links list flow */
    height: auto !important;
    min-height: 0 !important;
  }
  .site-footer .tc-service-areas-list li {
    padding: 5px 0 !important;
    line-height: 1.45 !important;
    border-bottom: 0.5px solid rgba(0,0,0,0.06);
    font-size: 14px;
    color: var(--ast-global-color-3, #5f6b73);
  }
  .site-footer .tc-service-areas-list li:last-child { border-bottom: none; }
  /* Push column 1 (logo + badge) and column 4 (touch + review) to fill height so all bottoms align */
  .site-footer-primary-section-1,
  .site-footer-primary-section-4 {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
  }
  .site-footer-primary-section-1 .footer-widget-area-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  /* push the Since 2009 badge to fill remaining space, keeping logo on top */
  .site-footer-primary-section-1 .tc-since-badge {
    margin-top: auto !important;
    align-self: flex-start;
  }
  /* push the Google review button to bottom of Get In Touch col */
  .site-footer-primary-section-4 .footer-widget-area-inner,
  .site-footer-primary-section-4 .widget,
  .site-footer-primary-section-4 .textwidget {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  .site-footer .tc-google-review-link {
    margin-top: auto !important;
    align-self: flex-start;
  }


  /* v82d: force exact same item heights in Service Areas and Quick Links so all 4 col bottoms align */
  .site-footer .tc-service-areas-list li,
  .site-footer #menu-primary li {
    height: 32px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    line-height: 1 !important;
  }
  .site-footer #menu-primary .menu-link {
    padding: 0 !important;
    line-height: 1 !important;
    width: 100%;
  }


  /* v82e: divider consistency + tighten overall footer */
  /* Add top divider to Service Areas list to match Quick Links */
  .site-footer .tc-service-areas-list {
    border-top: 0.5px solid rgba(0,0,0,0.06);
    padding-top: 0 !important;
  }
  /* Tighten overall footer vertical padding */
  .site-primary-footer-wrap {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
  .site-below-footer-wrap {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
  /* Shrink the footer logo so col 1 doesn't dominate column height */
  .site-footer-primary-section-1 img.image,
  .site-footer-primary-section-1 .widget_media_image img {
    max-width: 180px !important;
    width: 180px !important;
    height: auto !important;
  }
  /* tighten margin between widget title and list */
  .site-footer .widget-title {
    margin-bottom: 8px !important;
  }


  /* v176: bump header phone weight */
  .ast-builder-html-element .ast-builder-button-wrap a[href^="tel:"],
  .ast-builder-html-element a[href^="tel:"],
  .site-header a[href^="tel:"] { font-weight: 700 !important; }
