@charset "UTF-8";

/*===========================================================*/
/* # 見出し
/*===========================================================*/
.section-heading{
  text-align: center;
  margin-bottom:3.5rem;
}
.section-heading span{
  display: inline-block;
  font-size: 3.6rem;
  font-weight: 700;
  background-color: var(--pointCl02);
  margin: 0 auto;
  padding: .25rem .25rem .45rem;
  line-height: 1;
  letter-spacing: .08rem;
}
.section-heading span.cl04{
  background-color: var(--pointCl04);
  color:#fff;
}
.section-sub-heading{
  font-size: 2.4rem;
  font-weight: 700;
}
@media(max-width:767px){
  .section-heading{
    margin-bottom:2rem;
  }
  .section-heading span{
    font-size: 2rem;
    padding: .2rem .2rem .4rem;
  }
  .section-heading span.col2{
    display: inline;
    line-height: 2;
    padding: 0;
  }
}
/*===========================================================*/
/* # リード文エリア Page lead
/*===========================================================*/
.page-lead-section{
  background-color: var(--backgrCl01);
}
.page-lead-section .section-inner{
  width:118rem;
  margin: 0 auto;
  padding: 4.3rem 4rem 5.8rem;
}
.page-lead-section p{
  margin:0;
}
@media(max-width:767px){
  .page-lead-section .section-inner{
    width: 100%;
    padding: 3rem 3rem 4rem;
  }
}
/*===========================================================*/
/* # Page contact Btn 相談ボタン
/*===========================================================*/
.page-contact-section{
  text-align: center;
  margin:8rem auto 12rem;
}
.page-contact-msg{
  font-size: 2.4rem;
  font-weight: bold;
}
.contact-btn-block{
  display: flex;
}
.page-contact-btn{
  width:51.2rem;
  height: 12.4rem;
  border-radius: 6.2rem;
  overflow: hidden;
  margin:0 auto;
}
.page-contact-btn a{
  display: flex;
  align-items: center;
  justify-content: center;
  column-gap: 2rem;
  width:100%;
  height: 100%;
  font-size: 2.4rem;
  font-weight: bold;
  color:#fff;
  background: var(--pointCl01);
}
.page-contact-btn a .btn-icon{
  content: "";
  position: relative;
  width:3.5rem;
  height: 3.5rem;
  background: url("../images/common/icon_arrow_wg.svg") top left / contain no-repeat;
}
.page-contact-btn.col2 a{
  line-height: 1.2;
  text-align: center;
}
@media(max-width:767px) {
  .page-contact-section{
    margin:5rem auto 8rem;
  }
  .page-contact-msg{
    font-size: var(--textSzSp18);
  }
  .contact-btn-block{
    display: block;
  }
  .page-contact-btn{
    width:100%;
    height: 8rem;
  }
  .page-contact-btn a{
    column-gap: 1rem;
    font-size: 2rem;
  }
  .page-contact-btn a .btn-icon{
    width:2.7rem;
    height: 2.7rem;
  }
  .page-contact-btn.col2 + .page-contact-btn.col2{
    margin-top:2rem;
  }
}
/*===========================================================*/
/* # Page anchor アンカーリンク
/*===========================================================*/
.page-anchor-list{
  list-style-type: none;
  padding:0;
  margin:0;
  font-size:0;
  text-align: center;
}
.page-anchor-list li{
  display: inline-block;
  text-align: center;
  margin-bottom:1rem;
}
.page-anchor-list li a{
  display: block;
  height: 2em;
  line-height: 2em;
  padding: 0 1rem;
  font-size: clamp(12px, 1.6rem ,16px);
  color: var(--textCl);
}

.is-anchor{
  padding-top:9rem;
  margin-top:-9rem;
}

/* type-01 */
.page-anchor-list.type-01 li{
  background-color: #e9e9e9;
  border-radius: 3rem;
  line-height: calc(5rem - 0.6rem);
  margin:0 1rem 1rem;
}
.page-anchor-list.type-01 li a{
  width: 12em;
  height: 5rem;
  line-height: 5rem;
  color:var(--pointCl04);
  font-weight: 700;
  padding-right: 2rem;
  background: url("../images/common/icon_arrow_down02.svg") right 1.2rem center no-repeat;
  background-size: 2rem;
}

/* type-02 */
.page-anchor-list.type-02 li{
  margin:0 .5rem 1rem;
}
.page-anchor-list.type-02 li a{
  width:auto;
  height: 3em;
  line-height: 3em;
  padding:0 1em;
  text-align: center;
  background-color: var(--pointCl03);
  font-size: clamp(14px, 1.8rem ,18px);
  font-weight: 700;
  border-radius: 1rem;
  color:#fff;
}


@media(max-width:767px) {
  .company-anchor{
    margin-bottom: 3rem;
  }
  .is-anchor{
    padding-top:7rem;
    margin-top:-7rem;
  }
  .page-anchor-list.type-01 li{
    border-width: .3rem;
    width:49%;
    height: 5rem; 
    margin-left: 0;
    margin-right: 0;
    border-radius: 1rem;
  }
  .page-anchor-list.type-01 li:nth-child(odd){
    margin-right: 2%;
  }
  .page-anchor-list.type-01 li a{
    display: block;
    width: 100%;
    height: 100%;
    line-height: 5rem;
    font-size: clamp(12px, 1.4rem ,18px);
    padding-right: 3rem;
  }
  .page-anchor-list li a{
    font-size: clamp(12px, 1.4rem ,18px);
  }

  /* type-02 */
  .page-anchor-list.type-02{
    text-align: left;
    margin-right:-1rem;
  }
  .page-anchor-list.type-02 li{
    margin:0 1rem 1rem 0;
  }
  .page-anchor-list.type-02 li a{
    font-size: var(--textSzSp18);
  }
  
}

