/* Design layer v2 (2026-10-16) — a modern design language over the existing site: softer corners, layered depth,
   glass header, card-based steps / services / towns, framed forms, quiet texture on the navy bands. Same words,
   same pictures, same sections, same brand colours and fonts — only how they are drawn changes. Loaded by the
   td-mikeymachvac plugin after site.css / home.css and before motion.css. */

:root {
	--td-navy: #1b2f6b; --td-ink: #0e1a3d; --td-red: #c8262e; --td-blue: #3a9ad9; --td-gold: #ffd166;
	--td-line: #e4e8ef; --td-mist: #f4f6fa;
	--td-r-sm: 8px; --td-r: 14px; --td-r-lg: 20px; --td-r-xl: 26px;
	--td-shadow-1: 0 1px 2px rgba(14,26,61,.06), 0 2px 8px -2px rgba(14,26,61,.06);
	--td-shadow-2: 0 2px 4px rgba(14,26,61,.04), 0 12px 32px -12px rgba(14,26,61,.18);
	--td-shadow-3: 0 4px 10px rgba(14,26,61,.06), 0 30px 60px -24px rgba(14,26,61,.35);
}

/* ---------- type & base ---------- */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
h1, h2, h3, h4, .fusion-title h1, .fusion-title h2, .fusion-title h3 { text-wrap: balance; }
p, li { text-wrap: pretty; }
::selection { background: rgba(58,154,217,.28); color: inherit; }
:focus-visible { outline: 2px solid var(--td-blue) !important; outline-offset: 3px; border-radius: 4px; }
html { scrollbar-color: rgba(27,47,107,.45) transparent; scrollbar-width: thin; }
::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-thumb { background: rgba(27,47,107,.4); border-radius: 10px; border: 2px solid #fff; }

/* ---------- top strip + header: frosted glass ---------- */
.td-strip { background-image: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.04) 50%, rgba(255,255,255,0) 100%); }
.fusion-tb-header .td-header, .fusion-sticky-container .td-header {
	background-color: rgba(255,255,255,.86) !important;
	-webkit-backdrop-filter: saturate(180%) blur(14px); backdrop-filter: saturate(180%) blur(14px);
	border-bottom: 1px solid rgba(27,47,107,.08) !important;
}
.td-header .awb-menu__main-a { border-radius: var(--td-r-sm); }
.awb-menu__sub-ul { border-radius: var(--td-r) !important; overflow: hidden; box-shadow: var(--td-shadow-3) !important; border: 1px solid var(--td-line) !important; padding: 6px 0 !important; }
.awb-menu__sub-a { border-radius: 0; }
@media (min-width: 641px) {
	.td-phone a { padding: 2px 4px; border-radius: var(--td-r-sm); }
}
@media (max-width: 640px) { .td-phone a { border-radius: 999px !important; padding: 9px 14px !important; box-shadow: 0 6px 16px -6px rgba(200,38,46,.6); } }

/* ---------- buttons ---------- */
.fusion-button { border-radius: 12px !important; letter-spacing: .01em; }
.fusion-button.button-1, .td-hero .fusion-button:first-of-type { box-shadow: 0 10px 24px -10px rgba(200,38,46,.7); }
.td-form .gform_wrapper .gform_button, .td-form-light .gform_wrapper .gform_button { border-radius: 12px !important; padding-left: 28px !important; padding-right: 28px !important; box-shadow: 0 10px 24px -10px rgba(200,38,46,.7); }

/* ---------- tags (heating / cooling code) ---------- */
.td-tag { border-radius: 6px; }
.td-hero-kick p, .td-landing-kick p { gap: 6px; }
.td-towns .td-tag { border-radius: 6px; }

/* ---------- homepage hero ---------- */
.td-hero-tag p { border-radius: 0 var(--td-r-sm) var(--td-r-sm) 0; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); background: rgba(14,26,61,.5); }
.td-hero::before { background-image: linear-gradient(90deg, rgba(14,26,61,.94) 0%, rgba(14,26,61,.82) 36%, rgba(14,26,61,.18) 66%, rgba(14,26,61,0) 100%), linear-gradient(0deg, rgba(14,26,61,.55) 0%, rgba(14,26,61,0) 26%); }
@media (max-width: 1024px) { .td-hero::before { background-image: linear-gradient(90deg, rgba(14,26,61,.94) 0%, rgba(14,26,61,.86) 50%, rgba(14,26,61,.35) 100%); } }
@media (max-width: 640px) { .td-hero::before { background-image: linear-gradient(180deg, rgba(14,26,61,.10) 0%, rgba(14,26,61,.20) 34%, rgba(14,26,61,.86) 50%, rgba(14,26,61,.97) 64%, rgba(14,26,61,.98) 100%); } }

