/* ===== Thermguard National Installers ===== */
.tg-inst{
  --tg-blue:#006ab2;
  --tg-blue-dark:#00558f;
  --tg-blue-soft:#e8f2fa;
  --tg-text:#2b2f33;
  --tg-muted:#6b7580;
  --tg-line:#e4e8ec;
  --tg-bg:#f5f7f9;
  --tg-radius:14px;
  font-family:inherit;
  color:var(--tg-text);
  max-width:1200px;
  margin:0 auto;
}
.tg-inst *,.tg-inst *::before,.tg-inst *::after{box-sizing:border-box}
.tg-inst svg{width:16px;height:16px;fill:currentColor;flex:none}
.tg-radio{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}

/* Toolbar */
.tg-toolbar{display:flex;flex-direction:column;gap:14px;margin:0 0 32px}
.tg-search{position:relative;display:block;max-width:460px}
.tg-search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:var(--tg-muted)}
.tg-search input{width:100%;height:48px;margin:0;padding:0 16px 0 46px;border:1px solid var(--tg-line);border-radius:999px;background:#fff;font:inherit;font-size:15px;color:var(--tg-text);outline:none;box-shadow:none;transition:border-color .2s,box-shadow .2s}
.tg-search input:focus{border-color:var(--tg-blue);box-shadow:0 0 0 4px rgba(0,106,178,.12)}
.tg-chips{display:flex;flex-wrap:wrap;gap:8px}
.tg-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--tg-line);border-radius:999px;background:#fff;font-size:14px;font-weight:600;line-height:1.2;color:var(--tg-text);cursor:pointer;user-select:none;transition:background .2s,border-color .2s,color .2s}
.tg-chip span{display:inline-block;min-width:22px;padding:2px 6px;border-radius:999px;background:var(--tg-bg);font-size:12px;text-align:center;color:var(--tg-muted)}
.tg-chip:hover{border-color:var(--tg-blue);color:var(--tg-blue)}
.tg-inst:has(#tg-f-all:checked) .tg-chip[for="tg-f-all"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}

/* Groups */
.tg-group{margin:0 0 40px}
.tg-group[hidden],.tg-card[hidden]{display:none!important}
.tg-group__title{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:0;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tg-blue)}
.tg-group__title::after{content:"";flex:1;height:1px;background:var(--tg-line)}
.tg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}

/* Card */
.tg-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--tg-line);border-radius:var(--tg-radius);overflow:hidden;transition:box-shadow .25s,transform .25s,border-color .25s}
.tg-card:hover{border-color:transparent;box-shadow:0 12px 30px rgba(16,40,70,.1);transform:translateY(-2px)}
.tg-card__head{display:flex;align-items:center;gap:12px;padding:18px 20px 14px}
.tg-card__pin{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--tg-blue-soft);color:var(--tg-blue);flex:none}
.tg-card__pin svg{width:20px;height:20px}
.tg-card__area{margin:0;padding:0;font-size:18px;font-weight:700;line-height:1.25;color:var(--tg-text)}
.tg-card__prov{display:block;margin-top:2px;font-size:13px;color:var(--tg-muted)}

