@charset "UTF-8";
@import "base.css";
@import "fonts.css";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
/*==========================================================================*/
/*//////////////////////////////////////////////////////////////////////////*/
/*//////                                                              //////*/
/*//////                  © Branding Technology inc.                  //////*/
/*//////                                                              //////*/
/*//////////////////////////////////////////////////////////////////////////*/
/*                                                                          */
/*    base.css  --> スタイルの初期設定を行うため、変更しないで下さい。      */
/*    fonts.css --> フォントの初期設定を行うため、変更しないで下さい。      */
/*                                                                          */
/*==========================================================================*/

/*==========================================================================*/
/*                           Common-Setting                                 */
/*==========================================================================*/
*,
::before,
::after {
  box-sizing: border-box;
  outline: none;
}

/* 基本タグのフォントサイズを指定（12px -> 120% or 1.2em ） */
h1,
h2,
h3,
h4,
h5,
h6,
input,
button,
textarea,
select,
p,
blockquote,
th,
td,
pre,
address,
li,
dt,
dd {
  font-size: 140%;
  -webkit-text-size-adjust: none;
  font-weight: 400;
}

a {
  transition: all ease 0.3s;
  text-decoration: none;
  color: var(--txt);
}

a[href^="tel:"]:hover,
a[target=_blank]:hover {
  text-decoration: none;
  color: var(--txt);
}

a:hover {
  text-decoration: underline;
}

img {
  vertical-align: middle;
  max-width: 100%;
  flex-shrink: 0;
  height: auto;
}

/* RESET CHECK EMPTY */
/* img:not([alt]),
img[alt=''] {outline: 0 0 5px red;}
a[href=""],
a[href="#"],
a[href^="javascript:"],
a:not([href]) {background: red;} */

/*==========================================================================*/
/*                               Container                                  */
/*==========================================================================*/
html {
  background: #fff
}

body {
  -webkit-text-size-adjust: none;
  max-width: 1920px;
  min-width: 320px;
  margin: 0 auto;
  background: #FFF;
  color: #000;
  font-family: 'Noto Sans JP', sans-serif;
  word-wrap: break-word;
  position: relative;
}

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.4;
}

p,
dd,
dt,
li,
th,
td,
address {
  line-height: 2em;
  letter-spacing: 0;
}

p {
  font-size: 16px;
}

:root {
  --txt: #343434;
  /* COLOR TEXT */
  --mcolor: #071b55;
  /* MAIN COLOR  */
  --scolor: #343434;
  /* SUB COLOR */

  --blue: #0096df;
  --gray: #e9e9e9;

  --nts: 'Noto Sans JP', sans-serif;
  --nsr: 'Noto Serif JP', serif;
  --yumin: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝B", serif;
  --yugo: "游ゴシック体", "Yu Gothic", YuGothic, sans-serif;
}

#wrapper {
  min-width: 1200px;
  overflow: hidden;
  margin: 0 auto
}

.inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  position: relative;
}

.inner-lg {
  max-width: 1920px;
  width: 100%;
  margin: 0 auto;
  position: relative;
}


/* CUSTOM CLASS */

.image_l {
  float: left;
  margin: 0 30px 0 0
}

.image_r {
  float: right;
  margin: 0 0 0 30px
}


.flex {
  display: flex
}

.flex_wrap {
  display: flex;
  flex-wrap: wrap
}

.flex_center {
  display: flex;
  justify-content: center;
  align-items: center;
}

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

.flex_align {
  display: flex;
  align-items: center;
  justify-content: space-between
}

.flex_col {
  display: flex;
  flex-direction: column;
}

.flex_col_center {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

.fixed {
  position: fixed !important;
}

.posr {
  position: relative
}

.bold {
  font-weight: 700;
}

.center {
  text-align: center
}

.left {
  text-align: left
}

.right {
  text-align: right
}

.auto {
  margin-left: auto;
  margin-right: auto;
}

.fs_big {
  font-size: 120%;
}

.fs_sm {
  font-size: 80%;
}

.red {
  color: red;
}

.cl-gr{
  color: #343434 ;
}

.underline02 {
  z-index: 1;
  position: relative;
}

.underline02 {
  display: inline;
  background: linear-gradient(90deg, rgb(89, 192, 247) 0%, rgb(118, 142, 236) 50%, rgb(198, 133, 241) 100%);
  background-repeat: no-repeat;
  background-position: left 24px;
  background-size: 100% 14%;
}

@media screen and (max-width: 474px) {
  .underline02 {
    background-position: left 15px;
  }
}

/*  */
.btn a {
  width: 250px;
  padding: 8px 0;
  border-radius: 25px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: url('../images/ic-right.png') no-repeat right 20px center /6px #071b55;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
  transition-duration: 0.2s;

}
.btn a:hover{
  background: url('../images/ic-right.png') no-repeat right 26px center /7px #071b55;
  text-decoration: none;
}

.btn.center a {
  margin-left: auto;
  margin-right: auto;
}

.btn_box {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  width: calc(100% + 20px);
  margin-left: -10px;
}

.btn_box .btn {
  margin: 10px;
}
.btn02 a{
  width: 500px;
  padding: 15px 10px;
  border-radius: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
   background: linear-gradient(to right, #0892de, #A568FF);
    border: 2px solid #fff;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
  box-shadow: rgba(50, 50, 93, 0.25) 0px 6px 12px -2px, rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;
}

.btn02 a span{ position: relative; padding-left: 40px;}
.btn02 a span:before{ 
  position: absolute;
  content: "";
  left: 0;
  height: 100%;
  width:  40px;
  background: url('../images/ic-right02.png')no-repeat ;
  background-size: 30px 30px;

}

/*==========================================================
                       H E A D E R
==========================================================*/
header {
  z-index: 9999;
  position: fixed;
  top: 0;
  width: 100%;
  height: 100px;
  padding: 0 45px;
    left: 0;
  display: flex;
  align-items: center;
  background: #fff;
  border-bottom: 3px solid #0096df;
}

header .inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 100%;
}

h1 {
  font-size: 14px;
  display: inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 10px 0;
  max-width: 500px;
}
header h1 img {
  display: block;
  height: auto;
  width: 226px;
}

header .list_link {
    display: flex;
}

header .list_link li:first-child {
    margin-right: 20px;
}



header .list_link .btn a {
  width: 250px;
  padding: 8px 0;
  border-radius: 25px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: url('../images/ic-right.png') no-repeat right 38px center /7px #071b55;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
}

header .list_link li:first-child.btn a {
    background:url('../images/ic-right.png') no-repeat right 38px center /7px, linear-gradient(to right, #0892de, #A568FF);
}
header .list_link li:first-child.btn a:hover{
    background:url('../images/ic-right.png') no-repeat right 26px center /7px, linear-gradient(to right, #A568FF, #0892de) !important;
    opacity: 0.95;
    text-decoration: none;
}



header .menu {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}



header .menu li.img-icon {
  padding: 0 20px;
}

header .menu li.img-icon a {
  display: block;
  line-height: 0;
  width: 100%;
  height: 100%;
}

header .menu li.img-icon a img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.close-button {
  display: none;
}

/*==========================================================
                  M A I N    V I S U A L
==========================================================*/
main {
  position: relative;
  padding: 100px 0 0;
}

#mainvisual {
  min-height: 640px;
  padding: 65px 0 50px 0;
  background: url("../images/mainvisual_bg01.jpg") no-repeat center;
  background-size: cover;
  position: relative;
}
#mainvisual p,
#mainvisual h2 {
  font-weight: bold;
}
#mainvisual h2{ line-height: 3em;}
#mainvisual h2 .txt01{
  margin: 20px 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 58px;
  font-weight: bold;
  color: #fff;
  text-shadow: #0096df 4px 0px 0px, #0096df 3.87565px 0.989616px 0px, #0096df 3.51033px 1.9177px 0px, #0096df 2.92676px 2.72656px 0px, #0096df 2.16121px 3.36588px 0px, #0096df 1.26129px 3.79594px 0px, #0096df 0.282949px 3.98998px 0px, #0096df -0.712984px 3.93594px 0px, #0096df -1.66459px 3.63719px 0px, #0096df -2.51269px 3.11229px 0px, #0096df -3.20457px 2.39389px 0px, #0096df -3.69721px 1.52664px 0px, #0096df -3.95997px 0.56448px 0px, #0096df -3.97652px -0.432781px 0px, #0096df -3.74583px -1.40313px 0px, #0096df -3.28224px -2.28625px 0px, #0096df -2.61457px -3.02721px 0px, #0096df -1.78435px -3.57996px 0px, #0096df -0.843183px -3.91012px 0px, #0096df 0.150409px -3.99717px 0px, #0096df 1.13465px -3.8357px 0px, #0096df 2.04834px -3.43574px 0px, #0096df 2.83468px -2.82216px 0px, #0096df 3.44477px -2.03312px 0px, #0096df 3.84068px -1.11766px 0px, #0096df 3.9978px -0.132717px 0px, 5px 8.36px 8.896px #b37cdd, 0 -2px 1px #b37cdd, 5px 8.36px 8.896px #b37cdd, 0 -1px 1px #b37cdd, 5px 8.36px 8.896px #b37cdd, 0 -3px 1px #b37cdd;
  letter-spacing: 0.08em;
}
#mainvisual h2 .txt02{
  margin: 20px 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 64px;
  font-weight: bold;
  color: #fff;
  text-shadow: #0096df 4px 0px 0px, #0096df 3.87565px 0.989616px 0px, #0096df 3.51033px 1.9177px 0px, #0096df 2.92676px 2.72656px 0px, #0096df 2.16121px 3.36588px 0px, #0096df 1.26129px 3.79594px 0px, #0096df 0.282949px 3.98998px 0px, #0096df -0.712984px 3.93594px 0px, #0096df -1.66459px 3.63719px 0px, #0096df -2.51269px 3.11229px 0px, #0096df -3.20457px 2.39389px 0px, #0096df -3.69721px 1.52664px 0px, #0096df -3.95997px 0.56448px 0px, #0096df -3.97652px -0.432781px 0px, #0096df -3.74583px -1.40313px 0px, #0096df -3.28224px -2.28625px 0px, #0096df -2.61457px -3.02721px 0px, #0096df -1.78435px -3.57996px 0px, #0096df -0.843183px -3.91012px 0px, #0096df 0.150409px -3.99717px 0px, #0096df 1.13465px -3.8357px 0px, #0096df 2.04834px -3.43574px 0px, #0096df 2.83468px -2.82216px 0px, #0096df 3.44477px -2.03312px 0px, #0096df 3.84068px -1.11766px 0px, #0096df 3.9978px -0.132717px 0px, 5px 8.36px 8.896px #b37cdd, 0 -2px 1px #b37cdd, 5px 8.36px 8.896px #b37cdd, 0 -1px 1px #b37cdd, 5px 8.36px 8.896px #b37cdd, 0 -3px 1px #b37cdd;
  letter-spacing: 0.05em;
}



