/* /css/chrome.min.css (HEADER + FOOTER ONLY)
   - DOES NOT style generic .btn globally
   - Fixes container collision from location.min.css
   - Restores + styles “To Top” button
   - Fixes Lighthouse SEO “Links do not have descriptive text”
*/

:root{
  --accent:#bb9b49;
  --ink:#0a272c;
  --bg-dark:#0a272c;
  --bg-header:#0b0b0b;
  --text:#111;
  --muted:#666
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5;color:var(--text);background:#fff}
img{max-width:100%;height:auto;display:block}

/* neutral utilities used by header/footer markup */
.d-flex{display:flex}
.animate{animation:none!important}
.c-gutter-30{gap:30px}
.c-mb-20{margin-bottom:20px}
.container-px-0{padding-left:0;padding-right:0}

/* minimal grid */
.container,.container-fluid{width:100%;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}
.container{max-width:1200px}
.row{display:flex;flex-wrap:wrap;margin-left:-16px;margin-right:-16px}
.row>[class*="col-"]{padding-left:16px;padding-right:16px}
.align-items-center{align-items:center}
.justify-content-center{justify-content:center}
.text-center{text-align:center}
.text-right{text-align:right}
.mb-10{margin-bottom:10px}
.fs-14{font-size:14px}
.d-none{display:none!important}
@media (min-width:992px){.d-lg-block{display:block!important}.text-lg-left{text-align:left!important}}
@media (min-width:1200px){.d-xl-block{display:block!important}}

.col-lg-3,.col-lg-6,.col-lg-12,.col-md-12,.col-xl-12{flex:0 0 100%;max-width:100%}
@media (min-width:992px){
  .col-lg-3{flex:0 0 25%;max-width:25%}
  .col-lg-6{flex:0 0 50%;max-width:50%}
  .col-lg-12{flex:0 0 100%;max-width:100%}
}
@media (min-width:1200px){.col-xl-12{flex:0 0 100%;max-width:100%}}

.s-pt-15{padding-top:15px}
.s-pb-15{padding-bottom:15px}
.s-pb-35{padding-bottom:35px}
.s-pt-30{padding-top:30px}
.s-py-5{padding-top:5px;padding-bottom:5px}
.s-pb-md-70,.s-pt-md-45,.s-pb-xl-30,.s-pt-xl-80{}

.ls{background:#fff}
.ds{background:var(--bg-dark);color:#fff}
.bg-maincolor4{background:var(--bg-header);color:#fff}
.color-main4{color:var(--accent)}

/* HARD OVERRIDE: prevent town CSS from pushing header/footer with margin:42px */
.page_toplogo .container,
.page_toplogo .container-fluid,
.page_header .container,
.page_header .container-fluid,
.page_footer .container,
.page_footer .container-fluid,
.page_copyright .container,
.page_copyright .container-fluid{margin:0 auto !important}

/* ========================= */
/* RESTORE + STYLE “TO TOP”  */
/* Arrow-only (visual), but keeps accessible name (Lighthouse-safe) */
/* ========================= */
.toTop,.to-top,#toTop,.totop,a.toTop,a.to-top{
  position:fixed;
  right:16px;
  bottom:96px; /* sits above mobile sticky CTA */
  z-index:10000;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  width:46px;
  height:46px;
  border-radius:12px;

  text-decoration:none;
  background:rgba(0,0,0,.86);
  color:#fff;
  border:1px solid rgba(187,155,73,.45);
  box-shadow:0 10px 22px rgba(0,0,0,.25);

  /* Hide any visible text WITHOUT font-size:0 */
  overflow:hidden;
  white-space:nowrap;
  text-indent:200%; /* pushes “To Top” off-screen visually */
  font-size:12px;   /* keep non-zero to avoid “no discernible text” edge cases */
  line-height:1;

  /* ensures pseudo-element can center reliably */
  position:fixed;
}

.toTop::before,.to-top::before,#toTop::before,.totop::before,a.toTop::before,a.to-top::before{
  content:"↑";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;

  font-size:18px;
  font-weight:900;
  line-height:1;

  /* make sure arrow is visible even when text is indented */
  text-indent:0;
}

/* Kill any theme-injected label text via pseudo-elements */
.toTop::after,.to-top::after,#toTop::after,.totop::after,a.toTop::after,a.to-top::after{
  content:"" !important;
}

.toTop:hover,.to-top:hover,#toTop:hover,.totop:hover,a.toTop:hover,a.to-top:hover{
  color:var(--accent);
  border-color:rgba(187,155,73,.85);
}