.tg-card__contacts{list-style:none;margin:0;padding:0 20px}
.tg-contact{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:12px 0;border-top:1px solid var(--tg-line)}
.tg-contact::before{display:none}
.tg-contact__name{font-size:15px;font-weight:600;line-height:1.3}
.tg-contact__tels{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.tg-contact__tel{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;background:var(--tg-blue-soft);color:var(--tg-blue)!important;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none!important;white-space:nowrap;transition:background .2s,color .2s}
.tg-contact__tel svg{width:14px;height:14px}
.tg-contact__tel:hover{background:var(--tg-blue);color:#fff!important}

.tg-card__links{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding:12px 20px 16px;background:var(--tg-bg);border-top:1px solid var(--tg-line)}
.tg-link{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:14px;line-height:1.35;color:var(--tg-text)!important;text-decoration:none!important;word-break:break-word}
.tg-link svg{fill:var(--tg-muted)}
.tg-link:hover{color:var(--tg-blue)!important}
.tg-link:hover svg{fill:var(--tg-blue)}
.tg-link--web{color:var(--tg-blue)!important}
.tg-link--web svg{fill:var(--tg-blue)}

.tg-contact__tel:focus-visible,.tg-link:focus-visible,.tg-chip:focus-visible{outline:2px solid var(--tg-blue);outline-offset:2px}
.tg-inst:has(.tg-radio:focus-visible) .tg-chips{outline:2px dashed rgba(0,106,178,.35);outline-offset:6px;border-radius:12px}

.tg-empty{padding:32px;border:1px dashed var(--tg-line);border-radius:var(--tg-radius);text-align:center;color:var(--tg-muted)}
.tg-empty a{color:var(--tg-blue);font-weight:600}

/* Mobile */
@media (max-width:767px){
  .tg-toolbar{margin-bottom:24px}
  .tg-search{max-width:none}
  .tg-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .tg-chips::-webkit-scrollbar{display:none}
  .tg-chip{flex:none}
  .tg-grid{grid-template-columns:1fr;gap:14px}
  .tg-card:hover{transform:none}
  .tg-card__head{padding:16px 16px 12px}
  .tg-card__contacts{padding:0 16px}
  .tg-card__links{padding:12px 16px 14px}
  .tg-contact__tel{padding:9px 13px}
}
@media (max-width:360px){
  .tg-contact{flex-direction:column;align-items:flex-start;gap:8px}
  .tg-contact__tels{align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){.tg-card,.tg-card:hover{transition:none;transform:none}}

/* Province filter (CSS-only) */
.tg-inst:has(#tg-f-eastern-cape:checked) .tg-group:not([data-prov="eastern-cape"]){display:none}
.tg-inst:has(#tg-f-eastern-cape:checked) .tg-chip[for="tg-f-eastern-cape"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}
.tg-inst:has(#tg-f-free-state:checked) .tg-group:not([data-prov="free-state"]){display:none}
.tg-inst:has(#tg-f-free-state:checked) .tg-chip[for="tg-f-free-state"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}
.tg-inst:has(#tg-f-gauteng:checked) .tg-group:not([data-prov="gauteng"]){display:none}
.tg-inst:has(#tg-f-gauteng:checked) .tg-chip[for="tg-f-gauteng"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}
.tg-inst:has(#tg-f-kwazulu-natal:checked) .tg-group:not([data-prov="kwazulu-natal"]){display:none}
.tg-inst:has(#tg-f-kwazulu-natal:checked) .tg-chip[for="tg-f-kwazulu-natal"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}
.tg-inst:has(#tg-f-limpopo:checked) .tg-group:not([data-prov="limpopo"]){display:none}
.tg-inst:has(#tg-f-limpopo:checked) .tg-chip[for="tg-f-limpopo"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}
.tg-inst:has(#tg-f-mpumalanga:checked) .tg-group:not([data-prov="mpumalanga"]){display:none}
.tg-inst:has(#tg-f-mpumalanga:checked) .tg-chip[for="tg-f-mpumalanga"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}
.tg-inst:has(#tg-f-north-west:checked) .tg-group:not([data-prov="north-west"]){display:none}
.tg-inst:has(#tg-f-north-west:checked) .tg-chip[for="tg-f-north-west"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}
.tg-inst:has(#tg-f-western-cape:checked) .tg-group:not([data-prov="western-cape"]){display:none}
.tg-inst:has(#tg-f-western-cape:checked) .tg-chip[for="tg-f-western-cape"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}
.tg-inst:has(#tg-f-international:checked) .tg-group:not([data-prov="international"]){display:none}
.tg-inst:has(#tg-f-international:checked) .tg-chip[for="tg-f-international"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}

.tg-inst:has(#tg-f-all:checked) .tg-chip[for="tg-f-all"] span,
.tg-inst:has(#tg-f-eastern-cape:checked) .tg-chip[for="tg-f-eastern-cape"] span,
.tg-inst:has(#tg-f-free-state:checked) .tg-chip[for="tg-f-free-state"] span,
.tg-inst:has(#tg-f-gauteng:checked) .tg-chip[for="tg-f-gauteng"] span,
.tg-inst:has(#tg-f-international:checked) .tg-chip[for="tg-f-international"] span,
.tg-inst:has(#tg-f-kwazulu-natal:checked) .tg-chip[for="tg-f-kwazulu-natal"] span,
.tg-inst:has(#tg-f-limpopo:checked) .tg-chip[for="tg-f-limpopo"] span,
.tg-inst:has(#tg-f-mpumalanga:checked) .tg-chip[for="tg-f-mpumalanga"] span,
.tg-inst:has(#tg-f-north-west:checked) .tg-chip[for="tg-f-north-west"] span,
.tg-inst:has(#tg-f-western-cape:checked) .tg-chip[for="tg-f-western-cape"] span{background:rgba(255,255,255,.22);color:#fff}


/* ===== Table ===== */
/* ===== Numbered steps (ol) ===== */
.heading-section-description ol {
  list-style: none;
  counter-reset: step;
  margin: 28px 0;
  padding: 0;
}
#scroller a.soh-active{color:#fff !important;}
.heading-section-description ol li {
  position: relative;
  counter-increment: step;
  padding: 0 0 26px 58px;
  line-height: 1.65;
  color: #333;
}
/* Number circle */
.heading-section-description ol li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #183D5C;
  color: #fff;
  font-weight: 600;
  font-size: 15px;
  line-height: 38px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(24, 61, 92, .2);
  z-index: 1;
}
/* Dotted connecting line */
.heading-section-description ol li::after {
  content: "";
  position: absolute;
  left: 18px;
  top: 38px;
  bottom: 0;
  width: 2px;
  background: repeating-linear-gradient(#CBD5E1 0 5px, transparent 5px 10px);
}
.heading-section-description ol li:last-child {
  padding-bottom: 0;
}
.heading-section-description ol li:last-child::after {
  display: none;
}
.heading-section-description ol li:last-child::before {
  background: #FE2529;
}
/* Step title */
.heading-section-description ol li strong,
.heading-section-description ol li b {
  display: block;
  margin: 6px 0 4px;
  font-size: 17px;
  font-weight: 600;
  color: #183D5C;
}

/* ===== Note paragraph straight after the steps ===== */
.heading-section-description ol + p {
  position: relative;
  margin-top: 28px;
  padding: 16px 20px 16px 52px;
  background: #FFF4F4;
  border: 1px solid #FFD6D7;
  border-radius: 10px;
  font-size: 15px;
}
.heading-section-description ol + p::before {
  content: "!";
  position: absolute;
  left: 18px;
  top: 16px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #FE2529;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  line-height: 22px;
  text-align: center;
}

/* ===== Mobile ===== */
@media (max-width: 767px) {
  .heading-section-description ol li {
    padding-left: 50px;
    padding-bottom: 22px;
  }
  .heading-section-description ol li::before {
    width: 34px;
    height: 34px;
    line-height: 34px;
    font-size: 14px;
  }
  .heading-section-description ol li::after {
    left: 16px;
    top: 34px;
  }
  .heading-section-description ol li strong,
  .heading-section-description ol li b {
    font-size: 16px;
    margin-top: 4px;
  }
}


.heading-section-description table {
  width: 100%;
  margin: 28px 0;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid #E3E8EE;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(24, 61, 92, .08);
  font-size: 15px;
  line-height: 1.5;
}
.heading-section-description table th,
.heading-section-description table td {
  padding: 14px 18px;
  text-align: left;
  vertical-align: top;
  border: 0;
  border-bottom: 1px solid #E3E8EE;
  color: #333;
}
/* Header row (works with or without ) */
.heading-section-description table thead th,
.heading-section-description table tr:first-child th {
  background: #183D5C;
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .03em;
  border-bottom: 3px solid #FE2529;
}
.heading-section-description table tbody tr:nth-child(even) td {
  background: #F7F9FB;
}
.heading-section-description table tbody tr:hover td {
  background: #EFF7FC;
}
.heading-section-description table tr:last-child td {
  border-bottom: 0;
}
/* First column emphasised */
.heading-section-description table td:first-child {
  font-weight: 600;
  color: #183D5C;
}

/* ===== Table – mobile: swipe sideways instead of squashing ===== */
@media (max-width: 767px) {
  .heading-section-description table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    font-size: 14px;
    margin: 22px 0;
  }
  .heading-section-description table th,
  .heading-section-description table td {
    padding: 12px 14px;
  }
}



/* ===== Quote (blockquote) ===== */
.heading-section-description blockquote {
  position: relative;
  margin: 28px 0;
  padding: 22px 26px 22px 30px;
  background: #fff;
  border-left: 4px solid #FE2529;
  border-radius: 0 10px 10px 0;
  box-shadow: 0 6px 20px rgba(24, 61, 92, .08);
}
.heading-section-description blockquote p {
  margin: 0;
  color: #333;
}
.heading-section-description blockquote p + p {
  margin-top: 8px;
}
/* "QUICK DEFINITION" label */
.heading-section-description blockquote b,
.heading-section-description blockquote strong {
  display: inline-block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #FE2529;
}
/* Definition text */
.heading-section-description blockquote i,
.heading-section-description blockquote em {
  font-style: normal;
  font-size: 17px;
  line-height: 1.65;
  color: #183D5C;
}

/* ===== UL list ===== */
.heading-section-description ul {
  list-style: none;
  margin: 20px 0 24px;
  padding: 0;
}
.heading-section-description ul li {
  position: relative;
  padding-left: 32px;
  margin-bottom: 12px;
  line-height: 1.6;
}
.heading-section-description ul li:last-child {
  margin-bottom: 0;
}
.heading-section-description ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #183D5C url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 11px no-repeat;
}

/* ===== Mobile ===== */
@media (max-width: 767px) {
  .heading-section-description blockquote {
    padding: 18px 18px 18px 22px;
    margin: 22px 0;
  }
  .heading-section-description blockquote i,
  .heading-section-description blockquote em {
    font-size: 16px;
  }
}


.contact > a {
    background-color: #0066B0;
    color: #fff !important;
    border-radius: 50px;
    padding:12px 15px 12px 15px !important;
}
body {

    overflow-x: hidden;
}
.heading-section-description ul{margin-bottom:20px;}
.heading-title .style-color{border-radius:50px;}
.elementskit-card-body ul {
    margin-left: 20px;
    margin-bottom: 20px;
}
.home #nothome{display:none;}
#homemenu{display:none;}
.home #homemenu {
    display: block !important;
    margin: 0;
}
.contact > a:hover {
    background-color: #0066B0 !important;
    color: #fff !important;
    border-radius: 50px;
}
.contact a svg{
color: #ffffff !important;
    fill: #ffffff !important;}
    
    /* ---------- container ---------- */
.tgq {
  max-width: 560px;
  margin: 0 auto;
  padding: 28px 24px 24px;
  background: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  box-sizing: border-box;
}
.tgq *, .tgq *::before, .tgq *::after { box-sizing: border-box; }

.tgq-title {
  margin: 0 0 14px;
  font-size: 27px;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: -0.2px;
  color: #14161a;
}
.tgq-intro {
  margin: 0 0 26px;
  font-size: 15px;
  line-height: 1.5;
  color: #3a4048;
}

/* ---------- checkboxes ---------- */
.tgq-services { margin-bottom: 30px; }

.tgq-services .wpcf7-checkbox {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 20px;
}
.tgq-services .wpcf7-list-item { margin: 0; display: block; }

.tgq-services .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  margin: 0;
}
.tgq-services input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
  margin: 0;
  border: 1px solid #d3dae3;
  border-radius: 3px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s, background-color .15s;
}
.tgq-services input[type="checkbox"]:hover { border-color: #9db4cc; }
.tgq-services input[type="checkbox"]:checked {
  background: #1a73c9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/13px no-repeat;
  border-color: #1a73c9;
}
.tgq-services input[type="checkbox"]:focus-visible {
  outline: 2px solid #1a73c9;
  outline-offset: 2px;
}
.tgq-services .wpcf7-list-item-label {
  font-size: 15px;
  font-weight: 700;
  color: #1560bd;
  line-height: 1.2;
}

/* ---------- field grid ---------- */
.tgq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 20px;
  margin-bottom: 26px;
}

.tgq-field { position: relative; min-width: 0; }

.tgq-label {
  display: block;
  margin-bottom: 8px;
  padding-right: 16px;
  font-size: 14px;
  font-weight: 600;
  color: #14161a;
  line-height: 1.3;
}

/* red asterisk, top-right of the field */
.tgq-req::after {
  content: "*";
  position: absolute;
  top: 0;
  right: 0;
  font-size: 15px;
  line-height: 1.3;
  color: #e53935;
  pointer-events: none;
}

/* ---------- inputs ---------- */
.tgq-input { position: relative; }

.tgq .tgq-input input {
  width: 100%;
  height: 46px;
  padding: 0 42px 0 14px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: #eef2f7;
  font-size: 15px;
  color: #14161a;
  line-height: normal;
  box-shadow: none;
  transition: border-color .15s, background-color .15s;
}
.tgq .tgq-input input:hover { background: #e7edf5; }
.tgq .tgq-input input:focus {
  outline: none;
  background: #fff;
  border-color: #1a73c9;
}
.tgq .tgq-input input::placeholder { color: #8e9bab; }

/* icon on the right of each input */
.tgq-input::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 13px;
  width: 19px;
  height: 19px;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  pointer-events: none;
  opacity: .85;
}
.tgq-i-user::after  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3b1c2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }
.tgq-i-pin::after   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3b1c2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.tgq-i-phone::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3b1c2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.tgq-i-mail::after  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3b1c2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); }

/* ---------- submit ---------- */
.tgq-actions { margin-bottom: 18px; }

.tgq .wpcf7-submit {
  display: inline-block;
  padding: 13px 26px;
  border: 0;
  border-radius: 30px;
  background: linear-gradient(180deg, #2b8ae0 0%, #1565c0 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(21, 101, 192, .28);
  transition: transform .12s, box-shadow .15s, filter .15s;
}
.tgq .wpcf7-submit:hover {
  filter: brightness(1.06);
  box-shadow: 0 6px 14px rgba(21, 101, 192, .34);
}
.tgq .wpcf7-submit:active { transform: translateY(1px); }
.tgq .wpcf7-submit:focus-visible { outline: 2px solid #14161a; outline-offset: 3px; }

.tgq-privacy {
  margin: 0;
  font-size: 13px;
  color: #6b7684;
}
.tgq-privacy a { color: #6b7684; text-decoration: underline; }

/* ---------- CF7 chrome cleanup ---------- */
.tgq .wpcf7-form-control-wrap { display: block; }
.tgq .wpcf7-not-valid-tip {
  margin-top: 5px;
  font-size: 12.5px;
  color: #e53935;
}
.tgq .tgq-input input.wpcf7-not-valid { border-color: #e53935; }
.tgq .wpcf7-response-output {
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 4px;
  font-size: 14px;
}
.tgq .wpcf7-spinner { margin-left: 10px; vertical-align: middle; }

/* ---------- mobile ---------- */
@media (max-width: 560px) {
  .tgq { padding: 22px 18px; }
  .tgq-title { font-size: 23px; }
  .tgq-grid { grid-template-columns: 1fr; gap: 16px; }
  .tgq-services .wpcf7-checkbox { gap: 14px 16px; }
  .tgq .wpcf7-submit { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .tgq * { transition: none !important; }
}

/* ================================================================
   TG GLOBAL LAYOUT + HEADER MENU  (added Sep 2026)
   ================================================================ */

/* ---- Consistent side gutters (content sits 20px from the edge on mobile, 30px on tablet) ---- */
body{overflow-x:clip}
@media (max-width:767px){
  [data-elementor-type="wp-page"] > .elementor-section{padding-left:10px!important;padding-right:10px!important}
  [data-elementor-type="wp-page"] > .e-con{--padding-left:20px;--padding-right:20px}
}
@media (min-width:768px) and (max-width:1024px){
  [data-elementor-type="wp-page"] > .elementor-section{padding-left:20px!important;padding-right:20px!important}
  [data-elementor-type="wp-page"] > .e-con{--padding-left:30px;--padding-right:30px}
}
/* Legacy (non-Elementor) page content: never overflow on small screens */
.page-content img,.page-content iframe,.page-content video{max-width:100%;height:auto}
.page-content table{display:block;max-width:100%;overflow-x:auto}
@media (max-width:767px){.site-main.page .page-content,.site-main .page-header{padding-left:20px;padding-right:20px}}

/* ---- Header: desktop dropdowns ---- */
@media (min-width:1025px){
  .elementor-14059 .elementskit-navbar-nav > li > a .elementskit-submenu-indicator{transition:transform .25s ease}
  .elementor-14059 .elementskit-navbar-nav > li:hover > a .elementskit-submenu-indicator{transform:rotate(180deg)}
  .elementor-14059 .elementskit-navbar-nav .elementskit-submenu-panel{
    background:#fff!important;border:1px solid #ECE8E1!important;border-radius:14px!important;
    box-shadow:0 22px 48px rgba(15,30,50,.14)!important;padding:8px!important;min-width:250px;
    transform:translateY(10px);transition:opacity .2s ease,transform .2s ease,visibility .2s!important}
  .elementor-14059 .elementskit-navbar-nav li:hover > .elementskit-submenu-panel{transform:translateY(0)}
  .elementor-14059 .elementskit-submenu-panel > li{background:transparent!important;border:0!important}
  .elementor-14059 .elementskit-submenu-panel > li > a{
    display:flex!important;align-items:center;justify-content:space-between;gap:12px;
    padding:10px 14px!important;border-radius:9px!important;border:0!important;
    font-size:14.5px!important;font-weight:500!important;color:#2B2B2B!important;background:transparent!important;
    transition:background .15s,color .15s}
  .elementor-14059 .elementskit-submenu-panel > li > a:hover,
  .elementor-14059 .elementskit-submenu-panel > li.current-menu-item > a{background:#EEF5FC!important;color:#016FC9!important}
  .elementor-14059 .elementskit-submenu-panel > li.current-menu-item > a{font-weight:600!important}

  /* Locations: one mega panel (province headings + towns) instead of nested fly-outs */
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel{
    display:grid!important;grid-template-columns:repeat(4,minmax(150px,1fr));gap:4px 12px;
    width:720px;left:auto!important;right:-60px;padding:18px!important}
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel > li > a{
    pointer-events:none;background:none!important;padding:8px 12px 4px!important;
    font-size:12px!important;font-weight:700!important;letter-spacing:.07em;text-transform:uppercase;color:#FE2429!important}
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel > li > a .elementskit-submenu-indicator{display:none!important}
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel > li > .elementskit-submenu-panel{
    position:static!important;opacity:1!important;visibility:visible!important;transform:none!important;display:block!important;
    box-shadow:none!important;border:0!important;background:transparent!important;
    padding:0!important;margin:0 0 8px!important;min-width:0!important;width:auto!important;left:auto!important;top:auto!important}
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel > li > .elementskit-submenu-panel > li > a{padding:7px 12px!important;font-size:14px!important}
  .elementor-14059 .elementskit-submenu-panel > li > a{white-space:nowrap}
  .elementor-14059 .elementskit-navbar-nav > li > .elementskit-submenu-panel{min-width:260px}
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel > li > .elementskit-submenu-panel > li > a{white-space:normal}
}
/* Northern Cape has no installer page yet */
.elementor-14059 .menu-item-6690{display:none!important}

/* ---- Header: mobile / tablet off-canvas menu ---- */
@media (max-width:1024px){
  .elementor-14059 .elementskit-menu-hamburger{
    background:#016FC9!important;border:0!important;border-radius:10px!important;
    width:46px!important;height:42px!important;padding:0!important;
    display:inline-flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px}
  .elementor-14059 .elementskit-menu-hamburger .elementskit-menu-hamburger-icon{
    background-color:#fff!important;width:22px!important;height:2px!important;margin:0!important;opacity:1!important;border-radius:2px}
  .elementor-14059 .elementskit-menu-overlay{background:rgba(15,25,35,.55)!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements{
    width:88vw!important;max-width:380px!important;background:#fff!important;padding:0!important;
    display:flex!important;flex-direction:column;overflow-y:auto!important;box-shadow:0 0 50px rgba(0,0,0,.25)}
  body.admin-bar .elementor-14059 .elementskit-menu-offcanvas-elements{top:46px!important;height:calc(100% - 46px)!important}
  .elementor-14059 .elementskit-nav-identity-panel{
    order:-1;display:flex!important;align-items:center;justify-content:space-between;
    padding:14px 18px!important;border-bottom:1px solid #EEEBE5;position:sticky;top:0;background:#fff;z-index:3}
  .elementor-14059 .elementskit-nav-identity-panel::before{
    content:"";width:120px;height:52px;background:url(/wp-content/uploads/2026/08/logo-png.webp) left center/contain no-repeat}
  .elementor-14059 .elementskit-menu-close{
    border:0!important;background:#F3F3F1!important;color:#2B2B2B!important;width:40px!important;height:40px!important;
    border-radius:50%!important;padding:0!important;margin:0!important;float:none!important;font-size:15px!important;font-weight:600!important;
    display:inline-flex!important;align-items:center;justify-content:center;line-height:1}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-navbar-nav{padding:6px 0 28px!important;width:100%}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li{border-bottom:1px solid #F0EEEA!important;background:transparent!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li > a{
    display:flex!important;align-items:center;justify-content:space-between;gap:12px;
    padding:14px 18px 14px 20px!important;font-size:16px!important;font-weight:600!important;line-height:1.3!important;
    color:#2B2B2B!important;background:transparent!important;border-radius:0!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li.current-menu-item > a,
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li.current-menu-ancestor > a{color:#016FC9!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements li.contact > a{background:transparent!important;color:#016FC9!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-submenu-indicator{
    position:static!important;flex:none;border:0!important;border-radius:8px!important;background:#F3F3F1!important;
    width:34px!important;height:34px!important;padding:10px!important;box-sizing:border-box;fill:#2B2B2B!important;color:#2B2B2B!important;
    transition:transform .25s ease,background .2s}
  .elementor-14059 .elementskit-menu-offcanvas-elements li:has(> .elementskit-dropdown-open) > a .elementskit-submenu-indicator{
    transform:rotate(180deg);background:#EEF5FC!important;fill:#016FC9!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-submenu-panel{
    background:#F7F5F1!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-submenu-panel > li{border:0!important;background:transparent!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-submenu-panel > li > a{
    display:flex!important;align-items:center;justify-content:space-between;gap:12px;
    padding:12px 18px 12px 32px!important;font-size:15px!important;font-weight:500!important;color:#3A3A3A!important;background:transparent!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-submenu-panel .elementskit-submenu-panel{background:#EFECE6!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-submenu-panel .elementskit-submenu-panel > li > a{padding-left:46px!important;font-size:14.5px!important}
  .elementor-14059 .elementskit-menu-offcanvas-elements .elementskit-submenu-panel > li.current-menu-item > a{color:#016FC9!important;font-weight:600!important}
}
@media (min-width:783px) and (max-width:1024px){
  body.admin-bar .elementor-14059 .elementskit-menu-offcanvas-elements{top:32px!important;height:calc(100% - 32px)!important}
}
/* Home hero sits under the transparent header (-145px margin): keep its text clear of the header on phones/tablets */
@media (max-width:1024px){.elementor-element-117903f{padding-top:165px!important;padding-bottom:50px!important}}
/* ================= END TG GLOBAL LAYOUT + HEADER MENU ================= */

/* ================================================================
   TG REVIEW FIXES (Oct 2026)
   ================================================================ */
/* ---- Sticky header (desktop + mobile) ---- */
.ekit-template-content-header{position:sticky;top:0;z-index:9990;background:#fff;box-shadow:0 2px 14px rgba(15,30,50,.07)}
body.admin-bar .ekit-template-content-header{top:32px}
@media (max-width:782px){body.admin-bar .ekit-template-content-header{top:46px}}
@media (max-width:600px){body.admin-bar .ekit-template-content-header{top:0}}
/* home hero no longer slides under a transparent header */
.home .elementor-element-117903f{margin-top:0!important}
@media (max-width:1024px){.home .elementor-element-117903f{padding-top:50px!important;padding-bottom:50px!important}}
/* smaller logo + slimmer header on tablet/mobile */
@media (max-width:1024px){
  .ekit-template-content-header .elementor-widget-image img{max-height:58px!important;width:auto!important}
  .ekit-template-content-header .elementor-top-section{padding-top:6px!important;padding-bottom:6px!important}
}

/* ---- Locations mega menu: bigger province labels, tighter towns ---- */
@media (min-width:1025px){
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel > li > a{font-size:14.5px!important;letter-spacing:.06em;padding:10px 12px 6px!important}
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel > li > .elementskit-submenu-panel > li > a{padding:3px 12px!important;line-height:1.4!important}
  .elementor-14059 .menu-item-6602 > .elementskit-submenu-panel > li > .elementskit-submenu-panel{margin:0 0 12px!important}
}

/* ---- No double bullets on icon lists (footer + pages) ---- */
ul.elementor-icon-list-items{list-style:none!important;padding-left:0!important;margin-left:0!important}
ul.elementor-icon-list-items > li{list-style:none!important}
ul.elementor-icon-list-items > li::marker{content:""}

/* ---- More breathing room between copy and images ---- */
@media (min-width:1025px){
  [data-elementor-type="wp-page"] .elementor-section > .elementor-container > .elementor-column:not(:has(.elementor-widget-image)):has(+ .elementor-column .elementor-widget-image) > .elementor-widget-wrap{padding-right:56px!important}
  [data-elementor-type="wp-page"] .elementor-section > .elementor-container > .elementor-column:has(.elementor-widget-image) + .elementor-column:not(:has(.elementor-widget-image)) > .elementor-widget-wrap{padding-left:56px!important}
}
@media (min-width:768px) and (max-width:1024px){
  [data-elementor-type="wp-page"] .elementor-section > .elementor-container > .elementor-column:not(:has(.elementor-widget-image)):has(+ .elementor-column .elementor-widget-image) > .elementor-widget-wrap{padding-right:30px!important}
  [data-elementor-type="wp-page"] .elementor-section > .elementor-container > .elementor-column:has(.elementor-widget-image) + .elementor-column:not(:has(.elementor-widget-image)) > .elementor-widget-wrap{padding-left:30px!important}
}

/* ---- Body copy sizes ---- */
.page-id-76 [data-elementor-type="wp-page"] :is(.heading-section-description,.ekit-heading__description,.elementor-widget-text-editor) :is(p,li){font-size:17px!important;line-height:1.7}
.page-id-4029 [data-elementor-type="wp-page"] .heading-section-description p{font-size:18px!important}
.elementor-widget-tabs_benefits .tab-content-description{font-size:18px!important;line-height:1.65!important}
/* Hero intro text on every page = 18px */
[data-elementor-type="wp-page"] > .elementor-section:has(:is(h1,h2)):not(.elementor-section:has(:is(h1,h2)) ~ .elementor-section) :is(.heading-section-description,.ekit-heading__description,.elementor-widget-text-editor) :is(p,div:not(:has(*))){font-size:18px!important;line-height:1.6!important}
@media (max-width:767px){
  [data-elementor-type="wp-page"] > .elementor-section:has(:is(h1,h2)):not(.elementor-section:has(:is(h1,h2)) ~ .elementor-section) :is(.heading-section-description,.ekit-heading__description,.elementor-widget-text-editor) :is(p,div:not(:has(*))){font-size:17px!important}
}

/* ---- Blog ---- */
.zbp-post__title{font-size:25px!important;line-height:1.3!important}
.csp-title{font-size:35px!important;line-height:1.25!important}
@media (max-width:767px){.zbp-post__title{font-size:22px!important}.csp-title{font-size:28px!important}}

/* ---- Quote form: province dropdown ---- */
.tgq .tgq-full{grid-column:1/-1;margin-bottom:18px}
.tgq .tgq-input select{width:100%;height:46px;padding:0 42px 0 14px;border:1px solid transparent;border-radius:4px;background:#eef2f7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2314161a' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 14px center;font-size:15px;color:#14161a;-webkit-appearance:none;appearance:none;cursor:pointer}
.tgq .tgq-input select:focus{outline:none;background-color:#fff;border-color:#1a73c9}
.tgq .tgq-select::after{display:none}
.tgq-privacy a{color:#016FC9;text-decoration:underline}

/* ---- Product page: "Why Choose" cards line up per row ---- */
.elementor-element-b726622 > .elementor-container{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto;grid-auto-flow:column;gap:24px}
.elementor-element-b726622 > .elementor-container > .elementor-column,
.elementor-element-b726622 > .elementor-container > .elementor-column > .elementor-widget-wrap{display:contents!important}
.elementor-element-b726622 .elementor-widget{margin:0!important;height:100%}
.elementor-element-b726622 .elementor-widget > .elementor-widget-container{height:100%}
@media (max-width:1024px){
  .elementor-element-b726622 > .elementor-container{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row;gap:16px}
  .elementor-element-b726622 .elementor-column:nth-child(1) .elementor-widget:nth-child(1){order:1}
  .elementor-element-b726622 .elementor-column:nth-child(2) .elementor-widget:nth-child(1){order:2}
  .elementor-element-b726622 .elementor-column:nth-child(3) .elementor-widget:nth-child(1){order:3}
  .elementor-element-b726622 .elementor-column:nth-child(1) .elementor-widget:nth-child(2){order:4}
  .elementor-element-b726622 .elementor-column:nth-child(2) .elementor-widget:nth-child(2){order:5}
  .elementor-element-b726622 .elementor-column:nth-child(3) .elementor-widget:nth-child(2){order:6}
}
/* About page: on phones show more of the people in the hero photo */
@media (max-width:767px){.page-id-76 [data-elementor-type="wp-page"] > .elementor-section:first-child{background-position:center 72%!important}}
/* Home menu was white-on-transparent; header is now white + sticky */
@media (min-width:1025px){
  body.tg-scrolled #homemenu .elementskit-navbar-nav > li:not(.contact) > a{color:#000!important}
  body.tg-scrolled #homemenu .elementskit-navbar-nav > li:not(.contact) > a .elementskit-submenu-indicator{fill:#000!important;color:#000!important}
  body.tg-scrolled #homemenu .elementskit-navbar-nav > li:not(.contact):hover > a,
  body.tg-scrolled #homemenu .elementskit-navbar-nav > li.current-menu-item:not(.contact) > a{color:#016FC9!important}
}
/* On-this-page pill bar: keep bold/bigger over older #scroller styles */
.tg-otp .tg-otp-link{font-size:16px!important;font-weight:700!important}
@media (max-width:1024px){.tg-otp .tg-otp-link{font-size:15px!important}}
/* Logo shrinks to 50% once the page is scrolled */
.ekit-template-content-header .elementor-widget-image img{transition:max-height .3s ease;max-height:121px}
body.tg-scrolled .ekit-template-content-header .elementor-widget-image img{max-height:60px!important;width:auto!important}
@media (max-width:1024px){
  .ekit-template-content-header .elementor-widget-image img{max-height:58px}
  body.tg-scrolled .ekit-template-content-header .elementor-widget-image img{max-height:36px!important}
}

/* OTP pill hover fix (overrides sticky-on-header #scroller a:hover) */
.tg-otp .tg-otp-link:hover,#scroller .tg-otp .tg-otp-link:hover,.tg-otp .tg-otp-link:focus-visible{background:#e3effa!important;color:#016fc9!important;box-shadow:inset 0 0 0 1px rgba(1,111,201,.25)}
.tg-otp .tg-otp-link.is-active,#scroller .tg-otp .tg-otp-link.is-active,.tg-otp .tg-otp-link.is-active:hover,#scroller .tg-otp .tg-otp-link.is-active:hover{background:#016fc9!important;color:#fff!important;box-shadow:none}

/* Hero description 18px - covers bare-text descriptions too */
:is([data-elementor-type="wp-page"],[data-elementor-type="wp-page"] > .elementor-section-wrap) > .elementor-top-section:first-child :is(.heading-section-description,.ekit-heading__description,.elementor-widget-text-editor,.elementor-widget-text-editor .elementor-widget-container),
:is([data-elementor-type="wp-page"],[data-elementor-type="wp-page"] > .elementor-section-wrap) > .elementor-top-section:first-child :is(.heading-section-description,.ekit-heading__description,.elementor-widget-text-editor) :is(p,li,span,div){font-size:18px!important;line-height:1.6!important}
@media (max-width:767px){
:is([data-elementor-type="wp-page"],[data-elementor-type="wp-page"] > .elementor-section-wrap) > .elementor-top-section:first-child :is(.heading-section-description,.ekit-heading__description,.elementor-widget-text-editor,.elementor-widget-text-editor .elementor-widget-container),
:is([data-elementor-type="wp-page"],[data-elementor-type="wp-page"] > .elementor-section-wrap) > .elementor-top-section:first-child :is(.heading-section-description,.ekit-heading__description,.elementor-widget-text-editor) :is(p,li,span,div){font-size:17px!important}
}

/* Mobile: 20px top/bottom on content sections (colour-split edges), hero excluded */
@media (max-width:767px){
:is([data-elementor-type="wp-page"],[data-elementor-type="wp-page"] > .elementor-section-wrap) > .elementor-top-section:not(:first-child){padding-top:20px!important;padding-bottom:20px!important}
}

/* HOME: transparent header over hero, white once scrolled */
.home .ekit-template-content-header{position:fixed!important;left:0;right:0;width:100%;background:transparent!important;box-shadow:none!important;transition:background-color .3s ease,box-shadow .3s ease}
.home.tg-scrolled .ekit-template-content-header{background:#fff!important;box-shadow:0 2px 14px rgba(15,30,50,.07)!important}
@media (max-width:600px){body.admin-bar.home:not(.tg-scrolled) .ekit-template-content-header{top:46px}}
@media (max-width:1024px){.home .elementor-element-117903f{padding-top:120px!important}}
/* Mobile/tablet header: logo left, hamburger inset */
@media (max-width:1024px){
  .ekit-template-content-header .elementor-widget-image,
  .ekit-template-content-header .elementor-widget-image .elementor-widget-container{text-align:left!important}
  .ekit-template-content-header .elementor-top-section > .elementor-container{padding-left:14px!important;padding-right:14px!important}
}
/* Footer: more side padding on mobile/tablet */
@media (max-width:1024px){
  .elementor-14263 .elementor-top-section > .elementor-container{padding-left:14px!important;padding-right:14px!important}
  .elementor-14263 .elementor-element-33debce > .elementor-widget-wrap{padding-left:10px!important;padding-right:10px!important}
}
/* ================= END TG REVIEW FIXES ================= */
