* {box-sizing: border-box;}
*, html {scroll-behavior: smooth !important;}
html,
body {
    width: 100%;
    height: 100%;
    margin: 0px;
    padding: 0px;
    overflow-x: hidden;
}
/* img {width: 100%; max-width: 100%;} */

h1 {
  font-family: 'Open Sans Condensed', arial, sans-serif;
  font-size: 64px;
  color: #b8000a;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-shadow: 3px 3px 4px white;
}
h2 {
  font-size: 48px;
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.2em;
}
h3 {
  font-size: 36px;
  color: #000;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin: 10px 0 20px;
}
h4 {
  font-size: 28px;
  color: #000;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin: 10px 0 20px;
}
hr {
  border-top: solid 1px #e389b9;
  width: 90%;
}
a {font-size: inherit; text-decoration: none;}
a:hover {
  color: purple;
  text-decoration: none;
}
a.pinky, a.pinky:visited {
  color: #e389b9;
}
a.pinky:hover, a.pinky:active {
  color: #b8000a;
}
.tal {text-align: left;}
.tar {text-align: right;}
.tac {text-align: center;}

.hdr-title {
  margin: 15px auto;
  text-align: center;
  font-size: 44px;
  color: #fff;
  font-weight: 400;
}

.container {
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0;
}

