﻿/* Keep the shared website navigation visible while any page scrolls. */
  :root {
    --site-navigation-height: 100px;
  }

  html {
    scroll-padding-top: var(--site-navigation-height);
  }

  body {
    padding-top: var(--site-navigation-height);
  }

  #fixed-site-navigation {
    position: fixed;
    inset: 0 0 auto 0;
    width: 100%;
    z-index: 1000;
    isolation: isolate;
    background: #fff;
    max-height: 100dvh;
    overflow-y: auto;
    box-shadow: 0 3px 12px rgba(6, 15, 61, 0.25);
  }

  /* The wrapper owns the fixed position; avoid a second fixed header inside it. */
  #fixed-site-navigation > header,
  #fixed-site-navigation > nav {
    position: relative !important;
    inset: auto !important;
    margin-top: 0;
  }

/* Keep the Mass controls below the fixed site header. */
.page-mass #navigation,
.page-monitor #navigation {
  top: var(--site-navigation-height);
  z-index: 990;
}

#display {
  scroll-margin-top: calc(var(--site-navigation-height) + var(--guide-controls-height, 80px) + 16px);
}

@media print {
  #fixed-site-navigation { display: none; }
  body { padding-top: 0; }
}


/* Put the guide notes beside the heading, above both pictures. */
:is(.page-mass, .page-monitor) #display:has(#image-pair) {
  display: grid;
  grid-template-columns: minmax(180px, 0.85fr) minmax(0, 2.15fr);
  grid-template-rows: auto minmax(180px, 1fr);
  gap: 12px 20px;
  height: calc(100dvh - var(--site-navigation-height) - var(--guide-controls-height, 80px) - 24px);
  margin: 12px auto;
}

:is(.page-mass, .page-monitor) #section-heading {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  margin: 0;
}

:is(.page-mass, .page-monitor) #title {
  font-size: clamp(26px, 2.5vw, 40px);
  margin: 0;
}

:is(.page-mass, .page-monitor) #caption {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  padding: 12px 16px;
}

:is(.page-mass, .page-monitor) #caption p {
  font-size: 15px;
  line-height: 1.4;
  margin: 0 0 6px;
}

:is(.page-mass, .page-monitor) #caption #meaning {
  font-family: inherit;
  font-size: 17px;
}

:is(.page-mass, .page-monitor) #caption p:last-child {
  margin-bottom: 0;
}

:is(.page-mass, .page-monitor) #image-pair {
  grid-column: 1 / -1;
  grid-row: 2;
  min-height: 0;
  gap: 20px;
}

:is(.page-mass, .page-monitor) .image-panel {
  display: grid;
  grid-template-rows: auto minmax(90px, 1fr) auto;
  min-height: 0;
}

:is(.page-mass, .page-monitor) .image-panel img {
  height: 100%;
  min-height: 0;
  object-fit: contain;
}

:is(.page-mass, .page-monitor) .image-panel .panel-heading {
  padding: 8px 12px;
}

:is(.page-mass, .page-monitor) .image-panel figcaption {
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.4;
}

:is(.page-mass, .page-monitor) .image-panel figcaption p {
  margin: 0 0 4px;
}

@media (max-width: 700px) {
  :is(.page-mass, .page-monitor) #display:has(#image-pair) {
    height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
  }

  :is(.page-mass, .page-monitor) #section-heading {
    grid-column: 1;
    grid-row: 1;
  }

  :is(.page-mass, .page-monitor) #caption {
    grid-column: 1;
    grid-row: 2;
  }

  :is(.page-mass, .page-monitor) #image-pair {
    grid-column: 1;
    grid-row: 3;
  }

  :is(.page-mass, .page-monitor) .image-panel {
    grid-template-rows: auto auto auto;
  }

  :is(.page-mass, .page-monitor) .image-panel img {
    height: 260px;
  }
}

@media print {
  :is(.page-mass, .page-monitor) #display:has(#image-pair) {
    height: auto;
  }
}
