@charset "UTF-8";
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, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  margin: 0;
  padding: 0; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

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

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

.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  font-size: 0;
  clear: both;
  visibility: hidden; }

.clearfix {
  display: inline-block; }

/* Hides from IE Mac */
* html .clearfix {
  height: 1%; }

.clearfix {
  display: block; }

/* ---------- 初期 ---------- */
body {
  letter-spacing: 0.01em;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  -webkit-text-size-adjust: 100%;
  color: #1A1A1A; }

img {
  max-width: 100%;
  pointer-events: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-touch-callout: none;
  -moz-user-select: none;
  user-select: none; }

a {
  text-decoration: none; }

strong {
  font-weight: bold; }

/* ---------- /共通部分 ---------- */
#jougetyuou {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  margin: auto; }

#kadomaru {
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px; }

#resbtn {
  -webkit-appearance: none; }

.ancr {
  position: relative;
  transition: 0.5s; }

.anca {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 10;
  cursor: pointer; }

.ancr:hover {
  transition: 0.5s; }

.anca:hover {
  cursor: pointer; }

/* ---------- /参考タグ部分 ---------- */
.wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between; }

.poppins {
  font-family: "Poppins", sans-serif; }

/* PC */
@media screen and (min-width: 769px) {
  .sponly {
    display: none !important; }

  html {
    font-size: calc(1vw * 100 / 1920); }

  body {
    background: #2d55a5;
    font-size: 16rem; }

  header {
    position: fixed;
    box-sizing: border-box;
    padding: 40rem;
    z-index: 10;
    width: 100%;
    box-sizing: border-box; }
    header .logo {
      width: 200rem;
      position: relative;
      z-index: 5; }
    header .menu {
      display: none; }
    header .menu:checked + .menu_la span:nth-child(1) {
      left: 10rem;
      top: 45%;
      transform: rotate(45deg);
      transition: 0.3s; }
    header .menu:checked + .menu_la span:nth-child(2) {
      display: none; }
    header .menu:checked + .menu_la span:nth-child(3) {
      left: 10rem;
      bottom: 45%;
      transform: rotate(-45deg);
      transition: 0.3s; }
    header .menu_la {
      display: block;
      height: 60rem;
      width: 60rem;
      position: absolute;
      right: 25rem;
      top: 25rem;
      z-index: 4; }
      header .menu_la span {
        width: 40rem;
        height: 5rem;
        border-radius: 100rem;
        display: block;
        background: #fff;
        position: absolute; }
      header .menu_la span:nth-child(1) {
        left: 10rem;
        top: 70%;
        transition: 0.3s; }
      header .menu_la span:nth-child(2) {
        left: 10rem;
        top: 50%;
        transform: translateY(-50%); }
      header .menu_la span:nth-child(3) {
        left: 10rem;
        bottom: 70%;
        transition: 0.3s; }
    header .menu:checked + .menu_la + .head_menu {
      right: 0;
      transition: 0.3s;
      opacity: 1; }
    header .head_menu {
      width: 350rem;
      background: #2d55a5;
      position: absolute;
      right: -400rem;
      top: 0;
      opacity: 0;
      transition: 0.3s;
      z-index: 2;
      padding: 100rem 0 50rem;
      box-sizing: border-box; }
      header .head_menu ul {
        width: 80%;
        margin: 0 auto; }
        header .head_menu ul li {
          font-size: 22rem;
          border-bottom: dashed 1rem #fff; }
          header .head_menu ul li a {
            color: #fff;
            display: block;
            padding: 1em 0; }
            header .head_menu ul li a:hover {
              text-decoration: underline; }

  .mv_slider img {
    width: 100%;
    height: auto;
    transform: scale(1.2);
    /* 初期状態は拡大 */
    transition: transform 3.5s ease;
    /* autoplaySpeedと揃える */ }

  /* slickでアクティブなスライドだけに寄りの動きを適用 */
  .mv_slider .slick-current img {
    transform: scale(1);
    /* 徐々に引いていく */ }

  #mv {
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden; }
    #mv .mv_slider {
      position: relative;
      z-index: 1; }
    #mv .mv_txt {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      background: #2d55a5;
      z-index: 2;
      padding: 0 0 20rem; }
      #mv .mv_txt .mv_sub {
        color: #fff;
        font-size: 34rem;
        position: absolute;
        left: 4%;
        top: -85rem;
        letter-spacing: 0; }
      #mv .mv_txt .mv_ttl {
        width: 92%;
        margin: -50rem auto 0;
        color: #fff;
        font-size: 120rem; }

  #about {
    padding: 180rem 0 200rem;
    background: #2d55a5;
    position: relative; }
    #about:before {
      content: '';
      display: block;
      width: 500rem;
      height: 290rem;
      background: url("../img/about_img_0.svg") no-repeat center;
      background-size: contain;
      opacity: 0.8;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      right: 190rem; }
    #about .about_inner {
      width: 70%;
      margin: 0 auto;
      color: #fff; }
      #about .about_inner .about_ttl {
        display: inline-block;
        background: #fff;
        color: #2d55a5;
        font-size: 30rem;
        margin-bottom: 50rem; }
      #about .about_inner .about_en {
        font-size: 50rem;
        line-height: 1.5em;
        margin-bottom: 15rem; }
      #about .about_inner .about_jp {
        font-size: 18rem;
        line-height: 1.6em; }

  #serv {
    background: #2d55a5; }
    #serv .serv_inner {
      width: 96%;
      margin: 0 auto;
      border-top: solid 1px #fff;
      padding: 40rem 0; }
      #serv .serv_inner .serv_ttl {
        font-size: 50rem;
        line-height: 1.5em;
        color: #fff; }
      #serv .serv_inner .serv_sub {
        color: #fff;
        font-size: 18rem;
        line-height: 1.6em;
        margin-bottom: 40rem; }
      #serv .serv_inner .serv_boxes {
        display: flex;
        justify-content: space-between; }
        #serv .serv_inner .serv_boxes .serv_box {
          width: 32%; }
          #serv .serv_inner .serv_boxes .serv_box .serv_box_img {
            border-radius: 10rem;
            overflow: hidden;
            background-position: center;
            background-repeat: no-repeat;
            background-size: cover;
            margin-bottom: 20rem; }
            #serv .serv_inner .serv_boxes .serv_box .serv_box_img:before {
              content: '';
              display: block;
              padding-bottom: 100%; }
          #serv .serv_inner .serv_boxes .serv_box:nth-child(1) .serv_box_img {
            background-image: url("../img/marketing.jpg"); }
          #serv .serv_inner .serv_boxes .serv_box:nth-child(2) .serv_box_img {
            background-image: url("../img/publication.jpg"); }
          #serv .serv_inner .serv_boxes .serv_box:nth-child(3) .serv_box_img {
            background-image: url("../img/development.jpg"); }
          #serv .serv_inner .serv_boxes .serv_box .serv_box_ttl {
            display: inline-block;
            background: #fff;
            color: #2d55a5;
            font-size: 40rem;
            margin-bottom: 5rem; }
          #serv .serv_inner .serv_boxes .serv_box .serv_box_sub {
            color: #fff;
            font-size: 18rem;
            line-height: 1.6em;
            margin-bottom: 20rem; }
          #serv .serv_inner .serv_boxes .serv_box .txt {
            font-size: 14rem;
            line-height: 1.5em;
            color: #fff; }
          #serv .serv_inner .serv_boxes .serv_box .serv_box_btn {
            margin-top: 20rem;
            text-align: right; }
            #serv .serv_inner .serv_boxes .serv_box .serv_box_btn a {
              display: inline-block;
              border-radius: 100rem;
              border: solid 1px #fff;
              color: #fff;
              font-size: 17rem;
              padding: 0.8em 2.3em;
              transition: 0.3s; }
              #serv .serv_inner .serv_boxes .serv_box .serv_box_btn a:hover {
                transition: 0.3s;
                color: #2d55a5;
                background: #fff;
                cursor: pointer; }

  #news {
    padding: 50rem 0;
    background: #F7F7F7;
    border-radius: 20rem; }
    #news .news_inner {
      width: 96%;
      margin: 0 auto;
      border-top: solid 1px #2d55a5;
      padding: 40rem 0; }
      #news .news_inner .news_ttl {
        font-size: 50rem;
        line-height: 1.5em;
        color: #2d55a5; }
      #news .news_inner .news_sub {
        color: #2d55a5;
        font-size: 18rem;
        line-height: 1.6em;
        margin-bottom: 40rem; }
      #news .news_inner .news_box {
        display: flex;
        justify-content: space-between; }
        #news .news_inner .news_box .news_left {
          width: 30%; }
          #news .news_inner .news_box .news_left .news_left_ttl {
            background: url("../img/icon.svg") no-repeat center left;
            font-size: 24rem;
            padding-left: 25rem;
            margin-bottom: 20rem; }
          #news .news_inner .news_box .news_left .news_left_list {
            width: 200rem; }
            #news .news_inner .news_box .news_left .news_left_list li {
              font-size: 18rem;
              line-height: 1.5em;
              margin-bottom: 10rem; }
              #news .news_inner .news_box .news_left .news_left_list li a {
                color: #1A1A1A;
                display: block;
                border-bottom: solid 1px #1A1A1A;
                padding: 5rem 0 10rem; }
                #news .news_inner .news_box .news_left .news_left_list li a:hover {
                  color: #2d55a5; }
              #news .news_inner .news_box .news_left .news_left_list li.current a {
                color: #2d55a5;
                border-color: #2d55a5; }
        #news .news_inner .news_box .news_right {
          width: 65%; }
          #news .news_inner .news_box .news_right .news_right_btn {
            text-align: right; }
            #news .news_inner .news_box .news_right .news_right_btn a {
              display: inline-block;
              border-radius: 100rem;
              border: solid 1px #2d55a5;
              color: #2d55a5;
              font-size: 17rem;
              padding: 0.8em 2.3em;
              transition: 0.3s; }
              #news .news_inner .news_box .news_right .news_right_btn a:hover {
                transition: 0.3s;
                color: #fff;
                background: #2d55a5;
                cursor: pointer; }
          #news .news_inner .news_box .news_right .news_lists {
            padding-bottom: 30rem; }
            #news .news_inner .news_box .news_right .news_lists .news_list {
              background: #fff;
              box-sizing: border-box;
              border-radius: 10rem;
              padding: 20rem;
              display: flex;
              justify-content: space-between;
              align-items: center;
              margin-bottom: 20rem;
              box-sizing: border-box;
              border: solid 4rem #fff;
              transition: 0.3s; }
              #news .news_inner .news_box .news_right .news_lists .news_list:hover {
                border-color: #2d55a5;
                transition: 0.3s; }
                #news .news_inner .news_box .news_right .news_lists .news_list:hover .news_list_right .news_list_ttl {
                  color: #2d55a5; }
              #news .news_inner .news_box .news_right .news_lists .news_list .news_list_left {
                height: 140rem;
                background-position: center;
                background-repeat: no-repeat;
                background-size: cover;
                width: 20%;
                border-radius: 10rem;
                overflow: hidden; }
              #news .news_inner .news_box .news_right .news_lists .news_list .news_list_right {
                width: 75%; }
                #news .news_inner .news_box .news_right .news_lists .news_list .news_list_right .news_list_ttl {
                  font-size: 20rem;
                  line-height: 1.5em;
                  margin-bottom: 10rem; }
                #news .news_inner .news_box .news_right .news_lists .news_list .news_list_right .news_list_date {
                  font-size: 16rem; }

  #comp {
    padding: 100rem 0;
    /* アニメーションの設定 */ }
    #comp .comp_bg {
      width: 100%;
      /* 表示範囲の幅 */
      overflow: hidden;
      /* はみ出した部分を隠す */
      white-space: nowrap;
      /* 改行させない */
      box-sizing: border-box;
      position: relative; }
    #comp .comp_bg_inner {
      margin-top: -20rem;
      font-size: 200rem;
      opacity: 0.3;
      color: #fff;
      display: inline-block;
      padding-left: 100%;
      /* 最初は右側に隠す */
      animation: marquee 50s linear infinite;
      /* 10秒で1ループ、無限繰り返し */ }
    #comp .comp_bg2_inner {
      text-align: center;
      font-size: 50rem; }
    #comp .comp_bg2 {
      background: #fff;
      color: #2d55a5;
      padding: 100rem 0; }
      #comp .comp_bg2 .txt {
        margin-top: 50rem;
        text-align: center;
        line-height: 2em;
        font-size: 20rem; }
  @keyframes marquee {
    0% {
      transform: translateX(0); }
    100% {
      transform: translateX(-100%); }
    /* 左方向に100%移動 */ }
    #comp .comp_inner {
      width: 96%;
      margin: 0 auto;
      padding-top: 90rem; }
      #comp .comp_inner .comp_ttl {
        font-size: 50rem;
        line-height: 1.5em;
        color: #fff; }
      #comp .comp_inner .comp_sub {
        color: #fff;
        font-size: 18rem;
        line-height: 1.6em;
        margin-bottom: 40rem; }
      #comp .comp_inner .comp_box {
        display: flex;
        justify-content: space-between; }
      #comp .comp_inner .comp_left {
        width: 30%; }
      #comp .comp_inner .comp_right {
        width: 65%; }
        #comp .comp_inner .comp_right table {
          width: 100%;
          color: #fff; }
          #comp .comp_inner .comp_right table tr th {
            width: 20%;
            font-size: 18rem;
            line-height: 1.5em;
            border-top: solid 1px #fff;
            text-align: left;
            padding: 20rem 15rem; }
          #comp .comp_inner .comp_right table tr td {
            width: 80%;
            font-size: 18rem;
            line-height: 1.5em;
            border-top: solid 1px #fff;
            padding: 20rem 0; }

  #foot {
    padding-bottom: 30rem; }
    #foot .inner {
      width: 96%;
      margin: 0 auto;
      display: flex;
      justify-content: space-between;
      align-items: flex-end; }
      #foot .inner .foot_left .foot_logo {
        width: 200rem;
        margin-bottom: 40rem; }
        #foot .inner .foot_left .foot_logo img {
          display: block; }
      #foot .inner .foot_left .foot_list {
        display: flex; }
        #foot .inner .foot_left .foot_list li {
          margin-right: 1em;
          font-size: 14rem; }
          #foot .inner .foot_left .foot_list li a {
            color: #fff; }
            #foot .inner .foot_left .foot_list li a:hover {
              text-decoration: underline; }
      #foot .inner .foot_right {
        text-align: right; }
        #foot .inner .foot_right .txt {
          font-size: 14rem;
          margin-bottom: 20rem; }
          #foot .inner .foot_right .txt a {
            color: #fff; }
            #foot .inner .foot_right .txt a:hover {
              text-decoration: underline; }
        #foot .inner .foot_right #copy {
          font-size: 12rem;
          color: #fff; }

  #btmbtn {
    padding-bottom: 100rem; }
    #btmbtn .btmbtn_inner {
      width: 96%;
      margin: 0 auto;
      display: flex;
      justify-content: space-between; }
      #btmbtn .btmbtn_inner .btmbtn_box {
        overflow: hidden;
        box-sizing: border-box;
        height: 600rem;
        display: flex;
        align-items: center;
        border-radius: 20rem;
        width: 49%;
        padding: 0 100rem;
        position: relative;
        transition: 0.3s; }
        #btmbtn .btmbtn_inner .btmbtn_box:before {
          content: '';
          display: block;
          position: absolute;
          left: 0;
          top: 0;
          z-index: 1;
          height: 100%;
          width: 100%;
          background: #fff;
          transition: 0.3s; }
        #btmbtn .btmbtn_inner .btmbtn_box:nth-child(1) {
          background: url("../img/rec_bg.jpg") no-repeat center;
          background-size: 100%;
          transition: 0.3s; }
          #btmbtn .btmbtn_inner .btmbtn_box:nth-child(1):before {
            background: #D4DF4E; }
        #btmbtn .btmbtn_inner .btmbtn_box:nth-child(2) {
          background: url("../img/contact_bg.jpg") no-repeat center;
          background-size: 100%;
          transition: 0.3s; }
          #btmbtn .btmbtn_inner .btmbtn_box:nth-child(2):before {
            background: #EE94AF; }
        #btmbtn .btmbtn_inner .btmbtn_box:hover {
          cursor: pointer;
          background-size: 110%;
          transition: 0.3s; }
          #btmbtn .btmbtn_inner .btmbtn_box:hover:before {
            opacity: 0.8; }
        #btmbtn .btmbtn_inner .btmbtn_box .btmbtn_box_inner {
          position: relative;
          z-index: 2; }
          #btmbtn .btmbtn_inner .btmbtn_box .btmbtn_box_inner .btmbtn_ttl {
            font-size: 50rem;
            line-height: 1.5em;
            color: #fff; }
          #btmbtn .btmbtn_inner .btmbtn_box .btmbtn_box_inner .btmbtn_sub {
            color: #fff;
            font-size: 18rem;
            line-height: 1.6em;
            margin-bottom: 40rem; }
          #btmbtn .btmbtn_inner .btmbtn_box .btmbtn_box_inner .txt {
            color: #fff;
            font-size: 16rem;
            line-height: 1.8em; }
        #btmbtn .btmbtn_inner .btmbtn_box a {
          display: block;
          position: absolute;
          left: 0;
          top: 0;
          z-index: 3;
          width: 100%;
          height: 100%; }

  #underhead {
    height: 100vh;
    position: relative;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    margin-bottom: 50rem; }
    #underhead .underhead_txt {
      position: absolute;
      left: 50rem;
      bottom: 50rem;
      color: #fff; }
      #underhead .underhead_txt .underhead_txt_ttl {
        font-size: 60rem;
        line-height: 1.5em; }
      #underhead .underhead_txt .underhead_txt_txt {
        font-size: 20rem; }
    #underhead.about {
      background-image: url("../img/about.jpg"); }
    #underhead.marketing {
      background-image: url("../img/marketing.jpg"); }
    #underhead.publication {
      background-image: url("../img/publication.jpg"); }
    #underhead.development {
      background-image: url("../img/development.jpg"); }

  #underbody {
    padding: 0 0 100rem; }
    #underbody .underbody_txt {
      padding-top: 50rem;
      color: #fff;
      font-size: 20rem;
      width: 1000rem;
      margin: 0 auto;
      line-height: 2em; }
    #underbody .underbody_cont {
      background: #fff;
      border-radius: 20rem;
      box-sizing: border-box;
      padding: 50rem;
      width: 1400rem;
      margin: 50rem auto; }
      #underbody .underbody_cont h2 {
        color: #fff;
        background: #2d55a5;
        font-size: 24rem;
        padding: 20rem;
        margin-bottom: 20rem;
        border-radius: 5rem;
        margin-top: 50rem;
        font-weight: 700; }
        #underbody .underbody_cont h2:first-child {
          margin-top: 0; }
        #underbody .underbody_cont h2.styled_h2 {
          background: #000000;
          font-size: 28rem; }
      #underbody .underbody_cont .txt {
        font-size: 20rem;
        line-height: 1.6em; }
      #underbody .underbody_cont .kome {
        font-size: 12rem;
        line-height: 1.5em; }
      #underbody .underbody_cont .underbody_cont_box {
        display: flex;
        justify-content: space-between; }
        #underbody .underbody_cont .underbody_cont_box .underbody_cont_box_img {
          width: 35%; }
        #underbody .underbody_cont .underbody_cont_box .txt {
          width: 63%;
          font-feature-settings: "palt"; }
      #underbody .underbody_cont table {
        margin-bottom: 10rem;
        width: 100%; }
        #underbody .underbody_cont table tr th {
          background: #F3F3F3;
          padding: 15rem;
          text-align: left;
          vertical-align: middle;
          font-size: 15rem;
          line-height: 1.8em;
          border: solid 1px #DBDBDB; }
        #underbody .underbody_cont table tr td {
          padding: 15rem;
          border: solid 1px #DBDBDB;
          font-size: 15rem;
          line-height: 1.8em;
          vertical-align: middle;
          font-feature-settings: "palt"; }
        #underbody .underbody_cont table tr .t01 {
          width: 30%;
          font-weight: 700;
          font-size: 17rem; }
        #underbody .underbody_cont table tr .t02 {
          width: 20%; }
        #underbody .underbody_cont table tr .t03 {
          width: 50%; }
      #underbody .underbody_cont .boxes_inner .boxes {
        display: flex;
        flex-wrap: wrap; }
        #underbody .underbody_cont .boxes_inner .boxes .box {
          width: 32%;
          margin-right: 2%;
          margin-bottom: 40rem;
          position: relative;
          overflow: hidden; }
          #underbody .underbody_cont .boxes_inner .boxes .box:nth-child(3n) {
            margin-right: 0; }
          #underbody .underbody_cont .boxes_inner .boxes .box a {
            display: block;
            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            z-index: 10; }
          #underbody .underbody_cont .boxes_inner .boxes .box:hover .box_img img {
            transform: scale(1.1, 1.1);
            transition: 0.5s; }
          #underbody .underbody_cont .boxes_inner .boxes .box:hover .box_img:before {
            background: rgba(0, 0, 0, 0.1);
            transition: 0.5s; }
          #underbody .underbody_cont .boxes_inner .boxes .box .box_img:before {
            content: '';
            display: block;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.4);
            transition: 0.3s;
            position: absolute;
            left: 0;
            top: 0;
            z-index: 2; }
          #underbody .underbody_cont .boxes_inner .boxes .box .box_img img {
            transition: 0.3s;
            display: block;
            position: relative;
            z-index: 1; }
          #underbody .underbody_cont .boxes_inner .boxes .box .box_txt {
            position: absolute;
            font-size: 18rem;
            left: 10rem;
            bottom: 10rem;
            z-index: 2;
            color: #fff; }

  #underhead2 {
    padding: 150rem 0 100rem; }
    #underhead2 .underhead2_ttl {
      width: 80%;
      margin: 0 auto;
      font-size: 50rem;
      color: #fff; }

  .archive-inner {
    padding: 150rem 0 80rem;
    width: 96%;
    margin: 0 auto; }

  .contact_table table {
    width: 100%; }
    .contact_table table tr:nth-child(2n) th {
      background: #F7FAFF; }
    .contact_table table tr:nth-child(2n) td {
      background: #F7FAFF; }
    .contact_table table tr th {
      width: 300rem;
      font-size: 16rem;
      line-height: 1.5em;
      padding: 15rem;
      text-align: left;
      vertical-align: middle; }
      .contact_table table tr th p {
        margin-bottom: 0; }
    .contact_table table tr td {
      width: calc(100% - 300rem);
      font-size: 16rem;
      line-height: 1.5em;
      padding: 15rem; }
      .contact_table table tr td input[type="text"] {
        border: none;
        background: #F4F4F4;
        width: 100%;
        box-sizing: border-box;
        padding: 15rem;
        border-radius: 5rem;
        font-size: 16rem; }
      .contact_table table tr td input[type="email"] {
        border: none;
        background: #F4F4F4;
        width: 100%;
        box-sizing: border-box;
        padding: 15rem;
        border-radius: 5rem;
        font-size: 16rem; }
      .contact_table table tr td input[type="tel"] {
        border: none;
        background: #F4F4F4;
        width: 100%;
        box-sizing: border-box;
        padding: 15rem;
        border-radius: 5rem;
        font-size: 16rem; }
      .contact_table table tr td textarea {
        border: none;
        background: #F4F4F4;
        width: 100%;
        box-sizing: border-box;
        padding: 15rem;
        border-radius: 5rem;
        font-size: 16rem; }
      .contact_table table tr td p {
        margin-bottom: 0; }
      .contact_table table tr td input[type="submit"] {
        display: inline-block;
        border: solid 2rem #000;
        background: #000;
        color: #fff;
        padding: 1em 4em;
        font-size: 20rem;
        margin-top: 30rem;
        border-radius: 100rem;
        transition: 0.3s; }
        .contact_table table tr td input[type="submit"]:hover {
          cursor: pointer;
          transition: 0.3s;
          color: #000;
          background: #fff; }

  #underbody2 {
    padding-bottom: 100rem; }
    #underbody2 .underbody2_inner {
      width: 80%;
      margin: 0 auto;
      box-sizing: border-box;
      border-radius: 20rem;
      background: #fff;
      padding: 50rem; }
      #underbody2 .underbody2_inner h1 {
        font-size: 34rem;
        line-height: 1.5em;
        border-bottom: solid 1rem #000000;
        margin-bottom: 20rem;
        padding-bottom: 10rem; }
      #underbody2 .underbody2_inner p {
        font-size: 20rem;
        line-height: 1.8em;
        margin-bottom: 1em; }
      #underbody2 .underbody2_inner h2 {
        font-weight: 700;
        color: #fff;
        padding: 20rem;
        font-size: 30rem;
        border-radius: 10rem;
        background: #000;
        margin-bottom: 15rem;
        margin-top: 55rem; }
      #underbody2 .underbody2_inner h3 {
        font-weight: 700;
        color: #fff;
        padding: 20rem;
        font-size: 26rem;
        border-radius: 10rem;
        background: #2d55a5;
        margin-bottom: 15rem;
        margin-top: 45rem; } }
