@charset "utf-8";
/* ===================================================================
  style info : ヘッダーやフッターなどサイト内共通
=================================================================== */

/*----------------------------------------------------
	共通
----------------------------------------------------*/
body {
  background-color: #ffffff;
  color: #151515;
  font-family: "M PLUS 1p", sans-serif;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  overflow-x: hidden;
}

.m-plus-1p-regular {
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.noto-sans-jp {
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
}

/*----------------------------------------------------
  リンク
----------------------------------------------------*/
a:link,
a:visited,
a:hover,
a:active {
  color: #151515;
  text-decoration: none;
  transition: all .5s ease;
}

.link_txt01 {
  color: #337ed5 !important;
}

.link_txt01:hover {
  color: #337ed5 !important;
}

.link_txt02 {
  color: #151515 !important;
}

.link_txt02:hover {
  color: #05a6dd !important;
}

.link_txt03 {
  color: #0073aa !important;
}

.link_txt03:hover {
  color: #05a6dd !important;
}

/* -----------------------------------------------------------
  .elt_tel
----------------------------------------------------------- */
.elt_tel {
  /* pointer-events: none; */
}

/* -----------------------------------------------------------
  .v_rl
----------------------------------------------------------- */
.v_rl {
  -webkit-font-feature-settings: "pkna";
  font-feature-settings: "pkna";
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}

/* -----------------------------------------------------------
  hd
----------------------------------------------------------- */
.hd {
  font-family: "Noto Sans JP", serif;
  line-height: 1;
}

.hd_clr01 {
  color: #ffffff;
}

.hd_clr02 {
  color: #123280;
}

.hd_txt_lft {
  text-align: left;
}

.hd_txt_ctr {
  text-align: center;
}

.hd_txt_rgt {
  text-align: right;
}

.hd_01 {
  font-size: 5.0rem;
  font-weight: 700;
}

.hd_01_jp {
  display: block;
  font-size: 2.4rem;
  margin-top: 10px;
}

.hd_02 {
  font-size: 4.0rem;
  font-weight: 700;
}

.hd_02_jp {
  display: block;
  font-size: 2.0rem;
  margin-top: 10px;
}

.hd_03 {
  color: #123280;
  font-size: 2.4rem;
  font-weight: 500;
  display: flex;
  align-items: center;
}

.hd_03:after {
  background-color: #123280;
  content: "";
  margin-left: 20px;
  height: 1px;
  flex: 1 1;
}

.hd_04 {
  width: 100%;
  height: 100px;
  margin-bottom: 55px;
  font-size: 3.8rem;
  font-weight: normal;
  color: #fff;
  background-color: #123280;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* -----------------------------------------------------------
  .txt_deco
----------------------------------------------------------- */
.txt_deco01 {
  text-decoration: underline !important;
}

.txt_deco01:hover {
  text-decoration: none !important;
}

/* -----------------------------------------------------------
  .txt_shadow
----------------------------------------------------------- */
.txt_shadow01 {
  text-shadow: 0px 0px 9px rgba(0, 0, 0, 0.2);
}

/* -----------------------------------------------------------
  .note
----------------------------------------------------------- */
.note {
  display: flex;
}

.note:before {
  content: "※";
  margin-right: 0.1em;
}

/* -----------------------------------------------------------
  .list
----------------------------------------------------------- */
.list {
  line-height: 1.4;
}

.list > li {
  display: flex;
  margin-top: 0.25em;
}

.list > li:first-of-type {
  margin-top: 0;
}

.list > li:before {
  content: "・";
  margin-right: 0.15em;
  margin-left: -0.05em;
}

/* -----------------------------------------------------------
  .icon
----------------------------------------------------------- */
.icon {
  line-height: 0;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}

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

.icon svg,
.icon_circle svg {
  line-height: 0;
  width: 20px;
}

.icon_01 svg path {
  stroke: rgba(18, 50, 128, 1);
}

.btn:hover .icon_01 svg path {
  stroke: rgba(255, 255, 255, 1);
}

.icon_02 svg path {
  stroke: rgba(255, 255, 255, 1);
}

.icon_03 svg path {
  stroke: rgba(35, 102, 180, 1);
}

.btn:hover .icon_03 svg path {
  stroke: rgba(255, 255, 255, 1);
}

.icon_04 svg path {
  stroke: rgba(51, 126, 213, 1);
}

.btn:hover .icon_04 svg path {
  stroke: rgba(255, 255, 255, 1);
}

.icon_05 svg path {
  stroke: rgba(95, 168, 254, 1);
}

.btn:hover .icon_05 svg path {
  stroke: rgba(255, 255, 255, 1);
}

.icon_06 svg path {
  stroke: rgba(0, 115, 189, 1);
}

.btn:hover .icon_06 svg path {
  stroke: rgba(255, 255, 255, 1);
}

/* -----------------------------------------------------------
  .btn_box
----------------------------------------------------------- */
.btn_box {
  display: flex;
  margin-top: 50px;
}

.btn_box > .buttons:not(:first-of-type) {
  margin-top: 30px;
}

.jc_cntr {
  justify-content: center;
}

.jc_scbw {
  justify-content: space-between;
}

/* -----------------------------------------------------------
  .buttons
----------------------------------------------------------- */
.buttons {
  display: flex;
  gap: 2vw;
}

.buttons > .button {
  flex: 1 1;
}

/* -----------------------------------------------------------
  .btn
----------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
  padding: 0.25em 1em;
  position: relative;
  z-index: 0;
  word-break: keep-all;
}

.btn01 {
  padding: 0.1em 0.5em;
}

/* -----------------------------------------------------------
  背景色
----------------------------------------------------------- */
.bg_clr01 {
  background-color: #123280 !important;
}

.bg_clr01:hover {
  background-color: #337ed5 !important;
}

.bg_clr02 {
  background-color: #ffffff !important;
}

.bg_clr02:hover {
  background-color: #123280 !important;
}

.bg_clr03 {
  background-color: #ffffff !important;
}

.bg_clr03:hover {
  background-color: #2366b4 !important;
}

.bg_clr04 {
  background-color: #ffffff !important;
}

.bg_clr04:hover {
  background-color: #337ed5 !important;
}

.bg_clr05 {
  background-color: #ffffff !important;
}

.bg_clr05:hover {
  background-color: #5fa8fe !important;
}

.bg_clr05 {
  background-color: #ffffff !important;
}

.bg_clr05:hover {
  background-color: #0073bd !important;
}

/* -----------------------------------------------------------
  ボーダー
----------------------------------------------------------- */
.brd_01 {
  border: 2px dashed #123280 !important;
}

.brd_01:hover {
  border: 2px solid #123280 !important;
}

.brd_02 {
  border: 2px dashed #2366b4 !important;
}

.brd_02:hover {
  border: 2px solid #2366b4 !important;
}

.brd_03 {
  border: 2px dashed #337ed5 !important;
}

.brd_03:hover {
  border: 2px solid #337ed5 !important;
}

.brd_04 {
  border: 2px dashed #5fa8fe !important;
}

.brd_04:hover {
  border: 2px solid #5fa8fe !important;
}

.brd_05 {
  border: 2px dashed #0073bd !important;
}

.brd_05:hover {
  border: 2px solid #0073bd !important;
}

/* -----------------------------------------------------------
  ボーダー角丸
----------------------------------------------------------- */
.brd_rd01 {
  border-radius: 3px !important;
}

.brd_rd02 {
  border-radius: 5px !important;
}

.brd_rd03 {
  border-radius: 10px !important;
}

.brd_rd04 {
  border-radius: 20px !important;
}

.brd_rd05 {
  border-radius: 30px !important;
}

.brd_rd06 {
  border-radius: 50px !important;
}

.brd_rd07 {
  border-radius: 100px !important;
}

.brd_rd08 {
  border-radius: 50% !important;
}

/* -----------------------------------------------------------
  カラー
----------------------------------------------------------- */
.clr01 {
  color: #ffffff !important;
}

.clr01:hover {
  color: #ffffff !important;
}

.clr02 {
  color: #123280 !important;
}

.clr02:hover {
  color: #ffffff !important;
}

.clr03 {
  color: #2366b4 !important;
}

.clr03:hover {
  color: #ffffff !important;
}

.clr04 {
  color: #337ed5 !important;
}

.clr04:hover {
  color: #ffffff !important;
}

.clr05 {
  color: #5fa8fe !important;
}

.clr05:hover {
  color: #ffffff !important;
}

/* -----------------------------------------------------------
  フォントサイズ
----------------------------------------------------------- */
.ft_s009 {
  font-size: 0.9rem !important;
}

.ft_s010 {
  font-size: 1.0rem !important;
}

.ft_s011 {
  font-size: 1.1rem !important;
}

.ft_s012 {
  font-size: 1.2rem !important;
}

.ft_s013 {
  font-size: 1.3rem !important;
}

.ft_s014 {
  font-size: 1.4rem !important;
}

.ft_s015 {
  font-size: 1.5rem !important;
}

.ft_s016 {
  font-size: 1.6rem !important;
}

.ft_s017 {
  font-size: 1.7rem !important;
}

.ft_s018 {
  font-size: 1.8rem !important;
}

.ft_s019 {
  font-size: 1.9rem !important;
}

.ft_s020 {
  font-size: 2.0rem !important;
}

/* -----------------------------------------------------------
  高さ
----------------------------------------------------------- */
.hit_000 {
  height: 100% !important;
}

.hit_010 {
  height: 10px !important;
}

.hit_020 {
  height: 20px !important;
}

.hit_025 {
  height: 25px !important;
}

.hit_030 {
  height: 30px !important;
}

.hit_035 {
  height: 35px !important;
}

.hit_040 {
  height: 40px !important;
}

.hit_045 {
  height: 45px !important;
}

.hit_050 {
  height: 50px !important;
}

.hit_055 {
  height: 55px !important;
}

.hit_060 {
  height: 60px !important;
}

.hit_065 {
  height: 65px !important;
}

.hit_070 {
  height: 70px !important;
}

.hit_075 {
  height: 75px !important;
}

.hit_080 {
  height: 80px !important;
}

.hit_085 {
  height: 85px !important;
}

.hit_090 {
  height: 90px !important;
}

.hit_095 {
  height: 95px !important;
}

.hit_100 {
  height: 100px !important;
}

/* -----------------------------------------------------------
  幅
----------------------------------------------------------- */
.wid_000 {
  width: 100% !important;
}

.wid_040 {
  width: 40px !important;
}

.wid_045 {
  width: 45px !important;
}

.wid_050 {
  width: 50px !important;
}

.wid_055 {
  width: 55px !important;
}

.wid_060 {
  width: 60px !important;
}

.wid_065 {
  width: 65px !important;
}

.wid_070 {
  width: 70px !important;
}

.wid_075 {
  width: 75px !important;
}

.wid_080 {
  width: 80px !important;
}

.wid_085 {
  width: 85px !important;
}

.wid_090 {
  width: 90px !important;
}

.wid_095 {
  width: 95px !important;
}

.wid_100 {
  width: 100px !important;
}

.wid_110 {
  width: 110px !important;
}

.wid_120 {
  width: 120px !important;
}

.wid_130 {
  width: 130px !important;
}

.wid_140 {
  width: 140px !important;
}

.wid_150 {
  width: 150px !important;
}

.wid_160 {
  width: 160px !important;
}

.wid_170 {
  width: 170px !important;
}

.wid_180 {
  width: 180px !important;
}

.wid_190 {
  width: 190px !important;
}

.wid_200 {
  width: 200px !important;
}

.wid_210 {
  width: 210px !important;
}

.wid_220 {
  width: 220px !important;
}

.wid_230 {
  width: 230px !important;
}

.wid_240 {
  width: 240px !important;
}

.wid_250 {
  width: 250px !important;
}

.wid_260 {
  width: 260px !important;
}

.wid_270 {
  width: 270px !important;
}

.wid_280 {
  width: 280px !important;
}

.wid_290 {
  width: 290px !important;
}

.wid_300 {
  width: 300px !important;
}

.wid_310 {
  width: 310px !important;
}

.wid_320 {
  width: 320px !important;
}

.wid_330 {
  width: 330px !important;
}

.wid_340 {
  width: 340px !important;
}

.wid_350 {
  width: 350px !important;
}

/* -----------------------------------------------------------
  utility
----------------------------------------------------------- */
.u_sp {
  display: none;
}
@media screen and (max-width: 520px){
  .u_sp {
    display: block;
  }
}

.u_pc {
  display: none;
}
@media screen and (min-width: 520px){
  .u_pc {
    display: block;
  }
}

/* -----------------------------------------------------------
  scroll-wave_wrap
----------------------------------------------------------- */
.scroll-wave_wrap {
  position: absolute;
  width: 100vw;
  height: 6vw;
  top: -6vw;
  right: auto;
  left: 0;
  overflow: hidden;
}

.scroll-wave_wrap .scroll-wave {
  /* background-size: 100vw cover; */
  background-repeat: repeat-x;
  width: 150vw;
  height: 6vw;
  position: absolute;
  z-index: 0;
  bottom: 0;
  right: auto;
  left: 0
}

.scroll-wave_wrap01 {
  position: absolute;
  width: 100vw;
  height: 14vw;
  top: -6vw;
  right: auto;
  left: 0;
  overflow: hidden;
}

.scroll-wave_wrap01 .scroll-wave {
  /* background-size: 100vw cover; */
  background-repeat: repeat-x;
  width: 150vw;
  height: 14vw;
  position: absolute;
  z-index: 0;
  top: 0;
  right: auto;
  left: 0
}

.scroll-wave_wrap .scroll-wave-wh {
  background-image: url(../img/common/parts-wave-wh.svg);
  background-size: cover;
}

.scroll-wave_wrap .scroll-wave-blue {
  background-image: url(../img/common/parts-wave-blue01.svg);
  background-size: cover;
}

.scroll-wave_wrap .scroll-wave-blue01 {
  background-image: url(../img/common/parts-wave-blue02.svg);
  background-size: cover;
}

.scroll-wave_wrap .scroll-wave-gray {
  background-image: url(../img/common/parts-wave-gray.svg);
  background-size: cover;
}

.scroll-wave_wrap01 .scroll-wave-wh01 {
  background-image: url(../img/common/parts-wave-wh01.svg);
  background-size: cover;
  /* transform: scale(1, -1);
  transform: rotate(180deg); */
}

/* -----------------------------------------------------------
  .tags
----------------------------------------------------------- */
.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  .tag {
    font-family: "Noto Sans JP", serif;
    font-size: 1.1rem;
    padding: 5px 10px;
    border-radius: 15px;
    background: #EBF8FF;
    color: #337ED5;
  }
}

/* -----------------------------------------------------------
  inner
----------------------------------------------------------- */
.inner {
  max-width: 1400px;
  min-width: 810px;
  width: 90%;
  margin: 0 auto;
}

/*----------------------------------------------------
  toggle-panel
----------------------------------------------------*/
#panel-btn {
  display: none;
}

