@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;700&family=Overpass:wght@700&display=swap");
:root {
  --calc_min1440:calc(1/1920*100vw);
  --calc_min1024:calc(1/1440*100vw);
  --calc_min768:calc(1/1024*100vw);
  --calc_max767:calc(1/767*100vw);
  --size10: calc(10 / 16 * 1rem);
  --size12: calc(12 / 16 * 1rem);
  --size14: calc(14 / 16 * 1rem);
  --size18: calc(18 / 16 * 1rem);
  --size20: calc(20 / 16 * 1rem);
  --size24: calc(24 / 16 * 1rem);
  --size30: calc(30 / 16 * 1rem);
  --size32: calc(32 / 16 * 1rem);
  --size40: calc(40 / 16 * 1rem);
  --size48: calc(48 / 16 * 1rem);
  --size50: calc(50 / 16 * 1rem);
  --size60: calc(60 / 16 * 1rem);
  --size70: calc(70 / 16 * 1rem);
  --size80: calc(80 / 16 * 1rem);
  --size90: calc(90 / 16 * 1rem);
  --size100: calc(100 / 16 * 1rem); }

html {
  height: 100%;
  font-size: 100%;
  scroll-behavior: smooth; }

body {
  font-size: 1rem;
  font-family: YakuHanJP, "Noto Sans JP", YuGothic, "游ゴシック", sans-serif;
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  color: #000000;
  font-weight: 400;
  line-height: 1.45;
  position: relative;
  overflow-x: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }
  @media (max-width: 1440px) {
    body {
      font-size: clamp(1rem, calc(0.955rem + 0.23vw), 1.125rem); } }
  @media (max-width: 767px) {
    body {
      font-size: clamp(0.85rem, 4.17vw, 1.2rem); } }

@media (min-width: 1440px) {
  .min1440cut {
    display: none !important; } }
@media (min-width: 1025px) {
  .min1025cut {
    display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) {
  .max1024cut {
    display: none !important; } }
@media (min-width: 768px) {
  .sp, .pccut {
    display: none !important; } }
@media (max-width: 767px) {
  .pc, .spcut, .max1024cut {
    display: none !important; } }
@media (min-width: 501px) {
  .xs {
    display: none !important; } }
@media (max-width: 500px) {
  .xs-cut {
    display: none !important; } }
img {
  width: 100%;
  max-width: 100%; }

section {
  position: relative; }

.en {
  font-family: "Overpass", sans-serif !important; }

.bold {
  font-weight: 700 !important; }

.tac {
  text-align: center; }

.tar {
  text-align: right; }

.por {
  position: relative; }

.poa {
  position: absolute; }

.bg_white {
  background-color: #FFFFFF; }

.bg_bluegrad {
  background: #FFFFFF; }

.flexWrap {
  display: flex; }

.flexWrap.rev {
  flex-flow: row-reverse; }

.txt_blue {
  color: #0A2C87 !important; }

/* -------------------------------------------------------------
link
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
    /* TEL無効 */ } }
/*--------------------
 btn
---------------------*/
.link_more {
  color: #009DDC;
  display: flex;
  align-items: flex-start;
  gap: 10px; }
  .link_more span {
    line-height: 0.7; }

.link_more::after {
  content: "";
  width: var(--size32);
  height: auto;
  aspect-ratio: 65/14;
  background: url(../img/arw_right.svg) no-repeat;
  background-size: contain;
  transform: translateX(0);
  transition: .3s ease-in; }

.link_more:hover:after {
  transform: translateX(10px);
  transition: .3s ease-out; }

/*--------------------
 header
---------------------*/
/**ハンバーガーメニュー**/
#header {
  position: fixed;
  width: 100%;
  height: 100px;
  top: 0;
  left: 0;
  opacity: 1;
  z-index: 100;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 4%;
  background-color: #FFFFFF; }
  @media (min-width: 1025px) {
    #header {
      height: 100%;
      width: 300px;
      flex-flow: column;
      justify-content: space-between;
      align-items: center;
      padding: var(--size40) 0; } }
  #header .logo {
    width: 80px;
    height: auto;
    transition: .5s; }
    @media (min-width: 1025px) {
      #header .logo {
        width: 60%;
        height: auto;
        margin: 0 auto var(--size50); } }
    @media (min-width: 1441px) {
      #header .logo {
        width: 200px;
        height: 160px;
        margin: 0 auto var(--size80); } }
    #header .logo a {
      display: block; }
    #header .logo img {
      width: 100%;
      height: auto;
      display: block; }
  #header .gnav_pc {
    display: flex;
    flex-flow: column;
    justify-content: flex-start;
    align-items: center;
    flex-grow: 1; }
    #header .gnav_pc > ul {
      flex-grow: 1; }
      #header .gnav_pc > ul > li {
        font-size: var(--size20);
        line-height: 1;
        margin-bottom: var(--size30); }
        #header .gnav_pc > ul > li a {
          text-decoration: none; }
        #header .gnav_pc > ul > li a:hover, #header .gnav_pc > ul > li a.current {
          color: #009DDC; }
    #header .gnav_pc .subnav {
      margin-top: 1em; }
      #header .gnav_pc .subnav li {
        font-size: var(--size18);
        margin-bottom: var(--size20); }
        #header .gnav_pc .subnav li a {
          color: #959595; }
        #header .gnav_pc .subnav li::before {
          content: "-";
          margin-right: 0.5em; }
      #header .gnav_pc .subnav li:last-child {
        margin-bottom: 0; }
    #header .gnav_pc .box_tel_header {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: var(--size40); }
      #header .gnav_pc .box_tel_header .ico_tel {
        width: var(--size48);
        height: var(--size48); }
      #header .gnav_pc .box_tel_header .txt_tel p {
        font-size: var(--size14);
        line-height: 1;
        padding-bottom: 5px; }
      #header .gnav_pc .box_tel_header .txt_tel img {
        width: 100%; }
    #header .gnav_pc .box_mail_header {
      width: 100%; }
      #header .gnav_pc .box_mail_header a.btn_mail {
        width: 100%;
        display: block;
        height: var(--size60);
        background-color: #009DDC;
        color: #FFF;
        font-weight: 600;
        font-size: var(--size20);
        line-height: var(--size60);
        text-align: center;
        text-decoration: none;
        transition: .5s ease; }
      #header .gnav_pc .box_mail_header a.btn_mail:hover {
        background-color: #0A2C87; }