@media (max-width:768px){
  .toTop,.to-top,#toTop,.totop,a.toTop,a.to-top{bottom:104px}
}


/* ============================ HEADER ============================ */
.page_toplogo{border-bottom:1px solid rgba(0,0,0,.08)}
.page_toplogo a{color:#111;text-decoration:none}
.page_toplogo a:hover{text-decoration:underline;text-underline-offset:2px}
.toplogo-brand .logo.toplogo-logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.logo-wrap{display:inline-block;line-height:0}
.header-media{padding:0 16px}

.page_header{position:relative;z-index:3000}
.nav-wrap.header-main{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:64px}
.logo.logo-ds{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.top-nav{flex:1}
.nav.sf-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:center;gap:18px}
.nav.sf-menu>li{position:relative}
.nav.sf-menu>li>a{display:inline-flex;align-items:center;gap:6px;padding:18px 10px;color:#fff;text-decoration:none;font-weight:900;letter-spacing:.2px}
.nav.sf-menu>li>a:hover{color:var(--accent)}
.nav.sf-menu>li.active>a{color:var(--accent)}
.sub-arrow{display:inline-block;margin-left:6px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #fff;vertical-align:middle}

/* dropdowns */
#nav-services .services-mega-menu{
  display:none;position:absolute;top:100%;left:0;background:#fff;padding:0;border-radius:10px;min-width:320px;
  box-shadow:0 14px 34px rgba(0,0,0,.22);z-index:4000;overflow:hidden
}
#nav-services:hover>.services-mega-menu,#nav-services:focus-within>.services-mega-menu{display:block}
#nav-services .services-mega-menu li{list-style:none;margin:0;border-bottom:1px solid rgba(0,0,0,.08)}
#nav-services .services-mega-menu li:last-child{border-bottom:none}
#nav-services .services-mega-menu a{color:#111;text-decoration:none;font-size:15px;display:block;padding:10px 14px;white-space:nowrap}
#nav-services .services-mega-menu a:hover{background:rgba(187,155,73,.10)}

#nav-areas .areas-mega-menu{
  position:absolute;top:100%;left:0;min-width:780px;max-width:calc(100vw - 32px);
  background:#fff;z-index:4000;display:none;padding:18px;border-radius:12px;
  box-shadow:0 14px 34px rgba(0,0,0,.22)
}
#nav-areas:hover>.areas-mega-menu,#nav-areas:focus-within>.areas-mega-menu{display:block}
#nav-areas .mega-menu-content{display:flex;flex-wrap:wrap;gap:14px}
#nav-areas .city-column{flex:1;min-width:180px}
#nav-areas .city-list{list-style:none;padding:0;margin:0}
#nav-areas .city-list li{margin:0}
#nav-areas .city-list a{color:#111;text-decoration:none;display:block;padding:8px 0}
#nav-areas .city-list a:hover{color:var(--accent)}

/* socials */
.top-includes{list-style:none;margin:0;padding:0}
.top-includes .social-icons{display:inline-flex;gap:10px;align-items:center}
.top-includes .social-icons a{
  color:#fff;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:10px;border:1px solid rgba(187,155,73,.25);text-decoration:none
}
.top-includes .social-icons a:hover{border-color:rgba(187,155,73,.75);color:var(--accent)}

/* scoped header/footer buttons only */
.page_toplogo .btn,
.page_header .btn,
.page_footer .btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none;
  border-radius:10px;padding:10px 14px;font-weight:800;line-height:1.1;cursor:pointer;border:2px solid transparent
}
.page_toplogo .btn:focus-visible,
.page_header .btn:focus-visible,
.page_footer .btn:focus-visible{outline:3px solid rgba(187,155,73,.55);outline-offset:2px}
.page_toplogo .btn-maincolor,
.page_header .btn-maincolor,
.page_footer .btn-maincolor{background:var(--accent);color:#111;border-color:var(--accent)}
.page_toplogo .btn-outline-maincolor,
.page_header .btn-outline-maincolor,
.page_footer .btn-outline-maincolor{background:transparent;color:var(--accent);border-color:var(--accent)}
.page_toplogo .btn-outline-maincolor:hover,
.page_header .btn-outline-maincolor:hover,
.page_footer .btn-outline-maincolor:hover{background:rgba(187,155,73,.08)}

/* mobile menu */
.toggle_menu{
  display:none;position:absolute;right:14px;top:14px;width:44px;height:44px;border-radius:12px;
  border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.35);cursor:pointer;z-index:5000
}
.toggle_menu>span,.toggle_menu>span:before,.toggle_menu>span:after{content:"";position:absolute;left:11px;right:11px;height:2px;background:#fff;border-radius:2px}
.toggle_menu>span{top:21px}
.toggle_menu>span:before{top:-7px}
.toggle_menu>span:after{top:7px}

@media (max-width:991px){
  .toggle_menu{display:block}
  .nav.sf-menu{display:none}
  .top-includes{display:none!important}
  .nav-wrap.header-main{justify-content:flex-start}
  .top-nav{flex:0}

  body.menu-open .nav.sf-menu,
  body.mobile-active .nav.sf-menu,
  body.active .nav.sf-menu,
  .page_header.mobile-active .nav.sf-menu,
  .page_header.active .nav.sf-menu,
  .toggle_menu.active ~ .container-fluid .nav.sf-menu{display:block}

  body.menu-open .top-nav,
  body.mobile-active .top-nav,
  .page_header.mobile-active .top-nav,
  .page_header.active .top-nav{
    position:fixed;inset:0;background:rgba(0,0,0,.92);padding:86px 22px 22px;z-index:4500
  }

  body.menu-open .nav.sf-menu,
  body.mobile-active .nav.sf-menu,
  .page_header.mobile-active .nav.sf-menu,
  .page_header.active .nav.sf-menu{
    flex-direction:column;align-items:flex-start;gap:0;margin:0
  }

  .nav.sf-menu>li{width:100%}
  .nav.sf-menu>li>a{width:100%;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.10)}
  .sub-arrow{border-top-color:#fff}

  #nav-services .services-mega-menu,
  #nav-areas .areas-mega-menu{
    position:static!important;width:100%!important;min-width:0!important;max-width:none!important;
    background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important;display:none
  }
  #nav-services.sfHover>.services-mega-menu,
  #nav-services:focus-within>.services-mega-menu{display:block!important}
  #nav-areas.sfHover>.areas-mega-menu,
  #nav-areas:focus-within>.areas-mega-menu{display:block!important}
  #nav-services .services-mega-menu li{border-bottom:1px solid rgba(255,255,255,.10)}
  #nav-services .services-mega-menu a,
  #nav-areas .areas-mega-menu a{
    color:#fff!important;padding:12px 0!important;font-size:16px!important;text-decoration:none!important;
    display:block!important;white-space:normal!important
  }
  #nav-areas .mega-menu-content{display:block!important}
  #nav-areas .city-column{padding:0!important;min-width:0!important}
  #nav-areas .city-list li{margin:0!important;border-bottom:1px solid rgba(255,255,255,.10)}
  #nav-areas .city-list a:hover{color:var(--accent)!important}
}