.overlay {
  display: none;
}

#nav_box {
  display: none;
}

/* -----------------------------------------------------------
  .wrapper
----------------------------------------------------------- */
.wrapper {
  display: flex;
}

/* -----------------------------------------------------------
  header
----------------------------------------------------------- */
header {
  background-color: #123280;
  height: 100vh;
  width: 100px;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;
}

header .header_inner {
  padding: 30px 0;
}

header .main_header {
  display: flex;
  align-items: center;
  flex-direction: column;
  /* justify-content: space-between; */
  height: 100vh;
  position: relative;
}

header .site_id {
  line-height: 0;
}

header .site_id:hover {
  opacity: 0.5;
}

/* -----------------------------------------------------------
  .g_nav
----------------------------------------------------------- */
.g_nav .g_nav_list {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 30px;
  margin-top: 50px;
}

.nav-menu {
  color: #ffffff;
  width: 100%;
}

.menu-list {
  justify-content: center;
}

.menu-item {
  position: relative;
  transition: background-color .3s;
}

.menu-item:hover .drop-menu-list {
  transform: scaleX(1);
}

.menu-item:hover {
  transition: background-color .3s;
}

.menu-item > a {
  align-items: center;
  color: #ffffff;
  display: flex;
  width: 100%;
}

.menu-item > a > span {
  position: relative;
}