.loaded #header {
  opacity: 1; }

.openbtn {
  position: relative;
  z-index: 9999;
  cursor: pointer;
  width: 50px;
  height: 40px;
  display: flex;
  padding: 0; }
  .openbtn span {
    display: block;
    transition: all .4s;
    width: 100%;
    height: 2px;
    background-color: #000000;
    position: absolute; }
  .openbtn span:nth-of-type(1) {
    left: 0;
    top: 0; }
  .openbtn span:nth-of-type(2) {
    left: 0;
    top: 19px; }
  .openbtn span:nth-of-type(3) {
    left: 0;
    bottom: 0; }

.openbtn.active span:nth-of-type(1) {
  transform: rotate(-45deg);
  transform-origin: right top;
  top: 2px; }
.openbtn.active span:nth-of-type(2) {
  opacity: 0; }
.openbtn.active span:nth-of-type(3) {
  transform: rotate(45deg);
  transform-origin: right bottom;
  bottom: 2px; }

#header.active {
  z-index: 100; }
  #header.active .logo {
    opacity: 0; }
  #header.active .btn_set .btn_contact {
    opacity: 0; }

#gnav_sp {
  position: fixed;
  z-index: -1;
  top: 0;
  width: 100%;
  height: 100vh;
  background: #0A2C87;
  transition: all 0.3s;
  transform: translateY(-100%);
  opacity: 0.95; }
  #gnav_sp .inner {
    width: 100%;
    padding: 100px 8.5%;
    display: flex;
    align-items: center;
    position: absolute;
    left: 0;
    top: 0;
    height: 100%; }
    #gnav_sp .inner > ul {
      position: relative;
      display: block; }
      #gnav_sp .inner > ul li {
        font-size: 2.25rem;
        line-height: 2;
        color: #FFF; }
        @media (max-width: 767px) {
          #gnav_sp .inner > ul li {
            font-size: 1.25em; } }
        #gnav_sp .inner > ul li a {
          color: #FFF;
          text-transform: uppercase;
          letter-spacing: 0.05em;
          font-weight: 400;
          transition: transform 0.3s; }
      #gnav_sp .inner > ul > li:not(:last-child) {
        margin-bottom: 1em; }
      #gnav_sp .inner > ul .subnav {
        margin-left: 1em;
        position: relative;
        display: block; }
        #gnav_sp .inner > ul .subnav li {
          font-size: 90%; }
          #gnav_sp .inner > ul .subnav li::before {
            content: "- "; }