/*====================== =====================================*/
/* # Faq よくあるご質問
/*===========================================================*/
.accordion-faq{
  border:#333 solid .5rem;
  border-radius: 2rem;
  background: #f7f7f7;
  margin-top:5rem;
}
.accordion-faq .accordion-details:not(:first-child){
  border-top: #dcdcdc solid .5rem;
}
.accordion-faq .accordion-details-content {
  border-top:none;
}
.accordion-faq .accordion-details-summary{
  display: flex;
  align-items: center;
  padding:4rem 8rem 4rem 8rem;
}
.accordion-faq .accordion-details-summary .faq-q{
  display: block;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.6;
  white-space: pre-wrap;
  flex:1;
}
.accordion-faq .accordion-details-summary::before{
  content: "Q";
  font-family: "Zen Kaku Gothic New", sans-serif;
  color:var(--textCl);
  font-size: 3.6rem;
  font-weight: 900;
  line-height: 1;
  width:6.5rem;
  height: 6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pointCl02);
  border-radius: 1.8rem;
  margin-right: 5rem;
  padding-bottom: .5rem;
}
.accordion-faq .accordion-details-summary::after{
  content: "";
  display: block;
  width: 3.2rem;
  height: 1.9rem;
  background: url("../images/common/icon_arrow_down01.svg") top left / contain no-repeat;
  margin-left: 4rem;
  transition: .3s;
}
.accordion-faq  .accordion-details.open .accordion-details-summary::after{
  transform: rotate(180deg);
}
.accordion-faq .accordion-details-content .inner{
  display: flex;
  padding:0 20rem 4rem 8rem;
}
.accordion-faq .accordion-details-content .inner::before{
  content: "A";
  font-family: "Zen Kaku Gothic New", sans-serif;
  color:#fff;
  font-size: 3.6rem;
  font-weight:900;
  line-height: 1;
  width:6.5rem;
  height: 6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #323232;
  border-radius: 1.8rem;
  margin-right: 5rem;
  padding-bottom: .5rem;
}
.accordion-faq .accordion-details-content .inner .faq-a{
  flex:1;
  display: flex;
  align-items: center;
}
.accordion-faq + .section-heading{
  margin-top:6rem;
}
@media(max-width:767px) {
  .accordion-faq{
    border-width: .3rem;
    margin-top:3rem;
  }
  .accordion-faq .accordion-details:not(:first-child){
    border-width: .3rem;
  }
  .accordion-faq .accordion-details-summary{
    padding: 2rem 1.5rem 2rem 1.5rem;
    align-items: flex-start;
  }
  .accordion-faq .accordion-details-summary::before{
    font-size: 1.6rem;
    width: 3rem;
    height: 3rem;
    border-radius: 1rem;
    margin-right: 1rem;
  }
  .accordion-faq .accordion-details-summary::after{
    width: 1.4rem;
    height: 2rem;
    background-position: right bottom;
    margin-left: 1.5rem;
  }
  .accordion-faq .accordion-details-summary .faq-q{
    font-size: var(--textSzSp14);
    line-height: 1.4;
  }
  .accordion-faq .accordion-details-content .inner{
    padding: 2rem 1.5rem 2rem 1.5rem;
  }
  .accordion-faq .accordion-details-content .inner::before{
    font-size: 1.6rem;
    width: 3rem;
    height: 3rem;
    border-radius: 1rem;
    margin-right: 1rem;
  }
}

/*===========================================================*/
/* # 会社概要
/*===========================================================*/
.company-anchor-section{
  margin-bottom: 6rem;
}
.company-info-section,
.company-contact-section,
.company-access-section,
.company-history-section{
  padding-bottom: 8rem;
}
.company-info-table{
  border-spacing: 0;
  margin: 0 auto;
  border-collapse: collapse;
}
.company-info-table th,
.company-info-table td {
  border-bottom: #dcdcdc solid .3rem;
}
.company-info-table tr:last-child th,
.company-info-table tr:last-child td{
  border-bottom: none;
}
.company-info-table th{
  width:9em;
  white-space: nowrap;
  text-align: left;
  padding:4rem 4rem 4rem 8rem;
}
.company-info-table td{
  text-align: left;
  font-size: 1.8rem;
  padding:4rem 8rem 4rem 4rem;
}
.company-info-hdg{
  display: inline-block;
  font-size: 2rem;
  font-weight: 700;
  margin: 0 auto;
  padding: .1rem .1rem .3rem;
  line-height: 1;
}
a.pdf-link{
  position: relative;
  display: flex;
  align-items: center;
}
a.pdf-link::after{
  content: "";
  display: inline-block;
  width:3rem;
  height:3rem;
  background: url("../images/common/icon_pdf.svg") 0 0 / contain no-repeat;
  margin-left: .5rem;
}
.company .site-main{
  overflow-x: hidden; /*↓の幅調整によるスクロールバーを消すため*/
}
.company-contact-section{
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background-color: #f7f7f7;
  padding:6rem 0 10rem;
}
.company-contact-msg{
  text-align: center;
}
.company-contact-section .contact-btn-block{
  margin:6rem auto 0;
}
.company-contact-section .page-contact-btn{
  height: 10rem;
}
.company-contact-section .page-contact-btn a{
  font-size: 2rem;
}
.company-contact-section .page-contact-btn a .btn-icon{
  width: 2.8rem;
  height: 2.8rem;
}
.company-access-section{
  padding-top: 8rem;
}
.company-access-section .access-map-text{
  display: flex;
  margin-bottom: 5rem;
}
.company-access-section .access-map{
  width:47.881%;
  margin-right: 4.237%;
}
.company-access-section .access-text{
  width:47.5%;
}
.company-access-section .access-text p:first-child{
  margin-top:0;
}
.company-history-list{
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
}
.company-history-list .company-history-date,
.company-history-list .company-history-event{
  padding: 1.5rem 2rem;
  margin:0;
}

