@charset "utf-8";

strong, span, p, em, b, a, small, br, li
{
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    font-family: inherit;
    line-height: inherit;
}
ul
{
    list-style: none;
}
/*アイキャッチ*/
h1
{
   font-weight: normal;
   margin: 10px;
}
#EYECATCH_TXT
{
   border: 2px solid #d1161a;
   display: inline-block;
   font-weight: 600;
   letter-spacing: .06em;
   padding: 10px 30px;
   border-radius: 50px;
}
.boxed-chars
{
   display:inline-block;
   vertical-align:middle;
   margin:0 4px;
}
.boxed-chars span {
  display:inline-block;
  background:#d1161a;    /* 指定の背景色 */
  color:#ffffff;         /* 文字色は白 */
  padding:5px 7px;       /* 上下・左右の余白 */
  margin-right:3px;      /* 文字間の幅 */
  border-radius:3px;     /* 角丸：好みに合わせて調整 */
  font-weight:700;
  line-height:1;
  text-align:center;
  box-shadow:0 2px 6px rgba(0,0,0,0.12); /* 任意の陰影 */
}
#LOGO_WRAP img {
    height: 40px;
}
#EYECATCH_LIGHT img
{
   width: 500px;
}
.cta_button {
   background: linear-gradient(90deg, #E67E22, #ff9945);
   background-size: 200% 100%; /* ← アニメーション用 */
   color: #fff;
   box-shadow: 0 5px 10px rgba(230,126,34,0.14);
   padding: 14px 20px;
   border-radius: 12px;
   box-sizing: border-box;
   font-weight: 700;
   border: none;
   cursor: pointer;
   transition: 0.3s ease-in-out;
   margin-top: 10px;
}

/* ホバー時 */
.cta_button:hover {
   background: #fff;       /* 白背景 */
   color: #E67E22;               /* 文字色オレンジ */
   border: 1px solid #E67E22;    /* 枠線オレンジ */
}
/*sec01*/
.sec01_list_wrap
{
   padding-left: 10px;
   padding-right: 10px;
}
.sec01_list
{
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 1.5rem;
}
.sec01_list li
{
   display: table;
   background-color: #fff;
   border-radius: 10px;
   position: relative;
   margin-top: 10px;
   font-size: 18px;
}
.sec01_list li span
{
   padding: 2rem 2rem 2rem 7rem;
   display: table-cell;
   font-weight: bold;
   text-align: left;
   width: 100%;
   height: 100%;
   vertical-align: middle;
   position: relative;
}
.sec01_list li span::before {
   content: "";
   width: 2.5rem;
   height: 2.3rem;
   margin-right: 0.8rem;
   transform: translateY(-50%);
   position: absolute;
   left: 3rem;
   top: 50%;
   background: url(../img/sec01_list_before.png);
   background-size: contain;
   background-repeat: no-repeat;
}
.sec01_list_bottom
{
   position: relative;
   background: #333;
}
.sec01_list_bottom:before {
   content: "";
   position: absolute;
   top: -2rem;
   left: 50%;
   width: 4rem;
   height: 4rem;
   background: url(../img/sec01_bottom.png) #fff no-repeat;
   transform: translateX(-50%);
   background-size: cover;
   border-radius: 3rem;
}
.svg_max180
{
   max-width: 180px;
   width: 100%;
   margin-right: 20px;
}
/*sec02*/
.hm-copy .hm-sub
{
   color:#d1161a;
   font-weight:800;
}
.hm-p
{
   color:#16374a;
   line-height:1.75;
   margin: 12px 0;
}
.hm-em
{
   background:#fff5d9;
   padding:2px 6px;
   border-radius:6px;
   color:#5a3d00;
   font-weight:700;
}
.hm-steps
{
   display:flex;
   flex-direction:column;
   gap:12px;
   margin-top:10px;
}
.step
{
   background:#fff;
   border-radius:10px;
   padding:12px;
   border:1px solid rgba(2,43,91,0.06);
   display: flex;
   justify-content: space-between;
   gap: 10px;
   border-left: 0.5rem solid #d74f41;
}
.step img
{
   max-width: 200px;
}
.step-head
{
   font-weight:800;
   color:#d74f41;
   margin-bottom:15px;
   display:flex;
   gap:10px;
   align-items:center;
}
.step-num
{
   display:inline-block;
   background:#d74f41;
   color:#fff;
   padding:4px 8px;
   border-radius:5px;
   font-weight:800;
   font-size:16px;
}
/*sec03*/
#SEC03
{
   border-top: 1px solid #ddd;
   margin: auto 5%;
}
.warning-item {
  background: #ffffff;
  border: 1px solid #ffdddd;
  border-radius: 8px;
  padding: 20px;
  width: calc(33.33% - 14px);
  box-sizing: border-box;
}

.warning-item strong  {
  display: block;
  color: #C00000;
}

.warning-item p {
  margin: 0;
  line-height: 1.7;
  font-size: 14px;
}
/*sec04*/
#SEC04 h3
{
   border-bottom: solid 3px #eaedf1;
   position: relative;
   padding: 0 0 .5em;
}
#SEC04 h3:after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 3px #d1161a;
  bottom: -3px;
  width: 20%;
}
#SEC04 h4
{
   letter-spacing: .04em;
}
.program_item div h4 .wark
{
   background-color: #FEF8F6;
   color: #d1161a;
}
.program_item div h4 span
{
   background-color: #d1161a;
   padding: 5px 10px;
   color: #fff;
   margin-right: 10px;
}
.program_item
{
   padding: 0 2em;
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 20px;
}
/*sec05*/
#SEC05
{
   background-image: url(../img/sec05_bg.png);
}
#SEC05 h2
{
   max-width: 550px;
   margin: auto;
   padding-left: 10px;
   padding-right: 10px;
}
.benefit_wrap
{
   display: grid;
   grid-template-columns: 500px 500px;
   justify-content: center;
   gap: 20px;
   padding-left: 10px;
   padding-right: 10px;
}
.benefit_item
{
   border: 4px solid #eee;
   border-radius: 8px;
   position: relative;
   padding: 30px;
   max-width: 450px;
}
.benefit_item .label
{
   background-color: #D1161A;
   color: #fff;
   padding: 2px 20px;
   border-bottom-right-radius: 8px;
   position: absolute;
   top: 0;
   left: 0;
   font-size: 1.2em;
   font-weight: 500;
   letter-spacing: .06em;
}
/*sec06*/
/*sec07*/
#SEC07 {
    background-color: #FEF8F6;
    padding: 60px 0;
}
/* 見出し（左ボーダー） */
.heading_border {
    border-bottom: 2px solid #d1161a;
}