/* ---------- navy bands + inner-page heroes: a quiet glow and a fine grid, behind the content ---------- */
.td-page-hero, .td-about, .td-reviews, .td-estimate, .td-footer { position: relative; isolation: isolate; overflow: hidden; }
.td-page-hero::before, .td-about::before, .td-reviews::before, .td-estimate::before, .td-footer::before {
	content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(60% 80% at 88% 0%, rgba(58,154,217,.22) 0%, rgba(58,154,217,0) 60%),
		radial-gradient(45% 70% at 0% 100%, rgba(200,38,46,.16) 0%, rgba(200,38,46,0) 60%);
}
.td-page-hero::after, .td-estimate::after {
	content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
	background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: radial-gradient(80% 90% at 75% 30%, #000 0%, transparent 75%); mask-image: radial-gradient(80% 90% at 75% 30%, #000 0%, transparent 75%);
}
.td-footer::before { background: radial-gradient(50% 90% at 100% 0%, rgba(58,154,217,.12) 0%, rgba(58,154,217,0) 60%); }
.td-page-hero .td-rail::before { border-radius: 8px; }

/* ---------- section kickers ---------- */
.td-kick p, p.td-kick { letter-spacing: .16em !important; }

/* ---------- "what happens when you call": five floating cards ---------- */
.td-steps { gap: 16px; border: 0; background: transparent; }
.td-step { background: #fff; border: 1px solid var(--td-line) !important; border-radius: var(--td-r-lg); box-shadow: var(--td-shadow-1); padding: 24px 22px 26px; overflow: hidden; }
.td-step:hover { box-shadow: var(--td-shadow-2); background-color: #fff !important; }
.td-step__n { display: inline-grid !important; place-items: center; width: 54px; height: 54px; border-radius: 16px; font-size: 32px !important; background: rgba(58,154,217,.1); }
.td-step:nth-child(odd) .td-step__n { background: rgba(200,38,46,.09); }
.td-board .td-step h3 { margin-top: 16px !important; }
@media (max-width: 1024px) { .td-step, .td-step:nth-child(3n) { border-right: 1px solid var(--td-line) !important; border-bottom: 1px solid var(--td-line) !important; } }
@media (max-width: 640px) {
	.td-steps { gap: 12px; }
	.td-step { padding: 16px !important; grid-template-columns: 48px 1fr !important; gap: 0 14px !important; }
	.td-step__n { width: 46px; height: 46px; border-radius: 14px; font-size: 26px !important; }
	.td-board .td-step h3 { margin-top: 2px !important; }
}

/* ---------- services: rounded cards, colour code as a bar ---------- */
.td-legend p { gap: 8px; }
.td-legend p > * { display: inline-flex; align-items: center; }
.td-legend i { border-radius: 50%; }
.td-cards { gap: 24px; }
.td-card { border: 1px solid var(--td-line) !important; border-top: 1px solid var(--td-line) !important; border-radius: var(--td-r-lg); box-shadow: var(--td-shadow-1); background: #fff; }
.td-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; z-index: 2; background: var(--td-navy); }
.td-card--h::before { background: var(--td-red); } .td-card--c::before { background: var(--td-blue); }
.td-card:hover { box-shadow: var(--td-shadow-3) !important; }
.td-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.td-card__type { display: inline-flex; align-self: flex-start; padding: 4px 9px; border-radius: 6px; background: rgba(27,47,107,.07); font-size: 11.5px !important; }
.td-card--h .td-card__type { background: rgba(200,38,46,.08); } .td-card--c .td-card__type { background: rgba(58,154,217,.1); }
.td-services .td-card h3 { margin-top: 12px !important; }
.td-card__more { margin-top: auto; padding-top: 16px; }

/* ---------- photo frames: rounded, the frame colour becomes an offset block behind ---------- */
.td-photo { border: 0 !important; border-radius: var(--td-r-xl); overflow: hidden; box-shadow: 16px 16px 0 0 var(--td-navy), var(--td-shadow-3); }
.td-photo--h { box-shadow: 16px 16px 0 0 var(--td-red), var(--td-shadow-3); }
.td-photo--c { box-shadow: 16px 16px 0 0 var(--td-blue), var(--td-shadow-3); }
.td-about .td-photo { box-shadow: 16px 16px 0 0 rgba(255,255,255,.9), 0 30px 60px -24px rgba(0,0,0,.6); }
.td-photo img { border-radius: inherit; }
@media (max-width: 640px) { .td-photo, .td-photo--h, .td-photo--c { box-shadow: 10px 10px 0 0 var(--td-navy), var(--td-shadow-2); border-radius: var(--td-r-lg); } .td-photo--h { box-shadow: 10px 10px 0 0 var(--td-red), var(--td-shadow-2); } .td-photo--c { box-shadow: 10px 10px 0 0 var(--td-blue), var(--td-shadow-2); } .td-about .td-photo { box-shadow: 10px 10px 0 0 rgba(255,255,255,.9); } }

/* ---------- promises + licence badge ---------- */
.td-promises li { padding: 10px 14px; border-radius: 12px; background: rgba(27,47,107,.04); border: 1px solid rgba(27,47,107,.06); }
.td-about .td-promises li { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); }
.td-lic { border-radius: 12px; border-width: 1px !important; padding: 12px 16px; background: rgba(27,47,107,.03); }
.td-about .td-lic { background: rgba(255,255,255,.06); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }

/* ---------- reviews widget ---------- */
.td-reviews .ti-widget .ti-review-item > .ti-inner, .td-reviews-widget .ti-review-item > .ti-inner { border-radius: var(--td-r) !important; }

/* ---------- emergency band ---------- */
.td-emerg { background-image: radial-gradient(70% 140% at 100% 50%, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 60%), repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 14px, rgba(255,255,255,0) 14px 28px) !important; }
.td-emerg-num a { border-radius: var(--td-r) !important; box-shadow: 0 16px 36px -14px rgba(0,0,0,.45); }

/* ---------- towns ---------- */
.td-towns--simple { gap: 10px !important; }
.td-areas .td-towns--simple li, .td-towns--simple li { display: block !important; padding: 0 !important; border: 0 !important; }
.td-towns--simple li a { display: block; padding: 11px 14px !important; border-radius: 12px; background: var(--td-mist); border: 1px solid transparent; transition: background-color .25s, color .25s, border-color .25s, transform .3s, box-shadow .3s !important; }
.td-towns--simple li a:hover { background: #fff; border-color: var(--td-line); box-shadow: var(--td-shadow-2); color: var(--td-red); }
.td-towns--grid { gap: 10px 20px !important; }
.td-towns--grid li { border: 1px solid var(--td-line) !important; border-radius: 14px; padding: 12px 14px 12px 18px !important; background: #fff; box-shadow: var(--td-shadow-1); }
.td-towns--grid li:hover { background: #fff !important; box-shadow: var(--td-shadow-2); padding-left: 18px !important; padding-right: 14px !important; }

/* ---------- forms: fields rounded, the form sits on a panel ---------- */
.td-estimate .gform_wrapper { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: var(--td-r-xl); padding: clamp(20px, 3vw, 36px) !important; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 30px 60px -30px rgba(0,0,0,.5); }
.td-form-light .gform_wrapper { background: #fff; border: 1px solid var(--td-line); border-radius: var(--td-r-xl); padding: clamp(20px, 3vw, 34px) !important; box-shadow: var(--td-shadow-2); }
.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 { border-radius: 12px !important; }
.td-form-light .gform_wrapper .ginput_container input, .td-form-light .gform_wrapper .ginput_container textarea { border: 1px solid var(--td-line) !important; background: var(--td-mist) !important; }

/* ---------- landing pages: the estimate panel, related links, map ---------- */
.td-aside, .td-aside > .fusion-column-wrapper { border-radius: var(--td-r-xl) !important; }
.td-aside > .fusion-column-wrapper { overflow: hidden; box-shadow: var(--td-shadow-3); background-image: radial-gradient(80% 60% at 100% 0%, rgba(58,154,217,.22) 0%, rgba(58,154,217,0) 70%) !important; }
.td-related { border-top: 0 !important; gap: 20px; }
.td-related__col { background: var(--td-mist); border: 1px solid var(--td-line); border-radius: var(--td-r-lg); padding: 22px 22px 14px; }
.td-related li { border-bottom-color: rgba(27,47,107,.08) !important; }
.td-related li:last-child { border-bottom: 0 !important; }
.td-map iframe { border-radius: var(--td-r-lg) !important; box-shadow: var(--td-shadow-2); }

/* ---------- running text ---------- */
.td-article h2, .td-article h3 { letter-spacing: .005em; }
.td-article a { text-decoration-thickness: 1.5px; }

/* ---------- contact: call / text / email ---------- */
.td-way { border-radius: var(--td-r-lg); transition: background-color .3s, transform .35s !important; }
.td-way:hover { background-color: rgba(255,255,255,.07); }

/* ---------- services page: the town links as soft chips ---------- */
.td-svc .td-townlinks a { border-bottom-color: rgba(27,47,107,.18); }

/* ---------- footer ---------- */
.td-footer .fusion-title h4, .td-footer .fusion-title h5, .td-footer .fusion-title h3 { letter-spacing: .14em !important; }
.td-legal { border-top: 1px solid rgba(255,255,255,.08); }
