
/*------------------------*/
/* ▼CSS-Reset */
/*------------------------*/
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126License: none (public domain) */

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 {

  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {

  display: block;
  }

ol, ul {

  list-style: none;
  }

blockquote, q {

  quotes: none;
  }

blockquote::before, blockquote::after, q::before, q::after {

  content: '';
  content: none;
  }

table {

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

/*------------------------*/
/* ▼共通設定*/
/*------------------------*/
/*------------------------*/
/* #文字設定*/
/*------------------------*/

/*--------通常の文字--------*/
#siteclosed {
  background: #f5f5f5;
}
body, input, textarea {

  background: #fff;
  font: 16px/1.8 "Montserrat", "Yu Gothic", "游ゴシック", "YuGothic", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-weight: normal;
  color: #1f1f1f;
  letter-spacing: 0.2pt;
  text-align: justify;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  }

/*--------リンク文字--------*/

a {

  color: #1f1f1f;
  text-decoration: none;
  }

a.txt_link {

  color: #54acd2;
  }

a.txt_link:hover {

  text-decoration: underline;
  }

/*--------注釈の文字--------*/

.txt_attention {

  color: #c0392b;
  }

/*--------囲みの文字--------*/

.txt_wrap-gray {

  background: #f8f8f8;
  padding: 40px;
  margin: 0 0 25px;
  }

/*--------選択の動作--------*/

::selection {

  background: #333;
  color: #fff;
  }

/*--------通常のH2--------*/

h2 {

  font-size: 24px;
  font-weight: bold;
  line-height: 1.55;
  margin: 50px 0 15px;
  }

/*--------下層のH2--------*/

div.inner h2 {

  margin: 60px 0 15px;
  }

div.inner h2:first-child {

  margin-top: 0;
  }

/*--------和欧のH2--------*/

div.txt_title {

  margin: 70px 0 75px;
  }

div.txt_title p {

  margin: 0 0 5px;
  font-size: 38px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  letter-spacing: .5pt;
  }

div.txt_title h2 {

  margin: 0;
  font-size: 15px;
  font-weight: bold;
  line-height: 1;
  text-align: center;
  }

/*--------通常のh3--------*/

h3 {

  font-size: 18px;
  font-weight: bold;
  margin: 40px 0 20px;
  }

/*--------エフェクト--------*/

section#eff_txt-block {

  display: flex;
  }

section#eff_txt-block.ver_center {

  justify-content: center;
  }

div.wrap_detail section&:nth-child(even) {

  background: #f2f2f2;
  }

.motion-txt {

  display: inline-block;
  position: relative;
  overflow: hidden;
  }

.motion-txt::after {

  width: 100%;
  background-color: #000;
  content: '';
  position: absolute;
  opacity: 1;
  left: 0;
  top: 0;
  bottom: 0;
  transform: translate3d(-101%, 0, 0);
  }

.js-scroll.show .motion-txt::after {

  transition-property: transform, opacity;
  transition-duration: 0.5s;
  transition-delay: 0s;
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
  transform: translate3d(0, 0, 0);
  }

.js-scroll.done .motion-txt::after {

  transition-property: transform;
  transition-duration: 0.5s;
  transition-delay: 0s;
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
  transform: translate3d(103%, 0, 0);
  }

.motion-txt .motion-inner {

  display: inline-block;
  opacity: 0;
  }

.js-scroll.done .motion-txt .motion-inner {

  opacity: 1;
  }

/*------------------------*/
/* #ボタン類 */
/*------------------------*/
/*--------ボタン01--------*/

a.btn_style_01 {

  width: 220px;
  height: 65px;
  margin: 70px auto 0;
  border: 2px solid #000;
  display: block;
  position: relative;
  font-weight: bold;
  text-align: center;
  line-height: 65px;
  box-sizing: border-box;
  transition: all .3s;
  }

a.btn_style_01 span {

  position: relative;
  z-index: 1;
  }

a.btn_style_01::after {

  width: 7px;
  height: 7px;
  margin-top: -4px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  content: "";
  position: absolute;
  top: 50%;
  right: 25px;
  transform: rotate(45deg);
  transition: all .3s;
  z-index: 1;
  }

a.btn_style_01:hover {

  color: #fff;
  }

a.btn_style_01:hover::after {

  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  }

a.btn_style_01::before {

  background: #000;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: '';
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
  }

a.btn_style_01:hover::before {

  transform-origin: left top;
  transform: scale(1, 1);
  }

/*--------ボタン02--------*/

a.btn_style_02 {

  width: 220px;
  height: 60px;
  border-radius: 30px;
  background: #fff;
  border: 2px solid #1f1f1f;
  font-size: 15px;
  line-height: 60px;
  text-align: center;
  display: block;
  position: relative;
  transition: all .3s;
  }

a.btn_style_02::after {

  width: 7px;
  height: 7px;
  margin-top: -4px;
  border-top: 1px solid #1f1f1f;
  border-right: 1px solid #1f1f1f;
  content: "";
  position: absolute;
  top: 50%;
  right: 25px;
  transform: rotate(45deg);
  }

/*------------------------*/
/* #セクション*/
/*------------------------*/

section.wrap_section {

  width: 100%;
  position: relative;
  }

section.wrap_section.gray {

  background: #f5f5f5;
  }

