@charset "UTF-8";
/* reset5 © 2011 opensource.736cs.com MIT */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, audio, canvas, details, figcaption, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, summary, time, video {
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  margin: 0;
  padding: 0; }

body {
  line-height: 1; }

article, aside, dialog, figure, footer, header, hgroup, nav, section, blockquote {
  display: block; }

nav ul {
  list-style: none; }

ol {
  list-style: decimal; }

ul {
  list-style: disc; }

ul ul {
  list-style: circle; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after, q:before, q:after {
  content: none; }

ins {
  text-decoration: underline; }

del {
  text-decoration: line-through; }

mark {
  background: none; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted #000;
  cursor: help; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

input[type=submit], input[type=button], button {
  margin: 0 !important;
  padding: 0 !important; }

input, select, a img {
  vertical-align: middle; }

/* フォームのリセットここから */
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none; }

textarea {
  resize: vertical; }

input[type='checkbox'],
input[type='radio'] {
  display: none; }

input[type='submit'],
input[type='button'],
label,
button,
select {
  cursor: pointer; }

select::-ms-expand {
  display: none; }

/* フォームのリセットここまで */
html {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 10px; }

*, *:before, *:after {
  -moz-box-sizing: inherit;
  -webkit-box-sizing: inherit;
  box-sizing: inherit; }

body {
  -webkit-text-size-adjust: 100%;
  	/*
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  	*/ }

main {
  display: block; }

h1, h2, h3, h4, h5, h6 {
  font-weight: normal; }

ul, ol {
  list-style: none !important; }

a {
  color: inherit;
  text-decoration: none; }

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
  color: inherit;
  font-size: inherit; }

img {
  width: auto;
  height: auto;
  max-width: 100%;
  vertical-align: top; }

mark {
  color: inherit; }

span.nowrap {
  display: inline-block; }

span.pc {
  display: inline; }
  @media screen and (max-width: 768px) {
    span.pc {
      display: none; } }

span.sp {
  display: none; }
  @media screen and (max-width: 768px) {
    span.sp {
      display: inline; } }

html {
  font-size: 10px; }
  @media screen and (max-width: 1366px) {
    html {
      font-size: calc(10 / 1366 * 100vw); } }
  @media screen and (max-width: 768px) {
    html {
      font-size: calc(10 / 585 * 100vw); } }

body {
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt"; }
  @media screen and (max-width: 768px) {
    .menu-active body {
      overflow: hidden; } }

@keyframes flash {
  0% {
    opacity: 1; }
  1% {
    opacity: .4; }
  100% {
    opacity: 1; } }
#header .logo {
  position: fixed;
  left: 2.5rem;
  top: 3.8rem;
  z-index: 1100; }
  #header .logo a {
    display: block;
    width: 15rem; }
    @media screen and (max-width: 768px) {
      #header .logo a {
        leftr: 3.2rem;
        top: 4rem;
        width: 20rem; } }
    #header .logo a img {
      width: 100%; }
    @media screen and (min-width: 769px) {
      #header .logo a:hover {
        animation: flash 1s; } }
#header nav.global {
  position: fixed;
  top: 3rem;
  right: 3rem;
  z-index: 1100;
  display: flex;
  gap: 4rem; }
  @media screen and (max-width: 768px) {
    #header nav.global {
      right: 10.5rem;
      top: 2.5rem; } }
  #header nav.global ul {
    display: flex;
    gap: 3rem; }
    @media screen and (max-width: 768px) {
      #header nav.global ul {
        display: none; } }
    #header nav.global ul li a {
      font-size: 1.8rem;
      line-height: 5rem;
      color: #f15a24;
      font-weight: 600; }
      @media screen and (min-width: 769px) {
        #header nav.global ul li a:hover {
          animation: flash 1s; } }
  #header nav.global p a {
    position: relative;
    display: block;
    width: 15rem;
    line-height: 5rem;
    font-size: 2rem;
    font-weight: 900;
    color: #003296;
    text-align: center;
    background-color: #f15a24; }
    #header nav.global p a > span {
      position: relative;
      z-index: 1; }
    #header nav.global p a:before {
      content: "";
      background-color: #fff;
      width: 100%;
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      transform-origin: 100% 0;
      transform: scaleX(0);
      transition: transform 0.3s ease; }
    @media screen and (min-width: 769px) {
      #header nav.global p a:hover:before {
        transform-origin: 0 0;
        transform: scaleX(1); } }
    @media screen and (max-width: 768px) {
      #header nav.global p a {
        width: 16rem;
        line-height: 8rem;
        font-size: 3.8rem; } }
#header p.menu {
  display: none; }
  @media screen and (max-width: 768px) {
    #header p.menu {
      position: fixed;
      z-index: 1100;
      display: block;
      top: 2.5rem;
      right: 2.5rem; }
      #header p.menu button {
        position: relative;
        width: 8rem;
        height: 8rem;
        background-color: #fff; }
        #header p.menu button:before, #header p.menu button:after,
        #header p.menu button span {
          content: "";
          display: block;
          width: 3.2rem;
          height: 4px;
          background-color: #f15a24;
          text-indent: -9999px;
          overflow: hidden;
          position: absolute;
          top: calc(50% - 2px);
          left: calc(50% - 1.6rem); }
        #header p.menu button:before {
          margin-top: -1.2rem; }
          .menu-active #header p.menu button:before {
            margin-top: 0;
            transform: rotate(-45deg); }
        #header p.menu button:after {
          margin-top: 1.2rem; }
          .menu-active #header p.menu button:after {
            margin-top: 0;
            transform: rotate(45deg); }
        .menu-active #header p.menu button span {
          opacity: 0; } }
#header nav.menu {
  display: none; }
  @media screen and (max-width: 768px) {
    #header nav.menu {
      position: fixed;
      z-index: 1000;
      display: block;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: #0f0a4b;
      overflow: auto;
      display: flex;
      align-items: center;
      pointer-events: none;
      opacity: 0;
      transition: all ease .5s; }
      .menu-active #header nav.menu {
        pointer-events: auto;
        opacity: 1; } }
  #header nav.menu .container {
    padding: 0 6rem;
    margin: auto 0; }
    #header nav.menu .container:before {
      content: "";
      height: 7rem;
      display: block; }
    #header nav.menu .container ul li {
      margin: 3rem 0; }
      #header nav.menu .container ul li a {
        color: #0f0a4b;
        font-weight: 600;
        display: inline-block;
        font-size: 4rem;
        line-height: 5.4rem;
        padding: 0 .8rem;
        background-color: #f15a24; }
#header:before {
  content: "";
  display: block;
  background-color: #003296;
  height: 11rem;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  transition: all ease .3s; }
  @media screen and (max-width: 768px) {
    #header:before {
      height: 13rem; } }

