/* Canon: docs/NewSite/CONTRACT.md. Shell geometry is shared; child pages must not override it with feature selectors. */
/* Shared docked navigation geometry for the new site pages. */
.site-sidebar-layout {
  display: flex;
  gap: var(--site-layout-gap);
  padding-inline: var(--site-layout-gap);
}
.site-sidebar-layout > .menu-overlay {
  display: block;
  position: sticky;
  inset: var(--site-layout-gap) auto auto;
  transform: none;
  align-self: flex-start;
  flex: 0 0 var(--site-menu-width);
  width: var(--site-menu-width);
  box-sizing: border-box;
  height: auto;
  max-height: calc(100dvh - 2 * var(--site-layout-gap));
  margin: var(--site-layout-gap) 0;
  border: 1px solid var(--accent-border);
  border-radius: var(--panel-radius);
  box-shadow: none;
  overflow: auto;
  z-index: var(--layer-menu);
}
.site-sidebar-layout > .menu-overlay .mobile-header {
  display: none;
}

.page-container.site-menu-docked #hamburgerBtn {
  display: none !important;
}

/* Shared page canvas and breadcrumb approach spacing. */
.page-container {
  background: var(--panel-bg);
}
.page-container:not(.full-mode) .page-content {
  padding-top: var(--site-layout-gap);
  padding-inline: var(--site-layout-gap);
}
.page-container:not(.full-mode) .site-sidebar-layout > .page-content {
  padding-inline: 0;
}

/* Structural contract for pages hosted by SiteShell.master. */
.site-master .page-container {
  width: 100%;
  max-width: var(--site-shell-max-width);
  margin-inline: auto;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  container-type: inline-size;
}
.site-master #siteLayout {
  display: flex;
  flex: 1;
}
.site-master main.page-content {
  flex: 1;
  min-width: 0;
  padding-bottom: var(--site-layout-gap);
}

/* Match the docked content geometry while the menu controller initializes. */
@container (min-width: 1100px) {
  .site-master.site-menu-preferred
    .page-container:not(.site-menu-docked)
    #siteContent {
    margin-inline: calc(var(--site-menu-width) + 2 * var(--site-layout-gap))
      var(--site-layout-gap);
    padding-inline: 0;
  }
}

/* Master content form is structural, not a visual layout box. */
#siteForm {
  display: contents;
}

/* Hamburger state must reveal the overlay when the menu is not docked. */
.page-container.menu-open .menu-overlay{display:block;z-index:var(--layer-menu)}

/* Explicit WebView content mode: shell chrome is omitted server-side. */
.site-content-only.site-menu-preferred .page-container #siteContent { margin-inline:0; padding-inline:var(--site-layout-gap); }
