/*
Theme Name: HMT  Flatsome Child
Theme URI: http://flatsome.uxthemes.com
Template: flatsome
Author: UX-Themes
Author URI: https://uxthemes.com
Description: Multi-Purpose Responsive WooCommerce Theme
Version: 1.1.4
Updated: 2026-08-27 17:30:00

*/

/* HMT Core Property Services colours
 * Navy  #14225A
 * Green #6CAA2E
*/

:root {
	--hmt-navy: #14225A;
	--hmt-navy-deep: #0D1740;
	--hmt-green: #6CAA2E;
	--hmt-green-dark: #5A9126;
	--hmt-green-tint: #F1F7EA;
	--hmt-mist: #F4F6FA;
	--hmt-ink: #232B3D;
	--hmt-muted: #5C6780;
	--hmt-line: #DCE2EE;
	--hmt-head: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--hmt-body: "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
}

/* ==========================================================================
   General CSS
   ========================================================================== */
body { font-family: var(--hmt-body); font-size: 17px; line-height: 1.7; color: var(--hmt-ink); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--hmt-head); font-weight: 800; letter-spacing: -0.015em;
	line-height: 1.14; color: var(--hmt-navy); text-wrap: balance; margin-bottom: .4em;
}
h3, h4 { font-weight: 700; letter-spacing: -0.005em; line-height: 1.3; }
.dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark p, .dark li { color: #fff; }
.hmt-accent { color: var(--hmt-green); }

p { margin-bottom: 1.1em; }
p:last-child { margin-bottom: 0; }
.hmt-lead { line-height: 1.65; }

/* Flatsome adds a bottom gutter to every col; sections control their own rhythm */
.section .col { padding-bottom: 30px; }

/* eyebrow */
.hmt-eyebrow {
	font-family: var(--hmt-head); font-weight: 700; font-size: 13px;
	letter-spacing: .15em; text-transform: uppercase;
	display: flex; align-items: center; gap: 12px; margin-bottom: 12px;
}
.hmt-eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--hmt-green); flex: none; }
.hmt-eyebrow.center { justify-content: center; }

/* ---------- buttons ---------- */
.button, input[type="submit"], input[type="submit"].button, button[type="submit"] {
	font-family: var(--hmt-head); font-weight: 700; font-size: 14px; letter-spacing: .09em;
	text-transform: uppercase; border-radius: 0; padding: 0 30px;
	/* every button carries a 2px border, transparent when solid, so the outline
	   and solid variants share an identical box and sit on the same baseline */
	box-sizing: border-box; height: 56px; min-height: 0; line-height: 52px;
	border: 2px solid transparent; vertical-align: top;
	transition: background-color .2s, border-color .2s, color .2s;
}
.button i, .button .icon-inner { vertical-align: middle; }
/* is-outline vertical centring: Flatsome gives .button.is-outline its own
   line-height, which outranks the .button rule above and pushed the label to
   the top of the box. Match it back to the content height (56 - 2px borders). */
