/*
====================
color reference
====================
*/

/*
white: hsla(0, 0%, 100%, 1);
black: hsla(0, 0%, 0%, 1);
black transparent: hsla(0, 0%, 0%, 0.5);
*/

/*
====================
google fonts
====================
*/

@import url('https://fonts.googleapis.com/css?family=Roboto+Mono:300,400,500');
@import url('https://fonts.googleapis.com/css?family=Archivo+Black');

/*
====================
global
====================
*/

body {
  font-family: 'Roboto Mono', 'Courier New', monospace;
  font-size: 100%;
  font-weight: 300;
  color: hsla(0, 0%, 20%, 1);
  background-color: hsla(0, 0%, 100%, 1);
}

h1, h2, h3, h4, h5, h6, p {
  margin: 0;
}

p + p {
  margin-top: 1em;
}

a,
a:hover,
a:active,
a:visited {
  color: hsla(0, 0%, 80%, 1);
  text-decoration: none;
}

img {
  position: absolute;
  max-width: 100%;
  vertical-align: top;
}

/*
====================
layout
====================
*/

/* section */
.section {}

.section--background-image {
  min-height: 100vh;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

.section--padding {
  padding: 8rem 0;
  min-height: auto;
}

.section--padding-small {
  padding: 2rem 0;
}

.section--flex-vertical {
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.section--flex-center {
  height: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* wrapper */
.wrapper {
  max-width: 900px;
  padding: 0 2%;
  margin: 0 auto;
}

/* column */
.column {
  position: relative;
  float: left;
  margin-right: 2%;
  overflow: hidden;
}

.column--1-3 {
  width: 32%;
}

.column--2-3 {
  width: 66%;
}

.column--right {
  float: right;
}

.column--last {
  margin-right: 0;
}

.column--about {
  width: 64%;
  margin-left: 2%;
}

/* clearfix */
.clearfix::after {
  content: '';
  display: block;
  clear: both;
}

/*
====================
z-index
====================
*/

.home { /* contains .intro */
  z-index: 0;
}

.main, /* contains .continent and .country */
.about,
.contact,
.footer {
  z-index: 10;
  position: relative;
}

.image__overlay {
  z-index: 20;
}

.navigation__toggle--show {
  z-index: 30;
}

.navigation {
  z-index: 40;
}

/*
====================
navigation, sub-navigation
====================
*/

.navigation {
  width: 100%;
  height: 100%;
  position: fixed;
  background: hsla(0, 0%, 100%, 1);
  opacity: 0;
  visibility: hidden;
}

.navigation--show {
  opacity: 1;
  visibility: visible;
}

.navigation__toggle--hide,
.navigation__toggle--show {
  cursor: pointer;
  position: fixed;
  top: 2rem;
  right: 2rem;
}

.navigation__list {
}

.navigation__item {
  margin: 0.5rem 0;
}

.navigation__spacer {
  margin: 2.5rem 0;
}

/* sub-navigation */
.sub-navigation__list {}

.sub-navigation__item {}

/*
====================
home, intro, main, about, contact, footer
====================
*/

/* home */
.home {
  background-image: linear-gradient(hsla(0, 0%, 0%, 0), hsla(0, 0%, 0%, 0.5)), url("../images/background-image.jpg");
}

.home__container {}

.home__header {}

.home__content {}

/* intro */
.intro {
  background: linear-gradient(hsla(0, 0%, 0%, 0), hsla(0, 0%, 0%, 0.5));
}

.intro__container {}

/* main */
.main {
  background-color: inherit;
}

/* about */
.about {
  background-image: linear-gradient(hsla(0, 0%, 0%, 0.1), hsla(0, 0%, 0%, 0.5)), url("../images/about-background-image.jpg");
}

.about__container {}

.about__container > .image__container {
  background-color: hsla(0, 0%, 0%, 0);
}

/* contact */
.contact {
  background-color: hsla(0, 0%, 95%, 1);
}

.contact__container {}

/* footer */
.footer {
  background-color: hsla(0, 0%, 80%, 1);
}

.footer__container {}

/*
====================
continent, country
====================
*/

/* continent */
.continent {}

.continent + .continent {
  margin-top: 8rem;
}

.continent__container {
  margin-bottom: 8rem;
}

.continent__header {}

.continent__content {}

/* country */
.country {}

.country + .country {
  margin-top: 8rem;
}

.country__container {
  margin-bottom: 4rem;
}

.country__header {}

.country__content {}

/*
====================
image, image grid
====================
*/

.image {}

.image--circle {
  border-radius: 50%;
}

/* image grid */
.image__grid {}

.image__row {
  margin-bottom: 2%;
}

.image__container {
  position: relative;
  height: 0;
  background-color: hsla(0, 0%, 95%, 1);
  padding-bottom: 32%;
}

.image__overlay {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: hsla(0, 0%, 0%, 0.5);
  opacity: 0;
  visibility: hidden;
}

/* image hover */
.image__link:hover > .image__overlay {
  opacity: 1;
  visibility: visible;
}

.image__link:hover > .image {
  transform: scale(1.0125);
}

/* image toggle */
.image__toggle {
  display: none;
}

.image__toggle--show {
  display: block;
}

.image__toggle--iceland {}
.image__toggle--netherlands {}
.image__toggle--belgium {}
.image__toggle--germany {}
.image__toggle--denmark {}
.image__toggle--sweden {}
.image__toggle--finland {}
.image__toggle--norway {}
.image__toggle--thailand {}
.image__toggle--cambodia {}
.image__toggle--vietnam {}
.image__toggle--singapore {}
.image__toggle--indonesia {}
.image__toggle--australia {}
.image__toggle--hawaii {}
.image__toggle--canada {}
.image__toggle--usa {}
.image__toggle--puerto-rico {}

/*
====================
header
====================
*/

.header {
  font-weight: 500;
  line-height: 1.375em;
  color: hsla(20, 88%, 72%, 1);
  margin-bottom: 2rem;
}

.header--home {
  font-family: 'Archivo Black';
  font-size: 9rem;
  text-transform: uppercase;
  line-height: 0.875em;
}

.header--continent {
  font-size: 3rem;
  border-bottom: 5px solid hsla(20, 88%, 72%, 1);
}

.header--country {
  font-size: 1.5rem;
  border-bottom: 3px solid hsla(20, 88%, 72%, 1);
}

/*
====================
text
====================
*/

.text {
  line-height: 1.625em;
}

.text--small {
  font-size: 0.75rem;
}

.text--large {
  font-size: 1.125rem;
}

.text--center {
  text-align: center;
}

.text--white {
  color: hsla(0, 0%, 100%, 1);
}

.text--overlay {
  margin-top: 16%;
}

.text--overlay::after {
  content: '- View on Instagram -';
  display: block;
  margin-top: 16%;
  font-size: 0.75rem;
  color: hsla(0, 0%, 100%, 0.5);
}

.text--more {}

.text--less {}

.text--form-label {
  display: block;
}

.text--form-input {
  font-family: inherit;
  font-weight: inherit;
}

/*
====================
link
====================
*/

.link {
  line-height: 1.625em;
}

.link--large {
  font-size: 1.125rem;
}

/*
====================
icon
====================
*/

.icon {
  fill: hsla(20, 88%, 72%, 1);
}

/*
====================
button
====================
*/

.button {
  cursor: pointer;
  width: 100%;
  padding: 1em 0;
  display: flex;
  justify-content: center;
  background-color: hsla(200, 88%, 82%, 1);
}

.button:hover {
  background-color: hsla(200, 88%, 72%, 1)
}

.button--form {
  border: none;
}

/* button toggle */
.button--toggle > .text--less,
.button--less > .text--more {
  display: none;
}

.button--less > .text--less {
  display: block;
}

.button--iceland {}
.button--netherlands {}
.button--belgium {}
.button--germany {}
.button--denmark {}
.button--sweden {}
.button--finland {}
.button--norway {}
.button--thailand {}
.button--cambodia {}
.button--vietnam {}
.button--singapore {}
.button--indonesia {}
.button--australia {}
.button--hawaii {}
.button--canada {}
.button--usa {}
.button--puerto-rico {}

/*
====================
form
====================
*/

.form {}

.form__row {}

.form__row + .form__row {
  margin-top: 1rem;
}

.form__label {
  margin-bottom: 0.5rem;
}

.form__input {
  max-width: 100%;
  width: 100%;
  padding: 0.5rem;
  border: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

/*
====================
intro scroll icon
====================
*/

.intro-scroll {}

.icon {}

.scroll-icon {}

/* bounce effect */
.bounce {
  position: fixed;
  bottom: 2rem;
  -moz-animation: bounce 2s infinite;
  -webkit-animation: bounce 2s infinite;
  animation: bounce 2s infinite;
}
@-webkit-keyframes bounce {
    0%, 100% {-webkit-transform: translateY(0);}
    50% {-webkit-transform: translateY(-0.5rem);}
}
@keyframes bounce {
  0%, 100% {-webkit-transform: translateY(0);}
  50% {-webkit-transform: translateY(-0.5rem);}
}

/*
====================
transitions
====================
*/

.navigation,
.button,
.image,
.image__overlay {
  -webkit-transition: all 0.1s ease-in-out;
  -moz-transition: all 0.1s ease-in-out;
  -o-transition: all 0.1s ease-in-out;
  transition: all 0.1s ease-in-out;
}

/*
====================
lazyload
====================
*/

/* hide broken image icon (only when lazyload is applied) */
img:not([src]) {
  visibility: hidden;
}

@-moz-document url-prefix() {
  img:-moz-loading {
    visibility: hidden;
  }
}

/* content reveal effect */
.teaser.lazyload {
	opacity: 0;
	transform: scale(0.8);
}

.teaser.lazyloaded {
	opacity: 1;
	transform: scale(1);
	transition: all 500ms;
}