section.wrap_section_01 {

  padding: 80px 0 0;
  background: #f5f5f5;
  }

section.wrap_section_01.pb {

  padding-bottom: 80px;
  }

section.wrap_section_02 {

  background: #f5f5f5;
  }

section.wrap_section_03 {

  margin: 75px 0 0;
  }

/*--------全体包括--------*/

div.wrap_contents {

  max-width: 1100px;
  margin: 0 auto;
  padding: 0 8%;
  }

div.wrap_contents#news {

  padding: 0 0 80px;
  }

/*--------インナー--------*/

div.wrap_contents div.inner {

  margin: 50px 0 0;
  }

div.wrap_contents div.inner:first-child {

  margin-top: 0;
  }

section.wrap_section div.inner {

  padding: 0 0 100px;
  position: relative;
  }

section.wrap_section_01 div.inner {

  padding: 80px 10%;
  background: #fff;
  box-sizing: border-box;
  border-radius: 5px;
  }

section.wrap_section_02 div.inner {

  padding: 80px 10%;
  background: #fff;
  border-radius: 0 0 5px 5px;
  position: relative;
  box-sizing: border-box;
  }

/*------------------------*/
/* #オプション */
/*------------------------*/

/*--------SVG非表示--------*/

svg#svg_group {

  display: none;
  }

/*--------マージン--------*/

.margin-01 {

  margin-top: 80px !important;
  }

/*------------------------*/
/* ▼Header*/
/*------------------------*/

header {

  padding: 25px 25px 0;
  position: relative;
  z-index: 9999;
  }

header div.inner {

  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
  border-radius: 10px;
  box-sizing: border-box;
  box-shadow: 0 0 25px rgba(0,0,0,.1);
  }

nav#nav_header {

  max-width: 1100px;
  height: 65px;
  margin: 0 auto;
  padding: 25px 50px 0;
  position: relative;
  display: flex;
  }

/*--------ロゴ周り--------*/

header nav h1, header nav h1 a, header nav > p, header nav > p a {

  display: inline-block;
  }

header nav h1 a, header nav > p a {

  width: 140px;
  height: 35px;
  margin: 3px 0 0;
  background: url(images/img_logo-b.svg) no-repeat center center;
  background-size: contain;
  }

header nav h1 a span, header nav > p span {

  display: none;
  }

/*--------グロナビ--------*/

ul.list_main {

  margin-left: auto;
  display: flex;
  justify-content: flex-end;
  }

ul.list_main > li {

  margin: 0 30px 0 0;
  padding: 7px 0 0;
  transition: all .3s;
  }

ul.list_main > li:last-child {

  margin: 0;
  }

ul.list_main > li::after {

  content: "";
  display: block;
  width: 100%;
  height: 3px;
  margin:  -3px auto 0;
  background: #1f1f1f;
  opacity: 0;
  transition: all .3s;
  }

ul.list_main > li:hover::after {

  opacity: 1;
  }

ul.list_main > li > a {

  height: 100%;
  display: block;
  font-size: 14px;
  font-weight: bold;
  }

/*--------展開部分--------*/

ul.list_main > li:hover div.megamenu {

  max-height: 9999px;
  opacity: 1;
  padding: 80px 0;
  }

div.megamenu {

  width: 100%;
  max-height: 0;
  margin-left: -50%;
  background: #000;
  position: absolute;
  top: 90px;
  left: 50%;
  transition: all .2s ease-in;
  z-index: 10000;
  opacity: 0;
  overflow: hidden;
  border-radius: 10px;
  }

div.megamenu > ul {

  max-width: 1100px;
  margin: 0 auto;
  padding: 0 50px;
  display: flex;
  flex-wrap: wrap;
  }

/*--------タイトル--------*/

div.megamenu div.txt_title {

  margin: 0 0 40px;
  color: #fff;
  }

div.megamenu div.txt_title p {

  margin: 0 0 10px;
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  }

div.megamenu div.txt_title h2 {

  margin: 0;
  font-size: 15px;
  line-height: 1;
  text-align: center;
  position: relative;
  }

div.megamenu div.txt_title h2 a {

  position: relative;
  color: #fff;
  }

div.megamenu div.txt_title h2 a:hover {

  text-decoration: underline;
  }

div.megamenu div.txt_title h2 a::before {

  width: 7px;
  height: 7px;
  margin-top: -5px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  content: "";
  position: absolute;
  top: 50%;
  left: -20px;
  transform: rotate(45deg);
  }

/*--------リンク要素--------*/

div.megamenu > ul li {

  width: 31%;
  height: 65px;
  margin: 0 3.5% 0 0;
  padding: 0 0 0 30px;
  border-bottom: 1px solid #444;
  box-sizing: border-box;
  line-height: 65px;
  position: relative;
  transition: all .3s;
  }

div.megamenu > ul li:nth-child(3n) {

  margin-right: 0;
  }

div.megamenu > ul li a {

  position: relative;
  display: block;
  text-decoration: none;
  color: #fff;
  font-size: 16px;
  transition: all .3s;
  }

div.megamenu > ul li > a::after {

  width: 5px;
  height: 5px;
  margin-top: -2px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  content: "";
  position: absolute;
  top: 50%;
  right: 34px;
  transform: rotate(45deg);
  }

