/* One native navigation for every page. No script is needed to reveal links. */
.site-header { z-index:100; }
.site-header .hdr__in { gap:16px; min-height:78px; padding-block:12px; }
.site-header .hdr__logo { flex:none; }
.site-nav--desktop { display:flex; align-items:center; gap:4px; font-size:14px; }
.site-nav a, .site-nav summary { color:var(--ink); text-decoration:none; }
.site-nav--desktop>a, .site-nav__group>summary { display:flex; align-items:center; min-height:44px; padding:10px; white-space:nowrap; border-radius:3px; }
.site-nav a:hover, .site-nav summary:hover { background:var(--cream); color:var(--teal-deep); }
.site-nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:5px; }
.site-nav__group { position:relative; }
.site-nav__group>summary { cursor:pointer; list-style:none; gap:9px; }
.site-nav__group>summary::-webkit-details-marker { display:none; }
.site-nav__group>summary::after { content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); }
.site-nav__group[open]>summary { background:var(--cream); }
.site-nav__group[open]>summary::after { transform:rotate(225deg) translate(-2px,-1px); }
.site-nav__group:has(a[aria-current="page"])>summary { text-decoration:underline; text-underline-offset:5px; }
.site-nav__dropdown { position:absolute; top:100%; left:0; width:290px; max-height:calc(100dvh - 100px); overflow-y:auto; overscroll-behavior:contain; background:var(--paper); border:1px solid var(--line); box-shadow:0 8px 24px #15211f20; padding:8px; }
.site-nav__dropdown>a { display:flex; align-items:center; min-height:44px; padding:10px 12px; line-height:1.4; }
.site-nav__dropdown>a:first-child { border-bottom:1px solid var(--line); font-weight:650; }
.site-header .hdr__tel { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
.site-mobile, .site-header__contact { display:none; }
@media(max-width:1100px) {
  .site-nav--desktop, .site-header .hdr__tel { display:none; }
  .site-header .hdr__in { gap:8px; min-height:74px; }
  .site-header .site-header__contact { display:inline-flex; align-items:center; min-height:44px; padding:10px 8px; color:var(--ink); font-size:14px; font-weight:600; text-decoration:none; }
  .site-mobile { display:block; font-size:14px; }
  .site-mobile>summary { cursor:pointer; list-style:none; min-height:44px; display:flex; align-items:center; padding:10px 8px; color:var(--ink); border:1px solid var(--line); border-radius:3px; white-space:nowrap; }
  .site-mobile>summary::-webkit-details-marker { display:none; }
  .site-mobile__open { display:none; }
  .site-mobile[open] .site-mobile__closed { display:none; }
  .site-mobile[open] .site-mobile__open { display:inline; }
  .site-mobile[open]>summary { background:var(--ink); color:var(--paper); }
  .site-mobile__panel { position:absolute; top:100%; left:0; right:0; max-height:calc(100dvh - 80px); overflow-y:auto; overscroll-behavior:contain; background:var(--paper); border-block:1px solid var(--line); box-shadow:0 8px 24px #15211f20; padding:8px 26px 20px; }
  .site-mobile__panel a { display:flex; align-items:center; min-height:44px; padding:10px 8px; color:var(--ink); text-decoration:none; border-radius:3px; font-size:15px; line-height:1.45; }
  .site-mobile__panel a:hover { background:var(--cream); color:var(--teal-deep); }
  .site-mobile__panel a[aria-current="page"] { text-decoration:underline; text-underline-offset:4px; }
  .site-mobile__group { border-bottom:1px solid var(--line); padding-block:12px; margin-bottom:6px; }
  .site-mobile__heading { margin:0; padding:8px; font-size:13px; font-weight:700; color:var(--ink-2); }
  .site-mobile__group>a:first-of-type { font-weight:650; }
  body:has(#siteMobileMenu[open]) { overflow:hidden; }
}
@media(max-width:640px) { .site-mobile__panel { padding-inline:18px; } }
@media(max-width:400px) {
  .site-header .hdr__logo img { width:150px; }
  .site-header .hdr__in { gap:4px; }
  .site-header .site-header__contact { padding-inline:5px; font-size:13px; }
  .site-mobile { font-size:13px; }
  .site-mobile>summary { padding-inline:7px; }
  .site-mobile[open]>summary { font-size:12px; }
}
@media print { .site-nav, .site-mobile, .site-header__contact { display:none; } }