/* メッセージ（中央寄せ） */
.message_block {
    text-align: center;
}

/* 強調カラー */
.text_gold {
    color: #E67E22;
    font-weight: bold;
}

/* リスト内の行間調整 */
.list_line_spacing li {
    margin-bottom: 12px;
}
#SEC07 table
{
   border-collapse: collapse;
   width: 100%;
   background-color: #fff;
}
#SEC07 table td
{
   border: 1px solid #ddd;
   padding: .5em;
   border-left: 0 none;
   border-right: 0 none;
}
#SEC07 table:nth-of-type(1) td
{
   width: 80px;
   padding-left: 2rem;
}
#SEC07 strong
{
   font-weight: bold;
}
.p-eventOnline__courseDayList {
    display: flex;
    flex-flow: wrap;
    gap: 5px;
    padding: 0;
    margin: 0;
    font-size: 1rem;
    list-style: none;
}
.p-eventOnline__courseDayItem {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 10px;
    margin: 1px 0 0;
    overflow: hidden;
    font-size: 1rem;
    font-weight: normal;
    line-height: 1;
    background: #f4f4f4;
    border-radius: 5px;
}
.p-eventOnline__courseDayItem span {
    font-size: 1.125rem;
}
.p-eventOnline__courseDayItem i {
    position: relative;
    z-index: 1;
    margin: 0 8px;
    font-size: 12px;
    font-style: normal;
    line-height: 1;
    color: #fff;
}
.js-eventOnlineCourse-01 .p-eventOnline__courseDayItem i {
    background: #d74f41;
}
.p-eventOnline__courseDayItem i::before {
    position: absolute;
    top: calc(50% + 1px);
    left: 50%;
    z-index: -1;
    width: 19px;
    height: 19px;
    content: "";
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: #d74f41;
}
.p-eventOnline__courseDayItem {
   width: auto;
}
.p-eventOnline__courseDayItem span small {
   font-size: .875rem;
}
#FORM
{
   background-image: url(../img/form_bg.png);
   background-repeat: no-repeat;
   background-size: cover;
}
.regist_form
{
   background-color: #fff;
}


/* ----------------------------------------------------------------------------- */
/* 1200px以下 */
/* ----------------------------------------------------------------------------- */
@media screen and (max-width : 1200px)
{
    .width_minus_40
    {
       width: calc(100% - 40px);
    }
    .margin_bottom150
    {
       margin-bottom: 50px;
    }
    .margin_top100
    {
        margin-top: 50px;
    }
    .font_size_100
    {
       font-size: 5rem;
    }
    .font_size_80
    {
       font-size: 4rem;
    }
    .font_size_70
    {
       font-size: 3.6rem;
    }
    .font_size_60
    {
       font-size: 3rem;
    }
    .font_size_50
    {
       font-size: 2.4rem;
    }
    .font_size_32
    {
        font-size: 1.5rem;
     }
    .font_size_36
    {
        font-size: 1.6rem;
     }
     .font_size_40
    {
        font-size: 1.8rem;
     }
    .font_size_24
    {
        font-size : 1.125rem;
     }
    h3.font_size_24
    {
        font-size: 1.3rem;
     }
     .font_size_21
    {
        font-size : 1rem;
     }
     .font_size_18
    {
        font-size : 0.95rem;
    }
}