div.megamenu > ul li > a::before {

  width: 20px;
  height: 20px;
  margin-top: -10px;
  border: 1px solid #fff;
  border-radius: 50%;
  content: "";
  position: absolute;
  top: 50%;
  right: 25px;
  }

div.megamenu > ul li > a:hover {

  opacity: .7;
  }

/*--------オプション--------*/

a.menu-trigger, nav#nav_sp {

  display: none;
  }

/*------------------------*/
/* #スライダー */
/*------------------------*/

article#wrap_keyvisual {

  width: 100%;
  height: 85vh;
  margin-top: -120px;
  overflow: hidden;
  }

/*--------スライド包括--------*/

div.swiper-slide {

  height: 85vh !important;
  background: #fff;
  }

/*--------テキスト周り--------*/

div.swiper-slide div.wrap_body {

  max-width: 1100px;
  margin: 0 auto;
  padding: 0 8%;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 85px;
  color: #fff;
  }

div.swiper-slide div.wrap_body div.info {

  width: 550px;
  display: flex;
  font-size: 14px;
  }

div.swiper-slide div.wrap_body div.info p.txt_cat {

  margin: 0 15px 0 0;
  border-right: 1px solid #fff;
  padding: 0 15px 0 0;
  line-height: 1;
  }

div.swiper-slide div.wrap_body div.info time {

  line-height: 1;
  }

div.swiper-slide div.wrap_body h2 {

  width: 550px;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.4;
  margin: 15px 0 10px;
  }

div.swiper-slide div.wrap_body p.txt_sub-title {

  width: 550px;
  font-size: 16px;
  line-height: 1.7;
  }

/*--------画像情報--------*/

div.swiper-slide figure {

  width: 100%;
  height: 85vh;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  }

div.swiper-slide figure::before {

  width: 100%;
  height: 100%;
  content: "";
  background: rgba(0, 0, 0, .2);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  }

/*--------ページャー--------*/

.swiper-pagination {

  width: 100%;
  bottom: 30px !important;
  }

.swiper-pagination-bullet {

  width: 14px !important;
  height: 14px !important;
  margin: 0 4px;
  background: none !important;
  border: 2px solid #fff !important;
  opacity: 1 !important;
  box-sizing: border-box;
  }

.swiper-pagination-bullet-active {

  background: #fff !important;
  border: none !important;
  }

/*------------------------*/
/* #経営理念 */
/*------------------------*/

section#wrap_who-we-are {

  width: 100%;
  padding: 120px 8% 0;
  background: #1f1f1f;
  position: relative;
  box-sizing: border-box;
  overflow: hidden;
  }

section#wrap_who-we-are::before {

  width: 338rem;
  height: 24rem;
  margin-top: -10rem;
  background: url(images/txt_creating.svg) no-repeat;
  background-size: auto 24rem;
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  animation: motion-1 150s linear infinite normal;
  }

@keyframes motion-1 {

  0%   { transform:translateX(0); }
  100% { transform:translateX(-100%); }
  }

section#wrap_who-we-are div.inner {

  max-width: 1100px;
  margin: 0 auto;
  color: #fff;
  position: relative;
  }

section#wrap_who-we-are div.inner h2, section#wrap_who-we-are div.inner p, section#wrap_who-we-are div.inner div.wrap_btns {

  max-width: 550px;
  margin: 0 auto;
  }

section#wrap_who-we-are div.inner p#txt_title {

  position: absolute;
  top: 0;
  left: 0;
  font-size: 18px;
  font-weight: bold;
  }

section#wrap_who-we-are div.inner h2 {

  margin-bottom: 30px;
  }

section#wrap_who-we-are div.inner p {

  font-size: 24px;
  font-weight: bold;
  line-height: 1.8;
  }

section#wrap_who-we-are div.inner div.wrap_btns {

  margin-top: 40px;
  display: flex;
  flex-wrap: wrap;
  }

section#wrap_who-we-are div.inner div.wrap_btns a {

  width: 48%;
  margin: 0 4% 0 0;
  border: 2px solid #fff;
  color: #fff;
  }

section#wrap_who-we-are div.inner div.wrap_btns a::before {

  background: #fff;
  }

section#wrap_who-we-are div.inner div.wrap_btns a::after {

  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  }

section#wrap_who-we-are div.inner div.wrap_btns a:hover span {

  color: #000;
  }

section#wrap_who-we-are div.inner div.wrap_btns a:hover::after {

  border-top: 2px solid #000;
  border-right: 2px solid #000;
  }

section#wrap_who-we-are div.inner div.wrap_btns a:last-child {

  margin: 0;
  }

/*------------------------*/
/* #サービス */
/*------------------------*/

section#wrap_service {

  padding: 60px 0 0;
  }

section#wrap_service::before {

  width: 100%;
  height: 72%;
  background: #1f1f1f;
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  }

section#wrap_service::after {

  width: 100%;
  height: 28%;
  background: #f5f5f5;
  display: block;
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  }

section#wrap_service h2 {

  margin: 0 0 60px;
  font-size: 18px;
  font-weight: bold;
  color: #fff;
  text-align: center;
  }

ul.list_service {

  display: flex;
  flex-wrap: wrap;
  }

