
:root {
    --main_width: 80%;
    --header_heigt: 80px;
}


*{box-sizing:border-box}
img{max-width:100%;display:block}


html{
    font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    /* min-height: 500vh; */
    scroll-behavior: smooth;
}
body{
    background-color: rgb(255, 255, 255);
    scroll-behavior: smooth;
}
h1{
    font-weight: bold;
    font-size: 1.5rem;
}



/* --------------------------------------------------------------- */
/* --------------------------------------------------------------- */
/* ヘッダー */
/* --------------------------------------------------------------- */
header{
    width: 100%;
    height: 80px;
    /* background-color: green; */
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1000;
    box-shadow: 0px 0px 10px #aeaeae;
}
header>.header_box{
    width: var(--main_width);
    height: 100%;
    margin: 0 auto;
    display: flex;
    justify-content:space-between ;
    align-items: center;
}
header>.header_box>.left_box{
    height: 100%;
    display: flex;
    align-items: center;
}
header>.header_box>.left_box>.toplogo>img{
    height: calc( var(--header_heigt) - 30px);
    display: flex;
    align-items: center;
    padding: 0 10px 0 0;
    box-sizing: border-box;
}
header>.header_box>.right_box{
}
header>.header_box>.right_box>ul{
    display: flex;
    justify-content: center;
    align-items: center;
}
header>.header_box>.right_box>ul>li{
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 10px;
}
header>.header_box>.right_box>ul>li:last-child{
    padding: unset;
}
header>.header_box>.right_box>ul>li:hover{
    color: orange;
    transition-duration: .3s;
}

.jump {
    scroll-margin-top: var(--header_heigt); /* ヘッダー高さ分をスクロール位置に余白として確保 */
  }

  /* スマホ用 */
@media (max-width: 768px) {
    header>.header_box>.right_box{
        display: none;
    }
    header>.header_box>.left_box{
        margin: 0 auto;
    }
}

/* --------------------------------------------------------------- */
/* ヘッダー */
/* --------------------------------------------------------------- */
/* --------------------------------------------------------------- */


/* --------------------------------------------------------------- */
/* --------------------------------------------------------------- */
/* メイン */
/* --------------------------------------------------------------- */

.main_box{
    width: 100%;
}

.main_box>.top_img{
    background-image: url(../media/top_img.jpg);
    width: 100%;
    height: 600px;
    background-size: cover;
    background-position: center;
}

.main_box>.top_img>.mask{
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.6);
    display: flex;
    justify-content: center;
    align-items: center;
}
.main_box>.top_img>.mask>.top_box{
    width: 80%;
    height: 80%;
    box-sizing: border-box;
    padding: 1rem;
    font-size: 2rem;
    font-weight: 500;
    color:#c0c0c0;
    /* background-color: brown; */
    display: flex;
    justify-content:left;
    align-items: center;
}
.top_text{
    padding: 2rem 0;
    color: #e0e0e0;
}
.main_box>.top_img>.mask>.top_box>div{
    gap: .8rem;
}
.top_button_info,.sekoujirei{
    padding: .8rem 2rem;
    font-size: 1rem;
    color:#FFF;
    border-radius: .8rem;
    font-weight: bold;
}
.top_button_info{
    background-color: orange;
    border: .1rem solid orange;
    transition-duration: .3s;
}
.top_button_info:hover{
    background-color: rgb(176, 115, 0);
    border: .1rem solid rgb(176, 115, 0);
    transition-duration: .3s;
}
.sekoujirei{
    background-color: unset;
    border: .1rem solid #fff;
    transition-duration: .3s;
}

.sekoujirei:hover{
    background-color: #fff;
    color:#000;
    transition-duration: .3s;
}
.sp{
    display: none;
}
/* スマホ用 */
@media (max-width: 768px) {
    .top_text{
        padding: 0 0 30%;
        color: #e0e0e0;
        font-size: 1.5rem;
    }
    .main_box>.top_img>.mask>.top_box{
        width: 95%;
        height: 90%;
        
    }
    .top_button_info,.sekoujirei{
        padding: .4rem 1rem;
        font-size: .8rem;
        color:#FFF;
        border-radius: .4rem;
        font-weight: bold;
    }
    .sp{
        display: block;
    }
}