.mv_txt {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: auto
}

.mv_txt h2 {
  font-size: 40px;
  font-weight: bold;
  text-align: center
}

#mainvisual .news-cal {
  position: relative;
  width: 760px;
  margin: 10px 0 40px 27px;
  box-sizing: border-box;
  font-size: 18px; 
  font-weight: bold;
  text-align: left;
  letter-spacing: 0.05em;
  background: #fff;
    border: 2px solid #0096df;
    display: flex;
}
#mainvisual .news-cal .first_cal:before {
  content: '';
  position: absolute;
  top: -2px;
  left: -27px;
  bottom: 0;
  border-top: 30px solid transparent;
  border-bottom: 30px solid transparent; 
  border-right:  25px solid #0096df;
}
#mainvisual .news-cal .first_cal:after {
  content: '';
  position: absolute;
  top: -2px;
  right: -25px;
  bottom: 0;
    z-index: 2;
  border-top: 30px solid transparent;
  border-bottom: 30px solid transparent; 
  border-left:  25px solid #0096df;
}
#mainvisual .news-cal span.line{
   font-weight: normal;
   position: relative;
   top: -2px
}

.first_cal {
    display: block;
    width: 560px;
    font-size: 24px;
    letter-spacing: 0.08em;
    text-align: center;
    background: #0096df;
    height: 100%;
    padding: 10px 0;
    color: #fff;
    position: relative;
}

.sec_cal {
    display: block;
    width: 230px;
    font-size: 24px;
    letter-spacing: 0.08em;
    background: #fff;
    height: 100%;
    text-align: center;
    padding: 10px 15px 10px 45px;
    color: #0096df;
    position: relative;
}


#mainvisual .news-cal .sec_cal:after {
  content: '';
  position: absolute;
  top: 7px;
  right: -23px;
  width: 42px;
  height: 42px;
  background: #fff;
  border-top: 2px solid #0096df;
  border-right: 2px solid #0096df;
  transform: rotate(45deg);
}


#mainvisual .main-btn a{
  width: 500px;
  font-size: 30px;
  letter-spacing: 0.08em;
  padding: 25px 12px;
  border-radius: 50px;
  transition-duration: 0.2s;
  border: 2px solid #fff;

}
#mainvisual .main-btn a span{
  padding-left: 40px;
}
#mainvisual .main-btn a:hover,
#sec05 .main-btn a:hover{
  text-decoration: none;
  opacity: 0.8;
}


/* ======================== LOGO SLIDER ================================== */
#logoslider {
  padding: 30px 0 20px;
    position: relative;
}

#logoslider:after{
    content: "";
    width: 150px;
    height: 700px;
    position: absolute;
    bottom: 0;
    right: -250px;
    background: url("../images/vec_right.png") no-repeat right bottom;
    background-size: 100%;
}


#logoslider .brands {
  text-align: center;
  background-color: #fff;
  margin: 0 auto;
  padding: 0;
}

#logoslider .brands_logo {
  animation: brand-slider 140s linear infinite reverse;
  background: url('../images/logo_brands.png');
  background-repeat: repeat-x;
  width: 100%;
  height: 163px;
}


@-webkit-keyframes brand-slider {
  0% {
    background-position: 0 0;
  }

  to {
    background-position: 4525px 0;
  }
}

/* anchor list */
#anchorlist {
  padding: 0 0 ;
  margin-bottom: 0;
  background-color: #fff;
  border-top: 3px solid #0096df;
  box-shadow: 0px 10px 15px -3px rgba(0,0,0,0.1);
}

#anchorlist ul{
  display: flex;
  justify-content: space-evenly;
}

#anchorlist ul li {
  width: max-content;
  padding: 0 15px;
  text-align: center;
}

#anchorlist ul li a {
  position: relative;
  display: block;
  width: 100%;
  padding: 25px 0 50px;
  font-size: 20px;
  font-weight: bold;
}
#anchorlist ul li a:after{
  position: absolute;
  content: "";
  bottom: 25%;
  left: 50%; transform: translateX(-50%);
  background: url(../images/ic-down.png)no-repeat;
  width: 15px ; height: 15px; 
  background-size: contain;
  transition-duration: 0.2s;
}

#anchorlist ul li a:hover{
  text-decoration: none;
  opacity: 0.8;
}
#anchorlist ul li a:hover:after{
  bottom: 20%;
}


/*==========================================================
                       M A I N
==========================================================*/


/* use private */
/*==================== SEC01 ===================*/



/*==================== SEC03 ===================*/


.medal-group{
  justify-content: center;
  gap: 45px;
  margin: 60px auto 0;
}
.medal-group li{
  width: calc(100%/3);
  max-width: 290px;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-top: 9px;
  background: url("../images/sec04-medal-bg.png")no-repeat;
  background-size: contain;
}
.medal-group li > .txt1{
  font-size: 22px;
  font-weight: bold;
  color: #343434;
  text-align: center;
  line-height: 1.3em;
  margin-bottom: 10px;
}
.medal-group li > .txt1 span{ 
  font-size: 15px;
  font-weight: 400;
  display: block;
  line-height: 1em;
  margin-top: 4px;
}
.medal-group li > .num{ 
  padding: 0 60px;
  text-align: center; 
  font-size: 24px; 
  font-weight: bold; 
  color: #343434;
}

