/* Document-structure additions only - no visual change.

   The page titles and item titles became <h1>/<h2> so the document has a real
   heading outline. .contentTitle already sets font-size and weight, which beat
   the user-agent heading styles, but a <div> has no default margin and a
   heading does - without this reset the swap would push everything down. */
h1.contentTitle,
h2.contentTitle {
  margin: 0;
}

/* Available to screen readers and search engines, invisible on screen. */
.visuallyHidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* The press images now carry width/height attributes so their slot is reserved
   before the file loads - without which lazy-loading makes the page jump as you
   scroll. styles.css sets max-width:100% but no height, so the attribute would
   otherwise be taken literally and squash them. This restores the scaling that
   was already happening. */
.innerContent img {
  height: auto;
}

/* Background films, made to cover by CSS rather than by JavaScript.

   vide measures the element once when it initialises and sizes the <video> in
   JS. If the window is resized or zoomed afterwards it does not reliably
   recompute, so the film stays at the old viewport's size - or at its intrinsic
   300x150 - and black gaps open down the right and bottom. object-fit does the
   same job in CSS and holds at every size, on every resize, with no JS.
   styles.css is untouched; opacity:0.7 there still applies. */
.section .vide_bg {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-size: cover !important;
  background-position: 50% 50% !important;
}

.section video {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  transform: none !important;
  object-fit: cover;
}

/* Images must not swallow the click that advances the page.

   An <img> is draggable by default, so pressing one and moving even a few
   pixels before releasing fires dragstart and NO click at all - which is why
   clicking a press photo did nothing while clicking the space beside it worked.
   -webkit-user-drag covers Chrome, Safari and Edge; the draggable="false"
   attribute in the markup covers Firefox. Nothing about layout changes. */
.section img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  user-drag: none;
}

/* Exhibition titles that run more than one line: the venue name (first line)
   stays at contentTitle's own size, and each line after it steps down,
   closing the gap toward the size of the date/location text beneath it.
   em-based so it rides contentTitle's existing responsive sizes (50/30/25px)
   automatically - no separate media-query overrides needed. The steps land
   close to .contentElement's own sizes (30/20/15px) by the last line. */
.contentTitle .titleLine2 { font-size: 0.78em; }
.contentTitle .titleLine3 { font-size: 0.68em; }
.contentTitle .titleLine4 { font-size: 0.6em; }

/* Menu legibility.

   The menu numbers are white, and some frames of the films are close to white
   as well - the sky on the video page is the worst case - so on those frames
   the numbers could all but disappear. A faint dark shadow behind each one keeps
   them readable. Against the dark frames it is invisible, so those pages look
   as they always did. Applies on touch screens too: contrast is not a hover
   matter. */
.menuEl a {
  text-shadow:
    0 0 3px rgba(0, 0, 0, .65),
    0 0 10px rgba(0, 0, 0, .6),
    0 0 26px rgba(0, 0, 0, .45);
}