.infobox {
  width: 100%;
  border-radius: 10px;
}
.infobox img {max-width: 100%;}
.bgwhite {background-color: #fff;}
.txtpad {padding: 10px 3% 40px;}

.red {color: #b8000a;}
.pink {color: #e389b9;}
.medgray {color: #a09d9d;}
.silver {color: #e8e8e8;}

/* MENU */
.nav-wrap {
  position: relative;
  top:0;
  left:0;
  width: 100%;
  padding: 10px 5%;
}
.desktop-nav {
  display: block;
  font-family: 'Roboto', sans-serif;
  color: #fff;
  font-size: 18px;
  font-weight: 400;
  text-align: center;
}
.desktop-nav a, .desktop-nav a:visited {
  color: #000;
  text-shadow: 2px 1px 2px #fff;
}
.desktop-nav a:hover, .desktop-nav a:active {
  color: #b8000a;
  text-shadow: 2px 1px 2px #fff;
}
.btn-open {
  display: none;
  height: 28px;
  width: 28px;
  text-align: left;
  color: #fff;
  font-size: 24px;
  line-height: 1;
  background-color: rgba(0,0,0,0.4);
  border-radius: 30%;
}
.btn-open:hover {cursor:pointer; color:gold;}
.btn-open span {
  display: block;
  padding-top: 2px;
  text-align: center;
}
 /* The Overlay (background) */
.overlay {
    /* Height & width depends on how you want to reveal the overlay (see JS below) */
    height: 0;
    width: 100%;
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    left: 0;
    top: 0;
    background-color: rgb(0,0,0); /* Black fallback color */
    background-color: rgba(0,0,0, 0.9); /* Black w/opacity */
    overflow-x: hidden; /* Disable horizontal scroll */
    transition: 0.5s; /* 0.5 second transition effect to slide in or slide down the overlay (height or width, depending on reveal) */
}
/* Position the content inside the overlay */
.overlay-content {
    position: relative;
    top: 16%; /* 25% from the top */
    width: 100%; /* 100% width */
    text-align: center; /* Centered text/links */
    margin-top: 30px; /* 30px top margin to avoid conflict with the close button on smaller screens */
}
.overlay a.closebtn {color: white; text-decoration: none;}
.overlay a.closebtn:hover {color: pink; text-decoration: none; background: transparent;}
/* The navigation links inside the overlay */
.overlay a.lnk {
    padding: 8px;
    text-decoration: none;
    font-size: 36px;
    color: #818181;
    display: block; /* Display block instead of inline */
    transition: 0.3s; /* Transition effects on hover (color) */
}
/* When you mouse over the navigation links, change their color */
.overlay a.lnk:hover, .overlay a:focus {
    color: #f1f1f1;
    background:rgba(244,72,72,0.7);
}
/* Position the close button (top right corner) */
.overlay .closebtn {
    position: absolute;
    top: 20px;
    right: 45px;
    font-size: 60px;
}
/* When the height of the screen is less than 450 pixels, change the font-size of the links and position the close button again, so they don't overlap  */
@media screen and (max-height: 450px) {
    .overlay a {font-size: 20px}
    .overlay .closebtn {
        font-size: 40px;
        top: 15px;
        right: 35px;
    }
}

/* HEADER */
.header {
  display: block;
  width: 100%;
  margin: 0 auto 10px;
  padding: 0 10px 20px;
  text-align: center;
  background-color: rgba(255,255,255,0.4);
  box-shadow: 10px 0 8px #666;
}
.header h1 {margin: 0 auto;}

/* DANCERS */
.dancer-title {
  background-image: linear-gradient(to right, rgba(255,255,255,1), rgba(227,137,185,1), rgba(255,255,255,1));
  text-align: center;
  margin: 20px auto;
  padding: 10px;
  border-radius: 50px;
}
.dancer-title span {
  font-size: 48px;
  color: #000;
  font-weight: 700;
  letter-spacing: 0.2em;
}
.dancer-bio {
  padding: 50px 30px;
  background-color: #fff;
  margin: 0 auto;
  font-size: 18px;
  border-radius: 30px;
}
.dancer-info {
  padding: 0 0 10px 0;
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  border-bottom: solid 1px #e389b9;
  margin-bottom: 15px;
}
.dancer-info div {
  margin: 10px;
}
div.dancer-head {width: 23%;}
div.dancer-text {width: 77%;}
.headshot {
  margin: 0;
  width: 150px;
  height: auto;
  max-width: 98%;
}

img.portrait {max-width: 150px; max-height: 50vh;}
img.landscape {max-width: 300px;}

.dancer-media {
  padding: 50px 30px;
  background-color: #fff;
  margin: 30px auto 0;
  border-radius: 30px;
}
.dancer-media div {
  display: inline-block;
  margin: 10px;
}
img.smi {width: 80px;}

/* FLEXY */
.flexy {
  display: flex;
  flex-wrap: nowrap;
  margin: 0 auto;
}
.flexy img {max-width: 100%;}
.flex100 {
  width: 100%;
  margin: 0;
  padding: 15px;
}
.flex50 {
  width: 50%;
  margin: 0;
  padding: 15px;
}
.flex33 {
  width: 33%;
  margin: 0;
  padding: 15px;
}
.flex25 {
  width: 25%;
  margin: 0;
  padding: 15px;
}

/* FOOTER */
.foot-space {
  padding: 40px 0;
  margin: 30px auto 0;
  background-color: #000;
  color: #fff;
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
}
.foot-info {
  width: 50%;
  max-width: 600px;
  font-size: 14px;
  padding: 30px;
  line-height: 1.5;
}
.foot-info span {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.1;
}
.foot-links {
  width: 50%;
  max-width: 600px;
  text-align: right;
  padding: 30px;
  vertical-align: top;
}
a.infolnk, a.infolnk:visited {color: #fff;}
a.infolnk:hover, a.infolnk:active {color: pink;}

.foot-links a, .foot-links a:visited {
  color: #fff;
  display: inline-block;
  margin-bottom: 5px;
  text-decoration: none;
}
.foot-links a:hover, .foot-links a:active {color: pink;}

/* MEDIA ++++++++++++++++++++++++++++++++++ */

@media (max-width: 600px) {
/* NAVIGATION */
  .desktop-nav {display: none;}
  .btn-open {display: block;}
  .nav-wrap {
    position: absolute;
    padding: 10px 10px 0;
  }

  /* HEADER */
  .header {padding: 10px 10px 15px;}
  .header h1 {
    font-size: 54px;
    line-height: 1;
  }

  h3.page-title {font-size: 28px;}

  /* FLEXY */
  .flexy {flex-wrap: wrap;}
  .flex50, .flex33, .flex25 {
    width: 100%;
  }

}

@media (max-width: 360px) {
  .header h1 {font-size: 44px;}
}
