@charset "UTF-8";

/*****************************
  pagecommon
*****************************/
.pagehead{
  padding-top: 0px;
  position: relative;
  margin: 110px auto 0;
  width: calc(100% - 60px);
  border-radius: 30px;
}
.pagehead-bg{
  background-position: right;
  background-repeat: no-repeat;
  background-size: cover;
  height: 400px;
  border-radius: 20px;
}
.pagehead-bg::before{
content: "";
background: linear-gradient(90deg, rgba(224,106,131, 0.9) 400px, rgba(255, 238, 234, 0) 400px, rgba(255, 238, 234, 0) 100%);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 20px;
}
@media only screen and (max-width: 1180px) {
    
}
@media only screen and (max-width: 1024px) {
.pagehead-bg::before{
background: linear-gradient(90deg, rgba(224,106,131, 1) 350px, rgba(255, 238, 234, 0) 350px, rgba(255, 238, 234, 0) 100%);
}
  .pagehead{
    margin: 80px auto 0;
    width: calc(100% - 40px);
}
}
@media only screen and (max-width: 820px) {
  .pagehead-bg::before{
background: linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.0) 100%);
}
  .pagehead-bg{
    height: 300px;
  }
}
@media only screen and (max-width: 767px) {
    .pagehead{
    width: calc(100% - 20px);
}
  .pagehead-bg{
    height: 180px;
    background-position: right;
  }
}

/******************************
  ページhead
******************************/
.pagehead-ttl {
  position: absolute;
  color: #fff;
  top: 50%;
  left: 30px;
  transform: translateY(-50%) translateX(0%);
  text-align: left;
  font-family: "dnp-shuei-mgothic-std", sans-serif;
  font-weight: 400;
  font-style: normal;
  display: block;
}
.pagehead-ttl h2 {
font-size: 30px;
letter-spacing: 1px;
}
.pagehead-ttl p {
font-size: 16px;
line-height: 1;
letter-spacing: 1px;
}
@media screen and (max-width: 1024px) {
}

@media screen and (max-width: 820px) {
  .pagehead-ttl h2 {
  font-size: 26px;
}
  .pagehead-ttl {
  color: #fff;
  left: 30px;
}
}

@media screen and (max-width: 767px) {
  .pagehead-ttl h2 {
    font-size: 22px;
  }
  .pagehead-ttl p {
    font-size: 14px;
  }
}

/*****************************
  top 汎用SECTION
*****************************/
.top_sec{
  margin: 30px 0;
  padding: 60px 0 60px;
}
.top_sec_shot{
  margin: 30px 0;
  padding: 30px 0 30px;
}
.top_sec_long{
  margin: 30px 0;
  padding: 30px 0 100px;
}
.guide_page{
  margin: 0px 0;
  padding: 20px 0 20px;
}


@media screen and (max-width: 820px) {
  .top_sec,.top_sec_shot,.top_sec_long {
    margin: 0px 0;
    padding: 30px 0 40px;
  }
}

/*****************************
  下層 汎用SECTION
*****************************/
.pagesec{
  margin: 30px 0;
  padding: 60px 0 60px;
}
.pagesec_shot{
  margin: 30px 0;
  padding: 30px 0 30px;
}
.pagesec_long{
  margin: 30px 0;
  padding: 30px 0 100px;
}
@media screen and (max-width: 820px) {
  .pagesec,.pagesec_shot,.pagesec_long {
    margin: 0px 0;
    padding: 60px 0 60px;
  }
}


/*****************************
  プラポリ
*****************************/
.page-privacy{
  margin-top: 60px;
  margin-bottom: 60px;
}
.pagebox{
  width: 100%;
  margin: 10px auto 10px;
}
.page-privacy .pplist .pplist .ppbox{
  margin: 2rem 0;
}
.page-privacy .pplist .ttl{
border-left: 5px solid #292b2c;
color: #292b2c;
font-size: 2rem;
font-weight: bold;
margin: 3rem 0 1rem;
padding: .8rem 1.5rem;
letter-spacing: 1px;
}
.page-privacy .pplist .content .add{
  margin-top: 2rem;
}
.page-privacy p,
.page-privacy .pplist .content{
  line-height: 1.8;
}
.page-privacy .pplist .content ul{
  margin-top: 1rem;
  margin-left: 2rem;
}
.page-privacy .pplist .content li{
  list-style: "・";
}
@media only screen and (max-width: 767px) {
  .page-privacy .pplist .ttl{
      font-size: 1.8rem;
  }
}

/*****************************
  サイトマップ
*****************************/
.sitemap_m{
margin-bottom: 60px;
}
.sitemaplist {
display:flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
margin-top: 50px;
}
.sitemaplist li {
width: 47%;
list-style: none;
margin: 10px;
}
@media screen and (max-width: 767px) {
.sitemaplist li {
width: 100%;
list-style: none;
}
}
.sitemaplist li a{
display: block;
border: 1px solid;
padding: 10px 20px;
position: relative;
border-color: #E06A83;
background: #E06A83;
color: #fff;
opacity: 1;
}
.sitemaplist li a:hover{
background: #BE2E4C;
}
.sitemaplist li a::after {
content: ">";
display: block;
position: absolute;
right: 20px;
font-size: 20px;
top: 8px;
color: #fff;
}
.sitemaplist li a:hover::after {
color: #fff;
}
.sitemaplist li.sitemap-current a{
color: #fff !important;
border: 1px solid;
background: #BE2E4C;
}

/*****************************
  フォーム コンタクトフォーム
*****************************/
.firsttxt{
  width: min(900px, 100%);
  margin: 10px auto 30px;
}
.ppbox{
  width: min(900px, 100%);
  margin: 10px auto 10px;
}
.formbox{
width: min(1000px, 100%);
    margin: 30px auto;
}
.formbox .fomin{
  background: #F5F5F5;
  border-top: 1px solid #e9e9e9;
  border-bottom: 1px solid #e9e9e9;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  overflow: hidden;
}
.formbox .fomin:not(:first-of-type){
  border-top: 0;
}
.formbox .fomttl{
  font-weight: bold;
  padding: 0 2rem;
  text-align: left;
  width: 250px;
}
.formbox .fomttl span{
  background: #B22D35;
  border-radius: 4px;
  color: #fff;
  display: block;
  font-size: 1.2rem;
  line-height: 1;
  padding: 5px 10px;
  display: table;
  margin: 5px 0;
}
.formbox .fomttl span.any{
  background: #003c8a;
  border-radius: 4px;
  color: #fff;
  display: block;
  font-size: 1.2rem;
  line-height: 1;
  padding: 5px 10px;
  display: table;
  margin: 5px 0;
}
.formbox .fomcontent{
  background: #fff;
  padding: 2rem 1rem;
  width: calc(100% - 250px);
}
.formbox .fomcontent span.error{
  background: none;
  margin: 0;
}
.formbox .fomcontent dl{
  margin-bottom: 1rem;
}
.formbox .fomcontent dt{
  width: 145px;
}
.formbox .fomcontent dd{
  margin-left: auto;
  width: calc(100% - 165px);
}
.formbox .input-check{
  text-align: left;
}
.formbox .input-radio .wpcf7-list-item,
.formbox .input-check .wpcf7-list-item{
  display: block;
  margin-right: 1rem;
  margin-left: 0;
}
.input-submit{
  margin: 3rem auto;
  text-align: center;
}
.formtxt{
  max-width: 500px;
  margin: 2rem auto;
  padding: 2rem 0 0;
}
.formtxt .inbox{
  margin: 2rem 0;
}
.formtxt .inbox p{
  margin-bottom: 2rem;
}

/* .formbox input,
.formbox textarea,
.formbox select,
.input-submit input{
} */
.formbox .input-txt input,
.formbox .input-num input,
.formbox .input-age input,
.formbox .input-zip input,
.formbox .input-txtarea textarea,
.formbox .input-select select {
  background: #f3f3f3;
  border: 1px solid #9f9f9f;
  border-radius: 3px;
  width: 100%;
}
.formbox .input-age input,
.formbox .input-num input{
  margin-right: 1rem;
  max-width: 100px;
}
.formbox .input-day:first-child{
  margin-bottom: 1rem;
}
.formbox .input-day input{
  width: calc(100% - 145px);
}

.formbox .input-txt input,
.formbox .input-num input,
.formbox .input-age input,
.formbox .input-zip input,
.formbox .input-select select {
  font-size: 1.6rem;
  height: 36px;
  padding: 0 .5rem;
}
.formbox .input-date input{
  margin: .5rem 0;
}
.formbox .input-select select{
  appearance: auto;
}
.formbox .input-txtarea textarea {
  padding: .5em;
}
.formbox .input-add{
  margin-top: 1rem;
}
.formbox .input-zip input{
  margin: 0 1rem;
  width: 100px;
}
.formbox .input-zip .subtxt{
  display: block;
  font-size: 1.4rem;
  margin-bottom: -1rem;
  text-align: right;
}

