:root {
  --bg: #eceada;
  --text: #330a0a;
  --feature-1: #798365;
  --feature-2: #a87110;
  --grey: grey;
}

/*========== Base Reset & Layout ==========*/
* {
  box-sizing: border-box;
  overscroll-behavior: none;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: 1em;
}

body {
  margin: 0;
  padding: 3em 0 .5em;
  font: 100%/1.6 'Lato', sans-serif;
  color: var(--text);
  background: var(--bg);
}

a {
  text-decoration: none;
  color: var(--text);
  transition: .2s;
}

h2 {
  width: 100%;
  margin: 0 0 1em;
  color: var(--feature-1);
  font-size: 1.5rem;
  text-align: center;
}

.content {
  margin: 0 auto;
  max-width: 50%;
}

.divider {
  display: block;
  margin: 3.5em auto 0;
  width: 200px;
}

/*========== Header Image ==========*/
.top-image {
  display: flex;
  justify-content: center;
}

.top-image img {
  max-width: 100%;
  margin: 1em auto 0;
}

/*========== Programme ==========*/
.title {
  display: block;
  line-height: initial;
}

.title em {
  color: var(--grey);
  font-size: smaller;
}

.title small {
  display: block;
  padding-left: 1em;
  line-height: 1.3;
  font-size: smaller;
}

.artist {
  display: block;
  margin-bottom: 1em;
  font-size: smaller;
  color: var(--feature-2);
}

.footnotes {
  line-height: initial;
  font-size: smaller;
  color: var(--grey);
}

/*========== Performers ==========*/
.role {
  margin-bottom: 5px;
  color: var(--feature-1);
  font-size: 1.1em;
  text-align: center;
}

.perf-photos {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  max-width: 320px;
  margin: 0 auto 3em;
}

.perf-photos figure {
  position: relative;
  margin: 0;
  max-height: 150px;
}

.perf-photos img {
  max-width: 150px;
  width: 100%;
  height: auto;
  display: block;
}

.perf-photos figcaption {
  position: absolute;
  inset: auto 0 0 0;
  background: rgba(51, 10, 10, 0.7);
  font-size: 0.8em;
  font-weight: bold;
  text-align: center;
  color: var(--bg);
}

/*========== Thank You ==========*/
.dn-box {
  border-image:  url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAwUlEQVQ4T9VV2xKFIAgE//+b5WAZZzF1GrSHmmmyYlcWuTARid7ceeon+1cMRA2L3XVduPZdTqOk4DwEINgR3TaqPCMPnZfocbNGO1OMckDZ2nIWoyhzjSkcSJSp4o4QYEwX+VymrHLd8Ca/Pe3oTiZ/K2Eh407iR720ytqbUlBRm+QnjWc+nHxD/rTrRGNbU4o1ccVtECb8VEXBQf0btWvEiVgydRvPvPOzEiryyahop0SX+GnnLzPH8nAwCazz/wBqdVUOtOMk9AAAAABJRU5ErkJggg==') 7 /  7px / 0 round;
  border-width:  7px;
  border-style:  solid;
  
  /*border-image:  url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAABVUlEQVR4AZTUW04CQRQE0M4I+OH+l+qHStR7LlOT5hEyJBb17GaIhGWM8RYsx9NfkCwsjw7LgmTYpcVjVHn+/fk+BHwX9ULLcdn+o2UB30W99KUCZfm+HAdzZ8Onw/FztwgF84CGuePBVk4H8en6SZVzwUNGdGAnj4+WJ9suVYLCIBrzz3IbsIGFcWiGTBnwepwM8/IZnaVkovGK9+JG9R/RKxeNUfmBwEBvH9+7JVS8Auecz5m+VKAQ0ngvsnc++u4rpdx7oZ19Love/lG3A34PXOgy2+j++EKBgsZ7kb3zm85hgSL+FXbO+ZzpJxWCMEwXvoLKP6NXLrr8EBHVn6E14V1myJQBr8fJMC+fIesnzUBAG0Vj/lluAzawXZqDV+Xx1L+xhoHd7UYnx3D3lRIGhvMFcl5OB/Hp+kmFAiMaB3w6zKfD8XPXl6ZUBBnP3aPs0f4fAAD//wBqbXAAAAAGSURBVAMAM2aBuP+EGQcAAAAASUVORK5CYII=') 7 /  7px / 0 round;
  border-width:  7px;
  border-style:  solid;*/
  background: var(--bg);
  text-align: center;
  font-weight: bold;
  width: fit-content;
  margin: 2em auto;
  padding: 1em;
}

.dn-box hr {
  border: none;
  border-top: 2px solid #bbb;
  margin: 0.3em auto;
}

.dn-box small {
  font-weight: lighter;
}

.dn-box input {
  border: none;
  background: var(--bg);
  color: var(--text);
  text-align: center;
  font-family: inherit;
  font-weight: bold;
  appearance: none;
}

.dn-box button {
  border: none;
  background: var(--feature-1);
  color: var(--bg);
  font-family: inherit;
  font-size: smaller;
  padding: .5em;
  margin-top: .5em;
  border-radius: 8px;
  cursor: pointer;
  appearance: none;
}

.tooltip {
  position: relative;
  display: inline-block;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 80px;
  background: rgba(255 255 255 / 0.7);
  color: var(--text);
  text-align: center;
  border-radius: 6px;
  padding: 5px;
  position: absolute;
  z-index: 1;
  bottom: 50%;
  left: 74%;
  margin-left: -75px;
  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}

.contact {
  margin-bottom: 2em;
}

.contact a {
  letter-spacing: .03em;
}

.contact a:hover {
  border-bottom: 2px solid var(--feature-1);
}

.enq {
  font-weight: bold;
  margin-bottom: .4em;
}

.jump-links {
  list-style-position: inside;
  width: fit-content;
  font-size: 1.1em;
  color: var(--feature-1);
  background: #dedbbf;
  border: 1px solid var(--feature-1);
  border-radius: 5px;
  margin: 0 auto;
  padding-left: 0;
}

.jump-links li {
  padding: 3px 15px;
  border-bottom: 1px solid var(--feature-1);
}

.jump-links li:last-child {
  border-bottom: none;
}

.jump-links a {
  color: var(--feature-1);
}

.jump-links a:hover {
  color: var(--text);
}

.copyright {
  text-align: center;
  font-size: 0.83em;
  color: var(--grey);
  margin-top: 3em;
}

.copyright a {
  color: var(--grey);
  border-bottom: 1px dotted;
}

.copyright a:hover {
  border-bottom-style: solid;
}

/*========== Ancillary ==========*/
@media screen and (max-width: 1000px) {
  body {
    font-size: 92%;
  }
  .content {
    margin: auto 1em;
    max-width: 100%;
  }
  .perf-photos {
    max-width: 100%;
  }
}