#footer {
  position: relative;
  border-top: 1px solid #f15a24;
  background-color: #0f0a4b;
  padding: 5rem 0 6rem; }
  @media screen and (max-width: 768px) {
    #footer {
      padding: 4rem 0 5.6rem; } }
  #footer .pagetop {
    position: absolute;
    right: 5rem;
    bottom: 5rem; }
    @media screen and (max-width: 768px) {
      #footer .pagetop {
        right: 4rem;
        bottom: 5.6rem; } }
    #footer .pagetop a {
      display: block;
      text-indent: -9999px;
      overflow: hidden;
      background-image: url("../images/footer_pagetop.svg");
      background-size: 100% 100%;
      width: 5.6rem;
      height: 12.8rem;
      z-index: 1000; }
      @media screen and (min-width: 769px) {
        #footer .pagetop a:hover {
          animation: flash 1s; } }
  #footer .container {
    width: 126.6rem;
    margin: 0 auto;
    display: flex;
    gap: 8rem; }
    @media screen and (max-width: 768px) {
      #footer .container {
        display: block;
        width: 50.5rem; } }
    #footer .container .company .logo {
      width: 20rem; }
      #footer .container .company .logo img {
        width: 100%; }
    #footer .container .company .name {
      font-size: 1.8rem;
      font-weight: bold;
      margin-top: 2rem;
      color: #fff;
      letter-spacing: .015em; }
    #footer .container .company .copyright {
      font-size: 1.4rem;
      margin-top: 1rem;
      color: #fff; }
    #footer .container nav {
      font-size: 1.8rem;
      line-height: 3.1rem;
      font-weight: 500;
      color: #fff;
      display: flex;
      gap: 4rem;
      margin-top: -.5rem; }
      @media screen and (max-width: 768px) {
        #footer .container nav {
          margin-top: 4.5rem; } }
      #footer .container nav ul li a {
        display: block;
        position: relative;
        padding-right: 2rem;
        letter-spacing: .1em; }
        #footer .container nav ul li a:before {
          content: "";
          display: block;
          background-image: url("../images/footer_nav_arrow.svg");
          background-size: 100% 100%;
          width: .9rem;
          height: .9rem;
          position: absolute;
          right: 0;
          top: 50%;
          transform: translateY(-50%); }
        @media screen and (min-width: 769px) {
          #footer .container nav ul li a:hover {
            animation: flash 1s; } }

main header.visual {
  height: calc(713 / 1366 * 100vw);
  background-color: #003296;
  padding-top: calc(88 / 1366 * 100vw); }
  @media screen and (max-width: 768px) {
    main header.visual {
      height: calc(430 / 585 * 100vw); } }
  main header.visual img {
    width: 100%; }
  @media screen and (max-width: 768px) {
    main header.visual {
      padding-top: calc(162 / 585 * 100vw); } }
  main header.visual h1 {
    position: relative; }
    main header.visual h1 span {
      display: block;
      transition: clip-path ease-in-out .5s;
      clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0); }
      .is-loaded main header.visual h1 span {
        clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
    main header.visual h1 span:nth-child(1) {
      position: absolute;
      top: calc(0 / 1366 * 100vw);
      left: calc(27 / 1366 * 100vw);
      width: calc(1312 / 1366 * 100vw); }
    main header.visual h1 span:nth-child(2) {
      position: absolute;
      top: calc(234 / 1366 * 100vw);
      left: calc(25 / 1366 * 100vw);
      width: calc(1320 / 1366 * 100vw);
      transition-delay: .2s; }
    main header.visual h1 span:nth-child(3) {
      position: absolute;
      top: calc(492 / 1366 * 100vw);
      left: calc(23 / 1366 * 100vw);
      width: calc(1322 / 1366 * 100vw);
      transition-delay: .4s; }
main section.intro {
  position: relative;
  height: calc(1475 / 1366 * 100vw);
  background-color: #003296;
  overflow: hidden; }
  main section.intro img {
    width: 100%; }
  main section.intro p span {
    display: block;
    transition: clip-path ease-in-out .5s;
    clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0); }
    .visual-animation-end main section.intro p span[data-inview-active] {
      clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
    @media screen and (max-width: 768px) {
      .visual-animation-end main section.intro p span {
        clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); } }
  main section.intro p span:nth-child(1) {
    position: absolute;
    top: 0;
    left: calc(32 / 1366 * 100vw);
    width: calc(1312 / 1366 * 100vw); }
  main section.intro p span:nth-child(2) {
    position: absolute;
    top: calc(117 / 1366 * 100vw);
    left: calc(20 / 1366 * 100vw);
    width: calc(903 / 1366 * 100vw); }
  main section.intro p span:nth-child(3) {
    position: absolute;
    top: calc(262 / 1366 * 100vw);
    left: calc(22.5 / 1366 * 100vw);
    width: calc(789 / 1366 * 100vw); }
  main section.intro p span:nth-child(4) {
    position: absolute;
    top: calc(336 / 1366 * 100vw);
    left: calc(23 / 1366 * 100vw);
    width: calc(777 / 1366 * 100vw); }
  main section.intro p span:nth-child(5) {
    position: absolute;
    top: calc(418.6 / 1366 * 100vw);
    left: calc(19 / 1366 * 100vw);
    width: calc(786 / 1366 * 100vw); }
  main section.intro p span:nth-child(6) {
    position: absolute;
    top: calc(565 / 1366 * 100vw);
    left: calc(227 / 1366 * 100vw);
    width: calc(1118 / 1366 * 100vw); }
  main section.intro p span:nth-child(7) {
    position: absolute;
    top: calc(680 / 1366 * 100vw);
    left: calc(235 / 1366 * 100vw);
    width: calc(1113 / 1366 * 100vw); }
  main section.intro p span:nth-child(8) {
    position: absolute;
    top: calc(780 / 1366 * 100vw);
    left: calc(227 / 1366 * 100vw);
    width: calc(1081 / 1366 * 100vw); }
  main section.intro p span:nth-child(9) {
    position: absolute;
    top: calc(872 / 1366 * 100vw);
    left: calc(227 / 1366 * 100vw);
    width: calc(906 / 1366 * 100vw); }
  main section.intro p span:nth-child(10) {
    position: absolute;
    top: calc(968 / 1366 * 100vw);
    left: calc(227 / 1366 * 100vw);
    width: calc(1064 / 1366 * 100vw); }
  main section.intro p span:nth-child(11) {
    position: absolute;
    top: calc(1130 / 1366 * 100vw);
    left: calc(168 / 1366 * 100vw);
    width: calc(1133 / 1366 * 100vw); }
  main section.intro p span:nth-child(12) {
    position: absolute;
    top: calc(1222 / 1366 * 100vw);
    left: calc(245 / 1366 * 100vw);
    width: calc(1103 / 1366 * 100vw); }
  main section.intro p span:nth-child(13) {
    position: absolute;
    top: calc(1340 / 1366 * 100vw);
    left: calc(273 / 1366 * 100vw);
    width: calc(1062 / 1366 * 100vw); }
  main section.intro > .decor > div {
    transition: transform ease-in-out .5s, opacity ease-in-out .5s;
    opacity: 0;
    position: absolute;
    background-size: 100% 100%; }
    .visual-animation-end main section.intro > .decor > div[data-inview-active] {
      opacity: 1; }
    main section.intro > .decor > div:nth-child(1) {
      background-image: url("../images/intro_decor_01.png");
      width: calc(771 / 1366 * 100vw);
      height: calc(610.5 / 1366 * 100vw);
      right: calc(-150 / 1366 * 100vw);
      top: 0; }
    main section.intro > .decor > div:nth-child(2) {
      background-image: url("../images/intro_decor_02.png");
      width: calc(406.5 / 1366 * 100vw);
      height: calc(610 / 1366 * 100vw);
      top: calc(510 / 1366 * 100vw);
      left: calc(-113 / 1366 * 100vw); }
    main section.intro > .decor > div:nth-child(3) {
      background-image: url("../images/intro_decor_03.png");
      width: calc(344.5 / 1366 * 100vw);
      height: calc(437.5 / 1366 * 100vw);
      top: calc(742 / 1366 * 100vw);
      right: 0; }
    main section.intro > .decor > div:nth-child(4) {
      background-image: url("../images/intro_decor_04.png");
      width: calc(276.5 / 1366 * 100vw);
      height: calc(353 / 1366 * 100vw);
      bottom: 0;
      left: calc(-15 / 1366 * 100vw); }
