html {
	box-sizing: border-box;
}

*, *:before, *:after {
  box-sizing: inherit;
}

html, body {
  font-family: 'Open Sans', sans-serif;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow:hidden;
  font-size: 14px;
}

body {
  background-color: #FFF;
}

a {
	cursor: pointer;
}

#map {
  width: 100%;
  height: 100%;
}

#info-container {
  position: absolute;
  top: 40px;
  right: 20px;
  width: 33vw;
  min-width: 350px;
  max-height: calc(100% - 100px);
  background-color: #FFFFFF;
  padding: 15px;
  overflow-y: hidden;

  -webkit-box-shadow: 3px 3px 3px 0px rgba(0,0,0,0.75);
  -moz-box-shadow: 3px 3px 3px 0px rgba(0,0,0,0.75);
  box-shadow: 3px 3px 3px 0px rgba(0,0,0,0.75); 

  border-radius: 15px;

  -webkit-overflow-scrolling: touch;

}

#info {
  padding: 10px;
  overflow-y: auto;
  overflow-x: hidden;
  width: 100%;
}

#info .category-icon {
  height: 30px;
  width: 30px;
  margin-right: 10px;
}

.place-title {
  color: #138191;
  font-size: 28px;
}

.sub-heading {
  font-size: 22px;
  font-weight: normal;
  margin-top: 12px;
  margin-bottom: 10px;
}

.logo {
  display:block;
  margin:auto;
}

.logo.jgi {
  width:100%;
  height:auto;
  max-width:309px;
  max-height:19px;
  margin-bottom:10px;
}

.logo.tapestry {
  width:100%;
  height:auto;
  max-width: 343px;
  max-height: 221px;
}

.top-blue-line {
  margin-left:20px;
  margin-right:20px;
  border-color:#b3e0dd; 
  border-style:solid; 
}

.dark-blue-line {
  border-color:#179ca5; 
  border-style:solid; 
  border-bottom-style:none;
}

.home {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  margin-left: -2px;
}

.easy-button-button {
  cursor: pointer;  
}

.tabs {
  list-style: none;
  margin:0px;
  padding:0px;
}

.tabs li {
  position: relative;
  clear:both;
  padding-top: 5px;
  overflow: hidden;
  cursor: pointer;
}

.tabs :nth-child(1) {
  margin-bottom: 10px;
}

.r-and-s-logo {
  width:150px;
}

.hope-spots-logo {
  width:150px;
}

.r-and-s-swatch {
  height:61px;
  width:101px;
  float:right;
}

.hope-spots-swatch {
  height:50px; 
  width:77px;
  float:right;
}

.more-button {
  color:gray;  
}

.more-button img {
  height: 18px;
  width: 18px;
  vertical-align:text-top;  
}

.more-button span::after {
  content: "More";
}

.tabs li.selected .more-button img {
  transform:rotate(180deg);
}

.tabs li.selected .more-button span::after {
  content: "Less";
}

.tabs :nth-child(1).selected + hr {
  display: none;
}

.tabs :nth-child(1).hidden + hr {
  display: none;
}

/* styles for '...' */ 
.tabs li.compact p {
  /* hide text if it more than N lines  */
  overflow: hidden;
  /* for set '...' in absolute position */
  position: relative; 
  /* use this value to count block height */
  line-height: 1.2em;
  /* max-height = line-height (1.2) * lines max number (3) */
  max-height: 2.3em; 
  /* fix problem when last visible word doesn't adjoin right side  */
  text-align: justify;  
  /* place for '...' */
  margin-right: -1em;
  padding-right: 1em;
}

/* create the ... */
.tabs li.compact p:before {
  /* points in the end */
  content: '...';
  /* absolute position */
  position: absolute;
  /* set position to right bottom corner of block */
  right: 0;
  bottom: 0;
}

/* hide ... if we have text, which is less than or equal to max lines */
.tabs li.compact p:after {
  /* points in the end */
  content: '';
  /* absolute position */
  position: absolute;
  /* set position to right bottom corner of text */
  right: 0;
  /* set width and height */
  width: 1em;
  height: 1em;
  margin-top: 0.2em;
  /* bg color = bg color under block */
  background: white;
}

.tabs li.hidden {
  display: none;
}

#bottom {
  position:relative;
  width: 100%;
  height: 100%;
}

#mobile-banner {
  display: none;
  width: 100%;
  height: 0px;
  background-color: black;
  color: white;
  font-size: 20px;
  font-weight: bold;
  z-index: 1000;
  overflow: hidden;
  padding-left: 15px;
  padding-top: 10px;
  padding-right:15px;
}

#hamburger {
  float:right;
  font-size: 40px;
  margin-top: -15px;
  cursor: pointer;
}

#nav-dropdown {
  position: absolute;
  background-color: black;
  z-index: 1000;
  top: 50px;
  right: 0px;
  margin: 0px;
  padding: 0px;
  border-color: white;
  border-left-style: solid;
  border-bottom-style: solid;
  border-top-style: solid;
  border-top-width: 1px;
  display: none;
}

#nav-dropdown hr {
  border-color:white; 
  border-style:solid; 
  border-bottom-style:none;
  margin: 0px;
  display: none;
}

#nav-dropdown li {
  list-style: none;
  margin: 0px;
  padding:15px;
  padding-left: 30px;
  padding-right: 30px;
  font-size: 18px;
  cursor: pointer;
}

.leaflet-popup a {
  color:black;
}

.mobile-link {
  color: #0066b5;
  font-weight: bold;
  font-size: 16px;
  display:none;
}

@media (max-width: 500px) {

  #info-container {
    border-radius: 0px;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    max-height: none;
  }

  body.app-state-map #info-container {
    display: none;
  }
  
  body.app-state-map #nav-dropdown :nth-child(1) {
    display:none;
  }

  body.app-state-intro #nav-dropdown :nth-child(3) {
    display:none;
  }

  body.app-state-info #nav-dropdown hr {
    display: block;
  }

  .leaflet-control-container {
    display: none;
  }

  #mobile-banner {
    display:block;
    height: 50px;  
  }

  .mobile-link {
    display:block;
  }

  #bottom {
    height: calc(100% - 50px);
  }

  #nav-dropdown.on {
    display: block;
  }

  .leaflet-popup a {
    color:blue;
    text-decoration: underline;
  }

}