/* Basic CSS Reset */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* ************** CSS START *********************N */
body,
html {
    box-sizing: border-box;
    font-family: 'Ruda', Courier, monospace;
    scroll-behavior: smooth;
    overflow: hidden;
    padding: 0;
    margin: 0;

    /* COLORS */
    --accent: #39ff14;
    /* --accent: #E31221; */
    --dark: #222222;
    /* --dark: #372022; */
    --navajo: navajowhite;
}

#home #home-article h1,
#home #home-article h1 span {
    overflow: hidden;
    /* font-size: clamp(4rem 3vw, 3rem); */
    /* font-size: clamp(2rem, 3vw, 4rem);  */
}

#ulDesktop li a {
    position: relative;
    text-decoration: none;
    display: inline-block;
    transition: all ease-in-out 350ms;
}

#ulDesktop li a:after {
    display: block;
    content: '';
    border-bottom: 3px solid var(--accent);
    border-radius: 15px;
    transform: scaleX(0);
    transition: all ease-in-out 350ms;
    transform-origin: 100% 50%
}

#ulDesktop li a:hover:after {
    transform: scaleX(1);
    transform-origin: 50% 100%;
}

#ulDesktop li a:hover {
    color: var(--navajo);
}



/* ******************************** DESKTOP + TABLET ************************** */

@media screen and (orientation: landscape),
screen and (max-width: 64em) and (orientation: portrait) {

    #mobileMenu {
        display: none;
    }

    #mobileNav {
        display: none;
    }

    #desktopMenu {
        display: flex;
        position: fixed;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        height: 10vh;
        min-width: 100vw;
        z-index: 10;
        padding: 1rem;
        background-color: transparent;
        transition: all ease-in-out .4s;
    }

    #logo {
        width: 80px;
        height: 80px;
        padding: 0;
        margin: 0;
        transition: all ease-in-out .3s;

    }

    #ulDesktop {
        display: flex;
        flex-direction: row;
        font-size: 1.5rem;
        font-weight: 700;
        padding: 0 3rem;
        transition: all ease-in-out .3s;

    }

    #ulDesktop li {
        list-style: none;
        transition: all ease-in-out .3s;

    }

    #ulDesktop li a {
        color: whitesmoke;
        padding: 1rem;
        text-decoration: none;
    }

    /* desktopMenu reduced */

    #desktopMenu.reduced {
        height: 7vh;
        background-color: rgba(0, 0, 0, 0.7);
        transition: 0.4s;
    }

    #desktopMenu.reduced ul {
        display: flex;
        list-style: none;
    }

    #desktopMenu.reduced ul li {
        display: flex;
        align-items: center;
        padding: 0;
        cursor: pointer;
        font-weight: 700;
        font-size: 1rem;
    }

    #desktopMenu.reduced ul li a {
        text-decoration: none;
        color: whitesmoke;
    }

    #desktopMenu.reduced a img {
        height: 50px;
        width: 50px;
        border: 2px solid var(--accent);
        border-radius: 5px;
    }

}

/* ******************************** PHONE ************************** */

@media screen and (max-width: 40em) and (orientation: portrait) {
    #desktopMenu {
        display: none;
    }

    #socialNav {
        display: none;
    }

    body,
    html {
        display: flex;
        flex-direction: column;
    }

    #home-article {
        display: flex;
        flex-direction: column;
        justify-content: space-around;
        align-items: center;
        margin: 0 auto;
        padding: 0 30px;
        text-align: center;


    }

    #mobileMenu {
        display: flex;
        position: fixed;
        z-index: 9;
        flex-direction: row;
        background-color: transparent;
        justify-content: space-between;
        align-items: center;
        width: 100vw;
        height: fit-content;
        transition: all ease-in-out .8s;
    }

    #mobileMenu.active {
        background-color: var(--dark);
    }

    #mobileLogo {
        position: relative;
        width: 40px;
        height: 40px;
        padding: .5rem;
        margin: 0;
        z-index: 11;
    }

    #home article h1 {
        font-size: 3rem;
        margin: 1.5rem auto;
    }

    #link-contact {
        margin-top: 3rem;
    }

      /* Hamburger div container */
    #divHam {
        display: flex;
        flex-direction: column;
        align-content: center;
        width: 40px;
        height: 40px;
        padding-right: 0;
        margin-right: .8rem;
    }

    /* Hamburger bars */
    #divHam span {
        display: block;
        width: 40px;
        height: 5px;
        margin: auto;
        border-radius: 25px;
        background-color: var(--accent);
        transition: all ease-in-out .2s;
    }

    #divHam.xsign .bar:nth-child(2) {
        opacity: 0;
    }

    #divHam.xsign .bar:nth-child(1) {
        transform: translateY(13px) translateX(1px) rotate(-45deg);
    }

    #divHam.xsign .bar:nth-child(3) {
        transform: translateY(-13px) translateX(1px) rotate(45deg);
    }

    #mobileNav {
        display: flex;
        position: fixed;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        list-style: none;
        padding: 1rem 0;
        width: 100vw;
        height: 100%;
        z-index: 8;
        overflow: hidden;
        margin-top: -1000px;
        /* menu removed from screen */
        transition: all ease-in-out .3s;
    }

    #mobileNav.active {
        margin-top: 0;
        background-color: var(--dark);
        transition: all ease-in-out .8s;
    }

    #mobileNav li {
        display: flex;
        flex-direction: column;
        padding: 1.5rem;
        font-size: 1.5em;
        font-weight: 700;

    }

    #mobileNav li a {
        color: var(--accent);
        text-align: center;
        text-decoration: none;
    }

}