.company-history-list .company-history-date{
  width:27%; 
  padding:0 3rem 6rem 4rem;
  font-size: 2rem;
  font-weight: bold;
  position: relative;
  display: flex;
  flex-direction: column;
  z-index: 1;
}
.company-history-list .company-history-date span{
  width:13rem;
  display: block;
  text-align: center;
  background-color: var(--pointCl03);
  margin: 0 auto;
  line-height: 1;
  position: relative;
}
.company-history-list .company-history-date span.seireki{
  font-size: 2rem;
  font-weight: 700;
  padding: 2rem 0 1rem;
  white-space: nowrap;
}
.company-history-list .company-history-date span.wareki{
  font-size: 2rem;
  font-weight: 700;
  padding: 0 0 2rem;
  white-space: nowrap;
}
.company-history-list .company-history-date::after{
  content: "";
  position: absolute;
  bottom: -2.5rem;
  left: 15.5rem;
  width: .5rem;
  height: 100%;
  background-color: var(--pointCl03);
  z-index: -1;
}
.company-history-list .company-history-date.last::after{
  display: none;
}
.company-history-list .company-history-event{
  width:73%;
  padding:0 4rem 6rem 0;
  display: flex;
  flex-direction: column;
}
@media(max-width:767px) {
  .company-info-section, 
  .company-contact-section, 
  .company-access-section, 
  .company-history-section{
    padding-bottom: 5rem;
  }
  .company-anchor-section{
    margin-bottom: 3rem;
  }
  .company-info-table{
    border-width: .3rem;
    border-radius: 1rem;
  }
  .company-info-table th,
  .company-info-table td {
    display: inline-block;
    width:100%;
    border-width: .3rem;
  }
  .company-info-table th{
    padding:1.5rem 1.5rem 0 1.5rem;
    border-bottom: none;
    position: relative;
  }
  .company-info-table td{
    padding:1rem 1.5rem 1.5rem 1.5rem;
    font-size: 1.4rem;
  }
  .company-info-table tr:first-child th{
    border-radius: .7rem .7rem 0 0;
  }
  .company-info-table tr:last-child th{
  border-radius: 0 0 0 0;
  }
  .company-info-hdg{
    font-size: 1.6rem;
  }
  .company-contact-section{
    padding: 3rem 3rem 5rem;
  }
  .company-contact-msg{
    text-align: left;
  }
  .company-contact-section .contact-btn-block{
    margin:0 auto 0;
  }
  .company-contact-section .page-contact-btn{
    height: 8rem;
  }
  .company-contact-section .page-contact-btn + .page-contact-btn{
    margin-top:2rem;
  }
  .company-contact-section .page-contact-btn a{
    font-size: 2rem;
  }
  .company-contact-section .page-contact-btn a .btn-icon{
    width: 2.7rem;
    height: 2.7rem;
  }
  .company-access-section{
    padding-top: 4rem;
  }
  .company-access-section .access-map-text{
    display: block;
    margin-bottom:3rem;
  }
  .company-access-section .access-map{
    width:100%;
    margin-right: 0;
    margin-bottom:3rem;
  }
  .company-access-section .access-text{
    width:100%;
  }
  .company-history-list .company-history-date,
  .company-history-list .company-history-event{
  }
  .company-history-list .company-history-date{
    padding: 0;
    margin:0;
    align-items: flex-start;
  }
  .company-history-list .company-history-event{
    width:100%;
    padding: 2rem 0 3rem 3rem;
    position: relative;
  }
  .company-history-list .company-history-date::after{
    display: none;
  }
  .company-history-list .company-history-event::after{
    content: "";
    position: absolute;
    bottom: 0;
    left: 1rem;
    width: .3rem;
    height: 100%;
    background-color: var(--pointCl03);
  }
  .company-history-list .company-history-event:last-child{
    margin:0;
  }
  .company-history-list .company-history-date span{
    width:9rem;
  }
  .company-history-list .company-history-date span.seireki{
    font-size: var(--textSzSp20);
    padding:1rem 0 .5rem;
  }
  .company-history-list .company-history-date span.wareki{
    font-size: var(--textSzSp14);
    padding: 0 0 1rem;
  }
}

/*===========================================================*/
/* # 取引会社・協力会社
/*===========================================================*/
.partner-anchor-section{
  margin-bottom:6rem;
}
.partner01-section .page-anchor-list{
  margin-bottom: 6rem;
}
.partner01-list-block{
  display: flex;
  flex-wrap: wrap;
}
.partner01-list-heading{
  width: 12%;
}
.partner01-list-heading .text{
  display: inline-block;
  font-size: 3rem;
  font-weight: 700;
  width: auto;
  height: 2.2em;
  line-height: 2.2em;
  padding: 0 .6em;
  text-align: center;
  border-radius: 1.8rem;
  background-color: var(--pointCl03);
  color: #fff;
}
.partner01-list{
  width:88%;
  list-style-type: none;
  padding:0;
  margin:0;
  display: flex;
  flex-wrap: wrap;
  column-gap: 6%;
  margin-bottom:6rem;
}
.partner01-list li{
  width:47%;
  padding:2rem;
  line-height: 1.4;
  border-bottom: #dcdcdc solid .5rem;
  font-size: 1.8rem;
  font-weight: bold;
}

.partner02-list-wrap{
  background-color: var(--backgrCl01);
  border: var(--pointCl04) solid .5rem;
  border-radius: 2rem;
  padding:4rem 6rem;
  display: flex;
  flex-wrap: wrap;
}
.partner02-list{
  width: 50%;
  list-style-type: none;
  padding: 0;
  margin:0;
  font-size: 1.8rem;
  font-weight: 700;
}
.partner02-list li:not(:last-child){
  margin-bottom:2rem;
}
.partner02-name{
  display: inline-block;
  background-color: var(--pointCl03);
  font-size: 2rem;
  font-weight: 700;
  margin: 0 auto;
  padding: .1rem .1rem .3rem;
  line-height: 1;
}