#gnav_sp.active {
  z-index: 99;
  transform: translateY(0);
  transition: all 0.3s; }

/*--------------------
 footer
---------------------*/
footer {
  margin-top: calc(3*var(--size100)); }
  @media (max-width: 1024px) {
    footer {
      padding-bottom: var(--size80); } }

.wrapper_footer {
  background: #000000;
  color: #FFF;
  padding: var(--size100) 0; }
  .wrapper_footer .row_footer {
    gap: 10%;
    flex-wrap: wrap; }
    @media (max-width: 1024px) {
      .wrapper_footer .row_footer {
        gap: 8%; } }
    @media (max-width: 767px) {
      .wrapper_footer .row_footer {
        gap: var(--size80); } }
    .wrapper_footer .row_footer .col_l {
      width: 45%; }
      @media (max-width: 1024px) {
        .wrapper_footer .row_footer .col_l {
          width: 46%; } }
      @media (max-width: 767px) {
        .wrapper_footer .row_footer .col_l {
          width: 100%; } }
      .wrapper_footer .row_footer .col_l .logo {
        width: 92%;
        max-width: 497px;
        margin-bottom: var(--size40); }
      .wrapper_footer .row_footer .col_l .f_subnav {
        display: flex;
        gap: 1em 2em;
        margin-top: var(--size40); }
        .wrapper_footer .row_footer .col_l .f_subnav a {
          font-size: 0.8em;
          text-decoration: underline; }
    .wrapper_footer .row_footer .col_r {
      width: 45%; }
      @media (max-width: 1024px) {
        .wrapper_footer .row_footer .col_r {
          width: 46%; } }
      @media (max-width: 767px) {
        .wrapper_footer .row_footer .col_r {
          width: 100%; } }
      .wrapper_footer .row_footer .col_r .nav_footer {
        display: flex;
        justify-content: flex-end; }
        .wrapper_footer .row_footer .col_r .nav_footer ul {
          display: flex;
          flex-flow: wrap;
          gap: 1em 2em; }
          .wrapper_footer .row_footer .col_r .nav_footer ul a {
            text-decoration: underline; }
          @media (max-width: 767px) {
            .wrapper_footer .row_footer .col_r .nav_footer ul {
              gap: 1em; } }

.copyright {
  background-color: #FFFFFF;
  height: calc(60*var(--calc_max767));
  display: flex;
  align-items: center;
  justify-content: center; }
  @media (min-width: 768px) {
    .copyright {
      height: calc(60*var(--calc_min768)); } }
  @media (min-width: 1024px) {
    .copyright {
      height: 80px; } }
  .copyright p.copy {
    font-size: var(--size14);
    font-family: "Overpass", sans-serif; }

.fix {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  height: var(--size80);
  background-color: #FFF;
  display: flex;
  opacity: 0;
  transform: translateY(100%);
  transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.26, 0.57, 0.41, 0.74); }
  .fix .box_tel_header {
    width: 50%;
    height: var(--size80);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--size10); }
    @media (max-width: 500px) {
      .fix .box_tel_header {
        width: 68%; } }
    .fix .box_tel_header .ico_tel {
      width: 46px;
      height: 46px; }
    .fix .box_tel_header .txt_tel p {
      font-size: 80%; }
  .fix .box_mail_header {
    width: 50%;
    height: var(--size80); }
    @media (max-width: 500px) {
      .fix .box_mail_header {
        width: 32%; } }
    .fix .box_mail_header a {
      width: 100%;
      height: 100%;
      background: #009DDC;
      color: #FFF;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: calc(24*var(--calc_max767));
      font-weight: 600; }
      @media (max-width: 500px) {
        .fix .box_mail_header a {
          font-size: calc(32*var(--calc_max767)); } }
  @media (min-width: 1025px) {
    .fix {
      display: none; } }