.formbox .input-submit {
  text-align: center;
  margin-top: 2em;
}
.formbox .input-submit div {
  display: inline-block;
  vertical-align: middle;
}
.formbox .input-submit input {
  height: 50px;
  padding: 0 30px;
}
.pagesec-contact{
  position: relative;
}
.pagesec-contact .inner1{
  position: relative;
}
.pagesec-contact .ttlbox1{
  margin-bottom: 2rem;
}
.pagesec-contact .firsttxt{
  margin: 0 auto ;
  max-width: 800px;
  padding: 1rem;
}
.pagesec-contact .firsttxt p{
  color: #282828;
  font-size: 1.8rem;
  font-weight: bold;
}
.pagesec-contact .txtbox{
  margin: 2rem auto ;
  max-width: 800px;
  padding: 1rem;
  position: relative;
}
.pagesec-contact .txtbox .attention{
  color: #A42020;
  font-weight: bold;
  margin-top: -1rem;
}
.pagesec-contact .txtbox .telbox{
  margin-top: 2rem;
}
.pagesec-contact .txtbox .telbox a{
  color: #003da5;
  font-size: 2.4rem;
  font-weight: bold;
}
.pagesec-contact .txtbox .telbox a i{
  margin-right: .3rem;
}
.pagesec-contact .txtbox .telbox p{
  font-weight: bold;
  margin: 0;
}

.pagesec-contact .box{
  margin-top: 2rem;
  position: relative;
  padding-top: 1rem;
}
.pagesec-contact .ppbox{
  margin: 2rem auto;
  max-width: 800px;
}
.pagesec-contact .ppbox a{
  text-decoration: underline;
}
.formblock .lastcheck{
  margin: 0 auto;
  max-width: 800px;
}
.pagesec-contact .wpcf7-spinner {
  margin: 0;
  position: absolute;
  bottom: -4rem;
  left: 50%;
  transform: translateX(-50%);
}
form.sent .formblock,
form .sent-after,
form.sent .fomb{
  display: none;
}
form.sent .sent-after{
  display: block;
  margin: 0 auto 2rem;
  max-width: 800px;
  padding: 1rem;
  position: relative;
  text-align: center;
}
.pagesec-contact .wpcf7 form .wpcf7-response-output{
  margin: 0 auto;
  max-width: 800px;
  padding: 20px;
  text-align: center;
}

.fomb {
  max-width: 300px;
  margin: 2rem auto 0;
}
.fomb input{
  background: #BE2E4C;
  border: 1px solid #BE2E4C;
  box-shadow: 6px 8px 15px rgb(0 0 0 / 0%);
  color: #fff;
  display: inline-block;
  min-width: 180px;
  opacity: 1 !important;
  padding: .5rem 2rem ;
  position: relative;
  transition: .3s;
  letter-spacing: 5px;
}
.fomb:hover input{
  background-color: #fff;
  color: #BE2E4C;
  letter-spacing: 5px;
}
.fomb input:disabled{
  background: #b5b5b5 !important;
  color: #ebebeb;
  border: 1px solid #b5b5b5;
  box-shadow: 6px 8px 15px rgb(0 0 0 / 30%);
}


@media only screen and (max-width: 1180px) {
  
}
@media only screen and (max-width: 1024px) {
  
}
@media only screen and (max-width: 820px) {

}
@media only screen and (max-width: 768px) {
  
}
@media only screen and (max-width: 767px) {
  .formbox .input-zip .subtxt{
    margin-bottom: 1rem;
    text-align: left;
  }
  .formbox .fomttl {
    padding: 1rem;
    text-align: left;
    width: 100%;
  }
  .formbox .fomcontent{
    padding: 1.5rem 1rem;
    width: 100%;
  }
  .contactlink .fbox{
    margin: .5rem 0;
    width: 100%;
  }
  .formbox .input-age input, .formbox .input-num input {
    margin-right: 1rem;
    max-width: 70px;
  }
  .pagesec-contact .ppbox .formpp h3 {
    font-size: 2.4rem;
  }
  .pagesec-contact .wpcf7 form .wpcf7-response-output{
    margin: 0 auto;
    max-width: 800px;
    padding: 20px;
    text-align: left;
  }
  .pagesec-contact .txtbox,
  form.sent .sent-after{
    text-align: left;
  }

  .formbox .fomcontent dt,
  .formbox .fomcontent dd{
    width: 100%;
  }
  .formbox .input-add {
    margin: 0 0 1rem;
  }
  .pagesec-contact .formlinks li{
    margin: 0 auto;
    width: 80%;
  }
  .pagesec-contact .formlinks li a{
    border: 1px solid #0F2453;
    border-bottom: 0;
  }
  .pagesec-contact .formlinks li:last-of-type{
    border-bottom: 1px solid #0F2453;
  }
}

/* ----------------------------------------
animate.cssカスタム
------------------------------------------*/
.animate__delay-01s {animation-delay: calc(var(--animate-delay) * 0.1);}
.animate__delay-02s {animation-delay: calc(var(--animate-delay) * 0.2);}
.animate__delay-03s {animation-delay: calc(var(--animate-delay) * 0.3);}
.animate__delay-04s {animation-delay: calc(var(--animate-delay) * 0.4);}
.animate__delay-05s {animation-delay: calc(var(--animate-delay) * 0.5);}
.animate__delay-06s {animation-delay: calc(var(--animate-delay) * 0.6);}
.animate__delay-07s {animation-delay: calc(var(--animate-delay) * 0.7);}
.animate__delay-08s {animation-delay: calc(var(--animate-delay) * 0.8);}
.animate__delay-09s {animation-delay: calc(var(--animate-delay) * 0.9);}
.animate__delay-10s {animation-delay: calc(var(--animate-delay) * 1.0);}
.animate__delay-11s {animation-delay: calc(var(--animate-delay) * 1.1);}
.animate__delay-12s {animation-delay: calc(var(--animate-delay) * 1.2);}
.animate__delay-13s {animation-delay: calc(var(--animate-delay) * 1.3);}
.animate__delay-14s {animation-delay: calc(var(--animate-delay) * 1.4);}
.animate__delay-15s {animation-delay: calc(var(--animate-delay) * 1.5);}
.animate__delay-16s {animation-delay: calc(var(--animate-delay) * 1.6);}
.animate__delay-17s {animation-delay: calc(var(--animate-delay) * 1.7);}
.animate__delay-18s {animation-delay: calc(var(--animate-delay) * 1.8);}
.animate__delay-19s {animation-delay: calc(var(--animate-delay) * 1.9);}
.animate__delay-20s {animation-delay: calc(var(--animate-delay) * 2);}

.top_flex_3col{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-content: flex-start;
    justify-content: flex-start;
    align-items: flex-start;
}
.top_flex_3col li{
  width: calc(100% / 3);
  padding: 10px;
}
@media screen and (max-width: 820px) {
.top_flex_3col li{
  width: calc(100% / 2);
  padding: 10px;
}
}
@media screen and (max-width: 767px) {
.top_flex_3col li{
  width: calc(100% / 2);
  padding: 5px;
}
}


