@import url(spectre.css);
@import url(fonts.css);

:root {
    --white: #fff;
    --ochre: #ccac68;
    --ochre-light : #f7f4ee;
    --ochre-dark: rgba(116,102,77,1);
    --light-dark: #333;
    --dark: rgb(26, 21, 21);
    --lilac: #c852ff;
    --emerald: #067d08;
}
/** Necessary for iPhone in portrait mode (apparently) **/
html {
    overflow-x: hidden;
}
/** 
* Hack to preload background images 
* Not working in Firefox!!
**/
div#preload {
    /*display: none;*/
    width: 0;
    height: 0;
    z-index: -10;
    overflow-y: hidden;
}
div#preload img {
    opacity: 0;
    display: inline;
}
/** General utils **/
.of-hidden {
    overflow: hidden;
}
.pl-lg {
    padding-left: 1rem !important;
}
.pl-xl {
    padding-left: 4rem !important;
}
.pr-lg {
    padding-right: 2rem;
}
.mt-lg {
    margin-top: 2rem;
}
@media (min-width: 840px) {
    .ml-lg {
        margin-left: 2rem;
    }
}
.short-hr {
    width: 3.5rem;
    margin-left: 0;
    margin-top: 3rem;
    margin-bottom: 3rem;
}
.note {
    font-size: 10pt;
}
.text-14pt {
    font-size: 14pt;
}
#mod-cont {
    overflow: hidden;
}
/** Font classes **/
.arvo {
    font-family: 'arvoregular'/*Fallback??*/;
}
.roboto {
    font-family: 'roboto_condensedregular';
}
.roboto-reg {
    font-family: 'roboto_regular';
}
.roboto-med {
    font-family: 'roboto_medium';
}
.robot-slab-b {
    font-family: 'roboto_slabbold';
}
.roboto-slab {
    font-family: 'roboto_slabregular';
}
.roboto-slab-l {
    font-family: 'roboto_slablight';
}
.opensans {
    font-family: 'open_sansregular';
}
/****** Custom rules ******/
body {
    height: 100%;
    display: flex;
    flex-direction: column;
    scroll-behavior: smooth;
}
main {
    flex: 1 0 auto;
    width: 100%;
}
/* ---- Header ----- */
header {
    background-size: cover;
    background-position: center;
    background-attachment: fixed; 
    background-repeat: no-repeat;
    width: 100%;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin: 0;
    padding: 0;
}
.main-header.home {
    min-height: 80vh;
}
.main-header.prog {
    min-height: 60vh;
    background-image: url('../img/progetto_header.jpg');
}
.main-header.prog::before {
    background-color: rgba(33,33,33,1);
    opacity: 0.5;
    content: "";
    display: block;
    position: absolute;
    bottom: calc(100% - 60vh);
    left: 0;
    right: 0;
    top: 0;
}
.main-header.itin {
    background: none;
    min-height: 40vh;
}
@media (max-width: 840px) {
    .main-header.itin {
        margin-top: 4rem;
    }
}
.main-header.itin #nav {
    color: var(--dark);
}
.main-header.news {
    min-height: 60vh;
    background-image: url('../img/bg_news.jpg');
}
.main-header.news::before {
    background-color: rgba(33,33,33,1);
    opacity: 0.5;
    content: "";
    display: block;
    position: absolute;
    bottom: calc(100% - 60vh);
    left: 0;
    right: 0;
    top: 0;
}
.main-header h1 {
    font-size: 3rem;
}
.main-header.itin h1 {
    font-size: 36pt;
}
.main-header h1::after {
    max-width: 5rem;
    margin: 10px auto 0 auto;
    min-height: 0.4rem;
    background-color: var(--ochre);
    content: '';
    display: block;
}
#title {
    flex: none;
    min-width: 50%;
    z-index: 8;
}
#title button {
    min-width: 80%;
    color: #fff;
    background-color: transparent;
    border: 1px solid #fff;
    border-radius: 4px;
    padding: 3px 0;
    font-size: 0.9rem;
    cursor: pointer;
}
#title button:hover {
    background-color: rgba(254, 254, 254, 0.25);
}
/* ---- Navbar ----- */
.side-nav {
    width: 280px;
    opacity: 1;
    padding-left: 5px;
    height: 100vh;
    margin: 0;
    right: 0;
    position: absolute;
    z-index: 11;
    animation-name: slidein;
    animation-duration: 1s;
    transition: slidein 0.5s ease-in;
}
.side-nav a:nth-child(2) {
    margin-top: 60px;
}
@keyframes slidein {
    from {
        width: 0px;
    }
    to {
        width: 280px;
    }
}
.side-nav a {
    display: block;
    color: var(--light-dark);
    text-decoration: none;
    margin-left: 30px;
    padding: 10px 0;
}
.nav-menu {
    text-align: right;
}
.nav-menu a {
    color: inherit;
    padding: 10px;
    font-size: 0.85rem;
    text-decoration: none;
    cursor: pointer;
}
.active {
    color: #fff;
    font-weight:bold;
}
#nav {
    max-height: 90px;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 10;
}
@media (min-width: 860px) {
    #nav {
        vertical-align: middle;
        line-height: 90px;
    }    
}
#nav i {
    padding-top: 2rem;
    vertical-align: middle;
    cursor: pointer;
    z-index: 10;
}
#close-nav {
    padding-top: 0.7rem;
    padding-left: 0;
    position: absolute;
    right: 5px;
    font-weight: 400;
    cursor: pointer;
}
/** From css.gg **/
.icon-close {
    box-sizing: border-box;
    position: relative;
    display: block;
    width: 45px;
    height: 45px;
    border: 2px solid transparent;
    border-radius: 40px
}
.icon-close::after,
.icon-close::before {
    content: "";
    display: block;
    box-sizing: border-box;
    position: absolute;
    width: 30px;
    height: 2px;
    background: currentColor;
    transform: rotate(45deg);
    border-radius: 5px;
    top: 8px;
    left: 1px
}
.icon-close::after {
    transform: rotate(-45deg)
}
#nav.border {
    border-bottom: 1px solid rgba(204,204,204,1);
}
#logo {
    max-height: 55%;
    padding-left: 10px;
    padding-top: 10px;
}
.nav-light a:hover {
    color: #fff;
}
.nav-dark a:hover {
    color: #000;
}
body.opaque::after {
    z-index: 8;
    content: '';
    height: 100%;
    width: 100%;
    background-color: var(--dark);
    opacity: 0.7;
    position: fixed;
}
/** Footer **/
footer {
    min-height: 5rem;
}
footer p {
    padding: 20px;
    text-align: center;
    margin-bottom: 0;
}
#copy {
    font-size: 0.7rem;
    margin-top: 1rem;
}
.logos {
    max-height: 70px;
}
/*** Section stripes ***/
.ochre-stripe {
    background-color: var(--ochre-light);
}
section .container {
    padding-top: 1.5rem;
    font-family: 'roboto_slablight', sans-serif;
    line-height: 1.3rem;
    font-size: 12pt;
}
@media (min-width: 1280px) {
    section .container {
        width: 1280px;
    }
}
@media (max-width: 1280px) {
    section .container {
        width: 85%;
    }
}
section .container a {
    text-decoration: none;
}
section .container h2 {
    color: var(--ochre-dark);
    font-family: 'roboto_bold';
    font-size: 26pt;
}
section.news-sec .container h2 {
    font-size: 14pt !important;
}
section .container ul {
    list-style-type: square;
    margin-left: 0;
    margin-top: 2rem;
}
section .container img {
    width: 100%;
}
section.prj-logos img {
    max-height: 110px;
    max-width: 410px;
}
section.poi .container {
    max-width: 1180px;
}
section.poi h3 {
    font-size: 0.9rem;
}
#itin-c {
    padding-right: 12%;
    font-size: 14pt;
}
#vagg {
    padding-bottom: 2rem;
}
#potlach {
    max-width: 110px;
    margin: 0 25%;
}
/** Text colors **/
.ochre-dark {
    color: var(--ochre-dark);
}
.ochre {
    color: var(--ochre) !important;
}
.green {
    color: var(--emerald);
}
.lilac {
    color: var(--lilac);
}
/** Modals **/
#mod-vid .modal-overlay {
    background-color: #555;
}
/** Temp **/
.placeholder {
    background-color: rgba(0,0,0,.03);
    height: 70%;
    left: 0;
    outline: 2px dashed rgba(0,0,0,0.10);
    overflow: hidden;
    top: 0;
    width: 100%;    
}
/*****/
canvas {
    width: 100vw;
    height: 100vh;
}
/** Videos **/
video, .open-vid {
    cursor: pointer;
}
.icon-close#close-nav {
    color: var(--white);
    margin-top: 0.9rem;
}
/** Slideshow... **/
.hide, .slide {
    display: none;
}
.show {
    display: block;
}
/* Fading animation */
.fadein {
    -webkit-animation-name: fadein;
    -webkit-animation-duration: 1.5s;
    animation-name: fadein;
    animation-duration: 1.5s;
 }
@-webkit-keyframes fadein {
   from {opacity: .4}
   to {opacity: 1}
}
  
@keyframes fadein {
   from {opacity: .4}
   to {opacity: 1}
}