section{
    margin: 3rem 0;
    padding: 3rem 0 0 0 ;
}
section>div{
    width: var(--main_width);
    margin: 0 auto;
    text-align: center;
}
section h2{
    font-size: 4rem;
    padding: 1rem 0;
    font-weight: bold;
    color:orange;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
}
section h2>span{
    font-size: 3rem;
    font-weight: bold;
    color: #7c7c7c;
}
section p{
    padding: 0 0 3rem 0;
}




.service_grid{
    display: flex;
    justify-content:left;
    align-items: stretch;
    gap: 2%;
    text-align: left;
}
.service_grid .piece{
    padding: 1rem;
    box-sizing: border-box;
    box-shadow: 1px 1px 10px #d6d6d6;
    background-color: #fbf9fa;
    border-radius: .8rem;
    width: 33%;
}
.service_grid .piece h3{
    font-size:1.3rem;
    font-weight: bold;
    padding: 1rem 0;
}
.service_grid .piece p{
    line-height: 1.5rem;
}

.service_grid .piece>div{
    width: 50px;
    height: 50px;
    background-color: rgb(255, 230, 197);
    border-radius: 50%;
    display: flex;
    justify-content:left;
    align-items: center;
}
.service_grid .piece svg{
    width: 60%;
    margin: 0 auto;
    color: rgb(255, 145, 0);
}
  /* スマホ用 */
  @media (max-width: 768px) {
    .service_grid{
        display: block;
    }
    .service_grid .piece{
        padding: 1rem;
        margin-bottom: 2rem;
        box-sizing: border-box;
        border-radius: .4rem;
        width: 100%;
    }
}






.jirei{
    background-color: #f8f8f8;
}
.jirei_grid {
    display: flex;
    flex-wrap: wrap;        /* 折り返しを有効にする */
    justify-content: center;   /* 横方向中央揃え */
    align-items: stretch; 
    gap: 2%;
    text-align: left;
}

.jirei_grid > * {
    flex: 0 1 calc(33.333% - 2%); /* 横に3つ並ぶ幅に調整（gapを引く） */
    box-sizing: border-box;       /* paddingやborderを幅に含める */
    margin-bottom: 2%;    /* コンテナ下の余白 */
    flex-direction: column;
}
.jirei_grid .piece{
    /* padding: 1%; */
    box-sizing: border-box;
    box-shadow: 1px 1px 10px #d6d6d6;
    background-color: #fbf9fa;
    border-radius: .8rem;
    width: 33%;
}

.jirei_grid .piece img{
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: .8rem .8rem 0 0;
}
.jirei_grid .piece .text_box{
    padding: 4% 4% 0 4%;
}
.jirei_grid .piece .text_box h3{
    font-size:1.3rem;
    font-weight: bold;
    padding: 0 0 1rem 0;
}
.jirei_grid .piece .text_box>p{
    padding: 0 0 1rem 0;
}
.jirei_grid .piece .text_box .info{
    display: flex;
    justify-content:space-between;
    align-items: center;
}
.jirei_grid .piece .text_box .info p{
    height: 1rem;
}
.jirei_grid .piece .text_box .info .data{
    font-size: 0.9rem;
    color:#868686
}
.jirei_grid .piece .text_box .info .info_data{
    font-weight: bold;
    color:#ffa200;
    display: none;
}