.menu-item > a > span:after {
  content: "";
  position: absolute;
  top: 0;
  right: -5px;
  height: 0;
  width: 1px;
  border-right: 1px dashed currentColor;
  display: block;
  transition: height 0.4s ease-out;
}

.menu-item:hover > a > span:after,
.menu-item:hover .drop-menu-list:hover ~ a > span:after {
  height: 100%;
}

.drop-menu {
  position: relative;
  width: 100%;
}

.drop-menu-list {
  background-color: #ffffff;
  border-radius: 0 20px 20px 0;
  padding: 30px 25px;
  position: absolute;
  left: 100%;
  top: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
  max-width: 300px;
  width: max-content;
  z-index: 1;
}

.menu-item:hover .drop-menu-list {
  opacity: 1;
  visibility: visible;
}

.drop-menu-item {
  line-height: 1.3;
}

.drop-menu-item.title-item > a {
  background-color: #dae7f6;
  border-radius: 5px;
  padding: 0.5em 0.75em;
}

.drop-menu-item.title-item > a:hover {
  background-color: #123280;
  color: #ffffff;
}

.drop-menu-item:not(:first-of-type) {
  margin-top: 20px;
}

.drop-menu-item a {
  display: flex;
}

.drop-menu-item:not(:first-of-type) a:hover {
  color: #2366b4;
}

