@font-face {
  font-family: "Ogg";
  src:
    local("Ogg Regular"),
    url("font/off-regular.woff") format("woff"),
    url("font/off-regular.woff2") format("woff2");
}

body, 
html,
p,
ul,
h1,
h2,
h3,
h4,
h5,
figure {
  margin: 0;
  padding: 0;
  font-weight: lighter;
}

li {
  list-style: none;
}

a {
  text-decoration: none;
}

* {
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.grid.row .col,
#header .col {
  float: left;
}

.row .col {
  padding: 4px;
  box-sizing: border-box;
}

.row-1 .col {
  width: 100%;
}

.clear {
  clear: both;
}

p {
  color: #222;
  font-size: 12pt;
  line-height: 18pt;
}

.icon {
  display: inline-block;
  width: 18px;
  height: 18px;
  font-size: 0;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center center;
  vertical-align: middle;
}

.icon.instagram {
  background-image: url('img/icon-instagram.svg');
}

#wrapper {
  padding: 0 5px;
  box-sizing: border-box;
}

body.menu {
  overflow-y: hidden;
}

body.page {
  background: #eee;
}

#header {
  padding: 10px;
  top: 0;
  position: fixed;
  width: calc(100vw - 20px);
  background-color: rgba(255, 255, 255, .8); 
  backdrop-filter: blur(10px);
  z-index: 9000;
  transition: background-color .6s ease-in-out, backdrop-filter .6s ease-in-out;
}

#header ul li {
  list-style: none;
  display: inline-block;
  margin-right: 10px;
  color: #ddd;
}

#header #logotype,
#header ul li a {
  text-transform: uppercase;
  letter-spacing: 1.5pt;
  font-family: "Ogg"; 
  transition: color .5s ease-in-out;
}

#header #logotype {
  color: #000;
}

#header #logotype span,
#header ul li a {
  color: #aaa;
}

#header ul li a:hover,
#header ul li a.selected {
  color: #222;
}

#header #logotype {
  display: inline-block;
  float: right;
}

#header #logotype img {
  height: 100%;
  width: auto;
}

#sidebar {
  opacity: 0;
  visibility: hidden;
  left: -100vw;
  position: fixed;
  height: 100vh;
  width: 100vw;
  top: 0;
  bottom: 0;
  z-index: 8000;
  background-color: #dadad5; 
  display: flex;
  align-items: center;
  transition: all .6s ease-in-out; 
}

body.menu #sidebar {
  opacity: 1;
  visibility: visible;
  left: 0;
}

.grid {
  padding-top: 50px;
}

.grid ul .grid-item {
  margin: 5px;
}

.grid ul .grid-item .grid-item-inner {
  background: #eee;
  width: 100%;
  height: 66%;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  margin-bottom: 20px;
  transition: opacity .6s ease-in-out;
}

.grid ul .grid-item .grid-item-inner.lazyload {
  opacity: 0;
}

.grid ul .grid-item .grid-item-inner.lazyloaded {
  opacity: 1;
}

.page .col.img div {
  margin: 0 10px;
  aspect-ratio: 3 / 4;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
}

.page .col.img div span {
  font-size: 9pt;
  position: absolute;
  bottom: -20px;
  color: #999;
}

.page .col.text h1 {
  font-size: 16pt;
}

.page .col .cols {
  display: flex;
  margin: 20px 0;
}

.page .col .cols div {
  width: 50%;
}

.page .col.text p {
  font-size: 12pt;
  line-height: 20pt;
  color: #444;
  letter-spacing: 0.3pt;
}

.page .col.text p a {
  color: #444;
  padding-bottom: 1px;
  border-bottom: 1px solid #ddd;
  text-decoration: none;
  font-family: "Playfair Display", serif;
}

.page .col.text h1,
.page .col.text h3 {
  text-transform: uppercase;
  letter-spacing: 1pt;
}

.page .col.text h1,
.page .col.text p,
.page .col.text h3 {
  padding: 0 5px 0 10px;
  text-align: justify;
}