/* 既存ブロックの軽い整え（任意） */
.box_switch_bg { 
background: radial-gradient(circle at center, #f8f8f8 0%, #e6e6e6 40%, #d4d4d4 70%, #c2c2c2 100%);
border-radius: 0px;
padding: 60px 20px 10px;
margin-bottom: 40px;
}
@media screen and (max-width: 767px) {
.box_switch_bg { 
  background: #ffffff;
  padding: 0px;
}
}

.company_tbl { 
  width: 100%; 
  border-collapse: collapse; 
}
@media (max-width: 767px) {
.company_tbl { 
  font-size: 14px;
}
}


.company_tbl th,.company_tbl td { 
  border-bottom: 1px solid #d1d1d1; 
  padding: 15px 10px;
  vertical-align: top; 
}
.company_tbl tr:first-child th,.company_tbl tr:first-child td { 
  border-top: 1px solid #d1d1d1; 
  border-bottom: 1px solid #d1d1d1; 
  padding: 15px 10px;
  vertical-align: top; 
}
@media (max-width: 767px) {
.company_tbl tr:first-child th,.company_tbl tr:first-child td { 
  padding: 15px 10px;
}
}

.company_tbl th { 
  width: 28%; 
  background: #f1f1f1;
  font-weight: 600;
  letter-spacing: 1px; 
}

@media (max-width: 767px) {
  .company_tbl th { 
    width: 25%; 
  }
}

.f_contact_area{
  padding-top: 0px;
  width: 100%;
}

.white_box{
background: #fff;
padding: 30px 120px 30px;
margin: 0 auto;
border: 1px solid #feefef;
width: 90%;
}
@media screen and (max-width: 1300px) {
.white_box{
padding: 30px 50px 30px;
}
}
@media screen and (max-width: 1180px) {
.white_box{
padding: 30px 30px 20px;
}
}
@media screen and (max-width: 820px) {
.white_box{
padding: 30px 30px 10px;
width: 100%;
}
}
@media screen and (max-width: 767px) {
.white_box{
padding: 20px 20px 10px;
}
}

.white_box h3{
  font-size: 20px;
  margin-bottom: 10px;
  font-weight: bold;
  color: #292b2c;
  text-align: center;
}
.white_box .contect_text{
  font-size: 16px;
  margin-bottom: 10px;
  text-align: center;
}
@media screen and (max-width: 767px) {
.white_box h3{
  font-size: 16px;
  margin-bottom: 10px;
  text-align: left;
}
.white_box .contect_text{
  font-size: 14px;
  margin-bottom: 10px;
}
}
.white_box_flex{
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-content: center;
justify-content: center;
align-items: center;
}
.white_box_flex .left_area{
  padding: 20px 20px;
}
.white_box_flex .right_area{
  padding: 0px 20px;
}
@media screen and (max-width: 767px) {
.white_box_flex .left_area{
  padding: 0px 10px;
}
.white_box_flex .right_area{
  padding: 0px 10px;
}
}



.white_box_flex .left_area .tel{
  font-size: 40px;
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 2px;
  position: relative;
  padding-left: 45px;
  font-family: "dnp-shuei-mgothic-std", sans-serif;
}
.white_box_flex .left_area .tel::before {
position: absolute;
content: "";
background-image: url(../images/common/tel.webp);
background-repeat: no-repeat;
display: inline-block;
background-size: cover;
width: 36px;
aspect-ratio: 1 / 1;
left: 0px;
top: 5px;
}


@media screen and (max-width: 600px) {
.white_box_flex .left_area .tel{
  font-size: 30px;
  letter-spacing: 1px;
  padding-left: 40px;
  margin-bottom: 10px;
}
.white_box_flex .left_area .tel::before {
width: 30px;
left: 0px;
top: 5px;
}
}


.white_box_flex .left_area .text{
  font-size: 16px;
  color: #757575;
  text-align: center;
  line-height: 1.2;
  letter-spacing: 2px;
}
@media screen and (max-width: 600px) {
.white_box_flex .left_area .text{
  font-size: 14px;
}
}


.top_bg_img{
  position: relative;
  background-image: url(../images/common/top_bg_img.webp);
  background-repeat: no-repeat;
  background-position: right;
  background-size: cover;
  margin: 0;
  padding: 50px 0 20px;
}
.top_bg_img:before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 1) 30%, rgba(255, 255, 255, 0) 70%);
}
.bg_content {
    position: relative;
    z-index: 0;
    width: 60%;
}
@media screen and (max-width: 820px) {
.top_bg_img:before {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
}
.bg_content {
    width: 100%;
}
}

.contact_bg_img{
  position: relative;
  background-image: url(../images/common/contact_bg.webp);
  background-repeat: no-repeat;
  background-position: right;
  background-size: cover;
  margin: 0;
  padding: 50px 0 50px;
}
.top_bg_img02{
  position: relative;
  background-image: url(../images/common/top_bg_img02.webp);
  background-repeat: no-repeat;
  background-position: right;
  background-size: cover;
  margin: 0;
  padding: 50px 0 20px;
}
.top_bg_img02:before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 1) 30%, rgba(255, 255, 255, 0) 70%);
}
.bg_content02 {
    position: relative;
    z-index: 0;
    width: 90%;
}

@media screen and (max-width: 820px) {
.top_bg_img02:before {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%);
}
.bg_content02 {
    width: 100%;
}
}
/* .white_text p{
  color: #fff;
} */

.greeting_flex{
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-content: center;
justify-content: flex-start;
align-items: center;
margin: 40px 0 120px;
}
.greeting_flex .left_area{
  width: 550px;
}
.greeting_flex .right_area{
  width: calc(100% - 600px);
  margin-left: 50px;
}
@media screen and (max-width: 1024px) {
.greeting_flex{
flex-direction: column-reverse;
  margin: 80px 0;
}
.greeting_flex .left_area{
  width: min(600px, 100%);
  margin: 0 auto;
}
.greeting_flex .right_area{
   width: min(600px, 100%);
  margin: 0px auto 80px
}
}
@media screen and (max-width: 767px) {
.greeting_flex{
flex-direction: column-reverse;
  margin: 30px 0 60px;
}
}


.greeting_flex .left_area p{
  margin-bottom: 20px;
}

.greeting_flex .right_area .img_area{
  position: relative;
  z-index: 0;
}
.greeting_flex .right_area .img_area::before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 30px;
  left: 30px;
  opacity: 0.5;
  z-index: -1;
  background: radial-gradient(circle at center, #f8f8f8 0%, #e6e6e6 40%, #d4d4d4 70%, #c2c2c2 100%);
}
@media screen and (max-width: 767px) {
.greeting_flex .right_area .img_area::before{
  top: 15px;
  left: 15px;
}
}



.message_box{
  position: relative;
  background: linear-gradient(0deg, rgb(254, 223, 223, 1) 50%, rgba(255, 243, 243, 1) 100%);
  border-radius: 20px;
  padding: 50px;
}
.message_title{
  position: absolute;
  display: flex;
  justify-content: center;
  width: 100%;
  text-align: left;
  color: #fff;
  top: 0%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  margin: 0;
  padding: 20px;
  z-index: 1;
  max-width: 100%;
}
@media screen and (max-width: 767px) {
.message_box{
  padding: 50px 15px 15px;
}
.message_title{
  top: 35px;
}
}

.message_box p{
  line-height: 1.8;
  margin-bottom: 10px;
}
.message_box p:last-child{
  margin-bottom: 0px;
}


.hr{
  width: 90%;
  margin: 0 auto;
}
.hr::before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #ccc;
    background-repeat: repeat-x;
    margin-top: 80px;
    margin-bottom: 30px;
}

.hr2{
  width: 90%;
  margin: 0 auto;
}
.hr2::before {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #ccc;
    background-repeat: repeat-x;
    margin-top: 60px;
    margin-bottom: 10px;
}

/*****************************
 table_style01
*****************************/

.table_style01 {
    width: min(900px, 100%);
    margin: 0 auto;
    text-align: center;
    border-collapse: collapse;
    border-spacing: 0;
}
.table_style01 table {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 20px;
    box-sizing: border-box;
    font-size: 15px;
}
@media screen and (max-width: 767px) {
.table_style01 table {
    font-size: 14px;
}
}

.ta01 tr {
    border-bottom: 1px solid #ccc;
}
.ta01 .ta01_head01 {
  width: 100px;
  text-align: center;
}
.ta01 .ta01_head02 {
  background: #f1f1f1;
  width: 70%;
  text-align: center;
  font-weight: bold;
  padding: 20px 10px;
}
@media screen and (max-width: 767px) {
.ta01 .ta01_head02 {
  padding: 15px 10px;
}
}




.ta01 .ta01_head03 {
  background: #ffffff;
  width: 30%;
  font-weight: bold;
}
.ta01 .ta01_head04 {
  background: #f1f1f1;
  width: 70%;
  padding: 20px 10px;
}
.ta01 .ta01_head05 {
  background: #f1f1f1;
  font-weight: bold;
}

.ta01 th {
    text-align: center;
    border: 1px solid #ccc;
    padding: 10px 10px;
    line-height: 1.4;
    display: table-cell;
    align-content: center;
    background: #f1f1f1;
    text-align: left;
}
.ta01 td {
    text-align: center;
    border: 1px solid #ccc;
    padding: 10px 10px;
    line-height: 1.4;
    display: table-cell;
    align-content: center;
    background: #fff;
}

@media screen and (max-width: 767px) {
.ta01 th {
    padding: 10px 5px;
}
.ta01 td {
    padding: 10px 5px;
}
}

.ta01 td span{
  color: #E60101;
}


/*****************************
  RECRUIT
*****************************/
/* .recruittxt{
  text-align: left;
  width: 800px;
  max-width: 100%;
  margin: 0 auto;
}
.recruittxt p{
  margin-bottom: 20px;
}

.recruitsec table {
  border-top: none;
  border-left: none;
  border-collapse: collapse;
  width: min(800px, 100%);
  margin: 10px auto;
}
@media screen and (max-width: 767px) {
  .recruitsec table {
    border-top:  2px solid #c7c7c7;
    font-size: 14px;
  }
}

.recruitsec table th {
  border-bottom: 2px solid #c7c7c7;
  border-right: none;
  padding: 20px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  background-color: #fff;
  text-align: left;
  vertical-align: middle;
  width: 25%;
}
@media screen and (max-width: 767px) {
  .recruitsec table th {
    width: 100%;
    display: block;
    padding: 5px 10px;
    background-color: #f7f7f7;
  }
}

.recruitsec table td {
  border-bottom: 2px solid #c7c7c7;
  border-right: none;
  padding: 20px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .recruitsec table td {
    padding: 20px 10px;
    display:block;
  }
}

.recruit_detail_contents{
  width: min(900px, 100%);
  padding: 40px 30px;
  margin: 0 auto 50px;
  background: #fff;

}
@media screen and (max-width: 767px) {
.recruit_detail_contents{
  width: 100%;
  padding: 30px 0px 0px;
  margin: 0 auto 20px;
}
} */

