@charset "utf-8";
/* @group reset */

:root{
    --black:#231815;
    --white:#fff;
    --lightcolor:#ffc0c0;
    --maincolor:#d62b25;
    --blue:#008ba6;
    --basecolor:#ffefec;
    --black-rgb:35,24,21;
    --main-rgb:214, 43, 37;
    --light-rgb:255, 192, 192;
    --blue-rgb:0,139,166;
    --header-height:70px;
}

*{
    margin:0;
    padding:0;
    box-sizing: border-box;
    max-width: 100%;
}
html,body {
    font-size:16px;
    line-height:1.6;
    background: var(--white);
}
a{ text-decoration:none;}
ul,ol{ list-style:none;}
li{ list-style:none;}
img{ vertical-align:top; padding: 0; margin: 0;line-height: 0; max-width: 100%;}
table { width:100%;border-collapse: collapse; border-spacing: 0;}


/* @link */
a {text-decoration: none; transition: 0.3s;color: var(--white);}
a:hover,a:active{color: var(--white); text-decoration: none;}
a img{border: none;}

a:hover img {
	opacity: 0.8;
}
a img {
  -webkit-transition: .3s ease-in-out;
  transition: .3s ease-in-out;
}
.bold{font-weight: bold;}
.color{color: var(--maincolor);}
.big{font-size: 115%;}
.small{font-size: 85%;}


/*メニュー*/
header{
    position: fixed;
    z-index: 2;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    background:var(--maincolor);
    justify-content: space-between;
    align-items: center;
    padding: 0 1em;
    height: var(--header-height);
}
header h1{
    color: var(--white);
    font-weight: normal;
    font-family: '游明朝', serif;
}
header nav{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap:2em;
}

.menu{
    height: 100%;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap:2.5em;
}
.menu li{
    width: fit-content;
}
.menu li a{
    display: block;
    width: fit-content;
    margin: 0 auto;
    height: 100%;
    transition: 0.5s;
    text-align: center;
}
#menu-btn-check {
    display: none;
}
.menubtn{
    display: none;
    z-index: 11;
    width: 70px;
    height: 100%;
    position: relative;
}
.menubtn button{
    background: none;
    border: none;
    color: var(--white);
    width: 100%;
    font-size: 1.3em;
    height: 100%;
}
.menubtn::before,
.menubtn::after{
    height: 2px;
    width: 75%;
    background: var(--maincolor);
    border-radius: 2px;
    display: block;
    position: absolute;
    left: 50%;
    top: 50%;
    transition: 0.5s;
    opacity: 0;
}

/*見出し*/
h2{
    text-align: center;
    font-size: 190%;
    letter-spacing: 0.1em;
    font-weight: normal;
    position: relative;
    width: fit-content;
    padding: 2em 0 2.5em;
    margin: 0 auto ;
    z-index: 0;
    font-family: serif;
}
h2::after{
    content: attr(data-en);
    display: block;
    cursor: text;
    font-size: 1rem;
    margin-top: 1em;
    font-weight: bold;
    color: var(--maincolor);
}
h2.white{color: var(--white);}
.eigo{
    text-align: center;
    display: block;
    cursor: text;
    font-size: 1rem;
    font-weight: bold;
    color: var(--maincolor);
    padding-bottom: 3em;
}

/*ボタン*/

.btn,.form_btn{
    text-align: center;
    --btncolor:var(--maincolor);
    --btn-text:var(--white);
    margin: 30px 0;
}
.btn a,.form_btn input[type="submit"]{
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.7em 2em;
    background: var(--btncolor);
    color: var(--btn-text);
    width: fit-content;
    margin: 0 auto;
    cursor: pointer;
    transition: 0.3s;
    border: 1px solid var(--btncolor);
}
.btn a:not(:link){
    --btncolor:gray;
    pointer-events: none;
}
.btn a:hover,.form_btn input[type="submit"]:hover{
    background: var(--btn-text);
    color: var(--btncolor);
}


/*本文*/

main{
    position: relative;
    display: flex;
    flex-direction: column;
}
main > section{
    position: relative;
    padding: 2em 3em;
}
main > section:not(.jp_box){
    background-color: var(--white);
}
.w1280{
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}



/*上の方*/
.topimg{
    padding: 0;
    margin-top: calc(var(--header-height));
    width: 100%;
    text-align: center;
}
.splide,.splide__track{
    height: 100%;
}
.topimg img{
    height: 100%;
    width: 100%;
    object-fit: contain;
}