.medal-group li > .num span{
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 80px;
  letter-spacing: normal;
  display: block;
  line-height: 65px;
  background: linear-gradient(to bottom, #005588, #0098DD);
  background-clip: border-box;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.medal-group li:nth-child(2) > .num{
    text-align: center;
    flex-wrap: wrap;
    justify-content: center;
}

.medal-group li:nth-child(2) > .num span{
    font-size: 60px;
    margin-bottom: -10px;
}

.medal-group li:nth-child(3) > .num { 
    display: flex;
    justify-content: center;
    align-items: flex-end;
	gap: 7px;
}

.medal-group li:nth-child(2) > .txt1{
	margin-bottom: 5px;
}

/*==================== SEC04 ===================*/


/*==================== SEC05 ===================*/
#sec05{
  padding: 180px 0 50px;
  background: url(../images/sec05_bg02.png)no-repeat top 45px center #fff;
}

#sec05 .main-btn{ padding: 20px 0;}
#sec05 .main-btn a{
  margin: 0 auto;
  font-size: 30px;
  padding: 20px 10px;
  border-radius: 50px;
}

.sec05-item{
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  border-top: 3px solid #0096df;
  background-color: #fff;
  padding: 0 30px 12px;
  margin-bottom: 84px;

}
.sec05-item.item-s3{
  padding-bottom: 60px;
}
.sec05-item .s5-ttl{
  margin-top: -28px;
  margin-left: auto;
  margin-right: auto;

  z-index: 2;
  position: relative;
  background: #0096df;
  color: #fff;
  width: 100%;
  max-width: 500px;
  min-height: 54px;
  padding:  0 15px;

  font-size: 24px;
  font-weight: bold;
  display: flex;
  justify-content: space-between;
}

.sec05-item.item-s2 .s5-ttl{
  max-width: 250px;
}

.sec05-item .s5-ttl.center{ justify-content: center;}
.sec05-item .s5-ttl span{ 
  display: flex;
  align-items: center;
}
.sec05-item .s5-ttl span.time-ttl{
  letter-spacing: 0.1em;
  padding-left: 30px;
  background: url(../images/ic-time.png)no-repeat left 0 center ;
}

.sec05-item .s5-ttl:before,
.sec05-item .s5-ttl:after{
  z-index: -1;
  background-color: #0096df;
  border: none;
}
.sec05-item .s5-ttl:before{
  top: 8px;
  left: -19px;
  bottom: 0px;
  width: 38px;
  height: 38px;
  transform: rotate(45deg);
}
.sec05-item .s5-ttl:after{
  top: 8px;
  right: -19px;
  bottom: 0px;
  width: 38px;
  height: 38px;
}

.s5-boxin{
  padding: 30px 0;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}
.s5-boxin.box1{
  width: 70%;
}
.s5-boxin.box2{
  width: 100%;
  padding: 45px 0 20px;
  align-items: flex-start;
}
.s5-boxin.box1 .s5-img{
  max-width: 262px ;
  flex-shrink: 0;
}
.s5-img >.txt{
  text-align: center;
}
.s5-boxin .s5-content{
  width: calc(100% - 262px);
}
.s5-boxin .s5-content-ttl{
  color: #343434;
  font-size: 24px;
  font-weight: bold;
  text-align: left;
  margin-bottom: 25px;
  padding-bottom: 5px;
  border-bottom: 3px solid #0096df;
}
.s5-boxin.box3 .s5-content-ttl{
  text-align: center;
}
.s5-boxin.box2 .s5-img{ width: 262px; flex-shrink: 0;}


.s5-btn a {
  width: 200px;
}
.s5-btn a span{
  padding-left: 25px;
  background: url('../images/ic-btn3.png') no-repeat left 0 center;
}
.btn.s5-btn a{
  background: url('../images/s5-btn-ic.png') no-repeat right 15px center  #071b55;
  background-size: 12px 26px;
}
.btn.s5-btn a:hover{
  color: #fff;
  background: url('../images/s5-btn-ic.png') no-repeat right 10px center  #071b55 !important;
  background-size: 12px 26px;


}
.s5-boxin p{ margin-bottom: 0; line-height: 1.5em; letter-spacing: normal;}

.txt15{ font-size: 15px; }
.txt24{ font-size: 24px; font-weight: bold;}



.s5-box2-col{
  display: flex;
  justify-content: space-between;
  padding: 30px 15px 40px;
  gap: 60px;
}
.s5-box2-col> .s5-box2-item{ width: calc(100%/2 - 30px);}
.s5-box2-col> .s5-box2-item .s5-content-ttl{
  padding-bottom: 5px;
  border-bottom: 2px solid #0096df;
}
.s5-box2-col> .s5-box2-item .s5-content-ttl span{
  font-size: 24px;
  font-weight: bold;
  display: block;
  text-align: center;
}
.s5-box2-col> .s5-box2-item .s5-content-ttl span:first-child{
  color: #0096df;
  margin-bottom: 15px;
}
.s5-box2-col> .s5-box2-item .s5-content-ttl span:not(:first-child){
  color: #343434;
}
.s5-box2-col> .s5-box2-item .s5-boxin{ gap: 0;}
.s5-box2-col> .s5-box2-item .s5-boxin .s5-img{ width: 220px; flex-shrink: 0;}
.s5-box2-col> .s5-box2-item .s5-boxin .s5-content {width: calc(100% - 220px); padding-left: 5px;}