.drop-menu-item a:before {
  color: #151515;
}

.drop-menu-item:not(:first-of-type) a:before {
  content: "・";
  margin-left: -0.25em;
}

.drop-menu-item:not(:first-of-type) a:hover:before {
  color: #2366b4;
}

.drop-menu-item:not(:first-of-type) a > span {
  border-bottom: 1px dashed #dae7f6;
  padding-bottom: 5px;
}

.drop-menu-item:not(:first-of-type) a:hover > span {
  border-bottom: 1px dashed #2366b4;
}

/* -----------------------------------------------------------
  .scroll
----------------------------------------------------------- */
.scroll {
  position: absolute;
  bottom: 140px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  display: none;
}

.scroll a {
  color: #ffffff;
}

.scroll a .scroll_txt {
  font-size: 1.3rem;
  line-height: 1;
  position: relative;
}

.scroll a .scroll_txt .bd_scroll {
  height: 60px;
  position: absolute;
  bottom: -80px;
  left: calc(0.5em - -1px);
}

.scroll a .scroll_txt .bd_scroll:before {
  background-color: #ffffff;
  content: "";
  position: absolute;
  bottom: 5px;
  right: -5px;
  height: 15px;
  width: 1px;
  transform: skewX(-31deg);
}

.scroll a .scroll_txt .bd_scroll:after {
  background-color:#ffffff;
  content:"";
  position: absolute;
  bottom: 5px;
  right: 0;
  height: 100%;
  width: 1px;
}

