@charset "UTF-8";
body {
  margin: 0;
  padding: 0;
}

/*==========================================
  0.reset
========================================== */
main div, main span, main object, main iframe, main h1, main h2, main h3, main h4, main h5, main h6, main p, main blockquote, main pre, main abbr, main address, main cite, main code, main del, main dfn, main em, main img, main ins, main kbd, main q, main samp, main small, main strong, main sub, main sup, main var, main b, main i, main dl, main dt, main dd, main ol, main ul, main li, main fieldset, main form, main label, main legend, main table, main caption, main tbody, main tfoot, main thead, main tr, main th, main td, main article, main aside, main canvas, main details, main figcaption, main figure, main footer, main header, main hgroup, main menu, main nav, main section, main summary, main time, main mark, main audio, main video, header div, header span, header object, header iframe, header h1, header h2, header h3, header h4, header h5, header h6, header p, header blockquote, header pre, header abbr, header address, header cite, header code, header del, header dfn, header em, header img, header ins, header kbd, header q, header samp, header small, header strong, header sub, header sup, header var, header b, header i, header dl, header dt, header dd, header ol, header ul, header li, header fieldset, header form, header label, header legend, header table, header caption, header tbody, header tfoot, header thead, header tr, header th, header td, header article, header aside, header canvas, header details, header figcaption, header figure, header footer, header header, header hgroup, header menu, header nav, header section, header summary, header time, header mark, header audio, header video, footer div, footer span, footer object, footer iframe, footer h1, footer h2, footer h3, footer h4, footer h5, footer h6, footer p, footer blockquote, footer pre, footer abbr, footer address, footer cite, footer code, footer del, footer dfn, footer em, footer img, footer ins, footer kbd, footer q, footer samp, footer small, footer strong, footer sub, footer sup, footer var, footer b, footer i, footer dl, footer dt, footer dd, footer ol, footer ul, footer li, footer fieldset, footer form, footer label, footer legend, footer table, footer caption, footer tbody, footer tfoot, footer thead, footer tr, footer th, footer td, footer article, footer aside, footer canvas, footer details, footer figcaption, footer figure, footer footer, footer header, footer hgroup, footer menu, footer nav, footer section, footer summary, footer time, footer mark, footer audio, footer video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
}
main *,
main *::before,
main *::after, header *,
header *::before,
header *::after, footer *,
footer *::before,
footer *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
  color: #282828;
  font-weight: 500;
}
main article, main aside, main details, main figcaption, main figure, main footer, main header, main hgroup, main menu, main nav, main section, main main, header article, header aside, header details, header figcaption, header figure, header footer, header header, header hgroup, header menu, header nav, header section, header main, footer article, footer aside, footer details, footer figcaption, footer figure, footer footer, footer header, footer hgroup, footer menu, footer nav, footer section, footer main {
  display: block;
}
main ul, main li, header ul, header li, footer ul, footer li {
  list-style: none;
}
main blockquote, main q, header blockquote, header q, footer blockquote, footer q {
  quotes: none;
}
main blockquote::before, main blockquote::after, main q::before, main q::after, header blockquote::before, header blockquote::after, header q::before, header q::after, footer blockquote::before, footer blockquote::after, footer q::before, footer q::after {
  content: "";
  content: none;
}
main a, header a, footer a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  background: transparent;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  display: block;
}
main button, header button, footer button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
main address, header address, footer address {
  font-style: normal;
}
main ins, header ins, footer ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}
main mark, header mark, footer mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}
main del, header del, footer del {
  text-decoration: line-through;
}
main table, header table, footer table {
  border-collapse: collapse;
  border-spacing: 0;
}
main hr, header hr, footer hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #444;
  margin: 1em 0;
  padding: 0;
}
main input, main select, header input, header select, footer input, footer select {
  vertical-align: middle;
}
main button, header button, footer button {
  margin: 0;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
main a,
main a:link,
main a:visited, header a,
header a:link,
header a:visited, footer a,
footer a:link,
footer a:visited {
  text-decoration: none;
}
main img, header img, footer img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
main video, header video, footer video {
  width: 100%;
}

/*==========================================
  Common (PC)
========================================== */
main .-tb,
main .-sp, header .-tb,
header .-sp, footer .-tb,
footer .-sp {
  display: none !important;
}
main .-pc, header .-pc, footer .-pc {
  display: block !important;
}

main {
  padding-top: 68px;
  overflow: hidden;
}
main *,
main *::before,
main *::after {
  font-size: 16px;
  line-height: 2;
  font-weight: 400;
  letter-spacing: 0.09em;
}
main .wrap {
  max-width: 1140px;
  margin: auto;
  padding: 0 20px;
}
main .mv_child {
  background: #0100CA;
  min-height: 335px;
  padding: 80px 0 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  z-index: 0;
  overflow: hidden;
}
main .mv_child::before, main .mv_child::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  position: absolute;
  z-index: -1;
}
main .mv_child::before {
  border-color: #0094ff transparent transparent transparent;
  border-width: 541px 345px 0px 0px;
  top: 0;
  left: 0;
}
main .mv_child::after {
  border-color: transparent transparent #4747ff transparent;
  border-width: 0px 0px 335px 214px;
  bottom: 0;
  right: 0;
}
main .mv_child .wrap {
  max-width: 1180px;
  height: 100%;
  padding: 0 20px;
}
main .mv_child h1 {
  text-align: left;
}
main .mv_child h1 .ttl {
  letter-spacing: -2px;
}
main .mv_child h1 .sub_ttl {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}
main .main_cont {
  position: relative;
  z-index: 0;
  overflow: hidden;
}
main .main_cont::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  border-color: #ddf7ff transparent transparent transparent;
  border-width: 207px 131px 0px 0px;
}
main .bg_texture {
  position: relative;
}
main .bg_texture::after {
  content: "";
  background: url("../img/common/texture01.png") center center/cover no-repeat;
  width: 489px;
  height: 369px;
  position: absolute;
  top: -190px;
  right: -167px;
  z-index: -1;
}
main .mv_child02 {
  background: #D9F1FF;
}
main .mv_child02::before {
  border-color: rgba(221, 247, 255, .5) transparent transparent transparent;
}
main .mv_child02::after {
  border-color: transparent transparent rgba(71, 71, 255, .07) transparent;
}
main .mv_child02 h1 .ttl {
  color: #18287D;
}
main .mv_child02 h1 .sub_ttl {
  color: #18287D;
}
main .mv_child02 + .main_cont::before {
  border-color: rgba(221, 247, 255, .5) transparent transparent transparent;
}
main .menu {
  padding-top: 100px;
  position: relative;
}
main .menu + * {
  padding-top: 80px;
}
main .menu .wrap {
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 100%;
  z-index: 10;
}
main .menu .wrap.follow {
  position: fixed;
  top: 80px;
  bottom: auto;
  height: auto;
}
main .menu ul {
  background: #F5F5F5;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  border-radius: 40px;
  padding: 17px 0 17px 43px;
}
main .menu ul li {
  margin-right: 30px;
}
main .menu ul li:nth-of-type(1) {
  margin-right: 12px;
  padding-right: 30px;
  position: relative;
}
main .menu ul li:nth-of-type(1)::before {
  content: "・";
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
main .menu ul a {
  font-family: "Noto Sans JP";
  font-weight: 700;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: #18287D;
}
main .menu ul .arrow {
  position: relative;
  display: inline-block;
  padding: 0 0 0 16px;
  color: #000;
  vertical-align: middle;
  text-decoration: none;
  font-size: 15px;
  margin-left: 4px;
}
main .menu ul .arrow::before,
main .menu ul .arrow::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  content: "";
  vertical-align: middle;
}
main .menu ul .arrow::before {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
}
main .menu ul .arrow::after {
  width: 5px;
  height: 5px;
  border-top: 1px solid #18287D;
  border-right: 1px solid #18287D;
  top: -2px;
  left: 50%;
  -webkit-transform: translate(-50%, 0) rotate(135deg);
          transform: translate(-50%, 0) rotate(135deg);
}
main h1 {
  text-align: center;
}
main h1 .ttl, main h1 .ttl_inner {
  font-family: "Ibarra Real Nova";
  font-weight: 400;
  font-size: 115px;
  line-height: 1;
  letter-spacing: 0;
  color: #fff;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 10px;
}
main h1 .sub_ttl {
  font-family: "Noto Serif JP";
  font-weight: 700;
  font-size: 22px;
  line-height: 2;
  letter-spacing: 5px;
  color: #fff;
  display: block;
  text-decoration: none !important;
}
main .heading {
  padding: 0 0 6px 25px;
  position: relative;
}
main .heading p {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: #696969;
  margin-top: 17px;
}
main .heading.border::before {
  content: "";
  width: 1px;
  height: 100%;
  background: #000;
  position: absolute;
  top: 0;
  left: 1px;
}
main h2.ttl {
  font-family: "Noto Serif JP", serif;
  font-size: 48px;
  line-height: 1.2;
  letter-spacing: 0;
  display: inline-block;
  position: relative;
  white-space: nowrap;
}
main h2.ttl::before {
  content: "";
  width: 3px;
  height: 100%;
  background: #000;
  position: absolute;
  top: 0;
  left: -25px;
}
main h2.ttl span {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.09em;
  margin-top: 3px;
  display: block;
}
main h3.ttl {
  font-family: "Noto Serif JP";
  font-weight: 600;
  font-size: 24px;
  line-height: 1.375;
  letter-spacing: 0.1em;
  padding-left: 22px;
  border-left: solid 6px #282828;
}
main .btn a, main .btn button {
  font-size: 16px;
  line-height: 1.8;
  text-align: center;
  font-weight: 400;
  letter-spacing: 2px;
  color: #fff;
  background: #18287D;
  border-radius: 27.5px;
  display: inline-block;
  min-width: 310px;
  padding: 13px 76px 13px 60px;
  position: relative;
  z-index: 0;
}
main .btn a:hover, main .btn button:hover {
  color: #18287D;
}
main .btn a:hover::before, main .btn button:hover::before {
  width: calc(100% - 10px);
}
main .btn a::before,
main .btn a .arrow, main .btn button::before,
main .btn button .arrow {
  width: 46px;
  height: 46px;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 5px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
main .btn a::before, main .btn button::before {
  content: "";
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border-radius: 27.5px;
  z-index: -1;
}
main .btn a .arrow::before,
main .btn a .arrow::after, main .btn button .arrow::before,
main .btn button .arrow::after {
  content: "";
  width: 15px;
  height: 2px;
  display: inline-block;
  border-radius: 2px;
  background: #18287D;
  position: absolute;
  right: 13px;
}
main .btn a .arrow::before, main .btn button .arrow::before {
  top: calc(50% - 5.5px);
  -webkit-transform: rotate(40deg);
          transform: rotate(40deg);
}
main .btn a .arrow::after, main .btn button .arrow::after {
  bottom: calc(50% - 5.5px);
  -webkit-transform: rotate(-40deg);
          transform: rotate(-40deg);
}
main .btn-ver02 a, main .btn-ver02 button {
  min-width: 347px;
  padding: 20px 76px 20px 45px;
  text-align: left;
  border-radius: 80px;
  border: solid 1px #18287D;
}
main .btn-ver02 a::before, main .btn-ver02 button::before {
  content: none;
}
main .btn-ver02 a:hover, main .btn-ver02 button:hover {
  background: #fff;
}
main .btn-ver02 a .arrow, main .btn-ver02 button .arrow {
  background: #18287D;
  border: solid 1px #fff;
  right: 12px;
}
main .btn-ver02 a .arrow::before, main .btn-ver02 button .arrow::before {
  width: 5px;
  height: 5px;
  border: 1px solid #fff;
  border-left: 0;
  border-bottom: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transform-origin: top right;
          transform-origin: top right;
  position: absolute;
  top: 50%;
  right: 10px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-radius: 0;
}
main .btn-ver02 a .arrow::after, main .btn-ver02 button .arrow::after {
  width: 23px;
  height: 1px;
  background: #fff;
  position: absolute;
  right: 13px;
  top: 50%;
  left: 50%;
  bottom: auto;
  right: auto;
  -webkit-transform: translate(-50%, -50%) rotate(0);
          transform: translate(-50%, -50%) rotate(0);
}
main .btn-ver02-leftarrow a, main .btn-ver02-leftarrow button {
  padding: 20px 45px 20px 76px;
}
main .btn-ver02-leftarrow a .arrow, main .btn-ver02-leftarrow button .arrow {
  right: auto;
  left: 12px;
  -webkit-transform: translateY(-50%) scale(-1, 1);
          transform: translateY(-50%) scale(-1, 1);
}
main .media_wrap {
  max-width: 1366px;
  margin: auto;
}
main .media {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
main .media .img_wrap {
  width: 50.1464128843%;
  position: relative;
  padding-top: 33.1625183016%;
}
main .media figure {
  width: 110.6569343066%;
  max-width: 758px;
  position: absolute;
  top: 0;
  right: 0;
}
main .media .body {
  width: 45.3879941435%;
  max-width: 620px;
  padding: 0 74px 0 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
main .media .body h3,
main .media .body h3 span {
  font-family: "Noto Serif JP", serif;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.375;
  letter-spacing: 0.1em;
  display: block;
}
main .media .body .btn {
  padding-top: 50px;
  margin: auto 0 0 auto;
  text-align: right;
}
main .media-add-title {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
main .media-add-title .img_wrap {
  width: 49.3411420205%;
}
main .media-add-title figure {
  width: 114.0949554896%;
  max-width: 769px;
  left: 0;
  right: auto;
}
main .media-add-title .body {
  max-width: 475px;
  margin: 0 103px 0 auto;
  padding: 0 0 0 20px;
}
.contact_section {
  background: #D9F1FF;
  padding: 85px 0 80px;
}
.contact_section .inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.contact_section h2 {
  width: 265px;
}
.contact_section h2, .contact_section h2 span {
  color: #18287D;
}
.contact_section .body {
  width: calc(100% - 328px);
}
.contact_section .body p {
  color: #18287D;
  display: flex;
  justify-content: space-around;
}
.contact_section .body .btn {
  margin-top: 45px;
  text-align: right;
}

/*==========================================
  HEADER (PC)
========================================== */
header {
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}
header .logo {
  width: 140px;
}
header .nav {
  padding: 0 0 0 20px;
  width: 100%;
  height: 68px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-bottom: solid 1px #EAEAEA;
}
header .nav_body, header .parent_menu, header .parent_menu li {
  height: 100%;
}
header .nav_body .parent_menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
header .nav_body .js-megaMenu {
  margin: 0 20px;
}
header .nav_body .megaMenu_link {
  position: relative;
}
header .nav_body .megaMenu_link:hover {
  color: #18287D;
}
header .nav_body .megaMenu_link:hover::before {
  content: "";
  width: 100%;
  height: 3px;
  background: #18287D;
  position: absolute;
  left: 0;
  bottom: -1px;
}
header .nav_body a {
  font-size: 16.5px;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
header .nav_body a.arrow {
  position: relative;
}
header .nav_body a.arrow::before, header .nav_body a.arrow::after {
  content: "";
}
header .nav_body a.arrow::before {
  width: 5px;
  height: 5px;
  border: 1px solid #18287D;
  border-left: 0;
  border-bottom: 0;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transform-origin: top right;
          transform-origin: top right;
  position: absolute;
  top: 50%;
  right: 6px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-radius: 0;
}
header .nav_body a.arrow::after {
  width: 9px;
  height: 1px;
  background: #18287D;
  position: absolute;
  right: 13px;
  top: 50%;
  right: 6px;
  -webkit-transform: translate(0, -50%) rotate(0);
          transform: translate(0, -50%) rotate(0);
}
header .nav_body .contact {
  background: #282828;
  padding: 0 42px;
  margin: 0 0 0 20px;
  color: #fff;
}
header .nav_body .contact:hover {
  opacity: 0.7;
}
header .sns,
header .openbtn {
  display: none !important;
}
header .megaMenu_cont {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background-color: #fff;
  -webkit-transition: opacity 0.3s, visibility 0.3s;
  transition: opacity 0.3s, visibility 0.3s;
  padding: 33px 0 56px;
}
header .megaMenu_inner {
  max-width: 1122px;
  padding: 0 20px;
  margin: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
header .megaMenu_inner figure {
  width: 46.2107208872%;
}
header .megaMenu_inner .megaMenu_list {
  width: 53.78928%;
  max-width: 518px;
  margin-left: 30px;
}
header .megaMenu_inner .col2 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
header .megaMenu_inner .col2 li {
  min-width: 227px;
  width: auto;
}
header .megaMenu_inner li {
  width: 227px;
  height: auto;
}
header .megaMenu_inner li a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  margin: 0;
  width: 100%;
  height: auto;
  padding: 18px 8px;
  border-bottom: solid 1px #EAEAEA;
}
header .megaMenu_inner li a:hover {
  opacity: 0.6;
}
header .megaMenu_inner .megaMenu_child li a {
  padding: 10px 20px;
  border: none;
  width: auto;
  display: inline-block;
}
header .megaMenu_inner .megaMenu_child li a.arrow::before {
  right: -6px;
}
header .megaMenu_inner .megaMenu_child li a.arrow::after {
  right: -6px;
}
header .lozi {
  margin-left: 1rem;
}
/*==========================================
  FOOTER (PC)
========================================== */
footer .footer_inner {
  max-width: 1255px;
  margin: auto;
  padding: 17px 0 63px 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  position: relative;
}
footer .footer_inner::before {
  content: "";
  width: 100vw;
  height: 1px;
  background: #F5F5F5;
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
footer .footer_inner .logo {
  width: 18.7250996016%;
  min-width: 180px;
  margin: 40px 0 0;
}
footer .footer_inner .p-mark {
  width: 75px;
}
footer .footer_nav {
  margin: 40px 15px 0;
}
footer .footer_nav ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
footer .footer_nav ul + ul {
  margin-top: 17px;
}
footer .footer_nav ul + ul a {
  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
  color: #696969;
}
footer .footer_nav li {
  padding: 0 15px;
}
footer .footer_icon_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  margin-top: 40px;
  justify-content: space-between;
}
footer .sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-left: 20px;
}
footer .sns li {
  height: 70px;
  padding: 0 20px;
  position: relative;
}
footer .sns li + li::before {
  content: "";
  width: 1px;
  height: 75px;
  background: #000;
  position: absolute;
  left: 0;
  top: 45%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
footer .sns a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
}
footer .sns span {
  font-size: 9px;
  line-height: 1.5;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.06em;
  color: #696969;
}
footer .sns img {
  display: block;
}
footer .sns .x img {
  width: 36px;
}
footer .sns .instagram img {
  width: 40px;
}
footer .company_logo_list {
  gap: 30px;
  max-width: 1140px;
  padding: 36px 20px 33px;
  margin: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
footer .company_logo_list .company01 {
  max-width: 303px;
  width: 30.9183673469%;
}
footer .company_logo_list .company02 {
  max-width: 385px;
  width: 39.2857142857%;
}
footer .company_logo_list .company03 {
  max-width: 114px;
  width: 11.6326530612%;
}
footer .company_logo_list .company04 {
  max-width: 114px;
  width: 11.6326530612%;
}
footer .company_logo_list .company05 {
  max-width: 114px;
  width: 11.6326530612%;
}
footer .company_logo_list .company06 {
  max-width: 303px;
  width: 30.9183673469%;
}
footer .copyright {
  background: #282828;
  padding: 21px 0 22px;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.06em;
  color: #fff;
}
body {
  position: relative;
}
.scroll-top_wrap {
  margin: 0;
}
.scroll-top {
  display: inline-block;
  position: fixed;
  bottom: 2vw;
  right: 20px;
  display: none;
}
.scroll-top:hover {
  opacity: 0.7;
}
@media screen and (min-width: 768px) and (max-width: 1180px) {
  main h1 .ttl, main h1 .ttl_inner {
    font-size: 9.7457627119vw;
  }
}
@media screen and (min-width: 768px) and (max-width: 1140px) {
  main .media-add-title .body {
    margin: 0 9.0350877193% 0 auto;
  }
}
@media screen and (min-width: 768px) and (max-width: 1365px) {
  main .media .body {
    padding: 0 2.196193265% 0 0;
  }
  main .media-add-title .body {
    padding: 0 0 0 20px;
  }
}
@media screen and (min-width: 768px) and (max-width: 980px) {
  header .nav_body .js-megaMenu {
    margin: 0 10px;
  }
  footer .footer_nav {
    margin: 40px 10px 0;
  }
  footer .footer_nav li {
    padding: 0 10px;
  }
}
@media screen and (max-width: 767px) {
  /*==========================================
    Common (SP)
  ========================================== */
  main .-pc,
  main .-tb, header .-pc,
  header .-tb, footer .-pc,
  footer .-tb {
    display: none !important;
  }
  main .-sp, header .-sp, footer .-sp {
    display: block !important;
  }
  main {
    padding-top: 14vw;
  }
  main *,
  main *::before,
  main *::after {
    font-size: 3.7333333333vw;
    line-height: 1.78;
    font-weight: 500;
  }
  main .wrap {
    max-width: 86.6666666667vw;
    padding: 0;
  }
  main .mv_child {
    min-height: 45.2vw;
    padding: 4.4vw 0 5.2vw;
  }
  main .mv_child::before {
    border-width: 11.4666666667vw 49.8666666667vw 0px 0px;
  }
  main .mv_child::after {
    border-width: 0px 0px 11.4666666667vw 49.8666666667vw;
  }
  main .mv_child .wrap {
    max-width: 87.6vw;
    padding: 0;
  }
  main .mv_child h1 .ttl {
    font-size: 13.2vw;
    letter-spacing: 0;
  }
  main .main_cont::before {
    content: none;
  }
  main .bg_texture::after {
    width: 56.6666666667vw;
    height: 42.6666666667vw;
    top: -15vw;
    right: -10.6666666667vw;
  }
  main .menu {
    display: none;
  }
  main .menu + * {
    padding-top: 15.7333333333vw;
  }
  main h1 .ttl, main h1 .ttl_inner {
    font-size: 18vw;
    text-decoration-thickness: 0.2666666667vw;
    text-underline-offset: 1.3333333333vw;
  }
  main h1 .sub_ttl {
    font-size: 3.4666666667vw;
    line-height: 1.88;
    letter-spacing: 0.4vw;
  }
  main .heading {
    padding: 0 0 0 4vw;
  }
  main .heading p {
    display: none;
  }
  main .heading.border::before {
    content: none;
  }
  main h2.ttl {
    font-size: 7.4666666667vw;
    line-height: 1;
  }
  main h2.ttl::before {
    width: 0.8vw;
    left: -4vw;
  }
  main h2.ttl span {
    font-size: 3.7333333333vw;
    font-weight: 500;
    line-height: 1.78;
    margin-top: 1.0666666667vw;
  }
  main h3.ttl {
    font-size: 5.0666666667vw;
    line-height: 1.5;
    padding-left: 4.8vw;
    border-left: solid 0.8vw #282828;
  }
  main .btn a, main .btn button {
    font-size: 3.4vw;
    font-weight: 700;
    border-radius: 13vw;
    min-width: 72vw;
    padding: 3.6vw 16vw 3.8666666667vw;
  }
  main .btn a:hover, main .btn button:hover {
    color: #fff;
  }
  main .btn a::before,
  main .btn a .arrow, main .btn button::before,
  main .btn button .arrow {
    width: 10.6666666667vw;
    height: 10.6666666667vw;
    right: 2.2666666667vw;
  }
  main .btn a::before, main .btn button::before {
    content: none;
  }
  main .btn a .arrow::before,
  main .btn a .arrow::after, main .btn button .arrow::before,
  main .btn button .arrow::after {
    content: "";
    width: 3.4666666667vw;
    height: 2px;
    right: 3.0666666667vw;
  }
  main .btn a .arrow::before, main .btn button .arrow::before {
    top: calc(50% - 1.26667vw);
  }
  main .btn a .arrow::after, main .btn button .arrow::after {
    bottom: calc(50% - 1.26667vw);
  }
  main .btn-ver02 a, main .btn-ver02 button {
    font-weight: 500;
    min-width: 84.2666666667vw;
    padding: 4.5333333333vw 17.3333333333vw 4.5333333333vw 10.8vw;
    border-radius: 19.8666666667vw;
  }
  main .btn-ver02 a:hover, main .btn-ver02 button:hover {
    background: #18287D;
  }
  main .btn-ver02 a .arrow, main .btn-ver02 button .arrow {
    right: 2.8vw;
    border: solid 0.5333333333vw #fff;
  }
  main .btn-ver02 a .arrow::before, main .btn-ver02 button .arrow::before {
    width: 2.6666666667vw;
    height: 2.6666666667vw;
    border: 0.5333333333vw solid #fff;
    border-left: 0;
    border-bottom: 0;
    top: 50%;
    right: 1.3333333333vw;
  }
  main .btn-ver02 a .arrow::after, main .btn-ver02 button .arrow::after {
    width: 5.4666666667vw;
    height: 0.5333333333vw;
    right: 1.7333333333vw;
  }
  main .btn-ver02-leftarrow a, main .btn-ver02-leftarrow button {
    padding: 4.5333333333vw 10.8vw 4.5333333333vw 17.3333333333vw;
  }
  main .btn-ver02-leftarrow a .arrow, main .btn-ver02-leftarrow button .arrow {
    left: 2.8vw;
  }
  main .media_wrap {
    max-width: 100%;
  }
  main .media {
    display: block;
  }
  main .media .img_wrap {
    width: 93.3333333333vw;
    padding-top: 0;
  }
  main .media figure {
    width: 100%;
    max-width: 100%;
    position: relative;
  }
  main .media .body {
    width: 86.6666666667vw;
    max-width: 86.6666666667vw;
    margin: auto;
    padding: 0;
  }
  main .media .body h3,
  main .media .body h3 span {
    font-size: 5.0666666667vw;
    line-height: 1.5;
  }
  main .media .body .btn {
    padding-top: 10vw;
    margin: auto;
    text-align: center;
  }
  main .media-add-title {
    position: relative;
  }
  main .media-add-title .heading {
    margin-bottom: 60.6666666667vw;
  }
  main .media-add-title .img_wrap {
    width: 93.3333333333vw;
    position: absolute;
    top: 25.3333333333vw;
    right: 0;
  }
  main .media-add-title figure {
    width: 100%;
    max-width: 100%;
  }
  main .media-add-title .body {
    max-width: 86.6666666667vw;
    margin: auto;
    padding: 0;
  }
  .contact_section {
    padding: 11.4666666667vw 0 16vw;
  }
  .contact_section .inner {
    display: block;
  }
  .contact_section h2 {
    width: 86.6666666667vw;
  }
  .contact_section .body {
    margin-top: 7.3333333333vw;
    width: 86.6666666667vw;
  }
  .contact_section .body .btn {
    margin-top: 16vw;
    text-align: center;
  }
  /*==========================================
    HEADER (PC)
  ========================================== */
  header .logo {
    width: 33.4666666667vw;
  }
  header .nav {
    padding: 0 0 0 2.2666666667vw;
    height: 14vw;
  }
  header .nav_body {
    display: block;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    background: #fff;
    position: absolute;
    overflow-y: scroll;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100vh;
    padding: 10.4vw 0 20vh;
  }
  header .nav_body .parent_menu {
    height: auto;
    display: block;
  }
  header .nav_body .js-megaMenu {
    margin: 0 6.6666666667vw;
    height: auto;
  }
  header .nav_body .megaMenu_link {
    display: none;
  }
  header .nav_body button {
    position: relative;
    width: 100%;
    text-align: left;
    border-bottom: solid 1px #EAEAEA;
    font-size: 3.7333333333vw;
    padding: 4.2666666667vw 0;
  }
  header .nav_body button::before {
    content: "+";
    position: absolute;
    top: 50%;
    right: 2.6666666667vw;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  header .nav_body button.active::before {
    content: "";
    width: 10px;
    height: 1px;
    background: #282828;
  }
  header .nav_body a {
    font-size: 3.7333333333vw;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    padding: 4.2666666667vw 0;
  }
  header .nav_body a.arrow {
    position: relative;
  }
  header .nav_body a.arrow::before, header .nav_body a.arrow::after {
    content: "";
  }
  header .nav_body a.arrow::before {
    width: 1.3333333333vw;
    height: 1.3333333333vw;
    border: 1px solid #282828;
    border-left: 0;
    border-bottom: 0;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-transform-origin: top right;
            transform-origin: top right;
    position: absolute;
    top: 50%;
    right: -5.3333333333vw;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 0;
  }
  header .nav_body a.arrow::after {
    width: 2.6666666667vw;
    height: 1px;
    background: #282828;
    position: absolute;
    right: 1.7333333333vw;
    top: 50%;
    right: -5.3333333333vw;
    -webkit-transform: translate(0, -50%) rotate(0);
            transform: translate(0, -50%) rotate(0);
  }
  header .nav_body.open {
    opacity: 1;
    visibility: inherit;
  }
  header .sns,
  header .openbtn {
    display: block !important;
  }
  header .sns {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 8.2666666667vw;
  }
  header .sns li {
    margin: 0 6.2666666667vw;
  }
  header .sns .p-mark {
    width: 12.5333333333vw;
  }
  header .sns .x {
    width: 6.9333333333vw;
  }
  header .sns .instagram {
    width: 7.6vw;
  }
  header .openbtn {
    position: absolute;
    top: 0;
    right: 0;
    background: #282828;
    cursor: pointer;
    width: 14vw;
    height: 14vw;
  }
  header .openbtn p {
    font-size: 2.6666666667vw;
    color: #fff;
    font-weight: 400;
    text-align: center;
    padding-top: 8vw;
  }
  header .openbtn .close_txt {
    display: none;
  }
  header .openbtn.active .open_txt {
    display: none;
  }
  header .openbtn.active .close_txt {
    display: block;
  }
  header .openbtn span {
    display: inline-block;
    -webkit-transition: all 0.4s;
    transition: all 0.4s;
    position: absolute;
    left: 50%;
    height: 0.4vw;
    background: #fff;
    width: 55%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  header .openbtn span:nth-of-type(1) {
    top: 2.5333333333vw;
  }
  header .openbtn span:nth-of-type(2) {
    top: 4.4vw;
  }
  header .openbtn span:nth-of-type(3) {
    top: 6.2666666667vw;
  }
  header .openbtn.active span:nth-of-type(1) {
    top: 4.5333333333vw;
    -webkit-transform: translateX(-50%) rotate(-30deg);
            transform: translateX(-50%) rotate(-30deg);
    width: 55%;
  }
  header .openbtn.active span:nth-of-type(2) {
    opacity: 0;
  }
  header .openbtn.active span:nth-of-type(3) {
    top: 4.5333333333vw;
    -webkit-transform: translateX(-50%) rotate(30deg);
            transform: translateX(-50%) rotate(30deg);
    width: 55%;
  }
  header .megaMenu_cont {
    display: none;
    position: relative;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: #fff;
    -webkit-transition: none;
    transition: none;
    padding: 0 0 30px;
  }
  header .megaMenu_inner {
    max-width: 100%;
    padding: 0;
    margin: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  header .megaMenu_inner figure {
    display: none;
  }
  header .megaMenu_inner .megaMenu_list {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
  }
  header .megaMenu_inner .col2 {
    display: block;
  }
  header .megaMenu_inner .col2 li {
    min-width: auto;
    width: auto;
  }
  header .megaMenu_inner li {
    width: 100%;
    height: auto;
  }
  header .megaMenu_inner li a {
    padding: 12px 0;
    border: none;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
  header .megaMenu_inner li a:hover {
    opacity: 1;
  }
  header .megaMenu_inner .megaMenu_child li a {
    padding: 12px;
    font-weight: 400;
    border: none;
    width: auto;
    display: inline-block;
  }
  header .megaMenu_inner .megaMenu_child li a.arrow::before {
    right: -6px;
  }
  header .megaMenu_inner .megaMenu_child li a.arrow::after {
    right: -6px;
  }
  /*==========================================
    FOOTER (PC)
  ========================================== */
  footer .footer_inner {
    display: block;
    max-width: 100%;
    padding: 10.4vw 0 9.6vw;
  }
  footer .footer_inner::before {
    content: none;
  }
  footer .footer_inner .logo {
    width: 50vw;
    min-width: auto;
    margin: 0 auto;
  }
  footer .footer_inner .p-mark {
    width: 19.6vw;
    margin: 9.6vw auto 0;
  }
  footer .footer_nav {
    margin: 9.0666666667vw 8.9333333333vw 0;
  }
  footer .footer_nav ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  footer .footer_nav ul + ul {
    margin-top: 2.2666666667vw;
  }
  footer .footer_nav li {
    padding: 0;
  }
  footer .footer_nav li a {
    font-size: 3.4666666667vw;
    line-height: 3;
    padding: 0 4vw;
  }
  footer .footer_icon_wrap {
    display: block;
    margin-top: 5.0666666667vw;
  }
  footer .sns {
    margin: 9.6vw 0 0;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  footer .sns li {
    height: 20.6666666667vw;
    padding: 0 4vw;
  }
  footer .sns li + li::before {
    height: 21.3333333333vw;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  footer .sns span {
    font-size: 2.9333333333vw;
  }
  footer .sns .x img {
    width: 10.1333333333vw;
  }
  footer .sns .instagram img {
    width: 11.2vw;
  }
  footer .company_logo_list {
    max-width: 100%;
    padding: 4.8vw 0 5.7333333333vw;
    display: block;
  }
  footer .company_logo_list li {
    margin: auto;
  }
  footer .company_logo_list li + li {
    margin-top: 40px;
  }
  footer .company_logo_list .company01 {
    max-width: 100%;
    width: 45.333333vw;
  }
  footer .company_logo_list .company02 {
    max-width: 100%;
    width: 55.533333vw;
  }
  footer .company_logo_list .company03 {
    max-width: 100%;
    width: 15.55vw;
  }
  footer .copyright {
    padding: 5.0666666667vw 0;
    font-size: 2.6666666667vw;
  }
  html, body {
    overflow-x: hidden;
  }
  .js-hidden {
    overflow: hidden;
    width: 100%;
    position: fixed;
  }
  .js-hidden body {
    overflow: hidden;
    width: 100%;
    position: fixed;
  }
}
