/*
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-forest.jpg');
    background-size: cover;
    background-position: center;
    overflow: hidden;

    .hero-video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 50% 75%;
        pointer-events: none;
        z-index: 0;
    }

    > .container {
        position: relative;
        z-index: 1;
    }

    .hero-reveal {
        opacity: 0;
        visibility: hidden;
        transform: translateY(12px);
        transition: opacity 0.8s ease, transform 0.8s ease, visibility 0s linear 0.8s;
    }

    .hero-reveal.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        transition-delay: 0s;
    }
}

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 {
        position: relative;
        overflow: hidden;
        background: none !important;
        background-image: none !important;
        min-height: clamp(20rem, 38vw, 28rem);

        .headline-falling-eight {
            display: inline-block;
            transition: opacity 0.2s ease;
        }

        .headline-falling-eight.is-detached {
            opacity: 0;
        }

        .pinecone-stage {
            position: absolute;
            left: clamp(0.2rem, 1.2vw, 0.9rem);
            bottom: 0.35rem;
            width: min(48rem, 86vw);
            height: clamp(8rem, 20vw, 11.2rem);
            margin: 0;
            z-index: 3;
            pointer-events: none;
        }

        .pinecone,
        .pinecone-eight {
            position: absolute;
            will-change: transform;
            user-select: none;
        }

        .pinecone {
            width: clamp(3.8rem, 8vw, 6.6rem);
            transform-origin: 50% 70%;
        }

        .pinecone-eight {
            left: 52%;
            top: -4.6rem;
            transform: translateX(-50%);
            opacity: 0;
            font-size: clamp(3.7rem, 8.2vw, 6.6rem);
            line-height: 1;
            font-weight: 800;
            color: var(--color-lightgreen);
            text-shadow: 0 8px 22px rgba(8, 51, 42, 0.35);
        }

        .pinecone-stage.is-active .pinecone-eight {
            opacity: 1;
        }

        .pinecone--1 { left: 0.15rem; bottom: 0.25rem; transform: rotate(-8deg); }
        .pinecone--2 { left: 3.25rem; bottom: 0.2rem; transform: rotate(-6deg); }
        .pinecone--3 { left: 6.7rem; bottom: 0.1rem; transform: rotate(-16deg); }
        .pinecone--4 { left: 9.55rem; bottom: 2.55rem; transform: rotate(14deg); }
        .pinecone--5 { left: 12.55rem; bottom: 0.18rem; transform: rotate(5deg); }
        .pinecone--6 { left: 15.85rem; bottom: 0.22rem; transform: rotate(9deg); }

        @media (max-width: 767px) {
            .headline-falling-eight {
                opacity: 1 !important;
            }

            .pinecone-stage {
                display: none;
            }

            .pinecone {
                width: clamp(3rem, 11vw, 4.7rem);
            }

            .pinecone--1 { left: 0; bottom: 0.12rem; }
            .pinecone--2 { left: 2.35rem; bottom: 0.08rem; }
            .pinecone--3 { left: 4.95rem; bottom: 0.05rem; }
            .pinecone--4 { left: 7.15rem; bottom: 1.45rem; }
            .pinecone--5 { left: 9.55rem; bottom: 0.1rem; }
            .pinecone--6 { left: 12.15rem; bottom: 0.1rem; }
        }
    }
}

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:first-of-type { text-align: left; padding-left: 25px; }
        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); }
        }
    }
}

@keyframes twig-sway {
    0%   { transform: rotate(var(--twig-rotate, 0deg)); }
    30%  { transform: rotate(calc(var(--twig-rotate, 0deg) - 5deg)); }
    65%  { transform: rotate(calc(var(--twig-rotate, 0deg) + 6deg)); }
    100% { transform: rotate(var(--twig-rotate, 0deg)); }
}

.twig-left {
    position: relative; overflow: hidden;
    * { position: relative; z-index: 2; }
    &::before {
        content: "";
        position: absolute;
        left: 0; top: 40%;
        width: 20%; aspect-ratio: 2/3;
        background-image: url('../assets/twig_green.svg');
        background-size: cover;
        background-repeat: no-repeat;
        background-position: left;
        transform: rotate(var(--twig-rotate, 0deg));
        transform-origin: 15% 75%;
        animation: twig-sway 7s ease-in-out infinite;
    }

    &.about::before { top: 15%; left: -2%; --twig-rotate: 123deg; width: 22%; }
    &.availability::before { top: auto; bottom: 20%; left: -2%; --twig-rotate: 130deg; width: 17%; }
    &.contact-us::before { top: auto; bottom: 8%; left: -8%; --twig-rotate: 25deg; width: 22%; max-width: 650px; }
}

.twig-right {
    position: relative; overflow: hidden;
    * { position: relative; z-index: 2; }
    &::after {
        content: "";
        position: absolute;
        right: 0; top: 5%;
        width: 20%; aspect-ratio: 2/3;
        background-image: url('../assets/twig_green.svg');
        background-size: cover;
        background-repeat: no-repeat;
        background-position: right;
        z-index: 1;
        transform: rotate(var(--twig-rotate, 0deg));
        transform-origin: 85% 75%;
        animation: twig-sway 6s ease-in-out infinite 1.5s;
    }
    &.twig-right-gray::after { background-image: url('../assets/twig_gray.svg'); }

    &.about::after { top: -12%; right: -3%; --twig-rotate: -105deg; width: 15%; }
    &.location::after { top: 30%; right: -1%; --twig-rotate: -115deg; }
    &.team::after { top: auto; bottom: 25%; right: -10%; --twig-rotate: -60deg; width: 22%; max-width: 750px; animation-duration: 10s; }
}

@media (prefers-reduced-motion: reduce) {
    .twig-left::before,
    .twig-right::after {
        animation: none;
    }
}

.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; }
    section.contact-us { background-size: 80px auto; }

    .about.twig-right::after { top: -5%; width: 42%; }
    .location.twig-right::after { top: 5%; width: 42%; }
    .team.twig-right::after { width: 42%; bottom: auto; top: -5%; right: -12%; }
    .contact-us.twig-left::before { width: 42%; left: -15%; bottom: 0; }
}

@media (max-width: 600px){ /* sm */
    .container { padding-left: 10px; padding-right: 10px; }

    header .menu a { padding: 0.5rem 0; font-size: 1.2rem; }

    h2 { font-size: 2.2rem; } 

    #location-map-layout { width: 100%; }
    #location-map { width: 100%; }

    section.rental .table-rental { font-size: .9rem; }
    section.rental .table-rental thead td, section.rental .table-rental tbody td { padding: 5px 20px; }
}

@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;
        }
    }
}
