/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}

@font-face {
  font-family: "Bevan";
  font-display: swap;
  src: local("Bevan"), url("/common/fonts/bevan.woff2?h=qFNRAB") format("woff2");
}

@font-face {
  font-family: "Rubik";
  font-display: swap;
  src: local("Rubik"), url("/common/fonts/rubik.woff2?h=Ls29VA") format("woff2");
}

/* Use sane border-box model for all boxes. Oterhwise, e.g. main-text is larger than its parent (main). */
*, *:before, *:after {
  box-sizing: border-box;
}

:root {
  --main-width: 100%;
  --main-max-width: 730px;
  --main-text-padding: 20px;  /* horizontal padding for main text */
  --title-indent: .5rem;  /* Indent of the <h1> heading */
  --h1-font-size: 2.6rem;
  --h2-font-size: 2rem;
  --h3-font-size: 1.7rem;
  --h4-font-size: 1.5rem;
  --h5-font-size: 1.3rem;
  --h6-font-size: 1rem;
  --menu-background: #1f1f1e;
  --menu-divider: #444;
  --bg-dark: #4b4a49;
  --bg-light: #f5f3ef;
  --font-dark: #020202;
  --yellow: #ffc82e;
  --red: #760000;
  --red-brown: #361304;
  --orange: #df7c20;
  --green: #5fb224;
  --turquoise: #2b7982;
  --metallic: #1c4C70;
  --grey: #666666;
  --light-grey: #c0c0c0;
  --very-light-grey: #e0e0e0;
}

@media (min-width: 400px) { /* Larger than mobile */
  :root {
    --main-width: 85%;
  }
}

@media (min-width: 550px) {  /* Larger than phablet */
  :root {
    --main-width: min(80%, var(--main-max-width));
    --h1-font-size: 3rem;
    --h2-font-size: 2.3rem;
    --h3-font-size: 1.9rem;
    --h4-font-size: 1.5rem;
    --h5-font-size: 1.3rem;
  }
}

:root {
  --main-offset: calc(50% - var(--main-width)/2);  /* the distance of the main text from the left border */
}

.hidden { display: none; }

/* Note: Default root font size is 16px. */
body {
  min-height: 100vh;
  line-height: 1.5;
  font-family: Rubik, Helvetica, Arial, sans-serif;
  background-color: var(--yellow);
  color: var(--font-dark);
}

img.background {
  position: absolute;
  right: 0;
  z-index: -1;
}

main-area {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100vh;  /* same as <body> */
  display: block;
  padding-top: 2rem;
  background-repeat: no-repeat;
  /* background-attachment: fixed; */
  background-position: top right;
  background-origin: content-box;
  padding-bottom: 2rem;  /* don't use margin, otherwise, it overflows the <body> */
}

photo-reel {
  display: none;
  position: absolute;
  top: 0;
  width: fit-content;
}

@media (min-width: 1020px) {  /* 1020px = 2*(logo width + 5px) + main-max-width */
  @media (min-width: 1170px) {  /* 1170px = 2*(photo reel width + gap) + main-max-width */
    /* Reel width is 200px (= width of the two reel images), gap to main area is 20px */
    photo-reel>img { display: block; }
    photo-reel { left: calc(var(--main-offset) - 220px); /* 220 = width + gap */ }
  }
  @media not all and (min-width: 1170px) {  /* non-HD-desktop */
    #logo { display: block; }
    #photosTop { display: none; }
    #photosBot { display: none; }
  }
  photo-reel { display: block; }
}

main {
  width: var(--main-width);
  margin: 0 auto;
}

main>main-text {
  display: block;
  width: 100%;
  padding: 12px var(--main-text-padding) 12px var(--main-text-padding);
  /* text-align: justify; */
  border-radius: 4px;  /* otherwise, get ugly corners sticking into shadow */
	box-shadow: 0px 0px 8px rgba(0,0,0,.6), 4px 0px 6px rgba(0,0,0,.6);
  background-color: var(--bg-light);
}

main>main-text,
.clearfix::after {
  content: "";
  clear: both;
  display: table;
}