/******************************
SPのbr
******************************/
.sp_br {
  display: none; /* pcの時は非表示 */
}
.pc_br {
  display: block; /* spの時は非表示 */
}

@media (max-width: 767px) {
  .sp_br {
    display: block; /* spの時は表示 */
  }
  .pc_br {
  display: none; /* spの時は非表示 */
  }
}
/******************************
SPのbr820
******************************/
.sp_br820 {
  display: none; /* pcの時は非表示 */
}
.pc_br820 {
  display: block; /* spの時は非表示 */
}

@media (max-width: 820px) {
  .sp_br820 {
    display: block; /* spの時は表示 */
  }
  .pc_br820 {
  display: none; /* spの時は非表示 */
  }
}


/*****************************
  case archive select
*****************************/
.select_case{
  text-align: center;
  margin-bottom: 50px;
}

.select-wrap {
  position: relative;
}

.select-wrap::before,
.select-wrap::after {
  position: absolute;
  content: '';
  pointer-events: none;
}
.select-wrap::before {
  display: inline-block;
  right: 0;
  width: 2.8em;
  height: 2.8em;
  border-radius: 0 3px 3px 0;
  background-color: #23a564;
}
.select-wrap::after {
  position: absolute;
  top: 50%;
  right: 1.4em;
  transform: translate(50%, -50%) rotate(45deg);
  width: 6px;
  height: 6px;
  border-bottom: 3px solid #fff;
  border-right: 3px solid #fff;
}
.select-wrap select {
  width: 100%;
  max-width: 300px;
  appearance: none;
  height: 2.8em;
  padding: .4em 3.6em .4em .8em;
  border: none;
  border-radius: 3px;
  background-color: #f5f5f5;
  color: #333;
  font-size: 1em;
  cursor: pointer;
}

.select-wrap select:focus {
    color: #333;         /* 文字色 */
    outline: 2px solid #23a564;
}

.thumb__img img{
  width: 400px;
  max-width: 100%;
  object-fit: cover;
  aspect-ratio: 4 /3;
}



/*****************************
  archive-caseスタイル
*****************************/
.thumb__img{
  position: relative;
}

.newslist .top_flex_3col a .cat{
background: #e06a83;
color: #fff;
display: inline-block;
font-size: 14px;
padding: 8px 15px 8px;
line-height: 1;
letter-spacing: 2px;
position: absolute;
top: 0;
right: 0;
margin-right: 0rem;
}
.newslist .top_flex_3col a .cat.cat01{
background: #e06a83;
}
.newslist .top_flex_3col a .cat.cat02{
background: #BE2E4C;
}


@media screen and (max-width: 767px) {
.newslist .top_flex_3col a .cat{
font-size: 12px;
padding: 6px 6px 6px;
}
}

.thumb__title{
font-size: 16px;
line-height: 1.4;
padding-top: 5px;
padding-bottom: 8px;
background: rgb(255, 255, 255, 0.7);
}


/*****************************
  singleスタイル
*****************************/
.text_item_area{
  padding: 0px;
}
.page-single .text_item_area{
  padding: 40px 0;
}


.text_item_area .text_style{
  font-size: 18px;
}

.title{
  text-align: center;
}
#area04 .title{
  text-align: left;
}
.guide_page .title{
  text-align: left;
}

.title h3{
color: #181818;
position: relative;
padding-left: 60px;
font-size: 28px;
margin-bottom: 15px;
letter-spacing: 2px;
font-family: "dnp-shuei-mgothic-std", sans-serif;
font-weight: 600;
font-style: normal;
display: inline-block;
}
.bg_blackboard .title h3{
color: #fff;
}


.title h3::before {
  content: "";
  display: block;
  position: absolute;
  top: 7px;
  left: 10px;
  width: 40px;
  aspect-ratio: 22 / 17;
  background-size: cover;
  background-image: url(../images/common/arrow03.png);
}


@media screen and (max-width: 767px) {
.title h3{
    font-size: 22px;
    padding-left: 40px;
  }
.title h3::before {
  top: 7px;
  left: 7px;
  width: 26px;
  }
  .text_item_area .text_style{
    font-size: 16px;
  }
}

/* カテゴリ */
.cat-case {
  background: #e06a83;
  color: #fff;
  display: inline-block;
  font-size: 16px;
  padding: 8px 15px 8px;
  line-height: 1;
  letter-spacing: 2px;
  border-radius: 20px;
}
.cat-case.cat01{
  background: #e06a83;
}
.cat-case.cat02{
  background: #BE2E4C;
}

/* メインスライダー */
.book_slide_img{
  width: 100%;
  height: 400px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
  .book_slide_img{
    height: auto;
  }
}
.book_slider img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

/* ================================
   サムネイル（常に グリッドレイアウト）
   ================================ */

.book_single_slider_box .book_slider_choicebtn {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* PC：3列 */
.book_single_slider_box .book_slider_c_img {
  width: calc(100% / 3);
  box-sizing: border-box;
  padding: 4px;
  cursor: pointer;
}

/* 画像統一 */
.book_single_slider_box .book_slider_c_img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3 / 2;
}

/* アクティブサムネ枠 */
.book_single_slider_box .book_slider_c_img.slick-current {
  outline: 2px solid #e06a83;
}

/* 820px以下：2列 × 3行 */
@media screen and (max-width: 820px) {
  .book_single_slider_box .book_slider_c_img {
    width: 50%; /* 2列 */
    padding: 4px;
  }
}


/*****************************
  施設紹介
*****************************/

.gallery_area{
  width: 85%;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
.gallery_area{
  width: 90%;
  margin: 0 auto;
}
}

/* 全体横並び：高さは画面の90% */
.side_gallery_wrap {
  display: flex;
  gap: 20px;
  height: auto;
  align-items: stretch; /* 左右を同じ高さに */
}

/* 左メイン 60% */
.side_gallery_main_area {
  flex: 0 0 60%;
  max-width: 60%;
  height: 100%;
}

.side_gallery_main_slider {
  height: 100%;
}

.side_gallery_main_slide {
  width: 100%;
  height: 100%;          /* wrapの高さに合わせる */
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.side_gallery_main_slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;   /* 画像を全部見せる */
  object-position: center;
}

/* 右サムネ 40%（PC〜タブ時は縦グリッド） */
.side_gallery_thumb_area {
  flex: 0 0 40%;
  max-width: 40%;
  height: 100%;
  overflow-y: auto;       /* サムネ多いときは縦スクロール */
}

/* PCデフォルト：4列グリッド（20枚なら4×5） */
.side_gallery_thumb_list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)); /* 4列 */
  gap: 8px;
}

/* 3:2 比率で統一したサムネ */
.side_gallery_thumb_item {
  cursor: pointer;
  aspect-ratio: 3 / 2;  /* ★ 3:2で比率固定 */
  overflow: hidden;
}

.side_gallery_thumb_item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;    /* トリミングしつつ埋める */
}

/* アクティブ時 */
.side_gallery_thumb_item.is-current {
  outline: 2px solid #e06a83;
}

/* 1180px以下：メイン100％ / サブ100％で縦並び */
@media screen and (max-width: 1180px) {
  .side_gallery_wrap {
    flex-direction: column;
    height: auto;              /* 高さ固定解除 */
  }

  .side_gallery_main_area,
  .side_gallery_thumb_area {
    flex: 0 0 auto;
    max-width: 100%;
    height: auto;
  }

  .side_gallery_main_slider {
    height: auto;
  }

  .side_gallery_main_slide {
    height: auto;
  }

  .side_gallery_main_slide img {
    height: auto;
  }

  .side_gallery_thumb_area {
    overflow-y: visible;   /* 縦並び時は一旦解除 */
  }

  .side_gallery_thumb_list {
    height: auto;
  }
}

/* タブレット〜中画面：サムネを3列に（PC時だけ有効） */
@media screen and (max-width: 820px) and (min-width: 768px) {
  .side_gallery_thumb_list {
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3列 */
  }
}

/* ================================
   スマホ（〜767px）：サブは横スクロールのスライダー
   ================================ */
