@charset "UTF-8";
main {
  padding: 0 !important;
  overflow: hidden; }

/* ================================================== */
/* 共通 *
/* ================================================== */
html {
  margin-top: 0 !important; }

html, body {
  color: #1b1b1b;
  font-size: 14px; }

@media all and (-ms-high-contrast: none) {
  html, body {
    font-size: 13px; } }
.sp {
  display: block; }
  @media screen and (min-width: 641px) {
    .sp {
      display: none; } }

.pc {
  display: none; }
  @media screen and (min-width: 641px) {
    .pc {
      display: block; } }

.btn-more {
  display: block;
  width: 100%;
  height: auto;
  max-width: 300px;
  line-height: 1;
  padding: 12px 0;
  text-align: center;
  text-decoration: none;
  font-size: 1.285rem;
  border-radius: 50px; }
  .btn-more span {
    display: block;
    margin: 8px 0 0 0;
    font-size: .857rem;
    color: #EB5505; }
  .btn-more-white {
    color: #ffffff;
    border: 2px solid #ffffff;
    transition: .3s; }
    .btn-more-white span {
      color: #ffffff; }
    .btn-more-white:hover {
      background-color: #EB5505;
      border: 2px solid #EB5505; }
  .btn-more-bg_white {
    color: #EB5505;
    background-color: #ffffff;
    transition: .3s; }
    .btn-more-bg_white:hover {
      color: #ffffff;
      background-color: #EB5505; }
      .btn-more-bg_white:hover span {
        color: #ffffff; }
  .btn-more-orange {
    color: #EB5505;
    border: 2px solid #EB5505;
    transition: .3s; }
    .btn-more-orange:hover {
      color: #ffffff;
      background-color: #EB5505; }
      .btn-more-orange:hover span {
        color: #ffffff; }
  .btn-more-black {
    color: #ffffff;
    background-color: #1b1b1b; }

@keyframes imageZoom {
  0% {
    transform: scale(1, 1); }
  100% {
    transform: scale(1.2, 1.2); } }
/* ================================================== */
/* トップページ *
/* ================================================== */
/*========= ローディング画面のためのCSS ===============*/
#splash {
  position: fixed;
  width: 100%;
  height: 100%;
  background: #EB5505;
  z-index: 9999999;
  text-align: center;
  color: #fff; }

#splash-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); }
  #splash-logo img {
    width: 50%; }

/*========= 画面遷移のためのCSS ===============*/
body {
  background: #EB5505;
  /*遷移アニメーションと同じ色を指定*/ }

body.appear {
  background: #fff;
  /*画面を開いた後の背景色を指定*/ }

/*画面遷移アニメーション*/
.splashbg1,
.splashbg2 {
  display: none; }

/*bodyにappearクラスがついたら出現*/
body.appear .splashbg1,
body.appear .splashbg2 {
  display: block; }

/*右に消えるエリア*/
body.appear .splashbg1 {
  animation-name: PageAnime;
  /*animation-duration:0.8s;*/
  animation-duration: 0.4s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
  content: "";
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 50%;
  transform: scaleX(1) skewX(-20deg);
  transform-origin: top right;
  background-color: #EB5505;
  /*伸びる背景色の設定*/ }

@keyframes PageAnime {
  0% {
    transform-origin: top right;
    transform: scaleX(1) skewX(-20deg); }
  100% {
    transform-origin: top right;
    transform: scaleX(0) skewX(-40deg); } }
/*左に消えるエリア*/
body.appear .splashbg2 {
  animation-name: PageAnime2;
  /*animation-duration:0.8s;*/
  animation-duration: 0.4s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards;
  content: "";
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  top: 0;
  right: 50%;
  transform: scaleX(1) skewX(-20deg);
  transform-origin: top left;
  background-color: #EB5505;
  /*伸びる背景色の設定*/ }

@keyframes PageAnime2 {
  0% {
    transform-origin: top left;
    transform: scaleX(1) skewX(-20deg); }
  100% {
    transform-origin: top left;
    transform: scaleX(0) skewX(-40deg); } }
/*画面遷移の後現れるコンテンツ設定*/
#container {
  opacity: 0;
  /*はじめは透過0に*/ }

/*bodyにappearクラスがついたら出現*/
body.appear #container {
  animation-name: PageAnimeAppear;
  animation-duration: 1s;
  animation-delay: 0.2s;
  animation-fill-mode: forwards;
  opacity: 0; }

@keyframes PageAnimeAppear {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
.keyvisual {
  position: relative;
  width: 100%;
  height: 600px; }
  @media screen and (min-width: 641px) {
    .keyvisual {
      height: 100vh;
      min-height: 800px; } }
  .keyvisual-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-33%, -40%);
    z-index: 100;
    width: 100%;
    max-width: 270px;
    filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.4)); }
    @media screen and (min-width: 641px) {
      .keyvisual-text {
        max-width: 520px; } }
  .keyvisual .keyvisual-slider {
    position: relative;
    z-index: 1;
    height: 100%;
    overflow: hidden; }
  .keyvisual .keyvisual-slide {
    width: 100%;
    height: 100%; }
    .keyvisual .keyvisual-slide:nth-child(1) {
      background: #fff url(../images/home_keyvisual1_sp.jpg) no-repeat border-box center center/cover;
      background-position: top; }
      @media screen and (min-width: 641px) {
        .keyvisual .keyvisual-slide:nth-child(1) {
          background: #fff url(../images/home_keyvisual1.jpg) no-repeat border-box center center/cover;
          background-position: top; } }
    .keyvisual .keyvisual-slide:nth-child(2) {
      background: #fff url(../images/home_keyvisual2_sp.jpg) no-repeat border-box center center/cover;
      background-position: top; }
      @media screen and (min-width: 641px) {
        .keyvisual .keyvisual-slide:nth-child(2) {
          background: #fff url(../images/home_keyvisual2.jpg) no-repeat border-box center center/cover;
          background-position: top; } }
    .keyvisual .keyvisual-slide:nth-child(3) {
      background: #fff url(../images/home_keyvisual3_sp.jpg) no-repeat border-box center center/cover;
      background-position: top; }
      @media screen and (min-width: 641px) {
        .keyvisual .keyvisual-slide:nth-child(3) {
          background: #fff url(../images/home_keyvisual3.jpg) no-repeat border-box center center/cover;
          background-position: top; } }

.keyvisual:before {
  content: "";
  display: inline-block;
  background-image: url(../images/home-keyvisual_left.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 200px;
  height: 430px;
  opacity: 0.7; }
  @media screen and (min-width: 641px) {
    .keyvisual:before {
      width: 400px;
      height: 820px; } }

.keyvisual:after {
  content: "";
  display: inline-block;
  background-image: url(../images/home-keyvisual_right.svg);
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 10;
  width: 80px;
  height: 160px; }
  @media screen and (min-width: 641px) {
    .keyvisual:after {
      width: 180px;
      height: 380px; } }

.slick-list {
  height: 100%; }
.slick-track {
  height: 100%; }

.news {
  width: 100%;
  height: auto;
  padding: 40px 0;
  background-image: url(../images/home_news_bg.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: right; }
  @media screen and (min-width: 641px) {
    .news {
      background-position: center; } }
  .news-inner {
    width: 92%;
    height: auto;
    max-width: 1100px;
    margin: 0 auto; }
  .news-title {
    width: 100%;
    height: auto;
    margin: 0 0 28px 0;
    text-align: center; }
    .news-title img {
      margin: 0 0 20px 0;
      padding: 0 0 20px 0;
      border-bottom: 1px solid #000000; }
    .news-title span {
      display: block;
      color: #000000;
      font-size: 1.142rem; }
  .news-list {
    width: 100%;
    height: auto;
    margin: 0 0 28px 0; }
    .news-list-item {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      width: 100%;
      height: auto;
      padding: 20px 0;
      border-bottom: 1px solid #E2E2E2; }
      .news-list-item:first-child {
        border-top: 1px solid #E2E2E2; }
      @media screen and (min-width: 641px) {
        .news-list-item {
          padding: 10px 10px 10px 0; } }
      @media screen and (min-width: 1080px) {
        .news-list-item {
          padding: 10px 10px 10px 0; } }
      .news-list-item .news-thumbnails {
        width: 100%;
        margin-bottom: 20px; }
        @media screen and (min-width: 641px) {
          .news-list-item .news-thumbnails {
            width: auto;
            margin-bottom: 0; } }
        .news-list-item .news-thumbnails img {
          display: block;
          width: 100%; }
          @media screen and (min-width: 641px) {
            .news-list-item .news-thumbnails img {
              width: 170px;
              height: 100px;
              margin-right: 40px; } }
      .news-list-item .news-info {
        width: 100%; }
        @media screen and (min-width: 641px) {
          .news-list-item .news-info {
            width: auto; } }
      .news-list-item .date {
        width: 110px;
        height: auto;
        margin: 0 40px 0 0;
        color: #000000;
        font-size: 1.142rem; }
        @media screen and (min-width: 641px) {
          .news-list-item .date {
            font-size: 1.285rem; } }
        @media screen and (min-width: 1080px) {
          .news-list-item .date {
            font-size: 1.1rem; } }
      .news-list-item .label {
        width: 138px;
        height: auto;
        line-height: 1;
        margin: 0 20px 0 0;
        padding: 8px 24px;
        text-align: center;
        color: #ffffff;
        background-color: #EB5505; }
        @media screen and (min-width: 641px) {
          .news-list-item .label {
            font-size: 1.142rem; } }
        @media screen and (min-width: 1080px) {
          .news-list-item .label {
            font-size: 1.1rem; } }
      .news-list-item .title {
        width: 100%;
        margin: 10px 0 0 0;
        font-weight: normal; }
        @media screen and (min-width: 641px) {
          .news-list-item .title {
            margin: 20px 0 0; } }
        @media screen and (min-width: 1080px) {
          .news-list-item .title {
            margin: 20px 0 0; } }
        .news-list-item .title a {
          text-decoration: none;
          color: #000000;
          font-size: 1.142rem; }
          .news-list-item .title a:hover {
            text-decoration: underline; }
          @media screen and (min-width: 641px) {
            .news-list-item .title a {
              font-size: 1.285rem; } }
          @media screen and (min-width: 1080px) {
            .news-list-item .title a {
              font-size: 1.1rem; } }
  .news .btn-more {
    margin: 0 auto; }

.happy {
  width: 100%;
  height: auto;
  background-image: url(../images/home_happy_bg.jpg);
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat; }
  @media screen and (min-width: 1080px) {
    .happy {
      padding: 0;
      position: relative;
      height: 80vh; } }
  .happy-inner {
    width: 100%;
    height: 100%;
    margin: 0 auto;
    text-align: center;
    background: rgba(69, 179, 234, 0.1);
    padding: 20px 0 28px;
    position: relative;
    width: 100%;
    padding: 40px 0; }
    @media screen and (min-width: 641px) {
      .happy-inner {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: center;
        padding: 40px 0 110px; } }
    @media screen and (min-width: 1080px) {
      .happy-inner {
        padding: 40px 0 80px; } }
    .happy-inner div {
      margin: 20px auto 0;
      width: 92%; }
      @media screen and (min-width: 641px) {
        .happy-inner div {
          margin: 0 0 0 80px;
          width: auto; } }
  @media screen and (min-width: 1080px) {
    .happy-title {
      max-width: 260px; } }
  .happy-title img {
    width: 200px;
    filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.2)); }
    @media screen and (min-width: 1080px) {
      .happy-title img {
        width: 300px; } }
  .happy-text {
    margin: 0 0 10px 0;
    color: #ffffff;
    font-size: 1.285rem;
    font-weight: bold;
    text-align: center;
    filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.2));
    text-align: left; }
    @media screen and (min-width: 641px) {
      .happy-text {
        font-size: 1.782rem;
        margin: 0;
        text-align: left; } }
    @media screen and (min-width: 1080px) {
      .happy-text {
        font-size: 2.142rem;
        margin: 0;
        text-align: left; } }
  .happy .btn-more {
    margin: 60px auto 0;
    text-align: center; }
    @media screen and (min-width: 641px) {
      .happy .btn-more {
        margin: 60px 0 0; } }

.diagonal {
  width: 100%;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  overflow: hidden;
  height: auto; }
  @media screen and (min-width: 1080px) {
    .diagonal {
      flex-direction: row;
      height: 500px; } }

.vision,
.mission {
  display: flex;
  position: relative;
  color: #ffffff;
  flex: 0 0 65%;
  overflow: hidden;
  height: 250px; }
  @media screen and (min-width: 641px) {
    .vision,
    .mission {
      height: 350px; } }
  @media screen and (min-width: 1080px) {
    .vision,
    .mission {
      transform: skew(20deg) translateX(-25%);
      height: auto; } }

.mission-content,
.vision-content {
  display: block;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  height: 100%;
  padding: 20px 0;
  position: relative; }

.mission-content {
  background: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)), url("../images/mission.png") no-repeat top right/cover;
  text-align: left; }
  @media screen and (min-width: 1080px) {
    .mission-content {
      transform: skew(-20deg) translateX(-20%); } }

.vision-content {
  background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5)), url("../images/vision.png") no-repeat top left/cover;
  text-align: right; }
  @media screen and (min-width: 1080px) {
    .vision-content {
      transform: skew(-20deg) translateX(20%); } }