.list-ttl02{
  color: #0096df;
  font-size: 20px;
  font-weight: bold;
  padding-left: 25px;
  margin-bottom: 10px !important;
  background: url(../images/ic-list.png) no-repeat left 0 top 12px;
}
.btn-right a{ margin-right: 0; margin-left: auto;}
#sec05 .inner-lg .sec05-item-wrap{
  display: flex;
  justify-content: space-between;
}
#sec05 .inner-lg .sec05-item-wrap> div{
  width: 49%;
  max-height: 770px;
  background-color: #fff;
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
}
#sec05 .inner-lg .sec05-item-wrap .sec05-item{
  max-width: 500px;
  box-shadow: none;

}
.sec05-item-wrap .sec05-item .s5-ttl{
  max-width: 350px;
}
.sec05-item-right{
  margin-top: 50px;
}
.sec05-item-right,.sec05-item-left{ border-top: 5px solid #0096df;}

.sec05-item-left .sec05-item,
.sec05-item-right .sec05-item{
  border-top-color: transparent;
  margin-left: 10px;
  margin-right: auto;
}
.sec05-item-left .sec05-item .s5-ttl,
.sec05-item-right .sec05-item .s5-ttl{
  margin-top: -32px;
  margin-bottom: 20px;
}
.sec05-item-left .sec05-item{
  margin-right: 15px;
  margin-left: auto;
}

.s5-boxin.box3{
  flex-direction: column;
}
.s5-boxin.box3 .s5-content{ width: 100%;}


/*==================== SEC06 ===================*/

.company-info-list {
  margin-bottom: 15px;
  padding: 50px 50px 65px;
  background-color: #fff;
    position: relative;
    z-index: 2;
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
}

.company-info-list li {
  display: flex;
  align-items: center;
  padding: 15px 0 10px 30px;
  font-size: 16px;

  background: url(../images/dashed_line.png) bottom 0 left 0 ;
  background-repeat: repeat-x;
  
}

.company-info-list li p {
  margin-bottom: 0;
}

.company-info-list .company-info-l {
  max-width: 150px;
  width: 100%;
  font-size: 22px;
  font-weight: bold;
  letter-spacing: 0.08em;
  background: linear-gradient(to bottom, #0168AD, #000000);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.company-info-list .company-info-r {
  width: calc(100% - 110px);
  padding-left: 20px;
  color: #343434;
  font-size: 18px;
  font-weight: 500;
}

.company-info-list .company-info-r.flex-02 {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
}

.company-info-list .map-btn a {
  min-width: fit-content;
  max-width: fit-content;
  margin-left: 20px;
  padding: 2px 30px 3px;
  padding-left: 35px;
  font-size: 16px;
  letter-spacing: 0.08em;
  border-radius: 30px;
}
.company-info-list .map-btn a span{
  position: relative;
}
.company-info-list .map-btn a span:before{
  position: absolute;
  content: "";
  left: -22px;
  width: 15px; height: 20px;
  top: 8px;
  background: url(../images/sec06-map.png)no-repeat;
}

.company-info-list + p{
  font-size: 14px;
  font-weight: 500;
  color: #fff;
}


/*==================== SEC07 ===================*/
.box_qa dl{
  border-bottom: dotted #333333 1px;
}
.box_qa dt{
  position: relative;
  padding: 25px 25px;
  border-radius: 0;
  cursor: pointer;
  transition-duration: 0.2s;
}
.box_qa dt:hover{
  opacity: 0.9;
}
.box_qa dt p{
  font-size: 20px;
  font-weight: bold;
}

.box_qa dt p .ques{
  color: #0168AD;
  margin-right: 5px;
}
.box_qa dd>p{ 
  display: flex;
  justify-content: flex-start;
}
.box_qa dd p .ans{
  color: #9B0D6F;
  font-size: 22px;
  font-weight: bold;
   margin-right: 5px;
}
.box_qa dd p .ans-txt{
  font-size: 18px;
  font-weight: 500;
  /*letter-spacing: 0.08em;*/
}
/* vertical */
.box_qa dl dt:before{
  display: block;
  position: absolute;
  content: "";
  right: calc(27px + 27px/2);
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 25px;
  background-color: #0168AD;
  transition: .25s all ease;
}
/* horizone */
.box_qa dl dt:after {
  display: block;
  position: absolute;
  content: "";
  right: 28px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 3px;
  background-color: #0168AD;
  transition: .25s all ease;
}

.accordion.open dt:before {
  transform: translateY(-50%) rotate(90deg);
  top: 50%;
  transition: .25s all ease;
  visibility: hidden;
}
.accordion.open dd{ max-height: 200px;}
.accordion dd{
  max-height: 0;
}

.box_qa dd{
  overflow: hidden;
  max-height: 0;
  transition-duration: 0.4s;
}

.box_qa dd p{ 
  font-size: 16px;
  padding: 0px 25px 25px 25px;
}


/*==================== SEC08 ===================*/
.block_contact {
  display: flex;
  flex-direction: row;
}

.block_contact .img {
  width: 40%;
  position: relative;
}

.block_contact .img img {
  position: absolute;
  right: -50px;
  top: 50%;
  transform: translateY(-50%);
  min-width: 550px;
}

.block_contact .contact_info {
  width: 60%;
  padding: 60px 50px 40px 100px;
}

.contact_info_list li {
  display: flex;
  padding-bottom: 15px;
  margin-bottom: 15px;
  color: #fff;
  border-bottom: 1px solid #fff;
}

.contact_info_list li:last-child {
  border-bottom: none;
}

.contact_info_list li p {
  font-size: 16px;color: #fff;
    font-weight: 400;
}

.contact_info_l {
  min-width: 20%;
  font-weight: bold !important;
}


h3.ttl.light {
    color: #fff
}
h3.ttl.light:after {
    display: none
}



/*==========================================================
                        F O O T E R
==========================================================*/
#footer {
  width: 100%;
  position: relative;
  z-index: 100;
  padding: 50px 0 0;
  overflow: hidden;
}

.f_content {
  margin-bottom: 50px !important;
}

.f_ttl {
  font-size: 24px;
  font-weight: bold;
  color: #001C59;
  margin-bottom: 0;
}

.f_tit_sec {
  color: #000;
  font-size: 20px;
  margin-bottom: 0;
}

.f_contact {
  font-size: 16px;
  margin-bottom: 30px;
}

.f_contact .phone,
.f_contact .mail {
  position: relative;
}

.f_contact .phone::before,
.f_contact .mail::before {
  position: absolute;
  content: "";
  left: -40px;
  top: 55%;
  width: 30px;
  height: 20px;
  transform: translateY(-50%);
}

.f_contact .phone::before {
  background: url('../images/ic_phone.png')no-repeat;
  background-size: contain;
  height: 25px;
}

.f_contact .mail::before {
  background: url('../images/ic_mail.png')no-repeat;
  background-size: contain;

}
.f_contact a{
  color: #000;
}

/* #footer .f01 {
  padding-bottom: 80px;
} */
#footer .container {
  width: 100%;
  min-width: 1024px;
  max-width: 1300px;
  margin: 0 auto;
  text-align: left;
}

#footer .f-bnr {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

#footer .f-bnr li {
  margin: 0 15px 30px;
  width: 360px;
}

#footer .f02 {
  background: #001C59;
}

#footer .f02 .container .f02-box {
  margin: 0 -150px;
  padding: 90px 100px;
  background: #001C59;
  color: #fff;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 0;
}

#footer .f02-r {
  width: 960px;
  display: flex;
  justify-content: space-between;
  letter-spacing: .05em;
}

#footer .f02-r dl dt {
  margin-bottom: 15px;
  font-size: 18px;
}

#footer .f-sub {
  margin-bottom: 10px;
}

#footer .f02-r dl li {
  margin: 0 0 6px 10px;
  font-size: 14px;
}

#footer .f02-r dl li:before {
  position: relative;
  content: '';
  display: inline-block;
  margin: 0 5px;
  background: url(../images/gnav_sub_w.png) no-repeat;
  background-size: 100% auto;
  width: 8px;
  height: 8px;
  top: -4px;
}

#footer .f-logo {
  background: #fff;
  text-align: center;
  padding: 20px;
}

#footer p.add {
  margin-top: 20px;
  font-size: 14px;
}

.copyright {
  padding: 15px;
  text-align: center;
  color: #fff;
  background: #ccc;
  width: 100%;
}

.copyright p {
  margin-bottom: 0;
  text-align: center;
  padding: 20px 0 24px;
  color: rgba(0, 28, 89, .5);
  font-size: 12px;
  letter-spacing: .15em;
}





/* BACK TO TOP */
.to_top {
  position: fixed;
  z-index: 100;
  width: 60px;
  height: 60px;
  bottom: 70px;
  right: 20px;
  cursor: pointer;
  transition-duration: 0.2s;
  opacity: 0;
  visibility: hidden
}

.to_top.show {
  transform: scale(1);
  opacity: 1;
  visibility: visible
}


address {
padding: 15px;
  text-align: center;
  color: #fff;
  background: #000000;
  width: 100%;
}


.fz80 {
    font-size: 80%;
}

.frame02:before {
    content: '';
  z-index: 5;
  position: absolute;
  top: 4px;
  left: -17px;
  bottom: 0px;
  width: 32px;
  height: 36px;
  background: #fff;
  border-left: 3px solid #071b55;
    border-bottom: 3px solid #071b55;
  transform: rotate(43deg);
}

.frame02:after{
  content: '';
  z-index: 5;
  position: absolute;
  top: 4px;
  right: -16px;
  bottom: 0px;
  width: 32px;
  height: 36px;
  background: #fff;
  border-top: 3px solid #071b55;
    border-right: 3px solid #071b55;
  transform: rotate(43deg);
}

.box01 {
    padding: 130px 0 100px;
    background:url("../images/box01_left.png") no-repeat left top,url("../images/box01_right.png") no-repeat right bottom,#e5f5fc;
}

.mb0 {
    margin-bottom: 0 !important;
}

.bg_white {
    background: #fff;
    padding: 40px;
}

.box01_h4 {
    width: max-content;
    font-weight: bold;
    font-size: 40px;
    margin: 30px auto 30px;
    position: relative;
}
.box01_h4:after{
    content: "";
    width: 100px;
    height: 3px;
    background: #000;
    position: absolute;
    top:50%;
    transform: translateY(-50%);
    left: -130px;
}

.box01_h4:before{
    content: "";
    width: 100px;
    height: 3px;
    background: #000;
    position: absolute;
    top:50%;
    transform: translateY(-50%);
    right: -130px;
}


