
/* ==|== primary styles =====================================================
   Author: Isaac Durazo
   ========================================================================== */

body {
  font-family: 'Open Sans', sans-serif;
  font-size: 14px;
  color: #3b1128;
}

img {
  max-width: 100%;
  vertical-align: middle;
}

.container {
  max-width: 980px;
  margin: auto;
}

section {
  border-bottom: 1px solid #d8d8d8;
}

section .container {
  overflow: auto;
  padding: 6em 0;
}

h1, h2 {
  font-family: 'Kreon', serif;
}

h1 {
  text-align: center;
  font-size: 3.5em;
  margin-top: 0;
}

h2 {
  font-size: 3em;
  color: white;
  font-weight: 400;
  letter-spacing: 3px;
}

h3 {
  font-size: 2em;
  margin: 0;
}

h4 {
  font-size: 1.3em;
  margin: 0;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  color: #d24551;
  text-decoration: none;
}

p {
  margin-top: 0;
}

.bold {
  font-weight: bold;
}

.gray {
  background-color: #f6f6f6;
}


/* ========================
          Header
======================== */

header {
  background-image: url(../img/bg_header.jpg);
  background-position: center center;
  background-position: fixed;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
  text-align: center;
  height: 456px;
}

header #logo {
  padding-top: 4em;
}


/* ========================
            Nav
======================== */

nav {
  background-color: #d24551;
  text-align: center;
  border-top: 4px solid #a7424f;
  position: relative;
}

nav ul {
  display: inline-block;
  height: 3.5em;
  line-height: 3.7em;
}

nav ul li {
  float: left;
}

nav a {
  color: white;
  padding: 16px 2.5em;
  font-weight: 100;
  letter-spacing: 1px;
  font-size: 1.2em;
}

nav a:hover, .active a {
  background-color: #a7424f;
}

/* Fixed menu */

.f-nav {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1;
}

.margin-top {
  margin-top: 57px;
}

/* Dropdown menu */

nav label {
    display: none;
    cursor: pointer;
    -webkit-user-select: none;
}

nav input[type=checkbox] {
  position: absolute;
  top: -9999px;
  left: -9999px;
}


/* ========================
          Statement
======================== */

#statement h3 {
  text-align: center;
  font-weight: 400;
}


/* ========================
          About
======================== */ 

#about img {
  float: left;
  margin: 0 2em 1em 0;
  width: 350px;
  padding-top: .5em;
}


/* ========================
          Speakers
======================== */

#speakers, #location {
  background-color: #f6f6f6;
}

#speakers .speaker_group {
  text-align: center;
}

#speakers .speaker_entity {
  width: 22%;
  display: inline-block;
  vertical-align: top;
  margin-right: 1%;
  background-color: white;
  border: 1px solid #d8d8d8;
  min-height: 33em;
}

#speakers div.speaker_entity:last-of-type {
  margin-right: 0;
}

#speakers .speaker_entity .pic {
  position: relative;
  margin: 1.5em;
}

#speakers .speaker_entity .name {
  position: absolute;
  bottom: -15px;
  background-color: #d24551;
  color: white;
  width: 100%;
  margin: auto;
  left: 0;
  right: 0;
  line-height: 2em;
  font-weight: 400;
  letter-spacing: 1px;
  border-top: 4px solid #a7424f;
}

#speakers .speaker_entity .name a {
  color: white;
}

#speakers .speaker_entity .name a:hover {
  text-decoration: underline;
}

#speakers .speaker_entity p {
  margin: 1.5em;
}


/* ========================
          Schedule
======================== */

#schedule .column {
  width: 49%;
  float: left;
  margin: 0 .5%;
}

#schedule .column h3 {
  text-align: center;
  background-color: #d24551;
  border-top: 4px solid #a7424f;
  color: white;
  font-weight: 400;
  font-size: 1.7em;
  padding: .5em 0;
}

#schedule .column .row {
  padding: 1.2em;
  overflow: auto;
  border: 1px solid #d8d8d8;
  border-top: 0;
}

#schedule .column .time {
  width: 25%;
  float: left;
}

#schedule .column .talk {
  width: 75%;
  float: left;
}

#schedule .column .description {
  margin: .3em 0;
}

#schedule .column .speaker {
  font-style: italic;
}


/* ========================
          Location
======================== */

#location .location_description {
  margin-bottom: 2em;
}