ul.list_service li {

  width: 31.3%;
  margin: 0 3.05% 0 0;
  border-radius: 7px;
  background: #f8f8f8;
  box-sizing: border-box;
  }

ul.list_service#ver_1 li {

  background: #fff;
  }

ul.list_service li a {

  padding: 40px 25px 45px;
  border-radius: 7px;
  display: block;
  position: relative;
  transition: all .3s;
  }

ul.list_service li a:hover {

  box-shadow: 0 0 25px rgba(0,0,0,.2);
  }

ul.list_service li:last-child {

  margin: 0;
  }

ul.list_service li a::after {

  width: 7px;
  height: 7px;
  margin-top: -2px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  content: "";
  position: absolute;
  top: 50%;
  right: 44px;
  transform: rotate(45deg);
  }

ul.list_service li a::before {

  width: 28px;
  height: 28px;
  margin-top: -14px;
  border: 2px solid #000;
  border-radius: 50%;
  content: "";
  position: absolute;
  top: 50%;
  right: 30px;
  }

ul.list_service li p.txt_catch {

  margin: 0 0 15px;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.3;
  position: relative;
  }

ul.list_service li p.txt_catch span {

  position: relative;
  z-index: 2;
  }

ul.list_service li:nth-of-type(1) p.txt_catch span { background: #02AFD7; }
ul.list_service li:nth-of-type(2) p.txt_catch span { background: #F4AD42; }
ul.list_service li:nth-of-type(3) p.txt_catch span { background: #1AB697; }

ul.list_service li p.txt_name-en {

  margin: 0 0 5px;
  font-size: 20px;
  font-weight: bold;
  line-height: 1;
  }

ul.list_service li h3 {

  margin: 0;
  font-size: 12px;
  font-weight: bold;
  color: #999;
  line-height: 1;
  }

/*------------------------*/
/* #採用情報 */
/*------------------------*/

section#wrap_recruit a {

  padding: 150px 0 180px;
  display: block;
  position: relative;
  transition: all .3s;
  overflow: hidden;
  text-align: center;
  }

section#wrap_recruit a::before {

  display: block;
  content: "";
  width: 100%;
  height: 100%;
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  transition: all .3s;
  z-index: -2;
  }

section#wrap_recruit a:hover::before {

  opacity: 0;
  }

section#wrap_recruit a::after {

  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0);
  background-image: radial-gradient(#444 20%, transparent 0), radial-gradient(#444 20%, transparent 0);
  background-position: 0 0, 3px 0px;
  background-size: 3px 3px;
  display: block;
  content: "";
  z-index: -2;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  }

section#wrap_recruit a:hover::after {

  opacity: 1;
  }

section#wrap_recruit a video {

  width: 100%;
  height: auto;
  position: absolute;
  top: -25%;
  left: 50%;
  z-index: -9999;
  margin-left: -50%;
  }

section#wrap_recruit a:hover h2,
section#wrap_recruit a:hover p {

  color: #fff;
  }

section#wrap_recruit a:hover i::before {

  background: #fff;
  }

section#wrap_recruit a:hover i::after {

  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  }

section#wrap_recruit a h2 {

  margin: 0 0 50px;
  font-size: 18px;
  font-weight: bold;
  line-height: 1;
  z-index: -1;
  }

section#wrap_recruit a p {

  margin: 0 0 30px;
  font-size: 60px;
  font-weight: bold;
  line-height: 1;
  z-index: -1;
  }

section#wrap_recruit a i {

  width: 35px;
  margin: 0 auto;
  position: relative;
  z-index: -1;
  display: block;
  }

section#wrap_recruit a i::before {

  width: 35px;
  height: 2px;
  position: absolute;
  right: 0;
  top: 19px;
  display: block;
  content: "";
  background: #000;
  }

section#wrap_recruit a i::after {

  width: 6px;
  height: 6px;
  position: absolute;
  right: 0;
  top: 16px;
  display: block;
  content: "";
  border-right: 2px solid #000;
  border-top: 2px solid #000;
  transform: rotate(45deg);
  }

/*------------------------*/
/* #最新記事 */
/*------------------------*/

section#news div.txt_title {

  margin-top: 0;
  }

ul#list_topics {

  display: flex;
  flex-wrap: wrap;
  }

ul#list_topics li {

  width: 31.3%;
  margin: 0 3.05% 0 0;
  border-radius: 7px;
  background: #fff;
  transition: all .3s;
  box-sizing: border-box;
  }

ul#list_topics li:nth-child(3n) {

  margin-right: 0;
  }

ul#list_topics li:hover {

  box-shadow: 0 0 35px rgba(0, 0, 0, .2);
  }

ul#list_topics li a {

  display: block;
  }

ul#list_topics li figure {

  width: 100%;
  overflow: hidden;
  position: relative;
  border-bottom: 1px solid #f2f2f2;
  }

ul#list_topics li figure::before {

  content: "";
  display: block;
  padding-top: 62.5%;
  }

ul#list_topics li figure img {

  width: 100%;
  height: 100%;
  border-radius: 7px 7px 0 0;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  }

ul#list_topics li div.wrap_body {

  padding: 35px;
  }

ul#list_topics li div.wrap_txt div.wrap_info {

  margin: 0 0 10px;
  display: flex;
  position: relative;
  font-size: 12px;
  }