.box01_h4 span:first-child {
 color: #0096df;   
}
.box01_h4 span:nth-child(2) {
    background: #9653c9;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.box01_h4 span:nth-child(3) {
    background: linear-gradient(45deg, #9653c9, #9653c9);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


.box01_ttl {
    background: #071b55;
    width: max-content;
    margin: 0 auto;
    color: #fff;
    padding: 10px 45px;
    font-size: 50px;
    margin-top: -80px;
    margin-bottom: 40px;
}

.box01_ttl:after{
    display: none;
}

.box01_desc {
    color: #fff;
    font-weight: bold;
    font-size: 23px;
    letter-spacing: 0.08em;
    padding: 2px 20px;
    background: #0096df;
    margin: 0 auto 15px;
    width: max-content;
}

.mb80 {
    margin-bottom: 80px;
}


/*bnr*/

.lp_bnr {
    background:url("../images/bg01.png") no-repeat left top,url("../images/bg02.png") no-repeat bottom right,linear-gradient(150deg, #0a1c59, #a55be7);
    padding: 40px;
    color: #fff;
    margin: 70px auto 30px;
    position: relative;
}

.lp_bnr_content {
text-align: center;
}

.lp_bnr_tit01 {
    font-size: 32px;
    font-weight: bold;
    width: 640px;
    margin: 0 auto 20px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    padding: 0 20px;
}

.lp_bnr_img {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.lp_bnr_img li {
    font-weight: bold;
}

.lp_bnr_img li:first-child {
    margin-right: 20px;
    line-height: 24px;
}

.lp_bnr_img li:last-child {
    font-size: 18px;
    text-align: left;
    line-height: 24px;
}

.lp_bnr_img li:last-child span {
    display: block;
    font-weight: bold;
    font-size: 30px;
    margin-top: 20px;
}

.lp_bnr_tit02 {
    font-size: 26px;
    font-weight: bold;
    margin: 0 auto 10px;
    background-color: rgba(29,19,87,.8);
    padding: 2px 25px;
    text-align: center;
    width: 800px;
}

.lp_bnr_txt {
    font-size: 17px;
    line-height: 1.5;
    font-weight: bold;
}

.lp_bnr_sup {
    position: absolute;
    top:-40px;
    left: 50px;
    margin-bottom: 0;
}

.lp_bnr.fix_bg02 {
 background: url("../images/bg01.png") no-repeat left top,url("../images/bg02.png") no-repeat bottom right,linear-gradient(150deg, #071e58, #0098dd);   
}

.mv_cap01 {
    font-weight: bold;
    font-size: 28px;
    line-height: 1.7em;
    letter-spacing: 0.1em;
    padding: 0 30px;
    background: #071b55;
    color: #fff;
    width:max-content;
    margin-bottom: 30px;
}

.mv_cap02 {
    padding-left: 110px;
    font-size: 32px;
    letter-spacing: 0.08em;
    position: relative;
    margin-bottom: 0;
}
.mv_cap02:after{
    content: "";
    height: 2px;
    width: 90px;
    background: #000;
    position: absolute;
    top:50%;
    transform: translateY(-50%);
    left: 0;
}

.mv_cap02 span:first-child{
    color: #0096df;
}

.mv_cap02 span:nth-child(2){
    background: #9653c9;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.mv_cap02 span:nth-child(3){
    background: linear-gradient(45deg, #9653c9, #9653c9);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


.sc05_type01 {
    position: relative;
    z-index: 2;
}
.sc05_time {
    display: flex;
    border: 2px solid #fff;
    width: 85%;
    height: 50px;
    margin-bottom: 10px;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    font-weight: bold;
}


.sc05_type01 dl {
    display: flex;
    box-shadow: rgb(0 0 0 / 20%) 0px 4px 10px;
}
.sc05_type01 dl.li50 dt,.sc05_type01 dl.li50 dd{
    width: 50%;
}

.sc05_type01 dl.li35 dt {
    width: 31%;
    text-align: center;
}
.sc05_type01 dl.li35 dd{
    width: 69%;
    flex-wrap: wrap;
    justify-content: flex-start;
}
.sc05_type01 dl dt {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    padding: 30px 30px 25px;
    background:url("../images/box_sc05-bg.png") no-repeat center, linear-gradient(to bottom, #9B0D6F, #2B4CA5);
    color: #fff;
	background-size: cover;
}
.sc05_type01 dl dt.light{
  padding: 32px;
}
.sc05_type01 dl dd {
    padding: 60px 40px;
    background: #fff;
    display: flex;
    align-items: flex-start;
}
.sc05_type01 dl dd p:not(.tit_udl){
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.08em;
}

.dec07 .sc05_type01 dl dd {
  align-items: flex-start;
}

.tit_udl {
    font-size: 24px;
    color: #001C59;
    line-height: 40px;
    letter-spacing: 0.08em;
    padding-bottom: 10px;
    font-weight: bold;
    border-bottom: 2px solid #001C59;
}

.sc05_img {
    margin-bottom: 0;
    margin-right: 20px;
}

.sc05_txt02 {
    font-size: 24px;
    font-weight: bold;
    line-height: 26px;
}
.sc05_txt01 {
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
	text-align: left;
}

.sc05_type01 dl.li35 dt .sc05_img {
    margin-right: 0;
    margin-bottom: 10px;
}

.sc05_type01 dl.li35 dt .sc05_img img{
	width: 170px;
}

.grey_box {
    background: #f2f2f2;
    padding: 15px;
    text-align: center;
    margin-top: 30px;
}

.tit_udl {
    margin-bottom: 20px;
}

.sc05_txt01 span {
    margin-bottom: 10px;
    display: block;
    font-size: 18px;
}

.sc05_time.pos_rel {
    position: relative !important;
    margin-bottom: 30px;
    border: none;
}
.sc05_time.pos_rel span {
    border: 2px solid #071b55;
}

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

.wrap_two .sc05_type01{
    width: 48%;
}

.wrap_two .sc05_type01 dl {
  flex-direction: column;
  height: 100%;
}

.wrap_two .sc05_type01 dl dt,.wrap_two .sc05_type01 dl dd {
    width: 100%
}

.wrap_two .sc05_type01 dl dd {
  flex-grow: 1;
    padding: 35px 50px 5px 50px;
}

.wrap_two .sc05_type01 dl dd .tit_udl {
    text-align: center;
}

.wrap_two .sc05_time {
    border: none;
    width: 200px;
    left: 50%;
    transform: translateX(-50%);
}
.wrap_two .sc05_time span{
    width: 100%;
    color: #fff;
}

.wrap_two .sc05_type01:first-child .sc05_time span{
    background: #071b55;
    border: 2px solid #071b55;
}

.wrap_two .sc05_type01:first-child .sc05_time span:first-child:before,.wrap_two .sc05_type01:first-child .sc05_time span:first-child:after {
    background: #071b55
}

.wrap_two .sc05_type01:nth-child(2) .sc05_time span{
    background: #9653c9;
    border: 2px solid #9653c9;
}

.wrap_two .sc05_type01:nth-child(2) .sc05_time span:first-child:before,.wrap_two .sc05_type01:nth-child(2) .sc05_time span:first-child:after {
    background: #9653c9;
    border-bottom: 2px solid #9653c9;
  border-left: 2px solid #9653c9;
    border-top: 2px solid #9653c9;
    border-right: 2px solid #9653c9;
}

.mh378 {
    padding-bottom: 28px;
}

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

.flx_style01 {
    width: 49%;
    display: flex;
}

.flx_style01 .sc05_img{
    width: 120px;
    margin-right: 10px;
}

.flx_style01 .sc05_txt {
    width: calc(100% - 130px);
}

.sc05_type01 .sc05_style01 {
    width: 100%
}


.blockX {
    display: flex;
    align-items: center;
    width: 100%;
    justify-content: center;
}

.ic_X {
    margin: 24px auto;
    height: 50px;
    width: 50px;
    position: relative;
}

.ic_X:before{
    content: "";
    position: absolute;
    top:0;
    left: 25px;
    width: 3px;
    height: 50px;
    transform: rotate(45deg);
    background: #fff;
}

.ic_X:after{
     content: "";
    position: absolute;
    top:0;
    left: 25px;
    width: 3px;
    height: 50px;
    transform: rotate(-45deg);
    background: #fff;
}

.sc05_type01 dl.dl_block {
    display: block
}

.sc05_type01 dl.dl_block dt .tit_udl02{
    color: #fff;
    font-size: 47px;
    position: relative;
    font-weight: bold;
}
.sc05_type01 dl.dl_block dt .tit_udl02:after{
    content: "";
    position: absolute;
    top:100%;
    left: 50%;
    transform: translateX(-50%);
    height: 2px;
    background: #fff;
    width: 50px;
}

.sc05_type01 dl.dl_block dd {
  padding: 50px;
}

.sc05_type01 dl.dl_block dd ul{
    display: flex
}
.sc05_type01 dl.dl_block dd ul li:first-child {
    width: 380px;
    margin-right: 50px;
}

.sc05_type01 dl.dl_block dd ul li:nth-child(2) {
    width: calc(100% - 430px);
}


.sc05_type01 dl.dl_block .tit_udl{
    font-size: 22px;
}

.fz60 {
    font-size: 60%;
}

.sc05_type01 dl.dl_block dt .tit_udl03{
    color: #fff;
    font-size: 32px;
    line-height: 45px;
    position: relative;
    font-weight: bold;
}

.fix_bg03 {
    background: url("../images/vec_0502.png") no-repeat right top,#e5f5fc;
}

.fix_timer_bg.sc05_time {
    position: absolute;
    top:-27px;
    left: -20px;
    display: flex;
    width: 590px;
    height: 54px;
    border: none;
    margin-bottom: 0;
    background: url("../images/vec_tit_bg.png") no-repeat top left;
    background-size: 100%;
    z-index: 2;
}
.fix_timer_bg.sc05_time span:after,.fix_timer_bg.sc05_time span:before{
    display: none
}

.fix_timer_bg.sc05_time span {
    background: none
}

.fix_timer_bg.sc05_time span:first-child{
    margin-right: 0;
    width: 410px;
}
.fix_timer_bg.sc05_time span:nth-child(2){
    width: 180px;
    padding: 0 15px 0 0;
}

.box_sp {
    display: none;
}
.box_pc {
    display: block;
}

.dec07 .staff{
  text-align: center;
}
.dec07 .sc05_img{
  margin: 35px 35px 20px 35px;
}
.dec07 .sc05_type01 dl dt{
  gap: 20px;
  padding: 30px 20px 42px;
}

.fix_timer_bg1.sc05_time {
  position: absolute;
  top:-27px;
  left: -20px;
  display: flex;
  width: 800px;
  height: 54px;
  border: none;
  margin-bottom: 0;
  background: url("../images/vec_tit_bg_01.png") no-repeat top left;
  background-size: 100%;
  z-index: 2;
}
.fix_timer_bg1.ans-txt span:after,.fix_timer_bg1.sc05_time span:before{
  display: none
}

.fix_timer_bg1.sc05_time span {
  background: none
}

.fix_timer_bg1.sc05_time span:first-child{
  margin-right: 0;
  width: 645px;
}
.fix_timer_bg1.sc05_time span:nth-child(2){
  width: 180px;
  padding: 0 15px 0 0;
}
.dec07 .sc05_time span:first-child:after {
  content: unset;
}
.dec07  .sc05_time span:nth-child(2):after {
  content: unset;
}
.dec07 .sc05_txt01 span {
  margin-bottom: 15px;
}
.dec07 .sc05_txt01 {
  margin-bottom: 15px;
}

@media screen and (max-width: 750px) {
    .box_sp {
        display: block;
    }
    .box_pc {
        display: none;
    }
}





/*==========================================================
                  2 0 2 5
==========================================================*/

/* ======================== fv ================================== */
#main{
	padding: 0;
}
header{
	background: none;
    border-bottom: none;
	position: absolute;
	transition: background-color 0.3s ease, color 0.3s ease; /* スムーズな変化 */
	padding: 0 30px 0 0;
}
header .inner{
	padding: 0;
}
.header-logo{
	padding-right: 10px;
}
#header .header-logo img { /* ロゴのスタイル（既存のロゴ画像に合わせたセレクタに調整） */
    transition: opacity 0.3s ease;
}
.menu_link{
	display: flex;
    align-items: center;
    gap: 30px;
}
.menu-link a{
	color: #FFF;
    font-weight: 500;
    font-size: 14px;
	transition: color 0.3s ease;
}

.cta-link a{
	color: #fff;
    border: 1px solid #fff;
    padding: 12px 35px;
    font-weight: bold;
    font-size: 18px;
	transition: color 0.3s ease;
	width: 220px;
    display: block;
	margin-left: 30px;
}

/* スクロール後にヘッダーに追加されるクラスのスタイル */
header.scrolled {
  background-color: #ffffff; /* 背景を白に */
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); /* 軽い影を追加して浮き上がらせる */
  position: fixed;
}

header.scrolled .menu-link a {
  color: #000000; /* 文字を黒に */
}

header.scrolled .cta-link a {
  background: #000;
}

/* ロゴの差し替え（既存のロゴのセレクタに合わせて調整してください） */
/* スクロール前のロゴは非表示にし、スクロール後のロゴを表示 */
header .header-logo .default-logo { /* デフォルトのロゴ画像 */
    display: block;
}
header .header-logo .scrolled-logo { /* スクロール後のロゴ画像 */
    display: none;
}

header.scrolled .header-logo .default-logo {
    display: none;
}
header.scrolled .header-logo .scrolled-logo {
    display: block;
}
header #menu_button .default-logo { /* デフォルトのロゴ画像 */
    display: block;
}
header #menu_button .scrolled-logo { /* スクロール後のロゴ画像 */
    display: none;
}

header.scrolled #menu_button .default-logo {
    display: none;
}
header.scrolled #menu_button .scrolled-logo {
    display: block;
}


#fv{
	position: relative;
    height: 100vh;
}
.fv-background-video {
  position: absolute; /* または absolute */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #000;/* 動画が親要素からはみ出さないように */
}