.fix.active {
  transform: translateY(0);
  opacity: 1; }

.btn_pagetop {
  width: var(--size48);
  height: var(--size48);
  position: fixed;
  right: var(--size40);
  bottom: var(--size60);
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.26, 0.57, 0.41, 0.74); }
  @media (max-width: 1024px) {
    .btn_pagetop {
      right: 2%; } }
  .btn_pagetop a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.8); }
    .btn_pagetop a img {
      width: var(--size24); }
  .btn_pagetop.active {
    opacity: 1; }

/*--------------------
　背景動画
---------------------*/
.bgmovie {
  position: fixed;
  z-index: -1;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow: hidden; }

#video {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 177.77777778vh;
  /* 16:9 の幅→16 ÷ 9＝ 177.77% */
  height: 56.25vw;
  /* 16:9の幅 → 9 ÷ 16 = 56.25% */
  min-height: 100%;
  min-width: 100%; }

/*--------------------
　共通
---------------------*/
.wrapper_main {
  container: parent / inline-size; }
  @media (min-width: 1025px) {
    .wrapper_main {
      padding-left: 300px; } }

.container {
  width: 100%;
  margin: 0 auto;
  padding: 0 8%; }
  @media (min-width: 1025px) {
    .container {
      width: 80%;
      max-width: 1200px;
      padding: 0; } }

.ttl_top_common {
  margin-bottom: var(--size60); }
  .ttl_top_common h2 .en {
    font-size: var(--size24);
    color: #959595;
    margin-bottom: var(--size20);
    line-height: 1;
    display: block; }
    @media (max-width: 1024px) {
      .ttl_top_common h2 .en {
        font-size: calc(24*var(--calc_min768)); } }
    @media (max-width: 767px) {
      .ttl_top_common h2 .en {
        font-size: calc(28*var(--calc_max767)); } }
  .ttl_top_common h2 .ja {
    font-size: var(--size48);
    color: #0A2C87;
    font-weight: 700; }
    @media (max-width: 1439px) {
      .ttl_top_common h2 .ja {
        font-size: calc(48*var(--calc_min1024)); } }
    @media (max-width: 1024px) {
      .ttl_top_common h2 .ja {
        font-size: calc(48*var(--calc_min768)); } }
    @media (max-width: 767px) {
      .ttl_top_common h2 .ja {
        font-size: calc(50*var(--calc_max767)); } }

.ttl_top_common.ttl_center, .ttl__common.ttl_center {
  display: flex;
  flex-flow: column;
  align-items: center; }
  .ttl_top_common.ttl_center h2, .ttl__common.ttl_center h2 {
    text-align: center; }

.ttl__common {
  margin-bottom: var(--size60); }
  .ttl__common h2 .en {
    font-size: var(--size24);
    color: #959595;
    margin-bottom: var(--size20);
    line-height: 1;
    display: block; }
    @media (max-width: 1024px) {
      .ttl__common h2 .en {
        font-size: calc(24*var(--calc_min768)); } }
    @media (max-width: 767px) {
      .ttl__common h2 .en {
        font-size: calc(28*var(--calc_max767)); } }
  .ttl__common h2 .ja {
    font-size: calc(32*var(--calc_min1440));
    color: #0A2C87;
    font-weight: 700; }
    @media (max-width: 1439px) {
      .ttl__common h2 .ja {
        font-size: calc(32*var(--calc_min1024)); } }
    @media (max-width: 1024px) {
      .ttl__common h2 .ja {
        font-size: calc(32*var(--calc_min768)); } }
    @media (max-width: 767px) {
      .ttl__common h2 .ja {
        font-size: calc(40*var(--calc_max767)); } }

h3 {
  font-size: var(--size32); }
  @media (max-width: 1440px) {
    h3 {
      font-size: calc(32*var(--calc_min1024)); } }
  @media (max-width: 1024px) {
    h3 {
      font-size: calc(32*var(--calc_min768)); } }
  @media (max-width: 767px) {
    h3 {
      font-size: calc(36*var(--calc_max767)); } }

