
@media all and (min-width: 961px)  {
/* //    |- PC  */
  .elmSP {  display:none !important;  }
} /* TB: min-width: 560px max-width: 1079px */
@media all and (max-width: 960px)  {
/* //    |- SP  */
  .elmPC{ display:none !important;  }
} /* SP: max-width: 559px */

body {
  color: #333;
}
em {
  font-style: normal;
}



/* ----------------- 共通 ----------------- */
.widthFix {
  width: calc(100% - 6rem);
  margin: 0 auto;
  display: block;
  box-sizing: border-box;
  max-width: 1280px;
}
.ffen {
  font-family: 'Agdasima', 'Inter', 'Noto Sans JP', 'Antic Didone';
  line-height: 100%;
}
.h2_ttl_wrap {
  margin-bottom: 50px;
}
.h2_ttlEn {
  font-size: 22px;
  letter-spacing: 0.05em;
  font-weight: 600;
  margin:  0 0 25px;
}
.h2_ttlEn span {
  font-size: 30px;
}
.h2_subttlJp {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0 0 20px;
}
.h2_ttlJp {
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
p.text {
  font-size: 16px;
  line-height: 2;
  font-weight: 400;
}
.note {
font-size: 13px;
  line-height: 1.8;
  font-weight: 400;  
}
.fc_blu {
  color: #1C9AD3;
}
.fc_blu2 {
  color: #60CEFF;
}
.fc_yel {
  color: #FFF261;
}
.bg_gray {
  background: #F5F5F5;
}
.mb00 {
  margin-bottom: 0 !important;
}
.underscoring{
  background: linear-gradient(transparent 88%, #FFF261 88%);
  padding-bottom: 12px;
}
.underscoring2{
  background: linear-gradient(transparent 88%, #F3F9FF 88%);
  padding-bottom: 12px;
}
.fwBold {
  font-weight: 700;
}
a {
  text-decoration: none; /* Remove underline by default */
}

a:link,
a:visited,
a:hover,
a:active {
  text-decoration: none; /* Ensure no underline in any state */
}

.text_link {
  color: #1C9AD3;
}
.text_link:hover {
  text-decoration: underline;
}
@media only screen and (max-width: 960px) 
{ /* SP start */
.widthFix {
  width: calc(100% - 1.5rem * 2) !important;
  margin: 0 auto;
  box-sizing: border-box;
}
.h2_ttl_wrap {
  margin-bottom: 35px;
}
.h2_ttlEn {
  font-size: 18px;
  letter-spacing: 0.05em;
  font-weight: 600;
  margin:  0 0 25px;
}
.h2_ttlEn span {
  font-size: 26px;
}
.h2_subttlJp {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0 0 20px;
}
.h2_ttlJp {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
p.text {
  font-size: 15px;
}
.scrollable-element {
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch; /* スムーズなスクロールを有効にする */
}
}


/* 共通ボタン白 */
.c-btn {
  border-radius: 100px;
  color: #333;
  display: inline-block;
  line-height: 1;
  box-sizing: border-box;
  transition: .3s;
  margin: 0 auto;
}
.c-btn:hover {
  opacity: 0.7;
}
.c-btn .tx {
  position: relative;
  font-size: 18px;
  font-weight: 700;
  position: relative;
  display: block;
  text-align: center;
  line-height: 1.4;
}
.c-btn .tx:after {
  position: absolute;
  background: url(../images/icon_arrow_right_wht.svg) no-repeat center center;
  background-size: 12px 12px;
  background-color: #38A7D8;
  top: 50%;
  transform: translateY(-50%);
  content: "";
  width: 60px; 
  height: 60px; 
  display: inline-block;
  z-index: 100;
  right: -85px;
  transition: .3s;
  border-radius: 50%; 
}
.c-btn:hover.c-btn .tx:after {
  right: -100px;
}
/*SP*/
@media screen and (max-width:960px){
.c-btn {
}
.c-btn .tx {
  position: relative;
  font-size: 15px;
  font-weight: 700;
  position: relative;
}
.c-btn .tx:after {
  content: "";
  width: 40px; 
  height: 40px; 
  right: -55px;
}
.c-btn:hover.c-btn .tx:after {
  right: -70px;
}
}



/* 共通ボタン青 */
.c-btn2 {
  border-radius: 100px;
  padding:  32px 120px 32px 70px;
  color: #333;
  display: inline-block;
  line-height: 1;
  box-sizing: border-box;
  transition: .3s;
  margin: 0 auto;
  background-color: #F0F7FA;
}
.c-btn2:hover {
  opacity: 0.7;
}
.c-btn2 .tx {
  position: relative;
  font-size: 18px;
  font-weight: 700;
  position: relative;
}
.c-btn2 .tx:after {
  position: absolute;
  background: url(../images/icon_arrow_right_wht.svg) no-repeat center center;
  background-size: 12px 12px;
  background-color: #38A7D8;
  top: 50%;
  transform: translateY(-50%);
  content: "";
  width: 60px; 
  height: 60px; 
  display: inline-block;
  z-index: 100;
  right: -85px;
  transition: .3s;
  border-radius: 50%; 
}
.c-btn2:hover.c-btn2 .tx:after {
  right: -100px;
}
/*SP*/
@media screen and (max-width:960px){
.c-btn2 {
  padding:  22px 90px 22px 40px;
}
.c-btn2 .tx {
  position: relative;
  font-size: 15px;
  font-weight: 700;
  position: relative;
}
.c-btn2 .tx:after {
  content: "";
  width: 40px; 
  height: 40px; 
  right: -55px;
}
.c-btn2:hover.c-btn2 .tx:after {
  right: -70px;
}
}

.fixedBtn {
  display: none;
}





/* KV */
.kv {
  padding:80px 0 0 ;
}
.kv_ttl_en {
  font-size: 22px;
  font-weight: 600;
  margin: 50px 0 25px;
  letter-spacing: 0.1em;
}
.kv_ttl_jp {
  font-size: 58px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 0 0 35px;
  border-bottom: 1px solid #C9E4F9;
}
.kv_ttl_jp span{
  font-size: 62px;
}
@media screen and (max-width:960px){
.kv {
  padding:80px 0 0 ;
}
.kv_ttl_en {
  font-size: 18px;
  font-weight: 600;
  margin: 40px 0 15px;
  letter-spacing: 0.1em;
}
.kv_ttl_jp {
  font-size: 38px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 0 0 25px;
  border-bottom: 1px solid #C9E4F9;
}
.kv_ttl_jp span{
  font-size: 42px;
}
}




/* 各ブロック共通 */
.cmn_section {
  padding:80px 0 ;
}
.cmn_copy {
  font-size: 40px;
  font-weight: 700;
  margin-bottom: 60px;
  position: relative;
  padding: 0 0 0 40px;
}
.cmn_copy:before {
  content: '';
  position: absolute;
  background: #333;
  width: 20px;
  height: 1px;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.cmnBlock {
  display: flex;
  gap:50px;
}
.cmnBlock.reverse {
  flex-direction: row-reverse;
}
.cmnBlock_img {
  max-width: 45%;
}
.cmnBlock_desc {
  display: flex;
  gap:55px;
  flex-direction: column;
}
.cmnBlock_desc__item__ttl {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 15px;
}
.cmn_section .c-btnWrap {
  text-align: right;
  margin: 0 80px 0 0 ;
}
/*SP*/
@media screen and (max-width:960px){
.cmn_section {
 padding:60px 0;
}
.cmn_copy {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 30px;
}
.cmnBlock {
  display: flex;
  gap:30px;
  flex-direction: column;
}
.cmnBlock.reverse {
  flex-direction: column;
}
.cmnBlock_img {
  max-width: 100%;
}
.cmnBlock_desc {
  display: flex;
  gap:35px;
  flex-direction: column;
}
.cmnBlock_desc__item__ttl {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 15px;
}
.cmn_section .c-btnWrap {
  text-align: right;
  margin: 0 60px 0 0 ;
}
}


















/* xxxxxxxx */

/*SP*/
@media screen and (max-width:960px){

}


/* xxxxxxxx */

/*SP*/
@media screen and (max-width:960px){

}