@charset "UTF-8";

html{
    font-size: 62.5%;
    scroll-behavior: smooth;

}
body{
    font-family:
    "Noto Sans JP",
    "Climate Crisis",
    sans-serif;
    font-style: normal;
    color: black;
    background-color: white;
    line-height: 1;
}
img{
    max-width: 100%;
    height: auto;
}
a {
  position: relative;
  overflow: hidden;
}
a::after{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 20, 0.15);
    opacity: 0;
    transition: opacity 0.1s ease;
    pointer-events: none;
}
a:hover::after{
    opacity: 1;
}
.nav__cell a::after,
h1 a::after{
    display: none;
}
/*=================== header ======================*/
.header{
    position: relative;
    z-index: 10;
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 48px 3.3%;
}
h1{
    width: 8.13%;
    min-width: 117px;

}

.nav__ul{
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 36px;
}
.nav__cell{
    color: #000;
    font-family: "Noto Sans JP";
    font-size: 24px;
    font-weight: 900;
}
.menu,
.menu__close{
    display: none;
}

    /*+++++++++++++++++++      sp size     ++++++++++++++++++++++ */
@media(max-width:768px){
    .header{
        width: 100%;
        padding: 16px 3.3%;
        position: relative;
    }
    h1{
        width: 49px;
        min-width: 0;
    }
    .nav__ul{
        position: absolute;
        top: 72px;
        right: 3.3%;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 36px;

        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-6px); 

        transition:
            opacity .35s ease,
            transform .35s ease,
            visibility 0s linear .35s; 

        background-color: rgb(255, 255, 255,0.9);
        padding-bottom: 48px;
        padding-left: 72px;
        padding-right: 12px;
        right: 0;
    }
    .nav__ul.active{
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
        transition:
            opacity .35s ease,
            transform .35s ease,
            visibility 0s;
        background-color: rgb(255, 255, 255,0.9);
        padding-bottom: 48px;
        padding-left: 72px;
        padding-right: 12px;
        right: 0;
    }

    .nav__cell{
        color: #000;
        font-family: "Noto Sans JP";
        font-size: 24px;
        font-weight: 900;
    }
    .menu{
        display: block;
        width: 8.8%;
    }
    .menu--line{
        width: 100%;
        height: auto;
    }
    .menu.active{
        display: none;

    }
    .menu__close{
        display: none;
    }
    .menu__close.active{
        display: flex;
        width: 8.8%;
        justify-content: center;
        align-items: center;

    }
    .menu__close--line{
        width: 75%;
        height: auto;
    }
    
}
    
/*============= mainvisual ==================*/
.title__title{
    color: #000;
    font-family: "Climate Crisis";
    font-size: 124px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: -2.48px;

    margin-top: -180px;
    margin-left: 14.3%;
}

    /*+++++++++++++++++++      sp size     ++++++++++++++++++++++ */
@media(max-width:768px){
    .title__title{

        font-size: 72px;

        margin-top: 0px;
        margin-left: 3.2%;
    }

    .gallery{
        margin-top: 170px;
        max-width: 1440px;
        margin: 0 auto;
    }
}
/*=================== about ===================*/
.about__body{
    display: flex;
    flex-direction: column;
    gap: 24px;

    width: 45.8%;
    margin: 0 auto;
    margin-top: 108px;
}
.about__body--title{
    color: #000;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: -0.32px;
}
.span--subname{
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.48px;
}
.span--name{
    font-size: 48px;
    font-weight: 900;
    letter-spacing: -0.96px;
}


.about__body__content{
    display: flex;
    gap: 24px;

}
.about__body__content--text{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 24px;
    align-self: stretch;
    
    width: calc((100% - 24px) / 2 );

}
.about__body__content--text{
    color: #000;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 150%; /* 24px */
}
.about__content--photo{
    background-color: black;   
    width: calc((100% - 24px) / 2 );
    padding: 12px;
    height: 100%;
    aspect-ratio: 1/1;

    display: flex;
    align-items: center;
    justify-content: center;
}

    /*+++++++++++++++++++      sp size     ++++++++++++++++++++++ */