.updown {
  animation-name: UpDown;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
  animation-direction: alternate;
}

@keyframes UpDown{
  0%{
  transform: translateY(0);
  }
  100%{
  transform: translateY(10px);
  }
}

/*----------------------------------------------------
  Accordion
----------------------------------------------------*/
.js-acc-trigger {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  text-align: left;
}
.js-acc-icon {
  position: absolute;
  width: 10px;
  height: 10px;
  top: 50%;
  right: 0;
}
.js-acc-icon:before,
.js-acc-icon:after {
  content: "";
  width: 100%;
  height: 1px;
  background: #fff;
  position: absolute;
  top: calc(50% - 5px);
  left: 50%;
  transform: translate(-50%,-50%);
  transition: all 0.2s ease-in-out 0s;
}
.js-acc-icon:after {
  transform: translate(-50%,-50%) rotate(90deg);
}
.js-acc-icon.open:after {
  transform: translate(-50%,-50%) rotate(0);
}
.js-acc-content {
  display: none;
}

/* -----------------------------------------------------------
  main
----------------------------------------------------------- */
main {
  margin-left: 100px;
  /* width: 100%; */
}

/* -----------------------------------------------------------
  .main
----------------------------------------------------------- */
.main {
  background-attachment: fixed;
  background-position: center;
  background-size: cover;
  display: flex;
  align-items: center;
  height: 80vh;
  overflow-x: clip;
  padding: 5vw;
  position: relative;
  z-index: 0;
}

