@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Montserrat:wght@400;600;700;800&display=swap");
section, nav, article, aside, hgroup, header, footer, figure, figcaption, details {
  display: block; }

html, body, div, span, applet, object, iframe, strong, 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, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, legend, caption, tbody, tfoot, thead, table, label, tr, th, td, figure {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  vertical-align: baseline; }

html {
  -webkit-text-size-adjust: 100%; }

body {
  font-family: "Hiragino Kaku Gothic Pro",Meiryo,"MS PGothic",sans-serif;
  color: #000;
  line-height: 1.8;
  letter-spacing: 0.05em;
  padding-top: 75px; }
  body.home {
    padding-top: 0; }

li {
  list-style: none; }

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

a {
  text-decoration: none;
  color: #000; }

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

svg {
  vertical-align: top; }

hr {
  height: 1px;
  background-color: #ccc;
  border: 0; }

.video-container {
  position: relative;
  width: 100%;
  padding-top: 56.25%; }

.video-container iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
  z-index: 1; }

.pc_only {
  display: block; }

.pc_only_inline {
  display: inline; }

.sp_only,
.sp_only_inline {
  display: none; }

.wrap {
  max-width: 1100px;
  padding: 0 80px;
  margin: 0 auto; }
  .wrap.thin {
    max-width: 1020px; }
  .wrap:after {
    content: "";
    display: block;
    clear: both; }

.to_top {
  transition: top .6s ease, opacity .6s ease;
  position: relative;
  top: 50px;
  opacity: 0; }

.isAnimate.show.to_top {
  top: 0;
  opacity: 1; }

.to_top_left {
  transition: all 1s ease;
  position: relative;
  top: 50px;
  left: 50px;
  opacity: 0; }

.isAnimate.show.to_top_left {
  top: 0;
  left: 0;
  opacity: 1; }

.to_top_right {
  transition: all 1s ease;
  position: relative;
  top: 50px;
  right: 50px;
  opacity: 0; }

.isAnimate.show.to_top_right {
  top: 0;
  right: 0;
  opacity: 1; }

.red {
  color: #e60012; }

.shade {
  position: relative; }

.shade:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(0, 100, 0, 0.5);
  background: #15264b;
  backface-visibility: hidden;
  transform-origin: right center;
  transform: scaleX(0);
  z-index: 2;
  position: absolute;
  top: 0;
  left: 0; }

.shade.white:after {
  background: #fff; }

.isAnimate.show.shade:after {
  animation: img_show 0.8s cubic-bezier(0.04, 0.435, 0.315, 0.9) 0.3s; }

@keyframes img_show {
  0% {
    transform: scaleX(0);
    transform-origin: left center; }
  35% {
    transform: scaleX(1);
    transform-origin: left center; }
  36%, 60% {
    transform: scaleX(1);
    transform-origin: right center; }
  to {
    transform: scaleX(0);
    transform-origin: right center; } }
@keyframes img_show_reverse {
  0% {
    transform: scaleX(0);
    transform-origin: right center; }
  35% {
    transform: scaleX(1);
    transform-origin: right center; }
  36%, 60% {
    transform: scaleX(1);
    transform-origin: left center; }
  to {
    transform: scaleX(0);
    transform-origin: left center; } }
.shade img,
.shade .shade_inner {
  opacity: 0; }

.isAnimate.show.shade img,
.isAnimate.show.shade .shade_inner {
  animation: img_opacity 0.2s both cubic-bezier(0.04, 0.435, 0.315, 0.9) 0.7s; }

@keyframes img_opacity {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
.common_h {
  text-align: center; }
  .common_h .en {
    font-family: "Montserrat", sans-serif;
    font-weight: bold;
    font-weight: 800;
    font-size: 40px;
    line-height: 1;
    margin-bottom: 10px; }
    .common_h .en:before {
      content: "";
      display: block;
      width: 36px;
      height: 17px;
      background: url("../images/icon_common_h.svg") no-repeat;
      background-size: contain;
      margin: 0 auto 10px; }
  .common_h h2 {
    font-size: 18px;
    font-weight: bold;
    line-height: 1.4;
    letter-spacing: 0.2em; }

.btn {
  text-align: center; }
  .btn a,
  .btn button {
    display: inline-block;
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #fff;
    line-height: 1;
    padding: 16px 60px;
    border-radius: 40px;
    border: 1px solid #15264b;
    background: #15264b;
    box-sizing: border-box;
    position: relative;
    cursor: pointer;
    transition: all 0.2s; }
    .btn a:after,
    .btn button:after {
      content: "";
      display: block;
      width: 8px;
      height: 8px;
      border-right: 2px solid #fff;
      border-bottom: 2px solid #fff;
      box-sizing: border-box;
      position: absolute;
      top: 50%;
      right: 20px;
      transform: translateY(-50%) rotate(-45deg); }
  .btn a:hover,
  .btn button:hover {
    color: #15264b;
    background: #fff; }
    .btn a:hover:after,
    .btn button:hover:after {
      border-right-color: #15264b;
      border-bottom-color: #15264b; }

.btn.white a {
  color: #15264b;
  border-color: #fff;
  background: #fff; }
  .btn.white a:after {
    border-right-color: #15264b;
    border-bottom-color: #15264b; }
.btn.white a:hover {
  color: #fff;
  border-color: #15264b;
  background: #15264b; }
  .btn.white a:hover:after {
    border-right-color: #fff;
    border-bottom-color: #fff; }

.btn_b,
.btn_c {
  text-align: right; }
  .btn_b a,
  .btn_b span,
  .btn_c a,
  .btn_c span {
    display: inline-block;
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: #15264b;
    line-height: 1;
    padding-right: 30px;
    position: relative;
    transition: all 0.2s; }
    .btn_b a:before,
    .btn_b span:before,
    .btn_c a:before,
    .btn_c span:before {
      content: "";
      display: block;
      width: 20px;
      height: 20px;
      background: #15264b;
      border: 1px solid #15264b;
      box-sizing: border-box;
      border-radius: 50%;
      position: absolute;
      top: 50%;
      right: 0;
      transform: translateY(-50%);
      transition: all 0.4s; }
    .btn_b a:after,
    .btn_b span:after,
    .btn_c a:after,
    .btn_c span:after {
      content: "";
      display: block;
      width: 5px;
      height: 5px;
      border-right: 1px solid #fff;
      border-bottom: 1px solid #fff;
      box-sizing: border-box;
      position: absolute;
      top: 50%;
      right: 9px;
      transform: translateY(-50%) rotate(-45deg); }
  .btn_b a:hover,
  .btn_c a:hover {
    color: #3a4a6b; }
    .btn_b a:hover:before,
    .btn_c a:hover:before {
      background: #fff; }
    .btn_b a:hover:after,
    .btn_c a:hover:after {
      border-right-color: #15264b;
      border-bottom-color: #15264b; }

.fixed_contact {
  position: fixed;
  top: calc(100vw / ( 1700 / 760 ));
  left: -20px;
  z-index: 10;
  mix-blend-mode: difference; }
  .fixed_contact a {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    color: #15264b;
    color: #fff;
    letter-spacing: 0.05em;
    display: inline-block;
    transform: rotate(90deg);
    padding-left: 25px; }
  .fixed_contact svg {
    width: 20px;
    fill: #15264b;
    fill: #fff;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%) rotate(-90deg); }

.fixed_contact.b {
  top: 0;
  left: 0;
  mix-blend-mode: normal;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  width: 80px;
  height: 100%;
  background: #fff;
  border-right: 1px solid #e9e9e9;
  box-sizing: border-box; }
  .fixed_contact.b .fixed_sns {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px; }
    .fixed_contact.b .fixed_sns a {
      display: block;
      line-height: 1;
      padding-left: 0;
      transform: none; }
    .fixed_contact.b .fixed_sns svg {
      display: block;
      width: 22px;
      height: 22px;
      fill: #15264b;
      position: static;
      transform: none; }
  .fixed_contact.b .contact_link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: #15264b;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1;
    padding-left: 0;
    transform: none; }
    .fixed_contact.b .contact_link svg {
      display: block;
      width: 20px;
      height: 16px;
      fill: #15264b;
      position: static;
      transform: none; }

.anchor {
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: 0;
  z-index: -10; }

.company .access {
  position: relative; }

span#access {
  top: -75px; }

/*=======================================
	layout
=======================================*/
/*--- header ---*/
#header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  height: 75px;
  background: #fff;
  border-bottom: 1px solid #e9e9e9;
  box-sizing: border-box;
  transition: all 0.5s;
  /*	&.active{
  		background: rgba(255,255,255,0.9);
  	}*/ }
  #header .logo {
    width: 86px;
    position: absolute;
    top: 50%;
    left: 40px;
    transform: translateY(-50%); }
    #header .logo svg {
      width: 100%;
      fill: #15264b; }
  #header ul {
    display: flex;
    align-items: center;
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1;
    padding-left: 150px;
    height: 75px; }
  #header li {
    margin-right: 0; }
    #header li a {
      display: block;
      padding: 10px; }
    #header li span {
      display: block;
      position: relative; }
    #header li span:after {
      content: "";
      display: block;
      width: 100%;
      height: 1px;
      background: #15264b;
      position: absolute;
      bottom: -0.3em;
      left: 0;
      transform: scale(0, 1);
      transform-origin: center;
      transition: all 0.2s; }
    #header li a:hover span:after {
      transform: scale(1); }
  #header li.sns_links {
    display: none; }
  #header li.co svg {
    display: none; }

.home #header {
  background: none;
  border-bottom: none; }
  .home #header.active {
    background: rgba(255, 255, 255, 0.9); }

.sp_header_sns {
  display: none; }
  .sp_header_sns.hide {
    display: none; }