/* *********************** SOCIAL ******************************** */
/* nav */

.socialNav {
    display: flex;
    position: fixed;
    flex-direction: column;
    background-color: transparent;
    top: 40vh;
    border-radius: 0 15px 15px 0;
    margin-left: -8.5rem;
    z-index: 20;
}

.socialUl {
    display: flex;
    position: relative;
    flex-direction: column;
    justify-content: space-around;
    list-style: none;
    margin: 0;
    padding-left: 0;
}

.socialLi {
    display: block;
    padding: .8rem 1rem .8rem 1.5rem;
    border-right: 3px solid var(--accent);
    transition: all ease-in-out .4s;
}

.socialLi:first-child {
    border-top: 2px solid var(--accent);
    border-radius: 0 15px 0 0;
}

.socialLi:last-child {
    border-bottom: 2px solid var(--accent);
    border-radius: 0 0 15px 0;
}

.socialLi:hover {
    transform: translateX(8.5rem);

}

.socialA {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 10rem;
    text-decoration: none;
    color: var(--navajo);
}

.socialSpan {
    font-size: 1.3rem;
    color: var(--accent);
}

.socialImg {
    width: 30px;
    height: 30px;
}


/* **************************** ALL SECTIONS *************************** */

.sections {
    width: 100vw;
    min-height: 100vh;
    scroll-behavior: smooth;
    background-color: var(--dark);
    z-index: 1;
}

.sections h1 {
    font-size: 3rem;
    cursor: pointer;
    z-index: 3;

}

section {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
    min-height: 100vh;
    background-color: var(--dark);
    color: whitesmoke;
}

/* **************************** HOME *************************** */

#home {}

#home h1 {
    font-size: 3vw;
    color: var(--navajo);
}

#home button {
    padding: .7rem 2rem;
    background-color: transparent;
    border: 3px solid var(--accent);
    border-radius: 5px;
    color: var(--navajo);
    z-index: 0;
    position: relative;
    transition: all ease-in-out .4s;
    font-weight: 900;
}

#home button:hover {
    background-color: var(--accent);
    color: #222222;
    font-weight: 900;
}

#home h1 a {
    color: var(--navajo);
    transition: all ease-in-out .4s;
}

#home h1 a:hover {
    color: var(--accent);
}

#home h1 span {
    display: inline-block;
    position: absolute;
    text-decoration: none;
    transition: all ease-in-out 350ms;
}

#home h1 span:after {
    display: block;
    content: '';
    border-bottom: 3px solid var(--accent);
    border-radius: 15px;
    transform: scaleX(0);
    transition: all ease-in-out 350ms;
    transform-origin: 100% 50%
}

#home h1 span:hover:after {
    transform: scaleX(1);
    transform-origin: 50% 100%;
    color: var(--accent);
}

.name-dot {
    display: inline-block;
    position: absolute;
    color: var(--accent);
}

.name-dot:hover,
.name-dot:hover:after {
    content: none;

}



/* **************************** ABOUT *************************** */
#about {
    justify-content: center;
}

#about article {
    cursor: pointer;
    width: 55%;
    text-align: center;
}

#about h1 {
    transition: all ease-in-out .4s;
}

#about h1:hover {
    color: var(--accent);
}