ul#list_topics li p.txt_cat {

  width: 120px;
  height: 25px;
  background: #000;
  position: absolute;
  bottom: 0;
  left: 0;
  color: #fff;
  font-size: 10px;
  font-weight: bold;
  text-align: center;
  line-height: 25px;
  }

ul#list_topics.ver_news li time {

  margin: 0 0 15px;
  display: block;
  font-size: 14px;
  font-family: Oswald;
  line-height: 1;
  }

ul#list_topics.ver_focus li time {

  width: 60px;
  height: 60px;
  padding: 14px 0 0;
  background: #000;
  border-radius: 50%;
  position: absolute;
  top: 20px;
  right: 20px;
  box-sizing: border-box;
  color: #fff;
  }

ul#list_topics.ver_focus li time p.txt_date {

  margin: 0 0 3px;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  color: #fff;
  line-height: 1;
  }

ul#list_topics.ver_focus li time p.txt_month {

  font-size: 12px;
  font-weight: bold;
  text-align: center;
  color: #fff;
  line-height: 1;
  }

ul#list_topics li h3 {

  margin: 0 0 10px;
  font-size: 17px;
  font-weight: bold;
  line-height: 1.55;
  text-align: left;
  }

ul#list_topics li p.txt_excerpt {

  font-size: 14px;
  color: #999;
  line-height: 1.7;
  text-align: left;
  }

/*------------------------*/
/* #リード部 */
/*------------------------*/

section.wrap_lead-link {

  display: flex;
  flex-wrap: wrap;
  }

section#culture section.wrap_lead-link:nth-child(n+2) {

  margin: 70px 0 0;
  }

section.wrap_lead-link div.txt_title {

  width: 50%;
  margin: 5px 0 0;
  }

section.wrap_lead-link div.wrap_detail {

  width: 50%;
  }

section.wrap_lead-link div.txt_title p, section.wrap_lead-link div.txt_title h2 {

  text-align: left;
  padding:  0 0 0 50px;
  }

section.wrap_lead-link div.txt_title p {

  position: relative;
  font-size: 38px;
  }

section#culture section.wrap_lead-link div.txt_title p {

  font-size: 32px;
  }

section.wrap_lead-link div.txt_title p::before {

  display: block;
  content: "";
  width: 35px;
  height: 2px;
  background: #000;
  position: absolute;
  top: 15px;
  left: 0;
  }

section.wrap_lead-link h3 {

  margin: 0 0 35px;
  font-size: 24px;
  font-weight: bold;
  line-height: 1.55;
  }

section.wrap_lead-link p.txt_desc {

  margin: 0 0 35px;
  }

section.wrap_lead-link a.btn_style_01 {

  margin: 0;
  }

/*------------------------*/
/* ▼Footer */
/*------------------------*/

footer {

  padding: 100px 0 50px;
  background: #000;
  }

/*--------ロゴ周り--------*/

a.img_logo {

  width: 150px;
  height: auto;
  margin: 0 auto;
  display: block;
  }

a.img_logo img {

  width: 100%;
  height: auto;
  }

/*--------各リンク--------*/

ul#list_footer-links {

  margin: 30px 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  }

ul#list_footer-links li {

  margin: 0 20px 0 0;
  }

ul#list_footer-links li a {

  position: relative;
  display: inline-block;
  font-size: 14px;
  color: #999;
  transition: all .3s;
  }

ul#list_footer-links li a:hover {

  color: #fff;
  }

ul#list_footer-links li a::after {

  width: 100%;
  height: 1px;
  background-color: #fff;
  position: absolute;
  bottom: .3em;
  left: 0;
  content: '';
  opacity: 0;
  transition: all .3s;
  }

ul#list_footer-links li a:hover::after {

  bottom: 0;
  opacity: 1;
  }

/*--------ソーシャル--------*/

ul.list_sns {

  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  }

ul.list_sns li {

  width: 40px;
  height: 40px;
  margin: 0 10px 0 0;
  border-radius: 50%;
  border: 1px solid #fff;
  transition: all .3s;
  }

ul.list_sns li:last-child {

  margin-right: 0;
  }

ul.list_sns li:hover {

  background: #fff;
  }

ul.list_sns li a {

  width: 100%;
  height: 100%;
  display: block;
  position: relative;
  }

ul.list_sns li a svg {

  width: 17px;
  height: auto;
  margin-left: -8px;
  fill: #fff;
  position: absolute;
  top: 14px;
  left: 50%;
  transition: all .3s;
  }

ul.list_sns li:hover a svg {

  fill: #000;
  }

ul.list_sns li.fb a svg {

  width: 8px;
  margin-left: -4px;
  top: 12px;
  }

ul.list_sns li.in a svg {

  width: 24px;
  margin-left: -12px;
  top: 9px;
  }

/*--------著作表示--------*/

p.txt_copyright {

  margin: 100px 0 0;
  font-size: 12px;
  color: #999;
  text-align: center;
  }

/*------------------------*/
/* ▲デバイス共通 */
/*------------------------*/



/*------------------------- ▲20190821_最終QC済み --------------------------*/