/*--- footer ---*/
footer {
  background: url("../images/footer_bg.jpg") no-repeat center;
  background-size: cover;
  color: #fff;
  padding: 90px 0 30px;
  position: relative;
  z-index: 20; }
  footer a {
    color: #fff; }
  footer .flex {
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
    margin-bottom: 60px; }
  footer .map {
    width: 650px; }
    footer .map .video-container {
      border-radius: 4px;
      overflow: hidden; }
    footer .map iframe {
      filter: grayscale(100%); }
  footer .txt {
    width: 360px;
    margin-right: 90px;
    font-size: 14px;
    line-height: 1; }
    footer .txt .logo {
      width: 114px;
      margin-bottom: 25px; }
      footer .txt .logo svg {
        width: 100%;
        height: auto;
        fill: #fff; }
    footer .txt p {
      letter-spacing: 0.1em;
      line-height: 1.8; }
    footer .txt .link {
      margin: 25px 0 10px; }
      footer .txt .link a {
        transition: all 0.3s; }
        footer .txt .link a:hover {
          color: #b3b3b3; }
      footer .txt .link ul {
        display: flex;
        flex-wrap: wrap; }
      footer .txt .link li {
        width: 160px;
        margin-bottom: 20px;
        padding-left: 15px;
        box-sizing: border-box;
        position: relative; }
        footer .txt .link li:before {
          content: "";
          display: block;
          width: 0;
          height: 0;
          border: 5px solid transparent;
          border-left: 8px solid #fff;
          border-right-width: 0;
          position: absolute;
          top: 50%;
          left: 0;
          transform: translateY(-50%); }
    footer .txt .sns ul {
      display: flex;
      align-items: center;
      gap: 12px; }
    footer .txt .sns li {
      width: 24px; }
    footer .txt .sns a {
      display: block;
      transition: opacity 0.3s; }
    footer .txt .sns a:hover {
      opacity: 0.7; }
    footer .txt .sns svg {
      width: 100%;
      height: auto;
      fill: #fff; }
    footer .txt .btn_contact {
      margin-bottom: 25px; }
      footer .txt .btn_contact a {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 34px;
        background: #3a4a6b;
        border-radius: 17px;
        font-family: "Montserrat", sans-serif;
        font-weight: 400;
        position: relative;
        transition: all 0.3s; }
        footer .txt .btn_contact a:after {
          content: "";
          display: block;
          width: 8px;
          height: 8px;
          border-right: 1px solid #fff;
          border-bottom: 1px solid #fff;
          box-sizing: border-box;
          position: absolute;
          top: 50%;
          right: 20px;
          transform: translateY(-50%) rotate(-45deg);
          transition: all 0.3s; }
        footer .txt .btn_contact a span {
          display: inline-block;
          padding-left: 26px;
          position: relative; }
      footer .txt .btn_contact svg {
        width: 17px;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        fill: #fff;
        transition: all 0.3s; }
      footer .txt .btn_contact a:hover {
        color: #15264b;
        background: #fff; }
        footer .txt .btn_contact a:hover:after {
          border-right-color: #15264b;
          border-bottom-color: #15264b; }
        footer .txt .btn_contact a:hover svg {
          fill: #15264b; }
  footer .copy {
    text-align: center;
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    font-size: 12px;
    line-height: 1; }

.common_title {
  height: 550px;
  border-bottom: 1px solid #e9e9e9;
  box-sizing: border-box;
  padding-left: 80px; }
  .common_title .flex {
    display: flex;
    flex-direction: row-reverse;
    height: 100%; }
  .common_title .img {
    width: 52.4691358025%;
    background-image: url("../images/company_title.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover; }
  .common_title .txt {
    width: 47.5308641975%;
    display: flex;
    align-items: center; }
  .common_title h1 {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1;
    padding: 0 calc(100vw / ( 1700 / 100 )); }
    .common_title h1 .shade {
      display: inline-flex; }
    .common_title h1 .en {
      font-family: "Bebas Neue", sans-serif;
      font-size: calc(100vw / ( 1700 / 160 ));
      line-height: 0.85; }
    .common_title h1 .ja {
      font-size: calc(100vw / ( 1700 / 18 ));
      letter-spacing: .2em;
      padding-left: .2em;
      margin-top: calc(100vw / ( 1700 / 8 )); }
      .common_title h1 .ja.show:after {
        animation-delay: .65s; }
      .common_title h1 .ja.show .shade_inner {
        animation-delay: 1.05s; }
    .common_title h1 .shade_inner {
      opacity: 1; }

.recruit .common_title .img {
  background-image: url("../images/recruit_title.jpg"); }

.staff .common_title .img {
  background-image: url("../images/staff_title.jpg"); }

.works .common_title .img {
  background-image: url("../images/works_title.jpg"); }

.common_list li {
  padding-left: 16px;
  position: relative; }
  .common_list li:before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #000;
    position: absolute;
    top: .7em;
    left: 0; }

/*=======================================
	home
=======================================*/
.h-mv .flex {
  display: flex;
  flex-direction: row-reverse;
  height: calc(100vw / ( 1700 / 960 )); }
.h-mv .img {
  width: calc(100vw / ( 1700 / 830 )); }
  .h-mv .img .slider_main,
  .h-mv .img .slick-list,
  .h-mv .img .slick-track {
    height: 100%; }
  .h-mv .img .slick-slide {
    background-image: url("../images/h-mv_1.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover; }
    .h-mv .img .slick-slide:after {
      content: "";
      display: block;
      width: 100%;
      height: 100%;
      background: rgba(21, 38, 75, 0.4);
      mix-blend-mode: multiply;
      position: absolute;
      top: 0;
      left: 0; }
    .h-mv .img .slick-slide img,
    .h-mv .img .slick-slide svg {
      height: calc(100vw / ( 1700 / 962 ));
      position: relative;
      top: -1px;
      left: -1px;
      z-index: 1; }
  .h-mv .img .no1 path {
    fill: #fff; }
  .h-mv .img .no2 {
    background-image: url("../images/h-mv_2.jpg"); }
  .h-mv .img .no3 {
    background-image: url("../images/h-mv_3.jpg"); }
    .h-mv .img .no3 path {
      fill: #fff; }
  .h-mv .img .no4 {
    background-image: url("../images/h-mv_4.jpg"); }
    .h-mv .img .no4 path {
      fill: #e6eff4; }
    .h-mv .img .no4 img,
    .h-mv .img .no4 svg {
      height: calc(100vw / ( 1700 / 78 ));
      position: absolute;
      top: auto;
      bottom: 0; }
  .h-mv .img .slick-arrow {
    position: absolute;
    bottom: 10px;
    right: 10px;
    z-index: 1; }
  .h-mv .img .slick-prev {
    right: 4em; }
.h-mv .txt {
  background: #fff;
  width: calc(100vw / ( 1700 / 870 ));
  padding: calc(100vw / ( 1700 / 120 )) 0 calc(100vw / ( 1700 / 70 )) calc(100vw / ( 1700 / 140 ));
  box-sizing: border-box;
  position: relative; }
  .h-mv .txt .shade:after {
    animation: img_show 0.8s cubic-bezier(0.04, 0.435, 0.315, 0.9) 0.5s; }
  .h-mv .txt .shade img,
  .h-mv .txt .shade .shade_inner {
    animation: img_opacity 0.2s both cubic-bezier(0.04, 0.435, 0.315, 0.9) 0.9s; }
  .h-mv .txt .catchcopy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    font-family: "Bebas Neue", sans-serif;
    font-size: calc(100vw / ( 1700 / 192 ));
    line-height: 0.85; }
    .h-mv .txt .catchcopy div {
      display: inline-flex; }
    .h-mv .txt .catchcopy .shade:after {
      height: 90%; }
    .h-mv .txt .catchcopy .shade_inner {
      position: relative;
      z-index: 1; }
    .h-mv .txt .catchcopy .shade_inner span {
      color: #15264b; }
    .h-mv .txt .catchcopy div:nth-child(2):after {
      animation-delay: .65s; }
    .h-mv .txt .catchcopy div:nth-child(2) .shade_inner {
      animation-delay: 1.05s; }
    .h-mv .txt .catchcopy div:nth-child(3):after {
      animation-delay: .8s; }
    .h-mv .txt .catchcopy div:nth-child(3) .shade_inner {
      animation-delay: 1.2s; }
    .h-mv .txt .catchcopy div:nth-child(4):after {
      animation-delay: .95s; }
    .h-mv .txt .catchcopy div:nth-child(4) .shade_inner {
      animation-delay: 1.35s; }
  .h-mv .txt h1.shade {
    width: calc(100vw / ( 1700 / 406 ));
    margin-top: calc(100vw / ( 1700 / 20 ));
    position: relative;
    z-index: 1;
    /*			&.show:after{
    				animation-delay: .85s;
    			}
    			&.show img{
    				animation-delay: 1.25s;
    			}*/ }
    .h-mv .txt h1.shade:after {
      animation-delay: 1.05s; }
    .h-mv .txt h1.shade img {
      animation-delay: 1.45s; }
  .h-mv .txt .bg_color {
    background: #e6eff4;
    width: 100%;
    height: calc(100vw / ( 1700 / 270 ));
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0; }
    .h-mv .txt .bg_color svg {
      width: calc(100vw / ( 1700 / 198 ));
      position: absolute;
      top: 0;
      right: 0; }
      .h-mv .txt .bg_color svg polygon {
        fill: #fff; }

.h-news {
  padding: 60px 0;
  background: #fff; }
  .h-news .common_h {
    margin-bottom: 20px; }
  .h-news ul {
    margin-bottom: 20px; }
  .h-news li {
    display: flex;
    line-height: 1.6;
    border-bottom: 1px solid #d4d4d4;
    padding: 20px 10px 15px 10px; }
  .h-news .date {
    width: 140px;
    padding-left: 15px;
    box-sizing: border-box;
    position: relative; }
    .h-news .date:before {
      content: "";
      display: block;
      width: 8px;
      height: 8px;
      background: #df4130;
      border-radius: 50%;
      position: absolute;
      top: .5em;
      left: 0; }
  .h-news p {
    flex: 1;
    padding-right: 50px;
    position: relative; }
    .h-news p:after {
      content: "";
      display: block;
      width: 8px;
      height: 8px;
      border-right: 1px solid #000;
      border-bottom: 1px solid #000;
      box-sizing: border-box;
      position: absolute;
      top: 50%;
      right: 0;
      transform: translateY(-50%) rotate(-45deg); }
    .h-news p a {
      transition: all 0.3s; }
    .h-news p a:hover {
      color: #4d4d4d; }

.h-company {
  background: url("../images/h-company_bg.jpg") no-repeat center;
  background-size: cover;
  color: #fff;
  padding: 120px 0; }
  .h-company .txt {
    max-width: 550px;
    text-align: center; }
  .h-company .en {
    font-family: "Bebas Neue", sans-serif;
    font-size: 120px;
    line-height: 1; }
  .h-company h2 {
    font-size: 18px;
    letter-spacing: 0.2em;
    margin-bottom: 30px; }
  .h-company p {
    font-size: 22px;
    font-weight: bold;
    line-height: 2;
    letter-spacing: 0.2em; }
    .h-company p span {
      display: block;
      font-family: "Montserrat", sans-serif;
      font-weight: 600; }
  .h-company .box {
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    margin: 20px 0 40px;
    padding: 1rem 0;
    font-size: 18px; }

.h-works {
  padding: 70px 0;
  background: #fff; }
  .h-works .common_h {
    margin-bottom: 50px; }
  .h-works .slick-slide {
    transform: scale(0.8);
    opacity: .6; }
    .h-works .slick-slide figcaption {
      font-size: 14px;
      margin-top: 15px; }
  .h-works .slick-current {
    transform: scale(1);
    opacity: 1; }
  .h-works .slick-arrow {
    position: absolute;
    top: calc(100vw / ( 1700 / 120 ));
    left: calc(100vw / ( 1700 / 460 ));
    z-index: 1;
    width: 60px;
    height: 60px;
    border: 1px solid #15264b;
    box-sizing: border-box;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    cursor: pointer; }
    .h-works .slick-arrow:after {
      content: "";
      display: block;
      width: 8px;
      height: 8px;
      border-right: 1px solid #15264b;
      border-bottom: 1px solid #15264b;
      box-sizing: border-box;
      position: absolute;
      top: 50%;
      left: 27px;
      transform: translateY(-50%) rotate(135deg); }
  .h-works .slick-arrow.next {
    left: auto;
    right: calc(100vw / ( 1700 / 460 )); }
    .h-works .slick-arrow.next:after {
      left: auto;
      right: 27px;
      transform: translateY(-50%) rotate(-45deg); }
  .h-works .slick-dots {
    display: flex;
    justify-content: center;
    margin: 40px 0; }
  .h-works .slick-dots li {
    width: 8px;
    height: 8px;
    background: #e1e1e1;
    margin: 0 8px;
    border-radius: 50%; }
  .h-works .slick-dots .slick-active {
    background: #15264b; }
  .h-works .slick-dots button {
    font-size: 0;
    line-height: 0;
    border: none;
    background: none;
    outline: none; }

.h-associate .common_h {
  margin-bottom: 50px; }
.h-associate .wrap {
  max-width: 1140px; }
.h-associate ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
  margin-bottom: 90px; }
.h-associate li {
  width: calc(100vw / ( 1600 / 320 ));
  height: calc(100vw / ( 1600 / 320 ));
  margin: 0 calc(100vw / ( 1600 / 30 )); }
  .h-associate li a {
    display: block;
    height: 100%;
    border-radius: 50%;
    background: #f7fafc;
    color: #15264b;
    position: relative;
    transition: all 0.3s; }
    .h-associate li a:hover {
      background: #f1f7fa; }
  .h-associate li p {
    font-size: calc(100vw / ( 1600 / 16 ));
    font-weight: bold;
    padding: calc(100vw / ( 1600 / 70 )) 0 0; }
    .h-associate li p span {
      font-size: .8em; }
  .h-associate li figure {
    width: calc(100vw / ( 1600 / 154 ));
    margin: calc(100vw / ( 1600 / 30 )) auto 0; }
  .h-associate li i {
    display: block;
    width: calc(100vw / ( 1600 / 32 ));
    height: calc(100vw / ( 1600 / 32 ));
    background: #15264b;
    position: absolute;
    bottom: calc(100vw / ( 1600 / 35 ));
    left: 50%;
    transform: translateX(-50%);
    border-radius: 50%; }
    .h-associate li i:before {
      content: "";
      display: block;
      width: calc(100vw / ( 1600 / 10 ));
      height: calc(100vw / ( 1600 / 10 ));
      border-right: 2px solid #fff;
      border-bottom: 2px solid #fff;
      box-sizing: border-box;
      position: absolute;
      top: 50%;
      left: 42%;
      transform: translate(-50%, -50%) rotate(-45deg); }
.h-associate li:nth-of-type(2) figure {
  width: calc(100vw / ( 1600 / 192 )); }
.h-associate li:nth-of-type(3) figure {
  width: calc(100vw / ( 1600 / 180 ));
  margin-top: calc(100vw / ( 1600 / 15 ));
  mix-blend-mode: multiply; }

.h-loop {
  overflow: hidden;
  background: #fff; }
  .h-loop .flex {
    display: flex;
    width: 100vw; }
  .h-loop p {
    flex: 0 0 auto;
    font-family: "Bebas Neue", sans-serif;
    font-size: 80px;
    line-height: 1;
    color: #e6eff4;
    white-space: nowrap;
    padding: 0 .2em; }
  .h-loop p:nth-child(odd) {
    animation: loop 40s -20s linear infinite; }
  .h-loop p:nth-child(even) {
    animation: loop2 40s linear infinite; }

@keyframes loop {
  0% {
    transform: translateX(100%); }
  to {
    transform: translateX(-100%); } }
@keyframes loop2 {
  0% {
    transform: translateX(0); }
  to {
    transform: translateX(-200%); } }
.h-link {
  position: relative;
  z-index: 20; }
  .h-link .flex {
    display: flex;
    padding: 10px;
    padding-top: 0;
    text-align: center; }
  .h-link .box {
    width: 50%;
    background: #f5f8fa;
    box-sizing: border-box;
    overflow: hidden; }
    .h-link .box:last-of-type {
      margin-left: 10px; }
  .h-link a {
    display: block;
    height: 100%;
    padding: 90px 40px;
    box-sizing: border-box;
    position: relative; }
  .h-link .bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
    .h-link .bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transform: scale(1.1);
      transition: 0.6s cubic-bezier(0.23, 1, 0.32, 1);
      opacity: 0; }
  .h-link a:hover {
    color: #fff; }
    .h-link a:hover .bg img {
      transform: scale(1);
      opacity: 1; }
    .h-link a:hover .btn_c span {
      color: #fff; }
      .h-link a:hover .btn_c span i:after {
        transform: translate(-50%, -50%) scale(1.1); }
      .h-link a:hover .btn_c span svg {
        fill: #15264b; }
  .h-link h2 {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.2;
    position: relative;
    z-index: 1; }
    .h-link h2 span {
      display: block;
      font-family: "Montserrat", sans-serif;
      font-size: 18px;
      font-weight: 600;
      margin-top: 10px; }
  .h-link p {
    margin: 40px 0 60px;
    position: relative;
    z-index: 1; }
  .h-link .btn_c {
    text-align: center;
    position: relative;
    z-index: 1; }
    .h-link .btn_c span {
      padding-right: 60px; }
      .h-link .btn_c span:before, .h-link .btn_c span:after {
        display: none; }
      .h-link .btn_c span i {
        display: block;
        width: 48px;
        height: 48px;
        background: #15264b;
        border: 1px solid #15264b;
        box-sizing: border-box;
        border-radius: 50%;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%); }
        .h-link .btn_c span i:after {
          content: "";
          display: block;
          width: 100%;
          height: 100%;
          background: #fff;
          border-radius: 50%;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%) scale(0);
          transition: 0.3s cubic-bezier(0.23, 1, 0.32, 1); }
      .h-link .btn_c span svg {
        width: 10px;
        fill: #fff;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 1; }

/*=======================================
	company
=======================================*/
.company .about {
  padding: 60px 0 60px 80px;
  border-bottom: 1px solid #e9e9e9; }
  .company .about .h {
    text-align: center;
    padding: 0 calc(100vw / ( 1700 / 80 ));
    margin-bottom: 70px; }
  .company .about .flex {
    display: flex; }
  .company .about dl {
    width: 47.0588235294%;
    display: flex;
    flex-wrap: wrap;
    font-size: 1.125em; }
    .company .about dl:first-of-type {
      margin-right: 60px; }
  .company .about dt, .company .about dd {
    margin-bottom: 2rem; }
  .company .about dt {
    width: 25%;
    font-weight: bold;
    letter-spacing: .2em; }
  .company .about dd {
    width: 72.9166666667%; }
.company .access {
  padding-left: 80px;
  padding: 80px 0 90px 80px;
  font-size: 1.125em; }
  .company .access .wrap {
    position: relative; }
  .company .access h2 {
    position: absolute;
    top: 0;
    left: 80px;
    line-height: 1; }
    .company .access h2:after {
      content: "";
      display: block;
      width: 60px;
      height: 2px;
      background: #df4130;
      margin-top: 40px; }
    .company .access h2 span {
      display: block; }
    .company .access h2 .en {
      font-family: "Montserrat", sans-serif;
      font-size: 40px;
      font-weight: 800; }
    .company .access h2 .ja {
      font-size: 1.125em;
      font-weight: bold;
      letter-spacing: .2em;
      margin-top: 1rem; }
  .company .access .flex {
    display: flex;
    flex-direction: row-reverse; }
  .company .access figure {
    width: 650px; }
  .company .access .txt {
    width: 370px;
    padding-right: 30px;
    margin-top: 160px;
    box-sizing: border-box; }
    .company .access .txt p {
      margin-bottom: .8rem; }
    .company .access .txt em {
      font-weight: bold; }

/*=======================================
	staff
=======================================*/
.staff .common_title h1 .en {
  font-size: calc(100vw / ( 1700 / 140 )); }
.staff .common_title h1 .ja {
  margin-bottom: 2rem; }
.staff .common_title h1 .ja + span {
  font-size: calc(100vw / ( 1700 / 16 ));
  line-height: 1.6; }
.staff .staff_list {
  padding: 90px 0 100px 80px; }
  .staff .staff_list .wrap {
    max-width: 1280px; }
  .staff .staff_list h2 {
    text-align: center;
    margin-bottom: 10px; }
    .staff .staff_list h2:after {
      content: "";
      display: block;
      width: 60px;
      height: 2px;
      background: #df4130;
      margin: 30px auto 0; }
    .staff .staff_list h2 span {
      display: block;
      font-weight: bold;
      line-height: 1.2; }
    .staff .staff_list h2 .en {
      font-family: "Montserrat", sans-serif;
      font-weight: 800;
      font-size: 40px;
      margin-bottom: .5rem; }
    .staff .staff_list h2 .ja {
      font-size: 18px;
      letter-spacing: .2em; }
  .staff .staff_list ul {
    display: flex;
    flex-wrap: wrap; }
  .staff .staff_list li {
    display: flex;
    align-items: flex-end;
    flex-direction: row-reverse;
    width: 46.875%;
    margin: 40px 3.125% 0 0;
    border-radius: 12px;
    box-sizing: border-box;
    background: #e6eff4;
    position: relative;
    overflow: hidden; }
    .staff .staff_list li:nth-child(even) {
      margin-right: 0; }
    .staff .staff_list li > a {
      display: block; }
    .staff .staff_list li figure {
      width: 316px;
      margin-left: -56px;
      padding-top: 1rem; }
  .staff .staff_list .txt {
    width: 340px;
    padding: 30px 0 40px 40px;
    box-sizing: border-box;
    position: relative;
    z-index: 1; }
    .staff .staff_list .txt p {
      font-size: 18px; }
  .staff .staff_list .name {
    margin: 1rem 0 70px; }
    .staff .staff_list .name span {
      display: block;
      line-height: 1.2; }
    .staff .staff_list .name .ja {
      font-size: 30px;
      font-weight: bold;
      margin-bottom: .5rem; }
    .staff .staff_list .name .en {
      font-family: "Montserrat", sans-serif;
      font-weight: 500;
      letter-spacing: .1em; }
  .staff .staff_list .btn_c {
    text-align: left; }
.staff .staff_title {
  padding-left: 80px; }
  .staff .staff_title .flex {
    display: flex; }
  .staff .staff_title .img {
    display: flex;
    align-items: flex-end;
    width: 48.1481481481%;
    padding: 0 calc(100vw / ( 1620 / 100 ));
    box-sizing: border-box;
    text-align: center;
    background: url("../images/staff_bg.png") repeat center;
    background-size: cover;
    /*			img{
    				height: calc(100vw / ( 1620 / 520 ));
    			}*/ }
  .staff .staff_title .txt {
    width: 51.8518518519%;
    padding: calc(100vw / ( 1620 / 100 ));
    box-sizing: border-box;
    background: #15264b;
    color: #fff;
    font-size: 18px;
    line-height: 1.6; }
    .staff .staff_title .txt h1:after {
      content: "";
      display: block;
      width: 60px;
      height: 2px;
      background: #df4130;
      margin: 2.5rem 0; }
    .staff .staff_title .txt h1 span {
      display: block;
      font-weight: bold;
      line-height: 1.2; }
    .staff .staff_title .txt h1 .en {
      font-family: "Montserrat", sans-serif;
      font-weight: 800;
      font-size: 30px;
      margin-bottom: .5rem; }
    .staff .staff_title .txt h1 .ja {
      letter-spacing: .2em;
      line-height: 1.4; }
    .staff .staff_title .txt .name {
      margin: .5rem 0 1.5rem; }
      .staff .staff_title .txt .name span {
        line-height: 1.2; }
      .staff .staff_title .txt .name .ja {
        font-size: 28px;
        font-weight: bold;
        margin-bottom: .5rem;
        margin-right: 1.5rem; }
      .staff .staff_title .txt .name .en {
        font-size: 16px;
        font-family: "Montserrat", sans-serif;
        font-weight: 500;
        letter-spacing: .1em; }
    .staff .staff_title .txt .charge h2 {
      margin-bottom: 1rem; }
      .staff .staff_title .txt .charge h2 span {
        display: block;
        font-size: 18px;
        font-weight: bold;
        padding-left: 40px;
        line-height: 1.2;
        position: relative; }
      .staff .staff_title .txt .charge h2 svg {
        width: 30px;
        fill: #fff;
        position: absolute;
        bottom: 0;
        left: 0; }
    .staff .staff_title .txt .charge ul {
      display: flex;
      flex-wrap: wrap;
      font-size: 17px; }
    .staff .staff_title .txt .charge li:after {
      content: "、"; }
    .staff .staff_title .txt .charge li:last-of-type:after {
      content: ""; }
.staff .comment {
  padding-left: 80px; }
  .staff .comment dl {
    padding: 90px 0; }
  .staff .comment dt {
    font-size: 24px;
    font-weight: bold;
    line-height: 1.4;
    margin-bottom: 1rem;
    padding-left: 46px;
    position: relative; }
    .staff .comment dt svg {
      width: 36px;
      fill: #df4130;
      position: absolute;
      top: .2em;
      left: 0; }
  .staff .comment dd {
    margin-bottom: 4rem; }
    .staff .comment dd:last-of-type {
      margin-bottom: 0; }

#staff_link {
  padding: 70px 0 100px 80px;
  background: #f5f8fa;
  text-align: center; }
  #staff_link h2 {
    font-family: "Bebas Neue", sans-serif;
    font-size: 60px;
    line-height: 1; }
  #staff_link ul {
    display: flex;
    flex-wrap: wrap;
    max-width: 990px;
    margin: 0 auto; }
  #staff_link li {
    width: 28.2828282828%;
    margin: 50px 2.5252525253% 0;
    font-weight: bold; }
    #staff_link li figure {
      width: 100%;
      background: #fff;
      border-radius: 50%;
      overflow: hidden; }
      #staff_link li figure a img {
        transition: all 0.2s; }
      #staff_link li figure a:hover img {
        transform: scale(1.05); }
    #staff_link li p {
      margin: 1.5rem 0 1rem; }
  #staff_link .btn_arrow a {
    display: inline-block;
    font-size: 22px;
    line-height: 1;
    padding-right: 40px;
    position: relative; }
  #staff_link .btn_arrow i {
    display: block;
    width: 30px;
    height: 30px;
    background: #15264b;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    transition: all 0.2s; }
    #staff_link .btn_arrow i svg {
      width: 14px;
      fill: #fff;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); }
  #staff_link .btn_arrow a:hover i {
    background: #fff; }
    #staff_link .btn_arrow a:hover i svg {
      fill: #15264b; }

.yagi #staff_link .yagi {
  display: none; }

.watanabe #staff_link .watanabe {
  display: none; }

.otsuka #staff_link .otsuka {
  display: none; }

.tanaka #staff_link .tanaka {
  display: none; }

.sekiguchi #staff_link .sekiguchi {
  display: none; }

.matsumoto #staff_link .matsumoto {
  display: none; }

.torikae #staff_link .torikae {
  display: none; }

.mochida #staff_link .mochida {
  display: none; }

.yoda #staff_link .yoda {
  display: none; }

.yamaguchi #staff_link .yamaguchi {
  display: none; }

/*=======================================
	recruit
=======================================*/
.recruit .summary {
  padding: 80px calc(100vw / ( 1700 / 130 )) 0 calc(100vw / ( 1700 / 210 ));
  margin-bottom: 50px; }
  .recruit .summary .flex {
    display: flex;
    justify-content: center; }
  .recruit .summary figure {
    width: 690px; }
  .recruit .summary .txt {
    width: 700px;
    padding: 80px 60px;
    margin: 30px 0 0 -30px;
    border-radius: 10px;
    border-right: 7px solid #15264b;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.8);
    font-size: 18px;
    font-weight: bold;
    color: #15264b;
    box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.1); }
.recruit .requirements {
  padding-left: 80px;
  margin-bottom: 80px;
  /*
  
  		.btn_recruit{
  			margin: 2rem 0;
  			
  			a{
  				display: flex;
  				align-items: center;
  				font-size: 16px;
  				font-weight: bold;
  				padding: 20px 60px 20px 30px;
  				border-radius: 10px;
  				border: 1px solid #fff;
  				box-shadow: 0 5px 20px 0 rgba(0,0,0,0.2);
  				background: #fff;
  				position: relative;
  				transition: all 0.3s;
  				
  				&:after{
  					content: "";
  					display: block;
  					width: 10px;
  					height: 10px;
  					border-bottom: 2px solid #000;
  					border-right: 2px solid #000;
  					box-sizing: border-box;
  					position: absolute;
  					top: 50%;
  					right: 25px;
  					transform: translateY(-50%) rotate(-45deg);
  					transition: all 0.3s;
  				}
  			}
  			a:hover{
  				color: #006abd;
  				border: 1px solid #006abd;
  				box-shadow: 0 0 0 0 rgba(0,0,0,0);
  				
  				&:after{
  					border-color: #006abd;
  				}
  			}
  			figure{
  				width: 176px;
  				margin-right: 30px;
  			}
  			p{
  				flex: 1;
  			}
  		}
  		
  */ }
  .recruit .requirements dt {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.4;
    margin-bottom: .5rem;
    padding-left: 25px;
    position: relative; }
    .recruit .requirements dt:before {
      content: "";
      display: block;
      width: 14px;
      height: 14px;
      background: url("../images/icon_square.svg") no-repeat;
      background-size: contain;
      position: absolute;
      top: .3em;
      left: 0; }
  .recruit .requirements dd {
    font-size: 18px;
    margin-bottom: 2rem; }
  .recruit .requirements .common_list {
    margin-bottom: .5rem; }
  .recruit .requirements .attention {
    color: #e60012;
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 2rem; }
  .recruit .requirements .btn_recruit {
    margin: 2rem 0; }
    .recruit .requirements .btn_recruit a {
      display: block;
      font-size: 16px;
      font-weight: bold;
      padding: 20px 60px 20px 230px;
      border-radius: 10px;
      border: 1px solid #fff;
      box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.2);
      background: #fff;
      position: relative;
      transition: all 0.3s; }
      .recruit .requirements .btn_recruit a:after {
        content: "";
        display: block;
        width: 10px;
        height: 10px;
        border-bottom: 2px solid #000;
        border-right: 2px solid #000;
        box-sizing: border-box;
        position: absolute;
        top: 50%;
        right: 25px;
        transform: translateY(-50%) rotate(-45deg);
        transition: all 0.3s; }
    .recruit .requirements .btn_recruit a:hover {
      color: #006abd;
      border: 1px solid #006abd;
      box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); }
      .recruit .requirements .btn_recruit a:hover:after {
        border-color: #006abd; }
    .recruit .requirements .btn_recruit .flex p span {
      display: inline-block; }
    .recruit .requirements .btn_recruit .flex p span:after {
      content: "";
      display: inline-block;
      vertical-align: baseline;
      width: 2px;
      height: 1em;
      background: #000;
      margin: 0 .5rem; }
    .recruit .requirements .btn_recruit figure {
      width: 176px;
      position: absolute;
      top: 50%;
      left: 25px;
      transform: translateY(-50%); }

/*=======================================
	works
=======================================*/
.works .common_title h1 .en {
  font-size: calc(100vw / ( 1700 / 140 )); }
.works .common_title h1 .ja {
  margin-bottom: 1rem; }
.works .common_title h1 .ja + span {
  font-size: calc(100vw / ( 1700 / 18 ));
  line-height: 1.6; }
.works .sec1 {
  padding: 80px 150px 80px 230px;
  background: #e6eff4; }
  .works .sec1 ul {
    display: flex;
    flex-wrap: wrap; }
  .works .sec1 li {
    width: 31.8181818182%;
    margin: 0 2.2727272727% 40px 0; }
    .works .sec1 li:nth-child(3n) {
      margin-right: 0; }
  .works .sec1 figcaption {
    font-size: 14px;
    line-height: 1.6;
    margin-top: .8rem; }
.works .sec2 {
  padding-left: 80px;
  padding-top: 70px;
  margin-bottom: 80px;
  word-wrap: break-word; }
  .works .sec2 dt {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.4;
    margin-bottom: .5rem;
    padding-left: 25px;
    position: relative; }
    .works .sec2 dt:before {
      content: "";
      display: block;
      width: 14px;
      height: 14px;
      background: url("../images/icon_square.svg") no-repeat;
      background-size: contain;
      position: absolute;
      top: .3em;
      left: 0; }
  .works .sec2 dd {
    margin-bottom: 2rem; }
  .works .sec2 .youtube_list li {
    padding-left: 0; }
    .works .sec2 .youtube_list li:before {
      display: none; }
  .works .sec2 .youtube_list li + li {
    margin-top: 14px; }
  .works .sec2 .youtube_list a {
    display: flex;
    align-items: center;
    gap: 16px;
    color: #000;
    transition: opacity 0.3s; }
  .works .sec2 .youtube_list a:hover {
    opacity: 0.75; }
  .works .sec2 .youtube_list .thumb {
    display: block;
    width: 160px;
    flex-shrink: 0;
    border-radius: 6px;
    overflow: hidden; }
  .works .sec2 .youtube_list .thumb img {
    display: block;
    width: 100%;
    height: auto; }
  .works .sec2 .youtube_list .txt {
    display: block;
    line-height: 1.6; }

/*=======================================
	contact
=======================================*/
.contact .common_title {
  height: 350px; }
  .contact .common_title .flex {
    display: block; }
  .contact .common_title .img {
    display: none; }
  .contact .common_title .txt {
    width: auto;
    justify-content: center;
    height: 100%; }
  .contact .common_title h1 {
    align-items: center; }
.contact .c-link {
  padding-left: 80px;
  /*		position: relative;
  		z-index: 20;*/
  /*		p{
  			margin: 40px 0 60px;
  			position: relative;
  			z-index: 1;
  		}*/ }
  .contact .c-link .flex {
    display: flex;
    text-align: center; }
  .contact .c-link .box {
    width: 50%;
    padding: 150px 0; }
    .contact .c-link .box:last-of-type {
      border-left: 1px solid #e9e9e9; }
  .contact .c-link a {
    display: inline-block;
    padding: 30px; }
    .contact .c-link a div {
      font-size: 18px;
      font-weight: bold; }
  .contact .c-link a:hover .btn_c span i:after {
    transform: translate(-50%, -50%) scale(1); }
  .contact .c-link a:hover .btn_c span svg {
    fill: #15264b; }
  .contact .c-link .btn_c {
    text-align: center;
    margin-top: 1rem;
    position: relative;
    z-index: 1; }
    .contact .c-link .btn_c span {
      color: #000;
      padding-right: 60px; }
      .contact .c-link .btn_c span:before, .contact .c-link .btn_c span:after {
        display: none; }
      .contact .c-link .btn_c span i {
        display: block;
        width: 48px;
        height: 48px;
        background: #15264b;
        border: 2px solid #15264b;
        box-sizing: border-box;
        border-radius: 50%;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%); }
        .contact .c-link .btn_c span i:after {
          content: "";
          display: block;
          width: 100%;
          height: 100%;
          background: #fff;
          border-radius: 50%;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%) scale(0);
          transition: 0.3s cubic-bezier(0.23, 1, 0.32, 1); }
      .contact .c-link .btn_c span svg {
        width: 10px;
        fill: #fff;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 1; }

.contact_form input[type="text"],
.contact_form input[type="email"],
.contact_form input[type="tel"],
.contact_form textarea {
  background: #f5f8fa;
  border: none;
  padding: 15px 20px;
  width: 100%;
  font-size: 16px;
  box-sizing: border-box;
  border-radius: 3px;
  transition: all 0.3s;
  -webkit-appearance: none; }
.contact_form textarea {
  height: 210px; }
.contact_form input[type="text"]:focus,
.contact_form input[type="email"]:focus,
.contact_form input[type="tel"]:focus,
.contact_form textarea:focus {
  background: #ebf1f5; }
.contact_form :-webkit-input-placeholder {
  color: #999;
  font-size: 16px; }
.contact_form :-ms-input-placeholder {
  color: #999;
  font-size: 16px; }
.contact_form ::-moz-placeholder {
  color: #999;
  font-size: 16px; }
.contact_form ::placeholder {
  color: #999;
  font-size: 16px; }
.contact_form .sec1 {
  padding-left: 80px;
  padding-top: 70px;
  margin-bottom: 80px; }
  .contact_form .sec1 h1 {
    text-align: center;
    line-height: 1.2;
    margin-bottom: 50px; }
    .contact_form .sec1 h1 span {
      display: block; }
    .contact_form .sec1 h1 .ja {
      font-size: 26px;
      font-weight: bold;
      letter-spacing: .2em;
      margin-bottom: 1rem; }
    .contact_form .sec1 h1 .en {
      font-family: "Bebas Neue", sans-serif;
      font-size: 30px; }
  .contact_form .sec1 .flex {
    display: flex;
    margin-top: 60px;
    padding-bottom: 130px;
    position: relative; }
  .contact_form .sec1 form {
    width: 480px;
    margin-right: 60px; }
  .contact_form .sec1 dl {
    max-width: 480px; }
  .contact_form .sec1 dt {
    margin-bottom: .3rem; }
    .contact_form .sec1 dt span {
      font-size: 1.1em;
      margin-left: .2em; }
  .contact_form .sec1 dd {
    margin-bottom: 1.3rem; }
  .contact_form .sec1 .btn_box {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%); }
  .contact_form .sec1 .btn button:after {
    display: none; }
  .contact_form .sec1 .btn button svg {
    width: 20px;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    fill: #fff;
    transition: all 0.3s; }
  .contact_form .sec1 .btn button:hover svg {
    fill: #15264b; }
  .contact_form .sec1 .btn_reset {
    text-align: center;
    margin-top: 20px; }
    .contact_form .sec1 .btn_reset input {
      margin: 0;
      padding: 0;
      background: none;
      border: none;
      border-radius: 0;
      outline: none;
      appearance: none;
      font-family: "Montserrat", sans-serif;
      font-size: 18px;
      font-weight: 600;
      color: #15264b;
      line-height: 1;
      cursor: pointer; }
    .contact_form .sec1 .btn_reset span {
      display: inline-block;
      padding: 0 30px 0 0;
      box-sizing: border-box;
      position: relative;
      cursor: pointer;
      transition: all 0.2s; }
      .contact_form .sec1 .btn_reset span svg {
        width: 20px;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
        fill: #15264b;
        transition: all 0.3s; }
  .contact_form .sec1 .info {
    width: 480px; }
    .contact_form .sec1 .info .txt {
      margin-bottom: 50px;
      border-left: 1px solid #df4130;
      padding: 10px 0 10px 20px; }
    .contact_form .sec1 .info p {
      margin-bottom: 1rem; }
      .contact_form .sec1 .info p em {
        font-weight: bold; }
      .contact_form .sec1 .info p:last-of-type {
        margin-bottom: 0; }
.contact_form .thanks {
  padding: 200px 0 200px 80px;
  text-align: center; }
  .contact_form .thanks .h {
    font-size: 36px;
    line-height: 1;
    margin-bottom: 3rem; }
  .contact_form .thanks h2 {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 1rem; }
  .contact_form .thanks p {
    max-width: 960px;
    margin: 0 auto;
    text-align: left; }
  .contact_form .thanks .btn {
    margin-top: 3rem; }

/*=======================================
	privacy
=======================================*/
.privacy .sec1 {
  padding: 70px 0 100px 80px; }
  .privacy .sec1 h1 {
    text-align: center;
    line-height: 1.2;
    margin-bottom: 50px; }
    .privacy .sec1 h1 span {
      display: block; }
    .privacy .sec1 h1 .ja {
      font-size: 26px;
      font-weight: bold;
      letter-spacing: .2em;
      margin-bottom: 1rem; }
    .privacy .sec1 h1 .en {
      font-family: "Bebas Neue", sans-serif;
      font-size: 30px; }
  .privacy .sec1 dt {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.4;
    margin-bottom: .5rem;
    padding-left: 25px;
    position: relative; }
    .privacy .sec1 dt:before {
      content: "";
      display: block;
      width: 14px;
      height: 14px;
      background: url("../images/icon_square.svg") no-repeat;
      background-size: contain;
      position: absolute;
      top: .3em;
      left: 0; }
  .privacy .sec1 dd {
    font-size: 18px;
    margin-bottom: 3rem; }
    .privacy .sec1 dd h3 {
      margin: 2rem 0 .5rem; }
    .privacy .sec1 dd p {
      margin-bottom: 1rem; }
  .privacy .sec1 ol {
    line-height: 1.4; }
    .privacy .sec1 ol li {
      counter-increment: num;
      padding-left: 2.2em;
      margin-bottom: .5rem;
      position: relative; }
    .privacy .sec1 ol li:before {
      content: "(" counter(num) ")";
      position: absolute;
      top: 0;
      left: 0; }
  .privacy .sec1 ul {
    line-height: 1.4; }
    .privacy .sec1 ul li {
      padding-left: 1em;
      margin-bottom: 1rem;
      position: relative; }
    .privacy .sec1 ul li:before {
      content: "・";
      position: absolute;
      top: 0;
      left: 0; }
  .privacy .sec1 .box {
    background: #e6eff4;
    padding: 3rem; }
    .privacy .sec1 .box dd {
      margin-bottom: 0; }

@media only screen and (max-width: 1100px) {
  .h-company .txt {
    margin: 0 auto; }

  .company .about dl {
    display: block; }
  .company .about dt {
    width: auto;
    margin-bottom: .5rem; }
  .company .about dd {
    width: auto; } }
@media only screen and (max-width: 1000px) {
  body,
  body.home {
    padding-top: 90px; }

  #header {
    height: 90px;
    background: #fff; }
    #header.active {
      background: #fff; }
    #header .logo {
      width: 120px;
      left: 30px; }
    #header .sp_btn {
      display: block;
      width: 90px;
      height: 90px;
      position: absolute;
      top: 0;
      right: 0;
      z-index: 110; }
      #header .sp_btn span,
      #header .sp_btn span:before,
      #header .sp_btn span:after {
        content: "";
        display: block;
        width: 10px;
        height: 10px;
        background: #15264b;
        border-radius: 50%;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); }
      #header .sp_btn span:before {
        top: -15px; }
      #header .sp_btn span:after {
        top: 25px; }
      #header .sp_btn.active span {
        background: transparent; }
      #header .sp_btn.active span:before, #header .sp_btn.active span:after {
        width: 50px;
        height: 4px;
        background: #fff;
        border-radius: 0; }
      #header .sp_btn.active span:before {
        transform: translate(-50%, -50%) rotate(45deg);
        top: 2px; }
      #header .sp_btn.active span:after {
        transform: translate(-50%, -50%) rotate(-45deg);
        top: 2px; }
    #header nav {
      width: 100%;
      max-height: 0;
      overflow: hidden;
      position: absolute;
      top: 0;
      left: 0;
      background: #15264b;
      box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.1);
      transition: all 0.3s; }
      #header nav.active {
        max-height: 90vh; }
    #header ul {
      display: block;
      font-size: 24px;
      font-weight: 700;
      padding: 40px 0;
      height: 90vh;
      overflow-y: scroll;
      box-sizing: border-box; }
    #header li {
      margin: 30px 0;
      padding: 0 60px; }
      #header li a {
        display: inline-block;
        padding: 10px 0;
        color: #fff; }
      #header li span {
        display: block;
        position: relative; }
      #header li span:after {
        display: none; }
    #header li.tw {
      display: block; }
      #header li.tw svg {
        display: block;
        width: 40px;
        height: 40px;
        fill: #1d9bf0; }
    #header li.co a {
      display: block;
      padding: 30px;
      background: #3a4a6b;
      font-size: 24px;
      font-weight: 400;
      text-align: center;
      border-radius: 60px; }
    #header li.co span {
      display: inline-block;
      padding-left: 46px; }
    #header li.co svg {
      display: block;
      width: 30px;
      fill: #fff;
      position: absolute;
      top: 50%;
      left: 0;
      transform: translateY(-50%); }

  .home #header {
    background: #fff;
    border-bottom: 1px solid #e9e9e9; }
    .home #header.active {
      background: #fff; }
    .home #header .sp_header_sns {
      display: flex;
      align-items: center;
      gap: calc(100vw / ( 640 / 12 ));
      position: absolute;
      top: 50%;
      left: calc(100vw / ( 640 / 170 ));
      transform: translateY(-50%);
      z-index: 105; }
      .home #header .sp_header_sns a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: calc(100vw / ( 640 / 42 ));
        height: calc(100vw / ( 640 / 42 ));
        background: #15264b; }
      .home #header .sp_header_sns svg {
        display: block;
        width: calc(100vw / ( 640 / 28 ));
        height: calc(100vw / ( 640 / 28 ));
        fill: #fff; }
    .home #header .sp_header_sns.hide {
      display: none; } }