.splide__pagination.topimg_pagination{
    display: flex;
    gap:0.3em;
    width: 40%;
    margin: 0 auto;
    position: relative;
    
    li{
        width: calc((100% - 0.3em * 3) / 4);
    .topimg_page{
        background: var(--lightcolor);
        width: 100%;
        border-radius: 0;
        margin: 0;
        height: 6px;
    }
    .topimg_page.is-active{
        background: var(--maincolor);
        transform: scale(1);
    }
}
}

/*about*/
#about{
    background-image: url("../img/back.png");
}
.about_text{
    padding: 2em 0 5em;
}
.about_text p{
    text-align: center;
    color: #000;
    font-size: 120%;
    line-height: 2.5;
}


/*活動紹介*/

.act_list{
    width: 100%;
    max-width: 800px;
    margin: 0 auto 100px;
    display: flex;
    flex-direction: column;
    gap:30px;
}
.act_box{
    width: 100%;
    background-color: var(--maincolor);
    border-radius: 1em;
    text-align: center;
    color: var(--white);
}
.act_box:nth-child(even){
    background-color: var(--lightcolor);
    color: var(--maincolor);
}
.act_text{
    text-align: left;
    padding: 1em 1.5em;
    font-size: 24px;
}

.service_list{
    display: flex;
    flex-direction: column;
    gap:150px;
    max-width: 1280px;
    margin: 0 auto 3em;
    font-size: 18px;
}
.service_list li{
    display: flex;
    gap:5em;
    width: 100%;
    align-items: center;
}
.service_list p{
    text-align: justify;
}
.service_list li figure,.service_list li figure img{width: 100%;}
.service_list li:nth-child(2n) figure{order: 1;}
.service_text{
    width: 40%;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap:1em;
    padding: 1em;
}
.service_text h3{
    font-size: 160%;
    letter-spacing: 0.1em;
    line-height: 1.8;
    font-weight: normal;
    margin-bottom: 1em;
}


/*活動実績*/

#Achievement{
    background: linear-gradient(to bottom,var(--lightcolor),var(--basecolor));
}
.news_list{
    display: flex;
    gap:2em;
    margin: 2em auto;
    flex-wrap: wrap;
}
.news_list li{
    width: calc((100% - 2em * 2) / 3);
    background: var(--white);
    transition: 0.3s;
    border-radius: 0.5em;
    padding: 1.5em;
}
.news_list li:hover{
    filter: drop-shadow(2px 2px 3px rgba(var(--black-rgb),0.1))
        drop-shadow(-2px 2px 3px rgba(var(--black-rgb),0.1))
        drop-shadow(2px -2px 3px rgba(var(--black-rgb),0.1))
        drop-shadow(-2px -2px 3px rgba(var(--black-rgb),0.1));
}
.news_list li figure{
    overflow: hidden;
    height: 250px;
    margin-bottom: 1em;
}
.news_list li figure img{
    transition: 0.3s;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.news_list li a{
    color: var(--black);
}
.news_text_box{
    display: flex;
    flex-direction: column;
    gap:0.7em;
}


/*member*/
#member{
    padding: 5em 3em;
}

.bnr_list{
  display: flex;
    flex-wrap: wrap;
    gap: 1.5em 2em;
    width: 980px;
    margin: 0 auto;

    li{
        width: calc((100% - 2em * 3) / 4);
        text-align: center;
        a{
            display: block;
            text-align: center;
            width: 100%;
            height: 100%;
        }
    }
}


/*お問いあわせ*/

#Contact{   
    background-color: var(--basecolor);
    padding-bottom: 5em;
 }
.otoiawase_text_box{
    display: flex;
    flex-direction: column;
    gap:0.7em;
    padding: 2em;
    margin-bottom: 5em;
    font-size: 20px;

}
.otoiawase_text{text-align: center;
    font-family: '游明朝', serif;
    line-height: 40px; 

}



/*footer*/

footer{
    background: var(--lightcolor);
    color: var(--maincolor);
    padding: 3em 0 2em;
}
.fot_text{
    margin-bottom: 2em;
    padding: 0;
    font-size: 30px;
    font-family: serif;
    text-align: center;
}
.fotmenu{
    width: 100%;
    padding: 0;
    display: flex;
    gap:0.5em;
    justify-content: center;
}
.fotmenu li{
    padding: 0 1em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap:0.5em;
}
.fotmenu li a{
    color: var(--maincolor);
    font-size: 18px;
    padding: 0.3em 0.5em;
    &:hover{
        color: var(--white);
    }
}
.copy{
    font-size: 10px;
    margin-top: 0.8em;
    border-top: 1px dashed var(--maincolor);
}



/*お問合せフォーム用*/
.Form {
  margin-left: auto;
  margin-right: auto;
  max-width: 720px;
}

