/* Shared header and footer presentation for homepage, service, and location pages. */
.utilbar{background:var(--surface);color:#f2f2f2;line-height:1.6}
.utilbar .wrap,
header.top .wrap,
footer .wrap{width:min(1120px,calc(100% - 56px));max-width:none;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}
.utilbar .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:7px;padding-bottom:7px;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;gap:8px}
.utilbar .r{color:var(--red);font-weight:600}
header.top{background:#fff;color:var(--ink);border-bottom:4px solid var(--red);position:sticky;top:0;z-index:50;box-shadow:0 10px 24px -6px rgba(0,0,0,.32);line-height:1.6}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px;flex-wrap:wrap;gap:16px}
header.top .brand{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;text-decoration:none}
header.top .brandmark{margin:0;line-height:0}
header.top .brandmark img{display:block;height:66px;width:auto}
header.top .slogan{display:block;font:600 italic 15px var(--serif);color:var(--red);margin-top:5px;letter-spacing:.3px}
header.top .headright{display:flex;flex-direction:row;align-items:center;gap:24px;flex-wrap:wrap;justify-content:flex-end}
header.top .headright .contact{order:1;display:flex;flex-direction:column;gap:4px;border-left:1px solid #d5d5d5;padding-left:16px}
header.top .contact a{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:13.5px;font-weight:600;letter-spacing:.2px;text-decoration:none}
header.top .contact a:hover{color:var(--slate)}
header.top .contact svg{width:15px;height:15px;flex:none;stroke:#8a8a8a}
header.top .toc{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
header.top .toc a{color:var(--slate);font-size:13.5px;font-weight:600;letter-spacing:1.2px;text-decoration:none;text-transform:uppercase;padding-bottom:3px;border-bottom:2px solid transparent}
header.top .toc a:hover{color:var(--ink);border-color:var(--red)}
header.top .dd{position:relative;display:inline-flex;align-items:center}
header.top .dd-trigger{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
header.top .dd .caret{transition:transform .2s ease}
header.top .dd-menu{position:absolute;top:100%;left:0;min-width:310px;max-height:70vh;overflow-y:auto;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);box-shadow:0 16px 36px rgba(0,0,0,.16);padding:6px 0;display:none;z-index:60}
header.top .dd:hover .dd-menu,
header.top .dd.open .dd-menu{display:block}
header.top .dd:hover .caret,
header.top .dd.open .caret{transform:rotate(180deg)}
header.top .toc .dd-menu a{display:block;padding:10px 20px;font-size:13.5px;letter-spacing:.3px;text-transform:none;font-weight:600;color:var(--slate);border-bottom:0}
header.top .toc .dd-menu a:hover{background:#f6f6f5;color:var(--ink);border-color:transparent}
header.top .toc .dd-menu a[aria-current="page"]{color:var(--red)}

.roofline{line-height:0;font-size:0;background:#fff}
.roofline svg{display:block;width:100%;height:104px}
footer{background:var(--ink);color:#a9a9a9;line-height:1.6}
footer .foot-top{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:38px 0;border-bottom:1px solid #333}
footer .foot-logo-panel{background:#fff;padding:22px 34px;display:inline-flex}
footer .lock-light{display:flex;flex-direction:column;align-items:center;text-align:center}
footer .lock-light img{height:66px;width:auto;display:block}
footer .lock-light span{font:600 italic 15px var(--serif);color:var(--red);margin-top:6px;letter-spacing:.3px}
footer .foot-badge{width:auto;background:var(--red);color:#fff;padding:16px 28px;text-align:center}
footer .fb-title{font:700 20px/1 var(--serif)}
footer .fb-sub{font-size:11px;letter-spacing:2px;text-transform:uppercase;margin-top:7px}
footer .foot{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:34px;padding:48px 0 36px}
footer .fcol h3{color:#fff;font:700 14px var(--serif);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:14px}
footer .fcol a{display:block;color:#bdbdbd;text-decoration:none;font-size:14px;padding:4px 0}
footer .fcol a:hover{color:#fff}
footer .fcol p{color:#a9a9a9;margin:4px 0;line-height:1.7}
footer .footbar{border-top:1px solid #333}
footer .footbar .wrap{display:flex;justify-content:space-between;gap:8px;padding-top:16px;padding-bottom:16px;font-size:12.5px;color:#8a8a8a;flex-wrap:wrap}
footer .footbar a{color:#aaa;text-decoration:none}
footer .footbar a:hover{color:#fff}

@media(max-width:900px){
  header.top .contact{display:none!important}
  footer .foot{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .utilbar .wrap,
  header.top .wrap,
  footer .wrap{width:min(1120px,calc(100% - 36px))}
  .utilbar .wrap{justify-content:center}
  .utilbar .wrap span:first-child{display:none}
  header.top .wrap{gap:6px;padding-top:10px;padding-bottom:10px;justify-content:center}
  header.top .brand{gap:0}
  header.top .brandmark img{height:44px}
  header.top .slogan{display:none}
  header.top .headright{width:100%;justify-content:center;gap:0}
  header.top .toc{justify-content:center;gap:13px}
  header.top .toc a{font-size:11.5px;letter-spacing:.6px}
  header.top .dd-menu{left:50%;transform:translateX(-50%);min-width:min(310px,calc(100vw - 36px))}
  footer .foot-top{flex-direction:column}
  footer .foot{grid-template-columns:1fr;gap:28px}
}

@media(prefers-reduced-motion:reduce){
  header.top .dd .caret{transition:none}
}