/* SP */
@media screen and (max-width: 768px) {
  .pconly {
    display: none !important; }

  html {
    font-size: calc(1vw * 100 / 750); }

  body {
    background: #2d55a5;
    font-size: 16rem; }

  header {
    position: fixed;
    box-sizing: border-box;
    padding: 40rem;
    z-index: 10;
    width: 100%;
    box-sizing: border-box; }
    header .logo {
      width: 200rem;
      position: relative;
      z-index: 5; }
    header .menu {
      display: none; }
    header .menu:checked + .menu_la span:nth-child(1) {
      left: 10rem;
      top: 45%;
      transform: rotate(45deg);
      transition: 0.3s; }
    header .menu:checked + .menu_la span:nth-child(2) {
      display: none; }
    header .menu:checked + .menu_la span:nth-child(3) {
      left: 10rem;
      bottom: 45%;
      transform: rotate(-45deg);
      transition: 0.3s; }
    header .menu_la {
      display: block;
      height: 60rem;
      width: 60rem;
      position: absolute;
      right: 25rem;
      top: 25rem;
      z-index: 4; }
      header .menu_la span {
        width: 40rem;
        height: 5rem;
        border-radius: 100rem;
        display: block;
        background: #fff;
        position: absolute; }
      header .menu_la span:nth-child(1) {
        left: 10rem;
        top: 70%;
        transition: 0.3s; }
      header .menu_la span:nth-child(2) {
        left: 10rem;
        top: 50%;
        transform: translateY(-50%); }
      header .menu_la span:nth-child(3) {
        left: 10rem;
        bottom: 70%;
        transition: 0.3s; }
    header .menu:checked + .menu_la + .head_menu {
      right: 0;
      transition: 0.3s;
      opacity: 1; }
    header .head_menu {
      width: 350rem;
      background: #2d55a5;
      position: absolute;
      right: -400rem;
      top: 0;
      opacity: 0;
      transition: 0.3s;
      z-index: 2;
      padding: 100rem 0 50rem;
      box-sizing: border-box; }
      header .head_menu ul {
        width: 80%;
        margin: 0 auto; }
        header .head_menu ul li {
          font-size: 22rem;
          border-bottom: dashed 1rem #fff; }
          header .head_menu ul li a {
            color: #fff;
            display: block;
            padding: 1em 0; }
            header .head_menu ul li a:hover {
              text-decoration: underline; }

  .mv_slider img {
    width: 100%;
    height: auto;
    transform: scale(1.2);
    /* 初期状態は拡大 */
    transition: transform 3.5s ease;
    /* autoplaySpeedと揃える */ }

  /* slickでアクティブなスライドだけに寄りの動きを適用 */
  .mv_slider .slick-current img {
    transform: scale(1);
    /* 徐々に引いていく */ }

  #mv {
    position: relative;
    width: 100%;
    overflow: hidden; }
    #mv .mv_slider {
      position: relative;
      z-index: 1; }
    #mv .mv_txt {
      position: absolute;
      bottom: -2rem;
      left: 0;
      width: 100%;
      background: #2d55a5;
      z-index: 2;
      padding: 0 0 20rem; }
      #mv .mv_txt .mv_sub {
        color: #fff;
        font-size: 34rem;
        position: absolute;
        left: 4%;
        top: -85rem;
        letter-spacing: 0; }
      #mv .mv_txt .mv_ttl {
        width: 92%;
        margin: -50rem auto 0;
        color: #fff;
        font-size: 120rem; }

  #about {
    padding: 180rem 0 200rem;
    background: #2d55a5;
    position: relative;
    text-align: center; }
    #about:after {
      content: '';
      margin: 50rem auto 0;
      display: block;
      width: 500rem;
      height: 290rem;
      background: url("../img/about_img_0.svg") no-repeat center;
      background-size: contain;
      opacity: 0.8; }
    #about .about_inner {
      width: 90%;
      margin: 0 auto;
      color: #fff; }
      #about .about_inner .about_ttl {
        display: inline-block;
        background: #fff;
        color: #2d55a5;
        font-size: 40rem;
        margin-bottom: 50rem; }
      #about .about_inner .about_en {
        font-size: 50rem;
        line-height: 1.5em;
        margin-bottom: 15rem; }
      #about .about_inner .about_jp {
        font-size: 30rem;
        line-height: 2em; }

  #serv {
    background: #2d55a5;
    padding-bottom: 80rem; }
    #serv .serv_inner {
      width: 90%;
      margin: 0 auto;
      border-top: solid 1px #fff;
      padding: 60rem 0 40rem; }
      #serv .serv_inner .serv_ttl {
        font-size: 65rem;
        line-height: 1.5em;
        color: #fff; }
      #serv .serv_inner .serv_sub {
        color: #fff;
        font-size: 30rem;
        line-height: 1.6em;
        margin-bottom: 40rem; }
      #serv .serv_inner .serv_boxes .serv_box {
        width: 100%;
        margin-bottom: 60rem;
        text-align: center; }
        #serv .serv_inner .serv_boxes .serv_box:last-child {
          margin-bottom: 0; }
        #serv .serv_inner .serv_boxes .serv_box .serv_box_img {
          border-radius: 10rem;
          overflow: hidden;
          background-position: center;
          background-repeat: no-repeat;
          background-size: cover;
          margin-bottom: 60rem; }
          #serv .serv_inner .serv_boxes .serv_box .serv_box_img:before {
            content: '';
            display: block;
            padding-bottom: 60%; }
        #serv .serv_inner .serv_boxes .serv_box:nth-child(1) .serv_box_img {
          background-image: url("../img/marketing.jpg"); }
        #serv .serv_inner .serv_boxes .serv_box:nth-child(2) .serv_box_img {
          background-image: url("../img/publication.jpg"); }
        #serv .serv_inner .serv_boxes .serv_box:nth-child(3) .serv_box_img {
          background-image: url("../img/development.jpg"); }
        #serv .serv_inner .serv_boxes .serv_box .serv_box_ttl {
          display: inline-block;
          background: #fff;
          color: #2d55a5;
          font-size: 50rem;
          margin-bottom: 15rem; }
        #serv .serv_inner .serv_boxes .serv_box .serv_box_sub {
          color: #fff;
          font-size: 40rem;
          line-height: 1.6em;
          margin-bottom: 40rem; }
        #serv .serv_inner .serv_boxes .serv_box .txt {
          text-align: left;
          font-size: 28rem;
          line-height: 1.5em;
          color: #fff; }
        #serv .serv_inner .serv_boxes .serv_box .serv_box_btn {
          margin-top: 30rem;
          text-align: center; }
          #serv .serv_inner .serv_boxes .serv_box .serv_box_btn a {
            display: inline-block;
            border-radius: 100rem;
            border: solid 1px #fff;
            color: #fff;
            font-size: 28rem;
            padding: 0.8em 2.3em;
            transition: 0.3s; }
            #serv .serv_inner .serv_boxes .serv_box .serv_box_btn a:hover {
              transition: 0.3s;
              color: #2d55a5;
              background: #fff;
              cursor: pointer; }

  #news {
    padding: 50rem 0;
    background: #F7F7F7;
    border-radius: 20rem; }
    #news .news_inner {
      width: 90%;
      margin: 0 auto;
      border-top: solid 1px #2d55a5;
      padding: 40rem 0; }
      #news .news_inner .news_ttl {
        font-size: 50rem;
        line-height: 1.5em;
        color: #2d55a5; }
      #news .news_inner .news_sub {
        color: #2d55a5;
        font-size: 18rem;
        line-height: 1.6em;
        margin-bottom: 40rem; }
      #news .news_inner .news_box {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap; }
        #news .news_inner .news_box .news_left {
          width: 100%;
          order: 2; }
          #news .news_inner .news_box .news_left .news_left_ttl {
            background: url("../img/icon.svg") no-repeat center left;
            font-size: 34rem;
            padding-left: 45rem;
            margin-bottom: 20rem; }
          #news .news_inner .news_box .news_left .news_left_list {
            width: 100%; }
            #news .news_inner .news_box .news_left .news_left_list li {
              font-size: 30rem;
              line-height: 1.5em;
              margin-bottom: 10rem; }
              #news .news_inner .news_box .news_left .news_left_list li a {
                color: #1A1A1A;
                display: block;
                border-bottom: solid 1px #1A1A1A;
                padding: 5rem 0 10rem; }
                #news .news_inner .news_box .news_left .news_left_list li a:hover {
                  color: #2d55a5; }
              #news .news_inner .news_box .news_left .news_left_list li.current a {
                color: #2d55a5;
                border-color: #2d55a5; }
        #news .news_inner .news_box .news_right {
          width: 100%;
          margin-bottom: 60rem; }
          #news .news_inner .news_box .news_right .news_right_btn {
            text-align: center; }
            #news .news_inner .news_box .news_right .news_right_btn a {
              display: inline-block;
              border-radius: 100rem;
              border: solid 1px #2d55a5;
              color: #2d55a5;
              font-size: 28rem;
              padding: 0.8em 2.3em;
              transition: 0.3s; }
              #news .news_inner .news_box .news_right .news_right_btn a:hover {
                transition: 0.3s;
                color: #fff;
                background: #2d55a5;
                cursor: pointer; }
          #news .news_inner .news_box .news_right .news_lists {
            padding-bottom: 30rem; }
            #news .news_inner .news_box .news_right .news_lists .news_list {
              background: #fff;
              box-sizing: border-box;
              border-radius: 10rem;
              padding: 20rem;
              display: flex;
              justify-content: space-between;
              align-items: center;
              margin-bottom: 20rem;
              box-sizing: border-box;
              border: solid 4rem #fff;
              transition: 0.3s; }
              #news .news_inner .news_box .news_right .news_lists .news_list:hover {
                border-color: #2d55a5;
                transition: 0.3s; }
                #news .news_inner .news_box .news_right .news_lists .news_list:hover .news_list_right .news_list_ttl {
                  color: #2d55a5; }
              #news .news_inner .news_box .news_right .news_lists .news_list .news_list_left {
                height: 140rem;
                background-position: center;
                background-repeat: no-repeat;
                background-size: cover;
                width: 20%;
                border-radius: 10rem;
                overflow: hidden; }
              #news .news_inner .news_box .news_right .news_lists .news_list .news_list_right {
                width: 75%; }
                #news .news_inner .news_box .news_right .news_lists .news_list .news_list_right .news_list_ttl {
                  font-size: 28rem;
                  line-height: 1.5em;
                  margin-bottom: 10rem; }
                #news .news_inner .news_box .news_right .news_lists .news_list .news_list_right .news_list_date {
                  font-size: 24rem; }

  #comp {
    padding: 100rem 0;
    /* アニメーションの設定 */ }
    #comp .comp_bg {
      width: 100%;
      /* 表示範囲の幅 */
      overflow: hidden;
      /* はみ出した部分を隠す */
      white-space: nowrap;
      /* 改行させない */
      box-sizing: border-box;
      position: relative; }
    #comp .comp_bg_inner {
      margin-top: -10rem;
      font-size: 150rem;
      opacity: 0.3;
      color: #fff;
      display: inline-block;
      animation: marquee 50s linear infinite;
      /* 10秒で1ループ、無限繰り返し */ }
    #comp .comp_bg2_inner {
      text-align: center;
      font-size: 50rem;
      line-height: 1.5em; }
    #comp .comp_bg2 {
      background: #fff;
      color: #2d55a5;
      padding: 100rem 0; }
      #comp .comp_bg2 .txt {
        margin-top: 50rem;
        text-align: center;
        line-height: 2em;
        font-size: 26rem; }
  @keyframes marquee {
    0% {
      transform: translateX(0); }
    100% {
      transform: translateX(-100%); }
    /* 左方向に100%移動 */ }
    #comp .comp_inner {
      width: 90%;
      margin: 0 auto;
      padding-top: 90rem; }
      #comp .comp_inner .comp_ttl {
        font-size: 60rem;
        line-height: 1.5em;
        color: #fff; }
      #comp .comp_inner .comp_sub {
        color: #fff;
        font-size: 30rem;
        line-height: 1.6em;
        margin-bottom: 40rem; }
      #comp .comp_inner .comp_right table {
        width: 100%;
        color: #fff; }
        #comp .comp_inner .comp_right table tr th {
          width: 24%;
          font-size: 24rem;
          line-height: 1.5em;
          border-top: solid 1px #fff;
          text-align: left;
          padding: 20rem 15rem; }
        #comp .comp_inner .comp_right table tr td {
          width: 76%;
          font-size: 24rem;
          line-height: 1.5em;
          border-top: solid 1px #fff;
          padding: 20rem 0; }

  #foot {
    padding-bottom: 30rem; }
    #foot .inner {
      width: 90%;
      margin: 0 auto; }
      #foot .inner .foot_left {
        margin-bottom: 20rem; }
        #foot .inner .foot_left .foot_logo {
          width: 220rem;
          margin-bottom: 40rem; }
          #foot .inner .foot_left .foot_logo img {
            display: block; }
        #foot .inner .foot_left .foot_list {
          display: flex;
          flex-wrap: wrap; }
          #foot .inner .foot_left .foot_list li {
            margin-right: 1em;
            font-size: 22rem;
            margin-bottom: 1em; }
            #foot .inner .foot_left .foot_list li a {
              color: #fff; }
              #foot .inner .foot_left .foot_list li a:hover {
                text-decoration: underline; }
      #foot .inner .foot_right {
        text-align: right; }
        #foot .inner .foot_right .txt {
          font-size: 18rem;
          margin-bottom: 20rem; }
          #foot .inner .foot_right .txt a {
            color: #fff; }
            #foot .inner .foot_right .txt a:hover {
              text-decoration: underline; }
        #foot .inner .foot_right #copy {
          font-size: 16rem;
          color: #fff; }

  #btmbtn {
    padding-bottom: 100rem; }
    #btmbtn .btmbtn_inner {
      width: 90%;
      margin: 0 auto; }
      #btmbtn .btmbtn_inner .btmbtn_box {
        overflow: hidden;
        box-sizing: border-box;
        height: 60vw;
        display: flex;
        align-items: center;
        border-radius: 20rem;
        width: 100%;
        padding: 0 70rem;
        position: relative;
        transition: 0.3s; }
        #btmbtn .btmbtn_inner .btmbtn_box:before {
          content: '';
          display: block;
          position: absolute;
          left: 0;
          top: 0;
          z-index: 1;
          height: 100%;
          width: 100%;
          background: #fff;
          transition: 0.3s; }
        #btmbtn .btmbtn_inner .btmbtn_box:nth-child(1) {
          background: url("../img/rec_bg.jpg") no-repeat center;
          background-size: 100%;
          transition: 0.3s;
          margin-bottom: 20rem; }
          #btmbtn .btmbtn_inner .btmbtn_box:nth-child(1):before {
            background: #D4DF4E; }
        #btmbtn .btmbtn_inner .btmbtn_box:nth-child(2) {
          background: url("../img/contact_bg.jpg") no-repeat center;
          background-size: 100%;
          transition: 0.3s; }
          #btmbtn .btmbtn_inner .btmbtn_box:nth-child(2):before {
            background: #EE94AF; }
        #btmbtn .btmbtn_inner .btmbtn_box:hover {
          cursor: pointer;
          background-size: 110%;
          transition: 0.3s; }
          #btmbtn .btmbtn_inner .btmbtn_box:hover:before {
            opacity: 0.8; }
        #btmbtn .btmbtn_inner .btmbtn_box .btmbtn_box_inner {
          position: relative;
          z-index: 2; }
          #btmbtn .btmbtn_inner .btmbtn_box .btmbtn_box_inner .btmbtn_ttl {
            font-size: 60rem;
            line-height: 1.5em;
            color: #fff; }
          #btmbtn .btmbtn_inner .btmbtn_box .btmbtn_box_inner .btmbtn_sub {
            color: #fff;
            font-size: 30rem;
            line-height: 1.6em;
            margin-bottom: 40rem; }
          #btmbtn .btmbtn_inner .btmbtn_box .btmbtn_box_inner .txt {
            color: #fff;
            font-size: 28rem;
            line-height: 1.8em; }
        #btmbtn .btmbtn_inner .btmbtn_box a {
          display: block;
          position: absolute;
          left: 0;
          top: 0;
          z-index: 3;
          width: 100%;
          height: 100%; }

  #underhead {
    height: 70vh;
    position: relative;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    margin-bottom: 50rem; }
    #underhead .underhead_txt {
      position: absolute;
      left: 50rem;
      bottom: 50rem;
      color: #fff; }
      #underhead .underhead_txt .underhead_txt_ttl {
        font-size: 60rem;
        line-height: 1.5em; }
      #underhead .underhead_txt .underhead_txt_txt {
        font-size: 24rem; }
    #underhead.about {
      background-image: url("../img/about.jpg"); }
    #underhead.marketing {
      background-image: url("../img/marketing.jpg"); }
    #underhead.publication {
      background-image: url("../img/publication.jpg"); }
    #underhead.development {
      background-image: url("../img/development.jpg"); }

  #underbody {
    padding: 0 0 100rem; }
    #underbody .underbody_txt {
      padding-top: 50rem;
      color: #fff;
      font-size: 26rem;
      width: 90%;
      margin: 0 auto;
      line-height: 1.8em;
      margin-bottom: 60rem; }
    #underbody .underbody_cont {
      background: #fff;
      border-radius: 20rem;
      box-sizing: border-box;
      padding: 50rem;
      width: 100%;
      margin: 50rem auto; }
      #underbody .underbody_cont h2 {
        color: #fff;
        background: #2d55a5;
        font-size: 34rem;
        padding: 20rem;
        margin-bottom: 20rem;
        border-radius: 5rem;
        margin-top: 50rem;
        font-weight: 700; }
        #underbody .underbody_cont h2:first-child {
          margin-top: 0; }
        #underbody .underbody_cont h2.styled_h2 {
          background: #000000;
          font-size: 28rem; }
      #underbody .underbody_cont .txt {
        font-size: 26rem;
        line-height: 1.6em; }
      #underbody .underbody_cont .kome {
        font-size: 20rem;
        line-height: 1.5em; }
      #underbody .underbody_cont .underbody_cont_box .underbody_cont_box_img {
        width: 100%;
        margin-bottom: 20rem; }
      #underbody .underbody_cont .underbody_cont_box .txt {
        width: 100%;
        font-feature-settings: "palt"; }
      #underbody .underbody_cont table {
        margin-bottom: 10rem;
        width: 100%; }
        #underbody .underbody_cont table tr th {
          padding: 15rem;
          text-align: left;
          vertical-align: middle;
          font-size: 15rem;
          line-height: 1.8em;
          border: solid 1px #DBDBDB;
          display: block;
          box-sizing: border-box;
          width: 100%; }
        #underbody .underbody_cont table tr td {
          padding: 15rem;
          border: solid 1px #DBDBDB;
          font-size: 15rem;
          line-height: 1.8em;
          vertical-align: middle;
          font-feature-settings: "palt";
          display: block;
          box-sizing: border-box;
          width: 100%; }
        #underbody .underbody_cont table tr .t01 {
          background: #F3F3F3;
          font-weight: 700;
          font-size: 26rem;
          text-align: center; }
        #underbody .underbody_cont table tr .t02 {
          font-size: 24rem;
          background: #F8F8F8;
          text-align: center; }
        #underbody .underbody_cont table tr .t03 {
          font-size: 24rem; }
      #underbody .underbody_cont .boxes_inner .boxes {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between; }
        #underbody .underbody_cont .boxes_inner .boxes .box {
          width: 100%;
          margin-bottom: 30rem;
          position: relative;
          overflow: hidden; }
          #underbody .underbody_cont .boxes_inner .boxes .box a {
            display: block;
            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            z-index: 10; }
          #underbody .underbody_cont .boxes_inner .boxes .box:hover .box_img img {
            transform: scale(1.1, 1.1);
            transition: 0.5s; }
          #underbody .underbody_cont .boxes_inner .boxes .box:hover .box_img:before {
            background: rgba(0, 0, 0, 0.1);
            transition: 0.5s; }
          #underbody .underbody_cont .boxes_inner .boxes .box .box_img:before {
            content: '';
            display: block;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.4);
            transition: 0.3s;
            position: absolute;
            left: 0;
            top: 0;
            z-index: 2; }
          #underbody .underbody_cont .boxes_inner .boxes .box .box_img img {
            transition: 0.3s;
            display: block;
            position: relative;
            z-index: 1; }
          #underbody .underbody_cont .boxes_inner .boxes .box .box_txt {
            position: absolute;
            font-size: 26rem;
            left: 20rem;
            bottom: 20rem;
            z-index: 2;
            color: #fff; }

  #underhead2 {
    padding: 150rem 0 100rem; }
    #underhead2 .underhead2_ttl {
      width: 90%;
      margin: 0 auto;
      font-size: 50rem;
      color: #fff; }

  .archive-inner {
    padding: 150rem 0 80rem;
    width: 90%;
    margin: 0 auto; }

  .contact_table table {
    width: 100%; }
    .contact_table table tr th {
      background: #F7FAFF;
      display: block;
      box-sizing: border-box;
      width: 100%;
      font-size: 16rem;
      line-height: 1.5em;
      padding: 15rem;
      text-align: left;
      vertical-align: middle;
      border: solid 1rem #DADADA; }
      .contact_table table tr th p {
        margin-bottom: 0 !important; }
    .contact_table table tr td {
      width: 100%;
      display: block;
      box-sizing: border-box;
      font-size: 16rem;
      line-height: 1.5em;
      padding: 15rem; }
      .contact_table table tr td p {
        margin-bottom: 0 !important; }
      .contact_table table tr td input[type="text"] {
        border: none;
        background: #F4F4F4;
        width: 100%;
        box-sizing: border-box;
        padding: 15rem;
        border-radius: 5rem;
        font-size: 16rem; }
      .contact_table table tr td input[type="email"] {
        border: none;
        background: #F4F4F4;
        width: 100%;
        box-sizing: border-box;
        padding: 15rem;
        border-radius: 5rem;
        font-size: 16rem; }
      .contact_table table tr td input[type="tel"] {
        border: none;
        background: #F4F4F4;
        width: 100%;
        box-sizing: border-box;
        padding: 15rem;
        border-radius: 5rem;
        font-size: 16rem; }
      .contact_table table tr td textarea {
        border: none;
        background: #F4F4F4;
        width: 100%;
        box-sizing: border-box;
        padding: 15rem;
        border-radius: 5rem;
        font-size: 16rem; }
      .contact_table table tr td p {
        margin-bottom: 0; }
      .contact_table table tr td input[type="submit"] {
        display: inline-block;
        border: solid 2rem #000;
        background: #000;
        color: #fff;
        padding: 1em 4em;
        font-size: 20rem;
        margin-top: 30rem;
        border-radius: 100rem;
        transition: 0.3s; }
        .contact_table table tr td input[type="submit"]:hover {
          cursor: pointer;
          transition: 0.3s;
          color: #000;
          background: #fff; }

  #underbody2 {
    padding-bottom: 100rem; }
    #underbody2 .underbody2_inner {
      width: 90%;
      margin: 0 auto;
      box-sizing: border-box;
      border-radius: 20rem;
      background: #fff;
      padding: 40rem; }
      #underbody2 .underbody2_inner h1 {
        font-size: 45rem;
        line-height: 1.5em;
        border-bottom: solid 1rem #000000;
        margin-bottom: 30rem;
        padding-bottom: 20rem; }
      #underbody2 .underbody2_inner p {
        font-size: 28rem;
        line-height: 1.7em;
        margin-bottom: 1em; }
      #underbody2 .underbody2_inner h2 {
        font-weight: 700;
        color: #fff;
        padding: 20rem;
        font-size: 36rem;
        border-radius: 10rem;
        background: #000;
        margin-bottom: 15rem;
        margin-top: 55rem; }
      #underbody2 .underbody2_inner h3 {
        font-weight: 700;
        color: #fff;
        padding: 20rem;
        font-size: 30rem;
        border-radius: 10rem;
        background: #2d55a5;
        margin-bottom: 15rem;
        margin-top: 45rem; } }
