/*
Theme Name: sequoia
Theme URI: https://github.com/jeffreyvr/sequoia
Author: Jeffrey van Rossum
Author URI: https://vanrossum.dev
Description: A WordPress theme made with TailPress.
Version: 0.1.0
License: MIT
License URI: https://github.com/jeffreyvr/sequoia/blob/master/LICENSE
Text Domain: sequoia
*/

@font-face {
	font-family: 'Urban Grotesk';
	src: url('font/UrbanGroteskLiSe-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Urban Grotesk';
	src: url('font/UrbanGroteskLiSe-Italic.ttf') format('truetype');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Urban Grotesk';
	src: url('font/UrbanGroteskLiSe-Bold.ttf') format('truetype');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Urban Grotesk';
	src: url('font/UrbanGroteskReBo-Bold.ttf') format('truetype');
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Urban Grotesk';
	src: url('font/UrbanGroteskMeBl-Bold.ttf') format('truetype');
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Urban Grotesk';
	src: url('font/UrbanGroteskLiSe-BoldItalic.ttf') format('truetype');
	font-weight: 700;
	font-style: italic;
	font-display: swap;
}

:root {
    /*--color-darkgreen: #24382c;
    --color-lightgreen: #b9cf96;*/
    --color-darkgreen: #08332A;
    --color-lightgreen: #B9CF96;
}

#wpadminbar { opacity: 0.5; }

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Urban Grotesk", sans-serif;
    color: var(--color-darkgreen);
}

#content, footer {
    transition: .4s ease-out;
    &.to-side { transform: translateX(-350px); opacity: 0.5; }
}

header {
    position: relative; display: flex; align-items: center; justify-items: center;
    width: 100%; height: 100%; cursor: pointer;
    .burger {
        position: relative; width: 30px; height: 18px;
        span {
            display: block;
            width: 50%;
            height: 0.9px;
            position: absolute;
            background: #fff;
            transition: background 0.2s linear, transform 0.2s linear;
            &:nth-child(odd) { left: 0; }
            &:nth-child(even) { left: 50%; }
            &:nth-child(1), &:nth-child(2) { top: 0; }
            &:nth-child(3), &:nth-child(4) { top: 8px; opacity: 1; }
            &:nth-child(5), &:nth-child(6) { top: 16px; }

            
        }
        &.open span {
            &:nth-child(1) { transform: translate(3px, 4px) rotate(45deg); }
            &:nth-child(2) { transform: translate(-3px, 4px) rotate(-45deg); }
            &:nth-child(3) { transform: translateX(-50%); opacity: 0; }
            &:nth-child(4) { transform: translateX(50%); opacity: 0; }
            &:nth-child(5) { transform: translate(3px, -3px) rotate(-45deg); }
            &:nth-child(6) { transform: translate(-3px, -3px) rotate(45deg); }
        }
    }

    .menu {
        position: fixed; right: 0; top: 0; height: 100%; cursor: auto; z-index: 9;
        background-color: var(--color-darkgreen);
        transform: translateX(100%); transition: .4s ease-out;
        -webkit-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25);
        -moz-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25);
        box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25);
        &.open { transform: translateX(0); }
        a {
            display: block;
            padding: 1rem 0;
            font-family: "Urban Grotesk", sans-serif;
            font-size: 1.4rem;
            color: #fff;
            text-decoration: none;
            border-bottom: 1px solid var(--color-lightgreen);
            &:hover { color: var(--color-lightgreen); }
        }
    }

    .langs {
        a { padding: 0; /*font-family: "Urban Grotesk", sans-serif;*/ text-transform: uppercase; text-decoration: none; border-bottom: 0; }
    }
}  


section.hero {
    position: relative; width: 100%;
    background-image: url('../assets/hero.jpg');
    background-size: cover;
    background-position: center;
}

section.about {
    background-color: var(--color-darkgreen);
    h4 { font-size: 2rem; font-weight: 900; }
    .floating-text {
        span {
            position: absolute; text-wrap: nowrap;
            opacity: 0;
            animation: floatAcrossCycle 18s linear infinite;
            &.text1 { animation-delay: 0s; }
            &.text2 { animation-delay: 6s; }
            &.text3 { animation-delay: 12s; }
        }
    }
    .pinecones {
        background-image: url('../assets/pinecones.svg');
        background-size: 25% auto;
        background-repeat: no-repeat;
        background-position: left bottom;
    }
}