.vision-title,
.mission-title {
  margin: 0 auto 7px;
  width: 92%;
  line-height: 200%; }

@media screen and (min-width: 1080px) {
  .vision-title {
    position: absolute;
    bottom: 30%;
    right: 25%;
    text-align: right;
    margin: 0; } }

@media screen and (min-width: 1080px) {
  .mission-title {
    position: absolute;
    top: 15%;
    left: 25%;
    text-align: left;
    margin: 0; } }

.vision-en,
.mission-en {
  display: block;
  font-size: 6rem;
  font-family: bebas-neue-pro, sans-serif;
  font-weight: 900;
  font-style: normal;
  margin: 20px 0 30px;
  letter-spacing: 1px; }
  @media screen and (min-width: 1080px) {
    .vision-en,
    .mission-en {
      font-size: 9rem;
      font-weight: 900;
      margin: 20px 0 50px; } }
  .vision-en em,
  .mission-en em {
    color: red; }

.vision-ja,
.mission-ja {
  display: block;
  color: inherit;
  line-height: 1;
  font-size: 1.428rem; }
  @media screen and (min-width: 1080px) {
    .vision-ja,
    .mission-ja {
      font-size: 2.142rem; } }

.vision-text,
.mission-text {
  width: 92%;
  margin: 0 auto;
  font-size: 1.285rem; }
  @media screen and (min-width: 1080px) {
    .vision-text,
    .mission-text {
      font-size: 1.714rem;
      line-height: 150%; } }