@media screen and (max-width: 767px) {

  /* 縦並びレイアウトは1180px以下ですでに指定済み */

  /* slick 用に block に戻す（gridを上書き） */
  .side_gallery_thumb_list {
    display: block;
    margin-top: 12px;
  }

  /* サムネはスライド内のカード扱い */
  .side_gallery_thumb_item {
    aspect-ratio: 3 / 2;
    overflow: hidden;
  }

  .side_gallery_thumb_area {
    overflow: visible;
  }

  /* サムネ用スライダーの矢印デザイン（お好みで調整） */
  .side_gallery_thumb_list .slick-prev,
  .side_gallery_thumb_list .slick-next {
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
  }

  .side_gallery_thumb_list .slick-prev {
    left: 10px;
  }

  .side_gallery_thumb_list .slick-next {
    right: 10px;
  }

  .side_gallery_thumb_list .slick-prev:before,
  .side_gallery_thumb_list .slick-next:before {
    font-size: 24px;
    color: #23a564;
    filter: drop-shadow(1px 1px 3px #fff);
  }
}

.slick-prev {
    left: 20px;
    z-index: 1;
}
.slick-next{
    right: 20px;
    z-index: 1;
}
.slick-prev:before, .slick-next:before {
    font-family: 'slick';
    font-size: 30px;
    line-height: 1;
    opacity: .75;
    color: #BE2E4C;
    -webkit-font-smoothing: antialiased;
}

.slick-prev.slick-disabled:before, .slick-next.slick-disabled:before {
    opacity: .25;
}


.floormap_area{
  width: min(800px, 100%);
  margin: 0 auto;
  margin: 0 auto;
  margin-top: 0px;
  margin-bottom: 100px;
}

.pointer_none{
  pointer-events: none;
}

.text_bold{
  font-weight: bold;
}
.centertext_area{
  font-size: 16px;
  margin-top: 20px;
  margin-bottom: 50px;
  text-align: center;
}
@media screen and (max-width: 767px) {
.centertext_area{
  text-align: left;
}
}

/* event_flex01 */
.event_flex01{
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-content: center;
justify-content: flex-start;
align-items: center;
font-family: "dnp-shuei-mgothic-std", sans-serif;
margin-bottom: 50px;
width: 80%;
margin-right: 20%;
background: #fffafb;
border-radius: 20px;
padding: 20px;
}
@media screen and (max-width: 1024px) {
.event_flex01{
width: 100%;
margin-right: 0%;
}
}


.event_flex01 .left_area{
  width: 43%;
  margin-right: 2%;
}
.event_flex01 .left_area img{
  border-radius: 20px;
}
.event_flex01 .right_area{
  width: 55%;
}
@media screen and (max-width: 767px) {
.event_flex01{
margin-bottom: 20px;
}
.event_flex01 .left_area{
  width: min(400px, 100%);
  margin: 20px auto;
}
.event_flex01 .right_area{
  width: 100%;
}
}
@media screen and (max-width: 600px) {
.event_flex01 .left_area{
  width: 300px;
}
}
/* event_flex02 */
.event_flex02{
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-content: center;
justify-content: flex-start;
align-items: center;
font-family: "dnp-shuei-mgothic-std", sans-serif;
margin-bottom: 50px;
width: 80%;
margin-left: 20%;
background: #e6f6ff;
border-radius: 20px;
padding: 20px;
}
@media screen and (max-width: 1024px) {
.event_flex02{
width: 100%;
margin-left: 0%;
}
}


.event_flex02 .left_area{
  width: 55%;
}
.event_flex02 .right_area{
  width: 43%;
  margin-left: 2%;
}
.event_flex02 .right_area img{
  border-radius: 20px;
}

@media screen and (max-width: 767px) {
.event_flex02{
flex-direction: column-reverse;
margin-bottom: 20px;
}
.event_flex02 .left_area{
  width: 100%;
}
.event_flex02 .right_area{
  width: min(400px, 100%);
  margin: 20px auto;
}
}
@media screen and (max-width: 600px) {
.event_flex02 .right_area{
  width: 300px;
}
}



/* area_flex */
.area_flex{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: flex-start;
  justify-content: flex-start;
  align-items: flex-start;
  font-family: "dnp-shuei-mgothic-std", sans-serif;
}
.area_flex .icon_area{
  width: 180px;
  margin-right: 20px;
  position: relative;
  top: -40px;
}
.area_flex .list_area{
  width: calc(100% - 200px);
}
@media screen and (max-width: 767px) {
.area_flex{
width: min(400px, 100%);
margin: 0 auto;
}
.area_flex .icon_area{
  width: 150px;
  margin-right: 20px;
  position: relative;
  top: 0px;
}
.area_flex .list_area{
  width: calc(100% - 170px);
}
}



@media screen and (max-width: 600px) {
.area_flex .icon_area{
width: 120px;
margin-right: 0px;
margin: 0 auto;
position: relative;
top: 0px;
}
.area_flex .list_area{
  width: 90%;
  margin-left: 10%;
}
}




.area_flex .list_area ul li{
  position: relative;
  font-size: 18px;
  letter-spacing: 1px;
  margin-bottom: 15px;
  margin-left: 20px;
}
@media screen and (max-width: 600px) {
.area_flex .list_area ul li{
  position: relative;
  font-size: 18px;
  letter-spacing: 1px;
  margin-bottom: 10px;
  margin-left: 0px;
}
}


.area_flex .list_area ul li::before{
content: "";
display: block;
position: absolute;
top: 7px;
left: -30px;
width: 15px;
height: 15px;
border-radius: 50%;
background: #CEE082;
}
.area_flex .list_area ul.month04 li::before{
background: #f0858d;
}
.area_flex .list_area ul.month05 li::before{
background: #008cd7;
}
.area_flex .list_area ul.month06 li::before{
  background: #5ac2d8;
}
.area_flex .list_area ul.month07 li::before{
background: #f5809d;
}
.area_flex .list_area ul.month08 li::before{
background: #864c1e;
}
.area_flex .list_area ul.month09 li::before{
background: #005085;
}
.area_flex .list_area ul.month10 li::before{
  background: #f18103;
}
.area_flex .list_area ul.month11 li::before{
background: #bedb87;
}
.area_flex .list_area ul.month12 li::before{
background: #e9536b;
}
.area_flex .list_area ul.month01 li::before{
background: #f39800;
}
.area_flex .list_area ul.month02 li::before{
background: #ec0031;
}
.area_flex .list_area ul.month03 li::before{
 background: #ed849a;
}

/* すでにある指定があるならそのまま＋これを追加でOK */
.area_flex .icon_area img {
  display: block;
  transform-origin: center center;
  animation: iconFloat 7s ease-in-out infinite;
}

/* ふわふわ＋たまに止まる感じ */
@keyframes iconFloat {
  0%, 15% {
    transform: translate(0, 0) rotate(0deg);
  }
  30% {
    transform: translate(-4px, -6px) rotate(1.5deg);
  }
  45% {
    transform: translate(3px, -3px) rotate(-1.5deg);
  }
  60%, 80% {
    transform: translate(0, 2px) rotate(0.5deg);
  }
  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}

.page_catch{
  text-align: center;
  width: min(800px, 100%);
  margin: 30px auto 60px;
  background: rgb(255, 255, 255, 0.8);
  border-radius: 30px;
  padding: 20px;
}
@media screen and (max-width: 767px) {
.page_catch{
  padding: 20px 10px;
}
}

.page_catch p{
    font-size: 24px;
    letter-spacing: 1px;
    font-family: "dnp-shuei-mgothic-std", sans-serif;
    font-weight: 600;
    font-style: normal;
    line-height: 2;
    color: #e06a83;
}
.page_catch p span{
      font-size: 30px;
    letter-spacing: 1px;
    font-family: "dnp-shuei-mgothic-std", sans-serif;
    font-weight: 600;
    font-style: normal;
    line-height: 2;
    color: #27811c;
    vertical-align: bottom;
}
@media screen and (max-width: 820px) {
.page_catch p{
    font-size: 20px;
}
.page_catch p span{
    font-size: 26px;
}
}
@media screen and (max-width: 767px) {
.page_catch p{
    font-size: 18px;
}
.page_catch p span{
    font-size: 18px;
}
}

div.hr3 {
    width: 60%;
    margin: 0 auto;
}
@media screen and (max-width: 820px) {
    div.hr3 {
        width: 80%;
        margin: 0 auto;
    }
}
@media screen and (max-width: 767px) {
    div.hr3 {
        width: 95%;
        margin: 0 auto;
    }
}
div.hr3::before {
content: "";
display: block;
width: 100%;
height: 35px;
background-image: url(../images/common/line_hr3.svg);
background-repeat: repeat-x;
background-size: contain;
/* filter: grayscale(100%); */
}

.page_objective{
  text-align: left;
  width: min(800px, 100%);
  margin: 30px auto 60px;
  position: relative;
  z-index: 0;
}

.objective_flex{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: center;
  justify-content: flex-start;
  align-items: center;
}
.objective_flex .area{
  width: calc(100% / 2);
  padding: 20px;
}
@media screen and (max-width: 820px) {
.objective_flex .area{
  width: calc(100% / 1);
  padding: 20px;
}
}
@media screen and (max-width: 820px) {
.objective_flex .area{
  padding: 10px 20px;
}
}

.objective_flex .area .text_area{
  padding: 30px 10px;
  background: rgb(254,239,239,0.8);
  border-radius: 30px;
  min-height: 220px;
  display: grid;
  align-items: center;
  text-align: center;
  border: 1px solid #ee785e;
}
@media screen and (max-width: 820px) {
.objective_flex .area .text_area{
padding: 10px 20px;
min-height: 110px;
width: min(400px, 100%);
margin: 0 auto;
}
}

.objective_flex .area .text_area p{
  font-size: 24px;
  letter-spacing: 1px;
  font-family: "dnp-shuei-mgothic-std", sans-serif;
  font-weight: 600;
  font-style: normal;
  line-height: 1.6;
  color: #BE2E4C;
}
@media screen and (max-width: 820px) {
.objective_flex .area .text_area p{
  font-size: 18px;
}
}
@media screen and (max-width: 767px) {
.objective_flex .area .text_area p{
  font-size: 16px;
  text-align: left;
}
}

.bg_blackboard {
  position: relative;
  background-image: url(../images/common/blackboard_img.jpg);
  background-size: cover;
  background-position: center;
  height: 100%;
  color: #fff;
  padding: 60px 0 60px;
  margin: 0px 0;
}


.bg_sdgs {
  position: relative;
  background-image: url(../images/common/rainbow.webp);
  background-size: cover;
  background-position: top;
  height: 100%;
  padding: 60px 0 60px;
  margin: 0px 0;
}



.bg_whitearea {
position: relative;
height: 100%;
padding: 60px 0 60px;
margin: 0px 0;
  background-color: #ffffff;
  background-image: repeating-linear-gradient(45deg, #f9f9f980, #f9f9f980 25px, transparent 25px, transparent 45px), repeating-linear-gradient(-45deg, #f9f9f980, #f9f9f980 25px, transparent 25px, transparent 45px);
}

.page_policylist{
  text-align: left;
  width: min(800px, 100%);
  margin: 60px auto 60px;
  position: relative;
  z-index: 0;
}

.page_policylist ul li{
  margin-bottom: 50px;
  position: relative;
}

.page_policylist ul li::before{
    content: "01";
    display: block;
    position: absolute;
    font-size: 40px;
    letter-spacing: 5px;
    width: 60px;
    height: 60px;
    top: 43%;
    left: 40px;
    transform: translateY(-50%) translateX(-50%);
}

@media screen and (max-width: 767px) {
.page_policylist ul li::before{
    font-size: 30px;
    width: 50px;
    height: 50px;
    top: 44%;
    left: 30px;
}
}

.page_policylist ul li:nth-child(1)::before{
    content: "01";
}
.page_policylist ul li:nth-child(2)::before{
    content: "02";
}
.page_policylist ul li:nth-child(3)::before{
    content: "03";
}
.page_policylist ul li:nth-child(4)::before{
    content: "04";
}
.page_policylist ul li:nth-child(5)::before{
    content: "05";
}

.page_policylist ul li p{
  font-size: 24px;
  letter-spacing: 1px;
  font-family: "dnp-shuei-mgothic-std", sans-serif;
  font-weight: 600;
  font-style: normal;
  line-height: 1.6;
  color: #ffffff;
  padding-left: 90px;
}
@media screen and (max-width: 767px) {
.page_policylist ul li p{
  font-size: 18px;
  padding-left: 65px;
}
}

.sdgs_title{
  text-align: center;
  margin-top: 100px;
}
.sdgs_title p{
  font-size: 45px;
  line-height: 1;
font-family: "dnp-shuei-mgothic-std", sans-serif;
font-weight: 600;
font-style: normal;
color: #BE2E4C;
  letter-spacing: 3px;
  text-shadow: 3px 3px 0 #FFF, -3px -3px 0 #FFF, -3px 3px 0 #FFF, 3px -3px 0 #FFF, 0px 3px 0 #FFF, 0 -3px 0 #FFF, -3px 0 0 #FFF, 3px 0 0 #FFF;
}

.sdgs_title p span{
  font-size: 60px;
  line-height: 1;
  font-family: "dnp-shuei-mgothic-std", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #181818;
}
.sdgs_title img{
  width: 300px;
}

@media (max-width: 820px) {
  .sdgs_title{
  text-align: center;
  margin-top: 50px;
}
.sdgs_title p{
  font-size: 25px;
   line-height: 1.4;
}

.sdgs_title p span{
  font-size: 28px;
   line-height: 1.4;
    text-shadow: 2px 2px 0 #FFF, -2px -2px 0 #FFF, -2px 2px 0 #FFF, 2px -2px 0 #FFF, 0px 2px 0 #FFF, 0 -2px 0 #FFF, -2px 0 0 #FFF, 2px 0 0 #FFF;
}
}




.sdgs_area{
  margin-top: 30px;
  margin-bottom: 50px;
}
.sdgs_flex{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: flex-start;
  justify-content: flex-start;
  align-items: flex-start;
  border-top: 1px solid #ccc;
  padding: 10px;
  width: min(800px, 100%);
  margin: 0px auto;
}
.sdgs_flex .left_area{
  width: calc(100% - 180px);
  padding: 20px;
  border-right: 1px solid #ccc;
}
.sdgs_flex .right_area{
  width: 180px;
  padding: 20px;
}
@media (max-width: 820px) {
.sdgs_flex .left_area{
  width: 100%;
  padding: 20px 0 0;
  border-right: unset;
}
.sdgs_flex .right_area{
  width: 180px;
  margin: 0 auto;
}
}


.sdgs_flex img{
  width: 160px;
  aspect-ratio: 1/1;
  object-fit: cover;
}
.sdgs_flex h4{
  font-size: 22px;
  font-weight: bold;
  margin-bottom: 10px;
}
.sdgs_flex p{
  font-size: 18px;
  margin-bottom: 10px;
  line-height: 1.8;
}

.main_img_area{
  width: min(800px, 100%);
  margin: 50px auto;
}

.flow_time {
    width: 100%;
    margin: 20px auto;
    position: relative;
}
.flow_time dl:not(:last-child) {
    margin-bottom: 20px;
}
.flow_time dl {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    line-height: 1.2;
}
.flow_time dl dt {
    width: 50%;
    position: relative;
    font-size: 16px;
    text-align: right;
    padding-right: 50px;
}
.flow_time dl dt:before {
    position: absolute;
    content: '';
    background: #fedfdf;
    width: 2px;
    height: 60px;
    right: 9px;
    top: 45px;
    transform: translate(0, -50%);
}
.flow_time dl dt:after {
    position: absolute;
    content: '';
    background: #fff;
    width: 10px;
    height: 10px;
    border: 5px solid #e06a83;
    top: 2px;
    right: 0px;
    border-radius: 50px;
}
.flow_time dl dd {
    font-size: 16px;
    width: 50%;
}
.flow_time p {
font-size: 16px;
line-height: 1.4;
margin-bottom: 10px;
text-align: left;
margin-left: 25px;
}


/*****************************
テーブル01
*****************************/

.guide_page_table {
  margin-top: 20px;
  margin-bottom: 20px;
  table-layout: fixed;
  width: min(800px, 100%);
  font-size: 18px;
}
@media screen and (max-width: 820px) {
.guide_page_table{
  font-size: 16px;
}
}
@media screen and (max-width: 767px) {
.guide_page_table{
  font-size: 14px;
  line-height: 1.4;
  margin-bottom: 10px;
}
}

.guide_page_table thead th {
    background-color: #e06a83;
    color: #fff;
    text-align: center;
    padding: 6px 10px;
    letter-spacing: 0.15em;
    vertical-align: middle;
}
.guide_page_table thead th:nth-of-type(n+2) {
    border-left: 1px solid #fff;
}

.guide_page_table tbody tr:nth-child(even) {
background-color: #fef1f3;
}

.guide_page_table tbody tr {
    border-top: 1px solid #fff;
}

.guide_page_table tbody tr th {
    text-align: center;
}
.guide_page_table tbody tr td {
    text-align: center;
}

.guide_page_table tbody td,.guide_page_table tbody th {
    padding: 20px 5px;
    border-left: 1px solid #fff;
    vertical-align: middle;
}
.guide_page_table .pointcell01{
  background: #ffccd7;
}
.guide_page_table .pointcell02{
  background: #f0f6fb;
}
.guide_page_table .pointcell03{
  background: #fff;
}
.guide_page_table .pointcell04{
  background: #BE2E4C;
  background: #e06a83;
  color: #fff;
}
/*****************************
テーブル02
*****************************/

.guide_page_table02 {
  table-layout: fixed;
  width: min(800px, 80%);
  margin: 20px auto;
  font-size: 18px;
}
@media screen and (max-width: 820px) {
.guide_page_table02 {
  font-size: 16px;
}
}
@media screen and (max-width: 767px) {
.guide_page_table02 {
  font-size: 14px;
}
}

.guide_page_table02 tbody tr {
    border-bottom: 1px dotted #e06a83;
}

.guide_page_table02 tbody tr th {
text-align: center;
color: #e06a83;
letter-spacing: 3px;
}
.guide_page_table02 tbody tr td {
text-align: center;
letter-spacing: 3px;
}

.guide_page_table02 tbody td,.guide_page_table02 tbody th {
    padding: 10px 10px 5px;
    vertical-align: middle;
}

/*****************************
guide_flex
*****************************/
.guide_flex{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: flex-start;
  justify-content: flex-start;
  align-items: flex-start;
}
.guide_flex .left_area{
  width: calc(100% / 2);
  padding: 20px;
}
.guide_flex .right_area{
  width: calc(100% / 2);
  padding: 20px;
}
@media screen and (max-width: 767px) {
.guide_flex .left_area{
  width: calc(100% / 1);
  padding: 0px;
}
.guide_flex .right_area{
  width: calc(100% / 1);
  padding: 0px;
}
.guide_flex .right_area .guide_page_table02 {
  margin-top: 0px;
}
}

.guide_page .text_style{
  font-size: 18px;
}
.guide_page .text_style p{
  margin-bottom: 10px;
}
@media screen and (max-width: 820px) {
.guide_page .text_style {
  font-size: 16px;
}
}
@media screen and (max-width: 767px) {
.guide_page .text_style {
  font-size: 14px;
}
.guide_page .text_style p{
  margin-bottom: 20px;
}
}


/*==================================================
タブ切り替えのためのcss
===================================*/
/*タブ切り替え全体のスタイル*/
.tab {
  margin: 30px auto;
  width: 100%;
}

.tab-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  width: 400px;
  max-width: 100%;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .tab-list {
    width: 90%;
    margin: 0 auto;
  }
}


.tab-list li{
  width: calc(90% / 2);
  padding: 10px;
  margin: 5px;
  border-radius: 30px;
  font-size: 24px;
}
@media screen and (max-width: 767px) {
  .tab-list li{
    font-size: 18px;
  }
}



.tab-list .current {
  position: relative;
}

.tab-list .current::after {
  content: "";
  position: absolute;
  border-top: 20px solid #6ab561;
  border-right: 20px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 20px solid transparent;
  bottom: -40px;
  left: 50%;
  margin-left: -20px;
  transform: translateY(-50%);
}

.tab-menu {
  align-items: center;
  background: #ffffff;
  color: #6ab561;
  cursor: pointer;
  display: flex;
  height: 60px;
  justify-content: center;
  border: 1px solid #ffffff;
  line-height: 1.2;
  text-align: center;
  border: 2px solid #6ab561;
}
.tab-menu.current {
  background-color: #6ab561;
  color: #ffffff;
}
.content-box {
  display: none;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .content-box {
    padding: 30px 10px;
  }
}
.item_img_style{
  text-align: center;
}
.item_img_style img{
  width: 150px;
  margin:  0 auto;
}
@media screen and (max-width: 820px) {
  .item_img_style img{
    width: 150px;
    margin:  0 auto;
  }
}

/* フローページ */

.pagesec-flow{
  padding-top: 150px;
  padding-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .pagesec-flow{
    padding-top: 60px;
    padding-bottom: 60px;
  }
}


.pagesec-flow .flow {
padding-bottom: 5rem;
padding-top: 3rem;
  position: relative;
}
@media screen and (max-width: 767px) {
.pagesec-flow .flow {
  padding-bottom: 2rem;
  padding-top: 2rem;
  position: relative;
}
}

.flexbox2 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.pagesec-flow .flow:not(:last-of-type):before {
  content: "";
  height: 100%;
  border-right: 5px dotted #ccc;
  width: 5px;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
@media only screen and (max-width: 820px) {
  .pagesec-flow .flow:not(:last-of-type):before {
      left: 117px;
      transform: none;
  }
}
@media only screen and (max-width: 767px) {
  .pagesec-flow .flow:not(:last-of-type):before {
      left: 0;
  }
}

.pagesec-flow .timebox {
  position: absolute;
  top: -2rem;
  left: 50%;
  transform: translateX(-50%);
      z-index: 1;
}
@media only screen and (max-width: 820px) {
  .pagesec-flow .timebox {
      left: 0;
      transform: none;
  }
}
@media only screen and (max-width: 767px) {
  .pagesec-flow .timebox {
      margin-right: auto;
      position: relative;
      top: -2rem;
  }
}

.pagesec-flow .time {
  background: #e06a83;
  border: 8px solid #fff;
  border-radius: 50px;
  color: #fff;
  text-align: center;
  width: 250px;
}
@media only screen and (max-width: 767px) {
  .pagesec-flow .time {
      border-radius: 30px;
  }
}

.pagesec-flow .time p {
  padding: 5px;
  position: relative;
  font-size: 24px;
}

@media screen and (max-width: 767px) {
.pagesec-flow .time p {
  padding: 10px;
  position: relative;
  font-size: 16px;
}
}

.pagesec-flow .time p:nth-child(2)::before {
  content: "";
  border-top: 2px dotted #fff;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 1px;
  width: 80%;
}
.pagesec-flow .fimgbox {
  margin-right: auto;
  width: calc(50% - 30px);
}
@media only screen and (max-width: 820px) {
  .pagesec-flow .fimgbox {
      margin: 0 2rem 0 auto !important;
      width: 65%;
  }
}
@media only screen and (max-width: 767px) {
  .pagesec-flow .fimgbox {
      margin: 0 0 0 auto !important;
      width: 95%;
  }
}

.fimgbox {
  text-align: center;
}
.pagesec-flow .fimgbox .imgbox {
  border-radius: 30px;
  overflow: hidden;
  position: relative;
}
@media screen and (max-width: 767px) {
  .pagesec-flow .fimgbox .imgbox {
    border-radius: 10px;
    overflow: hidden;
    
  }
}
.pagesec-flow .fimgbox .imgbox::before {
  content: "仮イメージ";
  font-size: 60px;
    position: absolute;
    display: flex;
    justify-content: center;
    width: 100%;
    text-align: left;
    color: #fff;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    margin: 0;
    padding: 20px;
    z-index: 1;
    max-width: 100%;
    text-shadow: 1px 1px 3px #555;
}


.pagesec-flow .ftxtbox {
    margin-top: 2rem;
  width: 45%;
}
@media only screen and (max-width: 820px) {
  .pagesec-flow .ftxtbox {
      margin: 1rem 5% 0 auto;
      width: 60%;
  }
}
@media only screen and (max-width: 767px) {
  .pagesec-flow .ftxtbox {
      margin: 1rem 5% 0 auto;
      width: 85%;
  }
}
.ttl3 {
  padding: 1rem;
  position: relative;
  text-align: center;
}

.ttl3 h3 {
  background: #fff;
  color: #111111;
  display: inline-block;
  font-size: 24px;
  font-weight: bold;
  padding: 5px 20px;
  position: relative;
  line-height: 1;
}
@media only screen and (max-width: 767px) {
  .ttl3 h3 {
    font-size: 18px;
  }
}
.ttl3 h3 span{
  font-size: 16px;
}

.ttl3::before {
  top: 40%;
}
.ttl3::after {
  bottom: 40%;
  height: 1px;
  z-index: -1;
}

.ttl3::before, .ttl3::after {
  content: "";
  background: #BE2E4C;
  position: absolute;
  left: 0;
  height: 2px;
  width: 100%;
}


.pagesec-flow .ftxtbox .content {
  margin: 0px 0 30px;
}
.pagesec-flow .ftxtbox .content p {
  line-height: 1.8;
  font-size: 20px;
}
@media screen and (max-width: 767px) {
  .pagesec-flow .ftxtbox .content p {
    line-height: 1.6;
    font-size: 18px;
  }
}

.pagesec-flow .ftxtbox .imgbox {
  margin-top: 10px;
}
.frr {
  flex-direction: row-reverse;
}
.pagesec-flow .frr .fimgbox {
  margin-left: auto;
  margin-right: 0;
}


      /* ----------------------------------------
よくあるご質問
------------------------------------------*/
.ul-tab-faq {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
width: 100%;
margin: 0 auto 50px;
}

.ul-tab-faq li {
  width: calc(100% / 4);
  padding: 10px;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .ul-tab-faq {
    justify-content: flex-start;
  }
  .ul-tab-faq li {
    width: calc(100% / 3);
    padding: 10px;
    text-align: center;
  }
}
@media screen and (max-width: 820px) {
  .ul-tab-faq li {
    width: calc(100% / 2);
  }
  .ul-tab-faq li a {
    padding: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .ul-tab-faq li {
  padding: 10px 7px;
  }
}


.ul-tab-faq li a {
border: 2px solid #23a564;
  padding: 0.5rem 1rem;
  background: #23a564;
  color: #fff;
  letter-spacing: 1px;
  display: block;
}
@media screen and (max-width: 767px) {
.ul-tab-faq li a {
  padding: 0.3rem 0.5rem;
}
}

.cat-faq-wrap:not(:last-of-type) {
  margin-bottom: 5rem;
}
.ttl-faq-cat {
  font-size: 2rem;
  border-bottom: 2px dotted #e5b94b;
  margin-bottom: 2rem;
}


.qa_list {
  margin-bottom: 20px;
  user-select: none;
}
.qa_list dl {
  position: relative;
  margin: 30px 0 0;
  cursor: pointer;
}
.qa_list dl:first-child {
  margin-top: 0;
}
.qa_list dl::after {
  position: absolute;
  top: 27px;
  right: 26px;
  display: block;
  width: 7px;
  height: 7px;
  margin: auto;
  content: '';
  transform: rotate(135deg);
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
.qa_list .open::after {
  transform: rotate(-45deg);
}
.qa_list dl dt {
  position: relative;
  margin: 0;
  padding: 15px 60px 15px 90px;
  background: #E06A83;
  color: #ffffff;
  font-size: 18px;
  line-height: 1.6;
}


@media screen and (max-width: 820px) {
  .qa_list dl dt {
    padding: 15px 60px 15px 60px;
  }
}
@media screen and (max-width: 767px) {
  .qa_list dl dt {
    padding: 15px 50px 15px 50px;
    font-size: 16px;
    line-height: 1.6;
  }
}
.qa_list dl dt::before {
  font-size: 22px;
  position: absolute;
  top: 5px;
  left: 20px;
  content: 'Q.';
  color: #fff;
  width: 50px;
  height: 50px;
  text-align: center;
  line-height: 50px;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .qa_list dl dt::before {
    left: 5px;
    top: 0px;
  }
}

.qa_list dl dd {
  position: relative;
  margin: 0;
  padding: 30px 20px 40px 90px;
  background: #fff;
  font-size: 16px;
  border: 2px solid #E06A83;
}



@media screen and (max-width: 820px) {
  .qa_list dl dd {
    padding: 30px 20px 40px 60px;
  }
}
@media screen and (max-width: 767px) {
  .qa_list dl dd {
    padding: 45px 15px 20px 15px;
    font-size: 16px;
    line-height: 1.6;
  }
}


.qa_list dl dd::before {
  font-size: 22px;
  position: absolute;
  top: 10px;
  left: 20px;
  content: 'A.';
  color: #E06A83;
  width: 50px;
  height: 50px;
  text-align: center;
  line-height: 50px;
  display: inline-block;
}

@media screen and (max-width: 820px) {
  .qa_list dl dd::before {
    left: 10px;
  }
}
@media screen and (max-width: 767px) {
  .qa_list dl dd::before {
    top: 0px;
  }
}
.ul-work-gallery{
  margin-bottom: 30px;
}

/*****************************
採用情報
*****************************/
.recruit-page-style{
width: min(900px, 100%);
margin: 0 auto;
}
.recruit-txt1{
  font-size: 30px;
  text-align: center;
  margin-bottom: 30px;
  font-family: "dnp-shuei-mgothic-std", sans-serif;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
.recruit-txt1{
  font-size: 20px;
  text-align: left;
  line-height: 1.4;
}
}

.recruit-wysiwyg{
  width: 100%;
  margin: 20px 0 50px;
  color: #555555;
  line-height: 1.8;
  font-size: 18px;
}
@media screen and (max-width: 767px) {
.recruit-wysiwyg{
  line-height: 1.6;
  font-size: 16px;
}
}


.recruit-wysiwyg p{
  margin-bottom: 20px;
}
.recruit-block{
padding: 30px 20px;
border-bottom: 2px solid #feefef;
}
@media screen and (max-width: 767px) {
.recruit-block{
padding: 20px 0px;
}
}


.recruit-block:first-child{
  border-top: 2px solid #feefef;
}
.recruit-block:last-child{
  margin-bottom: 50px;
}
.recruit-block h4{
  font-size: 24px;
  color: #e06a83;
  letter-spacing: 2px;
}
@media screen and (max-width: 767px) {
.recruit-block h4{
  font-size: 20px;
  letter-spacing: 1px;
}
}

.recruit-block .recruit-block__txt{
  color: #555555;
  line-height: 1.8;
}

.recruit-textarea{
 background: #FEF1F3;
  padding: 30px 20px;
  margin-bottom: 50px;
}

/*****************************
募集要項　一覧＋詳細テーブル
*****************************/

/* ===== 共通：見出し（ピンク線） ===== */
.summary-head{
  margin: 0 0 30px;
}
.summary-ttl{
color: #181818;
position: relative;
padding-left: 60px;
font-size: 28px;
letter-spacing: 2px;
font-family: "dnp-shuei-mgothic-std", sans-serif;
font-weight: 600;
font-style: normal;
display: inline-block;
}
.summary-ttl::before {
  content: "";
  display: block;
  position: absolute;
  top: 7px;
  left: 10px;
  width: 40px;
  aspect-ratio: 22 / 17;
  background-size: cover;
  background-image: url(../images/common/arrow03.png);
}
.summary-head::after{
  content:"";
  display:block;
  height: 3px;
  width: 100%;
  background: #e7b9b9; /* ピンク系 */
}

/* ===== 一覧 ===== */
.summary-list{
  list-style: none;
  padding: 0;
  margin: 0;
}
.summary-item{
display: flex;
align-items: baseline;
gap: 15px;
padding: 30px 0 5px;
border-bottom: 1px solid #e9ecef;
}
.summary-link{
display: inline-flex;
align-items: center;
gap: 8px;
color: #2e9b65;
text-decoration: underline;
text-underline-offset: 3px;
margin-left: 40px;
position: relative;
}
.summary-link::before{
    content: "";
    display: block;
    position: absolute;
    top: 2px;
    left: -30px;
    width: 25px;
    aspect-ratio: 22 / 17;
    background-size: cover;
    background-image: url(../images/common/arrow03.png);
}
.summary-link:hover{
  opacity: .8;
}
.summary-date{
margin-right: auto;
font-size: 16px;
color: #6c757d;
}
@media screen and (max-width: 767px) {
.summary-date{
margin-right: unset;
margin-left:auto;
font-size: 14px;
}
}

/* ===== 詳細：テーブル ===== */
.summary-tablewrap{
  overflow-x: auto;
}
.summary-table{
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #e9ecef;
  background: #fff;
}
.summary-table th,
.summary-table td{
  border: 1px solid #e9ecef;
  padding: 15px 20px;
  vertical-align: top;
  font-size: 16px;
  line-height: 1.8;
}
.summary-table th{
width: 25%;
min-width: 140px;
background: #f6f7f9;
font-weight: 700;
color: #4b5563;
letter-spacing: 2px;
}

/* スマホ調整 */
@media (max-width: 767px){
  .summary-item{
    flex-wrap: wrap;
    gap: 7px;
  }
  .summary-table th{
    width: 34%;
    min-width: 120px;
  }
}

.recruit_box{
  background: #fff;
  padding: 30px 120px 30px;
  margin: 0 auto;
  border: 3px solid #cde0d6;
  width: 100%;
  text-align: center;
  margin-top: 70px;
}
@media screen and (max-width: 1300px) {
.recruit_box{
        padding: 30px 50px 30px;
    }
}
@media screen and (max-width: 820px) {
.recruit_box{
        padding: 30px 20px 30px;
    }
}
@media screen and (max-width: 600px) {
.recruit_box{
        padding: 20px 15px 20px;
        text-align: left;
    }
}

.recruit_box .tel {
    font-size: 40px;
    font-weight: bold;
    line-height: 1.2;
    letter-spacing: 2px;
    position: relative;
    padding-left: 45px;
    font-family: "dnp-shuei-mgothic-std", sans-serif;
    display: inline-block;
}
@media screen and (max-width: 600px) {
.recruit_box .tel {
    font-size: 30px;
    padding-left: 45px;

}
}


.recruit_box  .tel::before {
    position: absolute;
    content: "";
    background-image: url(../images/common/tel.webp);
    background-repeat: no-repeat;
    display: inline-block;
    background-size: cover;
    width: 36px;
    aspect-ratio: 1 / 1;
    left: 0px;
    top: 5px;
}
@media screen and (max-width: 600px) {
.recruit_box  .tel::before {
  width: 30px;
  left: 7px;
  top: 5px;
}
}

.recruit_box .text {
    font-size: 16px;
    color: #757575;
    text-align: center;
    line-height: 1.2;
    letter-spacing: 2px;
}