/* ============================ FOOTER ============================ */
.page_footer{background:var(--bg-dark);color:#fff;padding:30px 0}
.page_footer .widget-title{color:#fff;font-weight:900;margin:0 0 12px;font-size:18px;line-height:1.2}
.page_footer p{margin:0 0 12px;color:rgba(255,255,255,.90)}
.page_footer a{color:rgba(255,255,255,.92);text-decoration:none}
.page_footer a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.page_footer ul{list-style:none;margin:0;padding:0}
.page_footer li{margin:0 0 8px}
.page_footer .row{gap:0;align-items:flex-start}
.page_footer .col-lg-3{margin-top:10px}
@media (min-width:992px){.page_footer .col-lg-3{padding-top:10px;padding-bottom:10px;margin-top:0}}

.widget_icons_list .icon-inline{display:flex;gap:10px;align-items:flex-start;margin:0 0 10px}
.widget_icons_list .icon-inline p{margin:0;color:rgba(255,255,255,.90)}
.widget_icons_list .icon-styled{flex:0 0 auto}
.widget_icons_list a{word-break:break-word}

.map-container{border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.10)}
.page_footer .map-container{height:250px}
.page_footer .map-container iframe{display:block;width:100%;height:100%;border:0}
.page_footer img[alt*="BIPDT"]{max-width:350px;margin-left:auto;margin-right:auto}

/* copyright */
.page_copyright{background:var(--bg-dark);color:rgba(255,255,255,.88);padding:12px 0}
.border-top-color{border-top:1px solid rgba(255,255,255,.12);padding-top:10px}
.page_copyright p{margin:6px 0;font-size:14px}
.page_copyright a{color:rgba(255,255,255,.92)}
.page_copyright a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.page_copyright .container{max-width:1200px}
.page_copyright .row{justify-content:center}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* ===== Header: moved from header.php inline styles (PERF-LITE safe) ===== */
.toplogo-brand .logo.toplogo-logo,
.logo.logo-ds{
  display:inline-flex;
  align-items:center;
  gap:12px;
  position:relative;
  text-decoration:none;
}
.logo-wrap{position:relative;display:inline-block;line-height:0;}
.header-logo-img{
  display:block;
  width:110px;
  height:69px;
  object-fit:contain;
}
.toplogo-badge{
  display:inline-flex;
  align-items:center;
  line-height:0;
  margin-left:10px;
}
.header-badge-img{
  display:block;
  width:175px;
  height:auto;
  max-width:175px;
  border-radius:14px;
  aspect-ratio:263/126;
}

/* top contact lines (replaces inline p styles) */
.header-contact-line{
  font-size:17px;
  margin:0;
}

/* dropdown arrow */
.menu-item{position:relative;}
.sub-arrow{
  display:inline-block;
  margin-left:6px;
  width:0;height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:6px solid #fff;
  vertical-align:middle;
}

/* DESKTOP: dropdowns */
#nav-services .services-mega-menu{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  background:#fff;
  padding:0;
  border-radius:8px;
  width:max-content;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
  z-index:1000;
}
#nav-services:hover>.services-mega-menu,
#nav-services:focus-within>.services-mega-menu{display:block;}
#nav-services .services-mega-menu li{list-style:none;margin:0;border-bottom:1px solid #ddd;}
#nav-services .services-mega-menu li:last-child{border-bottom:none;}
#nav-services .services-mega-menu a{
  color:#000;
  text-decoration:none;
  font-size:15px;
  display:block;
  padding:8px 12px;
  white-space:nowrap;
}