section.location {
    background-color: var(--color-darkgreen);
    color: #fff;
    .location-picture::after {
        content: "";
        display: block;
        clear: both;
    }
    .picture-wrapper {
        background: linear-gradient(to bottom, #fff 0 50%, var(--color-darkgreen) 50% 100%);
        /*position: relative;
        &::after {
            content: ""; position: absolute; left: -500vw; top: 0; width: 1000vw; height: 50%; background-color: red; z-index: 1;
        }*/
    }
    h4 {
        font-size: 1.7rem; 
        line-height: 115%;
        color: var(--color-lightgreen);
        margin-bottom: 0.5rem;
    }
    .benefit {
        /*p { opacity: 0; transition: .2s ease; }
        &:hover {
            p { opacity: 1; }
        }*/
    }
}

section.availability {
    background-color: var(--color-darkgreen);
    color: #fff;
    h4 { font-size: 1.7rem; margin-bottom: 2rem; }
    ul { list-style: disc; padding-left: 1rem; line-height: 200%; }
}

section.gallery {
    background: linear-gradient(to bottom, var(--color-darkgreen) 0 70%, #fff 70% 100%);
    transform: translateY(-50px);
    .swiper-slide {
        img { width: 100%; aspect-ratio: 16/9; object-fit: cover; object-position: center; }
    }
    .swiper-button-next, .swiper-button-prev, .swiper-button-blank {
        position: relative;
        left: auto;
        right: auto;
        top: auto;
        width: 23px;
        height: 23px;
        background-color: var(--color-lightgreen);
        color: var(--color-darkgreen);
        border: 1px solid var(--color-lightgreen);
        border-radius: 100%;
        margin: 0;
        padding: 3px;
    }
    .swiper-button-prev { transform: rotate(90deg); }
    .swiper-button-next { transform: rotate(90deg); }
    .swiper-button-blank { background-color: transparent; border: 1px solid var(--color-lightgreen); }
}

section.about-us {
    background-color: var(--color-darkgreen);
    color: var(--color-lightgreen);
}

section.rental {
    background-color: var(--color-darkgreen);
    color: var(--color-lightgreen);

    #floor-selector {
        .bg { pointer-events: none; }
        .floor {
            fill: transparent;
            pointer-events: all;
            cursor: pointer;
            transition: fill 0.2s ease;
        }
        .floor:hover, .floor.active { fill: rgba(185,207,150,0.7); }
    }

    .table-rental {
        width: 100%; 
        border: 0;
        text-align: right;
        td:last-of-type { padding-right: 25px; }
        thead {
            td { 
                background-color: var(--color-lightgreen);
                color: var(--color-darkgreen);
                font-weight: 900;
                padding: 5px;
                white-space: nowrap;
            }
        }
        tbody {
            color: #fff;
            tr:nth-of-type(2n) { background: rgba(255,255,255,0.1); }
            tr:hover, tr.active { background: rgba(185,207,150,0.5); }
            td { border: none; padding-left: 5px; padding-right: 5px; }
        }
    }
}

section.team {
    h3 { 
        margin: 2rem 0 1rem 0;
        font-size: 1.7rem;
        font-weight: 800;
    }
    a {
        font-weight: 500;
        text-decoration: none;
        &:hover { text-decoration: underline; }
    }
}

section.contact-us {
    background-color: var(--color-darkgreen);
    background-image: url('../assets/pinecone.svg');
    background-size: 5% auto;
    background-repeat: no-repeat;
    background-position: 90% 100%;
    color: var(--color-lightgreen);
    h5 { font-weight: 800; color: #fff; margin-bottom: 1rem; }
}

.contact-form {
    .input-wrapper { 
        position: relative;
        label { 
            position: absolute; left: 15px; top: 15px; font-size: 1rem; transition: .2s ease-out;
            &.edged { top: 3px; font-size: .8rem; }
        }
    }
    
    input, textarea {
        width: 100%;
        padding: 20px 15px 5px 15px;
        border: 1px solid var(--color-lightgreen);
        margin-bottom: 0.25rem;
        &:focus { border: 1px dashed var(--color-lightgreen); }
    }
    textarea { max-height: 262px; }

    .inputs-layout { width: 35%; }
    .message-layout { width: 65%; padding-left: 2rem; }

    .message-layout + div { 
        text-align: left !important;
        .wpcf7-list-item { margin-left: 0; }
        label { display: flex; align-items: center; cursor: pointer; }
        input[type="checkbox"] { display: inline-block; width: 20px; height: 20px; margin-right: 5px; }
    }

    input[type="submit"] {
        width: auto;
        margin-top: 1rem;
        padding: 15px 20px;
        background: var(--color-lightgreen);
        color: var(--color-darkgreen);
        cursor: pointer;
    }
}

footer {
    .socials {
        a {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 30px;
            height: 30px;
            color: #000;
            background: var(--color-darkgreen);
            border-radius: 100%;
            text-decoration: none;
            transition: .2s ease;
            &:hover { background-color: var(--color-lightgreen); }
        }
    }
    .cookies {
        button { 
            color: var(--color-darkgreen);
            cursor: pointer;
            &:hover { color: var(--color-lightgreen); }
        }
    }
}

.twig-left {
    position: relative; overflow: hidden;
    * { position: relative; z-index: 2; }
    &::before {
        content: "";
        position: absolute;
        left: 0; top: 40%;
        width: 20%; height: 30vw;
        background-image: url('../assets/twig_green.svg');
        background-size: 100% auto;
        background-repeat: no-repeat;
        background-position: left;
    }

    &.about::before { top: 30%; left: -4%; transform: rotate(133deg); }
    &.availability::before { top: auto; bottom: 8%; left: -3%; transform: rotate(130deg); width: 17%; }
    &.contact-us::before { top: auto; bottom: -5%; left: -6%; transform: rotate(25deg); width: 22%; height: 35vw; }
}

.twig-right {
    position: relative; overflow: hidden;
    * { position: relative; z-index: 2; }
    &::after {
        content: "";
        position: absolute;
        right: 0; top: 5%;
        width: 20%; height: 30vw;
        background-image: url('../assets/twig_green.svg');
        background-size: 100% auto;
        background-repeat: no-repeat;
        background-position: right;
        z-index: 1;
    }
    &.twig-right-gray::after { background-image: url('../assets/twig_gray.svg'); }

    &.about::after { top: 0; right: -3%; transform: rotate(-105deg); width: 15%; }
    &.location::after { top: 42%; right: -1%; transform: rotate(-115deg); }
    &.team::after { top: 0%; right: -10%; transform: rotate(-60deg); width: 25%; height: 40vw; }
}

.w1920 {
    position: relative;
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
    overflow-x: hidden;
}

* { outline: none; }

h2 {
    font-size: 3rem;
    font-weight: 700;
}

p { margin-bottom: 1rem; }

.bg-darkgreen { background-color: var(--color-darkgreen); }
.bg-lightgreen { background-color: var(--color-lightgreen); }
.color-darkgreen { color: var(--color-darkgreen); }
.color-lightgreen { color: var(--color-lightgreen); }

.io-hidden{
	opacity: 0;
	transform: translateY(100px);
    transition-duration: 1s;
    transition-timing-function: ease-out;
    &.io-left{transform: translateX(-80%);}
    &.io-right{transform: translateX(80%);}
}

.io-show{
	opacity: 1 !important;
	transform: translate(0, 0) !important;
}

.max-w-edgetainer { max-width: calc((1920px - 1280px)/2 + 1280px); }
.w-edgetainer { width: calc((1920px - 1280px)/2 + 1280px); }



@media (max-width: 1280px){ /* xl */
    .max-w-edgetainer { max-width: calc((100vw - 960px)/2 + 960px); }
    .w-edgetainer { width: calc((100vw - 960px)/2 + 960px); }
}

@media (max-width: 960px){ /* lg */
    .max-w-edgetainer { max-width: calc((100vw - 782px)/2 + 782px); }
    .w-edgetainer { width: calc((100vw - 782px)/2 + 782px); }

    section.gallery { transform: translateY(-20px); }
}

@media (max-width: 782px){ /* md */
    .max-w-edgetainer { max-width: calc((100vw - 600px)/2 + 600px); }
    .w-edgetainer { width: calc((100vw - 600px)/2 + 600px); }

    .team img { margin: auto; }
}

@media (max-width: 600px){ /* sm */
    .container { padding-left: 10px; padding-right: 10px; }

    h2 { font-size: 2.2rem; } 

    #location-map-layout { width: 100%; }
    #location-map { width: 100%; }
}

@media (max-width: 480px){ /* xs */
    .contact-form .inputs-layout { width: 100%; }
    .contact-form .message-layout { width: 100%; padding-left: 0; }
}

@keyframes floatAcrossCycle {
    0% {
        left: 40vw;
        transform: translateY(0) perspective(25vw) translateZ(-50px);
        opacity: 0;
    }
    15% {
        left: 20vw;
        transform: translateY(10%) perspective(25vw) translateZ(0);
        opacity: 1;
    }
    30% {
        left: 0;
        transform: translateY(0) perspective(25vw) translateZ(-50px);
        opacity: 0;
    }
    100% {
        left: 0;
        transform: translateY(0) perspective(25vw) translateZ(-50px);
        opacity: 0;
    }
}

@media (min-width: 1921px) {
    @keyframes floatAcrossCycle {
        0% {
            left: 500px;
            transform: translateY(0) perspective(480px) translateZ(-50px);
            opacity: 0;
        }
        15% {
            left: 250px;
            transform: translateY(10%) perspective(480px) translateZ(0);
            opacity: 1;
        }
        30% {
            left: 0;
            transform: translateY(0) perspective(480px) translateZ(-50px);
            opacity: 0;
        }
        100% {
            left: 0;
            transform: translateY(0) perspective(480px) translateZ(-50px);
            opacity: 0;
        }
    }
}

@keyframes swing {
    0%, 100% {
        transform: rotate(0deg);
    }
    10% {
        transform: rotate(2deg);
    }
    20%, 40%, 60% {
        transform: rotate(-6deg);
    }
    30%, 50%, 70% {
        transform: rotate(4deg);
    }
    80% {
        transform: rotate(-2deg);
    }
    90% {
        transform: rotate(2deg);
    }
}