/* The accepted home composition, isolated from service and document styles. */
:root { --shell-header-height: 76px; }
body .site-header.site-shell-header, body .site-footer.site-shell-footer { box-sizing: border-box; font: 400 16px/1.5 var(--font-main); color: var(--text); }
body .site-header.site-shell-header *, body .site-footer.site-shell-footer *, .site-shell-skip { box-sizing: border-box; }
body .site-header.site-shell-header {
  width: 100%; max-width: none; margin: 0; border-radius: 0; transform: none; box-shadow: none;
  position: fixed; inset: 0 0 auto; z-index: 70; display: grid;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  align-items: center; gap: clamp(14px, 2vw, 28px); min-height: var(--shell-header-height);
  padding: 8px max(var(--gutter), calc((100% - var(--content)) / 2)); border: 0; border-bottom: 1px solid var(--line);
  background: rgb(18 23 26 / 96%); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
body .site-header.site-shell-header::before, body .site-header.site-shell-header::after { content: none; }
body .site-header.site-shell-header .header-cta { box-shadow: none; transform: none; letter-spacing: normal; text-transform: none; }
body .site-header.site-shell-header .header-cta::before, body .site-header.site-shell-header .header-cta::after { content: none; }
body .site-header.site-shell-header a { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; text-decoration: none; }
body .site-header.site-shell-header .brand { display: inline-flex; min-width: 0; min-height: 44px; align-items: center; justify-self: start; gap: 10px; padding: 0; color: var(--text); font-weight: 400; }
body .site-header.site-shell-header .brand__mark { display: none; }
body .site-header.site-shell-header .brand__copy { display: grid; gap: 3px; }
body .site-header.site-shell-header .brand__name { font: 800 23px/1.1 var(--font-display); letter-spacing: -.025em; }
body .site-header.site-shell-header .brand__name-accent { color: var(--accent); }
body .site-header.site-shell-header .brand__tagline { color: var(--muted); font-size: 10px; line-height: 1.3; font-weight: 400; }
body .site-header.site-shell-header .desktop-nav { display: flex; min-width: 0; align-items: stretch; justify-content: center; gap: clamp(10px, 1vw, 18px); }
body .site-header.site-shell-header .desktop-nav a { --nav-link-inline-padding: clamp(3px,.35vw,7px); position: relative; display: inline-flex; min-height: 44px; align-items: center; padding: 0 var(--nav-link-inline-padding); color: var(--muted); font-size: 12px; font-weight: 700; line-height: 1.1; white-space: nowrap; }
body .site-header.site-shell-header .desktop-nav a::after { position: absolute; top: calc(50% + .55em + 4px); right: var(--nav-link-inline-padding); left: var(--nav-link-inline-padding); height: 1px; background: var(--accent); content: ""; transform: scaleX(0); transform-origin: center; transition: transform 180ms ease-out; }
body .site-header.site-shell-header .desktop-nav a:is(:hover,:focus-visible,.is-active) { color: var(--text); }
body .site-header.site-shell-header .desktop-nav a:is(:hover,:focus-visible,.is-active)::after { transform: scaleX(1); }
body .site-header.site-shell-header .desktop-nav__label--compact { display: none; }
body .site-header.site-shell-header .mobile-menu__links > a.is-active { color: var(--accent); }
body .site-header.site-shell-header .header-actions { display: flex; align-items: center; justify-self: end; gap: 16px; }
body .site-header.site-shell-header .header-phones { display: grid; gap: 2px; }
body .site-header.site-shell-header .header-phone { position: relative; display: grid; grid-template-columns: 15px max-content; min-height: 19px; align-items: center; gap: 4px; padding: 0 0 0 12px; color: var(--text); font-weight: 400; white-space: nowrap; }
body .site-header.site-shell-header .header-phone::before { position: absolute; top: 50%; left: 0; width: 1px; height: 16px; background: currentColor; content: ""; opacity: .35; transform: translateY(-50%); }
body .site-header.site-shell-header .header-phone .ui-icon { width: 14px; height: 14px; color: var(--accent); }
body .site-header.site-shell-header .header-phone__label { display: none; }
body .site-header.site-shell-header .header-phone__number { font-size: 12px; font-weight: 750; line-height: 1.3; white-space: nowrap; }
body .site-header.site-shell-header .header-cta { display: inline-flex; width: auto; min-width: 0; min-height: 46px; align-items: center; justify-content: center; gap: 7px; padding: 11px 20px; border: 1px solid transparent; border-radius: var(--radius-control); background: var(--accent); color: var(--accent-text); font: 800 16px/1.15 var(--font-main); text-align: center; white-space: nowrap; cursor: pointer; transition: background-color 160ms ease, transform 160ms ease; }
body .site-header.site-shell-header .header-cta:hover { background: var(--accent-hover); color: var(--accent-text); }
body .site-header.site-shell-header .header-cta:active { transform: translateY(1px); }
body .site-header.site-shell-header .header-cta .ui-icon { flex: none; width: 16px; height: 16px; }
body .site-header.site-shell-header .ui-icon { display: block; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body .site-header.site-shell-header .mobile-menu { display: none; }
body .site-header.site-shell-header .mobile-menu__toggle { font: inherit; gap: 9px; }
body .site-footer.site-shell-footer { position: static; width: 100%; max-width: none; margin: 0; border-radius: 0; box-shadow: none; padding: 32px 0 30px; border-top: 1px solid var(--line); background: var(--page); }
body .site-footer.site-shell-footer .page-shell { width: min(var(--content), calc(100% - var(--gutter) * 2)); margin-inline: auto; }
body .site-footer.site-shell-footer .site-footer__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr) minmax(200px,.6fr); gap: 26px; }
body .site-footer.site-shell-footer h2 { margin: 0 0 6px; color: var(--text); font: 700 22px/1.2 var(--font-display); }
body .site-footer.site-shell-footer p { max-width: 72ch; margin: 0 0 6px; color: var(--muted); font-size: 12px; line-height: 1.5; }
body .site-footer.site-shell-footer a { display: inline-flex; min-width: 0; min-height: 44px; align-items: center; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--text); font-size: 12px; font-weight: 400; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
body .site-footer.site-shell-footer a:hover { color: var(--accent); background: transparent; }
body .site-footer.site-shell-footer .site-footer__pages { display: flex; align-content: start; flex-wrap: wrap; gap: 0 15px; padding: 0; }
body .site-footer.site-shell-footer .site-footer__pages a { text-decoration: none; }
body .site-footer.site-shell-footer .site-footer__links { display: grid; align-content: start; gap: 0; margin: 0; }
body .site-footer.site-shell-footer .site-footer__links a { text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 4px; }
body .site-header.site-shell-header [hidden] { display: none !important; }
.site-shell-skip { position: fixed; z-index: 120; top: 8px; left: 8px; transform: translateY(-160%); display: flex; min-height: 44px; align-items: center; padding: 10px 14px; border-radius: var(--radius-control); background: var(--accent); color: var(--accent-text); }
.site-shell-skip:focus { transform: none; }
body:has(> .site-shell-header) > .legal-page, body.legal-page:has(> .site-shell-header) > main { padding-top: calc(var(--shell-header-height) + 32px); }
body.legal-page:has(> .site-shell-header) { padding-top: 0; }
body.page-not-found:has(> .site-shell-header) { display: flex; min-height: 100dvh; flex-direction: column; align-items: stretch; padding: 0; margin: 0; }
body.page-not-found:has(> .site-shell-header) > main { flex: 1; width: min(640px,calc(100% - var(--gutter) * 2)); margin: auto; padding: calc(var(--shell-header-height) + 64px) 0 64px; }
/* The local service navigator stays separate from the global header. */
body[data-page-type="service"] > .side-menu { position: fixed; z-index: 48; top: calc(var(--shell-header-height) + 16px); right: auto; left: 12px; display: grid; width: 112px; gap: 0; padding: 6px; border: 1px solid var(--line); border-radius: var(--radius-control); background: rgb(18 23 26 / 94%); }
body[data-page-type="service"] > .side-menu .side-menu__item { display: flex; min-height: 44px; align-items: center; padding: 6px; border-radius: var(--radius-control); color: var(--muted); font-size: 11px; line-height: 1.3; text-decoration: none; }
body[data-page-type="service"] > .side-menu .side-menu__item:is(:hover,:focus-visible,.is-active) { background: var(--surface); color: var(--accent); }
@media (max-width: 1599px) { body[data-page-type="service"] > .side-menu { display: none; } }
@media (min-width: 1101px) and (max-width: 1180px) {
  body .site-header.site-shell-header { padding-inline: var(--gutter); }
  body .site-header.site-shell-header .brand { gap: 6px; }
  body .site-header.site-shell-header .desktop-nav a { --nav-link-inline-padding: 2px; }
  body .site-header.site-shell-header .desktop-nav__label--full { display: none; }
  body .site-header.site-shell-header .desktop-nav__label--compact { display: inline; }
  body .site-header.site-shell-header .header-phone { padding-left: 9px; }
  body .site-header.site-shell-header .header-cta { padding-block: 9px; font-size: 13px; }
}
html.site-menu-open, html.site-menu-open body { overflow: hidden; }
@media (max-width: 1100px) {
  :root { --shell-header-height: 56px; }
  body .site-header.site-shell-header { grid-template-columns: minmax(0,1fr) 44px; min-height: 56px; padding: 4px var(--gutter); gap: 10px; }
  body .site-header.site-shell-header .desktop-nav, body .site-header.site-shell-header .header-actions { display: none; }
  body .site-header.site-shell-header .brand { gap: 7px; }
  body .site-header.site-shell-header .mobile-menu { display: block; margin: 0; line-height: 0; }
  body .site-header.site-shell-header .mobile-menu__toggle { display: inline-flex; width: 44px; height: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 6px; border: 0; border-radius: var(--radius-control); background: transparent; color: var(--text); font: inherit; cursor: pointer; }
  body .site-header.site-shell-header .mobile-menu__toggle > span:last-child { display: none; }
  body .site-header.site-shell-header .mobile-menu__bars { display: grid; width: 25px; gap: 6px; }
  body .site-header.site-shell-header .mobile-menu__bars span { height: 2px; background: currentColor; }
  body .site-header.site-shell-header .mobile-menu__panel {
    --menu-gutter: clamp(24px, 3.5vw, 36px);
    position: fixed; inset: 0 0 0 auto; width: clamp(340px, 50vw, 550px); height: 100dvh;
    max-width: 100%; max-height: none; margin: 0; padding: 0; border: 0; border-radius: 0;
    overflow-y: auto; overscroll-behavior: contain; background: var(--page); color: var(--text);
    font: 400 16px/1.5 var(--font-main); text-align: left;
    opacity: 0; transform: translateX(24px);
    transition: opacity 220ms ease, transform 220ms ease, display 220ms allow-discrete, overlay 220ms allow-discrete;
  }
  body .site-header.site-shell-header .mobile-menu__panel[open] { display: flex; flex-direction: column; opacity: 1; transform: translateX(0); }
  body .site-header.site-shell-header .mobile-menu__panel::backdrop { background: rgb(0 0 0 / 60%); opacity: 0; transition: opacity 220ms ease, display 220ms allow-discrete, overlay 220ms allow-discrete; }
  body .site-header.site-shell-header .mobile-menu__panel[open]::backdrop { opacity: 1; }
  body .site-header.site-shell-header .mobile-menu__head { position: sticky; top: 0; z-index: 1; display: flex; flex: none; min-height: 76px; align-items: center; justify-content: space-between; gap: 16px; padding: max(12px,env(safe-area-inset-top)) var(--menu-gutter) 12px; border-bottom: 1px solid var(--line); background: var(--page); }
  body .site-header.site-shell-header .mobile-menu__close { display: grid; flex: none; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: var(--radius-control); background: transparent; color: var(--text); cursor: pointer; }
  body .site-header.site-shell-header .mobile-menu__close .ui-icon { width: 22px; height: 22px; }
  body .site-header.site-shell-header .mobile-menu__body { display: flex; flex: 1; flex-direction: column; padding: 28px var(--menu-gutter) max(24px,env(safe-area-inset-bottom)); }
  body .site-header.site-shell-header .mobile-menu__eyebrow { margin: 0 0 12px; color: var(--muted); font: 500 12px/1.5 var(--font-main); }
  body .site-header.site-shell-header .mobile-menu__links { display: grid; gap: 0; padding: 0 0 28px; }
  body .site-header.site-shell-header .mobile-menu__links > a { display: flex; min-width: 0; min-height: 50px; align-items: center; padding: 8px 0; color: var(--text); font: 650 clamp(23px,3.2vw,30px)/1.2 var(--font-display); letter-spacing: -.02em; white-space: normal; overflow-wrap: anywhere; }
  body .site-header.site-shell-header .mobile-menu__links > a:is(:hover,:focus-visible) { color: var(--accent); }
  body .site-header.site-shell-header .mobile-menu__footer { margin-top: auto; padding-top: 24px; border-top: 1px solid var(--line); }
  body .site-header.site-shell-header .mobile-menu__phones { display: grid; gap: 0; }
  body .site-header.site-shell-header .mobile-menu__phones a { display: flex; min-height: 44px; align-items: center; color: var(--text); font: 600 16px/1.3 var(--font-main); }
  body .site-header.site-shell-header .mobile-menu__socials { display: flex; flex-wrap: wrap; gap: 4px 24px; padding-top: 12px; }
  body .site-header.site-shell-header .mobile-menu__socials a { display: inline-flex; min-height: 44px; align-items: center; color: var(--accent); font: 600 14px/1.4 var(--font-main); }
  body .site-header.site-shell-header .mobile-menu__panel :is(a,button):focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
  @starting-style {
    body .site-header.site-shell-header .mobile-menu__panel[open] { opacity: 0; transform: translateX(24px); }
    body .site-header.site-shell-header .mobile-menu__panel[open]::backdrop { opacity: 0; }
  }
}
@media (max-width: 620px) { body .site-header.site-shell-header .mobile-menu__panel { width: 100%; } }
@media (max-width: 620px) {
  body .site-header.site-shell-header .brand__name { font-size: 21px; }
  body .site-footer.site-shell-footer { padding: 24px 0; }
  body .site-footer.site-shell-footer .site-footer__grid { grid-template-columns: 1fr; gap: 6px; }
  body .site-footer.site-shell-footer h2 { font-size: 17px; }
  body .site-footer.site-shell-footer p { font-size: 12px; }
  body .site-footer.site-shell-footer .site-footer__links { display: flex; flex-wrap: wrap; gap: 0 13px; }
}
@media (prefers-reduced-motion: reduce) {
  body .site-header.site-shell-header *, body .site-header.site-shell-header *::after, body .site-header.site-shell-header .mobile-menu__panel::backdrop { transition: none; }
}