/**************** SERVICES *************************************/

#services {
    justify-content: center;
}

#services h1 {
    transition: all ease-in-out .4s;
}

#services h1:hover {
    color: var(--accent);

}

.cardContainer {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: 70%;
    padding-top: 1rem;
    gap: 1.5rem;
    margin: 0 auto;

}

.card {
    border: 2px solid #ccc;
    padding: 1.5rem;
    text-align: center;
    transition: all ease-in-out .4s;
}

.card:hover {
    scale: 1.05;
}

.card.basic h1 {
    color: #A97A45;
}

.card.standard h1 {
    color: #A9AAAE;
}

.card.premium h1 {
    color: #D3AF37;
}

/********************************** WORK ***************************/

#work {
    justify-content: center;
}

#work h1 {
    padding-bottom: 0;
    transition: all ease-in-out .4s;
}

#work h1:hover {
    color: var(--accent);
}

/* Carousel */
.carousel-container {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    max-width: 100vw;
    height: 60vh;
}

.carousel {
    display: flex;
    flex-direction: row;
    position: relative;
    justify-content: center;
    align-items: center;
    max-width: 100%;
    max-height: 100%;
}

.mySlides {
    display: none;
}

.mySlides.active {
    display: block;
}

.prev,
.next {
    position: absolute;
    font-size: 2rem;
    background-color: rgba(0, 0, 0, 0.4);
    color: var(--navajo);
    border: none;
    border-radius: 5px;
    padding: .7rem .6rem .9rem .6rem;
    z-index: 0;
    cursor: pointer;
    transition: all ease-in-out .4s;
}

.prev:hover,
.next:hover {
    color: var(--accent);
}

.prev {
    left: 1rem;
}

.next {
    right: 1rem;
}

.dots {
    display: flex;
    flex-direction: row;
    position: absolute;
    padding: .5rem 1rem;
    bottom: 1rem;
    gap: 1rem;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 5px;
}

.dot {
    display: block;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.4);
    cursor: pointer;

}

.dot.active {
    background-color: var(--accent);
}

/******************* CONTACT ******************************/

#contact {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    width: 100vw;
    height: 100vh;
    justify-content: center;
    align-items: center;
}

#contact h1 {
    transition: all ease-in-out .4s;
}

#contact h1:hover {
    color: var(--accent);
}

form {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 50vw;
    z-index: 3;
}

.form-group {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    width: 100%;
    color: var(--navajo);

}

#email:focus,
#subject:focus,
#message:focus {
    color: var(--navajo);
    background-color: rgba(255, 255, 255, 0.3);
}

#email:focus-visible,
#subject:focus-visible,
#message:focus-visible {
    outline: 2px solid var(--accent);
}

.form-group label {
    display: inline-block;
    font-weight: bold;
    padding: 2rem 0 .5rem 0;
}

input[type="email"],
input[type="text"],
textarea {
    width: 100%;
    padding: 1rem;
    margin: 0;
    border: transparent;
    border-radius: 5px;
    background-color: rgba(255, 255, 255, 0.3)
}



textarea {
    resize: none;
}

.submitDiv {
    /* align-self: flex-end; */
    margin: 1rem 0 0 auto;
    z-index: 3;

}

.submitBtn {
    font-weight: 900;
    width: max-content;
    padding: .7rem 2rem;
    background-color: transparent;
    color: var(--navajo);
    border: 3px solid var(--accent);
    border-radius: 5px;
    cursor: pointer;
    transition: all ease-in-out .4s;

}

.submitBtn:focus {
    background-color: #39ff14;
}

.submitBtn:hover {
    background-color: var(--accent);
    color: #222222;
}

/**************** END CONTACT ****************/
.shinto {
    position: absolute;
    opacity: .3;
    margin: 70vh 30vw 0 10vw;
    height: 100vh;
    z-index: 0;
    background-size: cover;
}

.shinto.tanabata {
    margin-top: 0;
    margin-right: 0;
}

.shinto.temple {
    margin-top: 5vh;
    margin-left: 80vw;
}

.shinto.cherry {
    margin-top: 5vh;
    margin-right: 80vw;
}

.shinto.cherry.second {
    margin-top: 120vh;
    margin-left: 130vw;
    transform: scaleX(-1) scaleY(-1);
}

/* .shinto.tanabata {
    margin-top: 100vh;
} */

.shinto.japan {
    margin-top: 0;
}