main section.reason {
  position: relative;
  background-color: #0f0a4b;
  padding: 9rem 0 10rem;
  overflow: hidden; }
  @media screen and (max-width: 768px) {
    main section.reason {
      padding: 5rem 0 28rem; } }
  main section.reason:before {
    content: "";
    display: block;
    background-image: url("../images/reason_img.png");
    background-size: 100% 100%;
    width: 156.2rem;
    height: 104.15rem;
    position: absolute;
    right: -56.7rem;
    bottom: -23.7rem;
    transition: transform ease-in-out .5s, opacity ease-in-out .5s;
    opacity: 0; }
    .visual-animation-end main section.reason:before[data-inview-active] {
      opacity: 1; }
    @media screen and (max-width: 768px) {
      main section.reason:before {
        width: 71.8rem;
        height: 47.8rem;
        right: -17px;
        bottom: 0; } }
  main section.reason .container {
    position: relative;
    width: 112.6rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.reason .container {
        width: 48.5rem; } }
    main section.reason .container h2 {
      margin-bottom: 5rem; }
      @media screen and (max-width: 768px) {
        main section.reason .container h2 {
          margin-bottom: 3.5rem; } }
      main section.reason .container h2 span.highlight {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        display: inline-block;
        font-size: 5rem;
        line-height: 7rem;
        font-weight: 600;
        color: #0f0a4b;
        background-color: #f15a24;
        padding: 0 1.8rem; }
        .visual-animation-end main section.reason .container h2 span.highlight[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.reason .container h2 span.highlight {
            font-size: 3.5rem;
            line-height: 5rem;
            padding: 0 1.2rem; } }
    main section.reason .container .copy {
      margin-bottom: 3rem;
      margin-right: -1rem; }
      @media screen and (max-width: 768px) {
        main section.reason .container .copy {
          margin-bottom: 4rem; } }
      main section.reason .container .copy span.highlight {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        padding: 0 2.2rem;
        display: inline-block;
        font-size: 8rem;
        font-weight: 600;
        line-height: 11rem;
        color: #0f0a4b;
        background-color: #f15a24;
        letter-spacing: -.05em;
        margin-bottom: 2rem; }
        .visual-animation-end main section.reason .container .copy span.highlight[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.reason .container .copy span.highlight {
            display: contents;
            font-size: 0;
            line-height: 0; } }
        @media screen and (max-width: 768px) {
          main section.reason .container .copy span.highlight > span:not(.sp) {
            transition: clip-path ease-in-out .5s;
            clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
            display: inline-block;
            font-size: 4rem;
            font-weight: 600;
            line-height: 5.3rem;
            padding: 0 1.2rem;
            color: #0f0a4b;
            background-color: #f15a24;
            letter-spacing: -.05em;
            margin-bottom: .7rem; }
            .visual-animation-end main section.reason .container .copy span.highlight > span:not(.sp)[data-inview-active] {
              clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); } }
    main section.reason .container .content {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0; }
      .visual-animation-end main section.reason .container .content[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      main section.reason .container .content p {
        font-size: 2.2rem;
        line-height: 3.9rem;
        font-weight: 600;
        color: #f15a24;
        margin-top: 2rem; }
  main section.reason .decor div {
    transition: transform ease-in-out .5s, opacity ease-in-out .5s;
    opacity: 0; }
    .visual-animation-end main section.reason .decor div[data-inview-active] {
      opacity: 1; }
  main section.reason .decor div:nth-child(1) {
    position: absolute;
    top: 5rem;
    right: calc(50 / 1366 * 100vw);
    width: 13rem;
    height: 13rem; }
    @media screen and (max-width: 768px) {
      main section.reason .decor div:nth-child(1) {
        width: 8rem;
        height: 8rem;
        top: 3rem;
        right: 3rem; } }
    main section.reason .decor div:nth-child(1):before {
      content: "";
      display: block;
      width: 13rem;
      height: 1px;
      background-color: #f15a24;
      position: absolute;
      top: 2rem;
      left: 0; }
      @media screen and (max-width: 768px) {
        main section.reason .decor div:nth-child(1):before {
          width: 8rem; } }
    main section.reason .decor div:nth-child(1):after {
      content: "";
      display: block;
      width: 1px;
      height: 13rem;
      background-color: #f15a24;
      position: absolute;
      right: 2rem;
      top: 0; }
      @media screen and (max-width: 768px) {
        main section.reason .decor div:nth-child(1):after {
          height: 8rem; } }
  main section.reason .decor div:nth-child(2) {
    position: absolute;
    left: calc(50 / 1366 * 100vw);
    bottom: 3rem;
    width: 13rem;
    height: 13rem; }
    @media screen and (max-width: 768px) {
      main section.reason .decor div:nth-child(2) {
        width: 8rem;
        height: 8rem;
        bottom: 3rem;
        left: 3rem; } }
    main section.reason .decor div:nth-child(2):before {
      content: "";
      display: block;
      width: 13rem;
      height: 1px;
      background-color: #f15a24;
      position: absolute;
      bottom: 2rem;
      left: 0; }
      @media screen and (max-width: 768px) {
        main section.reason .decor div:nth-child(2):before {
          width: 8rem; } }
    main section.reason .decor div:nth-child(2):after {
      content: "";
      display: block;
      width: 1px;
      height: 13rem;
      background-color: #f15a24;
      position: absolute;
      left: 2rem;
      bottom: 0; }
      @media screen and (max-width: 768px) {
        main section.reason .decor div:nth-child(2):after {
          height: 8rem; } }
  main section.reason[data-inview-active]:before {
    opacity: 1; }
  main section.reason[data-inview-active] .decor div {
    opacity: 1; }
main section.gallery {
  background-color: #003296;
  overflow: hidden; }
@keyframes gallery-marquee {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(-50%); } }
  main section.gallery ul {
    position: relative;
    display: flex;
    width: max-content;
    animation: gallery-marquee 16s linear infinite;
    will-change: transform; }
    main section.gallery ul li {
      padding-right: .5rem;
      transform: translateZ(0); }
      main section.gallery ul li img {
        width: auto;
        height: calc(390 / 1366 * 100vw); }
        @media screen and (max-width: 768px) {
          main section.gallery ul li img {
            height: calc(390 / 585 * 100vw); } }