#location .location_description img {
  width: 350px;
  float: left;
  margin: 0 1.5em 1.5em 0;
}

#location .venue_hotel {
  background-color: white;
  padding: 2em;
  border: 1px solid #d8d8d8;
}

#location .venue_hotel h4 {
  margin: 0 0 .5em;
}

#location .venue_hotel .hotel {
  margin-bottom: .5em;
}

#location .venue_hotel .info {
  margin-bottom: 2em;
}

#location .venue_hotel a.view_map {
  color: white;
  background-color: #d24551;
  line-height: 3em;
  display: inline-block;
  width: 250px;
  text-align: center;
  margin-top: 1.5em;
}


/* ========================
          Register
======================== */ 

#register {
  font-size: 1.5em;
  text-align: center;
}

/* ========================
          Footer
======================== */ 

footer {
  background-color: #d24551;
  padding: 2em 0;
  color: white;
  text-align: center;
}

footer a {
  color: #3b1128;
  text-decoration: underline;
}


/* ========================
      Media Queries
======================== */ 

@media only screen and (max-width: 1024px) { 

  .container {
    margin: 0 2em;
  }

}

@media only screen and (max-width: 980px) { 

  #speakers .speaker_entity {
    width: 37%;
    margin-bottom: 2em;
    min-height: 30em;
  }

  #speakers .speaker_entity:nth-child(2n) {
    margin-right: 0;
  }

} 

@media only screen and (max-width: 875px) { 

  header {
    height: 370px;
  }

  header #logo {
    padding-top: 5.5em;
  }

  header #logo img {
    width: 200px;
  }

  h1 {
    font-size: 2.5em;
  }

  h2 {
    font-size: 2em;
  }

  #statement h3 {
    font-size: 1.5em;
  }

  section .container {
    padding: 3em 0;
  }

  nav {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 2;
  }

  nav .container {
    margin: 0;
  }

  nav ul {
    display: none;
    width: 100%;
    line-height: 1.5em;
  }

  nav ul li {
    float: none;
    text-align: left;
    background-color: #d24551;
    border-bottom: 1px solid #a7424f;
  }

  nav a {
    display: block;
    padding: 16px 1.5em;
  }

  nav label {
    display: block;
    min-height: 3.5em;
  }

  nav label:after {
    background-image: url("../img/menu-more.png");
    content: '';
    position: absolute;
    right: .5em;
    top: .5em;
    font-size: 1.8em;
    width: 23px;
    height: 19px;
  }

  nav input[type=checkbox]:checked ~ ul {
    display:block;
  }

  #schedule .column .time {
    width: 100%;
    float: none;
    margin-bottom: .5em;
  }

  #schedule .column .talk {
    width: 100%;
  }
  
  #register .register_form {
    margin: 0 0 2em;
  }

  #register .roost, #register .jquery {
    width: 45.7%;
  }

  #register .jquery {
    float: right;
  }

  #register .roost_jquery {
    width: 99.7%;;
  }

}

@media only screen and (max-width: 800px) { 

  .venue-info {
    clear: both;
  }

}

@media only screen and (max-width: 700px) {   

  #schedule .column {
    width: 100%;
    float: none;
    margin: 0;
  }

  #location .location_description img {
    float: none;
    width: 100%;
    margin-right: 0;
  }

}

@media only screen and (max-width: 630px) {  

  section .container {
    padding: 2em 0;
  }

  header {
    height: 305px;
  }

  #home h2 {
    font-size: 1.6em;
    letter-spacing: 1px;
  }

  header #logo img {
    width: 163px;
  }

  #statement h3 {
    font-size: 1.2em;
  }

  #speakers .speaker_entity p {
    text-align: left;
  }

  #location .venue_hotel a.view_map {
    width: 100%;
  }

  #register .register_form {
    width: 99%;
    float: none;
  }

  #speakers .speaker_entity {
    width: 48%;
    min-height: 32em;
  }

}

@media only screen and (max-width: 600px) { 

   #about img {
    display: none
   }

}

@media only screen and (max-width: 480px) {

  #speakers .speaker_entity {
    width: 99%;
    margin-right: 0;
    min-height: 100%;
  }

}


@media only screen and (max-width: 400px) {  
  
  .container {
    margin: 0 1em;
  }

  #home h2 {
    font-size: 1.3em;
    letter-spacing: 0;
  }

  section .container {
    padding: 2em 0;
  }

}