.fv-background-video video {
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* 中央揃え */
  object-fit: cover; /* 縦横比を維持しつつ、要素を完全に覆う */
}

.video-overlay {
  position: absolute; /* 親要素 .fv-background-video に対して相対的に配置 */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6); /* 黒色で透過率30% (0.3) */
}

.fv-text{
	color: #fff;
    position: absolute;
    top: 50%;
    left: 10%;
    transform: translateY(-50%);
}
.fv-text-01{
	color: #9D9D9D;
    font-family: "Montserrat", sans-serif;
    font-weight: bold;
    font-size: 30px;
    line-height: 1;
    margin-bottom: 11px;
	text-shadow: 3px 3px 6px #000000;
}
.fv-text-02{
	font-weight: 500;
    font-size: 30px;
    text-shadow: 3px 3px 6px #000000;
    line-height: 1;
    margin-bottom: 10px;
}
.fv-text-03{
	font-size: 70px;
    line-height: 1.3;
    font-weight: bold;
    margin-bottom: 15px;
	text-shadow: 3px 3px 6px #000000;
	overflow: visible;
}
.fv-text-04{
	font-size: 30px;
    border: 2px solid #fff;
    padding: 14px 20px 15px;
    line-height: 1;
    width: fit-content;
	text-shadow: 3px 3px 6px #000000;
}
.fv-small{
	font-size: 0.6em;
}

#fv .cta-btn{
	margin: 0;
    position: fixed;
    bottom: 0;
    right: 0;
	z-index: 999;
}
#fv .cta-btn a{
	width: 300px;
}
#fv .btn-wrapper{
	gap: 15px;
}
#fv .btn-wrapper p{
	font-size: 20px;
    line-height: 20px;
}

.to_top{
	bottom: 100px;
}

/* ======================== LOGO ================================== */
.inner{
	padding: 0 40px;
}
#logo{
	padding: 50px 0;
}
.logo-list{
	display: flex;
    align-items: center;
    justify-content: space-between;	
}


/* ======================== sec01 ================================== */
#sec01{
	background:url("../images/sec01-bg.jpg");
	background-size: cover;
    background-position: center;
	padding: 100px 0;
}
.ttl-en{
	font-family: "Montserrat", sans-serif;
    font-size: 3rem;
    font-weight: bold;
    font-style: italic;
	text-align: left;
	line-height: 1.1;
	margin-bottom: 50px;
}
.ttl-ja{
	display: block;
	font-size: 18px;
	color: #0168AD;
    font-weight: bold;
}
.white, .white .ttl-ja{
	color: #fff;
}
.text-l{
	font-size: 20px;
    font-weight: 500;
}


/* ======================== sec02 ================================== */
#sec02{
	background: #EBEBEB;
	padding: 100px 0;
}
.ttl-m{
	position: relative;
    padding-bottom: 30px;
    font-size: 30px;
    font-weight: bold;
    text-align: center;
}

.ttl-m:after{
    position: absolute;
    content: "";
    height: 5px;
    width: 100px;
    left: 50%;
    bottom: 8px;
    background-color: #0168AD;
    transform: translateX(-50%);
}
.sec02-col3-wrapper{
	display: flex;
    margin: 60px auto 50px;
    justify-content: space-evenly;
	gap: 50px;
}
.sec02-col3-item{
	display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
	width: calc((100% - 100px) / 3);
}
.sec02-ttl{
	font-weight: bold;
    font-size: 18px;
    padding-left: 50px;
    position: relative;
    line-height: 2rem;
}
.sec02-img{
	max-width: 220px;
}
.sec02-ttl:after{
    position: absolute;
    content: "";
    background: url(../images/sec02-ttl-img.png);
    height: 50px;
    width: 42px;
    left: 0px;
    top: -10px;
    background-size: contain;
    background-repeat: no-repeat;
}
.sec02-catch{
	text-align: center;
    font-size: 30px;
    font-weight: bold;
    color: #0168AD;
}
.big{
	color: #333333;
    font-size: 40px;
}
#sec02 .text-l{
	text-align: center;
    margin-top: 20px;
}



