/* Hierarchical service drawer, aligned with the V2 call-first header. */
.header-actions { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.header-phone-label { display:none; }
.menu-toggle, .menu-close { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; flex-shrink:0; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--navy); cursor:pointer; }
.menu-toggle[hidden] { display:none; }
.menu-toggle:hover, .menu-close:hover { background:var(--pale); }
.menu-toggle svg, .menu-close svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.menu-toggle:focus-visible, .menu-close:focus-visible { outline:3px solid #2866bc; outline-offset:4px; }
html { scrollbar-gutter:stable; }
html.has-service-menu, html.has-service-menu body { overflow:hidden; }
.service-menu { position:fixed; inset:0 0 0 auto; margin:0; width:min(100%,calc(420px + var(--menu-button-right,24px))); height:100%; height:100dvh; max-width:100%; max-height:100%; padding:0; border:0; background:#fff; color:var(--ink); box-shadow:-8px 0 40px #142b5526; transform:translateX(100%); transition:transform 260ms cubic-bezier(.22,.68,0,1); }
.service-menu.is-visible { transform:translateX(0); }
.service-menu::backdrop { background:#14243e00; transition:background-color 260ms ease; }
.service-menu.is-visible::backdrop { background:#14243e80; }
.service-menu[open] { display:flex; flex-direction:column; }
.menu-heading { position:relative; min-height:var(--menu-heading-height,110px); border-bottom:1px solid var(--line); flex-shrink:0; }
.menu-heading h2 { position:absolute; top:var(--menu-button-top,32px); left:24px; right:calc(var(--menu-button-right,24px) + var(--menu-button-width,46px) + 16px); display:flex; align-items:center; min-height:var(--menu-button-height,46px); margin:0; font-size:1.4rem; line-height:1.3; letter-spacing:0; }
.menu-close { position:absolute; top:var(--menu-button-top,32px); right:var(--menu-button-right,24px); width:var(--menu-button-width,46px); height:var(--menu-button-height,46px); }
.service-menu-nav { display:block; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:8px max(24px,var(--menu-button-right,24px)) 22px 24px; flex:1; }
.menu-group { border-bottom:1px solid var(--line); }
.menu-group summary { display:flex; align-items:center; gap:16px; list-style:none; min-height:64px; padding:18px 0; cursor:pointer; font-weight:700; font-size:1rem; line-height:1.45; }
.menu-group summary::-webkit-details-marker { display:none; }
.menu-group summary::after { content:'+'; margin-left:auto; flex-shrink:0; font-size:1.5rem; font-weight:400; }
.menu-group[open] summary::after { content:'−'; }
.menu-group.is-current summary { color:var(--blue); }
.menu-service-list { list-style:none; margin:0; padding:0 0 14px; }
.service-menu-nav .menu-service-list a { display:flex; align-items:center; gap:10px; min-height:48px; padding:10px 14px; border-radius:7px; font-size:1rem; font-weight:400; line-height:1.4; text-decoration:none; }
.service-menu-nav .menu-service-list a:hover { background:var(--pale); }
.service-menu-nav .menu-service-list a[aria-current="page"] { background:var(--pale); color:var(--blue); font-weight:700; }
.service-menu-nav .menu-service-list a[aria-current="page"]::before { content:'✓'; flex-shrink:0; }
.menu-page-links { display:flex; flex-wrap:wrap; gap:10px 24px; padding-top:18px; }
.service-menu-nav .menu-page-links a { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; color:var(--muted); text-decoration:underline; text-underline-offset:4px; }
.menu-footer { padding:18px max(24px,var(--menu-button-right,24px)) max(18px,env(safe-area-inset-bottom)) 24px; border-top:1px solid var(--line); background:#fff; flex-shrink:0; }
.menu-footer .call { max-width:none; min-height:68px; }
.footer-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:36px; margin-top:32px; padding:32px 0; border-top:1px solid var(--line); }
.footer-service-group h3 { margin:0 0 14px; color:var(--navy); font-size:1.0625rem; line-height:1.45; }
.footer-service-group ul { list-style:none; margin:0; padding:0; }
.footer-services a { display:flex; align-items:center; min-height:44px; padding:8px 0; color:var(--muted); font-size:1rem; font-weight:400; line-height:1.5; text-decoration:none; overflow-wrap:anywhere; }
.footer-services a:hover { color:var(--blue); text-decoration:underline; text-underline-offset:4px; }
.footer-services a[aria-current="page"] { color:var(--blue); font-weight:700; }
.footer-services a:focus-visible { outline:3px solid #2866bc; outline-offset:3px; border-radius:3px; }
@media(max-width:1100px) { .header-inner { gap:16px; } .header nav { gap:18px; } }
@media(max-width:700px) {
  .footer-services { grid-template-columns:1fr; gap:26px; padding:26px 0; }
  .footer-service-group h3 { margin-bottom:8px; }
  .header-inner { gap:10px; min-height:74px; }
  .header-actions { gap:8px; }
  .brand { gap:7px; }
  .brandmark { width:36px; height:36px; font-size:21px; border-radius:8px; }
  .brand b { font-size:.875rem; letter-spacing:0; }
  .brand small { font-size:.625rem; letter-spacing:2px; }
  .header-phone { gap:6px; padding:8px 10px; min-height:44px; background:var(--pale); border-radius:8px; font-size:.875rem; }
  .header-phone svg { width:17px; height:17px; }
  .header-phone-number { display:none; }
  .header-phone-label { display:inline; }
  .menu-toggle { width:44px; height:44px; }
  .menu-heading h2 { left:20px; }
  .service-menu-nav { padding-left:20px; padding-right:max(20px,var(--menu-button-right,20px)); }
  .menu-footer { padding-left:20px; padding-right:max(20px,var(--menu-button-right,20px)); }
}
@media(max-width:360px) { .header .brandmark { display:none; } .header-phone { padding-inline:8px; } }
@media(prefers-reduced-motion:reduce) { .service-menu, .service-menu::backdrop { transition:none; } }