.button.is-outline, a.button.is-outline, .button.white.is-outline { line-height: 52px; }
.button.secondary:not(.is-outline):hover { background-color: var(--hmt-green-dark); border-color: var(--hmt-green-dark); }
.button.white.is-outline { color: #fff; border-color: rgba(255,255,255,.55); }
.button.white.is-outline:hover { background: #fff; color: var(--hmt-navy); border-color: #fff; }
.button + .button { margin-left: 12px; }

/* ==========================================================================
   Icons
   ========================================================================== */
.icon-wrap { display: block; width: 46px; max-width: 100%; line-height: 0; }
.icon-wrap svg { display: block; width: 100%; height: auto; overflow: visible; }
.icon-wrap--lg { width: 56px; margin-bottom: 4px; }
.icon-wrap--why { width: 38px; }
.icon-wrap--band { width: 58px; }

.draw-me path, .draw-me rect, .draw-me circle, .draw-me line,
.draw-me polyline, .draw-me ellipse {
	fill: none; stroke: var(--hmt-green); stroke-width: 1.7;
	stroke-linecap: round; stroke-linejoin: round;
}
.dark .icon-wrap--band .draw-me path { stroke: #fff; }
.draw-me.hmt-ready path, .draw-me.hmt-ready rect, .draw-me.hmt-ready circle,
.draw-me.hmt-ready line, .draw-me.hmt-ready polyline, .draw-me.hmt-ready ellipse {
	stroke-dasharray: var(--len, 300); stroke-dashoffset: var(--len, 300);
}
.draw-me.is-drawn path, .draw-me.is-drawn rect, .draw-me.is-drawn circle,
.draw-me.is-drawn line, .draw-me.is-drawn polyline, .draw-me.is-drawn ellipse {
	stroke-dashoffset: 0;
	transition: stroke-dashoffset 1.1s cubic-bezier(.6,.05,.3,1) var(--delay, 0s);
}
@media (prefers-reduced-motion: reduce) {
	.draw-me path, .draw-me rect, .draw-me circle, .draw-me line,
	.draw-me polyline, .draw-me ellipse { stroke-dashoffset: 0 !important; transition: none !important; }
}

/* ==========================================================================
   Header
   ========================================================================== */
.header-top { background-color: var(--hmt-navy); }
.header-top .nav > li > a {
	font-family: var(--hmt-body); font-weight: 400; font-size: 14px;
	text-transform: none; color: #D6DDF0; letter-spacing: 0;
}
.header-top .nav > li > a:hover { color: var(--hmt-green); }
.header-top .nav-divided > li + li > a::before { display: none; }
.hmt-tb-phone > a, .hmt-tb-mail > a { padding-left: 24px !important; position: relative; }
.hmt-tb-phone > a::before, .hmt-tb-mail > a::before {
	content: ""; position: absolute; left: 0; top: 50%; margin-top: -8px;
	width: 16px; height: 16px; background: var(--hmt-green);
	-webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain;
	mask-repeat: no-repeat; mask-position: center; mask-size: contain;
}
.hmt-tb-phone > a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.9' d='M6.5 3h3l1.5 4-2 1.5a12 12 0 0 0 6.5 6.5L17 13l4 1.5v3a2.5 2.5 0 0 1-2.7 2.5C10.6 19.5 4.5 13.4 4 5.7A2.5 2.5 0 0 1 6.5 3Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.9' d='M6.5 3h3l1.5 4-2 1.5a12 12 0 0 0 6.5 6.5L17 13l4 1.5v3a2.5 2.5 0 0 1-2.7 2.5C10.6 19.5 4.5 13.4 4 5.7A2.5 2.5 0 0 1 6.5 3Z'/%3E%3C/svg%3E");
}
.hmt-tb-mail > a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.9'%3E%3Crect x='2.5' y='5' width='19' height='14'/%3E%3Cpath d='m3 6.5 9 6.5 9-6.5'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.9'%3E%3Crect x='2.5' y='5' width='19' height='14'/%3E%3Cpath d='m3 6.5 9 6.5 9-6.5'/%3E%3C/g%3E%3C/svg%3E");
}
.hmt-tb-badge > a {
	pointer-events: none; font-family: var(--hmt-head) !important; font-weight: 600 !important;
	font-size: 12.5px !important; letter-spacing: .06em; text-transform: uppercase; color: #fff !important;
}
.header-nav .nav > li > a { font-family: var(--hmt-head); font-weight: 600; font-size: 15px; }
.header-nav .nav > li.active > a, .header-nav .nav > li > a:hover { color: var(--hmt-green); }

.header-nav .hmt-nav-cta > a {
	background: var(--hmt-green); color: #fff !important;
	font-family: var(--hmt-head); font-weight: 700; font-size: 13.5px;
	letter-spacing: .08em; text-transform: uppercase;
	padding: 0 24px !important; margin-left: 18px; line-height: 46px; height: 46px;
	transition: background-color .2s;
}
.header-nav .hmt-nav-cta > a:hover { background: var(--hmt-green-dark); color: #fff !important; }

/* Header is dark on every page, transparent only over the home hero.
   The white logo is used throughout, so there is no logo swap to go wrong. */
#header .header-main { background-color: var(--hmt-navy); }
#header #logo img.header_logo { display: none !important; }
#header #logo img.header-logo-dark { display: block !important; }
/* Flatsome generates its own nav colour rule, so this needs to outrank it */
#masthead .nav > li > a,
#masthead .header-nav .nav > li > a,
#header .header-nav .nav > li > a { color: #fff !important; }
#masthead .nav > li > a:hover,
#masthead .nav > li.active > a,
#masthead .nav > li.current-menu-item > a { color: var(--hmt-green) !important; }
#masthead .hmt-nav-cta > a,
#masthead .hmt-nav-cta > a:hover { color: #fff !important; }

.home #header { position: absolute; top: 0; left: 0; right: 0; width: 100%; z-index: 30; }
.home #header .header-wrapper:not(.stuck) .header-main { background-color: transparent; box-shadow: none; }
.home #header .header-wrapper:not(.stuck) .header-top {
	background-color: rgba(255,255,255,.07); border-bottom: 1px solid rgba(255,255,255,.16);
}

/* sticky state: navy, never Flatsome's light default */
#header .header-wrapper.stuck,
#header .header-wrapper.stuck .header-main,
.header.show-on-scroll .header-main { background-color: var(--hmt-navy) !important; }
#header .header-wrapper.stuck .header-nav .nav > li > a { color: #fff; }

.hmt-anchor { display: block; position: relative; top: -90px; visibility: hidden; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ==========================================================================
   Trust strip
   ========================================================================== */
.hmt-trust .col, .hmt-trust .col-inner { padding-bottom: 0; }
.hmt-trust-col > .col-inner { border-right: 1px solid rgba(255,255,255,.14); padding: 6px 20px 6px 0; }
.hmt-trust .col:last-child > .col-inner { border-right: 0; }
.hmt-trust h4 {
	font-family: var(--hmt-head); font-weight: 700; font-size: 15.5px;
	line-height: 1.3; color: #fff; margin: 0;
}
.hmt-trust .icon-wrap { width: 30px; margin: 0 auto; }
.hmt-trust .col_inner, .hmt-trust .col-inner .col { padding-bottom: 0; }

/* ==========================================================================
   Service tile grid
   ========================================================================== */
.hmt-tiles { border-top: 1px solid var(--hmt-line); border-left: 1px solid var(--hmt-line); }
.hmt-tile { padding-bottom: 0 !important; }
.hmt-tile > .col-inner {
	border-right: 1px solid var(--hmt-line); border-bottom: 1px solid var(--hmt-line);
	height: 100%; position: relative;
	transition: background-color .22s; display: flex; flex-direction: column; gap: 14px;
}
.hmt-tile > .col-inner::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px;
	background: var(--hmt-green); transform: scaleX(0); transform-origin: left; transition: transform .25s;
}
.hmt-tile:hover > .col-inner { background: var(--hmt-navy); z-index: 2; }
.hmt-tile:hover > .col-inner::after { transform: scaleX(1); }
.hmt-tile .ux-text, .hmt-tile .ux_html { margin: 0; }
.hmt-tile h4 { font-size: 17px; line-height: 1.3; color: var(--hmt-navy); margin: 0; transition: color .22s; }
.hmt-tile h4 a { color: inherit; }
/* the heading link covers the whole tile so the card is clickable */
.hmt-tile h4 a::after { content: ""; position: absolute; inset: 0; }
.hmt-tile:hover h4, .hmt-tile:hover h4 a { color: #fff; }

/* ==========================================================================
   Stats
   ========================================================================== */
.hmt-stat h3 {
	font-family: var(--hmt-head); font-weight: 800;
	letter-spacing: -.03em; line-height: 1; margin: 0 0 8px;
	font-variant-numeric: tabular-nums;
}
.hmt-stat p {
	font-family: var(--hmt-head); font-weight: 600; letter-spacing: .07em;
	text-transform: uppercase; color: #fff; line-height: 1.4; margin: 0;
}
.hmt-stat-divider > .col-inner { border-right: 1px solid rgba(255,255,255,.18); padding-right: 20px; }

/* ==========================================================================
   Process steps
   ========================================================================== */
.hmt-step > .col-inner { border: 1px solid var(--hmt-line); height: 100%; }
.hmt-step-n { font-family: var(--hmt-head); font-weight: 800; letter-spacing: .12em; margin: 0 0 8px; }
.hmt-step h3 { margin-bottom: .5em; }
.hmt-step p { color: var(--hmt-muted); margin: 0; }

/* ==========================================================================
   Recent work
   ========================================================================== */
.hmt-work-tile .col-inner, .hmt-work-tile img { height: 100%; }
.hmt-work-tile .img, .hmt-work-tile .img-inner { height: 100%; }

/* ==========================================================================
   Reviews
   ========================================================================== */
.hmt-review > .col-inner {
	border: 1px solid var(--hmt-line); border-top: 3px solid var(--hmt-green);
	height: 100%; display: flex; flex-direction: column;
}
.hmt-stars { display: flex; gap: 3px; margin-bottom: 12px; }
.hmt-stars svg { width: 17px; height: 17px; fill: var(--hmt-green); }
.hmt-review p { color: var(--hmt-ink); }
.hmt-cite {
	margin: auto 0 0; padding-top: 14px; border-top: 1px solid var(--hmt-line);
}
.hmt-cite b { display: block; font-family: var(--hmt-head); font-weight: 700; color: var(--hmt-navy); }
.hmt-cite span { color: var(--hmt-muted); }

/* ==========================================================================
   Emergency band
   ========================================================================== */
.hmt-band h2, .hmt-band p { color: #fff; }
.hmt-band .col { padding-bottom: 0; }

/* ==========================================================================
   Lists: ticks, chips, areas, contact, hours, footer
   ========================================================================== */
.hmt-ticks { list-style: none; margin: 18px 0 0; padding: 0;
	display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; }
.hmt-ticks li {
	display: flex; gap: 11px; align-items: flex-start; margin: 0;
	font-size: 16px; font-weight: 600; color: var(--hmt-ink); line-height: 1.45;
}
.hmt-ticks li::before {
	content: ""; flex: none; width: 20px; height: 20px; margin-top: 3px; background: var(--hmt-green);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E") no-repeat center / contain;
}

.hmt-chips { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.hmt-chips li {
	display: inline-flex; align-items: center; gap: 9px;
	background: #fff; border: 1px solid var(--hmt-line);
	color: var(--hmt-navy); font-size: 14px; font-weight: 600; letter-spacing: .005em;
	height: 38px; padding: 0 14px 0 12px; margin: 0; line-height: 1; white-space: nowrap;
	transition: border-color .18s, background-color .18s;
}
.hmt-chips li::before {
	content: ""; flex: none; width: 13px; height: 13px; background: var(--hmt-green);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E") no-repeat center / contain;
}
.hmt-chips li:hover { border-color: var(--hmt-green); background: var(--hmt-green-tint); }

.hmt-areas { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.hmt-areas li {
	border: 1px solid var(--hmt-line); background: #fff; color: var(--hmt-ink);
	padding: 9px 16px; margin: 0; font-size: 15px; line-height: 1.4;
}
.hmt-areas.on-dark li { border-color: rgba(255,255,255,.22); background: transparent; color: #D3DAEC; }

.hmt-contact-list { list-style: none; margin: 20px 0 0; padding: 0;
	display: flex; flex-direction: column; gap: 18px; }
.hmt-contact-list li { margin: 0; padding-left: 36px; position: relative; line-height: 1.4; }
.hmt-contact-list li::before {
	content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px;
	background: var(--hmt-green);
	-webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain;
	mask-repeat: no-repeat; mask-position: center; mask-size: contain;
}
.hmt-contact-list b { display: block; font-family: var(--hmt-head); font-weight: 700; font-size: 17px; }
.hmt-contact-list span { font-size: 15.5px; color: var(--hmt-muted); }
.dark .hmt-contact-list b, .dark .hmt-contact-list b a { color: #fff; }
.dark .hmt-contact-list span { color: #A9B4D2; }
.ci-phone::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' d='M6.5 3h3l1.5 4-2 1.5a12 12 0 0 0 6.5 6.5L17 13l4 1.5v3a2.5 2.5 0 0 1-2.7 2.5C10.6 19.5 4.5 13.4 4 5.7A2.5 2.5 0 0 1 6.5 3Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' d='M6.5 3h3l1.5 4-2 1.5a12 12 0 0 0 6.5 6.5L17 13l4 1.5v3a2.5 2.5 0 0 1-2.7 2.5C10.6 19.5 4.5 13.4 4 5.7A2.5 2.5 0 0 1 6.5 3Z'/%3E%3C/svg%3E");
}
.ci-mail::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8'%3E%3Crect x='2.5' y='5' width='19' height='14'/%3E%3Cpath d='m3 6.5 9 6.5 9-6.5'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8'%3E%3Crect x='2.5' y='5' width='19' height='14'/%3E%3Cpath d='m3 6.5 9 6.5 9-6.5'/%3E%3C/g%3E%3C/svg%3E");
}
.ci-pin::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M12 21s7-6.2 7-11a7 7 0 1 0-14 0c0 4.8 7 11 7 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M12 21s7-6.2 7-11a7 7 0 1 0-14 0c0 4.8 7 11 7 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/g%3E%3C/svg%3E");
}
.ci-clock::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5.5l3.5 2'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5.5l3.5 2'/%3E%3C/g%3E%3C/svg%3E");
}

.hmt-hours { list-style: none; margin: 0; padding: 0; }
.hmt-hours li {
	display: flex; justify-content: space-between; gap: 16px; padding: 11px 0;
	border-bottom: 1px solid var(--hmt-line); margin: 0;
}
.hmt-hours li:last-child { border-bottom: 0; }
.hmt-hours span { color: var(--hmt-muted); }
.hmt-hours b { font-family: var(--hmt-head); font-weight: 700; color: var(--hmt-navy); }

.hmt-crumbs { color: #94A2CB !important; margin-bottom: 8px; }
.hmt-crumbs a { color: #94A2CB; }
.hmt-crumbs a:hover { color: var(--hmt-green); }

/* ==========================================================================
   Why us
   ========================================================================== */
.hmt-why > .col-inner { border: 1px solid rgba(255,255,255,.16); height: 100%; }
.hmt-why h3 { color: #fff; margin: 14px 0 8px; }
.hmt-why p { color: #B7C1DC; margin: 0; }

/* ==========================================================================
   Split content section (house pattern)
   ========================================================================== */
.split-content-section .responsive-image-full-height .col-inner,
.split-content-section .responsive-image-full-height .img,
.split-content-section .responsive-image-full-height .img-inner { height: 100%; }
.split-content-section .responsive-image-full-height img {
	width: 100%; height: 100%; object-fit: cover;
}
.hmt-service-img .img-inner { overflow: hidden; }

/* ==========================================================================
   Contact Form 7
   ========================================================================== */

.hmt-form label {
	display: block; font-family: var(--hmt-head); font-weight: 600; font-size: 13px;
	letter-spacing: .05em; text-transform: uppercase; color: var(--hmt-navy); margin-bottom: 6px;
}
.hmt-form h3 { color: var(--hmt-navy); }
.hmt-form .hmt-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.hmt-form input[type="text"], .hmt-form input[type="email"], .hmt-form input[type="tel"],
.hmt-form select, .hmt-form textarea {
	font-family: var(--hmt-body); font-size: 16px; line-height: 1.5; color: var(--hmt-ink);
	border: 1px solid var(--hmt-line); background: var(--hmt-mist); padding: 13px 15px;
	width: 100%; border-radius: 0; box-shadow: none; height: auto; margin-bottom: 15px;
}
.hmt-form textarea { min-height: 92px; height: 92px; resize: vertical; }
.hmt-form input:focus, .hmt-form select:focus, .hmt-form textarea:focus {
	border-color: var(--hmt-green); background: #fff; box-shadow: none; outline: none;
}
.hmt-form input[type="file"] {
	width: 100%; border: 1.5px dashed var(--hmt-line); background: var(--hmt-mist);
	padding: 15px; margin-bottom: 15px; font-size: 15px; color: var(--hmt-muted);
}
.hmt-form input[type="submit"] {
	background: var(--hmt-green); color: #fff; border: 2px solid var(--hmt-green); width: 100%;
}
.hmt-form input[type="submit"]:hover { background: var(--hmt-green-dark); border-color: var(--hmt-green-dark); }
.hmt-form-note { font-size: 13.5px; color: var(--hmt-muted); line-height: 1.55; margin: 14px 0 0; }
.hmt-form .wpcf7-not-valid-tip { color: #C0392B; font-size: 13.5px; margin: -11px 0 13px; }
.hmt-form .wpcf7-response-output { margin: 18px 0 0; padding: 13px 16px; border-width: 1px; font-size: 15px; }

/* ==========================================================================
   Footer CSS
   ========================================================================== */
.hmt-footer { background-color: #0A1230; }
.hmt-footer h4 {
	font-family: var(--hmt-head); font-weight: 700; font-size: 15px; letter-spacing: .1em;
	text-transform: uppercase; color: #fff; margin-bottom: 16px;
}
.hmt-footer p, .hmt-footer li, .hmt-footer a { color: #98A4C6; }
.hmt-foot-list { list-style: none; margin: 0; padding: 0; }
.hmt-foot-list li { margin-bottom: 9px; }
.hmt-footer a:hover { color: var(--hmt-green); }
.hmt-footer-bar {
	border-top: 1px solid rgba(255,255,255,.11); padding-top: 22px; margin: 0; color: #7C89AE;
}
.absolute-footer { display: none; }

/* ==========================================================================
   Mobile CSS
   ========================================================================== */
@media screen and (max-width: 849px) {
	.hmt-trust-col > .col-inner { border-right: 0; padding: 4px 12px 4px 0; }
	.hmt-stat-divider > .col-inner { border-right: 0; padding-right: 0; }
	.home #header { position: relative; }
	.home #header .header-wrapper:not(.stuck),
	.home #header .header-wrapper:not(.stuck) .header-main { background-color: var(--hmt-navy); }
	.hmt-why > .col-inner { padding: 26px 22px; }
	.hmt-form > .col-inner { padding: 30px 24px; }
}

@media screen and (max-width: 550px) {
	body { font-size: 16.5px; }
	.button, input[type="submit"] { font-size: 13px; padding: 0 22px; min-height: 52px; line-height: 52px; width: 100%; }
	.button + .button { margin-left: 0; margin-top: 10px; }
	.header-nav .hmt-nav-cta > a { width: auto; padding: 0 15px !important; margin-left: 8px; font-size: 12px; }
	.hmt-tile > .col-inner { padding: 20px 15px 18px; gap: 11px; }
	.hmt-tile .icon-wrap { width: 34px; }
	.hmt-trust .icon-wrap { width: 24px; }
	.hmt-stat { text-align: center; }
	.hmt-ticks { grid-template-columns: 1fr; }
	.hmt-form .hmt-form-row { grid-template-columns: 1fr; }
	.hmt-form > .col-inner { padding: 24px 20px; }
	.hmt-step > .col-inner { padding: 26px 22px; }
	.icon-wrap--lg { width: 44px; }
	.icon-wrap--band { width: 44px; margin: 0 auto; }
	.hmt-areas li { font-size: 14px; padding: 7px 12px; }
	.hmt-chips li { font-size: 13px; height: 34px; padding: 0 11px 0 9px; gap: 7px; white-space: normal; }
	.hmt-contact-list b { font-size: 16px; }
	.hmt-anchor { top: -70px; }
}

/* ==========================================================================
   Mobile call bar. The desktop nav CTA lives in the main nav, which Flatsome
   hides below 850px, so the top bar becomes a green tap-to-call strip.
   ========================================================================== */
@media screen and (max-width: 849px) {
	#top-bar .flex-col.hide-for-medium { display: flex !important; width: 100%; }
	#top-bar .flex-col.flex-center, #top-bar .flex-col.flex-right { display: none !important; }
	#top-bar .hmt-tb-mail, #top-bar .hmt-tb-badge { display: none !important; }
	#top-bar .flex-row { min-height: 46px; }
	#top-bar .nav { justify-content: center; width: 100%; }
	#top-bar .hmt-tb-phone > a {
		color: #fff !important; font-family: var(--hmt-head); font-weight: 700;
		font-size: 15px; letter-spacing: .05em;
	}
	#top-bar .hmt-tb-phone > a::before { background: #fff; }
	.home #header .header-wrapper:not(.stuck) .header-top {
		background-color: var(--hmt-green) !important; border-bottom: 0;
	}
}

/* SEO paragraph above the areas chips, generated from areas.py */
.hmt-areas-intro { margin-bottom: 26px; }
.dark .hmt-areas-intro { color: #C3CCE4; }
@media screen and (max-width: 550px) { .hmt-areas-intro { margin-bottom: 18px; } }