@media(max-width:767px) {
  .partner-anchor-section{
    margin-bottom: 3rem;
  }
  .partner01-list-heading{
    width: 100%;
    margin-bottom: 2rem;
    text-align: left;
  }
  .partner01-list{
    width: 100%;
  }
  .partner01-list-heading .text{
    font-size: var(--textSzSp20);
    border-radius: 1rem;
    height: 3em;
    line-height: 3em;
    padding: 0 1em;
  }
  .partner01-list li{
    font-size: var(--textSzSp15);
    border-width: .3rem;
    padding : 1rem 0;
  }
  .partner02-list-wrap{
    display: block;
    border-width: .3rem;
    border-radius:1.5rem;
    padding:3rem 1.5rem 2rem;
  }
  .partner02-list{
    width: 100%;
    font-size:1.4rem;
    margin-bottom:1rem;
  }
  .partner02-name{
    font-size:1.6rem;
  }
  .partner02-list li:not(:last-child){
    margin-bottom:1rem;
  }
}
/*===========================================================*/
/* # 教材制作フロー
/*===========================================================*/
.service-desc-section{
  margin-top:8rem!important;
}
.service-desc-block{
  display: flex;
  border: var(--pointCl03) solid .5rem;
  margin-bottom: 4rem;
}
.service-desc-title{
  display: flex;
  align-items: center;
  justify-content: center;
  width:25.8474576%;
  background: var(--pointCl03);
}
.service-desc-heading{
  color:#fff;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1;
  margin:0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.service-desc-heading.publication::after{
  content: "";
  width: 9rem;
  height: 7rem;
  background: url("../images/service/icon_publication.svg") 0 0 / contain no-repeat;
  margin-top:1.8rem;
}
.service-desc-heading.degital::after{
  content: "";
  width: 9rem;
  height: 9rem;
  background: url("../images/service/icon_degital.svg") 0 0 / contain no-repeat;
  margin-top:1.8rem;
}
.service-desc-heading.voice::after{
  content: "";
  width: 5.2rem;
  height: 8rem;
  background: url("../images/service/icon_voice.svg") 0 0 / contain no-repeat;
  margin-top:1.8rem;
}
.service-desc-heading.movie::after{
  content: "";
  width: 8.4rem;
  height: 8.4rem;
  background: url("../images/service/icon_movie.png") 0 .5rem / contain no-repeat;
}
.service-desc-desc{
  width: 74.1525423%;
  display: flex;
  justify-content: space-between;
  padding: 4.5rem 5rem;
}
.service-desc-block01{
  width:41.2597402%;
}
.service-desc-block02{
  width:55.8441558%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.service-desc-list{
  margin: 0;
  padding: 0 0 0 3rem;
  font-size: 2rem;
  font-weight: 700;
}
.service-desc-list li{
  margin: .2rem 0 .2rem 0;
}
.service-desc-msg{
  margin:0;
}
.service-desc-btn{
  width:42.5rem;
  height: 7rem;
  border-radius: 3.5rem;
  overflow: hidden;
  margin:0 auto -1.5rem;
}
.service-desc-btn a{
  display: flex;
  align-items: center;
  justify-content: center;
  column-gap: 2rem;
  width:100%;
  height: 100%;
  font-size: 2rem;
  font-weight: bold;
  color:#fff;
  background: var(--pointCl03);
}
.service-desc-btn a .btn-icon{
  content: "";
  position: relative;
  width:2.7rem;
  height: 2.7rem;
  background: url("../images/common/icon_arrow_wp.svg") top left / contain no-repeat;
}
.service-faq-section{
  margin-bottom:6rem;
}
@media(max-width:767px) {
  .service-desc-section{
    margin-top:4rem!important;
  }
  .service-desc-block{
    display: block;
    border-width: .3rem;
  }
  .service-desc-title{
    width:100%;
    padding:2.3rem 0 2.3rem;
  }
  .service-desc-heading{
    font-size: 1.8rem;
  }
  .service-desc-heading.publication::after{
    width: 4.4rem;
    height: 3.4rem;
    margin-top:1rem;
  }
  .service-desc-heading.degital::after{
    width: 4.2rem;
    height: 4.2rem;
    margin-top:1rem;
  }
  .service-desc-heading.voice::after{
    width: 2.6rem;
    height: 4.2rem;
    margin-top:1rem;
  }
  .service-desc-heading.movie::after{
    width: 4.4rem;
    height: 4.4rem;
    margin-top:1rem;
  }
  .service-desc-desc{
    width:100%;
    display: block;
    padding:2rem;
  }
  .service-desc-block01{
     width:100%;
  }
  .service-desc-block02{
     width:100%;
  }
  .service-desc-list{
    padding:0 0 0 2rem;
    font-size: var(--textSzSp15);
    margin-bottom:1rem;
  }
  .service-desc-btn{
    width:100%;
    height: 6.2rem;
    margin:1.5rem 0 1.5rem;
  }
  .service-desc-btn a{
    font-size: 1.4rem;
    column-gap: 1rem;
  }
  .service-desc-btn a .btn-icon{
    width:2rem;
    height: 2rem;
  }
}

/*===========================================================*/
/* # 教材制作フロー 下層
/*===========================================================*/
.service-reason-block{
  display: flex;
  column-gap: 4.1525%;
  margin-top:6rem;
}
.service-reason{
  width:30.5084%;
  border: #4e4e4e solid .5rem;
}
.service-reason-title{
  background-color: var(--pointCl02);
  margin:0;
  font-size: 2.2rem;
  font-weight: bold;
  text-align: center;
  padding:1.5rem;
}
.service-reason-desc{
  padding:2.5rem 2.5rem 2rem 2.5rem;
}
.service-flow-lead{
  font-size: 2rem;
  text-align: center;
  margin-bottom:3.8rem;
}
.service-flow-step{
  border-radius: 2rem;
  border: var(--pointCl03) solid .5rem;
  background-color: var(--backgrCl01);
  margin-bottom:6rem;
  padding:4rem 8rem 5rem 8rem;
  position: relative;
  display: flex;
  align-items: center;
}
.service-flow-step:not(:last-child)::after{
  content: "";
  width:3.5rem;
  height: 3.5rem;
  background-color: var(--backgrCl01);
  border: var(--pointCl03) solid .5rem;
  border-top:none;
  border-left: none;
  transform: rotate(45deg);
  position: absolute;
  bottom: -2.1rem;
  left: calc(50% - 2rem);
}
.service-flow-step .flow-step-number{
  width:8.6rem;
  height: 10rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  row-gap: .4rem;
  line-height: 1;
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  font-size: 4.8rem;
  background-color: var(--pointCl03);
  position: relative;
}
.service-flow-step .flow-step-number.last-step {
  font-size: 3.6rem;
}
.service-flow-step .flow-step-number span{
  font-family: "Noto Sans JP", "游ゴシック", YuGothic, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", Meiryo, メイリオ, sans-serif;
  font-size: 1.8rem;
  font-weight: bold;
}
.service-flow-step .flow-step-icon {
  width:16.4rem;
  height: 15rem;
}
.service-flow-step .flow-step-icon.icon00{
  background: url("../images/service/icon_step00.svg") right 0 top 50% / 9.9rem no-repeat;
}
.service-flow-step .flow-step-icon.icon01{
  background: url("../images/service/icon_step01.svg") right .3rem top 50% / 8.8rem no-repeat;
}
.service-flow-step .flow-step-icon.icon02{
  background: url("../images/service/icon_step02.svg") right 1.6rem top 50% / 6.4rem no-repeat;
}
.service-flow-step .flow-step-icon.icon03{
  background: url("../images/service/icon_step03.svg") right 1rem top 50% / 7.7rem no-repeat;
}
.service-flow-step .flow-step-icon.icon04{
  background: url("../images/service/icon_step04.svg") right 1.5rem top 50% / 6.6rem no-repeat;
}
.service-flow-step .flow-step-icon.icon05{
  background: url("../images/service/icon_step05.svg") right .7rem top 50% / 7.9rem no-repeat;
}
.service-flow-step .flow-step-icon.icon06{
  background: url("../images/service/icon_step06.svg") right .5rem top 50% / 9.0rem no-repeat;
}
.service-flow-step .flow-step-icon.icon07{
  background: url("../images/service/icon_step07.svg") right 1.3rem top 50% / 7.9rem no-repeat;
}
.service-flow-step .flow-step-icon.icon08{
  background: url("../images/service/icon_step08.svg") right 1.7rem top 50% / 6.6rem no-repeat;
}
.service-flow-step .flow-step-icon.icon09{
  background: url("../images/service/icon_step09.svg") right .6rem top 50% / 8.9rem no-repeat;
}
.service-flow-step .flow-step-icon.icon10{
  background: url("../images/service/icon_step10.svg") right .6rem top 50% / 9.4rem no-repeat;
}
.service-flow-step .flow-step-icon.icon11{
  background: url("../images/service/icon_step11.svg") right .6rem top 50% / 9.9rem no-repeat;
}
.service-flow-step .flow-step-icon.icon12{
  background: url("../images/service/icon_step12.svg") right .6rem top 50% / 8.9rem no-repeat;
}
.service-flow-step .flow-step-icon.icon13{
  background: url("../images/service/icon_step13.svg") right .6rem top 50% / 9.8rem no-repeat;
}
.service-flow-step .flow-step-icon.icon14{
  background: url("../images/service/icon_step14.svg") right 1rem top 50% / 9.6rem no-repeat;
}
.service-flow-step .flow-step-icon.icon15{
  background: url("../images/service/icon_step15.svg") right .6rem top 50% / 8.9rem no-repeat;
}
.service-flow-step .flow-step-icon.icon16{
  background: url("../images/service/icon_step16.svg") right .6rem top 50% / 9.9rem no-repeat;
}
.service-flow-step .flow-step-icon.icon17{
  background: url("../images/service/icon_step17.svg") right .6rem top 50% / 10rem no-repeat;
}
.service-flow-step .flow-step-icon.icon18{
  background: url("../images/service/icon_step18.svg") right .3rem top 50% / 11rem no-repeat;
}
.service-flow-step .flow-step-content{
  flex: 1;
  background-position: left 5rem top 50%;
  background-repeat: no-repeat;
  padding-left: 4rem;
}
.service-flow-step .flow-step-content p{
  margin-bottom: 1rem;
}
.service-flow-step .flow-step-content p.flow-step-subtitle{
  margin-top:0;
  font-weight: bold;
}
.service-flow-step .flow-step-title{
  font-size: 2.6rem;
  margin:0 0 1.5rem 0;
}
.service-flow-step .flow-step-list-col2{
  width:64rem;
  max-width: 100%;
  margin:0;
  padding:0 0 0 2rem;
  list-style: disc;
  display: flex;
  flex-wrap: wrap;
}
.service-flow-step .flow-step-list-col2 li{
  width: 50%;
  margin-bottom: .2rem;
}

@media(max-width:767px) {
  .service-reason-block{
    display: block;
    margin-top:3rem;
  }
  .service-reason{
    width:100%;
    border-width: .3rem;
  }
  .service-reason:not(:last-child){
    margin-bottom:2rem;
  }
  .service-reason-title{
    font-size: 1.8rem;
  }
  .service-reason-desc{
    padding:1rem 2.5rem .5rem 2.5rem;
  }
  .service-flow-lead{
    font-size: 1.6rem;
    margin-bottom:2rem;
  }
  .service-flow-step{
    flex-wrap: wrap;
    padding:2.2rem 2.2rem 2.2rem 2.2rem;
    border-width: .3rem;
    margin-bottom: 2.5rem;
  }
  .service-flow-step:not(:last-child)::after{
    width: 2.9rem;
    height: 2.9rem;
    border-width: .3rem;
    bottom: -1.6rem;
  }
  .service-flow-step .flow-step-number{
    width:4.3rem;
    height: 4.3rem;
    font-size: 1.8rem;
  }
  .service-flow-step .flow-step-number span{
    font-size: .9rem;
  }
  .service-flow-step .flow-step-icon{
    width:4.3rem;
    height: 4.3rem;
    margin-left: 1rem;
  }
  .service-flow-step .flow-step-title{
    font-size: 2.4rem;
    line-height: 1.4;
    margin-top:1.5rem;
  }
  .service-flow-step .flow-step-content{
    padding-left:0;
    width:100%;
    flex: none;
  }
  .service-flow-step .flow-step-icon.icon00,
  .service-flow-step .flow-step-icon.icon01,
  .service-flow-step .flow-step-icon.icon02,
  .service-flow-step .flow-step-icon.icon03,
  .service-flow-step .flow-step-icon.icon04,
  .service-flow-step .flow-step-icon.icon05,
  .service-flow-step .flow-step-icon.icon06,
  .service-flow-step .flow-step-icon.icon07,
  .service-flow-step .flow-step-icon.icon08,
  .service-flow-step .flow-step-icon.icon09,
  .service-flow-step .flow-step-icon.icon10,
  .service-flow-step .flow-step-icon.icon11,
  .service-flow-step .flow-step-icon.icon12,
  .service-flow-step .flow-step-icon.icon13,
  .service-flow-step .flow-step-icon.icon14,
  .service-flow-step .flow-step-icon.icon15,
  .service-flow-step .flow-step-icon.icon16,
  .service-flow-step .flow-step-icon.icon17,
  .service-flow-step .flow-step-icon.icon18{
    background-position: right 0 top 50%;
    background-size: contain;
  }
  .service-flow-step .flow-step-list-col2 li{
    width: 100%;
  }
}

/*===========================================================*/
/* # 制作実績
/*===========================================================*/
.achievements-lead-note{
  text-indent: -1em;
  padding-left: 1em;
}
.achievements-section .type-block-item{
  display: flex;
  column-gap: 3rem;
  align-items: flex-start;
}
.accordion.accordion-achievements{
  border:none;
}
.accordion-achievements .accordion-details{
  border: var(--pointCl02) solid .5rem;
  border-radius: 2rem;
  margin-bottom: 4rem;
}
.accordion-achievements .accordion-details-summary{
  display: flex;
  align-items: center;
  padding: 2.4rem 6rem 2.4rem 6rem;
  background-color: #ededed;
  border-radius: 1.5rem;
}
.accordion-achievements .open .accordion-details-summary{
  border-radius: 1.5rem 1.5rem 0 0;
}
.accordion-achievements .accordion-details-summary::after{
  content: "";
  display: block;
  width: 3rem;
  height: 1.9rem;
  background: url(../images/common/icon_arrow_down01.svg) top left / contain no-repeat;
  margin-left: 4rem;
  transition: .3s;
  position: absolute;
  right:4rem;
  top: calc(50% - 0.9rem);
}
.accordion-achievements .open .accordion-details-summary::after{
  transform: rotate(180deg);
}
.achievements-section .accordion-details-content{
  border:none;
}
.achievements-section .accordion-details-content .inner{
  padding:1rem 6rem 0 6rem;
}
.achievements-section .target-age{
  margin:0;
  font-size: 3rem;
  font-weight: bold;
  white-space: nowrap;
  min-width: 4em;
}
.achievements-section .subject-list{
  margin-left: 4rem;
}
.achievements-section .subject-list .subject{
  font-size: 1.8rem;
  font-weight: bold;
  margin-left: .5rem;
  background: var(--pointCl02);
  border-radius: .5rem;
  padding: 0.4rem 1.4rem;
  color:var(--textCl);
}
.achievements-section .type-block-table{
  vertical-align: top;
}
.achievements-section .type-block-table tr.type-top-row:not(:first-child) th,
.achievements-section .type-block-table tr.type-top-row:not(:first-child) td{
  border-top: var(--pointCl02) dashed 2px;
  padding-top:4rem;
}
.achievements-section .type-block-table tr:has(+ tr.type-top-row) th,
.achievements-section .type-block-table tr:has(+ tr.type-top-row) td{
  padding-bottom:4rem;
}
.achievements-section .type-block-table .type-title-col{
  white-space: nowrap;
  width:16%;
  vertical-align: top;
  padding-top:2rem;
}
.achievements-section .type-block-table .category-title-col{
  white-space: nowrap;
  vertical-align: top;
  padding-top: 2rem;
}
.achievements-section .type-block-table .material-name-col{
  width:75%;
  padding: 2.3rem 0 1.5rem 3rem;
}
.achievements-section .type-title{
  width:14rem;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.4;
  margin:0;
  text-align: left;
}
.achievements-section .category-title{
  background-color: var(--pointCl03);
  border-radius: .5rem;
  text-align: center;
}
.achievements-section .category-title .text-bg{
  display: inline-block;
  font-size: 2rem;
  line-height: 1.4;
  color:#fff;
  padding: 1rem 1.8rem;
}
.achievements-section .material-item{
  position: relative;
  font-size: 2rem;
}
.achievements-section .material-item:not(:last-child)::after{
  content: "／";
}
@media(max-width:767px) {
  .accordion-achievements .accordion-details{
    margin-bottom:1rem;
    border-radius: 1rem;
    border-width: .3rem;
  }
  .accordion-achievements .accordion-details-summary{
    display: block;
    padding: 1rem 2rem 1rem 2rem;
    border-radius: .7rem;
  }
  .accordion-achievements .accordion-details-summary::after{
    width: 1.4rem;
    height: .9rem;
    background-position: right bottom;
    margin-left: 1.5rem;
    right: 1.5rem;
    top:2.2rem;
  }
  .accordion-achievements .open .accordion-details-summary{
    border-radius: .7rem .7rem 0 0;
  }
  .achievements-section .accordion-details-content .inner{
    padding:1rem 2rem 0 2rem;
  }
  .achievements-section .type-block-table th,
  .achievements-section .type-block-table td {
    display: inline-block;
    width:100%;
  }
  .achievements-section .type-block-table tr.type-top-row:not(:first-child) td{
    border-top: none;
  }
  .achievements-section .type-block-table .type-title-col{
    width:100%;
    text-align: left;
    padding-top:1rem;
  }
  .achievements-section .type-block-table tr:not(.type-top-row) td.type-title-col{
    display: none;
  }
  .achievements-section .type-block-table .material-name-col{
    width:100%;
    padding:0;
    margin:.5rem 0 1rem;
  }
  .achievements-section .type-block-item{
    display: block;
  }
  .achievements-section .target-age{
    font-size: 1.8rem;
  }
  .achievements-section .type-title{
    width:100%;
    margin-bottom:1rem;
    font-size: 1.6rem;
  }
  .achievements-section .subject-list{
    margin-left: 0;
    margin-top:1.5rem;
    font-size: 0;
  }
  .achievements-section .subject-list .subject{
    font-size: 1.3rem;
    margin: 0 .2rem 0 0;
    line-height: 2.3;
    white-space: nowrap;
    padding: .3rem 1.2rem;
  }
  .achievements-section .category-block-item{
    display: block;
  }
  .achievements-section .category-title{
    width:100%;
    text-align: left;
  }
  .achievements-section .category-title{
    display: inline-block;
    width:auto;
  }
  .achievements-section .category-title .text-bg{
    font-size: 1.2rem;
    padding: .3rem 1rem;
  }
  .achievements-section .material-list{
    width:100%;
    margin-bottom:2rem;
  }
  .achievements-section .material-item{
    width:100%;
    font-size: var(--textSzSp14);
  }
  .achievements-section .type-block-table .category-title-col{
    padding-top:0;
  }
  .achievements-section .type-block-table tr:has(+ tr.type-top-row) td.category-title-col{
    padding-bottom:0;
  }
  .achievements-section .type-block-table tr:has(+ tr.type-top-row) td.material-name-col{
    padding-bottom:1rem;
  }
  .achievements-section .type-block-table tr.type-top-row:not(:first-child) th.type-title-col{
    padding-top:2rem;
  }
  .achievements-section .type-block-table tr.type-top-row:not(:first-child) td.category-title-col,
  .achievements-section .type-block-table tr.type-top-row:not(:first-child) td.material-name-col{
    padding-top:0;
  }

}
/*===========================================================*/
/* # 採用情報
/*===========================================================*/
.recruit-job-title{
  color: var(--textCl);
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.4;
  padding: 2rem 4rem;
  text-align: center;
  margin: 6rem auto 0;
  margin-bottom: 1rem;
}
.recruit-job-title:first-child{
  margin-top:0;
}
.recruit-job-title.regular{
  background-color: var(--pointCl03);
}
.recruit-job-title.contract{
  background-color: var(--pointCl02);
}
.recruit-job-table{
  border-collapse: collapse;
}
.recruit-job-table th,
.recruit-job-table td{
  border-bottom:#dcdcdc solid .3rem;
  padding: 2rem 2rem;
  vertical-align: top;
}
.recruit-job-table th{
  width:13em;
  white-space: nowrap;
  font-size: 2rem;
  font-weight: bold;
  text-align: left;
  vertical-align: middle;
  padding-left: 5rem;
}

.recruit-job-table td p.p1{
  margin-top:0;
}
.recruit-job-table td p:last-child{
  margin-bottom:0;
}
.recruit-apply-area{
  margin: 4rem auto 8rem;
}
.recruit-apply-btn a{
  letter-spacing: 1rem;
}
.recruit-apply-btn a .btn-text{
  padding-left: 3rem;
}
.recruit-msg{
  padding:6rem 0;
}
@media(max-width:767px) {
  .recruit-job-title{
    margin: 3rem auto 0;
    font-size: 1.8rem;
    padding:1.5rem 2rem;
  }
  .recruit-job-table{
  }
  .recruit-job-table th,
  .recruit-job-table td{
    display: inline-block;
    width:100%;
    border-width: .3rem;
  }
  .recruit-job-table th{
    padding:1rem 2rem .5rem;
    text-align: left;
    font-size: 1.6rem;
    border-bottom:none;
    border-top:none;
  }
  .recruit-job-table td{
    padding:.8rem 2rem 2rem;
    border-bottom:#D3D3D3 solid .3rem;
  }
  .recruit-apply-area{
    margin: 2rem auto 5rem;
  }
}

/*===========================================================*/
/* # 在宅スタッフ
/*===========================================================*/
.stuff-news-section{
  margin-top:2rem!important;
}
.stuff-news-heading{
  font-size: 3.6rem;
  font-weight: bold;
  line-height: 1;
  background-color: var(--pointCl02);
  border:#4e4e4e solid .5rem;
  border-bottom:none;
  text-align: center;
  margin:0;
  padding:1.8rem 0;
}
.stuff-news-block{
  border:#4e4e4e solid .5rem;
  border-top:none;
  padding:1.5rem 7.5rem;
}
.stuff-news-list{
  display: flex;
  margin: 2rem 0;
}
.stuff-news-list dt{
  line-height: 1.6;
}
.stuff-news-list dd{
  margin:0 0 0 4.5rem;
  line-height: 1.6;
}
.stuff-news-none{
  text-align: center;
  margin:2rem;
}
.stuff-flow-section{
  margin-top:12rem;
}
.stuff-flow-lead{
  font-size: 2rem;
  text-align: center;
  margin-bottom:3.8rem;
}
.stuff-flow-step{
  border-radius: 2rem;
  border: var(--pointCl03) solid .5rem;
  background-color: var(--backgrCl01);
  margin-bottom:5rem;
  padding:3rem 7.5rem 4rem 7.5rem;
  position: relative;
}
.stuff-flow-step:not(:last-child)::after{
  content: "";
  width:3.5rem;
  height: 3.5rem;
  background-color: var(--backgrCl01);
  border: var(--pointCl03) solid .5rem;
  border-top:none;
  border-left: none;
  transform: rotate(45deg);
  position: absolute;
  bottom: -2.1rem;
  left: 8rem;
}

.stuff-flow-step .flow-step-header{
  display: flex;
  align-items: center;
}
.stuff-flow-step .flow-step-number{
  width:7.8rem;
  height: 8.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  font-size: 4.8rem;
  background-color: var(--pointCl03);
}
.stuff-flow-step .flow-step-title{
  font-size: 2.6rem;
  padding: 2rem 0 2rem 13.5rem;
  margin:0;
  background-position: left 5rem top 50%;
  background-repeat: no-repeat;
}
.stuff-flow-step .flow-step-title.step01{
  background-image: url("../images/recruit_stuff/icon_step01.svg");
  background-size: 6.6rem;
}
.stuff-flow-step .flow-step-title.step02{
  background-image: url("../images/recruit_stuff/icon_step02.svg");
  background-size: 6.6rem;
}
.stuff-flow-step .flow-step-title.step03{
  background-image: url("../images/recruit_stuff/icon_step03.svg");
  background-size: 5.9rem;
}
.stuff-flow-step .flow-step-desc-type01{
  display: flex;
  column-gap: 2.5423%;
  margin-top:3rem;
}
.stuff-flow-step .flow-step-desc-type01 .step-desc-col{
  width:48.7288%;
  border:#323232 solid 1px;
  border-radius: 2rem;
  background-color: #fff;
  padding: 4rem 3.5rem 3.5rem 4rem;
}
.stuff-flow-step .flow-step-desc-type01 .step-desc-col .step-desc-title{
  margin:0 0 2rem 0;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.4;
}
.stuff-flow-step .flow-step-desc-type01 .step-desc-col .step-desc-desc{
  margin:2rem 0 0 0;
}
.stuff-flow-step .flow-step-desc-type02{
  padding-left: 14rem;
}
.flow-step-desc-type02 p{
  margin:0;
}
.stuff-apply-section{
  margin-top:7rem;
}
.stuff-apply-msg{
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
}
.stuff-apply-section .page-contact-btn.col2 .btn-text{
  padding:0 1rem 0 2rem;
}
.stuff-faq-section{
  margin-top:12rem;
}
.stuff-faq-section .section-heading{
  margin-bottom: 6rem;
}
@media(max-width:767px) {
  .stuff-news-section{
    margin-top:1rem!important;
  }
  .stuff-news-heading{
    font-size: 1.8rem;
    border-width:.3rem;
    padding:1.8rem 0;
  }
  .stuff-news-block{
    border-width:.3rem;
    padding:1.5rem 2rem;
  }
  .stuff-news-list{
    display: block;
  }
  .stuff-news-list dd{
    margin:0;
  }
  .stuff-news-list:first-child{
    margin-top:0;
  }
  .stuff-news-list:last-child{
    margin-bottom: 0;
  }
  .stuff-flow-section{
    margin-top:5rem;
  }
  .stuff-flow-lead{
    font-size: 1.6rem;
    margin-bottom:2rem;
  }
  .stuff-flow-step{
    border-radius: 1rem;
    border-width: .3rem;
    margin-bottom:2.4rem;
    padding:1.5rem 1.5rem 1.5rem 1.5rem;
  }
  .stuff-flow-step .flow-step-desc-type01{
    display: block;
    margin-top:1.5rem;
  }
  .stuff-flow-step .flow-step-desc-type01 .step-desc-col{
    width: 100%;
  }
  .stuff-flow-step .flow-step-number{
    width:3.7rem;
    height: 4rem;
    font-size: 2.4rem;
  }
  .stuff-flow-step .flow-step-title{
    font-size: 1.8rem;
    padding: 1.5rem 0 1.5rem 4.5rem;
    background-position: left .8rem top 50%;
  }
  .stuff-flow-step .flow-step-title.step01{
    background-size: 3.3rem;
  }
  .stuff-flow-step .flow-step-title.step02{
    background-size: 3.3rem;
  }
  .stuff-flow-step .flow-step-title.step03{
    background-size: 3rem;
  }
  .stuff-flow-step:not(:last-child)::after{
    width:2.2rem;
    height: 2.2rem;
   border-width: .3rem;
    bottom: -1.3rem;
    left: calc(50% - 1.5rem);
  }
  .stuff-flow-step .flow-step-desc-type02{
    padding: 1rem 0 1.5rem 0;
  }
  .stuff-flow-step .flow-step-desc-type01 .step-desc-col{
    border-radius: 1rem;
    padding:1.5rem;
  }
  .stuff-flow-step .flow-step-desc-type01 .step-desc-col + .step-desc-col{
    margin-top:2rem;
  }
  .stuff-flow-step .flow-step-desc-type01 .step-desc-col .step-desc-title{
    font-size: 1.5rem;
  }
  .stuff-apply-section{
    margin-top:3rem;
  }
  .stuff-apply-msg{
    font-size: 1.8rem;
  }
  .stuff-faq-section{
    margin-top: 6rem;
  }
  .stuff-faq-section .section-heading{
    margin-bottom: 3rem;
  }
}
/*===========================================================*/
/* # フォーム
/*===========================================================*/
p.contact-lead-page{
  font-weight: bold;
  text-align: center;
  margin-top:0;
  margin-bottom:3rem;
}
.contact-lead-form{
  font-weight: bold;
  text-align: center;
  margin-bottom: 6rem;
}
.contact-links-area{
  display: flex;
  justify-content: center;
  column-gap: 2rem;
  margin-bottom:4rem;
}
.contact-link-btn{
  width:42rem;
  height: 7rem;
  border-radius: 3.5rem;
  overflow: hidden;
}
.contact-link-btn a{
  display: flex;
  align-items: center;
  justify-content: center;
  column-gap: 2rem;
  width:100%;
  height: 100%;
  font-weight: bold;
  color: #fff;
  background: var(--pointCl01);
}
.contact-link-btn a .btn-icon{
  content: "";
  position: relative;
  width:2.5rem;
  height: 2.5rem;
  background: url("../images/common/icon_arrow_wg.svg") top left / contain no-repeat;
}
.form-wrap{
  padding:4rem 8rem;
  background-color: var(--backgrCl01);
  border-radius: 2rem;
  border: #323232 solid .5rem;
}
.contact-table{
  border-spacing:0;
}
.required{
  padding-left: .5rem;
  font-size: 1.6rem;
  color:#D1282B;
}
.wpcf7 .wpcf7-not-valid-tip{
  font-size: .8em;
  font-weight: 700;
}
.wpcf7 form.invalid .wpcf7-response-output, 
.wpcf7 form.unaccepted .wpcf7-response-output, 
.wpcf7 form.payment-required .wpcf7-response-output{
  border-color:#EA2626;
  background-color:#EA2626;
  color: #fff;
}
.wpcf7 form.sent .wpcf7-response-output{
  position: relative;
  background-color: #ff60a4;
  padding:2rem;
  color: #fff;
  margin-top: -15rem;
  border-color: #ff60a4;
  z-index: 99999;
  text-align: center;
}
.contact-table th,
.contact-table td{
  padding: 3rem 0 3rem;
  border-bottom:#dfdfdf solid 1px;
}
.contact-table th{
  width:15.6em;
  text-align: left;
  vertical-align: top;
  padding-right: 2em;
  line-height: 1.6;
}
.contact-table .note{
  font-size: .8em;
  font-weight: 400;
  color:#777;
}
.contact-table td.birthday p{
  display: flex;
  flex-wrap: wrap;
}
.contact-table td.birthday p span{
  margin-right: .6rem;
}
.contact-table th p,
.contact-table td p{
  margin: 0 0 .5rem 0;
}
.contact-table .file-clear-btn{
  cursor: pointer;
}
.contact-input-file .wpcf7-form-control-wrap {
  position: relative;
  width:calc(100% - 4.2em);
  margin: 0;
}
.contact-input-file .wpcf7-form-control-wrap .wpcf7-form-control{
  opacity: 0;
  width:100%;
  height: 100%;
}
.contact-input-file .wpcf7-form-control-wrap .wpcf7-not-valid-tip{
  padding-top:1.5rem;
}
.contact-input-file p{
  position: relative;
  z-index: 2;
  padding:0;
  display: flex;
  align-itrems: flex-start;
}
.contact-input-file .file-label{
  position: absolute;
  top: 0;
  left: 0;
  width:calc(100% - 4.2em);
  z-index: 1;
  height: calc(2em + 0.75em + 2px);
  padding: 0.375em 0.75em;
  line-height: 2;
  color: #333;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-radius: 0.25rem 0 0 0.25rem;
  cursor: pointer;
  overflow: hidden;
}
.contact-input-file .file-label::after{
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: calc(2em + 0.75em);
  width: 4.2em;
  padding: 0.375em 0.75em;
  line-height: 2em;
  color: #001c27;
  text-align: center;
  content: "参照";
  background-color: #e9ecef;
  border-left: inherit;
}
.contact-input-file .file-clear-btn{
  width: 4.2em;
  height: calc(2em + 0.75em + 2px);
  border-radius: 0 0.25rem 0.25rem 0;
  border-left:none;
}
.contact-table input::placeholder,
.contact-table textarea::placeholder{
  opacity: 0.5;
  color: #AAAAAA;
}
.contact-table input[type="text"],
.contact-table input[type="email"],
.contact-table input[type="tel"],
.contact-table textarea{
  max-width:100%;
}
.contact-table input[type="text"]:disabled{
  border-color:rgba(118,118,118,0.1);
}
.contact-table input.text-zip{
  width:8em;
}
.contact-table textarea.textarea-h-m{
  height: 5em;
}
.wpcf7 .confirm-check{
  text-align: center;
  display: block;
  width: 40rem;
  padding:.5rem 2rem;
  white-space: nowrap;
  background-color: #DFDFDF;
  margin: 0 auto 4rem;
}
.wpcf7 .submit-btn{
  text-align: center;
  padding-left: 72px;/*wpcf7-spinnerの分ずらす*/
}
.wpcf7 input[type="submit"]{
  width:30rem;
  height: 7rem;
  border-radius: 3.5rem;
  background: var(--pointCl01);
  color:#fff;
  font-size: 2rem;
  font-weight: bold;
  border:none;
  cursor: pointer;
}
.wpcf7 input[type="submit"]:disabled{
  opacity: .5;
  cursor:auto;
}
.wpcf7-radio.contact-gender .wpcf7-list-item.last{
  display: none;
}
body, button, input, select, optgroup, textarea{
    font-size: clamp(12px, 1.6rem ,16px);
}

@media(max-width:767px) {
  .contact-links-area{
    display: block;
  }
  .contact-link-btn{
    width:100%;
    margin-bottom:2rem;
  }
  .contact-link-btn a{
    font-size: 1.6rem;
  }
  .form-wrap{
    padding:2rem 2rem;
    margin-left: -2rem;
    margin-right: -2rem;
    border-width: .3rem;
  }
  .wpcf7 form.sent .wpcf7-response-output{
    padding:1rem;
    margin-top:-13rem;
  }
  .contact-table td.birthday p span input[name="your_birthday_y"]{
    width:5em;
  }
  .contact-table td.birthday p span input[name="your_birthday_m"],
  .contact-table td.birthday p span input[name="your_birthday_d"]{
    width:3em;
  }
  .contact-table th,
  .contact-table td{
    display: block;
    width:100%;
  }
  .contact-table th{
    border-bottom:none;
    padding-bottom: 0;
  }
  .contact-table tr:first-child th{
    padding-top: 1rem;
  }
  .contact-table td{
    padding-top: 1rem;
  }
  body, button, input, select, optgroup, textarea{
    font-size: clamp(14px, 1.4rem ,16px);
  }
  .contact-table input[type="text"],
  .contact-table input[type="email"],
  .contact-table input[type="tel"],
  .contact-table textarea{
    width:100%;
  }
  .wpcf7 .confirm-check{
    width:100%;
  }
  .wpcf7 input[type="submit"]{
    width:90%;
    height: 6rem;
  }
  .wpcf7 .submit-btn{
    padding-left: 0;/*wpcf7-spinnerは下に出る*/
  }
}