/* --------- CSS Reset --------- */

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* --------- /CSS Reset --------- */

/* --------- Global Style --------- */

html,
body {
  width: 100%;
  height: 100%;
  font-family: 'Open Sans', serif;
  color: #111;
  background-color: rgb(252, 251, 248);
}

.root {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.root.with-background {
  background-image: url("../images/bg1.jpg");
  background-size: cover;
  background-position: center;
}

header {
  /*box-shadow: rgba(0, 0, 0, 0.575) 0px 5px 10px;*/
  z-index: 10;
  position: absolute;
  text-shadow: #111 0px 0px 4px;
  color: #fff;
  width: 100%;
}

.banner-image {
  background-image: url("../images/bg1.jpg");
  background-size: cover;
  background-position: center;
  height: 350px;
}
.banner-image-1 {
  background-image: url("../images/bg1.jpg");
  background-position: center 30%;
}
.banner-image-2 {
  background-image: url("../images/bg2.jpg");
  background-position: center 35%;
}
.banner-image-3 {
  background-image: url("../images/bg3.jpg");
  background-position: center 70%;
}
.banner-image-4 {
  background-image: url("../images/bg4.jpg");
  background-position: center 30%;
}
.banner-image-5 {
  background-image: url("../images/bg5.jpg");
  background-position: center 40%;
}
.banner-image-6 {
  background-image: url("../images/bg6.jpg");
  background-position: center 40%;
}
.banner-image-7 {
  background-image: url("../images/bg7.jpg");
  background-position: center 40%;
}
@media only screen and (max-width: 1920px) {
  .banner-image-1 {
    background-image: url("../images/bg1-mid.jpg");
  }
  .banner-image-2 {
    background-image: url("../images/bg2-mid.jpg");
  }
  .banner-image-3 {
    background-image: url("../images/bg3-mid.jpg");
  }
  .banner-image-4 {
    background-image: url("../images/bg4-mid.jpg");
  }
  .banner-image-5 {
    background-image: url("../images/bg5-mid.jpg");
  }
  .banner-image-6 {
    background-image: url("../images/bg6-mid.jpg");
  }
  .banner-image-7 {
    background-image: url("../images/bg7-mid.jpg");
  }
}
@media only screen and (max-width: 1280px) {
  .banner-image-1 {
    background-image: url("../images/bg1-low.jpg");
  }
  .banner-image-2 {
    background-image: url("../images/bg2-low.jpg");
  }
  .banner-image-3 {
    background-image: url("../images/bg3-low.jpg");
  }
  .banner-image-4 {
    background-image: url("../images/bg4-low.jpg");
  }
  .banner-image-5 {
    background-image: url("../images/bg5-low.jpg");
  }
  .banner-image-6 {
    background-image: url("../images/bg6-low.jpg");
  }
  .banner-image-7 {
    background-image: url("../images/bg7-low.jpg");
  }
}
.banner-spacer {
  height: 300px;
}

.centre {
  margin: auto;
  max-width: 1080px;
}

.header-inner {
  display: flex;
  flex-direction: row;
  padding: 2em;
  justify-content: left;
  align-items: baseline;
}

.name-line {
  font-size: 300%;
  white-space: nowrap;
}

.tagline {
  font-size: 200%;
  margin-left: 0.5em;
}

h1,
h2,
h3,
h4 {
  font-family: 'WeblySleek UI', serif;
  font-weight: 600;
  line-height: 1.15;
}

h2 {
  font-size: 220%;
  margin-bottom: 0.3em;
}

p {
  margin-bottom: 1em;
  line-height: 1.5;
  font-size: 1.1em;
}

.container {
  box-shadow: rgba(0, 0, 0, 0.575) 0px -5px 10px;
  z-index: 10;
  min-height: 600px;
  background-color: rgb(252, 251, 248);
  padding: 2em;
  padding-bottom: 0;
  flex-grow: 1;
}

.container.no-shadow {
  box-shadow: none;
  background-color: rgba(0,0,0,0);
}

article.with-background {
  background-color: rgba(0, 0, 0, 0.3);
  color: #fff;
  padding: 1em;
}



@media only screen and (min-width: 1280px) {
  menu {
    color: #fff;
    width: 100%;
    text-align: right;
  }

  menu span {
    margin-bottom: 0.5em;
    display: inline-block; 
    font-size: 125%;
    line-height: 1.25;
    font-family: 'WeblySleek UI', serif;
    font-weight: 600;
    margin-left: 0.8em;
    text-shadow: #111 0px 0px 4px;
  }

  menu span a {
    cursor: pointer;
    transition: color 0.2s;
    color: rgb(255, 255, 255);
    display: inline;
    text-decoration: none;
  }

  menu span a:visited, menu span a:active {
    color: rgb(255, 255, 255);
  }

  menu span::after {
    width: 0%;
    height: 3px;
    background-color: rgb(255, 255, 255);
    content: "";
    transition: width 0.2s, background-color 0.2s;
    margin-top: 0.1em;
  }

  menu span a:hover {
    color: rgb(255, 255, 255);
  }

  menu span:hover::after
  {
    width: 100%;
    background-color: rgb(255, 255, 255);
  }

  menu span.selected::after {
    width: 100%;
  }

  menu .menu-burger {
    display: none;
  }

  menu .mobile-menu {
    display: none;
  }
}
@media only screen and (max-width: 1279px) {
  menu {
    color: #fff;
    width: 100%;
    text-align: right;
  }

  menu .menu-burger {
    width: 3em;
    height: 3em;
    float: right;
    margin-top: 1em;
    cursor: pointer;
  }

  menu .menu-burger span {
    width: 3em;
    height: 0.5em;
    margin-top: 0.5em;
    background-color: #fff;
    display: block;
    box-shadow: #111 0px 0px 4px;
    border-radius: 3px;
  }

  menu .menu-burger:first-child {
    margin-top: 0;
  }

  .header-inner {
    align-items: center;
  }

  menu .menu-inner {
    display: none;
  }

  menu .mobile-menu {
    position: absolute;
    right: 0px;
    top: 0px;
    bottom: 0px;
    opacity: 0.0;
    display: none;
    background-color: rgba(0, 0, 0, 0.8);
    z-index: 9999;
    padding: 4em;
    transition: opacity 0.5s;
  }

  menu .mobile-menu > span {
    margin-bottom: 1.5em;
    font-size: 150%;
    line-height: 1.25;
    font-family: 'WeblySleek UI', serif;
    font-weight: 600;
    margin-left: 0.8em;
    text-shadow: #111 0px 0px 4px;
    display: block;
  }

  menu .mobile-menu span a {
    cursor: pointer;
    transition: color 0.2s;
    color: rgb(255, 255, 255);
    text-decoration: none;
  }

  menu .mobile-menu span a:visited, menu .mobile-menu span a:active {
    color: rgb(255, 255, 255);
  }

  menu .menu-open {
    opacity: 1.0;
  }
}

.content {
  display: flex;
  flex-direction: row;
}

.content menu {
  margin-top: 0.75em;
  margin-right: 2em;
}

.cursive {
  font-family: "Caveat", cursive;
}

.big {
  font-size: 200%;
}

section {
  margin-bottom: 2em;
}

footer {
  background-color: rgb(252, 251, 248);
  color: #777;
  z-index: 11;
}

footer a {
  text-decoration: none;
  color: rgb(76, 59, 121);
}

.footer-inner {
  display: flex;
  flex-direction: row;
  padding: 2em;
  justify-content: space-between;
}

.footer-inner > * {
  margin-bottom: 0.5em;
}

@media only screen and (max-width: 600px) {
  .footer-inner, .content {
    flex-direction: column;
  }
  .name-line {
    white-space: normal;
    font-size: 200%;
  }
  .menu-burger {
    margin-left: 2em;
  }
}

/* --------- /Global Style --------- */

/* --------- About Me Style --------- */

.portrait {
  float: right;
  max-width: 300px;
  max-height: 300px;
  border-radius: 0.5em;
  box-shadow: rgba(0, 0, 0, 0.25) 0px 2.5px 5px;
}

@media only screen and (min-width: 300px) {
  .portrait {
    margin-left: 1.25em;
    margin-bottom: 1.25em;
  }
}

@media only screen and (max-width: 600px) {
  .portrait {
    max-width: 200px;
    max-height: 200px;
  }
}

/* --------- /About Me Style --------- */