@media only screen and (min-width: 1600px) {
  .h-associate li {
    width: 320px;
    height: 320px;
    margin: 0 30px; }
    .h-associate li p {
      font-size: 16px;
      padding: 70px 0 0; }
    .h-associate li figure {
      width: 154px;
      margin: 30px auto 0; }
    .h-associate li i {
      width: 32px;
      height: 32px;
      bottom: 35px; }
      .h-associate li i:before {
        width: 10px;
        height: 10px; }
  .h-associate li:nth-of-type(2) figure {
    width: 192px; }
  .h-associate li:nth-of-type(3) figure {
    width: 180px;
    margin-top: 15px; } }
@media only screen and (max-width: 811px) {
  .fixed_contact,
  .fixed_contact.b {
    display: none; }

  .common_title,
  .common_section,
  .company .about,
  .company .access,
  .staff .staff_list,
  .staff .staff_title,
  .staff .comment,
  .staff #staff_link,
  .recruit .summary,
  .recruit .requirements,
  .works .sec1,
  .works .sec2,
  .contact .c-link,
  .contact_form .sec1,
  .contact_form .thanks,
  .privacy .sec1 {
    padding-left: 0; }

  .recruit .summary {
    padding-left: calc(100vw / ( 1700 / 130 )); }

  .works .sec1 {
    padding-left: 80px;
    padding-right: 80px; }

  .common_title {
    height: 350px; }
    .common_title h1 .en {
      font-size: calc(100vw / ( 810 / 80 )); }
    .common_title h1 .ja {
      font-size: calc(100vw / ( 810 / 14 ));
      margin-top: calc(100vw / ( 810 / 10 )); }

  .staff .staff_list li {
    display: block;
    padding-top: 30px; }
    .staff .staff_list li figure {
      width: 200px;
      margin: 0 auto;
      padding-top: 0;
      border-radius: 50%;
      overflow: hidden;
      background: #fff; }
  .staff .staff_list .txt {
    padding: 20px 30px 30px; }
    .staff .staff_list .txt p {
      font-size: 16px; }
  .staff .staff_list .name {
    margin: 1rem 0 2rem; }
    .staff .staff_list .name .ja {
      font-size: 26px; }

  .recruit .summary .flex {
    display: block; }
  .recruit .summary figure {
    width: auto;
    margin-bottom: 40px; }
  .recruit .summary .txt {
    width: auto;
    padding: 0 0 50px;
    margin: 0;
    border-radius: 0;
    border-right: none;
    border-bottom: 2px solid #15264b;
    background: none;
    box-shadow: none; } }
/******************************************************************************************

	sp size

******************************************************************************************/
@media only screen and (max-width: 640px) {
  html {
    font-size: calc(100vw / ( 640 / 26 )); }

  body,
  body.home {
    padding-top: calc(100vw / ( 640 / 90 )); }

  .pc_only,
  .pc_only_inline {
    display: none; }

  .sp_only {
    display: block; }

  .sp_only_inline {
    display: inline; }

  .wrap {
    padding: 0 calc(100vw / ( 640 / 40 )); }

  .common_h .en {
    font-size: calc(100vw / ( 640 / 50 ));
    margin-bottom: calc(100vw / ( 640 / 14 )); }
    .common_h .en:before {
      width: calc(100vw / ( 640 / 36 ));
      height: calc(100vw / ( 640 / 17 ));
      margin: 0 auto calc(100vw / ( 640 / 14 )); }
  .common_h h2 {
    font-size: calc(100vw / ( 640 / 24 )); }

  .btn a,
  .btn button {
    font-size: calc(100vw / ( 640 / 32 ));
    padding: calc(100vw / ( 640 / 30 )) calc(100vw / ( 640 / 100 ));
    border-radius: calc(100vw / ( 640 / 80 )); }
    .btn a:after,
    .btn button:after {
      width: calc(100vw / ( 640 / 16 ));
      height: calc(100vw / ( 640 / 16 ));
      border-right-width: calc(100vw / ( 640 / 4 ));
      border-bottom-width: calc(100vw / ( 640 / 4 ));
      right: calc(100vw / ( 640 / 30 )); }

  .btn_b,
  .btn_c {
    text-align: center; }
    .btn_b a,
    .btn_b span,
    .btn_c a,
    .btn_c span {
      font-size: calc(100vw / ( 640 / 32 ));
      padding-right: calc(100vw / ( 640 / 50 )); }
      .btn_b a:before,
      .btn_b span:before,
      .btn_c a:before,
      .btn_c span:before {
        width: calc(100vw / ( 640 / 32 ));
        height: calc(100vw / ( 640 / 32 )); }
      .btn_b a:after,
      .btn_b span:after,
      .btn_c a:after,
      .btn_c span:after {
        width: calc(100vw / ( 640 / 10 ));
        height: calc(100vw / ( 640 / 10 ));
        border-right-width: calc(100vw / ( 640 / 4 ));
        border-bottom-width: calc(100vw / ( 640 / 4 ));
        right: calc(100vw / ( 640 / 12 )); }

  .fixed_contact,
  .fixed_contact.b {
    display: none; }

  span#access {
    top: calc(100vw / ( 640 / -90 )); }

  /*=======================================
  	layout
  =======================================*/
  /*--- header ---*/
  #header {
    height: calc(100vw / ( 640 / 90 ));
    background: #fff; }
    #header.active {
      background: #fff; }
    #header .logo {
      width: calc(100vw / ( 640 / 120 ));
      left: calc(100vw / ( 640 / 30 )); }
    #header .sp_btn {
      display: block;
      width: calc(100vw / ( 640 / 90 ));
      height: calc(100vw / ( 640 / 90 ));
      position: absolute;
      top: 0;
      right: 0;
      z-index: 110; }
      #header .sp_btn span,
      #header .sp_btn span:before,
      #header .sp_btn span:after {
        content: "";
        display: block;
        width: calc(100vw / ( 640 / 10 ));
        height: calc(100vw / ( 640 / 10 ));
        background: #15264b;
        border-radius: 50%;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); }
      #header .sp_btn span:before {
        top: calc(100vw / ( 640 / -15 )); }
      #header .sp_btn span:after {
        top: calc(100vw / ( 640 / 25 )); }
      #header .sp_btn.active span {
        background: transparent; }
      #header .sp_btn.active span:before, #header .sp_btn.active span:after {
        width: calc(100vw / ( 640 / 50 ));
        height: calc(100vw / ( 640 / 4 ));
        background: #fff;
        border-radius: 0; }
      #header .sp_btn.active span:before {
        transform: translate(-50%, -50%) rotate(45deg);
        top: calc(100vw / ( 640 / 2 )); }
      #header .sp_btn.active span:after {
        transform: translate(-50%, -50%) rotate(-45deg);
        top: calc(100vw / ( 640 / 2 )); }
    #header nav {
      width: 100%;
      max-height: 0;
      overflow: hidden;
      position: absolute;
      top: 0;
      left: 0;
      background: #15264b;
      box-shadow: 0 calc(100vw / ( 640 / 8 )) calc(100vw / ( 640 / 8 )) 0 rgba(0, 0, 0, 0.1);
      transition: all 0.3s; }
      #header nav.active {
        max-height: 90vh; }
    #header ul {
      display: block;
      font-size: calc(100vw / ( 640 / 40 ));
      font-weight: 700;
      padding: calc(100vw / ( 640 / 80 )) 0;
      height: 90vh;
      overflow-y: scroll;
      box-sizing: border-box; }
    #header li {
      margin: calc(100vw / ( 640 / 40 )) 0;
      padding: 0 calc(100vw / ( 640 / 60 )); }
      #header li a {
        display: inline-block;
        padding: calc(100vw / ( 640 / 10 )) 0;
        color: #fff; }
      #header li span {
        display: block;
        position: relative; }
      #header li span:after {
        display: none; }
    #header li.sns_links {
      display: block; }
      #header li.sns_links a {
        display: inline-block;
        vertical-align: middle; }
        #header li.sns_links a + a {
          margin-left: 16px; }
      #header li.sns_links svg {
        display: block;
        width: 40px;
        height: 40px;
        fill: #fff; }
    #header li.co a {
      display: block;
      padding: calc(100vw / ( 640 / 30 ));
      background: #3a4a6b;
      font-size: calc(100vw / ( 640 / 32 ));
      font-weight: 400;
      text-align: center;
      border-radius: calc(100vw / ( 640 / 60 )); }
    #header li.co span {
      display: inline-block;
      padding-left: calc(100vw / ( 640 / 46 )); }
    #header li.co svg {
      display: block;
      width: calc(100vw / ( 640 / 30 ));
      fill: #fff;
      position: absolute;
      top: 50%;
      left: 0;
      transform: translateY(-50%); }

  .home #header {
    background: none;
    border-bottom: none; }
    .home #header.active {
      background: rgba(255, 255, 255, 0.9); }

  /*--- footer ---*/
  footer {
    padding: calc(100vw / ( 640 / 90 )) 0 calc(100vw / ( 640 / 40 )); }
    footer .flex {
      display: block;
      margin-bottom: calc(100vw / ( 640 / 50 )); }
    footer .map {
      width: auto;
      margin-bottom: calc(100vw / ( 640 / 60 )); }
      footer .map .video-container {
        border-radius: calc(100vw / ( 640 / 4 )); }
    footer .txt {
      width: auto;
      margin: 0;
      font-size: calc(100vw / ( 640 / 24 )); }
      footer .txt .logo {
        width: calc(100vw / ( 640 / 150 ));
        margin-bottom: calc(100vw / ( 640 / 40 )); }
      footer .txt .link {
        margin: calc(100vw / ( 640 / 40 )) 0 calc(100vw / ( 640 / 10 )); }
        footer .txt .link li {
          width: 50%;
          margin-bottom: calc(100vw / ( 640 / 40 ));
          padding-left: calc(100vw / ( 640 / 26 )); }
          footer .txt .link li:before {
            border: calc(100vw / ( 640 / 8 )) solid transparent;
            border-left: calc(100vw / ( 640 / 12 )) solid #fff;
            border-right-width: 0; }
      footer .txt .sns ul {
        justify-content: center;
        gap: calc(100vw / ( 640 / 16 )); }
      footer .txt .sns li {
        width: calc(100vw / ( 640 / 48 )); }
      footer .txt .btn_contact {
        margin-bottom: calc(100vw / ( 640 / 40 )); }
        footer .txt .btn_contact a {
          height: calc(100vw / ( 640 / 90 ));
          border-radius: calc(100vw / ( 640 / 50 ));
          font-size: calc(100vw / ( 640 / 28 )); }
          footer .txt .btn_contact a:after {
            width: calc(100vw / ( 640 / 16 ));
            height: calc(100vw / ( 640 / 16 ));
            border-right: calc(100vw / ( 640 / 4 )) solid #fff;
            border-bottom: calc(100vw / ( 640 / 4 )) solid #fff;
            right: calc(100vw / ( 640 / 40 )); }
          footer .txt .btn_contact a span {
            padding-left: calc(100vw / ( 640 / 44 )); }
        footer .txt .btn_contact svg {
          width: calc(100vw / ( 640 / 28 )); }
    footer .copy {
      font-size: calc(100vw / ( 640 / 16 )); }

  .common_title {
    height: auto;
    border-bottom: none;
    padding: 0; }
    .common_title .flex {
      display: block;
      height: auto; }
    .common_title .img {
      width: auto;
      height: calc(100vw / ( 640 / 350 ));
      background-image: url("../images/company_title_sp.jpg"); }
    .common_title .txt {
      width: auto;
      display: block; }
    .common_title h1 {
      align-items: center;
      padding: calc(100vw / ( 640 / 40 )) calc(100vw / ( 640 / 40 )) calc(100vw / ( 640 / 50 ));
      text-align: center; }
      .common_title h1 .en {
        font-size: calc(100vw / ( 640 / 100 )); }
      .common_title h1 .ja {
        font-size: calc(100vw / ( 640 / 26 ));
        padding: 0;
        margin-top: calc(100vw / ( 640 / 30 )); }

  .recruit .common_title .img {
    background-image: url("../images/recruit_title_sp.jpg"); }

  .staff .common_title .img {
    background-image: url("../images/staff_title_sp.jpg"); }

  .works .common_title .img {
    background-image: url("../images/works_title_sp.jpg"); }

  .common_list li {
    padding-left: calc(100vw / ( 640 / 18 ));
    line-height: 1.6;
    margin-bottom: .8rem; }
    .common_list li:before {
      width: calc(100vw / ( 640 / 8 ));
      height: calc(100vw / ( 640 / 8 )); }

  /*=======================================
  	home
  =======================================*/
  .h-mv .flex {
    display: block;
    height: auto; }
  .h-mv .img {
    width: auto;
    height: calc(100vw / ( 640 / 600 ));
    position: relative;
    z-index: 1; }
    .h-mv .img .slider_main,
    .h-mv .img .slick-list,
    .h-mv .img .slick-track {
      height: 100%; }
    .h-mv .img .slick-slide:after {
      background: rgba(21, 38, 75, 0.5); }
    .h-mv .img .slick-slide img,
    .h-mv .img .slick-slide svg {
      display: none; }
  .h-mv .txt {
    width: auto;
    padding: 0 calc(100vw / ( 640 / 40 )) calc(100vw / ( 640 / 40 )); }
    .h-mv .txt .catchcopy {
      font-size: calc(100vw / ( 640 / 156 ));
      margin-top: calc(100vw / ( 640 / -210 )); }
      .h-mv .txt .catchcopy .shade_inner {
        color: #fff;
        mix-blend-mode: difference; }
      .h-mv .txt .catchcopy .shade_inner span {
        color: #fff; }
    .h-mv .txt h1.shade {
      width: calc(100vw / ( 640 / 360 ));
      margin-top: calc(100vw / ( 640 / 40 )); }
    .h-mv .txt .bg_color {
      width: calc(100vw / ( 640 / 200 ));
      height: calc(100% - calc(100vw / ( 640 / 210 )));
      left: auto;
      right: 0; }
      .h-mv .txt .bg_color svg {
        width: calc(100vw / ( 640 / 150 ));
        top: calc(100vw / ( 640 / 60 ));
        right: auto;
        left: calc(100vw / ( 640 / -61 ));
        transform: rotate(-90deg); }

  .h-news {
    padding: calc(100vw / ( 640 / 80 )) 0 calc(100vw / ( 640 / 60 )); }
    .h-news .common_h {
      margin-bottom: calc(100vw / ( 640 / 20 )); }
    .h-news ul {
      margin-bottom: calc(100vw / ( 640 / 60 )); }
    .h-news li {
      display: block;
      padding: calc(100vw / ( 640 / 30 )) calc(100vw / ( 640 / 20 )); }
    .h-news .date {
      width: auto;
      padding-left: calc(100vw / ( 640 / 24 ));
      margin-bottom: .3em;
      font-size: calc(100vw / ( 640 / 24 )); }
      .h-news .date:before {
        width: calc(100vw / ( 640 / 12 ));
        height: calc(100vw / ( 640 / 12 )); }
    .h-news p {
      padding: 0; }
      .h-news p:after {
        display: none; }

  .h-company {
    padding: calc(100vw / ( 640 / 100 )) 0; }
    .h-company .en {
      font-size: calc(100vw / ( 640 / 120 )); }
    .h-company h2 {
      font-size: calc(100vw / ( 640 / 24 ));
      margin-bottom: calc(100vw / ( 640 / 30 )); }
    .h-company p {
      font-size: calc(100vw / ( 640 / 32 )); }
      .h-company p span {
        font-size: calc(100vw / ( 640 / 22 ));
        margin-top: 1em; }
    .h-company .box {
      margin: calc(100vw / ( 640 / 20 )) 0 calc(100vw / ( 640 / 40 ));
      font-size: calc(100vw / ( 640 / 24 )); }

  .h-works {
    padding: calc(100vw / ( 640 / 80 )) 0; }
    .h-works .common_h {
      margin-bottom: calc(100vw / ( 640 / 60 )); }
    .h-works .slick-slide figcaption {
      font-size: calc(100vw / ( 640 / 20 ));
      margin-top: calc(100vw / ( 640 / 20 )); }
    .h-works .slick-dots {
      margin: calc(100vw / ( 640 / 60 )) 0; }
    .h-works .slick-dots li {
      width: calc(100vw / ( 640 / 12 ));
      height: calc(100vw / ( 640 / 12 ));
      margin: 0 calc(100vw / ( 640 / 8 )); }

  .h-associate .common_h {
    margin-bottom: calc(100vw / ( 640 / 50 )); }
  .h-associate .wrap {
    padding: 0 calc(100vw / ( 640 / 20 )); }
  .h-associate ul {
    /*		display: flex;
    		flex-wrap: wrap;
    		justify-content: center;
    		text-align: center;*/
    margin-bottom: calc(100vw / ( 640 / 80 )); }
  .h-associate li {
    width: calc(100vw / ( 640 / 280 ));
    height: calc(100vw / ( 640 / 280 ));
    margin: 0 calc(100vw / ( 640 / 10 )) calc(100vw / ( 640 / 10 )); }
    .h-associate li a {
      /*			display: block;
      			height: 100%;
      			border-radius: 50%;
      			background: #f7fafc;
      			color: $navy;
      			position: relative;
      			transition: all 0.3s;
      			
      			&:hover{
      				background: darken(#f7fafc, 1.5%);
      			}*/ }
    .h-associate li p {
      /*			font-weight: bold;*/
      font-size: calc(100vw / ( 640 / 18 ));
      line-height: 1.6;
      padding: calc(100vw / ( 640 / 60 )) 0 0; }
      .h-associate li p span {
        font-size: .6em; }
    .h-associate li figure {
      width: calc(100vw / ( 640 / 142 ));
      margin: calc(100vw / ( 640 / 24 )) auto 0; }
    .h-associate li i {
      /*			display: block;*/
      width: calc(100vw / ( 640 / 34 ));
      height: calc(100vw / ( 640 / 34 ));
      /*			background: $navy;
      			position: absolute;*/
      bottom: calc(100vw / ( 640 / 30 ));
      /*			left: 50%;
      			transform: translateX(-50%);
      			border-radius: 50%;*/ }
      .h-associate li i:before {
        /*				content: "";
        				display: block;*/
        width: calc(100vw / ( 640 / 10 ));
        height: calc(100vw / ( 640 / 10 ));
        border-right: calc(100vw / ( 640 / 2 )) solid #fff;
        border-bottom: calc(100vw / ( 640 / 2 )) solid #fff;
        /*				box-sizing: border-box;
        				position: absolute;
        				top: 50%;
        				left: 42%;
        				transform: translate(-50%, -50%) rotate(-45deg);*/ }
  .h-associate li:nth-of-type(2) figure {
    width: calc(100vw / ( 640 / 192 )); }
  .h-associate li:nth-of-type(3) figure {
    width: calc(100vw / ( 640 / 180 ));
    margin-top: 0;
    /*			mix-blend-mode: multiply;*/ }

  .h-loop p {
    font-size: calc(100vw / ( 640 / 80 )); }

  .h-link .flex {
    display: block;
    padding: 0; }
  .h-link .box {
    width: auto; }
    .h-link .box:last-of-type {
      margin-left: 0;
      border-top: calc(100vw / ( 640 / 2 )) solid #e1e5e8; }
  .h-link a {
    padding: calc(100vw / ( 640 / 80 )) calc(100vw / ( 640 / 40 )); }
  .h-link .bg {
    display: none; }
  .h-link h2 {
    font-size: calc(100vw / ( 640 / 30 )); }
    .h-link h2 span {
      font-size: calc(100vw / ( 640 / 24 ));
      margin-top: calc(100vw / ( 640 / 14 )); }
  .h-link p {
    margin: calc(100vw / ( 640 / 60 )) 0 calc(100vw / ( 640 / 70 )); }
  .h-link .btn_c span {
    padding-right: calc(100vw / ( 640 / 60 )); }
    .h-link .btn_c span i {
      width: calc(100vw / ( 640 / 46 ));
      height: calc(100vw / ( 640 / 46 )); }
    .h-link .btn_c span svg {
      width: calc(100vw / ( 640 / 10 )); }

  /*=======================================
  	company
  =======================================*/
  .company .about {
    padding: 0 0 calc(100vw / ( 640 / 50 )); }
    .company .about .h {
      padding: 0;
      margin-bottom: calc(100vw / ( 640 / 60 )); }
    .company .about .flex {
      display: block; }
    .company .about dl {
      width: auto;
      display: block;
      font-size: 1em; }
      .company .about dl:first-of-type {
        margin-right: 0; }
    .company .about dt, .company .about dd {
      margin-bottom: 1rem; }
    .company .about dt {
      width: auto;
      margin-bottom: 0; }
    .company .about dd {
      width: auto; }
    .company .about ul {
      display: flex;
      flex-wrap: wrap; }
      .company .about ul li:after {
        content: "、";
        display: inline; }
      .company .about ul li:last-of-type:after {
        display: none; }
  .company .access {
    padding: calc(100vw / ( 640 / 70 )) 0 calc(100vw / ( 640 / 60 ));
    font-size: 1em; }
    .company .access h2 {
      position: static;
      top: auto;
      left: auto;
      text-align: center; }
      .company .access h2:after {
        width: calc(100vw / ( 640 / 60 ));
        height: calc(100vw / ( 640 / 2 ));
        margin: calc(100vw / ( 640 / 40 )) auto calc(100vw / ( 640 / 50 )); }
      .company .access h2 .en {
        font-size: calc(100vw / ( 640 / 50 )); }
      .company .access h2 .ja {
        font-size: 1em; }
    .company .access .flex {
      display: block; }
    .company .access figure {
      width: auto; }
    .company .access .txt {
      width: auto;
      padding: 0;
      margin-top: calc(100vw / ( 640 / 40 )); }

  /*=======================================
  	staff
  =======================================*/
  .staff .common_title h1 .en {
    font-size: calc(100vw / ( 640 / 100 )); }
  .staff .common_title h1 .ja + span {
    font-size: calc(100vw / ( 640 / 24 ));
    text-align: left; }
  .staff .staff_list {
    padding: calc(100vw / ( 640 / 80 )) 0 calc(100vw / ( 640 / 40 ));
    border-top: 1px solid #e9e9e9;
    text-align: center; }
    .staff .staff_list h2 {
      margin-bottom: calc(100vw / ( 640 / 50 )); }
      .staff .staff_list h2:after {
        width: calc(100vw / ( 640 / 60 ));
        height: calc(100vw / ( 640 / 2 ));
        margin: calc(100vw / ( 640 / 40 )) auto 0; }
      .staff .staff_list h2 .en {
        font-size: calc(100vw / ( 640 / 40 )); }
      .staff .staff_list h2 .ja {
        font-size: calc(100vw / ( 640 / 24 )); }
    .staff .staff_list ul {
      display: block; }
    .staff .staff_list li {
      display: block;
      width: auto;
      margin: 0 0 calc(100vw / ( 640 / 60 ));
      padding: calc(100vw / ( 640 / 20 )) calc(100vw / ( 640 / 20 )) calc(100vw / ( 640 / 40 ));
      border-radius: calc(100vw / ( 640 / 12 )); }
      .staff .staff_list li figure {
        width: calc(100vw / ( 640 / 440 ));
        margin: 0 auto 1rem; }
    .staff .staff_list .txt {
      width: auto;
      padding: 0; }
      .staff .staff_list .txt p {
        font-size: calc(100vw / ( 640 / 26 )); }
    .staff .staff_list .name .ja {
      font-size: calc(100vw / ( 640 / 40 )); }
    .staff .staff_list .name .en {
      font-size: calc(100vw / ( 640 / 22 )); }
    .staff .staff_list .btn_c {
      text-align: center; }
  .staff .staff_title .flex {
    display: block; }
  .staff .staff_title .img {
    width: auto;
    padding: 0 calc(100vw / ( 640 / 100 )); }
  .staff .staff_title .txt {
    width: auto;
    padding: calc(100vw / ( 640 / 50 ));
    text-align: center;
    font-size: calc(100vw / ( 640 / 24 )); }
    .staff .staff_title .txt h1:after {
      width: calc(100vw / ( 640 / 90 ));
      height: calc(100vw / ( 640 / 2 ));
      margin: 2rem auto; }
    .staff .staff_title .txt h1 .en {
      font-size: calc(100vw / ( 640 / 40 ));
      margin-bottom: .8rem; }
    .staff .staff_title .txt .name .ja {
      font-size: calc(100vw / ( 640 / 40 ));
      margin-right: 1rem; }
    .staff .staff_title .txt .name .en {
      font-size: calc(100vw / ( 640 / 22 )); }
    .staff .staff_title .txt .charge h2 {
      margin-bottom: .6rem; }
      .staff .staff_title .txt .charge h2 span {
        display: inline-block;
        font-size: calc(100vw / ( 640 / 24 ));
        padding-left: calc(100vw / ( 640 / 50 )); }
      .staff .staff_title .txt .charge h2 svg {
        width: calc(100vw / ( 640 / 36 ));
        bottom: -.2em; }
    .staff .staff_title .txt .charge ul {
      justify-content: center;
      font-size: calc(100vw / ( 640 / 26 )); }
  .staff .comment dl {
    padding: calc(100vw / ( 640 / 80 )) 0; }
  .staff .comment dt {
    font-size: calc(100vw / ( 640 / 28 ));
    padding-left: calc(100vw / ( 640 / 46 )); }
    .staff .comment dt svg {
      width: calc(100vw / ( 640 / 36 ));
      top: -.15em; }

  #staff_link {
    padding: calc(100vw / ( 640 / 70 )) 0 calc(100vw / ( 640 / 100 )); }
    #staff_link .wrap {
      padding: 0; }
    #staff_link h2 {
      font-size: calc(100vw / ( 640 / 60 )); }
    #staff_link li {
      width: calc(100vw / ( 640 / 280 ));
      margin: calc(100vw / ( 640 / 60 )) calc(100vw / ( 640 / 20 )) 0; }
    #staff_link .btn_arrow a {
      font-size: calc(100vw / ( 640 / 32 ));
      padding-right: calc(100vw / ( 640 / 70 )); }
    #staff_link .btn_arrow i {
      width: calc(100vw / ( 640 / 50 ));
      height: calc(100vw / ( 640 / 50 )); }
      #staff_link .btn_arrow i svg {
        width: calc(100vw / ( 640 / 24 )); }

  .yagi #staff_link .yagi {
    display: none; }

  .watanabe #staff_link .watanabe {
    display: none; }

  .otsuka #staff_link .otsuka {
    display: none; }

  .tanaka #staff_link .tanaka {
    display: none; }

  .sekiguchi #staff_link .sekiguchi {
    display: none; }

  .matsumoto #staff_link .matsumoto {
    display: none; }

  .torikae #staff_link .torikae {
    display: none; }

  .mochida #staff_link .mochida {
    display: none; }

  .yoda #staff_link .yoda {
    display: none; }

  .yamaguchi #staff_link .yamaguchi {
    display: none; }

  /*=======================================
  	recruit
  =======================================*/
  .recruit .summary {
    padding: 0 calc(100vw / ( 640 / 30 ));
    margin-bottom: 0; }
    .recruit .summary .flex {
      display: block; }
    .recruit .summary figure {
      width: auto;
      margin-bottom: calc(100vw / ( 640 / 40 )); }
    .recruit .summary .txt {
      width: auto;
      padding: 0 calc(100vw / ( 640 / 10 )) calc(100vw / ( 640 / 50 ));
      margin: 0;
      border-radius: 0;
      border-right: none;
      border-bottom: calc(100vw / ( 640 / 2 )) solid #15264b;
      background: none;
      font-size: calc(100vw / ( 640 / 24 ));
      box-shadow: none; }
  .recruit .requirements {
    padding: calc(100vw / ( 640 / 60 )) 0 0;
    margin-bottom: calc(100vw / ( 640 / 80 )); }
    .recruit .requirements dt {
      font-size: calc(100vw / ( 640 / 28 ));
      padding-left: calc(100vw / ( 640 / 30 )); }
      .recruit .requirements dt:before {
        width: calc(100vw / ( 640 / 20 ));
        height: calc(100vw / ( 640 / 20 ));
        top: .4em; }
    .recruit .requirements dd {
      font-size: calc(100vw / ( 640 / 26 )); }
    .recruit .requirements .attention {
      font-size: calc(100vw / ( 640 / 20 )); }
    .recruit .requirements .btn_recruit a {
      font-size: calc(100vw / ( 640 / 24 ));
      padding: calc(100vw / ( 640 / 20 ));
      border-radius: calc(100vw / ( 640 / 10 ));
      box-shadow: 0 calc(100vw / ( 640 / 6 )) calc(100vw / ( 640 / 20 )) 0 rgba(0, 0, 0, 0.2); }
      .recruit .requirements .btn_recruit a:after {
        width: calc(100vw / ( 640 / 102 ));
        height: calc(100vw / ( 640 / 10 ));
        border: none;
        background: url("../images/icon_arrow.svg") no-repeat;
        background-size: contain;
        position: absolute;
        top: auto;
        bottom: calc(100vw / ( 640 / 30 ));
        right: calc(100vw / ( 640 / 40 ));
        transform: none; }
    .recruit .requirements .btn_recruit a:hover {
      color: #006abd;
      border: 1px solid #006abd;
      box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); }
      .recruit .requirements .btn_recruit a:hover:after {
        border-color: #006abd; }
    .recruit .requirements .btn_recruit .flex {
      display: flex;
      align-items: center;
      border-bottom: 1px solid #e9e9e9;
      padding-bottom: calc(100vw / ( 640 / 20 ));
      margin-bottom: calc(100vw / ( 640 / 20 )); }
      .recruit .requirements .btn_recruit .flex p {
        width: calc(100vw / ( 640 / 280 )); }
        .recruit .requirements .btn_recruit .flex p span {
          display: block; }
        .recruit .requirements .btn_recruit .flex p span:after {
          display: none; }
    .recruit .requirements .btn_recruit figure {
      width: calc(100vw / ( 640 / 220 ));
      margin-right: calc(100vw / ( 640 / 20 ));
      position: static;
      top: auto;
      left: auto;
      transform: none; }
    .recruit .requirements .btn_recruit .flex + p {
      font-size: calc(100vw / ( 640 / 26 ));
      font-weight: normal; }

  /*=======================================
  	works
  =======================================*/
  .works .common_title h1 .en {
    font-size: calc(100vw / ( 640 / 100 )); }
  .works .common_title h1 .ja + span {
    font-size: calc(100vw / ( 640 / 24 ));
    text-align: left; }
  .works .sec1 {
    padding: calc(100vw / ( 640 / 20 )) calc(100vw / ( 640 / 40 )); }
    .works .sec1 ul {
      display: block; }
    .works .sec1 li {
      width: auto;
      margin: 0;
      padding: calc(100vw / ( 640 / 50 )) 0;
      border-bottom: calc(100vw / ( 640 / 2 )) dotted #a4aec2; }
      .works .sec1 li:last-of-type {
        border-bottom: none; }
    .works .sec1 figcaption {
      font-size: calc(100vw / ( 640 / 24 ));
      margin-top: 1rem; }
  .works .sec2 {
    padding: calc(100vw / ( 640 / 60 )) 0 0;
    margin-bottom: calc(100vw / ( 640 / 60 )); }
    .works .sec2 dt {
      font-size: calc(100vw / ( 640 / 28 ));
      padding-left: calc(100vw / ( 640 / 34 )); }
      .works .sec2 dt:before {
        width: calc(100vw / ( 640 / 20 ));
        height: calc(100vw / ( 640 / 20 ));
        top: .4em; }
    .works .sec2 .youtube_list a {
      gap: calc(100vw / ( 640 / 16 )); }
    .works .sec2 .youtube_list .thumb {
      width: calc(100vw / ( 640 / 180 )); }
    .works .sec2 .youtube_list .txt {
      font-size: calc(100vw / ( 640 / 26 ));
      line-height: 1.5; }

  /*=======================================
  	contact
  =======================================*/
  .contact .common_title {
    height: auto; }
    .contact .common_title .txt {
      display: flex;
      width: auto;
      height: calc(100vw / ( 640 / 300 ));
      justify-content: center; }
    .contact .common_title h1 {
      align-items: center;
      padding-top: 0;
      padding-bottom: 0; }
  .contact .c-link {
    padding: 0 calc(100vw / ( 640 / 40 )) calc(100vw / ( 640 / 40 )); }
    .contact .c-link .flex {
      display: block; }
    .contact .c-link .box,
    .contact .c-link .box:last-of-type {
      width: auto;
      padding: 0;
      margin-bottom: calc(100vw / ( 640 / 40 ));
      border: 1px solid #e9e9e9;
      border-radius: calc(100vw / ( 640 / 14 )); }
    .contact .c-link a {
      display: block;
      padding: calc(100vw / ( 640 / 100 )) 0; }
      .contact .c-link a div {
        font-size: calc(100vw / ( 640 / 26 )); }
    .contact .c-link .btn_c {
      margin-top: 1rem; }
      .contact .c-link .btn_c span {
        font-size: calc(100vw / ( 640 / 26 ));
        padding-right: calc(100vw / ( 640 / 60 )); }
        .contact .c-link .btn_c span i {
          width: calc(100vw / ( 640 / 48 ));
          height: calc(100vw / ( 640 / 48 ));
          border: calc(100vw / ( 640 / 2 )) solid #15264b; }
        .contact .c-link .btn_c span svg {
          width: calc(100vw / ( 640 / 10 )); }

  .contact_form input[type="text"],
  .contact_form input[type="email"],
  .contact_form input[type="tel"],
  .contact_form textarea {
    background: #fff;
    padding: calc(100vw / ( 640 / 20 )) calc(100vw / ( 640 / 20 ));
    border-radius: calc(100vw / ( 640 / 2 )); }
  .contact_form textarea {
    height: calc(100vw / ( 640 / 400 )); }
  .contact_form input[type="text"]:focus,
  .contact_form input[type="email"]:focus,
  .contact_form input[type="tel"]:focus,
  .contact_form textarea:focus {
    background: #fff; }
  .contact_form :-webkit-input-placeholder {
    font-size: calc(100vw / ( 640 / 24 )); }
  .contact_form :-ms-input-placeholder {
    font-size: calc(100vw / ( 640 / 24 )); }
  .contact_form ::-moz-placeholder {
    font-size: calc(100vw / ( 640 / 24 )); }
  .contact_form ::placeholder {
    font-size: calc(100vw / ( 640 / 24 )); }
  .contact_form .sec1 {
    padding: calc(100vw / ( 640 / 100 )) 0 0;
    margin-bottom: 0; }
    .contact_form .sec1 .wrap {
      padding: 0; }
    .contact_form .sec1 h1 {
      padding: 0 calc(100vw / ( 640 / 40 ));
      margin-bottom: calc(100vw / ( 640 / 80 )); }
      .contact_form .sec1 h1 .ja {
        font-size: calc(100vw / ( 640 / 26 )); }
      .contact_form .sec1 h1 .en {
        font-size: calc(100vw / ( 640 / 40 )); }
    .contact_form .sec1 h1 + p {
      font-size: calc(100vw / ( 640 / 24 ));
      padding: 0 calc(100vw / ( 640 / 40 )); }
    .contact_form .sec1 .flex {
      display: block;
      margin-top: calc(100vw / ( 640 / 60 ));
      padding-bottom: 0; }
    .contact_form .sec1 form {
      width: auto;
      margin: 0;
      padding: calc(100vw / ( 640 / 40 )) calc(100vw / ( 640 / 40 )) calc(100vw / ( 640 / 80 ));
      background: #eaf1f5; }
    .contact_form .sec1 dl {
      max-width: none; }
    .contact_form .sec1 .btn_box {
      position: static;
      bottom: auto;
      left: auto;
      transform: none;
      margin-top: calc(100vw / ( 640 / 60 )); }
    .contact_form .sec1 .btn button svg {
      width: calc(100vw / ( 640 / 32 ));
      right: calc(100vw / ( 640 / 30 )); }
    .contact_form .sec1 .btn_reset {
      margin-top: calc(100vw / ( 640 / 60 )); }
      .contact_form .sec1 .btn_reset input {
        font-size: calc(100vw / ( 640 / 32 )); }
      .contact_form .sec1 .btn_reset span {
        padding: 0 calc(100vw / ( 640 / 50 )) 0 0; }
        .contact_form .sec1 .btn_reset span svg {
          width: calc(100vw / ( 640 / 30 )); }
    .contact_form .sec1 .info {
      width: auto;
      padding: calc(100vw / ( 640 / 610 )) calc(100vw / ( 640 / 40 )) calc(100vw / ( 640 / 80 ));
      position: relative; }
      .contact_form .sec1 .info .txt {
        margin: 0;
        border-left: none;
        padding: 0; }
      .contact_form .sec1 .info figure {
        position: absolute;
        top: calc(100vw / ( 640 / 40 ));
        left: 0;
        width: 100%;
        padding: 0 calc(100vw / ( 640 / 40 ));
        box-sizing: border-box; }
  .contact_form .thanks {
    padding: calc(100vw / ( 640 / 100 )) 0; }
    .contact_form .thanks .h {
      font-size: calc(100vw / ( 640 / 36 ));
      line-height: 1.2; }
    .contact_form .thanks h2 {
      font-size: calc(100vw / ( 640 / 28 ));
      text-align: left; }

  /*=======================================
  	privacy
  =======================================*/
  .privacy .sec1 {
    padding: calc(100vw / ( 640 / 100 )) 0 calc(100vw / ( 640 / 80 )); }
    .privacy .sec1 h1 {
      padding: 0 calc(100vw / ( 640 / 40 ));
      margin-bottom: calc(100vw / ( 640 / 80 )); }
      .privacy .sec1 h1 .ja {
        font-size: calc(100vw / ( 640 / 26 )); }
      .privacy .sec1 h1 .en {
        font-size: calc(100vw / ( 640 / 40 )); }
    .privacy .sec1 dt {
      font-size: calc(100vw / ( 640 / 28 ));
      padding-left: calc(100vw / ( 640 / 30 )); }
      .privacy .sec1 dt:before {
        width: calc(100vw / ( 640 / 20 ));
        height: calc(100vw / ( 640 / 20 ));
        top: .4em; }
    .privacy .sec1 dd {
      font-size: calc(100vw / ( 640 / 26 ));
      margin-bottom: 2rem; }
    .privacy .sec1 .box {
      padding: 1.5rem; } }

/*# sourceMappingURL=style.css.map */
