@charset "utf-8";

*{
    margin:0;
    padding:0;
    list-style: none;
    text-decoration: none;
    color: #333;
}

.josefin-sans-<uniquifier> {
    font-family: "Josefin Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: <weight>;
    font-style: normal;
}


.noto-sans-jp-<uniquifier> {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

/* font-family */
.logo, h1, h2, .nav_ul_pc li, .nav_ul_sp li,.footer-nav-ul li{
    font-family: "Josefin Sans", sans-serif;
}

p{
    font-family: "Noto Sans JP", sans-serif;
}

/* font-weight */
.logo, h1, h2, .nav_ul_pc li, .nav_ul_sp li,.footer-nav-ul li{
    font-weight: 700;
}

/* font-size */
h2{
    font-size: 36px;
}
p{
    font-size: 16px;
}

/* line-height */
p{
    line-height: 1.8;
}

/* margin */
section {
    margin-bottom: 5%;
}
.topic {
    margin-top: 8%;
}
@media screen and (max-width: 768px) {
    h2{
        font-size: 28px;
    }
}
@media screen and (max-width: 500px) {
    h2{
        font-size: 24px;
    }
}
/* ------------------
    header
------------------- */
.sp_only{
    display: none;
}

.nav_pc{
    display: flex;
    justify-content: space-between;
    padding: 1.2%;
    width: 100vw;
    max-width: 1440px;
    margin: 0 auto;
}

.logo{
    font-size: 2rem;
}

.nav_ul_pc,
.nav_ul_sp {
    display: flex;
}

.nav_ul_pc li {
    padding-right: 2vw;
    margin: auto 0;
    font-size: 1.2rem;
}

.nav_ul_pc li:last-of-type {
    padding-right: 0;
}

@media screen and (max-width:1200px) {
    .nav_pc{
        padding: 2%;
    }
    .nav_ul_pc li {
    font-size: 1rem;
    }
    .logo {
    font-size: 1.8rem;
    }
    .top img{
        height: 37vw;
    }
}

@media screen and (max-width:600px) {
    .nav_ul_pc li {
    font-size: 0.8rem;
    }
    .logo {
    font-size: 1.6rem;
    }
}

@media screen and (max-width:430px){
    .pc_only{
        display: none;
    }
    .sp_only{
        display: flex;
    }
    .nav_sp{
        display: flex;
        justify-content: space-between;
        padding: 1.2%;
        width: 100vw;
    }
    .header_sp {
        justify-content: space-between;
        padding: 3%;
    }
    .hamberger {
        position: relative;
        height: 3vw;
        width: 5vw;
        margin: auto 0;
        cursor: pointer;
    }
    .hamberger .line1{
        position: absolute;
        width: 100%;
        height: 2px;
        background-color: black;
        top:0;
        transition: all 0.5s ease;
    }
    .hamberger .line2{
        position: absolute;
        width: 100%;
        height: 2px;
        background-color: black;
        top: 50%;
        transition: all 0.5s ease;
    }
    .hamberger .line3{
        position: absolute;
        width: 100%;
        height: 2px;
        background-color: black;
        top: 100%;
        transition: all 0.5s ease;
    }
    .cross .line1{
        transform: rotate(-45deg);
        top: 50%;
        
    }
    .cross .line2{
        display: none;
    }
    .cross .line3{
        transform: rotate(45deg);
        top: 50%;
    }
    .nav_sp{
        position: absolute;
        z-index: 3;
        right: 0px;
        width: 100%;
        text-align: center;
        background-color: #3A3A3A;
        opacity: 0;
        visibility: hidden;
    }
    .nav_ul_sp {
        padding: 3vw 0;
        margin: 0 auto;
    }
    .nav_ul_sp li {
        padding-right: 4vw;
        font-size: 0.8rem;
    }
    .nav_ul_sp li:last-of-type {
        padding-right: 0;
    }
    .nav_ul_sp a{
        color: white;
        font-weight: bold;
    }
    .show{
        opacity: 1;
        visibility: visible;
    }
}

/* ------------------
    MV
------------------- */
.top {
    position: relative;
    max-width: 1440px;
    margin: 0 auto;
}

.top img {
    width: 100vw;
    height: 40vw;
    object-fit: cover;
    border-radius: 5%;
    padding: 0 3vw;
    max-width: 1440px;
    max-height: 600px;
}

.top-title {
    position: absolute;
    top: calc(50% - 8rem);
    left: 15vw;
    font-size: 3rem;
    line-height: 1.2;
}

@media screen and (max-width:1200px) {
    .top img {
    border-radius: 8%;
    padding: 0 5vw;
    }

    .top-title {
    top: calc(50% - 5rem);
    font-size: 2rem;
    }
}
@media screen and (max-width:800px) {
    .top-title {
    top: calc(50% - 4rem);
    font-size: 1.5rem;
    }
}
@media screen and (max-width:600px) {
    .top-title {
    top: calc(50% - 2.5rem);
    font-size: 1rem;
    }
}

/*----------------
    POLICY
 ----------------- */
.policy {
    max-width: 1250px;
    margin: 0 6vw;
    position: relative;
    margin-bottom: 20%;
}
.policy-details p:first-of-type {
    margin: 7% 0 1% 15%;
    font-size: 32px;
    font-weight: 700;
}
.policy-details p:last-child {
    margin-left: 15%;
}
.policy-box img {
    position: absolute;
    top: -9%;
    right: 4%;
    z-index: -1;
    width: 58%;
    opacity: 50%;
}
@media screen and (max-width:1200px) {
    .policy {
        padding: 0 6vw;
        margin-bottom: 17%;
    }
    .topic{
        /* font-size: 32px; */
    }
    .policy-details p:first-of-type{
        margin: 8% 0 1% 7%;
        font-size: 28px;
    }
    .policy-details p:last-child {
        margin-left: 7%;
    }
    .policy-box img{
        width: 55%;
        top: 15px;
    }
}
@media screen and (max-width:800px) {
    .policy {
        padding: 0 3vw;
    }
    .policy-details p:first-of-type {
        font-size: 24px;
    }
}
@media screen and (max-width:500px) {
    .policy-details p:first-of-type {
        font-size: 20px;
    }
    .policy-box img {
        width: 80%;
        top: 50px;
    }
}

/* ---------------
   about me
------------------ */
.about {
    max-width: 1250px;
    margin: 0 6vw;
    position: relative;
    margin-bottom: 20%;
}
.about-details {
    display: flex;
    justify-content: space-between;
    margin: 4% 0;
}
.about-name {
    text-align: center;
    font-weight: 700;
    margin-bottom: 25px;
}
.about-name p:first-child {
    font-size: 1.2rem;
}
.about-name p:nth-child(2) {
    font-size: 2.5rem;
}
.about-name-box p:last-of-type {
    margin-bottom: 4%;
}
.year-dtl tr th, .others-dtl tr th {
    width: 160px;
}
table.history {
    margin-bottom: 3%;
}
.about-p {
    margin-left: 3%;
    justify-content: center;
}
.about-details img {
    object-fit: contain;
    width: 32vw;
}
@media screen and (max-width: 1000px) {
    .about-details{
        flex-wrap: wrap;
        justify-content: center;
    }
    .about-details img {
        width: 40vw;
        margin-bottom: 5%;
    }
}
@media screen and (max-width:768px) {
    .about-name p:first-child {
        font-size: 1rem;
    }
    .about-name p:nth-child(2) {
        font-size: 2rem;
    }
}
/* ---------------
   works
------------------ */
.works{
    max-width: 1250px;
    margin: 0 6vw;
    position: relative;
    margin-bottom: 20%;
}
.works-box {
    display: flex;
}
.works-contents a img {
    width: 37vw;
    margin-bottom: 2%;
}
.works-box {
    display: flex;
    justify-content: space-around;
}
.works-box {
    display: flex;
    justify-content: space-around;
    margin-top: 5%;
}
.tag {
    display: flex;
    margin-top: 2%;
}
.tag span {
    padding: 4px 18px;
    border: solid 1px #333;
    border-radius: 100px;
    margin-right: 2%;
}
.tag span p {
    font-size: 12px;
}
@media screen and (max-width:768px){
    .works-box{
        flex-direction: column;
    }
    .works-contents {
        justify-content: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-bottom: 10%;
    }
    .works-contents a img {
        width: 70vw;
        margin-bottom: 2%;
    }
    .tag span {
        width: 95px;
        text-align: center;
    }
}

/*----------------
    strength
 ----------------- */
.strength{
    max-width: 1250px;
    margin: 0 6vw;
    position: relative;
    margin-bottom: 20%;
}
.strength-contents {
    display: flex;
    padding: 23px;
    border: solid #333 2px;
    border-radius: 25px;
    margin: 4% 0;
    align-items: center;
}
.str-details p:first-child {
    font-size: 1.5rem;
    border-bottom: solid #333 1.8px;
    margin-bottom: 4%;
    font-weight: 600;
}
.strength-contents img {
    width: 29%;
    object-fit: contain;
    margin-right: 2%;
}
@media screen and (max-width:1000px) {
    .strength-contents{
        flex-direction: column;
    }
    .strength-contents img {
        margin-right: unset;
        margin-bottom: 5%;
        width: 45%;
    }
    .strength-contents {
        padding: 40px;
    }
}
@media screen and (max-width:768px) {
    .str-details p:first-child {
        font-size: 1.2rem;
        text-align: center;
    }
    .strength-contents img {
        width: 250px;
    }
}

/*----------------
    contact
 ----------------- */
 .contact{
    max-width: 1250px;
    margin: 0 6vw;
    position: relative;
    margin-bottom: 20%;
}
input#name, input#mail, .form-box textarea {
    padding: 9px;
    border: solid #D9D9D9 1.8px;
    border-radius: 9px;
    width: 60vw;
}
form {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 5%;
}
.form-box {
    margin-bottom: 3%;
}
.button-container input {
    border: solid #333 2px;
    border-radius: 50px;
    width: 130px;
    padding: 5px;
    margin-right: 10px;
}
.button-container input:last-child{
    margin-right: 0;
}

@media screen and (max-width:500px) {
    .button-container {
    display: flex;
    flex-direction: column;
    }
    .button-container input {
    margin: 0 0 7% 0;
    }
}


/*----------------
    footer
 ----------------- */
footer {
    background-color: #3A3A3A;
}
.icon img {
    width: 40px;
}
.icon {
    display: flex;
    justify-content: center;
    padding: 60px 0 30px 0;
}
.icon_x {
    margin-right: 20px;
}
.footer-nav {
    display: flex;
    justify-content: center;
}
.footer-nav-ul li a {
    color: #fff;
    font-size: 16px;
}
.footer-nav-ul li {
    margin-bottom: 11px;
    text-align: center;
}
.footer-nav-ul {
    margin-bottom: 50px;
}