/*------------------------*/
/* ▼SP&TB共通 */
/*------------------------*/
@media screen and (max-width: 1024px) {

/*------------------------*/
/* #包括要素 */
/*------------------------*/

div.wrap_contents {

  padding: 0 6%;
  }

section.wrap_section_01 div.inner {

  padding: 65px 7%;
  }

section.wrap_section_02 div.inner {

  padding: 65px 7%;
  }

section.wrap_section_02 div.img_top {

  padding: 0 6%;
  }

section.wrap_relation div.inner {

  padding: 0 6%;
  }

/*------------------------*/
/* #文字設定 */
/*------------------------*/

section.wrap_title {

  padding: 80px 0 90px;
  }

/*------------------------*/
/* ▼Header*/
/*------------------------*/

header {

  height: 70px;
  padding: 25px 25px 0;
  }

header div.inner {

  width: 100%;
  height: 70px;
  background: #fff;
  box-shadow: 0 0 15px rgba(0, 0, 0, .08);
  z-index: 9999;
  }

nav#nav_header {

  padding: 18px 25px 0;
  }

/*--------ロゴ周り--------*/

header nav h1, header nav > p {

  margin: 0 auto;
  }

header nav h1 a, header nav > p a {

  width: 108px;
  height: 25px;
  }

ul.list_main {

  display: none;
  }

/*--------メニュー--------*/

.menu-trigger, nav#nav_sp {

  display: block !important;
  }

/*--------トリガー--------*/

.menu-trigger,
.menu-trigger span {

  display: inline-block;
  box-sizing: border-box;
  transition: all .3s;
  }

.menu-trigger {

  width: 70px;
  height: 70px;
  position: absolute;
  top: 25px;
  right: 40px;
  }

.menu-trigger span {

  width: 24px;
  height: 1px;
  position: absolute;
  background-color: #000;
  left: 23px;
  }

.menu-trigger span:nth-of-type(1) { top:    27px; }
.menu-trigger span:nth-of-type(2) { top:    50%;  }
.menu-trigger span:nth-of-type(3) { bottom: 27px; }

.menu-trigger.active span:nth-of-type(1) { transform: translateY(7px) rotate(-45deg); }
.menu-trigger.active span:nth-of-type(2) { opacity: 0; }
.menu-trigger.active span:nth-of-type(3) { transform: translateY(-8px) rotate(45deg); }

/*--------グロナビ--------*/

nav#nav_sp {

  width: 33%;
  height: 100%;
  padding-top: 15px;
  background: #fff;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  }

nav#nav_sp ul {

  margin-top: 85px;
  }

nav#nav_sp ul li {

  width: 100%;
  box-sizing: border-box;
  position: relative;
  border-bottom: 1px solid #f2f2f2;
  }

nav#nav_sp ul li:last-child {

  border-bottom: none;
  }

nav#nav_sp ul li a {

  padding: 25px 40px;
  display: block;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  }

nav#nav_sp ul li .ico_plus {

  right: 30px;
  }

nav#nav_sp ul li .ico_plus span {

  background: #000;
  }

nav#nav_sp ul > ul {

  margin-top: 0;
  }

nav#nav_sp ul > ul li {

  background: #f8f8f8;
  border-bottom: 1px solid #fff;
  }

nav#nav_sp ul > ul li::after {

  width: 7px;
  height: 7px;
  margin-top: -4px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  content: "";
  position: absolute;
  top: 50%;
  right: 45px;
  transform: rotate(45deg);
  }

/*--------包括要素--------*/

.side-open .overlay {

  visibility: visible;
  cursor: pointer;
  }

.side-open .overlay::after {

  visibility: visible;
  color: rgba(255, 255, 255, .8);
  }

div.wrapper {

  width: 100%;
  height: auto;
  background: #fff;
  position: relative;
  transition: all .5s ease;
  z-index: 2;
  }

.side-open .wrapper,
.side-open .overlay {

  transform: translate3d(-33%, 0, 0);
  }

/*------------------------*/
/* ▼コンテンツ */
/*------------------------*/
/*------------------------*/
/* #スライダー */
/*------------------------*/

article#wrap_keyvisual {

  margin-top: -95px;
  }

div.swiper-slide div.wrap_body {

  padding: 0 6%;
  }

/*------------------------*/
/* #サービス紹介 */
/*------------------------*/

ul.list_business {

  padding: 0 6%;
  }

/*------------------------*/
/* #パンくず */
/*------------------------*/

ul#list_breadcrumb {

  padding: 0 6%;
  }

}
/*------------------------*/
/* ▲SP&TB共通 */
/*------------------------*/



/*------------------------*/
/* ▼タブレット版 */
/*------------------------*/
@media screen and (max-width: 769px) and (min-width: 600px) {

/*------------------------*/
/* ▼共通設定 */
/*------------------------*/
/*------------------------*/
/* #文字設定 */
/*------------------------*/
/*--------タイトル--------*/

section.wrap_title {

  padding: 80px 0 90px;
  }

/*--------和欧のH2--------*/

div.txt_title p {

  font-size: 32px;
  }

div.txt_title h2 {

  font-size: 15px !important;
  }

/*--------通常のH3--------*/

h3 {

  font-size: 16px;
  }

/*------------------------*/
/* #オプション */
/*------------------------*/
/*--------FOCUS導線--------*/

div.link_focus {

  margin: 50px 0 0;
  padding: 50px 0 0;
  }

/*--------マージン--------*/

.margin-01 {

  margin-top: 60px !important;
  }

/*------------------------*/
/* ▼Header */
/*------------------------*/

.menu-trigger {

  right: 30px;
  }

/*------------------------*/
/* #スライダー */
/*------------------------*/

article#wrap_keyvisual {

  height: 65vh;
  }