@media(max-width:768px){
    .about__body{
        width: 100%;
        margin: 0 auto;
        margin-top: 48px;
        padding: 0;
    }
    .about__body--title{
        font-size: 14px;
        padding-left: 24px;
    }
    .span--subname{
        font-size: 20px;
    }
    .span--name{
        font-size: 36px;
    }

    .about__body__content{
        display: flex;
        flex-direction: column-reverse;
        gap: 24px;

    }
    .about__body__content--text{
        width: 100%;
        padding:0 24px;

    }
    .about__body__content--text{
        font-size: 14px;
        line-height: 150%; /* 24px */
        font-weight: 500;
    }
    .about__content--photo{
        width: 100%;
        padding: 24px;
    }

}
/* ============= strength ================= */
.strength{
    background-color: #000;
    padding: 96px 0;
    display: flex;
    flex-direction: column;
    gap: 48px;

    justify-content: center;
    align-items: center;

    margin-top: 96px;
}
.strength__title,
.strength__body{
    width: 45.8%;
    color: white;
}
.strength__title{
    color: #FFF;
    font-family: "Noto Sans JP";
    font-size: 48px;
    font-style: normal;
    font-weight: 900;
    line-height: normal;
    letter-spacing: -0.96px;
}
.strength__body{
    display: flex;
    flex-direction: column;
    justify-items: start;
    gap: 72px;
}
.strength__body--content{
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.strength__body--title{
    color: #FFF;
    font-family: "Noto Sans JP";
    font-size: 32px;
    font-style: normal;
    font-weight: 900;
    line-height: 150%; /* 48px */
    letter-spacing: 4.8px;
}
.strength__body--text{
    color: #FFF;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 175%; /* 24px */
}

    /*+++++++++++++++++++      sp size     ++++++++++++++++++++++ */
@media(max-width:768px){
    .strength{
        background-color: #000;
        padding: 48px 0;
        display: flex;
        flex-direction: column;
        gap: 48px;

        justify-content: center;
        align-items: center;

        margin-top: 72px;
    }
    .strength__title,
    .strength__body{
        width: 100%;
        color: white;

        padding: 0 24px;
    }
    .strength__title{
        font-size: 36px;
    }
    .strength__body{
        gap: 48px;
    }
    .strength__body--content{
        display: flex;
        flex-direction: column;
        gap: 14px;
    }
    .strength__body--title{
        font-size: 24px;
    }
    .strength__body--text{
        font-size: 14px;
        font-weight: 500;
    }
}
/* ================= tools ================== */

.tools{
    display: flex;
    flex-direction: column;
    gap: 48px;
    width: 45.8%;
    margin: 96px auto;

}
.tools__title{

    color: #000;
    font-family: "Noto Sans JP";
    font-size: 48px;
    font-style: normal;
    font-weight: 900;
    line-height: normal;
    letter-spacing: -0.96px;
}
.tools__body{
    gap: 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;

    max-width: 1440px;
}
.tools__body--tool{
    color: #FFF;
    font-family: "Noto Sans JP";
    font-size: 32px;
    font-style: normal;
    font-weight: 900;
    line-height: normal;
    letter-spacing: -0.64px;

    background-color: #000;
    text-align: center;
    padding: 8px;
}
    /*+++++++++++++++++++      sp size     ++++++++++++++++++++++ */
@media(max-width:768px){
    .tools{
        gap: 48px;
        width: 100%;
        margin: 72px auto;
        padding: 0 24px;

    }
    .tools__title{
        font-size: 36px;
        font-weight: 900;
    }
    .tools__body{
        gap: 24px;
        display: grid;
        grid-template-columns: 1fr;

    }
    .tools__body--tool{
        font-size: 32px;

        background-color: #000;
        text-align: center;
        padding: 8px;
    }
}
/* ================== likes ================== */
.likes{
    display: flex;
    flex-direction: column;
    gap: 48px;
    margin: 96px auto;
    padding-top: 96px;

    justify-content: center;
    align-items: center;

    max-width: 1440px;
}
.likes__title{
    color: #000;
    font-family: "Noto Sans JP";
    font-size: 48px;
    font-style: normal;
    font-weight: 900;
    line-height: normal;
    letter-spacing: -0.96px;

    width: 45.8%;

}
.likes__body{
    display: flex;
    flex-direction: column;
    gap: 48px;
    width: 69.6%;

}
.likes__body--cell{
    display: flex;
    gap: 24px;
    align-items: stretch;
}
.likes--photo{
    aspect-ratio: 2/1;
    flex: 0 0 calc((100% - 24px) / 2 );
    overflow: hidden;


}
.likes--photo img{
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.likes--text{
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.likes__cell--title{
    color: #000;
    font-family: "Noto Sans JP";
    font-size: 28px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.48px;
}
.likes__cell--text{
    color: #000;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 175%; /* 24px */
    letter-spacing: -0.32px;
}
    /*+++++++++++++++++++      sp size     ++++++++++++++++++++++ */
@media(max-width:768px){
    .likes{
        gap: 48px;
        margin: 76px auto;
        padding: 0 24px;
        padding-top: 48px;

        justify-content: center;
        align-items: center;

    }
    .likes__title{
        font-size: 36px;

        width: 100%;
    }
    .likes__body{
        display: flex;
        flex-direction: column;
        gap: 48px;
        width: 100%;
        padding: 0 ;

    }
    .likes__body--cell{
        display: flex;
        flex-direction: column;
        gap: 24px;
        align-items: stretch;
    }
    .likes--text{
        display: flex;
        flex-direction: column;
        gap: 14px;
    }
    .likes__cell--title{
        font-size: 20px;
    }
    .likes__cell--text{
        font-size: 14px;
        font-weight: 500;
    }
}
/*=============== footer =================*/

.footer{
    background-color: #000;
    color: white;
    padding-left: 171px;

    margin-top: 180px;
}
.contact{
    display: flex;
    flex-direction: column;
    gap: 72px;
    padding: 48px;
}
.contact__title{
    color: #FFF;
    font-family: "Climate Crisis";
    font-size: 128px;
    font-style: normal;
    font-weight: 400;
    line-height: 80%; /* 102.4px */
}
.contact__mail{
    color: #FFF;
    font-family: "Noto Sans JP";
    font-size: 36px;
    font-style: normal;
    font-weight: 900;
    line-height: normal;

    width: auto;
}
.footer__logomark{
    width: 168px;
    height: 115px;
    aspect-ratio: 168/115;

    margin-left: 48px;
}
small{
    color: #FFF;
    font-family: "Noto Sans JP";
    font-size: 12px;
    font-style: normal;
    font-weight: 900;
    line-height: normal;

    display: block;
    text-align: center;
    padding-top: 24px;
    padding-bottom: 12px;
}
/*+++++++++++     sp size     +++++++++++*/

    @media(max-width:768px){
    .footer{
        padding-left: 24px;
        margin-top: 40px;
        padding-top: 72px;
    }
    .contact{
        width: 100%;
        flex-direction: column;
        gap: 40px;
        padding: 0;
    }
    .contact__title{
        color: #FFF;
        font-family: "Climate Crisis";
        font-size: 64px;
        font-style: normal;
        font-weight: 400;
        line-height: 80%; /* 102.4px */
    }
    .contact__mail{
        color: #FFF;
        font-family: "Noto Sans JP";
        font-size: 20px;
        font-style: normal;
        font-weight: 900;
        line-height: normal;

        width: auto;
    }
    .footer__logomark{
        width: 168px;
        height: 115px;
        aspect-ratio: 168/115;

        margin: 48px auto 0;
    }
    small{
        color: #FFF;
        font-family: "Noto Sans JP";
        font-size: 12px;
        font-style: normal;
        font-weight: 900;
        line-height: normal;

        display: block;
        text-align: center;
        padding-top: 24px;
        padding-bottom: 12px;
    }

    .span--title{
        font-size: 36px;
    }
    }   