/* One shared navigation tree: one desktop line, compact menu on narrower screens. */
.site-header {
  height: auto;
  min-height: 160px;
  padding: .75rem clamp(1rem, 2vw, 2rem);
  gap: 1.25rem;
  align-items: center;
}
.site-header .brand { flex: 0 0 auto; }
.site-header .brand img { width: 136px; height: 136px; }
.site-header .menu-button { display: inline-flex; align-items: center; justify-content: center; }
.site-header #main-nav {
  position: absolute;
  inset: 100% 0 auto;
  display: none;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  max-height: calc(100svh - 160px);
  overflow-y: auto;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.site-header #main-nav.open { display: flex; }
.site-header #services-tree { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.site-header .nav-branch { position: relative; min-width: 0; border-bottom: 1px solid var(--line); }
.site-header .nav-branch-head { display: flex; align-items: center; gap: .5rem; white-space: normal; }
.site-header #main-nav > a,
.site-header #main-nav > a:not(.nav-contact),
.site-header .nav-branch-head > a {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: .8rem 0;
  font: 500 1.125rem/1.4 var(--sans);
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}
.site-header .nav-branch-head > a { flex: 1; }
.site-header .branch-toggle { width: 44px; height: 44px; flex: 0 0 44px; padding: 0; border: 0; }
.site-header .nav-children,
.site-header .nav-branch:hover .nav-children,
.site-header .nav-branch:focus-within .nav-children {
  display: none;
  position: static;
  min-width: 0;
  max-height: none;
  padding: 0 0 .75rem 1rem;
  margin: 0;
  border: 0;
  box-shadow: none;
  background: var(--paper);
}
.site-header .nav-branch.open .nav-children,
.site-header .nav-branch.open:hover .nav-children,
.site-header .nav-branch.open:focus-within .nav-children { display: flex; flex-direction: column; }
.site-header .nav-children a { min-height: 44px; padding: .65rem .5rem; font: 400 1rem/1.4 var(--sans); }
@media (min-width: 768px) {
  .site-header .brand img { width: 152px; height: 152px; }
  .site-header { min-height: 176px; }
  .site-header #main-nav { max-height: calc(100svh - 176px); }
}
/* Desktop navigation stays on ONE line. Never split utility/category rows. */
@media (min-width: 1024px) {
  .site-header { min-height:176px; padding-inline:.75rem; gap:.5rem; }
  .site-header .brand img { width:152px; height:152px; object-fit:contain; }
  .site-header .menu-button { display:none; }
  .site-header #main-nav, .site-header #main-nav.open {
    position:static; display:flex; flex-direction:row; flex-wrap:nowrap;
    flex:1; min-width:0; align-items:center; justify-content:space-between; gap:.25rem;
    padding:0; border:0; max-height:none; overflow:visible; background:transparent; box-shadow:none;
  }
  .site-header #services-tree { display:contents; }
  .site-header .nav-branch { flex:0 0 auto; border:0; }
  .site-header .nav-branch-head { gap:0; white-space:nowrap; }
  .site-header #main-nav > a, .site-header #main-nav > a:not(.nav-contact), .site-header .nav-branch-head > a {
    flex:0 0 auto; min-height:44px; padding:.5rem 0; border:0;
    font:500 1rem/1.4 var(--sans); white-space:nowrap; text-align:left;
  }
  .site-header .branch-toggle { width:16px; flex-basis:16px; height:44px; }
  .site-header .nav-children, .site-header .nav-branch:hover .nav-children, .site-header .nav-branch:focus-within .nav-children {
    position:absolute; top:100%; left:0; right:auto; width:300px;
    max-width:calc(100vw - 2rem); max-height:calc(100svh - 190px); overflow-y:auto;
    padding:.6rem; border:1px solid var(--line); box-shadow:0 14px 24px rgba(36,35,31,.12);
  }
  .site-header .nav-branch:last-child .nav-children { left:auto; right:0; }
  /* The category label itself exposes its subcategories on desktop. */
  .site-header .nav-branch:hover .nav-children,
  .site-header .nav-branch:focus-within .nav-children {
    display:flex;
    flex-direction:column;
  }
}
@media (min-width: 1600px) {
  .site-header { padding-inline:1.5rem; gap:1.5rem; }
  .site-header #main-nav { gap:.5rem; }
  .site-header #main-nav > a, .site-header #main-nav > a:not(.nav-contact),
  .site-header .nav-branch-head > a, .site-header .nav-children a { font-size:1.125rem; }
}

/* All seven destinations are direct links. No overflow/More menu. */
@media (min-width:1024px) and (max-width:1199px) {
  .site-header .brand img { width:136px; height:136px; }
  .site-header #main-nav > a, .site-header .nav-branch-head > a { letter-spacing:-.02em; }
}
@media (min-width:1360px) {
  .site-header { min-height:216px; padding-inline:1rem; gap:.75rem; }
  .site-header .brand img { width:192px; height:192px; }
  .site-header .branch-toggle { width:22px; flex-basis:22px; }
  .site-header .nav-children { max-height:calc(100svh - 232px); }
}