.main:before {
  background-image:linear-gradient(to bottom,rgba(0,0,0,0.25),rgba(0,0,0,0.25)),linear-gradient(to bottom,rgba(100,175,221,0.4),rgba(100,175,221,0.4));
  background-blend-mode: multiply,normal;
  background-position: center;
  content: "";
  height: 100%;
  width: 100%;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
}

.main_scroll-wave_wrap {
  position: absolute;
  width: 100vw;
  height: 6vw;
  bottom: 0;
  right: auto;
  left: 0;
  overflow: hidden;
  z-index: 0;
}

.main_scroll-wave_wrap .main_scroll-wave {
  /* background-size: 100vw cover; */
  background-repeat: repeat-x;
  width: 150vw;
  height: 6vw;
  position: absolute;
  z-index: 0;
  bottom: 0;
  right: auto;
  left: 0
}

.main_scroll-wave_wrap .main_scroll-wave-wh {
  background-image: url(../img/common/parts-wave-wh.svg);
  background-size: cover;
}

/* -----------------------------------------------------------
  .title
----------------------------------------------------------- */
.title {
  color: #ffffff;
  letter-spacing: 0.1em;
}

.title .title_en {
  font-family: "Noto Sans JP", serif;
  font-size: 6.0rem;
  text-transform: uppercase;
  font-weight: 700;
}

.title .title_jp {
  font-size: 2.6rem;
  font-weight: 900;
  margin-top: 20px;
}