.jirei_box .all_view{
    padding: 5rem;
}
.jirei_box .all_view>div{
    border: 2px solid #ffa200;
    color:#ffa200;
    font-weight: bold;
    border-radius: .8rem;
    padding: 1rem 6rem;
    width: fit-content;
    margin: 0 auto;
    transition-duration: .3s;
}
.jirei_box .all_view>div:hover{
    border: 2px solid #ffa200;
    background-color:#ffa200;
    color:#fff;
    transition-duration: .3s;
}
  /* スマホ用 */
  @media (max-width: 768px) {
    .jirei_grid{
        display: block;
    }
    .jirei_grid .piece{
        box-sizing: border-box;
        box-shadow: 1px 1px 5px #d6d6d6;
        border-radius: .4rem;
        width: 100%;
        margin-bottom: 2rem;
    }
    .jirei_grid .piece .text_box h3{
        font-size:1.2rem;
        font-weight: bold;
        padding: 0 0 1rem 0;
    }
}








.kyuujin_grid{

}
.kyuujin_grid .piece{
    /* padding: 1%; */
    box-sizing: border-box;
    box-shadow: 1px 1px 10px #d6d6d6;
    background-color: #fbf9fa;
    border-radius: .8rem;
    width: 100%;
    padding: 2rem;
    text-align: left;
    display: flex;
    justify-content:space-between;
    align-items: stretch;
    margin: 2rem 0 0 0 ;
}

.kyuujin_grid .kyuujin_info h3{
    font-size:1.3rem;
    font-weight: bold;
    padding: 0 0 1rem 0;
}
.kyuujin_grid .kyuujin_info p{
    padding: .5rem 0;
    color:#7c7c7c;
}
.kyuujin_grid .kyuujin_info p>span{
    font-weight: bold;
    color:#494949;
}

.kyuujin_grid .oubo>div {
    padding: .15rem 2rem;
    font-size: 1rem;
    color: #FFF;
    border-radius: .8rem;
    font-weight: bold;
    background-color: orange;
    border: .1rem solid orange;
    transition-duration: .3s;
    text-align: center;
    margin-top: 1rem;
}
.kyuujin_grid .oubo>div:hover{
    background-color: rgb(176, 115, 0);
    border: .1rem solid rgb(176, 115, 0);
    transition-duration: .3s;
}

.kyuujin .piece2{
    box-sizing: border-box;
    box-shadow: unset;
    border: 1px solid #ffe6a1;
    background-color: #fff6de;
    border-radius: .8rem;
    width: 100%;
    padding: 2rem 2rem 1rem;
    text-align: left;
    margin: 2rem 0 0 0 ;
}

.kyuujin_grid .piece2 .kyuujin_info p{
    padding: .5rem 0 1rem;
    color:#3b3b3b;
}
.kyuujin_grid .piece2 .kyuujin_info h3{
    padding: 0;
}

.kyuujin_grid .piece2 .kyuujin_grid{
    display: flex;
    justify-content:space-between;
    align-items: stretch;
}

.kyuujin_grid .piece2 .kyuujin_grid .piece{
    display: block;
    margin: .5rem 0;
    padding: 1rem;
    width: 32%;
    box-shadow: unset;
    border: 1px solid #ffe6a1;
}

.kyuujin_grid .piece2 .kyuujin_grid h4{
    font-size: 1rem;
    font-weight: bold;
    padding: 0 0 0 0;
}

.kyuujin_grid .piece2 .kyuujin_grid p{
    padding: .5rem 0;
    color:#7c7c7c;
}
  /* スマホ用 */
  @media (max-width: 768px) {
    .kyuujin_grid .piece{
        box-shadow: 1px 1px 5px #d6d6d6;
        border-radius: .4rem;
        width: 100%;
        padding: 2rem;
        text-align: left;
        display: block;
        margin: 2rem 0 0 0 ;
    }
    .kyuujin_grid .piece2{
        padding:1rem;
    }
    .kyuujin_grid .piece2 .kyuujin_grid {
        display: block;
        padding: 0;
    }
    .kyuujin_grid .piece2 .kyuujin_grid .piece {
        display: block;
        margin: .5rem 0;
        padding: 1rem;
        width: 100%;
        box-shadow: unset;
        border: 1px solid #ffe6a1;
    }
}
















.contact{
    background-color: #f8f8f8;
    margin-bottom: 0;
}

.contact_grid{
    display: grid;
    justify-content:space-between;
    grid-template-columns: 48% 48%;
}
.contact_grid .contact_form{
}