@media screen and (max-width: 480px) {
  .Form {
    margin-top: 40px;
  }
}
.Form-Item {
  padding-top: 24px;
  padding-bottom: 24px;
  width: 100%;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--lightcolor);
}
@media screen and (max-width: 480px) {
  .Form-Item {
    padding-left: 14px;
    padding-right: 14px;
    padding-top: 16px;
    padding-bottom: 16px;
    flex-wrap: wrap;
  }
}
.Form-Item-Label {
    display: flex;
    align-items: center;
  width: 100%;
  max-width: 248px;
  letter-spacing: 0.05em;
  font-weight: bold;
  font-size: 18px;
}
@media screen and (max-width: 480px) {
  .Form-Item-Label {
    max-width: inherit;
    font-size: 15px;
  }
}
.Form-Item-Label.isMsg {
  margin-top: 8px;
  margin-bottom: auto;
}
@media screen and (max-width: 480px) {
  .Form-Item-Label.isMsg {
    margin-top: 0;
  }
}
.Form-Item-Label-Required {
  border-radius: 6px;
  margin-right: 8px;
  padding-top: 8px;
  padding-bottom: 8px;
  width: 48px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  background: var(--maincolor);
  color: #fff;
  font-size: 14px;
}
@media screen and (max-width: 480px) {
  .Form-Item-Label-Required {
    border-radius: 4px;
    padding-top: 4px;
    padding-bottom: 4px;
    width: 32px;
    font-size: 10px;
  }
}
.Form-Item-Input {
  border: 1px solid #ddd;
  border-radius: 6px;
  margin-left: 40px;
  padding-left: 1em;
  padding-right: 1em;
  height: 48px;
  flex: 1;
  width: 100%;
  max-width: 410px;
  background: #f8f8f8;
  font-size: 18px;
}
@media screen and (max-width: 480px) {
  .Form-Item-Input {
    margin-left: 0;
    margin-top: 18px;
    height: 40px;
    flex: inherit;
    font-size: 15px;
  }
}
.Form-Item-Textarea {
  border-radius: 6px;
  margin-left: 40px;
  padding: 0.5em 1em;
  height: 216px;
  flex: 1;
  width: 100%;
  max-width: 410px;
  background: #f8f8f8;
  font-size: 18px;
}
@media screen and (max-width: 480px) {
  .Form-Item-Textarea {
    margin-top: 18px;
    margin-left: 0;
    height: 200px;
    flex: inherit;
    font-size: 15px;
  }
}
.Form-Btn {
  border: var(--maincolor) 1px solid;
  margin-top: 32px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 20px;
  padding-bottom: 20px;
  width: 280px;
  display: block;
  letter-spacing: 0.05em;
  background: var(--maincolor);
  color: #fff;
  font-weight: bold;
  font-size: 16px;
  cursor: pointer;
  transition: 0.3s;
}
.Form-Btn:hover {
  background: #fff;
  color: var(--maincolor);    
}

@media screen and (max-width: 480px) {
  .Form-Btn {
    margin-top: 24px;
    padding-top: 8px;
    padding-bottom: 8px;
    width: 160px;
    font-size: 14px;
  }
}


/*●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
レスポンシブ設定（タブレット）
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●*/
@media(max-width:1140px){
    .tb{display: block;}
    .tb.w768{display: none;}
    
    body{font-size: 16px;}
    
    header nav{height: 60px;}
}

@media(max-width:768px){
    .tb.w768{display: block;}
    
    .scroll{transform: none;--scroll-bottom:1.5em;font-size: 100%;}    
    
    .service_list li{
        flex-direction: column;
        gap:30px;
    }
    .service_list li .service_text{order: 2;}
    .service_text{width: 100%;padding: 0 1em;gap:0.5em;}
    .service_text h3{letter-spacing: 0.05em;}
    
    .news_list li figure{height: auto;}
    .news_text_box{padding: 1em 0.5em;}
    
    .hole{width: 90%; height:auto;}
    
    footer .fotbtm{
        padding: 2em 2em 1em;
    }
    .fotmenu li a{font-size: 21px;}
    .copy{font-size: 12px;}
    
    #paint{padding-bottom: 3em;}
    #brush{padding: 2em 3em;}
    #access{padding: 2em;}
    .access_box{flex-direction: column;}
    .page_btn{margin-top: 30px;}
    
    
    .flex,.oversea .flex{flex-direction: column;max-width: 80%;gap:0.5em;}
    .flex .text,.oversea .flex .text{align-self: flex-end;order: -1;}
    .flex.second{padding-bottom: 0;margin-right: 0;}
    .flex .img01{top: -4em;width: 70%;}
    .flex .img03,.oversea .flex .img03{top: 2em;}
    .jp_box{padding-bottom: 0;}
    
    .oversea .flex .img01{top: 1em;}
    .oversea .flex.first{align-items: flex-start;}
    .oversea .flex.first .text{width: 100%;}
    .oversea .flex.second{margin-right: 2em;width: 50%;}
    .oversea .flex.second .text{width: 100%;}
    .oversea .flex .img02{width: 300px;}
    
    .sub main > section{
        max-width: 90%;
    }
    
    /*contact*/
    dd input[type="text"],dd textarea{
        width: 100%;
    }




    .about_text{
        padding: 2em 0;
    }
}