.lower_title {
  margin: 0 0 5vw;
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.lower_title::after {
  content: '';
  width: 81px;
  height: 81px;
  background: url(../img/common/lower_ttl_bg.svg);
  background-size: contain;
  background-repeat: no-repeat;
  display: block;
}

.lower_title .lower_title_en {
  font-family: "Noto Sans JP", serif;
  font-size: 4.5rem;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
}

.lower_title .lower_title_jp {
  font-size: 1.8rem;
  font-weight: 400;
  margin-top: 10px;
  letter-spacing: 0.1em;
  position: absolute;
  left: 0;
  bottom: 0;
}

.c_title_1 {
  display: grid;
  grid-template-columns: 1fr;
  margin: 0 0 5.989vw;
  .catbox {
    order: 1;
    width: 172px;
    height: 33px;
    margin: 0 auto 20px;
    border-radius: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: #fff;
    background: #123280;
    .num {
      font-size: 2.3rem;
      font-weight: 500;
    }
  }
  .ttl {
    order: 2;
    font-size: 5rem;
    line-height: calc(60 / 50);
    font-weight: 700;
    text-align: center;
    color: #337ED5;
    margin: 0 0 10px;
  }
  .read {
    order: 3;
    font-size: 1.8rem;
    line-height: calc(22 / 18);
    font-weight: 500;
    color: #07131E;
    letter-spacing: .2em;
    text-align: center;
  }
}

.c_title_2 {
  font-size: 2.2rem;
  line-height: calc(33 / 22);
  letter-spacing: .2em;
  font-weight: 500;
  padding: 0 0 0 25px;
  position: relative;
  z-index: 0;
  margin: 0 0 25px;
}
.c_title_2:before {
  content: "";
  width: 5px;
  height: 33px;
  background: #337ED5;
  position: absolute;
  left: 0;
  top: .1em;
}

.c_title_3 {
  .ttl {
    font-size: 2.5rem;
    font-weight: 500;
    line-height: calc(37 / 25);
  }
  .en {
    font-family: "Noto Sans JP", serif;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: .1em;
    line-height: calc(30 / 14);
    color: #337ED5;
    padding: 0 0 0 10px;
    position: relative;
    z-index: 0;
  }
  .en:before {
    content: "";
    width: 2px;
    height: 16px;
    position: absolute;
    top: 6px;
    left: 0;
    background: #337ED5;
  }
}

.c_title_4 {
  font-family: "Noto Sans JP", serif;
  letter-spacing: .1em;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #337ED5;
  margin: 0 0 40px;

  .en {
    font-size: clamp(30px,calc(1vw * 45 / 1920 * 100),45px);
    line-height: calc(65 / 45);
    font-weight: bold;
    position: relative;
    z-index: 0;
  }
  .en:after {
    content: "";
    width: 20px;
    height: 3px;
    background: #E70012;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -4px;
  }

  .ja {
    font-size: clamp(14px, calc(1vw * 18 / 1920 * 100),18px);
    font-weight: 600;
    margin: 15px 0 0;
  }
}
.c_title_4._ver2 {
  color: #fff;
}

/* -----------------------------------------------------------
  .breadcrumbs
----------------------------------------------------------- */
.breadcrumbs {
  font-size: 1.3rem;
  line-height: 1.4;
}

.breadcrumbs > .inner {
  display: flex;
  justify-content: flex-end;
}

.breadcrumbs .breadcrumbs_list {
  display: flex;
}

.breadcrumbs .breadcrumbs_list li {
  display: flex;
  align-items: center;
}

.breadcrumbs .breadcrumbs_list li:not(:last-of-type):after {
  background-color: #151515;
  content: "";
  height: 1px;
  width: 15px;
  margin: 0 1em;
}

.breadcrumbs .breadcrumbs_list a:hover {
  color: #337ed5;
}

/* -----------------------------------------------------------
  .container
----------------------------------------------------------- */
#lower .container {
  padding-top: 150px;
}










/* -----------------------------------------------------------
  .contents
----------------------------------------------------------- */
.contents {
  margin-top: 50px;
}

/* -----------------------------------------------------------
  aside
----------------------------------------------------------- */
aside {
}

/* -----------------------------------------------------------
  slider
----------------------------------------------------------- */
.c_slider_1 {
  .swiper-pagination {
    position: static;
  }
  .swiper-slide {
    overflow: hidden;
    aspect-ratio: 680 / 790;
    border-radius: 1.77vw;
    .img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  .swiper-pagination {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 25px 0 0;
  }
  .swiper-pagination-bullet {
    width: 4px;
    height: 19px;
    background: #D5D5D5;
    border-radius: 2px;
    margin: 0;
  }
  .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background: #2366B4;
  }
  .swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0;
  }
}

.c_slider_3 {
  .swiper-slide {
    overflow: hidden;
    border-radius: 1.77vw;
    .img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}
.c_slider_3_thumbnail {
  margin: 25px 0 0;
  .swiper-slide {
    aspect-ratio: 200 / 125;
    overflow: hidden;
    border-radius: 14px;
    .img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  .swiper-slide-thumb-active {
    opacity: .5;
  }
}

.c_slider_4 .swiper-slide {
  aspect-ratio: 411 / 526;
  .img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 1.875vw;
  }
}

.c_works_slider_wrap {
  position: relative;
  .swiper-button {
    aspect-ratio: 1 / 1;
    width: 37px;
    height: 37px;
    background: #ABDDF5;
    font-size: 0;
    cursor: pointer;
  }
  .swiper-button:before,
  .swiper-button:after {
    content: "";
  }
  .swiper-button:after {
    width: 18px;
    height: 18px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    position: absolute;
    left: calc(50% - 6px);
    top: 50%;
    transform: translate(-50%,-50%) rotate(45deg);
  }
  .swiper-button-prev:after {
    left: calc(50% + 5px);
    transform: translate(-50%,-50%) rotate(225deg);
  }
  .swiper-button-prev {
    left: -25px;
  }
  .swiper-button-next {
    right: -25px;
  }
}
.c_works_item {
  background: #fff;
  padding: 30px;
  border-radius: 10px;

  a {
    pointer-events: none;
  }

  .ttl {
    font-family: "Noto Sans JP", serif;
    margin: 20px 0 0;
  }

  .txtbox {
    font-family: "Noto Sans JP", serif;
    font-size: 1.2rem;
    font-weight: 300;
  }

  .imgbox {
    aspect-ratio: 280 / 210;
    width: 100%;
    background: #D5D5D5;
    border-radius: 10px;
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: 10px;
    }
  }
}