/* ======================== sec03 ================================== */
#sec03{
	background:url("../images/sec03-bg.jpg");
	background-size: cover;
    background-position: center;
	padding: 100px 0;
}
#sec03 .ttl-en{
	line-height: 1.2;
}
.sec03-wrapper{
	display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 50px;
}
.sec03-item{
	width: calc((100% - 100px) / 3);
    background: #fff;
    padding: 30px 17px;
    border-radius: 5px;
}
.sec03-ttl{
	font-size: 28px;
    text-align: center;
    padding-bottom: 7px;
    border-bottom: solid 3px #0168AD;
    margin-bottom: 15px;
    font-weight: bold;
	/* 背景にリニアグラデーションを定義 */
    background: linear-gradient(to bottom, #0168AD, #000000);
    /* 背景をテキストの形に合わせてクリップ */
    -webkit-background-clip: text;
    background-clip: text;
    /* テキストの色を透明にする (グラデーションが見えるように) */
    color: transparent;
    /* 古いブラウザ向け (WebKit系) */
    -webkit-text-fill-color: transparent; 
}
.sec03-list-wrapper{
	padding-left: 5px;
}
.sec03-list{
	font-size: 18px;
    font-weight: bold;
    position: relative;
    padding-left: 25px;
}
.sec03-list:after{
    position: absolute;
    content: "・";
	color: #0168AD;
    height: 36px;
    width: 30px;
    left: 0px;
    top: 0px;
}





/* ======================== sec04 ================================== */
#sec04{
	padding: 100px 0;
}
.sec04-col2-wrapper{
	margin: 60px auto 0;
    display: flex;
    gap: 50px;
    justify-content: center;
    align-items: stretch;
}
.sec04-col2-item{
	background: linear-gradient(to bottom, #0168AD, #000000);
    padding: 30px;
	text-align: center;
	display: flex;
    flex-direction: column;
    gap: 15px;
}
.sec04-col2-ttl{
	font-size: 28px;
    font-weight: bold;
	margin-top: 5px;
}
.text{
	font-size: 18px;
    line-height: 1.75rem;
    font-weight: 500;
}
.cta-btn {
  text-align: center;
  margin: 80px auto 100px;
}
.cta-btn a {
    display: inline-block;
    width: 450px;
    padding: 25px 0;
    border-radius: 2px;
    text-align: center;
    color: #fff !important;
    text-decoration: none;
    background: #000;
    position: relative;
    overflow: hidden;
}
.btn-wrapper{
	display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
}
.btn-wrapper p{
	font-size: 28px;
    line-height: 28px;
    font-weight: bold;
}
/* ボタンを凹ませる */
.cta-btn a:active {
  transform: translateY(4px); /*下に動く*/
  box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.2); /*影を小さく*/
  border-bottom: none;
}
/* ボタンをキラッとさせる */
.cta-btn a:before {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: -100%;
  background-image: linear-gradient(130deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.5) 80%, rgba(255, 255, 255, 100) 81%, rgba(255, 255, 255, 0) 100%);
  animation: shine 3s infinite; /* inifiniteによりずっと続ける */
}
@keyframes shine {
  33% {
    left: 100%;
  }
  100% {
    left: 100%;
  }
}
/* ボタンをドキドキさせる */
.dokidoki {
  animation: dokidoki 1.5s infinite;
}
@keyframes dokidoki {
  0% {
    transform: scale(1.05)
  }
  5% {
    transform: scale(1)
  }
  95% {
    transform: scale(1)
  }
  100% {
    -webkit-transform: scale(1.05)
  }
}

/* 767px(iPad)以下でボタンの幅を90%に */
@media (max-width: 767px) {
  .cta-btn a {
    width: 90%;
  }
}


/* ======================== sec05 ================================== */
#sec05{
	padding: 100px 0;
	background:url("../images/sec05-bg.jpg");
	background-size: cover;
    background-position: center top;
}
.box_sc05{
	margin-top: 60px;
}
.time-ttl{
	padding-right: 14px;
    border-right: 2px solid #fff;
    line-height: 20px;
    font-weight: 500;
}
.time{
	padding-left: 13px;
    font-weight: 500;
}
.sc05_type02 dl dt{
	background: url("../images/box_sc05-bg.png") no-repeat center #001C59;
	background-size: cover;
}


/* ======================== sec06 ================================== */
#sec06{
	padding: 100px 0;
}

#sec06 .text{
	text-align: center;
    margin: 30px auto;
}
.sec06-wrapper{
	box-shadow: rgb(0 0 0 / 20%) 0px 4px 10px;
	margin-top: 60px;
}
.sec06-time{
	background: url(../images/box_sc06-bg.png) no-repeat center #001C59;
    background-size: cover;
    color: #fff;
    padding: 30px;
}
.sec06-time .sc05_time{
	max-width: 600px;
    margin: 0 auto;
	font-size: 24px;
    height: 70px;
}
.sec06-time .time-ttl, .sec06-time .time{
	font-size: 24px;
	line-height: 24px;
}
.sec06-conts-wrapper{
	padding: 50px;
	display: flex;
    flex-direction: column;
    gap: 30px;
	background: #fff;
}
.sec06-item{
	display: flex;
    gap: 25px;
	border-bottom: 2px solid #0168AD;
    padding-bottom: 30px;
}
.sec06-item:last-child{
	border-bottom: none;
}
.sec06-item-time{
	font-size: 28px;
    font-weight: bold;
	width: 220px;
	color: #0168AD;
}
.sec06-item-detail{
	width: calc(100% - 245px);
}
.sec06-item-conts{
	display: flex;
    gap: 20px;
    align-items: center;
}
.sec06-item-conts-img{
	width: 160px;
}
.sec06-item-conts-text{
	width: calc(100% - 160px);
}
.sc05_txt03{
	font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.08em;
  margin-top: 10px;
}
.sc05_txt03 li{
	list-style-type: disc;
	font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.08em;
  margin-top: 5px;
  margin-left: 20px;
}
.sc05_txt03 a{
	color: revert;
	text-decoration: underline;
}
.sec06-item-detail .tit_udl{
	margin-bottom: 10px;
	padding-bottom: 0;
	border-bottom: none;
}
.sec06-item-conts-text .sc05_txt01 span{
	display: inline;
	padding-right: 20px;
}
.mt60{
	margin-top: 60px;
}
.sec06-typ2-wrapper{
	display: flex;
    gap: 40px;
	align-items: center;
}
.sec06-typ2-item-img{
	width: 35%;
}
.sec06-typ2-item-text{
	width: 65%;
}
.gallery-sub-ttl{
	display: block;
  font-size: 20px;
  color: #0168AD;
  line-height: 40px;
  font-weight: 600;
  margin-bottom: 10px;
  text-align: center;
}

/* ======================== sec07 ================================== */
#sec07{
	padding: 100px 0;
	background:url("../images/sec07-bg.jpg");
	background-size: cover;
    background-position: center top;
}
.sec07-catch{
	font-weight: bold;
    background: linear-gradient(to bottom, #0168AD, #000000);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
	font-size: 28px;
    text-align: center;
    margin: 40px auto 10px;
	line-height: 1.5;
}

#sec07 .sec06-wrapper{
	margin-top: 20px;
}


/* ======================== sec08 ================================== */
#sec08{
	padding: 100px 0 0;
}


/* ======================== sec09 ================================== */
#sec09{
	padding: 100px 0;
	background:url("../images/sec03-bg.jpg");
	background-size: cover;
    background-position: center top;
}
.map-link{
	color: #005588;
}
.small{
	font-size: 15px;
}
.address-text{
	display: flex;
    align-items: center;
}


/* ======================== sec10 ================================== */
#sec10{
	padding: 100px 0;
}

#sec10 .ttl-en{
	line-height: 1.2;
}


/* ======================== sec11 ================================== */
#sec11{
	padding: 100px 0;
	background:url("../images/sec01-bg.jpg");
	background-size: cover;
    background-position: center top;
}


.sp{
	display: none;
}