.contact_grid form div{
    padding: 0 1rem 2rem;
}
.contact_grid form div label{
    display: block;
    text-align: left;
    font-weight: bold;
    padding: 0 0 .4rem 0;
}
.contact_grid form div label>span{
    font-weight: unset;
    color: rgb(255, 66, 66);
}
.contact_grid form input,
.contact_grid form textarea {
    border: 1px solid #ccc;
    border-radius: .4rem;
    padding: 0.5em;
    background-color: #fff;
    width: 100%;
}
.contact_grid form button{
    width: 100%;
    padding:.5rem 2rem;
    font-size: 1rem;
    color:#FFF;
    border-radius: .4rem;
    font-weight: bold;
    background-color: orange;
    border: .1rem solid orange;
    transition-duration: .3s;
}
.contact_grid form button:hover{
    background-color: rgb(176, 115, 0);
    border: .1rem solid rgb(176, 115, 0);
    transition-duration: .3s;
}
.contact_grid .contact_info .company{
    box-sizing: border-box;
    box-shadow: 1px 1px 1px #ececec;
    border: 1px solid #e0e0e0;
    background-color: #ffffff;
    border-radius: .8rem;
    width: 100%;
    padding: 1rem;
    text-align: left;
    
}
.contact_grid .contact_info .company h4{
    font-size:1.2rem;
    font-weight: bold;
    padding: 0 0 1rem 0;
    display: block;
}
.contact_grid .contact_info .company .flex{
    display: flex;
    justify-content:left;
    align-items: stretch;
    padding: 0 0 1rem 0;
}
.contact_grid .contact_info .company .flex svg{
    height: 2rem;
    color: #ffa200;
    padding-right: 1rem;
}
.contact_grid .contact_info .company .flex .top{
    font-weight: bold;
}
.contact_grid .contact_info .company .flex .sub p{
    padding: unset;
}

.contact_grid .contact_info .google_map{
    width: 100%;
    height: 400px;
    padding: 2rem 0;
}
.contact_grid .contact_info .google_map iframe{
    width: 100%;
    height: 100%;
    border-radius: .8rem;
}
  /* スマホ用 */
  @media (max-width: 768px) {
    .contact_grid{
        display: block;
    }
    .contact_grid form div {
        padding: 0 0 2rem;
    }
}





















footer{
    background-color: #101828;
    min-height: 300px;
    padding: 3rem 0;
}
footer>div{
    width: var(--main_width);
    margin: 0 auto;
}
.footer_flex{
    display: flex;
    justify-content:left;
    align-items: stretch;
    grid-template-columns: 20% 20% 20% 20%;
    gap: 3rem;
}
.footer_flex .flex{
    width: 100%;
    color:#868686;
    font-size: 1rem;
    /* line-height: 2rem; */
}
.footer_flex .flex h3{
   color:#fff;
}
.footer_flex .flex:nth-child(1) h3{
    font-size: 1.5rem;
    /* line-height: 1rem; */
}
.footer_flex .flex:first-child p,
.footer_flex .flex:last-child address{
    line-height: 1.2rem;
}
.footer_flex .flex h3{
    padding-bottom: 1rem;
}
.footer_flex .flex:nth-child(n+1) h3{
    font-weight: bold;
}
.footer_flex .flex li{
    list-style: none;
}

.footer_flex .sns_flex{
    margin-top: 1rem;
    display: flex;
    justify-content:left;
    align-items:center;
    gap: 1rem;
}
.footer_flex .sns_flex img{
    height: 2rem;
    opacity: 0.3;
}
  /* スマホ用 */
  @media (max-width: 768px) {
    .footer_flex {
        display: block;
    }
    .footer_flex .flex {
        padding-bottom: 2rem;
    }
    .footer_flex .flex h3 {
        padding-bottom: unset;
    }
}
/* --------------------------------------------------------------- */
/* メイン */
/* --------------------------------------------------------------- */
/* --------------------------------------------------------------- */