.c_mv_slider {
  width: 100%;
  height: 100%;
  .swiper-slide {
    height: 100%;
  }
  .swiper-slide .img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
}


/* -----------------------------------------------------------
  footer
----------------------------------------------------------- */
footer {
  background: linear-gradient(#ffffff, #eaf7ff, #bbe5ff);
  padding-bottom: 50px;
  padding-top: 150px;
  position: relative;
  z-index: 0;
}

footer:before {
  background-image: url(../img/common/footer_bg.png);
  background-position: bottom center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  height: 100%;
  width: 100%;
  position: absolute;
  bottom: 0;
  z-index: -1;
}

footer .footer_box > section:not(:first-of-type) {
  margin-top: 150px;
}

footer .footer_box > section .foot_contents {
  margin-top: 50px;
}

footer .footer_box .above .foot_contents .partner_box .partner_list {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  width: calc(100% + 30px);
}

footer .footer_box .above .foot_contents .partner_box .partner_list > li {
  width: calc(100% / 4 - 30px);
}

footer .footer_box .above .foot_contents .partner_box .partner_list > li a {
  border: 1px solid #cccccc;
  display: block;
}

footer .footer_box .above .foot_contents .partner_box .partner_list > li a:hover {
  opacity: 0.5;
}

footer .footer_box .above .foot_contents .partner_box .partner_list > li img {
  width: 100%;
}

footer .footer_box .below .below_box {
  display: flex;
  gap: 150px;
}

footer .footer_box .below .below_box > section {
  flex: 1 1;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .foot_logo img {
  width: 350px;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company {
  margin-top: 50px;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li:not(:first-of-type) {
  margin-top: 20px;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li:not(:last-of-type):after {
  background-color: #151515;
  content: "";
  display: block;
  margin-top: 20px;
  height: 1px;
  width: 35px;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li > dl > dt {
  font-weight: 700;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li > dl > dd {
  display: flex;
  font-family: "Noto Sans JP", serif;
  margin-top: 5px;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li > dl > dd .address address {
  font-size: 1.4rem;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li > dl > dd .address address span:not(:first-of-type) {
  margin-left: 0.5em;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li > dl > dd .address .inquiry .tel {
  margin-right: 10px;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li > dl > dd .address .inquiry .tel a:hover {
  opacity: 0.5;
}

footer .footer_box .below .below_box .below_group_company .foot_contents .group_company .group_company_list > li > dl > dd .map {
  margin-left: 20px;
}

footer .footer_box .below .below_box .below_contents .foot_contents .list_contents .list_cont {
  font-weight: 700;
  margin-left: 1em;
}

footer .footer_box .below .below_box .below_contents .foot_contents .list_contents .list_cont > li:not(:first-of-type) {
  margin-top: 20px;
}

footer .footer_box .below .below_box .below_contents .foot_contents .list_contents .list_cont li {
  list-style: disc;
}

footer .footer_box .below .below_box .below_contents .foot_contents .list_contents .list_cont li a:hover {
  opacity: 0.5;
}

footer .footer_box .below .below_box .below_contents .foot_contents .list_contents .list_cont > li > ul {
  font-weight: 500;
  margin-left: 1em;
  margin-top: 10px;
}

footer .footer_box .below .below_box .below_contents .foot_contents .list_contents .list_cont > li > ul > li:not(:first-of-type) {
  margin-top: 5px;
}

footer .copyright {
  font-family: "Noto Sans JP", serif;
  margin-top: 150px;
}