h4 {
  font-size: var(--size24);
  font-weight: 600;
  padding-left: var(--size30);
  text-indent: calc(-1*var(--size30)); }
  @media (max-width: 1440px) {
    h4 {
      font-size: calc(22*var(--calc_min1024)); } }
  @media (max-width: 1024px) {
    h4 {
      font-size: calc(22*var(--calc_min768)); } }
  @media (max-width: 767px) {
    h4 {
      font-size: calc(28*var(--calc_max767)); } }
  @media (max-width: 500px) {
    h4 {
      font-size: calc(40*var(--calc_max767)); } }
  h4::before {
    content: "";
    width: var(--size24);
    height: 2px;
    display: inline-block;
    background: linear-gradient(to right, #0A2C87 0%, #009DDC 100%);
    margin-right: var(--size10);
    vertical-align: middle; }

h5 {
  font-size: 22px;
  font-weight: 600;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #0A2C87; }
  @media (max-width: 1440px) {
    h5 {
      font-size: calc(20*var(--calc_min1024)); } }
  @media (max-width: 1024px) {
    h5 {
      font-size: calc(20*var(--calc_min768)); } }
  @media (max-width: 767px) {
    h5 {
      font-size: calc(24*var(--calc_max767)); } }
  @media (max-width: 500px) {
    h5 {
      font-size: calc(32*var(--calc_max767)); } }

.bg_bluegrad .ttl_top_common h2 .ja {
  color: #FFF; }

a.txt_link {
  color: #009DDC;
  text-decoration: underline; }

p.txt {
  font-size: 1rem;
  line-height: 2; }
  @media (min-width: 1440px) {
    p.txt {
      font-size: var(--size20); } }
  @media (max-width: 767px) {
    p.txt {
      font-size: 1em; } }

p.cap {
  font-size: 0.85rem;
  color: #333333; }
  @media (min-width: 1440px) {
    p.cap {
      font-size: var(--size16); } }
  @media (max-width: 767px) {
    p.cap {
      font-size: 0.85em; } }

ul.dot li {
  margin-left: 1em;
  text-indent: -1em;
  font-family: 'Noto Sans JP', YuGothic, "游ゴシック", sans-serif; }
  ul.dot li:before {
    content: "・";
    font-weight: 700;
    color: #0A2C87;
    width: 1em; }

ol.num {
  counter-reset: number 0; }
  ol.num li {
    padding-left: 24px;
    font-family: 'Noto Sans JP', YuGothic, "游ゴシック", sans-serif;
    position: relative;
    margin-bottom: 0.5em; }
    ol.num li:before {
      counter-increment: number 1;
      content: counter(number);
      position: absolute;
      left: 0;
      top: 0.2em;
      font-weight: 400;
      color: #0A2C87;
      width: 20px;
      height: 20px;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 0.8em;
      z-index: 2; }
    ol.num li::after {
      content: "";
      position: absolute;
      left: 0;
      top: 0.2em;
      width: 20px;
      height: 20px;
      border: #0A2C87 1px solid;
      background-color: #FFF;
      border-radius: 50%;
      display: flex;
      justify-content: center;
      align-items: center;
      z-index: 1; }

.list_table dl {
  display: flex;
  font-size: var(--size20); }
  @media (max-width: 767px) {
    .list_table dl {
      flex-flow: wrap;
      font-size: 1rem; } }
  .list_table dl dt {
    width: 20%;
    border-bottom: 1px solid #0A2C87;
    padding: var(--size30) 0;
    font-weight: 600;
    color: #0A2C87; }
    @media (max-width: 767px) {
      .list_table dl dt {
        width: 100%;
        border-bottom: none;
        padding: var(--size20) 0 var(--size10); } }
  .list_table dl dd {
    width: 80%;
    border-bottom: 1px solid #D3D3D3;
    padding: var(--size30) 0; }
    @media (max-width: 767px) {
      .list_table dl dd {
        width: 100%;
        padding: var(--size10) 0 var(--size20); } }

table.table {
  border: #959595 1px solid;
  border-collapse: collapse; }
  table.table th, table.table td {
    padding: 10px;
    border: #CCCCCC 1px solid;
    font-size: 1rem; }
    @media (max-width: 767px) {
      table.table th, table.table td {
        font-size: 0.85rem; } }
  table.table thead * {
    background-color: #E5F8FF; }
  table.table thead th {
    text-align: center; }
  table.table tbody th {
    background-color: #EEEEEE; }

.btn_more {
  width: calc(3*var(--size100));
  height: var(--size60);
  background: transparent;
  border: 1px solid #009DDC;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--size20);
  color: #009DDC;
  letter-spacing: 0.1em;
  position: relative; }
  .btn_more::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    transform-origin: left;
    background-color: #009DDC;
    transform: scaleX(0);
    transition: 0.5s cubic-bezier(0.26, 0.57, 0.41, 0.74);
    z-index: 0; }
  .btn_more span {
    font-size: var(--size20);
    position: relative;
    bottom: -0.1em; }
    @media (max-width: 1024px) {
      .btn_more span {
        font-size: calc(20*var(--calc_min768)); } }
    @media (max-width: 767px) {
      .btn_more span {
        font-size: calc(20*var(--calc_max767)); } }
    @media (max-width: 500px) {
      .btn_more span {
        font-size: 1.125rem; } }
  .btn_more .arw_right {
    width: 32.5px;
    height: 7px;
    transform: transrate(0, 0);
    transition: .3s ease .2s;
    position: relative; }
    .btn_more .arw_right .line_2 {
      stroke: #009DDC; }
    .btn_more .arw_right .pass_2 {
      fill: #009DDC; }

.btn_more:hover {
  color: #FFF; }
  .btn_more:hover::before {
    transform: scaleX(1); }
  .btn_more:hover .arw_right {
    width: 32.5px;
    height: 7px;
    transform: transrate(0, 0);
    transition: transform .3s ease .2s; }
    .btn_more:hover .arw_right .line_2 {
      stroke: #FFF; }
    .btn_more:hover .arw_right .pass_2 {
      fill: #FFF; }

.tac .btn_more {
  margin: 0 auto; }

.tab-panel .tab-group {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid #959595; }
  .tab-panel .tab-group li {
    width: calc(50% - 1px); }
    .tab-panel .tab-group li button {
      height: var(--size60);
      line-height: var(--size60);
      text-align: center;
      font-size: var(--size20);
      display: block;
      width: 100%; }
  .tab-panel .tab-group li.is-active {
    border-bottom: 1px solid #0A2C87; }
    .tab-panel .tab-group li.is-active button {
      color: #0A2C87; }
  .tab-panel .tab-group .tab {
    flex-grow: 1;
    list-style: none;
    text-align: center;
    cursor: pointer; }
.tab-panel .panel-group {
  padding: var(--size40) 0 0; }
  .tab-panel .panel-group .panel {
    display: none; }
.tab-panel .tab.is-active {
  color: #FFF;
  transition: all 0.2s ease-out; }
.tab-panel .panel.is-show {
  display: block; }

.nowrap {
  white-space: nowrap; }

/*--------------------
　hero
---------------------*/
span.smoothText {
  overflow: hidden;
  display: block; }

span.smoothTextTrigger {
  transition: .8s ease-in-out;
  transform: translate3d(0, 100%, 0) skewY(12deg);
  transform-origin: left;
  display: block; }

span.smoothTextTrigger.smoothTextAppear {
  transform: translate3d(0, 0, 0) skewY(0); }

.mv-js-fadeUp {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s ease, transform 1s ease-in-out;
  transition-delay: 1s; }

.loaded .mv-js-fadeUp {
  opacity: 1;
  transform: translateY(0); }

.hero {
  width: 100%;
  height: auto;
  aspect-ratio: 16/5;
  position: relative;
  mix-blend-mode: overlay; }
  @media (max-width: 1024px) {
    .hero {
      height: calc(100px + 500*var(--calc_min768));
      aspect-ratio: auto; } }
  @media (max-width: 767px) {
    .hero {
      height: calc(100px + 500*var(--calc_max767)); } }
  .hero::before {
    content: "";
    width: 100%;
    height: 100%;
    background: #009DDC;
    opacity: 0.4;
    position: absolute;
    left: 0;
    top: 0; }
  .hero .r_bl {
    position: absolute;
    left: 0;
    bottom: 0;
    background: url(../img/r160_bl.svg) left bottom no-repeat;
    background-size: 100% 100%;
    width: calc(var(--size80)*2);
    height: calc(var(--size80)*2); }
    @media (max-width: 767px) {
      .hero .r_bl {
        display: none; } }
  .hero .container {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    height: 100%; }
    @media (max-width: 767px) {
      .hero .container {
        padding: 0 4%; } }
  .hero .tit_hero {
    display: flex;
    flex-flow: column;
    justify-content: flex-end;
    align-items: flex-end;
    color: #FFF;
    opacity: 0.9;
    transform: translateY(3.125em); }
    @media (max-width: 767px) {
      .hero .tit_hero {
        transform: translateY(1em); } }
    .hero .tit_hero h1 > * {
      display: block;
      text-align: right; }
    .hero .tit_hero h1 .ja {
      font-size: calc(48*var(--calc_min1440));
      margin-bottom: 1.5em; }
      @media (max-width: 1440px) {
        .hero .tit_hero h1 .ja {
          font-size: calc(48*var(--calc_min1024)); } }
      @media (max-width: 1024px) {
        .hero .tit_hero h1 .ja {
          font-size: calc(48*var(--calc_min768)); } }
      @media (max-width: 767px) {
        .hero .tit_hero h1 .ja {
          font-size: calc(56*var(--calc_max767)); } }
    .hero .tit_hero h1 .en {
      font-size: calc(204*var(--calc_min1440));
      line-height: 1; }
      @media (max-width: 1440px) {
        .hero .tit_hero h1 .en {
          font-size: calc(160*var(--calc_min1024)); } }
      @media (max-width: 1024px) {
        .hero .tit_hero h1 .en {
          font-size: calc(140*var(--calc_min768)); } }
      @media (max-width: 767px) {
        .hero .tit_hero h1 .en {
          font-size: calc(120*var(--calc_max767)); } }

.breadcrumb {
  background-color: #FFF;
  width: 100%;
  padding: var(--size24) 0; }
  .breadcrumb ul {
    display: flex;
    gap: 1em; }
    .breadcrumb ul li a {
      color: #000000; }
    .breadcrumb ul li.current {
      color: #0A2C87; }
    @media (max-width: 767px) {
      .breadcrumb ul li {
        font-size: 0.85rem; } }
    .breadcrumb ul li:not(:last-child):after {
      content: "- ";
      margin-left: 1em; }

.notop section:not(:first-child) {
  padding-top: calc(2*var(--size60));
  padding-bottom: calc(2*var(--size70)); }

.notop .breadcrumb + section {
  padding-top: calc(var(--size60)); }

/* -------------------------------------------------------------
column
------------------------------------------------------------- */
.column-section .container {
  padding: 0 12%;
  max-width: 1366px; }
  @media (max-width: 767px) {
    .column-section .container {
      padding: 0 10%; } }
  .column-section .container .columns {
    display: flex;
    flex-flow: wrap;
    margin-left: -2.9%;
    margin-right: -2.9%;
    margin-bottom: -3.75em; }
    @media (max-width: 599px) {
      .column-section .container .columns {
        margin-left: 0;
        margin-right: 0;
        margin-bottom: -2em; } }
    .column-section .container .columns .col {
      padding: 0 2.9%;
      margin-bottom: 3.75em; }
      @media (max-width: 599px) {
        .column-section .container .columns .col {
          padding: 0;
          margin-bottom: 2em; } }

/* -------------------------------------------------------------
animation
------------------------------------------------------------- */
.slide-in {
  overflow: hidden;
  display: inline-block; }

.slide-in_inner {
  display: inline-block; }

/*左右のアニメーション*/
.leftAnime {
  opacity: 0;
  transform: translateX(-100%); }

.slideAnimeLeftRight {
  opacity: 0; }

.slideAnimeLeftRight.on {
  animation-name: slideTextX100;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes slideTextX100 {
  0% {
    transform: translateX(-100%);
    /*要素を左の枠外に移動*/
    opacity: 0; }
  100% {
    transform: translateX(0);
    /*要素を元の位置に移動*/
    opacity: 1; } }
.slideAnimeRightLeft {
  animation-name: slideTextX-100;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes slideTextX-100 {
  from {
    transform: translateX(100%);
    /*要素を右の枠外に移動*/
    opacity: 0; }
  to {
    transform: translateX(0);
    /*要素を元の位置に移動*/
    opacity: 1; } }
.js-shuffleText {
  opacity: 0; }

.js-shuffleText.is-show {
  animation-name: fadeIn;
  animation-duration: .3s;
  animation-fill-mode: forwards; }

@keyframes maskInLeft {
  0% {
    clip-path: inset(0 100% 0 0); }
  100% {
    clip-path: inset(0 0 0 0); } }
@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }
@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(30px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
@keyframes blurIn {
  0% {
    opacity: 0;
    filter: blur(10px); }
  100% {
    opacity: 1;
    filter: blur(0px); } }
@keyframes zoomOut {
  0% {
    transform: scale(1.1); }
  100% {
    transform: scale(1); } }
.fade, .blur-in {
  opacity: 0; }

.js-fadeUp {
  opacity: 0;
  transform: translateY(0); }

.js-fadeUp.on {
  animation: fadeInUp 0.5s cubic-bezier(0.26, 0.57, 0.41, 0.74);
  animation-fill-mode: both; }

.blur-in.active {
  animation: blurIn 1.5s ease;
  animation-fill-mode: both; }

.js-zoomout img {
  transform-origin: center;
  transform: scale(1.1); }

.js-zoomout.on img {
  animation: zoomOut 1.0s ease-in-out forwards; }

.delay1 {
  animation-delay: 0.2s;
  -moz-animation-delay: 0.2s;
  -webkit-animation-delay: 0.2s;
  -o-animation-delay: 0.2s; }

.delay2 {
  animation-delay: 0.35s;
  -moz-animation-delay: 0.35s;
  -webkit-animation-delay: 0.35s;
  -o-animation-delay: 0.35s; }
  .delay2 * {
    animation-delay: 0.35s;
    -moz-animation-delay: 0.35s;
    -webkit-animation-delay: 0.35s;
    -o-animation-delay: 0.35s; }

.delay3 {
  animation-delay: 0.5s;
  -moz-animation-delay: 0.5s;
  -webkit-animation-delay: 0.5s;
  -o-animation-delay: 0.5s; }
  .delay3 * {
    animation-delay: 0.5s;
    -moz-animation-delay: 0.5s;
    -webkit-animation-delay: 0.5s;
    -o-animation-delay: 0.5s; }

.delay4 {
  animation-delay: 0.65s;
  -moz-animation-delay: 0.65s;
  -webkit-animation-delay: 0.65s;
  -o-animation-delay: 0.65s; }

.delay5 {
  animation-delay: 0.8s;
  -moz-animation-delay: 0.8s;
  -webkit-animation-delay: 0.8s;
  -o-animation-delay: 0.8s; }

.delay6 {
  animation-delay: 0.95s;
  -moz-animation-delay: 0.95s;
  -webkit-animation-delay: 0.95s;
  -o-animation-delay: 0.95s; }

/* -------------------------------------------------------------
class
------------------------------------------------------------- */
.ta-center {
  text-align: center; }

.fit {
  width: 100%;
  height: auto; }

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

.mb10 {
  margin-bottom: var(--size10); }

.mb20 {
  margin-bottom: var(--size20); }

.mb30 {
  margin-bottom: var(--size30); }

.mb40 {
  margin-bottom: var(--size40); }

.mb50 {
  margin-bottom: var(--size50); }

.mb60 {
  margin-bottom: var(--size60); }

.mb70 {
  margin-bottom: var(--size70); }

.mb80 {
  margin-bottom: var(--size80); }

.mb90 {
  margin-bottom: var(--size90); }

.mb100 {
  margin-bottom: var(--size100); }

.mt10 {
  margin-top: var(--size10); }

.mt20 {
  margin-top: var(--size20); }

.mt30 {
  margin-top: var(--size30); }

.mt40 {
  margin-top: var(--size40); }

.mt50 {
  margin-top: var(--size50); }

.mt60 {
  margin-top: var(--size60); }

.mt70 {
  margin-top: var(--size70); }

.mt80 {
  margin-top: var(--size80); }