main section.feature {
  padding: 10rem 0;
  background-color: #003296; }
  @media screen and (max-width: 768px) {
    main section.feature {
      padding: 5rem 0 3rem; } }
  main section.feature .container {
    width: 130.6rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.feature .container {
        width: 100%; } }
    main section.feature .container h2 {
      text-align: center;
      color: #003296;
      margin-bottom: 5rem; }
      main section.feature .container h2 span {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        display: inline-block;
        font-size: 5rem;
        line-height: 7rem;
        font-weight: 600;
        background-color: #f15a24;
        padding: 0 1.8rem; }
        .visual-animation-end main section.feature .container h2 span[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.feature .container h2 span {
            font-size: 3.5rem;
            line-height: 5rem;
            padding: 0 1.5rem; } }
      @media screen and (max-width: 768px) {
        main section.feature .container h2 {
          margin-bottom: 4rem; } }
    main section.feature .container .content {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      position: relative;
      height: 200.5rem; }
      .visual-animation-end main section.feature .container .content[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      @media screen and (max-width: 768px) {
        main section.feature .container .content {
          height: auto; } }
      main section.feature .container .content section {
        position: absolute; }
        @media screen and (max-width: 768px) {
          main section.feature .container .content section {
            transition: transform ease-in-out .5s, opacity ease-in-out .5s;
            transform: translateY(3rem);
            opacity: 0;
            position: static;
            width: auto !important;
            margin-top: .5rem; }
            .visual-animation-end main section.feature .container .content section[data-inview-active] {
              transform: translateY(0rem);
              opacity: 1; } }
      main section.feature .container .content section:nth-child(1) {
        top: 0;
        left: 0;
        width: 85.1rem;
        height: 51.5rem;
        padding: 4rem 0 0 4.5rem;
        background-image: url("../images/feature_01_bg.svg");
        background-size: auto 100%;
        background-position: 50% 50%;
        background-repeat: no-repeat;
        background-color: #f15a24; }
        @media screen and (max-width: 768px) {
          main section.feature .container .content section:nth-child(1) {
            background-image: url("../images/feature_01_bg_sp.svg");
            background-size: 100% auto;
            background-position: 0 0;
            padding: 5.4rem 0 0 5rem;
            height: 57.7rem; } }
        main section.feature .container .content section:nth-child(1) h3 {
          font-size: 8rem;
          font-weight: bold;
          line-height: 1.1;
          color: #003296;
          letter-spacing: -.05em;
          margin-bottom: .8rem; }
          @media screen and (max-width: 768px) {
            main section.feature .container .content section:nth-child(1) h3 {
              font-size: 6.2rem;
              line-height: 7rem;
              margin-bottom: 2.4rem; } }
        main section.feature .container .content section:nth-child(1) p {
          font-size: 2.5rem;
          line-height: 3.9rem;
          font-weight: bold;
          color: #003296; }
      main section.feature .container .content section:nth-child(2) {
        top: 52rem;
        left: 0;
        width: 85.1rem;
        height: 48rem;
        padding: 3.8rem 0 0 4.5rem;
        background-color: #f15a24;
        background-image: url("../images/feature_02_bg.png");
        background-size: auto 100%;
        background-position: 100% 100%;
        transition-delay: .2s; }
        @media screen and (max-width: 768px) {
          main section.feature .container .content section:nth-child(2) {
            height: 63rem;
            padding: 5.7rem 0 0 5rem;
            background-image: url("../images/feature_02_bg_sp.png");
            background-size: 100% auto; } }
        main section.feature .container .content section:nth-child(2) h3 {
          font-size: 10rem;
          font-weight: bold;
          color: #003296;
          margin-bottom: 1.5rem; }
          @media screen and (max-width: 768px) {
            main section.feature .container .content section:nth-child(2) h3 {
              font-size: 8.3rem; } }
        main section.feature .container .content section:nth-child(2) p {
          font-size: 2.6rem;
          line-height: 3.9rem;
          font-weight: bold;
          color: #003296; }
      main section.feature .container .content section:nth-child(3) {
        top: 0rem;
        left: 85.6rem;
        width: 45rem;
        height: 100rem;
        writing-mode: vertical-rl;
        text-orientation: upright;
        background-color: #f15a24;
        background-image: url("../images/feature_03_bg.svg");
        background-size: auto 100%;
        background-position: 100% 100%;
        transition-delay: .4s;
        padding: 5.3rem 3rem 0 0; }
        @media screen and (max-width: 768px) {
          main section.feature .container .content section:nth-child(3) {
            background-image: url("../images/feature_03_bg_sp.svg");
            background-size: 100% auto;
            height: 64.2rem;
            padding: 6.3rem 0 0 5rem;
            writing-mode: initial;
            text-orientation: initial; } }
        main section.feature .container .content section:nth-child(3) h3 {
          font-size: 8.7rem;
          font-weight: bold;
          line-height: 9.8rem;
          color: #003296;
          font-feature-settings: "vhal", "vpal";
          margin-left: 2rem; }
          @media screen and (max-width: 768px) {
            main section.feature .container .content section:nth-child(3) h3 {
              font-size: 7.3rem;
              line-height: 8.4rem;
              margin-bottom: 2.5rem;
              margin-left: 0; } }
        main section.feature .container .content section:nth-child(3) p {
          font-size: 2.6rem;
          line-height: 3.9rem;
          font-weight: bold;
          color: #003296;
          letter-spacing: .12em; }
      main section.feature .container .content section:nth-child(4) {
        top: 100.5rem;
        left: 42.5rem;
        width: 88.1rem;
        height: 49.75em;
        background-color: #f15a24;
        background-image: url("../images/feature_04_bg.svg");
        background-size: 100% auto;
        background-position: 0% 0%;
        padding: 3.8rem 0 0 4rem; }
        @media screen and (max-width: 768px) {
          main section.feature .container .content section:nth-child(4) {
            padding: 5.3rem 0 0 5rem;
            height: 62.2rem;
            background-image: url("../images/feature_04_bg_sp.svg"); } }
        main section.feature .container .content section:nth-child(4) h3 {
          font-size: 8rem;
          font-weight: bold;
          line-height: 1;
          color: #003296; }
          @media screen and (max-width: 768px) {
            main section.feature .container .content section:nth-child(4) h3 {
              font-size: 5rem;
              margin-bottom: 2rem; } }
        main section.feature .container .content section:nth-child(4) p {
          font-size: 2.6rem;
          line-height: 3.3rem;
          font-weight: bold;
          color: #003296;
          writing-mode: vertical-rl;
          text-orientation: upright;
          position: absolute;
          top: 15.4rem;
          right: 5.4rem; }
          @media screen and (max-width: 768px) {
            main section.feature .container .content section:nth-child(4) p {
              position: static;
              writing-mode: initial;
              text-orientation: initial;
              line-height: 3.9rem; } }
      main section.feature .container .content section:nth-child(5) {
        top: 100.5rem;
        left: 0rem;
        width: 42rem;
        height: 100rem;
        writing-mode: vertical-rl;
        text-orientation: upright;
        background-color: #f15a24;
        background-image: url("../images/feature_05_bg.png");
        background-size: 100% auto;
        background-position: 100% 100%;
        padding: 5.2rem 3.8rem 0 0; }
        @media screen and (max-width: 768px) {
          main section.feature .container .content section:nth-child(5) {
            height: 62.2rem;
            writing-mode: initial;
            text-orientation: initial;
            padding: 4.4rem 0 0 5rem;
            background-image: url("../images/feature_05_bg_sp.png");
            background-size: 37.6rem auto;
            background-repeat: no-repeat;
            background-position: 0 100%; } }
        main section.feature .container .content section:nth-child(5) h3 {
          font-size: 7.5rem;
          font-weight: bold;
          line-height: 8.2rem;
          color: #003296;
          font-feature-settings: "vhal", "vpal";
          margin-left: 1.5rem;
          letter-spacing: .01em; }
          @media screen and (max-width: 768px) {
            main section.feature .container .content section:nth-child(5) h3 {
              font-size: 4.6rem;
              line-height: 5.2rem;
              margin-left: 0;
              margin-bottom: 2.5rem;
              font-feature-settings: "palt";
              letter-spacing: -.04em; } }
          main section.feature .container .content section:nth-child(5) h3 .dot {
            padding: 2rem 0 1rem; }
            @media screen and (max-width: 768px) {
              main section.feature .container .content section:nth-child(5) h3 .dot {
                padding: 0; } }
        main section.feature .container .content section:nth-child(5) p {
          font-size: 2.6rem;
          line-height: 3.9rem;
          font-weight: bold;
          color: #003296; }
          @media screen and (max-width: 768px) {
            main section.feature .container .content section:nth-child(5) p {
              padding-left: 19rem; } }
      main section.feature .container .content section:nth-child(6) {
        top: 150.75rem;
        left: 42.5rem;
        width: 88.1rem;
        height: 49.75em;
        background-color: #f15a24;
        background-image: url("../images/feature_06_bg.png");
        background-size: auto 100%;
        background-position: 100% 100%;
        padding: 3rem 0 0 5.4rem; }
        @media screen and (max-width: 768px) {
          main section.feature .container .content section:nth-child(6) {
            height: 52.75rem;
            padding: 4.5rem 0 0 5rem;
            background-image: url("../images/feature_06_bg_sp.png");
            background-size: 100% auto;
            background-repeat: no-repeat; } }
        main section.feature .container .content section:nth-child(6) h3 {
          font-size: 9rem;
          font-weight: bold;
          line-height: 9.4rem;
          color: #003296;
          margin-bottom: 2rem; }
          @media screen and (max-width: 768px) {
            main section.feature .container .content section:nth-child(6) h3 {
              font-size: 7.3rem;
              line-height: 8.4rem;
              letter-spacing: -.04em; } }
        main section.feature .container .content section:nth-child(6) p {
          font-size: 2.6rem;
          line-height: 3.9rem;
          font-weight: bold;
          color: #003296; }
main section.wanted {
  background-color: #0f0a4b; }
@keyframes wanted-decor-loop {
  0% {
    background-position: 0 100%; }
  100% {
    background-position: -30rem 100%; } }
@keyframes wanted-decor-loop-sp {
  0% {
    background-position: 0 100%; }
  100% {
    background-position: calc(-30rem * 8 / 9) 100%; } }
  main section.wanted:before, main section.wanted:after {
    content: "";
    background-image: url("../images/wanted_decor.svg");
    background-size: 30rem 9rem;
    background-repeat: repeat-x;
    background-position: 0 0;
    display: block;
    height: 9rem;
    background-color: #ffc332;
    transition: transform ease-in-out .5s, opacity ease-in-out .5s;
    opacity: 0;
    animation: wanted-decor-loop 3s linear infinite; }
    .visual-animation-end main section.wanted:before[data-inview-active], .visual-animation-end main section.wanted:after[data-inview-active] {
      opacity: 1; }
    @media screen and (max-width: 768px) {
      main section.wanted:before, main section.wanted:after {
        background-size: calc(30rem * 8 / 9) 8rem;
        height: 8rem;
        animation: wanted-decor-loop-sp 3s linear infinite; } }
  main section.wanted:after {
    animation-direction: reverse; }
  main section.wanted[data-inview-active]:before, main section.wanted[data-inview-active]:after {
    opacity: 1; }
  main section.wanted .container {
    padding: 7rem 0 5rem;
    width: 128.6rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.wanted .container {
        padding: 5rem 0;
        width: 52.5rem; } }
    main section.wanted .container h2 {
      text-align: center;
      color: #0f0a4b;
      margin-bottom: 4rem; }
      main section.wanted .container h2 span {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        display: inline-block;
        font-size: 5rem;
        line-height: 7rem;
        font-weight: 600;
        background-color: #f15a24;
        padding: 0 1.8rem; }
        .visual-animation-end main section.wanted .container h2 span[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.wanted .container h2 span {
            font-size: 3.5rem;
            line-height: 5rem;
            padding: 0 1.5rem; } }
    main section.wanted .container .content section {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      display: flex;
      justify-content: space-between;
      margin-top: 3rem; }
      .visual-animation-end main section.wanted .container .content section[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      @media screen and (max-width: 768px) {
        main section.wanted .container .content section {
          display: block; } }
      main section.wanted .container .content section .wrapper {
        position: relative;
        flex: 0 0 61.3rem;
        height: 35rem;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column; }
        @media screen and (max-width: 768px) {
          main section.wanted .container .content section .wrapper {
            height: 31rem; } }
        main section.wanted .container .content section .wrapper:nth-child(1) {
          position: relative;
          background-color: #ffc332; }
          main section.wanted .container .content section .wrapper:nth-child(1) h3 {
            font-size: 4rem;
            line-height: 1.2;
            font-weight: bold;
            text-align: center;
            margin-bottom: 1rem;
            color: #0f0a4b; }
            @media screen and (max-width: 768px) {
              main section.wanted .container .content section .wrapper:nth-child(1) h3 {
                font-size: 3.1rem;
                line-height: 4rem;
                margin-bottom: .8rem; } }
          main section.wanted .container .content section .wrapper:nth-child(1) p {
            font-size: 2rem;
            font-weight: bold;
            line-height: 1.5;
            text-align: center;
            color: #323232; }
          main section.wanted .container .content section .wrapper:nth-child(1) .arrow {
            display: block;
            background-image: url("../images/wanted_arrow.svg");
            background-size: 100% 100%;
            width: 6rem;
            height: 8rem;
            position: absolute;
            left: 100%;
            top: 50%;
            transform: translateY(-50%);
            z-index: 1; }
            @media screen and (max-width: 768px) {
              main section.wanted .container .content section .wrapper:nth-child(1) .arrow {
                background-image: url("../images/wanted_arrow_sp.svg");
                width: 6.6rem;
                height: 5rem;
                top: calc(100% - .1rem);
                left: 50%;
                transform: translateX(-50%); } }
        main section.wanted .container .content section .wrapper:nth-child(2) {
          background-color: #f15a24; }
          main section.wanted .container .content section .wrapper:nth-child(2) p {
            font-size: 4.4rem;
            font-weight: bold;
            line-height: 5.6rem;
            text-align: center;
            color: #0f0a4b; }
            @media screen and (max-width: 768px) {
              main section.wanted .container .content section .wrapper:nth-child(2) p {
                font-size: 3.5rem;
                line-height: 5rem; } }
        main section.wanted .container .content section .wrapper:before {
          content: "";
          display: block;
          position: absolute; }
        @media screen and (max-width: 768px) {
          main section.wanted .container .content section .wrapper:after {
            content: "";
            display: block;
            position: absolute; } }
      main section.wanted .container .content section:nth-child(1) .wrapper:nth-child(1):before {
        top: 0;
        left: 0;
        border-top: 5rem solid #0f0a4b;
        border-right: 5rem solid transparent; }
        @media screen and (max-width: 768px) {
          main section.wanted .container .content section:nth-child(1) .wrapper:nth-child(1):before {
            border-top: 3rem solid #0f0a4b;
            border-right: 3rem solid transparent; } }
      @media screen and (max-width: 768px) {
        main section.wanted .container .content section:nth-child(1) .wrapper:nth-child(1):after {
          top: 0;
          right: 0;
          border-top: 3rem solid #0f0a4b;
          border-left: 3rem solid transparent; } }
      main section.wanted .container .content section:nth-child(1) .wrapper:nth-child(2):before {
        top: 0;
        right: 0;
        border-top: 5rem solid #0f0a4b;
        border-left: 5rem solid transparent; }
        @media screen and (max-width: 768px) {
          main section.wanted .container .content section:nth-child(1) .wrapper:nth-child(2):before {
            bottom: 0;
            left: 0;
            right: auto;
            border: none;
            border-bottom: 3rem solid #0f0a4b;
            border-right: 3rem solid transparent; } }
      @media screen and (max-width: 768px) {
        main section.wanted .container .content section:nth-child(1) .wrapper:nth-child(2):after {
          bottom: 0;
          right: 0;
          border: none;
          border-bottom: 3rem solid #0f0a4b;
          border-left: 3rem solid transparent; } }
      main section.wanted .container .content section:nth-child(2) .wrapper:nth-child(1):before {
        bottom: 0;
        left: 0;
        border-bottom: 5rem solid #0f0a4b;
        border-right: 5rem solid transparent; }
        @media screen and (max-width: 768px) {
          main section.wanted .container .content section:nth-child(2) .wrapper:nth-child(1):before {
            top: 0;
            bottom: auto;
            border: none;
            border-top: 3rem solid #0f0a4b;
            border-right: 3rem solid transparent; } }
      @media screen and (max-width: 768px) {
        main section.wanted .container .content section:nth-child(2) .wrapper:nth-child(1):after {
          top: 0;
          right: 0;
          border-top: 3rem solid #0f0a4b;
          border-left: 3rem solid transparent; } }
      main section.wanted .container .content section:nth-child(2) .wrapper:nth-child(2):before {
        bottom: 0;
        right: 0;
        border-bottom: 5rem solid #0f0a4b;
        border-left: 5rem solid transparent; }
        @media screen and (max-width: 768px) {
          main section.wanted .container .content section:nth-child(2) .wrapper:nth-child(2):before {
            left: 0;
            right: auto;
            border: none;
            border-bottom: 3rem solid #0f0a4b;
            border-right: 3rem solid transparent; } }
      @media screen and (max-width: 768px) {
        main section.wanted .container .content section:nth-child(2) .wrapper:nth-child(2):after {
          bottom: 0;
          right: 0;
          border: none;
          border-bottom: 3rem solid #0f0a4b;
          border-left: 3rem solid transparent; } }
main section.case {
  position: relative;
  background-color: #003296;
  padding: 10rem 0 3rem;
  overflow: hidden; }
  @media screen and (max-width: 768px) {
    main section.case {
      padding: 5rem 0 3rem; } }
  main section.case:before {
    content: "";
    position: absolute;
    top: 100%;
    left: -60%;
    display: block;
    background-image: url("../images/case_bg.svg");
    background-size: cover;
    transition: all ease-in-out 1s;
    opacity: 0;
    width: 100%;
    height: 100%; }
    @media screen and (max-width: 768px) {
      main section.case:before {
        background-image: url("../images/case_bg_sp.svg");
        width: 200%;
        left: -58.5rem;
        top: 58.5rem; } }
  main section.case[data-inview-active]:before {
    opacity: 1;
    top: 0;
    left: 0; }
  main section.case .container {
    position: relative;
    width: 130.6rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.case .container {
        width: 52.5rem; } }
    main section.case .container h2 {
      text-align: center;
      color: #003296;
      margin-bottom: 4rem; }
      main section.case .container h2 span {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        display: inline-block;
        font-size: 5rem;
        line-height: 7rem;
        font-weight: 600;
        background-color: #f15a24;
        padding: 0 1.8rem; }
        .visual-animation-end main section.case .container h2 span[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.case .container h2 span {
            font-size: 3.5rem;
            line-height: 5rem;
            padding: 0 1.5rem; } }
    main section.case .container .wrapper {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      background-color: #f15a24;
      padding: 5rem 8rem; }
      .visual-animation-end main section.case .container .wrapper[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      @media screen and (max-width: 768px) {
        main section.case .container .wrapper {
          padding: 3.5rem 3rem 2.5rem; } }
      main section.case .container .wrapper figure {
        width: 98.3em;
        margin: 0 auto; }
        @media screen and (max-width: 768px) {
          main section.case .container .wrapper figure {
            width: 45.2rem; } }
        main section.case .container .wrapper figure figcaption {
          font-size: 5rem;
          font-weight: bold;
          line-height: 1.2;
          text-align: center;
          margin-bottom: 4rem;
          color: #003296; }
          @media screen and (max-width: 768px) {
            main section.case .container .wrapper figure figcaption {
              font-size: 3.2rem;
              line-height: 4.55rem; } }
      main section.case .container .wrapper p {
        font-size: 1.6rem;
        line-height: 2.7rem;
        letter-spacing: -.03rem;
        margin-top: 1rem;
        color: #000; }
        @media screen and (max-width: 768px) {
          main section.case .container .wrapper p {
            margin-top: 4rem; } }
    main section.case .container ul {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0; }
      .visual-animation-end main section.case .container ul[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      main section.case .container ul li {
        position: relative;
        background-color: #f15a24;
        margin-top: .5rem;
        display: flex;
        padding: 3rem;
        gap: 3rem; }
        @media screen and (max-width: 768px) {
          main section.case .container ul li {
            transition: transform ease-in-out .5s, opacity ease-in-out .5s;
            transform: translateY(3rem);
            opacity: 0;
            display: block;
            min-height: 80rem;
            padding: 2rem;
            margin-top: 2rem; }
            .visual-animation-end main section.case .container ul li[data-inview-active] {
              transform: translateY(0rem);
              opacity: 1; } }
        main section.case .container ul li:before {
          content: "";
          display: block;
          background-image: url("../images/case_detail_bg.svg");
          background-size: 100% 100%;
          width: 130.6rem;
          height: 44rem;
          position: absolute;
          bottom: -44rem;
          right: 44rem;
          transition: all ease-in-out .5s; }
          @media screen and (max-width: 768px) {
            main section.case .container ul li:before {
              background-image: url("../images/case_detail_bg_sp.svg");
              background-size: 100% auto;
              width: 52.5rem;
              height: 80.3rem;
              bottom: -26rem;
              right: 20rem; } }
        main section.case .container ul li[data-inview-active]:before {
          bottom: 0;
          right: 0; }
          @media screen and (max-width: 768px) {
            main section.case .container ul li[data-inview-active]:before {
              right: -6rem;
              bottom: 0; } }
        main section.case .container ul li figure {
          position: relative;
          flex: 0 0 53.6rem; }
          @media screen and (max-width: 768px) {
            main section.case .container ul li figure {
              margin-bottom: 2.4rem; } }
        main section.case .container ul li .content {
          position: relative;
          flex: 1; }
          main section.case .container ul li .content .copy {
            font-size: 6rem;
            font-weight: bold;
            line-height: 7.2rem;
            color: #003296;
            margin-bottom: 1.5rem; }
            @media screen and (max-width: 768px) {
              main section.case .container ul li .content .copy {
                font-size: 5rem;
                line-height: 6.4rem; } }
          main section.case .container ul li .content .name {
            font-size: 3.5rem;
            font-weight: bold;
            color: #003296; }
          main section.case .container ul li .content dl {
            display: flex;
            flex-wrap: wrap;
            font-size: 2rem;
            font-weight: bold;
            line-height: 3.3rem;
            color: #003296;
            margin-top: 2.5rem; }
            @media screen and (max-width: 768px) {
              main section.case .container ul li .content dl {
                font-size: 1.8rem; } }
            main section.case .container ul li .content dl dt {
              flex: 14.5rem; }
              @media screen and (max-width: 768px) {
                main section.case .container ul li .content dl dt {
                  flex: 13rem; } }
            main section.case .container ul li .content dl dd {
              flex: calc(100% - 14.5rem); }
              @media screen and (max-width: 768px) {
                main section.case .container ul li .content dl dd {
                  flex: calc(100% - 13rem); } }
main section.company {
  position: relative;
  background-color: #0f0a4b;
  padding: 8rem 0 7rem; }
  @media screen and (max-width: 768px) {
    main section.company {
      padding: 5rem 0 8rem; } }
  main section.company:before {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    background-image: url("../images/company_bg.svg");
    background-size: cover;
    transition: all ease-in-out 1s;
    opacity: 0; }
    @media screen and (max-width: 768px) {
      main section.company:before {
        background-image: url("../images/company_bg_sp.svg"); } }
  main section.company[data-inview-active]:before {
    opacity: 1;
    top: 0; }
  main section.company .container {
    width: 120rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.company .container {
        width: 52.5rem; } }
    main section.company .container h2 {
      text-align: center;
      color: #0f0a4b;
      margin-bottom: 2rem; }
      main section.company .container h2 span {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        display: inline-block;
        font-size: 5rem;
        line-height: 7rem;
        font-weight: 600;
        background-color: #f15a24;
        padding: 0 1.8rem; }
        .visual-animation-end main section.company .container h2 span[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.company .container h2 span {
            font-size: 3.5rem;
            line-height: 5rem;
            padding: 0 1.5rem; } }
    main section.company .container p.lead {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      font-size: 3.5rem;
      line-height: 4.8rem;
      font-weight: bold;
      color: #f15a24;
      text-align: center; }
      .visual-animation-end main section.company .container p.lead[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
    main section.company .container figure {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      position: relative;
      width: 90rem;
      background-color: #fff;
      margin: 0 auto;
      margin-top: 3.5rem; }
      .visual-animation-end main section.company .container figure[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      @media screen and (max-width: 768px) {
        main section.company .container figure {
          width: auto;
          margin-top: 3rem; } }
    main section.company .container p.action {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      position: relative;
      display: flex;
      justify-content: center;
      margin: 0 auto;
      margin-top: 3rem;
      width: 90rem; }
      .visual-animation-end main section.company .container p.action[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      @media screen and (max-width: 768px) {
        main section.company .container p.action {
          width: auto;
          margin-top: 1.5rem; } }
      main section.company .container p.action a {
        color: #0f0a4b;
        text-align: center;
        font-size: 5rem;
        line-height: 10rem;
        font-weight: 600;
        background-color: #f15a24;
        width: 100%;
        padding: 0 1.8rem; }
        main section.company .container p.action a > span {
          position: relative;
          z-index: 1; }
        main section.company .container p.action a:before {
          content: "";
          background-color: #fff;
          width: 100%;
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          transform-origin: 100% 0;
          transform: scaleX(0);
          transition: transform 0.3s ease; }
        @media screen and (min-width: 769px) {
          main section.company .container p.action a:hover:before {
            transform-origin: 0 0;
            transform: scaleX(1); } }
        @media screen and (max-width: 768px) {
          main section.company .container p.action a {
            font-size: 3.5rem;
            line-height: 7rem;
            padding: 0 1.5rem; } }
main div.requirements-flow {
  position: relative;
  background-color: #003296;
  overflow: hidden; }
@keyframes requirements-flow-decor-loop {
  0% {
    background-position: 0 100%; }
  100% {
    background-position: -246.8rem 100%; } }
@keyframes requirements-flow-decor-loop-sp {
  0% {
    background-position: 0 100%; }
  100% {
    background-position: -105.2rem 100%; } }
  main div.requirements-flow .decor div {
    transition: transform ease-in-out .5s, opacity ease-in-out .5s;
    opacity: 0;
    position: absolute;
    left: 0;
    right: 0;
    top: 2rem;
    background-image: url("../images/requirements_flow_bg.svg");
    background-size: auto 100%;
    height: 25.7rem;
    animation: requirements-flow-decor-loop 20s linear infinite; }
    .visual-animation-end main div.requirements-flow .decor div[data-inview-active] {
      opacity: 1; }
    @media screen and (max-width: 768px) {
      main div.requirements-flow .decor div {
        top: 1rem;
        height: 11rem;
        background-image: url("../images/requirements_flow_bg_sp.svg"); } }
    main div.requirements-flow .decor div:nth-child(2n) {
      animation-direction: reverse; }
    main div.requirements-flow .decor div:nth-child(1) {
      top: 2rem; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(1) {
          top: 1rem; } }
    main div.requirements-flow .decor div:nth-child(2) {
      top: calc(2rem + 27rem); }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(2) {
          top: calc(1rem + 11.8rem); } }
    main div.requirements-flow .decor div:nth-child(3) {
      top: calc(2rem + 27rem * 2); }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(3) {
          top: calc(1rem + 11.8rem * 2); } }
    main div.requirements-flow .decor div:nth-child(4) {
      top: calc(2rem + 27rem * 3); }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(4) {
          top: calc(1rem + 11.8rem * 3); } }
    main div.requirements-flow .decor div:nth-child(5) {
      top: calc(2rem + 27rem * 4); }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(5) {
          top: calc(1rem + 11.8rem * 4); } }
    main div.requirements-flow .decor div:nth-child(6) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(6) {
          display: block;
          top: calc(1rem + 11.8rem * 5); } }
    main div.requirements-flow .decor div:nth-child(7) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(7) {
          display: block;
          top: calc(1rem + 11.8rem * 6); } }
    main div.requirements-flow .decor div:nth-child(8) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(8) {
          display: block;
          top: calc(1rem + 11.8rem * 7); } }
    main div.requirements-flow .decor div:nth-child(9) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(9) {
          display: block;
          top: calc(1rem + 11.8rem * 8); } }
    main div.requirements-flow .decor div:nth-child(10) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(10) {
          display: block;
          top: calc(1rem + 11.8rem * 9); } }
    main div.requirements-flow .decor div:nth-child(11) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(11) {
          display: block;
          top: calc(1rem + 11.8rem * 10); } }
    main div.requirements-flow .decor div:nth-child(12) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(12) {
          display: block;
          top: calc(1rem + 11.8rem * 11); } }
    main div.requirements-flow .decor div:nth-child(13) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(13) {
          display: block;
          top: calc(1rem + 11.8rem * 12); } }
    main div.requirements-flow .decor div:nth-child(14) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(14) {
          display: block;
          top: calc(1rem + 11.8rem * 13); } }
    main div.requirements-flow .decor div:nth-child(15) {
      display: none; }
      @media screen and (max-width: 768px) {
        main div.requirements-flow .decor div:nth-child(15) {
          display: block;
          top: calc(1rem + 11.8rem * 14); } }
main section.requirements {
  position: relative;
  padding: 8rem 0 0; }
  @media screen and (max-width: 768px) {
    main section.requirements {
      padding: 5rem 0 1rem; } }
  main section.requirements .container {
    width: 110rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.requirements .container {
        width: 52.5rem; } }
    main section.requirements .container h2 {
      text-align: center;
      color: #003296;
      margin-bottom: 5rem; }
      main section.requirements .container h2 span {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        display: inline-block;
        font-size: 5rem;
        line-height: 7rem;
        font-weight: 600;
        background-color: #f15a24;
        padding: 0 1.8rem; }
        .visual-animation-end main section.requirements .container h2 span[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.requirements .container h2 span {
            font-size: 3.5rem;
            line-height: 5rem;
            padding: 0 1.5rem; } }
      @media screen and (max-width: 768px) {
        main section.requirements .container h2 {
          margin-bottom: 3rem; } }
    main section.requirements .container dl {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      display: flex;
      flex-wrap: wrap; }
      .visual-animation-end main section.requirements .container dl[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      main section.requirements .container dl dt {
        flex: 0 0 30rem;
        padding: 0 8rem;
        background-color: #f15a24;
        border-top: 2px solid #323c64;
        display: flex;
        justify-content: center;
        align-items: center; }
        @media screen and (max-width: 768px) {
          main section.requirements .container dl dt {
            flex: 0 0 17rem;
            padding: 0 2.4rem; } }
        main section.requirements .container dl dt span {
          display: block;
          flex: 1;
          text-align: justify;
          font-size: 3.5rem;
          font-weight: bold;
          color: #003296;
          margin-bottom: -3.5rem; }
          @media screen and (max-width: 768px) {
            main section.requirements .container dl dt span {
              font-size: 2.8rem;
              margin-bottom: -2.8rem; } }
          main section.requirements .container dl dt span:after {
            content: "";
            display: inline-block;
            width: 100%; }
      main section.requirements .container dl dd {
        flex: 0 0 calc(100% - 30rem);
        font-size: 2.4rem;
        line-height: 3.7rem;
        font-weight: 500;
        color: #003296;
        border-top: 2px solid #323c64;
        border-left: 2px solid #323c64;
        background-color: #f15a24;
        padding: 2.4rem 2.2rem;
        min-height: 10rem;
        display: flex;
        justify-content: center;
        flex-direction: column; }
        @media screen and (max-width: 768px) {
          main section.requirements .container dl dd {
            flex: 0 0 calc(100% - 17rem);
            line-height: 3.1rem;
            padding: 1.5rem 2rem; } }
        main section.requirements .container dl dd ul li {
          position: relative;
          margin-top: .6rem;
          padding-left: .75em; }
          @media screen and (max-width: 768px) {
            main section.requirements .container dl dd ul li {
              margin-top: 0; } }
          main section.requirements .container dl dd ul li:first-child {
            margin-top: 0; }
          main section.requirements .container dl dd ul li:before {
            content: "・";
            position: absolute;
            top: 0;
            left: 0; }
main section.flow {
  position: relative;
  padding: 8rem 0 10rem; }
  @media screen and (max-width: 768px) {
    main section.flow {
      padding: 5rem 0 3rem; } }
  main section.flow .container {
    width: 110rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.flow .container {
        width: 52.5rem; } }
    main section.flow .container h2 {
      text-align: center;
      color: #003296;
      margin-bottom: 5rem; }
      main section.flow .container h2 span {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        display: inline-block;
        font-size: 5rem;
        line-height: 7rem;
        font-weight: 600;
        background-color: #f15a24;
        padding: 0 1.8rem; }
        .visual-animation-end main section.flow .container h2 span[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.flow .container h2 span {
            font-size: 3.5rem;
            line-height: 5rem;
            padding: 0 1.5rem; } }
      @media screen and (max-width: 768px) {
        main section.flow .container h2 {
          margin-bottom: 3rem; } }
    main section.flow .container ol {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      display: flex;
      gap: 3.2rem;
      background-color: #ffc332; }
      .visual-animation-end main section.flow .container ol[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      @media screen and (max-width: 768px) {
        main section.flow .container ol {
          flex-direction: column;
          gap: 4.7rem; } }
      main section.flow .container ol li {
        position: relative;
        height: 23rem;
        flex: 1;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        padding-top: 2rem; }
        @media screen and (max-width: 768px) {
          main section.flow .container ol li {
            height: auto;
            padding: 3rem 0 0; } }
        main section.flow .container ol li:after {
          content: "";
          background-image: url("../images/flow_arrow.svg");
          background-size: 100% 100%;
          width: 3.2rem;
          height: 23rem;
          position: absolute;
          left: 100%;
          top: 0; }
          @media screen and (max-width: 768px) {
            main section.flow .container ol li:after {
              background-image: url("../images/flow_arrow_sp.svg");
              width: 100%;
              height: 4.7rem;
              left: 0;
              top: 100%; } }
        @media screen and (max-width: 768px) {
          main section.flow .container ol li:last-child {
            padding-bottom: 3rem; } }
        main section.flow .container ol li:last-child:after {
          display: none; }
        main section.flow .container ol li p:nth-child(1) {
          font-size: 2.8rem;
          font-weight: bold;
          color: #003296;
          width: 12rem;
          line-height: 4rem;
          background-color: #f15a24;
          position: absolute;
          top: 2.4rem;
          left: 50%;
          transform: translateX(-50%);
          border-radius: 9999px;
          text-align: center; }
          @media screen and (max-width: 768px) {
            main section.flow .container ol li p:nth-child(1) {
              position: static;
              transform: none;
              line-height: 4.5rem;
              margin-bottom: 1rem; } }
        main section.flow .container ol li p:nth-child(2) {
          font-size: 3rem;
          line-height: 3.7rem;
          font-weight: bold;
          color: #003296; }
        main section.flow .container ol li p:nth-child(3) {
          font-size: 1.8rem;
          font-weight: bold;
          color: #003296;
          margin-top: 1rem; }
main section.entry {
  background-color: #f15a24;
  padding: 8rem 0 10rem; }
  @media screen and (max-width: 768px) {
    main section.entry {
      padding: 5rem 0; } }
  main section.entry .container {
    width: 110rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.entry .container {
        width: 52.5rem; } }
    main section.entry .container h2 {
      text-align: center;
      color: #f15a24;
      margin-bottom: 4rem; }
      main section.entry .container h2 span {
        transition: clip-path ease-in-out .5s;
        clip-path: polygon(0 0, 0 100%, 0% 100%, 0% 0);
        display: inline-block;
        font-size: 5rem;
        line-height: 7rem;
        font-weight: 600;
        background-color: #f15a24;
        padding: 0 1.8rem; }
        .visual-animation-end main section.entry .container h2 span[data-inview-active] {
          clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0); }
        @media screen and (max-width: 768px) {
          main section.entry .container h2 span {
            font-size: 3.5rem;
            line-height: 5rem;
            padding: 0 1.5rem; } }
      main section.entry .container h2 span {
        background-color: #003296; }
      @media screen and (max-width: 768px) {
        main section.entry .container h2 {
          margin-bottom: 2.5rem; } }
    main section.entry .container p {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      font-size: 3.5rem;
      line-height: 5.1rem;
      font-weight: bold;
      text-align: center;
      color: #003296; }
      .visual-animation-end main section.entry .container p[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      @media screen and (max-width: 768px) {
        main section.entry .container p {
          font-size: 2.8rem;
          line-height: 4.1rem; } }
    main section.entry .container .action {
      transition: transform ease-in-out .5s, opacity ease-in-out .5s;
      transform: translateY(3rem);
      opacity: 0;
      margin-top: 3rem; }
      .visual-animation-end main section.entry .container .action[data-inview-active] {
        transform: translateY(0rem);
        opacity: 1; }
      main section.entry .container .action a {
        display: flex;
        justify-content: center;
        align-items: center;
        color: #f15a24;
        background-color: #003296;
        font-size: 7rem;
        font-weight: 900;
        text-align: center;
        height: 14.8rem; }
        main section.entry .container .action a > span {
          position: relative;
          z-index: 1; }
        main section.entry .container .action a:before {
          content: "";
          background-color: #fff;
          width: 100%;
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          transform-origin: 100% 0;
          transform: scaleX(0);
          transition: transform 0.3s ease; }
        @media screen and (min-width: 769px) {
          main section.entry .container .action a:hover:before {
            transform-origin: 0 0;
            transform: scaleX(1); } }
main section.more {
  background-color: #0f0a4b;
  padding: 8rem 0 10rem; }
  @media screen and (max-width: 768px) {
    main section.more {
      padding: 6rem 0 3rem; } }
  main section.more .container {
    width: 112.6rem;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      main section.more .container {
        width: 52.5rem; } }
    main section.more .container h2 {
      font-size: 3.5rem;
      line-height: 5.1rem;
      font-weight: bold;
      text-align: center;
      color: #f15a24;
      margin-bottom: 7rem; }
      @media screen and (max-width: 768px) {
        main section.more .container h2 {
          font-size: 2.8rem;
          line-height: 4.1rem;
          margin-bottom: 3.2rem; } }
    main section.more .container ul {
      display: flex;
      gap: 3rem; }
      @media screen and (max-width: 768px) {
        main section.more .container ul {
          flex-direction: column; } }
      main section.more .container ul li {
        transition: transform ease-in-out .5s, opacity ease-in-out .5s;
        transform: translateY(3rem);
        opacity: 0;
        flex: 1;
        background-color: #f15a24;
        padding: 2rem 2rem 6rem; }
        .visual-animation-end main section.more .container ul li[data-inview-active] {
          transform: translateY(0rem);
          opacity: 1; }
        @media screen and (max-width: 768px) {
          main section.more .container ul li {
            padding: 2rem 2rem 5rem; } }
        main section.more .container ul li figure {
          margin-bottom: 3rem; }
        main section.more .container ul li a {
          display: block; }
          main section.more .container ul li a .title {
            font-size: 2.8rem;
            line-height: 3.1rem;
            font-weight: bold;
            margin-bottom: 1.5rem;
            color: #0f0a4b;
            text-align: center; }
          main section.more .container ul li a .description {
            font-size: 2rem;
            font-weight: bold;
            line-height: 3.1rem;
            color: #0f0a4b;
            text-align: center; }
          main section.more .container ul li a .action {
            margin-top: 3.6rem;
            text-align: center; }
            main section.more .container ul li a .action > span {
              position: relative;
              font-size: 2rem;
              font-weight: 900;
              width: 25rem;
              height: 6rem;
              display: inline-flex;
              justify-content: center;
              align-items: center;
              color: #f15a24;
              background-color: #0f0a4b; }
              main section.more .container ul li a .action > span > span {
                position: relative;
                z-index: 1; }
              main section.more .container ul li a .action > span:before {
                content: "";
                background-color: #fff;
                width: 100%;
                position: absolute;
                top: 0;
                right: 0;
                bottom: 0;
                transform-origin: 100% 0;
                transform: scaleX(0);
                transition: transform 0.3s ease; }
          @media screen and (min-width: 769px) {
            main section.more .container ul li a:hover .action > span:before {
              transform-origin: 0 0;
              transform: scaleX(1); } }