#nav-areas .areas-mega-menu{
  position:absolute;
  top:100%;
  left:0;
  min-width:700px;
  background:#fff;
  z-index:1000;
  display:none;
  padding:20px;
  box-shadow:0 5px 15px rgba(0,0,0,.3);
  border-radius:8px;
}
#nav-areas:hover>.areas-mega-menu,
#nav-areas:focus-within>.areas-mega-menu{display:block;}
#nav-areas .mega-menu-content{display:flex;flex-wrap:wrap;}
#nav-areas .city-column{flex:1;padding:0 15px;min-width:180px;}
#nav-areas .city-list{list-style:none;padding:0;margin:0;}
#nav-areas .city-list li{margin-bottom:8px;}
#nav-areas .city-list a{
  color:#000;
  text-decoration:none;
  display:block;
  padding:5px 0;
  word-break:break-word;
}
#nav-areas .city-list a:hover{color:#bb9b49;}

/* MOBILE: old overlay behaviour */
@media (max-width: 991px){
  #nav-services .services-mega-menu,
  #nav-areas .areas-mega-menu{
    position:static !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    background:transparent !important;
    box-shadow:none !important;
    padding:0 !important;
    border-radius:0 !important;
    display:none;
  }
  #nav-services.sfHover > .services-mega-menu,
  #nav-services:focus-within > .services-mega-menu{display:block !important;}
  #nav-areas.sfHover > .areas-mega-menu,
  #nav-areas:focus-within > .areas-mega-menu{display:block !important;}

  #nav-services .services-mega-menu li{border-bottom:1px solid rgba(255,255,255,.12);}
  #nav-services .services-mega-menu a,
  #nav-areas .areas-mega-menu a{
    color:#fff !important;
    padding:12px 0 !important;
    font-size:16px !important;
    text-decoration:none !important;
    display:block !important;
    white-space:normal !important;
  }
  #nav-areas .mega-menu-content{display:block !important;}
  #nav-areas .city-column{padding:0 !important;min-width:0 !important;}
  #nav-areas .city-list li{margin:0 !important;border-bottom:1px solid rgba(255,255,255,.12);}
  #nav-areas .city-list a:hover{color:#bb9b49 !important;}
}