/* ============ Headings & Paragraphs ============ */
p {
  margin-bottom: 1.5rem;
}
h1, h2, h3, h4, h5, h6, h-m {
  margin-top: 0;
  margin-bottom: 1.3rem;
  font-weight: 600;
}
h1 {
  font-family: Bevan, Georgia, Garamond, "Times New Roman", Times, serif;
  margin-left: var(--title-indent);
  margin-right: .5rem;
  color: var(--red);
  font-size: var(--h1-font-size);
  line-height: 1.2;
  letter-spacing: -.1rem;
}
h1-sub {
  font-size: var(--h3-font-size);
  color: var(--font-dark);
}
h2 {
  font-size: var(--h2-font-size);
  line-height: 1.2;
  letter-spacing: -.1rem;
}
h3 {
  font-size: var(--h3-font-size);
  line-height: 1.3;
  letter-spacing: -.1rem;
}
h4 {
  font-size: var(--h4-font-size);
  line-height: 1.3;
  letter-spacing: -.08rem;
}
h5, h-m {
  font-size: var(--h5-font-size);
  line-height: 1.4;
  letter-spacing: -.05rem;
}
h6 {
  font-size: var(--h6-font-size);
  line-height: 1.4;
}


/* ============ Title Bar & Menu ============ */
#menu-input {
  display: none;  /* hide input checkbox */
}

#menu-backdrop {
  display: none;
  position: absolute;
  background-color: rgba(0, 0, 0, .9);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

title-bar {
  position: relative;
  width: 100%;  /* Don't use 100vw as that would include the scrollbar if there is one. */
  min-height: 36px;
  padding: .1rem 0 .1rem 0;
  display: flex;
  align-items: center;
  justify-content: right;
  background-color: var(--red-brown);
  color: white;
}

title-bar>nav>a:hover { color: var(--turquoise); }

title-bar>a {
  flex: none;
  display: flex;
  align-items: center;
  margin-right: .5rem;
}

title-bar>nav>a {
  color: white;
  text-decoration: none;
  font-size: var(--h5-font-size);
  letter-spacing: -.05rem;
}

@media (min-width: 800px) {
  #menu-button {
    display: none;  /* hide hamburger menu */
  }

  title-bar>nav-spacer {
    flex: initial;
    width: calc(var(--main-offset) + var(--title-indent));
  }

  title-bar>nav {
    flex: auto;
    height: fit-content;
    white-space: nowrap;
    padding-right: 1rem;
  }

  title-bar>nav>a {
    margin-right: 1rem;
  }
}

@media not all and (min-width: 800px) {
  title-bar>nav {
    position: absolute;
    top: 100%;
    left: 0%;
    z-index: 2;
    background: var(--red-brown);
    display: grid;
    border-bottom: 1px solid var(--menu-divider);
    border-right: 1px solid var(--menu-divider);
  }

  title-bar>nav>a {
    width: 100%;
    padding: 1rem 0 1rem 0;
    border-top: 1px solid var(--menu-divider);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;  /* clip doesn't seem to work with Chrome */
  }

  title-bar>nav-spacer {
    flex: auto;
  }

  #menu-button {
    flex: none;
    display: grid;
    grid-row-gap: 20%;
    margin-left: .5rem;
    width: 32px;
    height: 24px;
  }

  #menu-button>div {
    background-color: white;
    border-radius: 20px;
    transition: transform 200ms ease-in-out;
  }

  #menu-button>#menu-top {transform-origin: 0% 0%; }
  #menu-button>#menu-bot {transform-origin: 0% 100%; }

  #menu-input:not(:checked)~title-bar nav {
    width: 0;
		transition: width 200ms ease-in;
  }

  #menu-input:checked~title-bar nav {
    width: 80%;
    transition: width 200ms ease-out;
  }

  #menu-input:checked~main-area #menu-backdrop {
    display: block;
  }

  /* 0.6435 = arctan(3/4) */
  #menu-input:checked~title-bar #menu-button #menu-top { transform: rotate(45deg) scale(0.92); }
  #menu-input:checked~title-bar #menu-button #menu-mid { transform: scaleY(0); }
  #menu-input:checked~title-bar #menu-button #menu-bot { transform: rotate(-45deg) scale(0.92); }
}


/* ============ Links ============ */
a { color: var(--turquoise); }
a:hover { color: var(--metallic); }

/* ============ Lists ============ */
ul { margin-bottom: 1.5ex; }
img-holder {
  display: flex;
  width: 100%;
  max-height: 100%;
  justify-content: center;
  /* margin-bottom: 1.5rem; */
}

/* ============ Images ============ */
img {
  max-width: 100%;
  max-height: 100%;
  display: block;  /* remove extra space below image */
  object-fit: contain;  /* preserve aspect-ratio */
}

/* ============ Misc ============ */
.floatLeft {
  float: left;
  margin-right: 1em;
  margin-bottom: 1ex;
}

.floatRight {
  float: right;
  margin-left: 1em;
  margin-bottom: 1ex;
}