@media screen and (max-width: 750px) {
	header .inner{
		padding: 0 !important;
	}
	.header-logo{
		width: 236px;
	}
	.fv-background-video video{
		min-width: 100%;
		left: 50%;
	}
	.fv-text{
		left: 50%;
        transform: translate(-50%, -50%);
		padding: 0 20px;
        width: 100%;
	}
	.fv-text-01{
		font-size: 24px;
	}
	.fv-text-02{
		line-height: 1.4;
		font-size: 20px;
	}
	.fv-text-03{
		font-size: 40px;
	}
	.fv-text-04{
		font-size: 22px;
		padding: 10px 15px 11px;
		line-height: 1.4;
	}
	#head_submenu .head{
		padding-top: 10px!important;
	}
	#head_submenu .head .sp-logo{
		padding-bottom: 7px;
	}
	header .sp-logo img{
		height: auto;
        width: 170px;
	}
	header .menu{
		padding-bottom: 60px;
		background: url(../images/box_sc05-bg.png) no-repeat center #001C59;
        background-size: cover;
	}
	
	.inner{
		padding: 0 20px!important;
	}
	.logo-list{
		flex-wrap: wrap;
		gap: 10px;
	}
	.logo-list-item{
		width: calc((100% - 20px) / 2);
		text-align: center;
	}
	/* ======================== sec1 ================================== */
	#sec01{
		padding: 50px 0!important;
	}
	.ttl-en{
		font-size: 2.5rem;
		margin-bottom: 35px;
	}
	.text-l{
		font-size: 16px;
		text-align: justify;
	}
	/* ======================== sec2 ================================== */
	#sec02{
		padding: 50px 0!important;
	}
	.ttl-m{
		font-size: 25px;
	}
	.sp{
		display: block;
	}
	.sec02-col3-wrapper{
		flex-direction: column;
		margin: 40px auto;
        gap: 45px;
        width: 330px;
	}
	.sec02-col3-item{
		gap: 15px;
		width: 100%;
	}
	.sec02-ttl{
		padding-left: 35px;
	}
	.sec02-ttl:after{
		width: 30px;
        left: 0px;
        top: 0px;
	}
	.sec02-catch{
		font-size: 22px;
	}
	.big{
		font-size: 28px;
	}
	#sec02 .text-l{
		text-align: justify;
	}
	/* ======================== sec3 ================================== */
	#sec03{
		padding: 50px 0!important;
	}
	.sec03-wrapper{
		flex-direction: column;
		gap: 30px;
	}
	.sec03-item{
		width: 100%;
	}
	.sec03-ttl{
		font-size: 24px !important;
	}
	/* ======================== sec4 ================================== */
	#sec04{
		padding: 50px 0 20px!important;
	}
	.sec04-col2-wrapper{
		flex-direction: column;
		gap: 30px;
		margin: 40px auto 0;
	}
	.sec04-col2-ttl{
		font-size: 20px;
	}
	.text{
		font-size: 16px;
	}
	.cta-btn{
		margin: 60px auto 80px;
	}
	.cta-btn a{
		width: 100%;
	}
	.btn-wrapper p{
		font-size: 22px;
        line-height: 22px;
	}
	.medal-group li{
		width: 280px!important;
		padding: 9px 0 0!important;
	}
	.medal-group .medal-item{
		margin: 0 auto 30px!important;
	}
	/* ======================== sec5 ================================== */
	#sec05{
		padding: 50px 0!important;
		margin-top: 0!important;
        background-position-y: 0!important;
		background-size: 100% auto!important;
	}
	.box_sc05{
		margin-top: 40px;
	}
	.sc05_type01 dl dt{
		padding: 20px!important;
		background-size: 100%!important;
	}
	.sc05_time{
		transform: unset!important;
        width: 100%!important;
        border: 2px solid #fff!important;
        background: 0!important;
        background-size: 0!important;
		margin: 10px 20px 15px!important;
	}
	.sc05_type01 dl.li35 dt .sc05_img{
		margin-bottom: 15px!important;
	}
	.sc05_img{
		width: 200px!important;
	}
	.sc05_txt{
		margin-bottom: 0!important;
        min-width: unset!important;
	}
	.sc05_txt01{
		font-size: 14px!important;
		margin-bottom: 10px!important;
	}
	.sc05_txt01 span{
		font-size: 17px;
	}
	.sc05_txt02{
		font-size: 18px!important;
	}
	.tit_udl{
		font-size: 18px !important;
        margin-bottom: 10px !important;
        line-height: 28px !important;
        text-align: left !important;
	}
	/* ======================== sec6 ================================== */
	#sec06{
		padding: 50px 0!important;
		background: unset!important;
        background-size: unset!important;
	}
	#sec06 .text{
		text-align: justify;
	}
	.sec06-wrapper{
		margin-top: 40px;
	}
	.sec06-time{
		padding: 20px 30px;
	}
	.sec06-time .time-ttl, .sec06-time .time{
		font-size: 20px;
        line-height: 20px;
	}
	.sec06-time .sc05_time{
		margin: 0 !important;
        flex-direction: column!important;
        gap: 9px!important;
        padding: 10px 0!important;
        height: auto!important;
	}
	.sec06-time .time-ttl{
		border-right: none;
        padding-right: 0;
        border-bottom: 2px solid #fff;
        padding: 0px 10px 10px;
        text-align: center;
        line-height: 1.1;
	}
	.sec06-time .time{
		padding-left: 0px;
	}
	.sec06-conts-wrapper{
		padding: 20px;
	}
	.sec06-item{
		flex-direction: column;
		gap: 5px;
	}
	.sec06-item-time{
		font-size: 20px;
	}
	.sec06-item-detail{
		width: 100%;
	}
	.sec06-item-detail .tit_udl{
		text-align: left;
	}
	.sec06-item-conts{
		flex-direction: column;
		gap: 10px;
	}
	.sec06-item-conts-text{
		width: 100%;
	}
	.sec06-item-conts-text .sc05_txt01 span{
		display: block;
		padding-right: 0;
	}
	.sc05_txt03{
		font-size: 14px;
        line-height: 2em;
        letter-spacing: 0;
	}
	.sec06-typ2-wrapper{
		flex-direction: column;
		gap: 13px;
	}
	.sec06-typ2-item-img, .sec06-typ2-item-text{
		width: 100%;
	}
	.gallery-sub-ttl{
		font-size: 16px;
        line-height: 28px;
	}
	/* ======================== sec7 ================================== */
	#sec07{
		padding: 50px 0!important;
	}
	.sec07-catch{
		font-size: 22px;
		margin: 20px auto 10px;
	}
	/* ======================== sec8 ================================== */
	#sec08{
		padding: 50px 0 0!important;
	}
	/* ======================== sec9 ================================== */
	#sec09{
		padding: 50px 0!important;
	}
	.company-info-list{
		margin-top: 0px!important;
		padding: 10px 20px 20px!important;
	}
	.company-info-list li{
		padding: 10px 0 10px 0px!important;
	}
	.address-text{
		align-items: flex-start!important;
        flex-direction: column!important;
	}
	.small{
		font-size: 14px;
	}
	/* ======================== sec10 ================================== */
	#sec10{
		padding: 50px 0!important;
	}
	.box_qa dt{
		padding: 15px 35px 15px 15px!important;
	}
	/* ======================== sec11 ================================== */
	#sec11{
		padding: 50px 0 10px!important;
	}
	.block_contact .contact_info{
		padding: 120px 0vw 3vw!important;
	}
	/* ======================== to top ================================== */
	.to_top{
		bottom: 65px!important;
	}
	/* ======================== footer bar ================================== */
	.sp_bnn_fixed li{
		width: 100%!important;
	}
	.sp_bnn_fixed li a{
		padding: 14px 15px 15px!important;
	}
	.sp_bnn_fixed li a span{
		padding: 0px 20px 4px!important;
	}
	.sp_bnn_fixed li:first-child a{
		background: linear-gradient(to bottom, #9B0D6F, #2B4CA5)!important;
	}
	/* ======================== footer ================================== */
	address{
		padding: 10px 15px 65px!important;
	}
}












@supports (-ms-ime-align: auto) {}

/* FIREFOX */

@-moz-document url-prefix() {}

/* Safari 10.1+ (which is the latest version of Safari at this time) */
@media not all and (min-resolution: 0.001dpcm) {}