/*--------スライド包括--------*/

div.swiper-slide {

  height: 65vh !important;
  }

/*--------画像情報--------*/

div.swiper-slide figure {

  height: 65vh;
  }

/*--------文字情報--------*/

div.swiper-slide div.wrap_body {

  bottom: 80px;
  }

div.swiper-slide div.wrap_body h2 {

  width: 70%;
  margin: 15px 0 0;
  font-size: 22px !important;
  line-height: 1.7;
  }

div.swiper-slide div.wrap_body p.txt_sub-title {

  width: 70%;
  }

/*------------------------*/
/* #経営理念 */
/*------------------------*/

section#wrap_who-we-are {

  padding: 80px 0 0;
  }

section#wrap_who-we-are::before {

  margin-top: -10rem;
  }

section#wrap_who-we-are div.inner p#txt_title {

  font-size: 18px;
  writing-mode: vertical-rl;
  left: 35px;
  top: 10px;
  }

section#wrap_who-we-are div.inner h2, section#wrap_who-we-are div.inner p, section#wrap_who-we-are div.inner div.wrap_btns {

  max-width: 420px;
  }

section#wrap_who-we-are div.inner p {

  font-size: 20px;
  }

/*------------------------*/
/* #サービス */
/*------------------------*/

section#wrap_service::before {

  height: 87%;
  }

section#wrap_service::after {

  height: 13%;
  }

ul.list_service {

  display: block;
  }

ul.list_service li {

  width: 100%;
  margin: 0 0 25px;
  }

ul.list_service li p.txt_catch {

  font-size: 26px;
  }

ul.list_service li h3 {

  font-size: 12px !important;
  }

/*------------------------*/
/* #採用情報 */
/*------------------------*/

section#wrap_recruit a {

  padding: 180px 0 200px;
  }

section#wrap_recruit a::before {

  display: none;
  }

section#wrap_recruit a::after {

  opacity: 1;
  }

section#wrap_recruit a video {

  width: 900px;
  margin-left: -450px;
  top: 0;
  }

section#wrap_recruit a h2 {

  margin-bottom: 30px;
  color: #fff;
  }

section#wrap_recruit a p {

  margin-bottom: 20px;
  font-size: 48px;
  color: #fff;
  }

section#wrap_recruit a i::before {

  background: #fff;
  }

section#wrap_recruit a i::after {

  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  }

/*------------------------*/
/* #最新記事 */
/*------------------------*/

ul#list_topics li {

  width: 47.5%;
  margin: 5% 5% 0 0 !important;
  }

ul#list_topics li:nth-child(-n+2) {

  margin-top: 0 !important;
  }

ul#list_topics li:nth-child(2n) {

  margin-right: 0 !important;
  }

/*------------------------*/
/* #リード部 */
/*------------------------*/

section.wrap_lead-link div.txt_title p {

  font-size: 32px;
  }

section.wrap_lead-link h3 {

  font-size: 22px;
  }

/*------------------------*/
/* ▼Footer */
/*------------------------*/

section#wrap_footer-links div {

  padding: 50px 50px 80px;
  }

section#wrap_footer-logo div {

  padding: 0 50px 40px;
  }
}
/*------------------------*/
/* ▲タブレット版 */
/*------------------------*/



/*------------------------*/
/* ▼スマートフォン版 */
/*------------------------*/
@media screen and (max-width: 600px) {

/*------------------------*/
/* ▼共通設定 */
/*------------------------*/
/*------------------------*/
/* #文字設定 */
/*------------------------*/
/*--------通常の文字--------*/

body {

  font-size: 14px;
  }

/*--------和欧のH2--------*/

div.txt_title {

  margin: 50px 0 55px;
  }

div.txt_title p {

  font-size: 32px;
  }

div.txt_title h2 {

  font-size: 13px !important;
  }

/*------------------------*/
/* #ボタン類 */
/*------------------------*/

a.btn_style_01 {

  width: 75%;
  margin: 60px auto 0;
  }

a.btn_style_02 {

  width: 250px;
  margin: 0 auto;
  }

/*------------------------*/
/* #オプション */
/*------------------------*/
/*--------マージン--------*/

.margin-01 {

  margin-top: 60px !important;
  }

/*------------------------*/
/* ▼Header */
/*------------------------*/

header {

  padding: 15px 15px 0;
  }

header div.inner {

  height: 60px;
  }

nav#nav_header {

  height: 45px;
  padding: 13px 25px 0;
  }

header nav h1 img, header nav > p img {

  height: 25px;
  }

.menu-trigger {

  top: 10px;
  right: 12px;
  }

nav#nav_sp {

  width: 100%;
  }

.side-open .wrapper,
.side-open .overlay {

  transform: translate3d(-100%, 0, 0);
  }

/*------------------------*/
/* ▼コンテンツ */
/*------------------------*/
/*------------------------*/
/* #スライダー */
/*------------------------*/

article#wrap_keyvisual {

  height: 68vh;
  min-height: 550px;
  }