.text-inview span {
  opacity: 0;
  display: inline-block;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease; }

/* アニメーション実行時の状態 */
.text-inview.show span {
  opacity: 1;
  transform: translateY(0); }

/* 文字ごとに遅延設定 */
.text-inview span:nth-child(1) {
  transition-delay: 0s; }

.text-inview span:nth-child(2) {
  transition-delay: 0.05s; }

.text-inview span:nth-child(3) {
  transition-delay: 0.1s; }

.text-inview span:nth-child(4) {
  transition-delay: 0.15s; }

.text-inview span:nth-child(5) {
  transition-delay: 0.2s; }

.text-inview span:nth-child(6) {
  transition-delay: 0.25s; }

.text-inview span:nth-child(7) {
  transition-delay: 0.3s; }

.text-inview span:nth-child(8) {
  transition-delay: 0.35s; }

.text-inview span:nth-child(9) {
  transition-delay: 0.4s; }

.text-inview span:nth-child(10) {
  transition-delay: 0.45s; }

.text-inview span:nth-child(11) {
  transition-delay: 0.5s; }

.text-inview2 span {
  opacity: 0;
  display: inline-block;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease; }

/* アニメーション実行時の状態 */
.text-inview2.show span {
  opacity: 1;
  transform: translateY(0); }

/* 文字ごとに遅延設定 */
.text-inview2 span:nth-child(1) {
  transition-delay: 0s; }

.text-inview2 span:nth-child(2) {
  transition-delay: 0.05s; }

.text-inview2 span:nth-child(3) {
  transition-delay: 0.1s; }

.text-inview2 span:nth-child(4) {
  transition-delay: 0.15s; }

.text-inview2 span:nth-child(5) {
  transition-delay: 0.2s; }

.text-inview2 span:nth-child(6) {
  transition-delay: 0.25s; }

.text-inview2 span:nth-child(7) {
  transition-delay: 0.3s; }

.text-inview2 span:nth-child(8) {
  transition-delay: 0.35s; }

.text-inview2 span:nth-child(9) {
  transition-delay: 0.4s; }

.text-inview2 span:nth-child(10) {
  transition-delay: 0.45s; }

.text-inview2 span:nth-child(11) {
  transition-delay: 0.5s; }

.text-inview2 span:nth-child(12) {
  transition-delay: 0.55s; }

.text-inview2 span:nth-child(13) {
  transition-delay: 0.6s; }

.text-inview2 span:nth-child(14) {
  transition-delay: 0.65s; }
