/* Footer + chat widget styles, extracted from includes/footer.php (Oct 2026). */
/* ---- from includes/footer.php id="as-footer-layout-final" ---- */
.footer .container{
    max-width:1360px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .footer .foot-grid{
    width:min(100%,1280px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    display:grid !important;
    grid-template-columns:minmax(245px,1fr) minmax(215px,.9fr) minmax(215px,.9fr) minmax(380px,1.05fr) !important;
    gap:42px !important;
    justify-content:center !important;
    align-items:stretch !important;
  }
  .footer .foot-grid > div,
  .footer .foot-col{ min-width:0 !important; }
  .footer .foot-pages-col{ padding-top:0 !important; }

  /* 4th column becomes a flex column so the map fills the leftover
     height and its bottom edge lines up with the other columns. */
  .footer .foot-grid > div:last-child{
    display:flex !important;
    flex-direction:column !important;
  }
  .footer .foot-hours-map{
    flex:0 0 auto !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin-top:14px !important;
  }
  .footer .foot-hours-map .foot-col-title{ margin-bottom:14px !important; }
  .footer .foot-map-card{
    flex:0 0 auto !important;
    display:block !important;
    width:100% !important;
    height:220px !important;
    min-height:0 !important;
    border-radius:18px !important;
    overflow:hidden !important;
    border:1px solid rgba(255,255,255,.16) !important;
    background:rgba(255,255,255,.04) !important;
    box-shadow:0 14px 34px rgba(0,0,0,.22) !important;
  }
  .footer .foot-map-card iframe,
  .footer .foot-map-card #FooterMapBody{
    width:100% !important;
    height:220px !important;
    min-height:0 !important;
    display:block !important;
    border:0 !important;
  }
  .footer .foot-map-note{ display:none !important; }
  .footer .foot-address-row{
    display:flex !important;
    align-items:flex-start !important;
    gap:8px !important;
    font-size:.85rem !important;
    margin-top:14px !important;
    margin-bottom:0 !important;
    color:#d6e9f6 !important;
  }
  .footer .foot-socials svg.as-yelp-icon{
    fill:currentColor !important;
    stroke:none !important;
  }
  .footer .foot-address-row svg.ic{
    width:17px !important;
    height:17px !important;
    flex:0 0 17px !important;
    margin-top:2px !important;
    color:var(--amber) !important;
  }

  /* Tablet: two columns, no forced equal height, fixed map height. */
  @media(max-width:1280px){
    .footer .foot-grid{
      width:min(100%,980px) !important;
      grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
      gap:38px 48px !important;
      align-items:start !important;
    }
    .footer .foot-pages-col{ padding-top:0 !important; }
    .footer .foot-grid > div:last-child{ display:block !important; }
    .footer .foot-hours-map{ display:block !important; }
    .footer .foot-map-card{ display:block !important; min-height:0 !important; }
    .footer .foot-map-card iframe,
  .footer .foot-map-card #FooterMapBody{ height:240px !important; min-height:0 !important; }
  }

  /* Mobile: company and map full width; Services and Quick Links side by side. */
  @media(max-width:720px){
    body{padding-bottom:0 !important;}
    .footer{margin-bottom:0 !important;padding-bottom:0 !important;}
    .footer .foot-bottom{margin-bottom:0 !important;}
    .footer .foot-grid{
      width:100% !important;
      grid-template-columns:repeat(2,minmax(0,1fr)) !important;
      gap:30px 18px !important;
    }
    .footer .foot-grid > div:first-child,
    .footer .foot-grid > div:last-child{
      grid-column:1 / -1 !important;
    }
    .footer .foot-grid > .foot-col:nth-child(2),
    .footer .foot-grid > .foot-pages-col{
      min-width:0 !important;
    }
    .footer .foot-grid > .foot-col:nth-child(2) .foot-col-title,
    .footer .foot-grid > .foot-pages-col h4{
      margin-bottom:12px !important;
      font-size:.78rem !important;
    }
    .footer .foot-grid > .foot-col:nth-child(2) ul,
    .footer .foot-grid > .foot-pages-col ul{
      display:grid !important;
      gap:7px !important;
    }
    .footer .foot-grid > .foot-col:nth-child(2) li,
    .footer .foot-grid > .foot-pages-col li{
      margin:0 !important;
      line-height:1.3 !important;
    }
    .footer .foot-grid > .foot-col:nth-child(2) a,
    .footer .foot-grid > .foot-pages-col a{
      font-size:.78rem !important;
    }
    .footer .foot-map-card iframe,
  .footer .foot-map-card #FooterMapBody{ height:220px !important; }
  }


  /* 20260712: mobile company/contact content on the left, social icons on the right. */
  @media(max-width:720px){
    .footer .foot-grid > div:first-child{
      display:grid !important;
      grid-template-columns:minmax(0,1fr) minmax(132px,148px) !important;
      grid-template-rows:auto auto auto !important;
      column-gap:12px !important;
      align-items:start !important;
    }
    .footer .foot-grid > div:first-child > .brand,
    .footer .foot-grid > div:first-child > p,
    .footer .foot-grid > div:first-child > .foot-contact{
      grid-column:1 !important;
      min-width:0 !important;
    }
    .footer .foot-grid > div:first-child > .brand{grid-row:1 !important;}
    .footer .foot-grid > div:first-child > p{grid-row:2 !important;}
    .footer .foot-grid > div:first-child > .foot-contact{grid-row:3 !important;}
    .footer .foot-grid > div:first-child > .foot-socials{
      grid-column:2 !important;
      grid-row:3 !important;
      align-self:start !important;
      display:grid !important;
      grid-template-columns:repeat(4,31px) !important;
      justify-content:end !important;
      align-content:start !important;
      gap:8px !important;
      margin:0 !important;
    }
    .footer .foot-socials a{
      width:31px !important;
      height:31px !important;
      min-width:31px !important;
      display:grid !important;
      place-items:center !important;
      margin:0 !important;
    }
    .footer .foot-socials svg.ic{
      width:16px !important;
      height:16px !important;
    }
  }
  @media(max-width:380px){
    .footer .foot-grid > div:first-child{grid-template-columns:minmax(0,1fr) 132px !important;column-gap:8px !important;}
    .footer .foot-grid > div:first-child > .foot-socials{grid-template-columns:repeat(4,27px) !important;gap:6px !important;}
    .footer .foot-socials a{width:27px !important;height:27px !important;min-width:27px !important;}
    .footer .foot-socials svg.ic{width:14px !important;height:14px !important;}
  }

/* ---- from includes/footer.php ---- */
#as-chat-bubble{position:fixed;right:18px;bottom:18px;width:56px;height:56px;border-radius:50%;border:0;background:var(--primary,#0e83c7);box-shadow:var(--shadow-lg,0 24px 60px rgba(10,36,51,.18));cursor:pointer;z-index:10080;display:flex;align-items:center;justify-content:center;transition:transform .15s ease}
#as-chat-bubble:hover{transform:scale(1.06)}
#as-chat-bubble svg{width:26px;height:26px;fill:#fff}
#as-chat-bubble.as-chat-hidden{display:none}
.as-chat-panel{position:fixed;right:18px;bottom:18px;width:360px;max-width:calc(100vw - 24px);height:520px;max-height:calc(100vh - 40px);background:#fff;border-radius:var(--radius,14px);box-shadow:var(--shadow-lg,0 24px 60px rgba(10,36,51,.18));display:none;flex-direction:column;overflow:hidden;z-index:10085;font-size:15px}
.as-chat-panel.as-chat-open{display:flex}
.as-chat-head{background:var(--primary,#0e83c7);color:#fff;padding:12px 14px;display:flex;align-items:center;justify-content:space-between}
.as-chat-head-t{display:flex;flex-direction:column;gap:2px}
.as-chat-head-t span{font-size:12px;opacity:.85}
.as-chat-close{background:none;border:0;color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:0 4px}
.as-chat-list{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--sky-2,#f4fafe)}
.as-chat-msg{max-width:85%;padding:9px 12px;border-radius:12px;white-space:pre-wrap;word-wrap:break-word;line-height:1.45}
.as-chat-user{align-self:flex-end;background:var(--primary,#0e83c7);color:#fff;border-bottom-right-radius:4px}
.as-chat-assistant{align-self:flex-start;background:#fff;border:1px solid var(--line,#d4e7f3);color:var(--ink,#0a2433);border-bottom-left-radius:4px}
.as-chat-typing{opacity:.6;letter-spacing:3px}
.as-chat-inputrow,.as-chat-lead{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line,#d4e7f3);background:#fff}
.as-chat-input{flex:1;border:1px solid var(--line,#d4e7f3);border-radius:10px;padding:9px 11px;font-size:16px;min-width:0}
.as-chat-send{background:var(--primary,#0e83c7);color:#fff;border:0;border-radius:10px;padding:9px 14px;font-weight:600;cursor:pointer}
.as-chat-send:disabled{opacity:.6}
.as-chat-actions{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line,#d4e7f3);background:#fff;flex-wrap:wrap;justify-content:center}
.as-chat-act{flex:1 1 auto;min-width:max-content;text-align:center;font-size:12.5px;line-height:1.2;padding:7px 10px;border:1px solid var(--line,#d4e7f3);border-radius:9px;background:#fff;color:var(--primary-dk,#0a6299);text-decoration:none;cursor:pointer;white-space:nowrap}
@media(max-width:520px){.as-chat-panel{right:0;bottom:0;width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0}.as-chat-head{padding-top:calc(12px + env(safe-area-inset-top))}.as-chat-actions{padding-bottom:calc(8px + env(safe-area-inset-bottom))}}
.as-chat-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.as-chat-chip{font-size:13px;padding:7px 11px;border:1px solid var(--primary,#0e83c7);border-radius:16px;background:#fff;color:var(--primary-dk,#0a6299);cursor:pointer;line-height:1.2}
.as-chat-chip:hover{background:var(--sky,#eaf5fc)}
#as-chat-nudge{position:fixed;right:84px;bottom:30px;max-width:210px;background:#fff;color:var(--ink,#0a2433);padding:10px 32px 10px 13px;border-radius:12px;box-shadow:var(--shadow-lg,0 24px 60px rgba(10,36,51,.18));font-size:14px;line-height:1.35;z-index:10081;cursor:pointer;animation:asNudgeIn .25s ease}
#as-chat-nudge:after{content:"";position:absolute;right:-7px;bottom:16px;border:7px solid transparent;border-left-color:#fff;border-right:0}
#as-chat-nudge .as-nudge-x{position:absolute;top:5px;right:7px;font-size:15px;color:#8aa;line-height:1;padding:2px;border:0;background:none;cursor:pointer}
@keyframes asNudgeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:520px){#as-chat-nudge{display:none}}

/* keep labelled phone numbers on one line (Oct 2026) */
.footer .foot-contact a{white-space:nowrap}