div.swiper-slide {

  height: 68vh !important;
  min-height: 550px;
  }

div.swiper-slide figure {

  height: 68vh;
  min-height: 550px;
  }

div.swiper-slide div.wrap_body {

  padding: 0 25px;
  bottom: 60px;
  }

div.swiper-slide div.wrap_body div.info {

  width: auto;
  font-size: 12px;
  }

div.swiper-slide div.wrap_body h2 {

  width: auto;
  margin: 10px 0 0;
  font-size: 18px;
  line-height: 1.55;
  }

div.swiper-slide div.wrap_body p.txt_sub-title {

  width: auto;
  font-size: 14px;
  }

.swiper-pagination {

  bottom: 20px !important;
  }

/*------------------------*/
/* #経営理念 */
/*------------------------*/

section#wrap_who-we-are {

  padding: 60px 0 0;
  }

section#wrap_who-we-are::before {

  margin-top: -12rem;
  }

section#wrap_who-we-are div.inner {

  padding: 0 25px;
  }

section#wrap_who-we-are div.inner p#txt_title {

  position: relative;
  font-size: 16px;
  text-align: center;
  }

section#wrap_who-we-are div.inner h2 {

  margin-bottom: 20px !important;
  }

section#wrap_who-we-are div.inner p {

  font-size: 18px;
  }

section#wrap_who-we-are div.inner div.wrap_btns {

  display: block;
  }

section#wrap_who-we-are div.inner div.wrap_btns a {

  width: 85%;
  margin: 0 auto !important;
  }

section#wrap_who-we-are div.inner div.wrap_btns a:first-child {

  margin-bottom: 20px !important;
  }

/*------------------------*/
/* #サービス */
/*------------------------*/

section#wrap_service::before {

  height: 87%;
  }

section#wrap_service::after {

  height: 13%;
  }

ul.list_service {

  display: block;
  }

ul.list_service li {

  width: 100%;
  margin: 0 0 25px;
  }

ul.list_service li p.txt_catch {

  font-size: 26px;
  }

ul.list_service li h3 {

  font-size: 12px !important;
  }

/*------------------------*/
/* #採用情報 */
/*------------------------*/

section#wrap_recruit a {

  padding: 180px 0 200px;
  }

section#wrap_recruit a::before {

  display: none;
  }

section#wrap_recruit a::after {

  opacity: 1;
  }

section#wrap_recruit a video {

  width: 900px;
  margin-left: -450px;
  top: 0;
  }

section#wrap_recruit a h2 {

  margin-bottom: 30px;
  color: #fff;
  }

section#wrap_recruit a p {

  margin-bottom: 20px;
  font-size: 42px;
  color: #fff;
  }

section#wrap_recruit a i::before {

  background: #fff;
  }

section#wrap_recruit a i::after {

  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  }


/*------------------------*/
/* #最新記事 */
/*------------------------*/

section.wrap_section_03#news {

  margin-top: 55px;
  }

ul#list_topics li {

  width: 100%;
  margin: 25px 0 0 !important;
  }

ul#list_topics li:first-child {

  margin-top: 0 !important;
  }

ul#list_topics li div.wrap_body {

  padding: 35px 25px 30px;
  }

ul#list_topics li div.body div.info {

  margin: 0 0 8px;
  }

ul#list_topics li div.body h3 {

  font-size: 16px;
  }

ul#list_topics li div.body p.txt_company {

  font-size: 10px;
  }

ul#list_topics li div.body div.info time {

  font-size: 12px;
  line-height: 30px;
  }

ul#list_topics li div.body div.info p.txt_cat {

  top: -40px;
  }

ul#list_topics li div.body p.txt_excerpt {

  font-size: 14px;
  }

/*------------------------*/
/* #リード部 */
/*------------------------*/

section.wrap_lead-link {

  padding: 0;
  display: block;
  }

section.wrap_lead-link div.txt_title {

  width: 100%;
  margin: 0 0 55px;
  }

section#culture section.wrap_lead-link div.txt_title {

  margin: 0 0 30px;
  }

section.wrap_lead-link div.txt_title section#eff_txt-block {

  justify-content: center;
  }

section.wrap_lead-link div.txt_title p {

  font-size: 32px;
  text-align: center;
  padding: 0;
  }

section#culture section.wrap_lead-link div.txt_title p {

  font-size: 28px;
  }

section.wrap_lead-link div.txt_title h2 {

  text-align: center;
  padding: 0;
  }

section.wrap_lead-link div.wrap_detail {

  width: 100%;
  }

section.wrap_lead-link div.txt_title p::before {

  display: none;
  }

section.wrap_lead-link h3 {

  margin-bottom: 25px;
  font-size: 20px !important;
  }

section.wrap_lead-link a.btn_style_01 {

  margin: 0 auto;
  }

/*------------------------*/
/* ▼Footer */
/*------------------------*/

footer {

  padding: 70px 0 40px;
  }

p.txt_copyright {

  margin: 50px 0 0;
  }

ul#list_footer-links {

  display: none;
  }

footer a.img_logo {

  width: 135px;
  margin-bottom: 25px;
  }

}
/*------------------------*/
/* ▲スマートフォン版 */
/*------------------------*/


/*------------------------- ▲20190823_最終QC済み -------------------------*/
