  :root{
    --hvac-blue:#2E3F75;
    --hvac-blue-2:#425896;
    --hvac-red:#E34B3F;
    --hvac-red-dark:#C93B30;
    --hvac-water:#6EB7CC;
    --hvac-green:#94C94C;
    --hvac-lime:#B8D85C;
    --hvac-cream:#F4F2E8;
    --hvac-sage:#DCE7C6;
    --hvac-footer-text:rgba(255,255,255,.80);
    --hvac-footer-soft:rgba(255,255,255,.62);
    --hvac-footer-line:rgba(255,255,255,.12);
    --hvac-footer-bright:#FFFFFF;
  }

  .hvac-footer{
    position:relative;
    overflow:hidden;
    margin-top:0;
    background:
      radial-gradient(900px 420px at 8% 0%, rgba(110,183,204,.24), transparent 60%),
      radial-gradient(900px 420px at 100% 0%, rgba(148,201,76,.16), transparent 58%),
      linear-gradient(135deg, #263868 0%, #2E3F75 48%, #354A86 100%);
    color:var(--hvac-footer-text);
    border-top:1px solid rgba(255,255,255,.08);
  }

  .hvac-footer::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(10,18,36,.06) 0%, rgba(10,18,36,.16) 100%);
    pointer-events:none;
  }

  .hvac-footer > .container,
  .hvac-subfooter > .container{
    position:relative;
    z-index:1;
  }

  .hvac-footer-top{
    padding:88px 0 54px;
  }

  .hvac-footer-brand{
    display:inline-flex;
    align-items:center;
    gap:.95rem;
    text-decoration:none;
    margin-bottom:1.15rem;
  }

  .hvac-footer-brand img{
    max-height:108px;
    width:auto;
    filter:drop-shadow(0 10px 24px rgba(0,0,0,.16));
  }

  .hvac-footer-brand-text{
    display:flex;
    flex-direction:column;
    line-height:1;
  }

  .hvac-footer-brand-name{
    color:var(--hvac-footer-bright);
    font-family:'Montserrat',sans-serif;
    font-weight:900;
    font-size:1.1rem;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .hvac-footer-brand-sub{
    color:rgba(255,255,255,.70);
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.18em;
    margin-top:.28rem;
    font-weight:800;
  }

  .hvac-footer-copy{
    max-width:620px;
    color:var(--hvac-footer-text);
    line-height:1.85;
    font-weight:500;
    margin-bottom:1.8rem;
  }

  .hvac-footer-heading{
    color:var(--hvac-footer-bright);
    font-family:'Montserrat',sans-serif;
    font-size:1rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.10em;
    margin:0 0 1rem 0;
  }

  .hvac-footer-links,
  .hvac-footer-meta{
    list-style:none;
    padding:0;
    margin:0;
  }

  .hvac-footer-links li,
  .hvac-footer-meta li{
    margin-bottom:.7rem;
  }

  .hvac-footer-links a,
  .hvac-footer-meta a{
    color:var(--hvac-footer-text);
    text-decoration:none;
    font-weight:600;
    transition:color .2s ease, transform .2s ease;
    display:inline-block;
  }

  .hvac-footer-links a:hover,
  .hvac-footer-meta a:hover{
    color:#fff;
    transform:translateX(3px);
  }

  .hvac-contact-line{
    display:flex;
    gap:.75rem;
    align-items:flex-start;
    margin-bottom:1rem;
  }

  .hvac-contact-icon{
    width:40px;
    height:40px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.12);
    color:#fff;
    flex:0 0 auto;
  }

  .hvac-contact-line strong{
    display:block;
    color:#fff;
    margin-bottom:.15rem;
    font-size:.92rem;
    font-weight:800;
  }

  .hvac-contact-line a,
  .hvac-contact-line span,
  .hvac-contact-line div{
    color:var(--hvac-footer-text);
    text-decoration:none;
    font-weight:500;
  }

  .hvac-contact-line a:hover{
    color:#fff;
  }

  .hvac-social{
    display:flex;
    flex-wrap:wrap;
    gap:.7rem;
  }

  .hvac-social a{
    width:44px;
    height:44px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    text-decoration:none;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
    transition:transform .22s ease, background .22s ease, border-color .22s ease;
  }

  .hvac-social a:hover{
    transform:translateY(-2px);
    background:rgba(148,201,76,.16);
    border-color:rgba(184,216,92,.28);
    color:#fff;
  }

  .hvac-newsletter-copy{
    color:var(--hvac-footer-text);
    margin-bottom:1rem;
    line-height:1.75;
    font-weight:500;
  }

  .hvac-newsletter-form{
    display:flex;
    gap:.75rem;
    flex-wrap:wrap;
    align-items:stretch;
  }

  .hvac-newsletter-form .form-control{
    flex:1 1 240px;
    min-width:0;
    width:100%;
    min-height:52px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.16);
    background:rgba(255,255,255,.08);
    color:#fff;
    padding:.85rem 1rem;
    box-shadow:none;
  }

  .hvac-newsletter-form .form-control::placeholder{
    color:rgba(255,255,255,.55);
  }

  .hvac-newsletter-form .form-control:focus{
    border-color:rgba(255,255,255,.28);
    background:rgba(255,255,255,.12);
    color:#fff;
    box-shadow:none;
  }

  .btn-hvac-footer{
    min-height:52px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    line-height:1;
    border:none;
    border-radius:999px;
    padding:.85rem 1.35rem;
    background:linear-gradient(135deg, var(--hvac-green), var(--hvac-lime));
    color:var(--hvac-blue);
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.82rem;
    box-shadow:0 16px 35px rgba(148,201,76,.22);
    transition:transform .22s ease, box-shadow .22s ease, filter .22s ease;
    text-decoration:none;
    white-space:nowrap;
  }

  .btn-hvac-footer:hover{
    color:var(--hvac-blue);
    transform:translateY(-2px);
    filter:brightness(.98);
    box-shadow:0 20px 40px rgba(148,201,76,.28);
    text-decoration:none;
  }

  .hvac-footer-divider{
    height:1px;
    background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.14) 15%, rgba(255,255,255,.14) 85%, rgba(255,255,255,0) 100%);
    margin:2rem 0 0;
  }

  .hvac-footer-cta{
    margin-bottom:2.1rem;
    padding:1.45rem 1.55rem;
    border-radius:24px;
    background:linear-gradient(135deg, rgba(110,183,204,.12), rgba(148,201,76,.14));
    border:1px solid rgba(255,255,255,.12);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
  }

  .hvac-footer-cta h3{
    color:#fff;
    margin:0 0 .35rem 0;
    font-family:'Montserrat',sans-serif;
    font-size:1.2rem;
    font-weight:900;
  }

  .hvac-footer-cta p{
    margin:0;
    color:var(--hvac-footer-text);
    line-height:1.7;
  }

  .hvac-footer-cta .btn-hvac-footer{
    min-width:190px;
    flex:0 0 auto;
  }

  .hvac-subfooter{
    border-top:1px solid rgba(255,255,255,.08);
    padding:1rem 0 1.2rem;
    color:var(--hvac-footer-soft);
    background:rgba(0,0,0,.08);
  }

  .hvac-subfooter a{
    color:#fff;
    text-decoration:none;
    font-weight:700;
  }

  .hvac-subfooter a:hover{
    text-decoration:underline;
  }

  .hvac-mini-note{
    color:var(--hvac-footer-soft);
    font-size:.95rem;
    line-height:1.7;
  }

  .hvac-address-list{
    display:grid;
    gap:.65rem;
    margin-top:.3rem;
  }

  .hvac-license{
    margin-top:1rem;
    color:#fff;
    font-weight:800;
    letter-spacing:.02em;
  }

  @media (max-width: 991.98px){
    .hvac-footer-top{
      padding:72px 0 46px;
    }

    .hvac-footer-cta{
      flex-direction:column;
      align-items:flex-start;
      padding:1.25rem;
    }

    .hvac-footer-cta .btn-hvac-footer{
      width:100%;
      min-width:0;
    }
  }

  @media (max-width: 767.98px){
    .hvac-footer-top{
      padding:60px 0 40px;
    }

    .hvac-footer .row{
      --bs-gutter-x: 0;
      --bs-gutter-y: 1.6rem;
    }

    .hvac-footer [class*="col-"]{
      padding-left:.75rem;
      padding-right:.75rem;
    }

    .hvac-footer-brand{
      margin-bottom:1rem;
    }

    .hvac-footer-brand img{
      max-height:88px;
    }

    .hvac-footer-copy{
      max-width:none;
      margin-bottom:1.35rem;
    }

    .hvac-footer-heading{
      margin:0 0 .85rem 0;
      font-size:.95rem;
    }

    .hvac-footer-links li,
    .hvac-footer-meta li{
      margin-bottom:.55rem;
    }

    .hvac-contact-line{
      gap:.7rem;
      margin-bottom:.9rem;
    }

    .hvac-footer-divider{
      margin:1.5rem 0 0;
    }

    .hvac-newsletter-form{
      flex-direction:column;
      gap:.8rem;
      width:100%;
    }

    .hvac-newsletter-form .form-control{
      flex:0 0 auto;
      width:100%;
      min-width:0;
      max-width:100%;
    }

    .hvac-newsletter-form .btn-hvac-footer,
    .btn-hvac-footer{
      width:100%;
    }
  }

  @media (max-width: 575.98px){
    .hvac-footer-top{
      padding:52px 0 36px;
    }

    .hvac-footer .container{
      padding-left:1rem;
      padding-right:1rem;
    }

    .hvac-footer [class*="col-"]{
      padding-left:.2rem;
      padding-right:.2rem;
    }

    .hvac-footer-cta{
      border-radius:20px;
      padding:1rem;
      margin-bottom:1.5rem;
    }

    .hvac-footer-cta h3{
      font-size:1.05rem;
    }

    .hvac-footer-brand{
      align-items:flex-start;
    }

    .hvac-footer-brand img{
      max-height:74px;
    }

    .hvac-social{
      gap:.55rem;
    }

    .hvac-social a{
      width:40px;
      height:40px;
    }

    .hvac-contact-icon{
      width:36px;
      height:36px;
    }

    .hvac-subfooter{
      padding:1rem 0;
    }

    .hvac-subfooter .container{
      text-align:center;
    }
  }

  .asm-chatbot{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:100120;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:.9rem;
  }

  .asm-chatbot-launcher{
    display:inline-flex;
    align-items:center;
    gap:.7rem;
    min-height:58px;
    padding:.8rem 1rem;
    border:none;
    border-radius:999px;
    background:linear-gradient(135deg, #2E3F75, #425896);
    color:#fff;
    box-shadow:0 18px 40px rgba(36,48,79,.28);
    font-weight:900;
    letter-spacing:.02em;
  }

  .asm-chatbot-launcher:hover{
    filter:brightness(.98);
  }

  .asm-chatbot-launcher .asm-chatbot-dot{
    width:38px;
    height:38px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg, #94C94C, #B8D85C);
    color:#24304F;
    flex:0 0 auto;
  }

  .asm-chatbot-panel{
    width:min(420px, calc(100vw - 24px));
    max-height:min(76vh, 760px);
    display:none;
    flex-direction:column;
    overflow:hidden;
    border-radius:28px;
    background:#fff;
    border:1px solid rgba(46,63,117,.10);
    box-shadow:0 28px 70px rgba(36,48,79,.22);
  }

  .asm-chatbot.is-open .asm-chatbot-panel{
    display:flex;
  }

  .asm-chatbot-head{
    padding:1rem 1rem .95rem;
    background:
      radial-gradient(220px 160px at 0% 0%, rgba(110,183,204,.22), transparent 70%),
      linear-gradient(135deg, #2E3F75 0%, #425896 100%);
    color:#fff;
  }

  .asm-chatbot-head-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
  }

  .asm-chatbot-head h3{
    margin:0;
    font-family:'Montserrat',sans-serif;
    font-size:1rem;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
  }

  .asm-chatbot-head p{
    margin:.35rem 0 0;
    color:rgba(255,255,255,.84);
    line-height:1.55;
    font-size:.94rem;
  }

  .asm-chatbot-close{
    width:40px;
    height:40px;
    border:none;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  .asm-chatbot-quick{
    display:flex;
    flex-wrap:wrap;
    gap:.45rem;
    margin-top:.85rem;
  }

  .asm-chatbot-chip{
    border:none;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:#fff;
    padding:.5rem .8rem;
    font-size:.77rem;
    font-weight:800;
    letter-spacing:.03em;
  }

  .asm-chatbot-body{
    padding:1rem;
    background:#F8FBFF;
    overflow:auto;
    display:flex;
    flex-direction:column;
    gap:.85rem;
  }

  .asm-chatbot-msg{
    max-width:92%;
    padding:.85rem .95rem;
    border-radius:18px;
    line-height:1.65;
    font-size:.95rem;
    white-space:pre-wrap;
  }

  .asm-chatbot-msg.user{
    align-self:flex-end;
    background:#2E3F75;
    color:#fff;
    border-bottom-right-radius:8px;
  }

  .asm-chatbot-msg.bot{
    align-self:flex-start;
    background:#fff;
    color:#24304F;
    border:1px solid rgba(46,63,117,.10);
    border-bottom-left-radius:8px;
  }

  .asm-chatbot-status{
    font-size:.82rem;
    color:#69748A;
    min-height:1.2em;
  }

  .asm-chatbot-callback{
    display:none;
    padding:1rem;
    border-top:1px solid rgba(46,63,117,.08);
    background:#fff;
  }

  .asm-chatbot-callback.is-open{
    display:block;
  }

  .asm-chatbot-callback h4{
    margin:0 0 .25rem;
    color:#2E3F75;
    font-family:'Montserrat',sans-serif;
    font-size:.94rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
  }

  .asm-chatbot-callback p{
    margin:0 0 .8rem;
    color:#69748A;
    font-size:.9rem;
    line-height:1.6;
  }

  .asm-chatbot-callback-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.7rem;
  }

  .asm-chatbot-input,
  .asm-chatbot-textarea{
    width:100%;
    border:1px solid rgba(46,63,117,.14);
    border-radius:14px;
    background:#fff;
    color:#24304F;
    padding:.8rem .9rem;
    box-shadow:none;
  }

  .asm-chatbot-textarea{
    min-height:88px;
    resize:vertical;
    grid-column:1 / -1;
  }

  .asm-chatbot-actions{
    display:flex;
    gap:.6rem;
    margin-top:.8rem;
  }

  .asm-chatbot-btn{
    min-height:46px;
    border:none;
    border-radius:999px;
    padding:.75rem 1rem;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
    font-size:.77rem;
  }

  .asm-chatbot-btn.primary{
    background:linear-gradient(135deg, #94C94C, #B8D85C);
    color:#24304F;
  }

  .asm-chatbot-btn.secondary{
    background:rgba(46,63,117,.08);
    color:#2E3F75;
  }

  .asm-chatbot-foot{
    padding:1rem;
    background:#fff;
    border-top:1px solid rgba(46,63,117,.08);
  }

  .asm-chatbot-call{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.7rem;
    min-height:52px;
    margin-top:.75rem;
    padding:.85rem 1rem;
    border-radius:18px;
    text-decoration:none;
    background:linear-gradient(135deg, #94C94C, #B8D85C);
    color:#24304F;
    box-shadow:0 16px 34px rgba(148,201,76,.22);
    font-family:'Montserrat',sans-serif;
    font-size:.9rem;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
  }

  .asm-chatbot-call:hover{
    color:#24304F;
    text-decoration:none;
    filter:brightness(.98);
    transform:translateY(-1px);
  }

  .asm-chatbot-call span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    border-radius:999px;
    background:rgba(255,255,255,.35);
    flex:0 0 auto;
  }

  .asm-chatbot-form{
    display:flex;
    gap:.65rem;
    align-items:flex-end;
  }

  .asm-chatbot-form textarea{
    min-height:52px;
    max-height:132px;
    resize:vertical;
  }

  .asm-chatbot-send{
    width:52px;
    height:52px;
    border:none;
    border-radius:16px;
    flex:0 0 auto;
    background:linear-gradient(135deg, #2E3F75, #425896);
    color:#fff;
  }

  .asm-chatbot-note{
    margin-top:.55rem;
    color:#69748A;
    font-size:.75rem;
    line-height:1.45;
  }

  @media (max-width: 767.98px){
    .asm-chatbot{
      right:12px;
      left:auto;
      bottom:12px;
      align-items:flex-end;
    }

    .asm-chatbot-launcher{
      max-width:calc(100vw - 24px);
      min-height:54px;
      padding:.72rem .9rem;
    }

    .asm-chatbot-panel{
      width:min(390px, calc(100vw - 24px));
      max-height:80vh;
    }

    .asm-chatbot-callback-grid{
      grid-template-columns:1fr;
    }
  }
