@charset "UTF-8";
:root {
  interpolate-size: allow-keywords; }

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  list-style: none; }

picture,
img {
  display: block;
  width: 100%;
  height: auto; }

html {
  scroll-behavior: smooth; }

body {
  min-width: 0;
  background-color: #fff;
  font-family: YakuHanJP_Narrow, yg, YuGothic, "游ゴシック", "游ゴシック体", YuGothic, YuGothic M, "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, "メイリオ", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #333333; }
  @media screen and (max-width: 1220px) {
    body {
      font-size: calc(16 / 1220 * 100vw); } }
  @media screen and (max-width: 767px) {
    body {
      font-size: calc(16 / 750 * 100vw); } }

@media screen and (min-width: 768px) {
  .sp {
    display: none; } }
@media screen and (max-width: 767px) {
  .pc {
    display: none; } }
.js-effect.fade-up {
  opacity: 0;
  transform: translate(0, 3rem);
  transition: 1s ease; }
.js-effect.fade-in {
  opacity: 0;
  transform: scale(0.9);
  transition: .5s ease; }
.js-effect.is-view.fade-up {
  opacity: 1;
  transform: translate(0, 0); }
.js-effect.is-view.fade-in {
  opacity: 1;
  transform: scale(1); }

.din {
  font-family: 'din-2014', futura-pt, sans-serif; }

.gothic {
  font-family: YakuHanJP_Narrow, yg, YuGothic, "游ゴシック", "游ゴシック体", YuGothic, YuGothic M, "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, "メイリオ", Meiryo, sans-serif; }

.serif {
  font-family: "游明朝体", YuMincho, "游明朝 Medium", "Yu Mincho Medium", "游明朝", "Yu Mincho", serif; }

.header {
  padding: 0 calc(50 / 16 * 1em); }
  .header .inner {
    margin: 0 auto;
    height: calc(80 / 16 * 1em);
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px; }
    .header .inner .logo {
      width: calc(92 / 16 * 1em); }
    .header .inner .mp-header__inner__button__anchor {
      position: relative;
      border-radius: calc(12 / 18 * 1em);
      display: flex;
      align-items: center;
      justify-content: center;
      width: calc(310 / 18 * 1em);
      height: calc(62 / 18 * 1em);
      padding-right: calc(16 / 18 * 1em);
      color: #ffffff;
      font-weight: bold;
      font-size: calc(18 / 16 * 1em);
      background: linear-gradient(180deg, #18529b 0%, #3f84da 100%);
      text-decoration: none;
      transition: opacity .5s; }
      .header .inner .mp-header__inner__button__anchor:after {
        content: "";
        display: block;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: calc(17 / 18 * 1em);
        width: calc(17 / 18 * 1em);
        height: calc(14 / 18 * 1em);
        background-image: url(../img/icon_yajirushi.webp);
        background-size: contain;
        background-repeat: no-repeat;
        pointer-events: none; }
  @media screen and (max-width: 767px) {
    .header {
      padding: 0 calc(20 / 16 * 1em); }
      .header .inner {
        height: calc(120 / 750 * 100vw); }
        .header .inner .logo {
          width: calc(148 / 690 * 100%); }
        .header .inner .mp-header__inner__button__anchor {
          padding: calc(30 / 16 * 1em) calc(50 / 16 * 1em) calc(30 / 16 * 1em) calc(30 / 16 * 1em);
          font-size: calc(22 / 16 * 1em); } }

section {
  scroll-margin-top: calc(80 / 16 * 1em);
  position: relative; }
  @media screen and (max-width: 767px) {
    section {
      scroll-margin-top: calc(120 / 16 * 1em); } }

.abs {
  position: absolute; }

.kv {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid #EAEAEA;
  padding: 0; }
  .kv .bg {
    position: relative;
    aspect-ratio: 24 / 10;
    opacity: 0; }
    .kv .bg > div {
      position: absolute;
      inset: 0;
      transition: 1s; }
      .kv .bg > div:nth-child(1) {
        opacity: 1; }
      .kv .bg > div:nth-child(2) {
        opacity: 0; }
    .kv .bg.on > div:nth-child(1) {
      opacity: 0; }
    .kv .bg.on > div:nth-child(2) {
      opacity: 1; }
  .kv .front {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    filter: blur(1em);
    display: flex;
    align-items: center; }
    .kv .front .text_01 {
      position: relative;
      width: calc(446 / 1200 * 100%);
      left: 10%; }
    .kv .front .text_02 {
      position: relative;
      width: calc(580 / 1200 * 100%);
      left: 9%; }
  .kv.is-view .bg {
    opacity: 1;
    transition: 1s; }
  .kv.is-view .front {
    opacity: 1;
    filter: blur(0);
    transition: .5s ease .8s; }
  @media screen and (max-width: 767px) {
    .kv .bg {
      aspect-ratio: 750 / 880; }
    .kv .front {
      justify-content: center; }
      .kv .front .text_01 {
        left: auto;
        width: calc(650 / 750 * 100%); }
      .kv .front .text_02 {
        left: auto;
        top: -24%;
        width: calc(650 / 750 * 100%); } }

.kv2 {
  background: #3F84DA;
  background: linear-gradient(90deg, #3f84da 0%, #18529b 100%);
  margin: -1px auto 0;
  padding: calc(22 / 16 * 1em) 0;
  position: relative; }
  .kv2 .inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2em; }
    .kv2 .inner p {
      width: calc(408 / 16 * 1em); }
    .kv2 .inner a {
      display: flex;
      align-items: center;
      justify-content: center;
      width: calc(290 / 20 * 1em);
      height: calc(60 / 20 * 1em);
      border-radius: 3em;
      background: #FF9605;
      background: linear-gradient(90deg, #ff9605 0%, #ff7403 100%);
      color: #fff;
      font-size: calc(20 / 16 * 1em);
      font-weight: 700;
      letter-spacing: 6%;
      text-decoration: none;
      position: relative;
      padding-right: calc(20 / 20 * 1em); }
      .kv2 .inner a:after {
        content: "";
        display: block;
        position: absolute;
        right: calc(20 / 20 * 1em);
        top: 0;
        width: calc(20 / 20 * 1em);
        height: 100%;
        background: url(../img/icon_sch.svg) center center no-repeat;
        background-size: contain; }
  @media screen and (max-width: 767px) {
    .kv2 {
      padding: calc(40 / 16 * 1em) 0; }
      .kv2 .inner {
        flex-direction: column;
        gap: 1.25em; }
        .kv2 .inner p {
          width: calc(538 / 750 * 100%); }
        .kv2 .inner a {
          font-size: calc(36 / 16 * 1em);
          letter-spacing: 0;
          width: calc(548 / 750 * 100%);
          height: calc(120 / 36 * 1em); }
          .kv2 .inner a:after {
            right: calc(30 / 20 * 1em); } }

.kv3 {
  padding: calc(36 / 16 * 1em) 0; }
  .kv3 .bg-dots {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
    gap: calc(14 / 16 * 1em); }
    .kv3 .bg-dots > div {
      background-color: #CBD5E0;
      width: calc(8 / 16 * 1em);
      height: calc(8 / 16 * 1em);
      border-radius: 1em;
      transition: .5s; }
      .kv3 .bg-dots > div:nth-child(1) {
        width: calc(40 / 16 * 1em); }
      .kv3 .bg-dots > div:nth-child(2) {
        width: calc(8 / 16 * 1em); }
    .kv3 .bg-dots.on > div:nth-child(1) {
      width: calc(8 / 16 * 1em); }
    .kv3 .bg-dots.on > div:nth-child(2) {
      width: calc(40 / 16 * 1em); }

.common-inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative; }

nav {
  position: sticky;
  top: 0;
  z-index: 10;
  background-color: rgba(255, 255, 255, 0.7);
  -webkit-backdrop-filter: blur(1em);
  backdrop-filter: blur(1em);
  box-shadow: 0 0 1em rgba(0, 0, 0, 0.07); }
  nav ul {
    padding: 0 calc(50 / 16 * 1em);
    display: flex;
    gap: calc(120 / 16 * 1em); }
    nav ul li {
      height: calc(80 / 16 * 1em);
      display: flex;
      align-items: center; }
      nav ul li a {
        display: block;
        font-size: calc(18 / 16 * 1em);
        font-weight: 700;
        text-decoration: none;
        color: inherit;
        transition: .3s; }
        nav ul li a.on {
          color: #18529B; }
  @media screen and (max-width: 767px) {
    nav ul {
      padding: 0 calc(30 / 16 * 1em);
      gap: 0; }
      nav ul li {
        justify-content: center;
        flex: 1;
        height: calc(120 / 16 * 1em); }
        nav ul li a {
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: calc(26 / 16 * 1em); } }

.common-h2-wrap {
  background: url(../img/title_bg.jpg) center center no-repeat;
  background-size: cover;
  color: #fff; }
  .common-h2-wrap h2 {
    display: flex;
    align-items: center;
    gap: calc(24 / 36 * 1em);
    font-size: calc(36 / 16 * 1em);
    font-weight: 700;
    height: calc(120 / 36 * 1em); }
    .common-h2-wrap h2:before {
      content: "";
      display: block;
      width: calc(40 / 36 * 1em);
      height: calc(2 / 36 * 1em);
      background-color: #fff;
      flex-shrink: 0; }
  @media screen and (max-width: 767px) {
    .common-h2-wrap {
      background: url(../img/title_bg_sp.jpg) center center no-repeat;
      background-size: cover; }
      .common-h2-wrap h2 {
        font-size: calc(44 / 16 * 1em);
        height: calc(180 / 44 * 1em);
        gap: calc(20 / 44 * 1em); }
        .common-h2-wrap h2:before {
          width: calc(30 / 44 * 1em); } }

.approach-c1 {
  padding: calc(130 / 16 * 1em) 0; }
  .approach-c1 .text_01 {
    width: calc(744 / 32 * 1em);
    margin: 0 auto; }
  .approach-c1 .cap1 {
    font-size: calc(28 / 16 * 1em);
    font-weight: 500;
    margin: 1.5em auto 0;
    text-align: center;
    color: #003E8D; }
  .approach-c1 .movie {
    width: calc(1800 / 32 * 1em);
    margin: 5em auto 0; }
    .approach-c1 .movie > div {
      padding-top: 56.25%;
      position: relative;
      border-radius: calc(20 / 16 * 1em);
      overflow: hidden; }
      .approach-c1 .movie > div iframe {
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        transform: scale(1.0125); }
  @media screen and (max-width: 767px) {
    .approach-c1 .text_01 {
      width: calc(410 / 750 * 100%); }
    .approach-c1 .movie {
      width: calc(650 / 750 * 100%); } }

.approach-c2 {
  overflow: hidden;
  padding: calc(110 / 16 * 1em) 0;
  position: relative; }
  .approach-c2:before {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% - calc(513 / 16 * 1em));
    top: calc(50% - calc(513 / 16 * 1em));
    width: calc(1026 / 16 * 1em);
    height: calc(1026 / 16 * 1em);
    border-radius: 50%;
    background-color: #f4f4f4;
    filter: blur(calc(50 / 16 * 1em)); }
  .approach-c2 .text_02 {
    position: relative;
    width: calc(694 / 32 * 1em);
    margin: 0 auto; }
  .approach-c2 .cap2 {
    position: relative;
    font-size: calc(18 / 16 * 1em);
    font-weight: 500;
    text-align: center;
    line-height: calc(38 / 18);
    margin: 2em auto 0; }
  .approach-c2 .pt {
    border-radius: calc(10 / 16 * 1em);
    overflow: hidden; }
  .approach-c2 .pt_01 {
    left: calc(80 / 1200 * 100%);
    top: calc(64 / 16 * 1em);
    width: calc(398 / 32 * 1em); }
  .approach-c2 .pt_02 {
    left: calc(50 / 1200 * 100%);
    top: calc(340 / 16 * 1em);
    width: calc(398 / 32 * 1em); }
  .approach-c2 .pt_03 {
    right: calc(80 / 1200 * 100%);
    top: calc(80 / 16 * 1em);
    width: calc(398 / 32 * 1em); }
  .approach-c2 .pt_04 {
    right: calc(50 / 1200 * 100%);
    top: calc(260 / 16 * 1em);
    width: calc(398 / 32 * 1em); }
  @media screen and (max-width: 767px) {
    .approach-c2 {
      width: 100%;
      overflow: hidden; }
      .approach-c2:before {
        filter: none;
        border-radius: 0;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%; }
      .approach-c2 .text_02 {
        width: calc(433 / 750 * 100%); }
      .approach-c2 .cap2 {
        font-size: calc(26 / 16 * 1em);
        line-height: calc(56 / 26); }
      .approach-c2 .pts {
        display: flex;
        justify-content: flex-start;
        gap: 0;
        margin: 4em auto 0;
        animation: pictloop2 10s linear infinite;
        position: relative; }
        .approach-c2 .pts .pt {
          position: relative;
          left: auto;
          right: auto;
          top: auto;
          width: calc(250 / 16 * 1em);
          margin-left: 1em;
          flex-shrink: 0; }
        .approach-c2 .pts .pt_01,
        .approach-c2 .pts .pt_02,
        .approach-c2 .pts .pt_03,
        .approach-c2 .pts .pt_04 {
          left: auto;
          right: auto; }
        .approach-c2 .pts .pt_02 {
          top: 3em; }
        .approach-c2 .pts .pt_03 {
          top: 1em; } }

@keyframes pictloop2 {
  0% {
    left: 0; }
  100% {
    left: calc(-266 / 16 * 4em); } }
.approach-c3 {
  margin: calc(110 / 16 * 1em) auto 0; }
  .approach-c3 .text_03 {
    width: calc(900 / 32 * 1em);
    margin: 0 auto; }
  .approach-c3 .pt_05 {
    width: calc(2200 / 32 * 1em);
    margin: calc(40 / 16 * 1em) auto 0; }
  @media screen and (max-width: 767px) {
    .approach-c3 .list {
      width: calc(570 / 750 * 100%);
      margin: 4em auto 0;
      position: relative;
      aspect-ratio: 570 / 360; }
      .approach-c3 .list > div {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        opacity: 0;
        transition: .5s; }
        .approach-c3 .list > div.on {
          opacity: 1; }
    .approach-c3 .list-navi {
      width: calc(570 / 750 * 100%);
      margin: 2em auto 0;
      display: flex;
      justify-content: flex-end;
      gap: 1em; }
      .approach-c3 .list-navi a {
        display: block;
        width: calc(80 / 16 * 1em); }
        .approach-c3 .list-navi a:nth-child(2) {
          transform: scale(-1, 1); } }

.approach-c4 {
  margin: calc(110 / 16 * 1em) auto calc(110 / 16 * 1em); }
  .approach-c4 .text_04 {
    width: calc(952 / 32 * 1em);
    margin: 0 auto; }
  .approach-c4 .cap2 {
    position: relative;
    font-size: calc(18 / 16 * 1em);
    font-weight: 500;
    text-align: center;
    line-height: calc(38 / 18);
    margin: 2em auto 0; }
  .approach-c4 .card-wrap {
    display: flex;
    justify-content: center;
    gap: calc(30 / 16 * 1em);
    margin: calc(36 / 16 * 1em) auto 0; }
  .approach-c4 .card {
    border-radius: calc(10 / 16 * 1em);
    overflow: hidden;
    background-color: #F9F9F9;
    width: calc(346 / 16 * 1em); }
    .approach-c4 .card .text {
      padding: 1.5em 2em; }
    .approach-c4 .card .num {
      font-size: calc(40 / 16 * 1em);
      letter-spacing: 4%;
      line-height: calc(44 / 40);
      color: #18529B;
      display: inline-block;
      border-bottom: 1px solid #18529B; }
    .approach-c4 .card h4 {
      font-size: calc(20 / 16 * 1em);
      font-weight: 700;
      letter-spacing: 4%;
      margin: calc(14 / 20 * 1em) auto 0; }
    .approach-c4 .card p {
      font-weight: 500;
      letter-spacing: 2%;
      line-height: calc(26 / 16);
      margin: calc(14 / 16 * 1em) auto 0; }
  @media screen and (max-width: 767px) {
    .approach-c4 {
      margin-bottom: 0; }
      .approach-c4 .text_04 {
        width: calc(594 / 750 * 100%); }
      .approach-c4 .cap2 {
        font-size: calc(26 / 16 * 1em);
        line-height: calc(56 / 26); }
      .approach-c4 .card-wrap {
        flex-wrap: wrap;
        gap: 0; }
      .approach-c4 .card {
        display: block;
        width: 100%;
        padding: 4em 0;
        background: #FFFFFF;
        background: linear-gradient(180deg, white 0%, #f4f4f4 100%); }
        .approach-c4 .card .img {
          width: calc(400 / 750 * 100%);
          margin: 0 auto;
          border-radius: calc(10 / 16 * 1em);
          overflow: hidden; }
        .approach-c4 .card .text {
          padding: 0;
          margin: 3em auto 0;
          display: flex;
          align-items: flex-start;
          justify-content: space-between;
          width: calc(650 / 750 * 100%); }
        .approach-c4 .card .num {
          font-size: calc(50 / 16 * 1em); }
          .approach-c4 .card .num + div {
            width: 81%; }
        .approach-c4 .card h4 {
          font-size: calc(34 / 16 * 1em);
          margin-top: 0; }
        .approach-c4 .card p {
          font-size: calc(26 / 16 * 1em); } }

.sect-voice {
  background: url(../img/bg_01.png); }

.voice-c1 {
  padding: calc(110 / 16 * 1em) 0; }
  .voice-c1 h3 {
    text-align: center;
    font-size: calc(18 / 16 * 1em);
    font-weight: 500; }
  .voice-c1 .card-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: calc(30 / 16 * 1em);
    margin: 3em auto 0; }
  .voice-c1 .card {
    background-color: #fff;
    display: flex;
    align-items: center;
    gap: calc(20 / 16 * 1em);
    width: calc(535 / 16 * 1em);
    padding: calc(40 / 16 * 1em);
    border-radius: calc(10 / 16 * 1em); }
    .voice-c1 .card .img {
      width: calc(96 / 16 * 1em);
      border-radius: 50%; }
      .voice-c1 .card .img span {
        display: block;
        text-align: center;
        margin: .5em auto 0;
        white-space: nowrap; }
    .voice-c1 .card .text {
      flex: 1; }
      .voice-c1 .card .text p {
        font-weight: 500;
        line-height: calc(26 / 16);
        text-align: justify; }
  .voice-c1 .card-dots {
    display: none; }
  .voice-c1 .btn-wrap {
    margin: 4em auto 0; }
    .voice-c1 .btn-wrap a {
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      width: calc(290 / 20 * 1em);
      height: calc(60 / 20 * 1em);
      border-radius: 3em;
      background: #FF9605;
      background: linear-gradient(90deg, #ff9605 0%, #ff7403 100%);
      color: #fff;
      font-size: calc(20 / 16 * 1em);
      font-weight: 700;
      letter-spacing: 6%;
      text-decoration: none;
      position: relative;
      padding-right: calc(20 / 20 * 1em); }
      .voice-c1 .btn-wrap a:after {
        content: "";
        display: block;
        position: absolute;
        right: calc(20 / 20 * 1em);
        top: 0;
        width: calc(20 / 20 * 1em);
        height: 100%;
        background: url(../img/icon_sch.svg) center center no-repeat;
        background-size: contain; }
  @media screen and (max-width: 767px) {
    .voice-c1 h3 {
      font-size: calc(26 / 16 * 1em);
      line-height: calc(56 / 26); }
    .voice-c1 .card-wrap {
      flex-wrap: nowrap;
      justify-content: flex-start;
      width: 100%;
      overflow: auto;
      padding: 4em calc(90 / 16 * 1em) 1em; }
    .voice-c1 .card {
      width: calc(570 / 16 * 1em);
      display: block;
      flex-shrink: 0;
      padding: 0 calc(32 / 16 * 1em) calc(40 / 16 * 1em); }
      .voice-c1 .card .img {
        width: calc(120 / 16 * 1em);
        margin: 0 auto;
        position: relative;
        top: -3.5em; }
        .voice-c1 .card .img img {
          outline: 2px solid #fff;
          border-radius: 50%;
          margin: 0 auto; }
        .voice-c1 .card .img span {
          font-size: calc(26 / 16 * 1em); }
      .voice-c1 .card .text {
        margin: -2em auto 0; }
        .voice-c1 .card .text p {
          font-size: calc(26 / 16 * 1em);
          line-height: calc(46 / 26);
          font-feature-settings: "palt"; }
    .voice-c1 .card-dots {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 1.5em;
      margin: 1em auto 0; }
      .voice-c1 .card-dots > div {
        width: calc(10 / 16 * 1em);
        height: calc(10 / 16 * 1em);
        background-color: #C3CAD1;
        border-radius: 50%; }
        .voice-c1 .card-dots > div.on {
          background-color: #535353; }
    .voice-c1 .btn-wrap a {
      font-size: calc(36 / 16 * 1em);
      letter-spacing: 0;
      width: calc(548 / 750 * 100%);
      height: calc(120 / 36 * 1em); }
      .voice-c1 .btn-wrap a:after {
        right: calc(30 / 20 * 1em); } }

.tech-c1 {
  padding: calc(110 / 16 * 1em) 0; }
  .tech-c1 .text_01 {
    width: calc(928 / 32 * 1em);
    margin: 0 auto; }
  .tech-c1 .cap1 {
    text-align: center;
    font-size: calc(28 / 16 * 1em);
    font-weight: 500;
    letter-spacing: 10%;
    color: #003E8D;
    margin: 1.5em auto 0; }
  .tech-c1 .movie {
    width: calc(1800 / 32 * 1em);
    margin: 5em auto 0; }
    .tech-c1 .movie > div {
      padding-top: 56.25%;
      position: relative;
      border-radius: calc(20 / 16 * 1em);
      overflow: hidden; }
      .tech-c1 .movie > div iframe {
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        transform: scale(1.0125); }
  @media screen and (max-width: 767px) {
    .tech-c1 .text_01 {
      width: calc(533 / 750 * 100%); }
    .tech-c1 .movie {
      width: calc(650 / 750 * 100%);
      margin-top: 4em; } }

@media screen and (max-width: 767px) {
  .tech-c2 .list {
    aspect-ratio: 1500 / 562;
    position: relative; }
    .tech-c2 .list > div {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      transition: 1s; }
      .tech-c2 .list > div:last-child {
        opacity: 0; }
    .tech-c2 .list.on > div:last-child {
      opacity: 1; } }

.tech-c3 {
  position: relative;
  padding: calc(110 / 16 * 1em) 0;
  background-color: #F5FAFF; }
  .tech-c3 > .bg {
    content: "";
    display: block;
    position: absolute;
    width: calc(1170 / 32 * 1em); }
    .tech-c3 > .bg.bg_01 {
      right: 0;
      top: 0; }
    .tech-c3 > .bg.bg_02 {
      left: 0;
      bottom: 0;
      transform: rotate(180deg); }
  .tech-c3 .card-wrap {
    width: calc(1100 / 1200 * 100%);
    margin: 0 auto;
    position: relative; }
  .tech-c3 .card {
    background-color: #fff;
    border-radius: calc(20 / 16 * 1em);
    padding: calc(60 / 16 * 1em) calc(44 / 16 * 1em);
    box-shadow: 0 0 calc(10 / 16 * 1em) rgba(163, 190, 204, 0.5);
    display: flex;
    align-items: center;
    gap: calc(40 / 16 * 1em); }
    .tech-c3 .card + .card {
      margin-top: calc(40 / 16 * 1em); }
    .tech-c3 .card .text {
      flex: 1; }
      .tech-c3 .card .text h4 {
        border-left: 1px solid #3F84DA;
        border-bottom: 1px solid #3F84DA;
        padding: 0 0 calc(14 / 16 * 1em) calc(16 / 16 * 1em);
        line-height: 1;
        position: relative; }
        .tech-c3 .card .text h4:before {
          content: "";
          display: block;
          position: absolute;
          left: calc(-6 / 16 * 1em);
          top: 0;
          width: calc(24 / 32 * 1em);
          height: calc(36 / 32 * 1em);
          background: url(../img/tech/icon_h4.png) center center no-repeat;
          background-size: contain; }
        .tech-c3 .card .text h4 span {
          display: inline-block;
          font-size: calc(20 / 16 * 1em);
          font-weight: 600;
          letter-spacing: 10%;
          background: #3F84DA;
          background: linear-gradient(90deg, #3f84da 0%, #18529b 100%);
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent; }
      .tech-c3 .card .text h3 {
        font-size: calc(28 / 16 * 1em);
        font-weight: 700;
        line-height: calc(48 / 28);
        margin: 1em auto 0;
        color: #00448A; }
      .tech-c3 .card .text p {
        font-size: calc(18 / 16 * 1em);
        font-weight: 500;
        line-height: calc(38 / 18);
        letter-spacing: 2%;
        margin: calc(22 / 18 * 1em) auto 0;
        text-align: justify; }
    .tech-c3 .card .img {
      width: calc(800 / 32 * 1em);
      position: relative; }
      .tech-c3 .card .img .bln {
        position: absolute;
        right: -1.25em;
        top: -1.25em;
        width: calc(240 / 32 * 1em); }
      .tech-c3 .card .img span {
        display: block;
        position: absolute;
        right: 0;
        top: calc(100% + 1em);
        font-size: calc(12 / 16 * 1em); }
      .tech-c3 .card .img .cd_04 {
        width: 90%;
        margin: 0 auto; }
  .tech-c3 .btn-wrap {
    margin: 4em auto 0; }
    .tech-c3 .btn-wrap a {
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      width: calc(290 / 20 * 1em);
      height: calc(60 / 20 * 1em);
      border-radius: 3em;
      background: #FF9605;
      background: linear-gradient(90deg, #ff9605 0%, #ff7403 100%);
      color: #fff;
      font-size: calc(20 / 16 * 1em);
      font-weight: 700;
      letter-spacing: 6%;
      text-decoration: none;
      position: relative;
      padding-right: calc(20 / 20 * 1em); }
      .tech-c3 .btn-wrap a:after {
        content: "";
        display: block;
        position: absolute;
        right: calc(20 / 20 * 1em);
        top: 0;
        width: calc(20 / 20 * 1em);
        height: 100%;
        background: url(../img/icon_sch.svg) center center no-repeat;
        background-size: contain; }
  @media screen and (max-width: 767px) {
    .tech-c3 .card-wrap {
      width: calc(650 / 750 * 100%); }
    .tech-c3 .card {
      flex-direction: column;
      padding: calc(40 / 16 * 1em) calc(36 / 16 * 1em) calc(90 / 16 * 1em); }
      .tech-c3 .card .text h4 {
        padding-left: 1.5em; }
        .tech-c3 .card .text h4:before {
          transform-origin: center top;
          transform: scale(1.4); }
        .tech-c3 .card .text h4 span {
          font-size: calc(26 / 16 * 1em); }
      .tech-c3 .card .text h3 {
        font-size: calc(34 / 16 * 1em); }
      .tech-c3 .card .text p {
        font-size: calc(26 / 16 * 1em);
        margin-top: 1em; }
      .tech-c3 .card .img {
        width: 100%; }
        .tech-c3 .card .img .bln {
          right: -1.5em;
          top: -3em;
          width: calc(184 / 16 * 1em); }
        .tech-c3 .card .img span {
          font-size: calc(20 / 16 * 1em); }
    .tech-c3 .btn-wrap a {
      font-size: calc(36 / 16 * 1em);
      letter-spacing: 0;
      width: calc(548 / 750 * 100%);
      height: calc(120 / 36 * 1em); }
      .tech-c3 .btn-wrap a:after {
        right: calc(30 / 20 * 1em); } }

.experience-c1 {
  padding: calc(110 / 16 * 1em) 0;
  position: relative; }
  .experience-c1 .logo {
    width: calc(202 / 16 * 1em);
    margin: 0 auto; }
  .experience-c1 .text_01 {
    width: calc(772 / 32 * 1em);
    margin: 2.75em auto 0; }
  .experience-c1 .btn_01 {
    display: block;
    width: calc(520 / 32 * 1em);
    margin: 2.75em auto 0; }
    .experience-c1 .btn_01 img {
      filter: drop-shadow(0 calc(3 / 16 * 1em) calc(6 / 16 * 1em) rgba(0, 0, 0, 0.16)); }
  .experience-c1 .pt {
    width: calc(300 / 1200 * 100%); }
    .experience-c1 .pt.pt_01 {
      left: calc(50 / 1200 * 100%);
      top: 0; }
    .experience-c1 .pt.pt_02 {
      left: calc(50 / 1200 * 100%);
      top: calc(220 / 16 * 1em); }
    .experience-c1 .pt.pt_03 {
      right: calc(50 / 1200 * 100%);
      top: 0; }
    .experience-c1 .pt.pt_04 {
      right: calc(50 / 1200 * 100%);
      top: calc(220 / 16 * 1em); }
  .experience-c1 a {
    margin: calc(40 / 20 * 1em) auto 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(290 / 20 * 1em);
    height: calc(60 / 20 * 1em);
    border-radius: 3em;
    background: #FF9605;
    background: linear-gradient(90deg, #ff9605 0%, #ff7403 100%);
    color: #fff;
    font-size: calc(20 / 16 * 1em);
    font-weight: 700;
    letter-spacing: 6%;
    text-decoration: none;
    position: relative;
    padding-right: calc(20 / 20 * 1em); }
    .experience-c1 a:after {
      content: "";
      display: block;
      position: absolute;
      right: calc(20 / 20 * 1em);
      top: 0;
      width: calc(20 / 20 * 1em);
      height: 100%;
      background: url(../img/icon_sch.svg) center center no-repeat;
      background-size: contain; }
  @media screen and (max-width: 767px) {
    .experience-c1 {
      width: 100%;
      overflow: hidden; }
      .experience-c1 .logo {
        width: calc(240 / 750 * 100%); }
      .experience-c1 .text_01 {
        width: calc(553 / 750 * 100%);
        margin-top: 4em; }
      .experience-c1 .btn_01 {
        margin-top: 5em;
        width: calc(548 / 750 * 100%); }
      .experience-c1 a {
        font-size: calc(36 / 16 * 1em);
        letter-spacing: 0;
        width: calc(548 / 750 * 100%);
        height: calc(120 / 36 * 1em); }
        .experience-c1 a:after {
          right: calc(30 / 20 * 1em); }
      .experience-c1 .list {
        display: flex;
        margin: 5em auto 0;
        width: 100%;
        position: relative;
        animation: pictloop 10s linear infinite; }
        .experience-c1 .list .pt {
          position: relative;
          flex-shrink: 0;
          margin-left: 1em;
          width: calc(300 / 16 * 1em);
          top: auto; }
          .experience-c1 .list .pt.pt_01, .experience-c1 .list .pt.pt_02, .experience-c1 .list .pt.pt_03, .experience-c1 .list .pt.pt_04 {
            left: auto;
            right: auto; } }

@keyframes pictloop {
  0% {
    left: 0; }
  100% {
    left: calc(-1200 / 16 * 1em - 4em); } }
footer {
  padding: 1.5em 0;
  border-top: 1px solid #D0D0D0; }
  footer .footer-navi {
    padding: 0 calc(50 / 16 * 1em);
    display: flex;
    align-items: center;
    justify-content: space-between; }
    footer .footer-navi .logo {
      width: calc(93 / 16 * 1em); }
    footer .footer-navi .navi ul {
      display: flex;
      gap: 5em; }
      footer .footer-navi .navi ul a {
        color: inherit;
        text-decoration: none;
        font-weight: 600; }
    footer .footer-navi .copyright {
      font-size: calc(12 / 16 * 1em); }
  @media screen and (max-width: 767px) {
    footer {
      padding: 3em 0; }
      footer .footer-navi {
        flex-wrap: wrap;
        justify-content: center;
        padding: 0;
        gap: 2em; }
        footer .footer-navi .logo {
          order: 1;
          width: calc(148 / 16 * 1em); }
        footer .footer-navi .navi ul {
          font-size: calc(26 / 16 * 1em);
          gap: 2em; }
        footer .footer-navi .copyright {
          order: 1;
          width: 100%;
          text-align: center;
          font-size: calc(14 / 16 * 1em); } }

.flbtn {
  position: fixed;
  right: calc(-290 / 16 * 1em);
  bottom: 0;
  z-index: 5;
  transition: .5s; }
  .flbtn a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(290 / 20 * 1em);
    height: calc(60 / 20 * 1em);
    border-radius: calc(10 / 20 * 1em) 0 0 0;
    background: #FF9605;
    background: linear-gradient(90deg, #ff9605 0%, #ff7403 100%);
    color: #fff;
    font-size: calc(20 / 16 * 1em);
    font-weight: 700;
    letter-spacing: 6%;
    text-decoration: none;
    position: relative;
    padding-right: calc(20 / 20 * 1em); }
    .flbtn a:after {
      content: "";
      display: block;
      position: absolute;
      right: calc(20 / 20 * 1em);
      top: 0;
      width: calc(20 / 20 * 1em);
      height: 100%;
      background: url(../img/icon_sch.svg) center center no-repeat;
      background-size: contain; }
  .flbtn.on {
    right: 0; }
  @media screen and (max-width: 767px) {
    .flbtn {
      right: auto;
      bottom: -7.5em;
      width: 100%; }
      .flbtn a {
        font-size: calc(36 / 16 * 1em);
        letter-spacing: 0;
        width: calc(548 / 750 * 100%);
        height: calc(120 / 36 * 1em);
        border-radius: 3em;
        margin: 0 auto; }
        .flbtn a:after {
          right: calc(30 / 20 * 1em); }
      .flbtn.on {
        bottom: 1.5em; } }