.vision-text {
  text-align: right; }
  @media screen and (min-width: 1080px) {
    .vision-text {
      text-align: right;
      position: absolute;
      bottom: 14%;
      right: 25%; } }

.mission-text {
  text-align: left; }
  @media screen and (min-width: 1080px) {
    .mission-text {
      position: absolute;
      top: 42%;
      left: 25%; } }

.shop {
  width: 100%;
  height: auto;
  padding: 40px 0;
  background-color: #1b1b1b;
  border-bottom: 1px solid #ffffff; }
  @media screen and (min-width: 641px) {
    .shop {
      padding: 100px 0; } }
  .shop-inner {
    max-width: 1280px;
    margin: 0 auto; }
  .shop-thumbs {
    width: 100%;
    margin: 0 0 28px 0; }
    @media screen and (min-width: 1080px) {
      .shop-thumbs {
        margin: 100px auto 80px; } }
    .shop-thumbs figure {
      width: 90%;
      margin: auto;
      text-align: center; }
      .shop-thumbs figure img {
        width: 100%; }
        @media screen and (min-width: 641px) {
          .shop-thumbs figure img {
            width: 80%; } }
  .shop-content {
    width: 100%;
    text-align: center; }
    @media screen and (min-width: 1080px) {
      .shop-content {
        max-width: 1280px;
        margin: auto; } }
  .shop-title {
    margin: 0 0 28px 0; }
    @media screen and (min-width: 1080px) {
      .shop-title {
        margin: 0 0 40px 0; } }
    .shop-title img {
      margin: 0 0 20px 0; }
    .shop-title span {
      display: block;
      line-height: 1;
      color: #ffffff;
      font-size: 1.428rem; }
      @media screen and (min-width: 641px) {
        .shop-title span {
          font-size: 1.428rem; } }
  .shop-text {
    margin: 0 0 28px 0;
    color: #ffffff;
    font-size: 1.142rem;
    margin: 0 auto 40px;
    width: 92%; }
    @media screen and (min-width: 641px) {
      .shop-text {
        font-size: 1.1rem;
        margin: 0 auto; } }
    @media screen and (min-width: 1080px) {
      .shop-text {
        font-size: 1.1rem;
        margin: 0 auto; } }
    .shop-text br {
      display: none; }
      @media screen and (min-width: 1400px) {
        .shop-text br {
          display: block; } }
  .shop .btn-more {
    margin: 0 auto; }

.recruit {
  background-color: #000;
  height: 318px; }
  @media screen and (min-width: 641px) {
    .recruit {
      width: 100%;
      height: auto;
      border-bottom: 1px solid #ffffff; } }
  .recruit-inner {
    position: relative;
    height: 440px; }
    @media screen and (min-width: 641px) {
      .recruit-inner {
        height: auto; } }
    .recruit-inner .bg-img-01, .recruit-inner .bg-img-02 {
      width: 100%; }
    .recruit-inner .bg-img-01 {
      display: none; }
      @media screen and (min-width: 900px) {
        .recruit-inner .bg-img-01 {
          display: block; } }
    .recruit-inner .bg-img-02 {
      display: block; }
      @media screen and (min-width: 900px) {
        .recruit-inner .bg-img-02 {
          display: none; } }
    .recruit-inner-link {
      width: 92%;
      height: auto;
      max-width: 1100px;
      margin: 0 auto;
      position: absolute;
      top: 37%;
      left: 50%;
      transform: translate(-50%, -50%); }
      @media screen and (min-width: 641px) {
        .recruit-inner-link {
          top: 50%; } }
      .recruit-inner-link .recruit-text {
        font-size: 2rem;
        text-align: center;
        color: #ffffff;
        padding: 0px 0 50px; }
        @media screen and (min-width: 641px) {
          .recruit-inner-link .recruit-text {
            font-size: 3rem;
            padding: 30px 0; } }
        @media screen and (min-width: 1000px) {
          .recruit-inner-link .recruit-text {
            font-size: 4rem;
            padding: 60px 0; } }
        @media screen and (min-width: 1350px) {
          .recruit-inner-link .recruit-text {
            padding: 120px 0; } }
        .recruit-inner-link .recruit-text span {
          color: #EB5505;
          font-weight: bold; }
      .recruit-inner-link a {
        margin: auto; }
      .recruit-inner-link .recruit-title {
        width: 100%;
        height: auto;
        text-align: center; }
        @media screen and (min-width: 641px) {
          .recruit-inner-link .recruit-title {
            margin: 0 0 40px 0; } }
        .recruit-inner-link .recruit-title img {
          margin: 0 0 20px 0;
          padding: 0 0 20px 0;
          border-bottom: 1px solid #ffffff; }
        .recruit-inner-link .recruit-title span {
          display: block;
          color: #ffffff;
          font-size: 1.142rem; }
