@charset "utf-8";
*[lang="en"]{font-family:var(--font-en);letter-spacing:2px;}
time{color:var(--font-gray);font-family:var(--font-ro);  text-box: trim-both cap alphabetic;}
b,em,strong{font-weight: bold;}
sup {vertical-align: super;font-size: 70%;}
sub {vertical-align: sub;font-size: 70%;}
.txt_center{text-align: center !important;}
.txt_left{text-align: left!important;}
.txt_right{text-align: right!important;}


.color_main{color: var(--main-color) !important;}
.color_red{color: var(--font-red) !important;}
.color_gray{color: var(--font-gray) !important;}
.color_black{color: var(--font-black) !important;}
.color_white{color: #fff !important;}
.bg_main{ background-color: var(--main-color) !important;}
.bg_green{ background-color: var(--bg-green) !important;}
.bg-gray{ background-color: var(--bg-gray) !important;}

.blocks-gallery-item img,
.wp-block-image img,
.round{
  border-radius: var(--radius);
  overflow: hidden;
}
.blocks-gallery-item.noroun img,
.wp-block-media-text__media.noround img,
.wp-block-image.noround img{
  border-radius: 0;
}
.thumb{
  position: relative;
  padding-top: 56.25%;
  overflow: hidden;
}
.thumb > *{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ico_blank{
  width:12px !important;
  margin-left:8px ;
  vertical-align: middle;
}
@media (min-width :835px){
  .txt_center_pc{text-align: center !important;}
}
@media screen and (max-width :834px) {
  :root {
    --lh-sub: 1.368;
  }  
}
/* 画面非表示 */
.display_none {
  display: none;
}
/* cmn_cate
=============================================== */
.cmn_cate>span{
  position: relative;
  padding-left: 19px;
  font-size: 1.4rem;
}
.cmn_cate>span::before{
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  position: absolute;
  top: 50%;
  left: 0;
  margin-top: -4px;
  background-color: var(--main-color);
  border-radius: 50%;
}
@media screen and (max-width :834px){
  .cmn_cate>span{
    padding-left: 15px;
    font-size: 1.2rem;
  }
  .cmn_cate>span::before{
    width: 6px;
    height: 6px;
    margin-top: -3px;
  }  
}
/* cmn_txt_date
=============================================== */
.cmn_txt_date{
   display: flex;
   align-items: center;
}
.cmn_txt_date .cmn_cate{
   margin-left:24px;
}
@media screen and (max-width :834px){
  .cmn_txt_date .cmn_cate{
    margin-left: 20px;
  }  
}
/* ボタン
=============================================== */
.wp-block-buttons+.wp-block-buttons,
.cmn_btn+.cmn_btn{
  margin-top: 20px;
}
.wp-block-buttons,
.wp-block-button,
.cmn_btn{
  overflow: hidden;
  font-size: 0;
}
.wp-block-button,
.cmn_btn >*{
  width: auto;
  position: relative;
  display: inline-block;
  padding: 16px 24px 16px 24px;
  font-size: 1.6rem;
  text-decoration: none;
  color: var(--font-black) !important;
  border: solid 1px var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  transition-duration: .4s;
}
.wp-block-button>*,
.cmn_btn >* span{
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  padding-right: 20px;
  background: url(../img/ico_arrow.svg) no-repeat right center;
  background-size: 12px auto;  
}
.wp-block-button::before,
.cmn_btn >*::before{
  background: var(--bg-rgreen);
  border-radius: 50%;
  content: "";
  display: block;
  margin: auto;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  width: 100%;
  padding-top: 100%;
  height: 0;
  z-index: 0;
  transform: translateY(-50%) scale(0.1);
  transition: opacity .5s, transform 0s;
  transition-delay: 0s, .4s;
}

.cmn_btn >*.is_none{
  pointer-events: none;
  opacity: 0.5;
}
.cmn_btn >*.is_none::before{
  opacity: 1;
  background-color:var(--color-border);
  transform: translateY(-50%) scale(1.1);
  z-index: 1;
}
.cmn_btn >*.is_green{
  color: #fff !important;
  background-color: var(--main-color);
}
.cmn_btn >*.is_green > span{
  background-image: url(../img/ico_arrow_w.svg);
}
.cmn_btn >*.is_green::before{
  background-color: #fff;
}

.cmn_btn >*.is_back > span{
  background-image: url(../img/ico_arrow_back.svg);
  background-position:  left center;
}

.wp-block-buttons,
.cmn_btn.type_flex{
  display: flex;
  gap: 20px 32px;
}
.cmn_btn.is_center{
  justify-content: center;
  text-align: center;
}
.cmn_btn.is_center >*>span{
  text-align: center;
  padding-left: 20px;
}
.wp-block-button a[target="_blank"]::after,
.cmn_btn a[target="_blank"] > span::after{
  content: '';
  display: inline-block;
  vertical-align: middle;
  width: 12px;
  height: 13px;
  margin-left: 8px;
  background: url(../img/ico_blank.svg)no-repeat center center;
  background-size: contain;
}
@media (min-width :835px){
  .cmn_btn >*.size_s{
    min-width: 224px !important;
  }
  .cmn_btn >*.size_m{
    min-width: 320px;
  }
  .cmn_btn >*.size_l{
    min-width: 480px;
  }    
}
@media (hover: hover) and (pointer: fine) {
  .wp-block-button:hover,
  .cmn_btn >*:hover{
    color: var(--main-color) !important;
  }    
  .wp-block-button:hover::before,
  .cmn_btn >*:hover::before {
    opacity: 1;
    transform: translateY(-50%) scale(1.1);
    transition-delay: 0s;
    transition: opacity .8s, transform .6s ease-in-out;
  }  

  .cmn_btn >*.is_green:hover{
    color: var(--font-black);
  }     
  .cmn_btn >*.is_green:hover>*{
    background-image: url(../img/ico_arrow.svg);
  }  
}
@media screen and (max-width :834px){
  .cmn_btn+.cmn_btn,
  .cmn_btn.type_flex a{
    margin-top: 12px;
  }
  .wp-block-button a,
  .cmn_btn >*{
    padding: 11px 37px 11px 20px;
    font-size: 1.4rem;
    background-position:right 20px center;
    background-size: 10px auto;
  }
  .cmn_btn.type_flex{
    display: block;
  }
  .cmn_btn.type_flex>*+*{
    margin-top: 12px;
  }
  .cmn_btn.is_center{
    text-align: center;
  }
  .cmn_btn.is_center a{
    padding: 11px 20px;
  }
  .cmn_btn >*.size_s{
    min-width: 68.75%;
  }
  .cmn_btn >*.size_m{
    min-width: 84.28%;
  }
  .cmn_btn >*.size_l{
    width: 100%;
  }  
  .wp-block-button a[target="_blank"]::after,
  .cmn_btn a[target="_blank"] > span::after{
    width: 9px;
    height: 9px;
    margin-left: 6px;
  }     
}

/* cmn_news
=============================================== */
.cmn_news .inner{
  max-width: 1548px;
}
.cmn_news .wrap_news{
  display: flex;
}
.cmn_news .box_ttl{
  width: 210px;
  margin-right: 9.53%;
}
.cmn_news .box_ttl .ttl_sec{
  margin-bottom: 65px;
}
.cmn_news .tab_news{
  padding: 20px 32px;
  background-color: var(--bg-rgreen);
  border-radius: var(--radius);
}
.cmn_news .tab_news .list_tab{
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.cmn_news .tab_news .list_tab li>*{
  line-height: 1;
  color: var(--font-black);
  text-decoration: none;  
}
.cmn_news .tab_news .list_tab li>* span{
  display: inline;
  line-height: 1.5;
  background-image: linear-gradient(to bottom, var(--main-color),var(--main-color));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 1px;
  transition: background .4s ease;
}
.cmn_news .tab_news .list_tab li.is_active span,
.cmn_news .tab_news .list_tab li>*[aria-selected="true"] span{
  color: var(--main-color);
  background-size:100% 1px;
}
.cmn_news .area_news_wrap{
  flex: 1;
}

.cmn_news  .area_news_wrap > div{
  animation: PageIn 1.3s ease 0s 1 normal;
}
.cmn_news  .area_news_wrap > div[aria-hidden="true"]{
  display: none;
}

.cmn_news .cmn_arrow{
  margin-top: 64px;
  
}
@media (hover: hover) and (pointer: fine) {
  .cmn_news .tab_news .list_tab li>*:hover span{
    color: var(--main-color);
    background-size:100% 1px;
  }  
}
@media (min-width :835px){
  .cmn_news.consortium .box_ttl{
    width: 250px;
    margin-right: 8%;
  }  
}
@media screen and (max-width :834px){
  .cmn_news .wrap_news{
    padding: 0;
    flex-direction: column;
  }  
  .cmn_news .box_ttl{
    padding: 0 5.2%;
    width: 100%;
    margin: 0 0 32px;
  }
  .cmn_news .box_ttl .ttl_sec{
    margin-bottom: 32px;
  }  
  .cmn_news .tab_news{
    padding: 13px 12px;
  }
  .cmn_news .tab_news .list_tab{
    flex-direction: row;
    gap: 5px;
  }
  .cmn_news .tab_news li{
    flex: 1;
  }
  .cmn_news .tab_news .list_tab li>*{
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 2.167em;
    font-size: 1.2rem;
    text-align: center;
    line-height: 1.167;
  }
  .cmn_news .tab_news .list_tab li>*[aria-selected="true"]{
    text-underline-offset:4px;
  }
  .cmn_news .cmn_arrow{
    margin-top: 32px;
    margin-right: 5.2%;
    
  }  
}

/* cmn_list_news
=============================================== */
.cmn_list_news li{
  border-bottom: solid 1px var(--color-border);
}
.cmn_list_news li:first-child{
  border-top: solid 1px var(--color-border);
}
.cmn_list_news li>*{
  display: block;
  padding: 24px 80px 24px 0;
  color: var(--font-black);
  text-decoration: none;
  background: url(../img/ico_arrow.svg)no-repeat center right 14px;
  background-size: 12px auto;
}
.cmn_list_news li .cmn_txt_date{
  margin-bottom: 5px;
}
.cmn_list_news li .ttl{
  display: inline;
  line-height: 1.5;
  background-image: linear-gradient(to bottom, var(--main-color),var(--main-color));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 1px;
  transition: background .4s ease;
  cursor: pointer;    
}
@media (hover: hover) and (pointer: fine) {
  .cmn_list_news li>a:hover .ttl{
    color: var(--main-color);
    background-size:100% 1px;
  }
}
@media screen and (max-width :834px){
  .cmn_list_news li>*{
    padding: 12px calc(5.2% + 20px) 15px 5.2%;
    background-position:center right 5.2%;
    background-size: 10px auto;    
  }
  .cmn_list_news li .cmn_txt_date{
    margin-bottom: 2px;
  }
  .cmn_list_news li .ttl{
    line-height: 1.571;
  }  
}
/* cmn_list_case
=============================================== */
.cmn_list_case{
  display: flex;
  flex-wrap: wrap;
  gap:64px 4.4%;
}
.cmn_list_case li{
  width: calc(91.2% / 3);
  background: url(../img/ico_arrow.svg)no-repeat right 24px bottom 24px;
  background-size: 12px auto;
  background-color: #fff;
  border-radius: var(--radius);
  overflow: hidden;    
}
.cmn_list_case li a{
  display: block;
  height: 100%;
  text-decoration: none;
  border-radius: var(--radius);
  overflow: hidden;  
  color: var(--font-black);
  border: solid 1px var(--color-border); 
}
.cmn_list_case li .thumb{
  padding-top:56.36% ;
}
.cmn_list_case li .thumb img{
  transition: transform 0.8s 0s cubic-bezier(0.36, 0.01, 0.29, 0.99);
}
.cmn_list_case li .box_text{
  padding: 13px 32px 55px 32px;
}
.cmn_list_case li .cmn_cate{
  margin-bottom: 12px;
}
.cmn_list_case li .ttl{
  display: inline;
  font-size: 2rem;
  color: var(--font-black);
  line-height: 1.5;
  background-image: linear-gradient(to bottom, var(--main-color),var(--main-color));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 1px;
  transition: background .4s ease;
  cursor: pointer;  
}
@media (hover: hover) and (pointer: fine) {
  .cmn_list_case li a:hover{
    border-color: var(--main-color);
  }
  .cmn_list_case li a:hover .thumb img{
    transform: scale(1.1);
  }
  .cmn_list_case li a:hover .ttl{
    color: var(--main-color);
    background-size:100% 1px;
  }
}
@media screen and (max-width :834px){
  .cmn_list_case{
    gap:12px 1.7%;
  }
  .cmn_list_case li{
    width: calc(98.3% / 2);
    background-position:right 12px bottom 12px;
    background-size: 8px auto;
  }
  .cmn_list_case li .thumb{
    padding-top:56.14%;
  }
  .cmn_list_case li .box_text{
    padding: 5px 12px 30px 12px;
  }
  .cmn_list_case li .cmn_cate{
    margin-bottom: 4px;
  }
  .cmn_list_case li .ttl{
    display: block;
    font-size: 1.5rem;
    line-height: 1.4;
  }  
}
/* cmn_arrow
=============================================== */
a.cmn_arrow{
  display: inline-flex;
  align-items: center;
  font-family: var(--font-ro);
  font-size: 1.8rem;
  font-weight: 400;
  text-decoration: none;
  color: var(--font-black);
}
.cmn_arrow > .ico{
   display: block;
   position: relative;
   width: 48px;
   height: 48px;
   margin-left: 24px;
   border-radius: 50%;  
   background-color: #fff;
   border: solid 1px var(--color-border); 
}
.cmn_arrow > .ico::after,
.cmn_arrow > .ico::before{
  position: absolute;
  left: 0;
  right: 0;
  width: calc(100% - 2px);
  z-index: 1;
  content: "";
  display: block;
  margin: auto;  
}
.cmn_arrow > .ico::after{
  top: 0;
  height: calc(100% - 2px);
  background: url(../img/ico_arrow.svg) no-repeat center center;
  background-size: 12px auto;
  border-radius: 50%;  
}
.cmn_arrow > .ico::before{
  top: 50%;
  background:var(--main-color);
  border-radius: 50%;
  padding-top: calc(100% - 2px);
  height: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  transform: translateY(-50%) scale(0.1);
  transition: opacity .5s, transform 0s;
  transition-delay: 0s, .4s;
}

.cmn_arrow.is_green > .ico{
  background-color: var(--main-color);
}
.cmn_arrow.is_green > .ico::after{
  background-image: url(../img/ico_arrow_w.svg);
}
.cmn_arrow.is_green > .ico::before{
  background-color: #fff;
}
@media (hover: hover) and (pointer: fine) {
  .cmn_arrow:hover> .ico::after{
    background-image: url(../img/ico_arrow_w.svg);
  }  
  .cmn_arrow:hover> .ico::before{
    opacity: 1;
    transform: translateY(-50%) scale(1.1);
    transition-delay: 0s;
    transition: opacity .8s, transform .6s ease-in-out;
  }  
  .cmn_arrow.is_green:hover> .ico::after{
    background-image: url(../img/ico_arrow.svg);
  }  
}
@media screen and (max-width :834px){
  a.cmn_arrow{
    font-size: 1.5rem;
  }
  .cmn_arrow > .ico{
    width: 40px;
    height: 40px;
    margin-left: 21px;
    border-width: 1px;
  }
  .cmn_arrow > .ico::after{
    background-size: 10px auto;
  }
}

/* ttl_sec
=============================================== */
.ttl_sec{
  font-size: 1.8rem;
  line-height: 1;
  color: var(--main-color);
}
.ttl_sec span[lang="en"]{
  display: block;
  margin-bottom: 17px;
  font-size: 6rem;
  font-weight: 400;
  font-family: var(--font-en);
  letter-spacing:3px;
  color: var(--font-black);
}

.ttl_sec.white span[lang="en"],
.ttl_sec.white{
  color: #fff;
}

@media screen and (max-width :834px){
  .ttl_sec{
    font-size: 1.4rem;
  }
  .ttl_sec span[lang="en"]{
    margin-bottom: 10px;
    font-size: 4.5rem;
  }  
}
/* メール・電話
=============================================== */
.cmn_tel,.cmn_mail{
  display: flex;
  align-items: center;
  font-size: 3rem;
  font-family: var(--font-en);
}
.cmn_tel::before,
.cmn_mail::before{
  content: '';
  width: 48px;
  height: 48px;
  margin-right: 16px;
}
.cmn_tel::before{
  background: url("../img/ico_info_tel.svg")no-repeat center center;
  background-size: contain;
}
.cmn_mail::before{
  background: url("../img/ico_info_mail.svg")no-repeat center center;
  background-size: contain;
}
.cmn_tel a,.cmn_mail a{
  text-decoration: none;
  
}

@media screen and (max-width: 834px) {
  .cmn_tel,.cmn_mail{
    font-size:2.1rem;
  }
  .cmn_tel::before,
  .cmn_mail::before{
    width: 28px;
    height: 28px;
    margin-right: 12px;
  }
}

/* インデックスメニュー（ボタンタイプ)
=============================================== */
.cmn_menu_btn li > *{
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 29px 23px 29px 23px;
  border-radius: var(--radius);
  overflow: hidden;
  color: var(--font-black);
  line-height: var(--lh-sub);
  text-decoration: none;
  border: solid 1px var(--color-border);
  background-color: #fff;
  transition: all 0.5s ease;
}
.cmn_menu_btn li > * span{
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  padding-right: 20px;
  background: url(../img/ico_arrow.svg) no-repeat right center;
  background-size: 12px auto;  
}
@media (hover: hover) and (pointer: fine) {
  .cmn_menu_btn li > *:hover{
    color: var(--main-color);
  }
}

@media (min-width :835px){
  .cmn_menu_btn{
    display: flex;
    flex-wrap: wrap;
    gap: 40px 3.125%;
  }
  .cmn_menu_btn li{
    width:calc(93.75% / 3);
  }
}
@media (max-width :834px){
  .cmn_menu_btn li+li{
    margin-top:12px ;
  }
  .cmn_menu_btn li > *{
    padding: 27px 20px 27px 20px;
  }
}



/* cmn_pagination
=============================================== */
.cmn_pagination{
  max-width: 457px;
  margin:64px auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
.cmn_pagination li:not(.dot){
  flex: 1;
}
.cmn_pagination li:not(.dot) >*{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border: solid 1px var(--color-border);
  border-radius: var(--radius);
  background-color: #fff;
  font-family: var(--font-ro);
  color: var(--font-black);
  text-decoration: none;
  line-height: 1;
  transition: all 0.5s ease;
}
.cmn_pagination li.is_active >*{
  color: #fff;
  background-color: var(--main-color);
}
.cmn_pagination li.dot {
  width: 28px;
  flex-shrink: 0;
  text-align: center;
  color: var(--font-gray);
}
@media (hover: hover) and (pointer: fine) {
  .cmn_pagination li >a:hover{
    background-color: var(--bg-rgreen);
    color: var(--main-color);
  }
}
@media screen and (max-width :834px) {
  .cmn_pagination{
    margin:32px auto 0;
    padding: 0 5px;
    gap:6px;
    max-width: 305px;
  }
  .cmn_pagination li:not(.dot) >*{
    min-height: 32px;
  }
  .cmn_pagination li.dot {
    width: 15px;
  }  
}

/* cmn_sec_contact
=============================================== */
.cmn_sec_contact{
  padding: 50px 0;
  background-color: var(--bg-green);
}
.cmn_sec_contact .inner{
  max-width: 1548px;
}
.cmn_sec_contact .wrap_contact{
  position: relative;
  padding: 50px 20px 50px;
  text-align: center;
  background-color: #fff;
  border-radius: var(--radius);
}
.cmn_sec_contact .img_illust1,
.cmn_sec_contact .img_illust2{
  content: '';
  position: absolute;
}
.cmn_sec_contact .img_illust1{
  right: 0;
  top: 0;
  width: 18.5%;
  transform: translate(8.58%,-14.9%);
}
.cmn_sec_contact .img_illust2{
  left: 0;
  bottom: 0;
  /* width:215px;
  height: 227px; */
  width: 14.84%;
  transform: translate(-14.4%,20%);
}
.cmn_sec_contact .wrap_contact .ttl_sec {
  margin-bottom: 50px;
}
.cmn_sec_contact .wrap_contact .txt_lead{
  font-size: 2rem;
  font-weight: 400;
}
.cmn_sec_contact .wrap_contact h3{
  margin-top: 25px;
  font-size: 2rem;
}
.cmn_sec_contact .wrap_contact .cmn_mail{
  margin-top: 10px;
  justify-content: center;
  font-size: 2.6rem;
}
@media screen and (max-width :834px){
  .cmn_sec_contact{
    padding: 40px 0;
  }
  .cmn_sec_contact .inner{
    max-width: 100%;
  }
  .cmn_sec_contact .wrap_contact{
    padding: 60px 20px 60px;
  }
  .cmn_sec_contact .img_illust1{
    width: 38.28%;
    transform: translate(24.62%,-17.27%);
  }
  .cmn_sec_contact .img_illust2{
    width: 30.7%;
    transform: translate(-35.24%,33.48%);
  }
  .cmn_sec_contact .wrap_contact .ttl_sec {
    margin-bottom: 30px;
  }
  .cmn_sec_contact .wrap_contact .txt_lead{
    text-align: left;
    font-size: 1.4rem;
  }
  .cmn_sec_contact .wrap_contact h3{
    margin-top: 15px;
    font-size: 1.6rem;
  }
  .cmn_sec_contact .wrap_contact .cmn_mail{
    margin-top: 10px;
    font-size: 1.8rem;
  }  
}