/*●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
レスポンシブ設定（スマホ）
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●*/
@media(max-width: 599px){
    
    body{font-size: 14px;}
    .pc{display: none;}
    .sp{display: block;}
    
    main > section{padding: 2em 1em;}
    header{
        height: 70px;
    }
    header h1{
        font-size: 120%;
    }
    
    /*上の方*/


    /*menu*/

    /*メニューボタン用設計*/
    .menu-btn {
        display: flex;
        height: 30px;
        width: 30px;
        justify-content: center;
        align-items: center;
        z-index: 11;
    }
    .menu-btn span,
    .menu-btn span:before,
    .menu-btn span:after {
        content: '';
        display: block;
        height: 3px;
        width: 25px;
        border-radius: 3px;
        background-color: var(--white);
        position: absolute;
        transition: 0.2s;
    }
    .menu-btn span:before {
        bottom: 8px;
    }
    .menu-btn span:after {
        top: 8px;
    }    
    #menu-btn-check:checked ~ .menu-btn span {
        background-color: rgba(255, 255, 255, 0);/*メニューオープン時は真ん中の線を透明にする*/
    }
    #menu-btn-check:checked ~ .menu-btn span::before {
        bottom: 0;
        transform: rotate(45deg);
    }
    #menu-btn-check:checked ~ .menu-btn span::after {
        top: 0;
        transform: rotate(-45deg);
    }



    /*メニュー本体*/
    .menu-content {
        width: 100%;
        height: calc(100vh - var(--header-height));
        position: fixed;
        bottom: 0;
        left: 100%;
        z-index: 10;
        background-color: var(--lightcolor);
        transition: all 0.5s;/*アニメーション設定*/
    } 
    #menu-btn-check:checked ~ .menu-content {
        left: 0;/*メニューを画面内へ*/
    }

    .menu-content ul {
        width: 90%;
        margin-left: auto;
        margin-right: auto;
        display: block;
        padding-left: 0;
        padding-top: 1em;
        }

    .menu-content ul li {
        border-bottom: dotted 1px var(--maincolor);
        list-style: none;
        width: 100%;
    }
    .menu-content ul li a {
        display: block;
        width: 100%;
        font-size: 15px;
        box-sizing: border-box;
        color:var(--maincolor);
        text-decoration: none;
        padding: 9px 15px 10px;
        position: relative;
        width: 100%;
        text-align: left;
    }
    .menu-content ul li a:hover {
        color:var(--black);
    }

    .menu-content ul li a::before {
        content: "";
        width: 7px;
        height: 7px;
        border-top: solid 2px var(--maincolor);
        border-right: solid 2px var(--maincolor);
        transform: rotate(45deg);
        position: absolute;
        right: 11px;
        top: 16px;
    }
    


    /*about*/
    .about_text p{
        font-size: 105%;
    }
    .about_text p br{
        display: none;
    }

    /*introduction*/

    .act_list{
        gap:25px;
    }
    .act_text{
        font-size: 16px;
    }
    
    /*サービス*/
    #service{padding-top: 3em;}
    .service_list{font-size: 14px;gap:70px;}
    
    /*お知らせ*/
    .news_list{
        flex-direction: column;
        width: 95%;
    }
    .news_list li{
        width: 100%;
        padding: 0.5em;
    }
    .news_list li figure{
        margin-bottom: 0;
    }

    
    /*協賛*/

    .bnr_list{
        gap:1em;
    }
    .bnr_list li{
        width: calc((100% - 1em) / 2);
    }
    
    
    /*footer*/
    .fot_text{
        font-size: 20px;
    }
    .fotmenu{
        flex-wrap: wrap;
        gap:0.5em 1em;
        width: 85%;
        margin: 0 auto;
        li{
            width: calc((100% - 1em) / 2);
            a{
                display: block;
                width: 100%;
                height: 100%;
                text-align: center;
                font-size: 14px;
            }
        }
    }


}