.page .col.text h1,
.page .col.text p,
.page .col.text h3,
.page .col.text h1,
.page .col.text p a {
  font-family: "ogg";
  font-weight: lighter;
  letter-spacing: 0.06em;
}

.page .col.text h3 {
  margin-bottom: 10px;
}

#footer {
  width: 100%;
  text-align: center;
  padding: 0 0 30px 0;
}


@media (max-width: 800px) {
  .hide-mobile {
    display: none !important;
  }
  .row-2 .col,
  .row-3 .col,
  .row-3 .col.double {
    width: 50%;
  }
  body.menu #header {
    background-color: transparent;
    backdrop-filter: unset;
  }
  #header .col {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  #header .col {
    position: relative;
  }
  #header .col::after {
    position: absolute;
    top: 100%;
    margin-top: 16px;
    height: 1px;
    width: 0;
    background-color: #cdcccc;
    opacity: 0;
    content: '';
    transition: opacity 1s ease-in-out, width .6s ease-in-out;
  }
  body.menu #header .col::after {
  	opacity: 1;
  	width: calc(100% - 8px);
  }
  #header ul li a,
  .grid .grid-item h2 {
    font-size: 10pt;
  }
  #sidebar #sidebar-menu li a {
  	font-size: 20pt;
  }
  #header #hamburger {
    color: #222;
    float: left;
    font-size: 10pt;
    line-height: 4pt;
    transition: transform .6s ease-in-out;
  }
  body.menu #hamburger {
    transform: rotate(90deg);
  }
  #header #logotype {
    float: right;
  }
  #header #logotype img {
  	height: 14px;
  	width: auto;
  }
  #sidebar #sidebar-menu {
    line-height: 30pt;
    padding: 0 16px;
    opacity: 0;
    transition: opacity 2.5s ease-in-out;
  }
  body.menu #sidebar #sidebar-menu {
  	margin-top: 0;
    opacity: 1;
    width: 100%;
    text-align: center;
  }
  #sidebar #sidebar-menu li a {
    color: #222;
    text-transform: uppercase;
  }
  .grid ul .grid-item.grid-item-landscape,
  .grid ul .grid-item.grid-item-portrait,
  .grid ul .grid-item.grid-item-square {
    width: calc(100% - 10px); 
  }
  .grid ul .grid-item {
    margin-bottom: 20px;
  }
  .grid ul .grid-item .grid-item-inner {
    background-image: unset;
  }
  .grid ul .grid-item .grid-item-inner img {
    display: block;
    width: 100%;
    height: auto;
  }
  .page {
    padding-top: 45px;
  }
  .page .col.img {
    width: 50%;
    padding-bottom: 50px;
    float: left;
  }
  .page .col.text {
    width: 100%;
  }
  #footer {
    padding-top: 300px;
  }
}

@media (min-width: 800px) {
  .row-2 .col {
    width: 50%;
  }
  .row-3 .col {
    width: 33.33%;
  }
  .row-3 .col.double {
    width: 66.66%;
  }
  #header #logotype,
  #header ul li a {
    font-size: 16pt; 
  }
  #header #hamburger {
    display: none;
  }
  .grid ul .grid-item {
    float: left;
    height: 100vh;
    display: flex;
    align-items: flex-end;
  }
  .grid ul .grid-item.grid-item-landscape {
    width: calc(50% - 10px);
  }
  .grid ul .grid-item.grid-item-portrait,
  .grid ul .grid-item.grid-item-square {
    width: calc(25% - 10px); 
  }
  .grid ul .grid-item .grid-item-inner img {
    display: none;
  }
  .page {
    min-height: calc(100vh - 10px);
    padding-bottom: 33vh;
    display: flex;
    justify-content: space-evenly;
    align-items: flex-end;
  }
  .page .col {
    height: 66vh;
  }
  .page .col.img {
    width: 15%;
  }
  .page .col.text {
    width: 40%;
  }
}

@media (min-width: 800px) and (max-width: 1800px) {
  #wrapper {
    width: 100%;
  }
}

@media (min-width: 1800px) {
  #header,
  #wrapper {
    width: 1800px;
    margin: 0 auto;
  }
}