/* ----------------------------------------------------------------------------- */
/* 768px以下 */
/* ----------------------------------------------------------------------------- */
@media screen and (max-width : 768px)
{
    .font_size_100
    {
       font-size: 5rem;
    }
    .font_size_80
    {
       font-size: 3.1rem;
    }
    .font_size_70
    {
       font-size: 2.6rem;
    }
    .font_size_60
    {
       font-size: 2.3rem;
    }
    .font_size_50
    {
       font-size: 2rem;
    }
     .font_size_40
    {
        font-size: 1.7rem;
     }
    .font_size_14
    {
       font-size: 0.85rem;
    }
    .font_size_12
    {
       font-size: 0.65rem;
    }
    .font_size_28
    {
       font-size: 1.3rem;
    }
    .line_height_1rem
    {
       line-height: 0.8rem;
   }
    .width_minus_40
    {
        width: calc(100% - 20px);
    }
    .margin_bottom100
    {
        margin-bottom: 15vw;
    }
    .margin_top100
    {
        margin-top: 15vw;
    }
    .margin_tb100
    {
       margin-top: 15vw;
       margin-bottom: 15vw;
    }
    .padding_tb75
    {
      padding-top: 9.7vw;
      padding-bottom: 9.7vw;
    }
    .margin_tb75
    {
        margin-top: 9.7vw;
        margin-bottom: 9.7vw;
    }
    .margin_top50
    {
       margin-top: 8vw;
    }
    .margin_bottom50
    {
       margin-bottom: 8vw;
    }
    .margin_tb50
    {
       margin-top: 7vw;
       margin-bottom: 7vw;
    }
    .padding_tb50
    {
       padding-top: 7vw;
       padding-bottom: 7vw;
    }
   .padding_bottom50 {
      padding-bottom: 8vw;
   }
    .padding_tb100
    {
       padding-top: 15vw;
       padding-bottom: 15vw;
    }
    .eyecatch_font_size_21
    {
       font-size: 1.2rem;
    }
    .flex_columnreverse
    {
        flex-direction: column-reverse;
    }
    .fixed_cta
    {
       width: 90px;
       right: 10px;
    }
    .display_flex_768column
    {
      flex-direction: column;
    }
    .br_768px
    {
       display: block;
    }
    .gap_50
    {
        gap: 8vw;
    }
    .step
    {
      flex-direction: column-reverse;
      border-left: unset;
      border-top: 0.6rem solid #d74f41;
      align-items: center;
    }
   .display_sp
   {
      display: block;
   }
   .display_pc
   {
      display: none;
   }
   #SEC03 .display_sp
   {
      max-width: 450px;
      margin: auto;
   }
   .program_item, .benefit_wrap, .sec01_list
   {
      grid-template-columns: 1fr;
      gap: 20px;
   }
   #EYECATCH_LIGHT img
   {
      width: 100%;
   }
   #EYECATCH>div>.justify_content_spacearound
   {
      align-items: center;
   }
   .benefit_wrap
   {
      justify-items: center;
   }
   .sec01_list li
   {
      font-size: 1rem;
      margin-top: 0px;
   }
   .sec01_list li span::before
   {
      width: 2rem;
      height: 2rem;
      left: 2rem;
   }
   .svg_max180
   {
      display: none;
   }
   .warning-item {
    width: 100%;
  }
}

/* ----------------------------------------------------------------------------- */
/* 450px以下 */
/* ----------------------------------------------------------------------------- */
@media screen and (max-width : 450px)
{
    *
    {
        font-size: 13px;
    }
    .font_size_80
    {
       font-size: 2rem;
    }
    .font_size_70
    {
       font-size: 1.85rem;
    }
    .font_size_60
    {
       font-size: 1.7rem;
    }
    .font_size_36
    {
        font-size: 1.4rem;
    }
    .font_size_28
    {
        font-size: 1.1rem;
    }
    .sec01_list li span {
    padding: 1rem 1rem 1rem 5rem;
    }
    .program_item 
    {
      padding: 0 1rem;
    }
   #SEC07 table:nth-of-type(1) td
   {
      width: 50px;
   }
   .boxed-chars
   {
      margin: 0 2px;
   }
   .boxed-chars span
   {
      padding: 4px 5px;
    margin-right: 2px;
   }
}