/* Site-wide pieces of the redesign (Direction A) that Avada has no element for. Loaded by the td-mikeymachvac plugin. */

/* ---- brand wordmark (text, like the van lettering) ---- */
.td-brand { display: inline-flex !important; flex-direction: column; line-height: 1; text-decoration: none !important; }
.td-brand__name { font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 800; font-size: 30px; letter-spacing: .01em; color: #1b2f6b; }
.td-brand__sub { font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 700; font-size: 14px; letter-spacing: .14em; margin-top: 3px; color: #1b2f6b; text-transform: uppercase; }
.td-brand__sub em { font-style: normal; color: #c8262e; }
.td-brand__sub i { font-style: normal; color: #3a9ad9; }
.td-brand.on-dark .td-brand__name, .td-brand.on-dark .td-brand__sub { color: #fff; }
.td-brand.on-dark .td-brand__sub em { color: #ff8a90; }
.td-brand.on-dark .td-brand__sub i { color: #8fd0ff; }
.td-wordmark p { margin: 0; line-height: 1; }
@media (max-width: 640px) { .td-brand__name { font-size: 26px; } .td-brand__sub { font-size: 12px; } }

/* ---- the heating / cooling code ---- */
.td-tag { display: inline-block; font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 700; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: #fff !important; padding: 5px 10px; text-decoration: none !important; line-height: 1.2; }
.td-tag--h { background: #c8262e; } .td-tag--c { background: #3a9ad9; } .td-tag--b { background: #1b2f6b; }
a.td-tag:hover { opacity: .85; }
.td-kick-town { font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 700; font-size: 16px; letter-spacing: .14em; text-transform: uppercase; color: #8fd0ff; margin-left: 8px; }

/* ---- header ---- */
.td-header .fusion-menu-element-wrapper { width: 100%; }
.fusion-tb-header .fusion-builder-container.td-header { position: relative; }
.td-strip p { margin: 0; white-space: nowrap; }
.td-strip b { color: #ffd166; font-weight: 600; }
.td-phone p { margin: 0; line-height: 1; text-align: right; }
.td-phone a { font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 800; font-size: 30px; color: #1b2f6b !important; text-decoration: none !important; letter-spacing: .01em; display: inline-block; }
.td-phone small { display: block; font-family: Barlow, Arial, sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #c8262e; margin-bottom: 3px; }
@media (max-width: 1024px) { .td-strip-note { display: none; } }
.td-strip-phone { display: none; }
.td-strip-call { display: none; }
/* Phones (2026-09-24): the top strip repeated what the hero says and could not be tapped, and once you scrolled past the hero
   there was no phone number on the screen at all. Now the strip IS the call action, and the number rides in the sticky header. */
@media (max-width: 640px) {
  .td-strip .fusion-text p { font-size: 13px; line-height: 40px; }
  .td-strip-right, .td-strip-info { display: none !important; }
  .td-strip { background-color: #c8262e !important; padding-left: 0 !important; padding-right: 0 !important; }
  .td-strip .fusion-builder-row { max-width: none !important; }
  .td-strip-call { display: block; }
  .td-strip .fusion-builder-row, .td-strip .fusion-layout-column, .td-strip .fusion-column-wrapper { min-height: 0 !important; }
  .td-strip .fusion-layout-column, .td-header .fusion-layout-column { margin-top: 0 !important; margin-bottom: 0 !important; }
  .td-strip .fusion-text p { line-height: 1 !important; }
  .td-strip-call a { display: block; padding: 0 14px; line-height: 42px; font-family: Barlow, Arial, sans-serif; font-weight: 600; font-size: 14.5px; letter-spacing: .02em; color: #fff !important; text-decoration: none !important; text-align: center; white-space: nowrap; }
  .td-strip-call b { font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 800; font-size: 19px; letter-spacing: .01em; color: #fff; }
  /* the header: one line for the wordmark, the number as a red pill, the hamburger last */
  .td-header .fusion-builder-row { flex-wrap: nowrap !important; align-items: center; }
  .td-header .td-header-phone { order: 2; flex: 0 0 auto !important; width: auto !important; }
  .td-header .fusion-layout-column:nth-child(2) { order: 3; flex: 0 0 auto !important; width: auto !important; margin-left: 10px !important; }
  .td-header .fusion-layout-column:first-child { flex: 1 1 auto !important; width: auto !important; }
  .td-brand__name { font-size: 25px !important; }
  .td-brand__sub { font-size: 10.5px !important; letter-spacing: .1em !important; }
  .td-phone p { text-align: right; }
  .td-phone a { display: inline-flex; align-items: center; background: #c8262e; color: #fff !important; font-size: 17px; line-height: 1; padding: 9px 11px; border-radius: 6px; white-space: nowrap; }
  .td-phone small { display: none; }
  .td-phone, .td-phone p { white-space: nowrap; }
  /* the header itself: shorter, so the photo and the headline start higher */
  .td-header .fusion-builder-row, .td-header .fusion-layout-column, .td-header .fusion-column-wrapper { min-height: 0 !important; }
  .td-header > .fusion-builder-row { padding-top: 12px !important; padding-bottom: 12px !important; }
  .td-brand { line-height: 1.05; }
}

/* ---- page hero (inner pages) ---- */
.td-page-hero .td-rail { position: relative; padding-left: 28px !important; }
.td-page-hero .td-rail::before { content: ''; position: absolute; left: 0; top: 4px; bottom: 4px; width: 8px; background: linear-gradient(180deg, #c8262e 0 50%, #3a9ad9 50% 100%); }
.td-page-h1, .td-page-h1 h1 { font-size: 72px !important; line-height: .95 !important; max-width: 22ch; }
.td-h2, .td-h2 h2 { font-size: 52px !important; }
.td-h2-sm, .td-h2-sm h2 { font-size: 40px !important; }
.td-lead p { margin: 0; max-width: 70ch; }
@media (max-width: 1024px) { .td-page-h1, .td-page-h1 h1 { font-size: 56px !important; } .td-h2, .td-h2 h2 { font-size: 44px !important; } .td-h2-sm, .td-h2-sm h2 { font-size: 34px !important; } }
@media (max-width: 640px) { .td-page-h1, .td-page-h1 h1 { font-size: 40px !important; } .td-h2, .td-h2 h2 { font-size: 36px !important; } .td-h2-sm, .td-h2-sm h2 { font-size: 30px !important; } .td-page-hero .td-rail { padding-left: 20px !important; } }

/* ---- running text (about, services, landing articles, sitemap) ---- */
.td-article .fusion-text p, .td-article .post-content p { margin-bottom: 1.1em; }
.td-article ul, .td-article ol { margin: 0 0 1.2em 1.3em; }
.td-article li { margin-bottom: .4em; }
.td-article h2, .td-article h3, .td-article h4 { color: #1b2f6b; margin-top: 1.4em; }
.td-article h2 { font-size: 32px; }
.td-article h3 { font-size: 24px; }
.td-article a { color: #c8262e; text-decoration: underline; text-decoration-color: rgba(200,38,46,.4); text-underline-offset: 3px; }
.td-article .td-landing-article h2 { font-size: 32px !important; line-height: 1.02; margin-top: 1.6em; }
.td-article .td-landing-article h3 { font-size: 22px !important; line-height: 1.1; margin-top: 1.4em; }
.td-landing-article h2:first-child, .td-landing-article h3:first-child { margin-top: 0; }
.td-landing-article p.td-note { margin-top: 2.4em; font-size: 13.5px; color: #8a93a3; border-top: 1px solid #dfe3ea; padding-top: 16px; }
.td-sitemap ul { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 40px; }
.td-sitemap li { padding: 2px 0; border-bottom: 1px solid #dfe3ea; break-inside: avoid; }
.td-sitemap li a { text-decoration: none; display: block; padding: 6px 0; }
@media (max-width: 900px) { .td-sitemap ul { columns: 2; } }
@media (max-width: 640px) { .td-sitemap ul { columns: 1; } }

/* ---- photo frames and fact lists ---- */
.td-photo { display: block; line-height: 0; border: 6px solid #1b2f6b; }
.td-photo img { width: 100%; height: auto; }
.td-facts p { margin: 0 0 14px; }
.td-facts strong { color: #1b2f6b; }
.td-promises { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; }
.td-promises li { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; }
.td-promises li::before { content: ''; width: 18px; height: 18px; flex: none; margin-top: 4px; border-radius: 50%; background: conic-gradient(#c8262e 0 50%, #3a9ad9 50% 100%); }
.td-lic { display: inline-block; border: 2px solid currentColor; padding: 10px 14px; font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 700; letter-spacing: .06em; font-size: 18px; text-transform: uppercase; }
@media (max-width: 640px) { .td-promises { grid-template-columns: 1fr; } }

/* ---- landing pages (town / service) ---- */
.td-landing-kick p { margin: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.td-landing-aside { position: sticky !important; top: 72px !important; align-self: flex-start; }
.td-aside .td-aside-h, .td-aside .td-aside-h h3 { font-size: 26px !important; color: #fff !important; }
.td-aside .fusion-button { width: 100%; }
.td-aside .td-aside-num { margin: 0 0 12px; }
.td-aside .td-aside-num a { font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 800; font-size: 40px; color: #fff !important; text-decoration: none !important; line-height: 1; }
.td-landing-aside .gform_wrapper .gfield { margin-bottom: 10px !important; }
.td-landing-aside .gform_wrapper .gfield_label { margin-bottom: 4px !important; font-size: 13px !important; }
.td-landing-aside .gform_wrapper .ginput_container input { padding: 10px 12px !important; font-size: 15px !important; }
.td-landing-aside .gform_wrapper .ginput_container textarea { height: 76px !important; padding: 10px 12px !important; font-size: 15px !important; }
.td-landing-aside .gform_wrapper .gform_footer { padding-top: 4px !important; }
.td-landing-aside .gform_wrapper .gform_button { padding: 13px 20px !important; font-size: 16px !important; }
.td-landing-aside .gform_wrapper .gfield_description { display: none; }
.td-landing-aside .gform_wrapper .gf_left_half, .td-landing-aside .gform_wrapper .gf_right_half { width: 100% !important; }
@media (max-width: 1024px) { .td-landing-aside { position: relative !important; top: 0 !important; } }
.td-related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; border-top: 2px solid #1b2f6b; padding-top: 28px; }
.td-article .td-related h2 { font-size: 20px !important; line-height: 1.1; margin: 0 0 10px; }
.td-related ul { list-style: none; margin: 0; padding: 0; }
.td-related li { padding: 2px 0; border-bottom: 1px solid #dfe3ea; font-size: 15px; line-height: 1.4; }
.td-related li a { color: #1b2f6b; text-decoration: none; display: block; padding: 6px 0; }
.td-related li a:hover { color: #c8262e; }
@media (max-width: 760px) { .td-related { grid-template-columns: 1fr; gap: 20px; } }

/* ---- towns ---- */
.td-towns { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 32px; }
.td-towns li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid #dfe3ea; }
.td-towns li b { font-weight: 600; color: #1b2f6b; }
.td-towns li span { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.td-towns .td-tag { font-size: 12px; padding: 4px 8px; }
.td-towns--simple { grid-template-columns: repeat(4, 1fr); }
.td-towns--simple li a { display: block; padding: 4px 0; font-weight: 500; color: #1b2f6b; text-decoration: none; }
.td-towns--simple li a:hover { color: #c8262e; }
@media (max-width: 900px) { .td-towns, .td-towns--simple { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .td-towns, .td-towns--simple { grid-template-columns: 1fr; } }

/* ---- Gravity Forms: on a dark panel (.td-form) and on white (.td-form-light) ---- */
/* the "thanks, Mike has your message" panel: the Gravity Forms styles add-on colours it dark navy by id, which is invisible
   on our navy bands — the homepage estimate band and the estimate panel beside every town article (2026-09-24). */
.td-form .gform_confirmation_message, .td-form .gform_confirmation_wrapper,
.td-estimate .gform_confirmation_message, .td-landing-aside .gform_confirmation_message,
body .td-form #gform_confirmation_message_1, body .td-estimate #gform_confirmation_message_1, body .td-landing-aside #gform_confirmation_message_1 {
  color: #ffffff !important; text-align: left !important; font-family: Barlow, Arial, sans-serif; font-size: 16.5px; line-height: 1.5;
  background: rgba(255,255,255,.07); border-left: 3px solid #45c17a; padding: 16px 18px; border-radius: 4px;
}
.td-form .gform_confirmation_message strong, .td-estimate .gform_confirmation_message strong, .td-landing-aside .gform_confirmation_message strong { color: #ffffff !important; display: block; margin-bottom: 4px; font-size: 18px; }
.td-form .gform_confirmation_message a, .td-estimate .gform_confirmation_message a, .td-landing-aside .gform_confirmation_message a { color: #ffd166 !important; }
/* on the white Contact page panel the dark text is fine — just give it the same shape */
.td-form-light .gform_confirmation_message, body .td-form-light #gform_confirmation_message_1 {
  text-align: left !important; background: #f2f7f3; border-left: 3px solid #45c17a; padding: 16px 18px; border-radius: 4px; color: #1b2f6b !important;
}

.td-form .gform_wrapper .gfield_label, .td-form-light .gform_wrapper .gfield_label { font-family: Barlow, Arial, sans-serif; font-size: 14px !important; font-weight: 600 !important; letter-spacing: .02em; }
.td-form .gform_wrapper .gfield_label { color: #dfe6f5 !important; }
.td-form-light .gform_wrapper .gfield_label { color: #1b2f6b !important; }
.td-form .gform_wrapper .gfield_description { color: #a9b4cc !important; font-size: 13px !important; padding-top: 6px; }
.td-form-light .gform_wrapper .gfield_description { color: #8a93a3 !important; font-size: 13px !important; }
.td-form .gform_wrapper .ginput_container input, .td-form .gform_wrapper .ginput_container textarea, .td-form .gform_wrapper .ginput_container select,
.td-form-light .gform_wrapper .ginput_container input, .td-form-light .gform_wrapper .ginput_container textarea, .td-form-light .gform_wrapper .ginput_container select { width: 100%; background: #fff !important; color: #2b3442 !important; border: 1px solid #dfe3ea !important; border-radius: 6px; padding: 12px 14px !important; font-size: 16px !important; font-family: Barlow, Arial, sans-serif; }
.td-form .gform_wrapper .ginput_container input, .td-form .gform_wrapper .ginput_container textarea { border-color: rgba(255,255,255,0) !important; }
/* the estimate band sits right above the footer: a hairline keeps them apart */
.td-footer { border-top: 1px solid rgba(255,255,255,.12) !important; }
.td-form-light .gform_wrapper .ginput_container input, .td-form-light .gform_wrapper .ginput_container textarea { background: #f2f4f7 !important; }
.td-form .gform_wrapper .ginput_container textarea, .td-form-light .gform_wrapper .ginput_container textarea { height: 120px !important; }
.td-form .gform_wrapper .ginput_container input:focus, .td-form .gform_wrapper .ginput_container textarea:focus { outline: 2px solid #8fd0ff !important; }
.td-form-light .gform_wrapper .ginput_container input:focus, .td-form-light .gform_wrapper .ginput_container textarea:focus { outline: 2px solid #1b2f6b !important; }
.td-form .gform_wrapper .gform_footer, .td-form-light .gform_wrapper .gform_footer { padding: 8px 0 0 !important; margin: 0 !important; }
.td-form .gform_wrapper .gform_button, .td-form-light .gform_wrapper .gform_button { background: #c8262e !important; color: #fff !important; border: 0 !important; border-radius: 6px; font-family: Barlow, Arial, sans-serif; font-weight: 600; font-size: 17px !important; padding: 14px 22px !important; cursor: pointer; }
.td-form .gform_wrapper .gform_button:hover, .td-form-light .gform_wrapper .gform_button:hover { background: #a81f26 !important; }
.td-form .gform_wrapper .gfield_required { color: #ff8a90 !important; } .td-form-light .gform_wrapper .gfield_required { color: #c8262e !important; }
.td-form .gform_wrapper .validation_message, .td-form .gform_wrapper .gform_validation_errors { color: #ffd7db !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 6px 0 0 !important; font-size: 13.5px !important; }
.td-form-light .gform_wrapper .validation_message, .td-form-light .gform_wrapper .gform_validation_errors { color: #c8262e !important; background: none !important; border: 0 !important; box-shadow: none !important; padding: 6px 0 0 !important; font-size: 13.5px !important; }
.td-form .gform_confirmation_message { color: #fff; font-size: 18px; } .td-form-light .gform_confirmation_message { color: #1b2f6b; font-size: 18px; }
.td-form .gform_wrapper .ginput_container_checkbox input, .td-form .gform_wrapper .ginput_container_radio input, .td-form-light .gform_wrapper .ginput_container_checkbox input, .td-form-light .gform_wrapper .ginput_container_radio input { width: auto !important; margin: 0 10px 0 0 !important; }
.td-form .gform_wrapper .gchoice, .td-form-light .gform_wrapper .gchoice { display: flex; align-items: center; margin-bottom: 8px; }
.td-form-light .gform_wrapper .gfield_captcha .gfield_label, .td-form-light .gform_wrapper .ginput_recaptcha:empty { display: none; }

/* ---- what happens when you call ---- */
.td-steps { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid #dfe3ea; background: #fff; }
.td-step { padding: 22px 20px; border-right: 1px solid #dfe3ea; }
.td-step:last-child { border-right: 0; }
.td-step__n { font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 800; font-size: 44px; line-height: 1; color: #3a9ad9; }
.td-step:nth-child(odd) .td-step__n { color: #c8262e; }
.td-board .td-step h3 { font-size: 22px !important; margin: 8px 0 0; color: #1b2f6b; line-height: 1.05; }
.td-step p { margin: 6px 0 0; font-size: 15px; color: #5b6575; }
@media (max-width: 1024px) { .td-steps { grid-template-columns: 1fr 1fr 1fr; } .td-step { border-bottom: 1px solid #dfe3ea; } .td-step:nth-child(3n) { border-right: 0; } }
@media (max-width: 640px) { .td-steps { grid-template-columns: 1fr; } .td-step { border-right: 0 !important; padding: 18px; display: grid; grid-template-columns: 44px 1fr; gap: 0 12px; } .td-step__n { grid-row: 1 / 3; font-size: 34px; } .td-board .td-step h3 { margin-top: 2px; } }

/* ---- emergency band ---- */
.td-emerg-num p { margin: 0; text-align: right; }
.td-emerg-num a { display: inline-block; font-family: 'Barlow Condensed', Impact, sans-serif; font-weight: 800; font-size: 54px; line-height: 1; background: #fff; color: #c8262e !important; padding: 8px 22px; border-radius: 6px; text-decoration: none !important; }
@media (max-width: 640px) { .td-emerg-num p { text-align: left; } .td-emerg-num a { font-size: 38px; padding: 8px 16px; } }

/* ---- contact page: call / text / email strip ---- */
.td-ways .td-way:first-child, .td-ways .td-way:first-child > .fusion-column-wrapper { border-left: 0 !important; }
@media (max-width: 640px) { .td-way, .td-way > .fusion-column-wrapper { border-left: 0 !important; padding-left: 0 !important; } .td-way { padding-top: 16px !important; padding-bottom: 16px !important; } .td-way + .td-way { border-top: 1px solid rgba(255,255,255,.25); } .td-way .fusion-title h3 { font-size: 24px !important; } }

/* ---- services page ---- */
.td-photo--h { border-color: #c8262e; } .td-photo--c { border-color: #3a9ad9; }
.td-svc .td-promises { margin: 18px 0 0; }
.td-svc .td-promises--h li::before { background: #c8262e; } .td-svc .td-promises--c li::before { background: #3a9ad9; }
.td-svc .td-townlinks { margin-top: 22px; font-size: 15px; color: #5b6575; line-height: 1.9; }
.td-svc .td-townlinks a { color: #1b2f6b; text-decoration: none; border-bottom: 1px solid #dfe3ea; }
.td-svc .td-townlinks a:hover { color: #c8262e; }
.td-svc { scroll-margin-top: 80px; }

.td-form .gform_wrapper .ginput_complex label, .td-form .gform_wrapper .gform-field-label--type-sub { color: #a9b4cc !important; font-family: Barlow, Arial, sans-serif; font-size: 13px !important; }
.td-form-light .gform_wrapper .ginput_complex label, .td-form-light .gform_wrapper .gform-field-label--type-sub { color: #5b6575 !important; font-family: Barlow, Arial, sans-serif; font-size: 13px !important; }
.td-form .gform_wrapper .ginput_container input::placeholder, .td-form-light .gform_wrapper .ginput_container input::placeholder, .td-form .gform_wrapper textarea::placeholder, .td-form-light .gform_wrapper textarea::placeholder { color: #8a93a3; }
.td-form .gform_wrapper .ginput_counter, .td-form-light .gform_wrapper .ginput_counter { display: none; }

/* ---- footer ---- */
.td-footer .fusion-text p a { color: #c9d2e6; text-decoration: none; }
.td-footer .fusion-text p a:hover { color: #fff; }
@media (max-width: 1024px) { .td-footer .fusion-text p a { display: inline-block; padding: 6px 0; } }
footer .fusion-text p { font-size: 15px; }
.td-legal p { font-size: 13px !important; }

/* ---- Google reviews plugin (td-google-reviews), when it is switched on ---- */
body .tdr { --tdr-accent: #c8262e; --tdr-panel: #1b2f6b; --tdr-panel-ink: #ffffff; --tdr-panel-link: #8fd0ff; --tdr-ink: #1b2f6b; --tdr-muted: #5b6575; --tdr-faint: #8a93a3; --tdr-line: #dfe3ea; --tdr-card-bg: #ffffff; --tdr-page-bg: #f2f4f7; --tdr-font-display: 'Barlow Condensed', Impact, sans-serif; --tdr-font-body: Barlow, Arial, sans-serif; --tdr-quote-transform: uppercase; }

/* ---- Athena chat button: keep it clear of the emergency band's number on phones ---- */
@media (max-width: 640px) { .td-emerg .fusion-text { padding-right: 0; } }

/* town map band (landing pages) */
.td-map h2 { margin: 0 0 8px; }
.td-map p { margin: 0 0 18px; max-width: 62ch; }
.td-map iframe { display: block; width: 100%; height: 380px; border: 0; border-radius: 8px; background: #dfe3ea; }
@media (max-width: 640px) { .td-map iframe { height: 260px; } }
.td-reviews-widget { margin-top: 4px; }
