@charset "UTF-8";
/* reset styles */
* {
  margin: 0;
  padding: 0; }

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-family: "Noto Sans JP","Montserrat", "メイリオ", Meiryo, Verdana, Arial, Helvetica, "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", "Osaka", "MS P Gothic", "ＭＳ Ｐゴシック", "lroSVbN", sans-serif;
  font-style: normal;
  vertical-align: baseline;
  background-color: transparent; }

@media only screen and (min-width: 970px) {
  #contents {
    margin: 5.56vh calc(300px + 12.24vw) 11vw 12.24vw; } }
@media only screen and (max-width: 969px) {
  #contents {
    margin-top: 140px;
    margin-bottom: 150px; } }

/* 游ゴシックの場合 */
html,
body {
  font-weight: 400; }

input[type=text]:focus,
input[type=email]:focus,
input[type=tel]:focus,
input[type=search]:focus,
input[type=url]:focus,
textarea:focus {
  color: #003a6c;
  background-color: #d9f6ff; }

input:valid {
  background: #d9f6ff; }

input:invalid {
  background: #d9f6ff; }

img {
  vertical-align: middle;
  *line-height: 0;
  *vertical-align: baseline; }

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

nav ul,
ul,
ol {
  list-style: none; }

blockquote,
q {
  quotes: none; }

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

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

a {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  background: transparent; }

sup {
  vertical-align: top; }

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none; }

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold; }

del {
  text-decoration: line-through; }

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help; }

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 10px 0;
  padding: 0; }

table {
  border-spacing: 0;
  table-layout: fixed;
  border-collapse: collapse;
  empty-cells: show; }

input,
select {
  display: inline;
  vertical-align: middle;
  *vertical-align: baseline; }

picture img {
  display: block; }

picture {
  display: block; }

picture img {
  width: 100%; }

/* base styles */
html {
  /* 10px */
  font-size: 62.5%; }

@media only screen and (min-width: 970px) {
  .inner-header {
    margin-top: 120px;
    display: block; } }

body {
  background: #fff;
  /* 横スクロールバーの発生する幅を指定 */
  min-width: 1000px;
  padding: 0;
  margin: 0;
  color: #231815;
  font-family: "M PLUS Rounded 1c", "Noto Sans JP", "M PLUS 1p", "メイリオ", Meiryo, Verdana, Arial, Helvetica, "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", "Osaka", "MS P Gothic", "ＭＳ Ｐゴシック", "lroSVbN", sans-serif;
  font-size: 16px;
  text-align: left;
  line-height: 1.714285714;
  letter-spacing: 0.04em;
  word-wrap: break-word;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(232, 246, 229, 0.5);
  /* Chromeのremバグ対策 */ }
  body > header,
  body > footer,
  body > section,
  body > article,
  body > div {
    /* 14px */
    font-size: 16px; }
  @media only screen and (max-width: 969px) {
    body {
      /* 横スクロールバーの発生する幅を指定 */
      min-width: 320px;
      font-size: 16px;
      /* Chromeのremバグ対策 */ }
      body > header,
      body > footer,
      body > section,
      body > article,
      body > div {
        /* 14px */
        font-size: 16px; } }

.display--ib {
  display: inline-block; }

/* a */
a {
  color: #333;
  text-decoration: none; }
  a img {
    transition: opacity 0.2s linear 0s;
    cursor: pointer; }
  a:hover img {
    background-color: transparent;
    opacity: 0.7;
    filter: alpha(opacity=70); }

/* margin paddingのクラス（5~100px） */
.pT5 {
  padding-top: 5px !important; }

.pR5 {
  padding-right: 5px !important; }

.pB5 {
  padding-bottom: 5px !important; }

.pL5 {
  padding-left: 5px !important; }

.mT5 {
  margin-top: 5px !important; }

.mR5 {
  margin-right: 5px !important; }

.mB5 {
  margin-bottom: 5px !important; }

.mL5 {
  margin-left: 5px !important; }

.pT10 {
  padding-top: 10px !important; }

.pR10 {
  padding-right: 10px !important; }

.pB10 {
  padding-bottom: 10px !important; }

.pL10 {
  padding-left: 10px !important; }

.mT10 {
  margin-top: 10px !important; }

.mR10 {
  margin-right: 10px !important; }

.mB10 {
  margin-bottom: 10px !important; }

.mL10 {
  margin-left: 10px !important; }

.pT15 {
  padding-top: 15px !important; }

.pR15 {
  padding-right: 15px !important; }

.pB15 {
  padding-bottom: 15px !important; }

.pL15 {
  padding-left: 15px !important; }

.mT15 {
  margin-top: 15px !important; }

.mR15 {
  margin-right: 15px !important; }

.mB15 {
  margin-bottom: 15px !important; }

.mL15 {
  margin-left: 15px !important; }

.pT20 {
  padding-top: 20px !important; }

.pR20 {
  padding-right: 20px !important; }

.pB20 {
  padding-bottom: 20px !important; }

.pL20 {
  padding-left: 20px !important; }

.mT20 {
  margin-top: 20px !important; }

.mR20 {
  margin-right: 20px !important; }

.mB20 {
  margin-bottom: 20px !important; }

.mL20 {
  margin-left: 20px !important; }

.pT25 {
  padding-top: 25px !important; }

.pR25 {
  padding-right: 25px !important; }

.pB25 {
  padding-bottom: 25px !important; }

.pL25 {
  padding-left: 25px !important; }

.mT25 {
  margin-top: 25px !important; }

.mR25 {
  margin-right: 25px !important; }

.mB25 {
  margin-bottom: 25px !important; }

.mL25 {
  margin-left: 25px !important; }

.pT30 {
  padding-top: 30px !important; }

.pR30 {
  padding-right: 30px !important; }

.pB30 {
  padding-bottom: 30px !important; }

.pL30 {
  padding-left: 30px !important; }

.mT30 {
  margin-top: 30px !important; }

.mR30 {
  margin-right: 30px !important; }

.mB30 {
  margin-bottom: 30px !important; }

.mL30 {
  margin-left: 30px !important; }

.pT35 {
  padding-top: 35px !important; }

.pR35 {
  padding-right: 35px !important; }

.pB35 {
  padding-bottom: 35px !important; }

.pL35 {
  padding-left: 35px !important; }

.mT35 {
  margin-top: 35px !important; }

.mR35 {
  margin-right: 35px !important; }

.mB35 {
  margin-bottom: 35px !important; }

.mL35 {
  margin-left: 35px !important; }

.pT40 {
  padding-top: 40px !important; }

.pR40 {
  padding-right: 40px !important; }

.pB40 {
  padding-bottom: 40px !important; }

.pL40 {
  padding-left: 40px !important; }

.mT40 {
  margin-top: 40px !important; }

.mR40 {
  margin-right: 40px !important; }

.mB40 {
  margin-bottom: 40px !important; }

.mL40 {
  margin-left: 40px !important; }

.pT45 {
  padding-top: 45px !important; }

.pR45 {
  padding-right: 45px !important; }

.pB45 {
  padding-bottom: 45px !important; }

.pL45 {
  padding-left: 45px !important; }

.mT45 {
  margin-top: 45px !important; }

.mR45 {
  margin-right: 45px !important; }

.mB45 {
  margin-bottom: 45px !important; }

.mL45 {
  margin-left: 45px !important; }

.pT50 {
  padding-top: 50px !important; }

.pR50 {
  padding-right: 50px !important; }

.pB50 {
  padding-bottom: 50px !important; }

.pL50 {
  padding-left: 50px !important; }

.mT50 {
  margin-top: 50px !important; }

.mR50 {
  margin-right: 50px !important; }

.mB50 {
  margin-bottom: 50px !important; }

.mL50 {
  margin-left: 50px !important; }

.pT55 {
  padding-top: 55px !important; }

.pR55 {
  padding-right: 55px !important; }

.pB55 {
  padding-bottom: 55px !important; }

.pL55 {
  padding-left: 55px !important; }

.mT55 {
  margin-top: 55px !important; }

.mR55 {
  margin-right: 55px !important; }

.mB55 {
  margin-bottom: 55px !important; }

.mL55 {
  margin-left: 55px !important; }

.pT60 {
  padding-top: 60px !important; }

.pR60 {
  padding-right: 60px !important; }

.pB60 {
  padding-bottom: 60px !important; }

.pL60 {
  padding-left: 60px !important; }

.mT60 {
  margin-top: 60px !important; }

.mR60 {
  margin-right: 60px !important; }

.mB60 {
  margin-bottom: 60px !important; }

.mL60 {
  margin-left: 60px !important; }

.pT65 {
  padding-top: 65px !important; }

.pR65 {
  padding-right: 65px !important; }

.pB65 {
  padding-bottom: 65px !important; }

.pL65 {
  padding-left: 65px !important; }

.mT65 {
  margin-top: 65px !important; }

.mR65 {
  margin-right: 65px !important; }

.mB65 {
  margin-bottom: 65px !important; }

.mL65 {
  margin-left: 65px !important; }

.pT70 {
  padding-top: 70px !important; }

.pR70 {
  padding-right: 70px !important; }

.pB70 {
  padding-bottom: 70px !important; }

.pL70 {
  padding-left: 70px !important; }

.mT70 {
  margin-top: 70px !important; }

.mR70 {
  margin-right: 70px !important; }

.mB70 {
  margin-bottom: 70px !important; }

.mL70 {
  margin-left: 70px !important; }

.pT75 {
  padding-top: 75px !important; }

.pR75 {
  padding-right: 75px !important; }

.pB75 {
  padding-bottom: 75px !important; }

.pL75 {
  padding-left: 75px !important; }

.mT75 {
  margin-top: 75px !important; }

.mR75 {
  margin-right: 75px !important; }

.mB75 {
  margin-bottom: 75px !important; }

.mL75 {
  margin-left: 75px !important; }

.pT80 {
  padding-top: 80px !important; }

.pR80 {
  padding-right: 80px !important; }

.pB80 {
  padding-bottom: 80px !important; }

.pL80 {
  padding-left: 80px !important; }

.mT80 {
  margin-top: 80px !important; }

.mR80 {
  margin-right: 80px !important; }

.mB80 {
  margin-bottom: 80px !important; }

.mL80 {
  margin-left: 80px !important; }

.pT85 {
  padding-top: 85px !important; }

.pR85 {
  padding-right: 85px !important; }

.pB85 {
  padding-bottom: 85px !important; }

.pL85 {
  padding-left: 85px !important; }

.mT85 {
  margin-top: 85px !important; }

.mR85 {
  margin-right: 85px !important; }

.mB85 {
  margin-bottom: 85px !important; }

.mL85 {
  margin-left: 85px !important; }

.pT90 {
  padding-top: 90px !important; }

.pR90 {
  padding-right: 90px !important; }

.pB90 {
  padding-bottom: 90px !important; }

.pL90 {
  padding-left: 90px !important; }

.mT90 {
  margin-top: 90px !important; }

.mR90 {
  margin-right: 90px !important; }

.mB90 {
  margin-bottom: 90px !important; }

.mL90 {
  margin-left: 90px !important; }

.pT95 {
  padding-top: 95px !important; }

.pR95 {
  padding-right: 95px !important; }

.pB95 {
  padding-bottom: 95px !important; }

.pL95 {
  padding-left: 95px !important; }

.mT95 {
  margin-top: 95px !important; }

.mR95 {
  margin-right: 95px !important; }

.mB95 {
  margin-bottom: 95px !important; }

.mL95 {
  margin-left: 95px !important; }

.pT100 {
  padding-top: 100px !important; }

.pR100 {
  padding-right: 100px !important; }

.pB100 {
  padding-bottom: 100px !important; }

.pL100 {
  padding-left: 100px !important; }

.mT100 {
  margin-top: 100px !important; }

.mR100 {
  margin-right: 100px !important; }

.mB100 {
  margin-bottom: 100px !important; }

.mL100 {
  margin-left: 100px !important; }

/* テキスト色（任意で追加・削除） */
.txtRed {
  color: #f40000 !important; }

/* テキスト書式（任意で追加・削除） */
.txt_c {
  text-align: center; }

.txt_r {
  text-align: right; }

.txt_ind {
  text-indent: -1.04em;
  padding-left: 1.04em; }

.txt_b {
  font-weight: bold; }

/* float */
.c_b {
  clear: both; }

.r {
  float: right; }

.l {
  float: left; }

/* clearfix */
.cf:after,
.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  font-size: 0.1px;
  line-height: 0;
  overflow: hidden;
  visibility: hidden; }

.cf,
.clearfix {
  display: inline-block; }

/* Hides from IE-mac \*/
* html .cf,
* html .clearfix {
  height: 1%;
  overflow: visible; }

.cf,
.clearfix {
  display: block; }

.cf:after {
  content: "";
  display: block;
  clear: both; }

/* flexbox */
.flex {
  display: flex;
  flex-flow: row wrap; }
  .flex.row_rev {
    flex-direction: row-reverse; }
  .flex.col {
    flex-direction: column; }
  .flex.col_rev {
    flex-direction: column-reverse; }

/* form（任意で編集） */
input {
  font-family: "Noto Sans JP", "M PLUS 1p", "メイリオ", Meiryo, Verdana, Arial, Helvetica, "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", "Osaka", "MS P Gothic", "ＭＳ Ｐゴシック", "lroSVbN", sans-serif; }
  input[type="image"], input[type="submit"], input[type="button"] {
    transition: opacity 0.2s linear 0s;
    cursor: pointer; }
  input[type="text"], input[type="tel"], input[type="email"], input[type="number"], input[type="password"], input[type="url"] {
    height: 25px;
    line-height: 25px;
    box-sizing: border-box; }
    @media only screen and (max-width: 969px) {
      input[type="text"], input[type="tel"], input[type="email"], input[type="number"], input[type="password"], input[type="url"] {
        font-size: 16px;
        font-size: 1.6rem; } }
  @media only screen and (max-width: 969px) {
    input[type="submit"] {
      font-size: 16px;
      font-size: 1.6rem; } }
  input[type="number"] {
    text-align: right; }
    @media only screen and (max-width: 969px) {
      input[type="number"] {
        font-size: 16px;
        font-size: 1.6rem; } }

select {
  height: 25px;
  font-family: "Noto Sans JP", "M PLUS 1p", "メイリオ", Meiryo, Verdana, Arial, Helvetica, "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", "Osaka", "MS P Gothic", "ＭＳ Ｐゴシック", "lroSVbN", sans-serif;
  line-height: 25px;
  box-sizing: border-box; }
  @media only screen and (max-width: 969px) {
    select {
      font-size: 16px;
      font-size: 1.6rem; } }

textarea {
  box-sizing: border-box;
  font-family: "Noto Sans JP", "M PLUS 1p", "メイリオ", Meiryo, Verdana, Arial, Helvetica, "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", "Osaka", "MS P Gothic", "ＭＳ Ｐゴシック", "lroSVbN", sans-serif;
  ime-mode: active; }
  @media only screen and (max-width: 969px) {
    textarea {
      font-size: 16px;
      font-size: 1.6rem; } }

.ime_a {
  ime-mode: active; }

.ime_i {
  ime-mode: inactive; }

.ime_d {
  ime-mode: disabled; }

/* プルダウンメニュー（必要の応じて追記） */
.pulldown {
  position: relative; }
  .pulldown ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0; }

/* アコーディオンメニュー（必要の応じて追記） */
.accordion_close,
.accordion_open {
  cursor: pointer; }
  .accordion_close[data-device="sp"],
  .accordion_open[data-device="sp"] {
    cursor: default; }
    @media only screen and (max-width: 969px) {
      .accordion_close[data-device="sp"],
      .accordion_open[data-device="sp"] {
        cursor: pointer; } }

.accordion_close:not([data-device="sp"]) + * {
  display: none; }

@media only screen and (max-width: 969px) {
  .accordion_close[data-device="sp"] + * {
    display: none; } }

@media only screen and (max-width: 969px) {
  .sp-accordion--close,
  .sp-accordion--open {
    cursor: pointer; } }
@keyframes fade-in {
  0% {
    transform: translate(0, 50px);
    opacity: 0; }
  100% {
    transform: translate(0, 0);
    opacity: 1; } }
@keyframes fade-in-left {
  0% {
    transform: translateX(-50px);
    opacity: 0; }
  100% {
    transform: translateX(0);
    opacity: 1; } }
@keyframes fade-in-left2 {
  0% {
    transform: translateX(-50px) skewY(-2deg);
    opacity: 0; }
  100% {
    transform: translateX(0) skewY(-2deg);
    opacity: 1; } }
@keyframes fade-in-right {
  0% {
    transform: translateX(50px);
    opacity: 0; }
  100% {
    transform: translateX(0);
    opacity: 1; } }
@keyframes fade-in-right2 {
  0% {
    transform: translateX(50px) skewY(-2deg);
    opacity: 0; }
  100% {
    transform: translateX(0) skewY(-2deg);
    opacity: 1; } }
@keyframes recruit-in1 {
  0% {
    transform: scale(0);
    opacity: 0; }
  100% {
    transform: scale(1);
    opacity: 1; } }
@keyframes recruit-pop {
  0% {
    transform: scale(0); }
  50% {
    transform: scale(1.5); }
  100% {
    transform: scale(1); } }
@keyframes recruit-pop2 {
  0% {
    transform: scale(0); }
  50% {
    transform: scale(2); }
  100% {
    transform: scale(1); } }
[data-effect="fade"] {
  transform: translate(0, 50px);
  opacity: 0; }

[data-effect="fade-left"],
[data-effect="fade-right"],
[data-effect="fade-left2"],
[data-effect="fade-right2"] {
  opacity: 0; }

[data-effect="recruit-in1"] {
  opacity: 0; }

[data-effect="fade"].fade {
  animation: fade-in 1s ease 0.3s forwards; }

[data-effect="fade-left"].fade-left {
  animation-name: fade-in-left;
  animation-duration: 1s;
  animation-timing-function: ease-out; }

[data-effect="fade-right"].fade-right {
  animation-name: fade-in-right;
  animation-duration: 1s;
  animation-timing-function: ease-out; }

[data-effect="fade-left2"].fade-left2 {
  animation-name: fade-in-left2;
  animation-duration: 1s;
  animation-timing-function: ease-out; }

[data-effect="fade-right2"].fade-right2 {
  animation-name: fade-in-right2;
  animation-duration: 1s;
  animation-timing-function: ease-out; }

[data-effect="recruit-in1"].recruit-in1 {
  animation: recruit-in1 0.25s ease 0.15s forwards; }

[data-effect="inview-center"] {
  position: relative;
  overflow: hidden; }
  [data-effect="inview-center"]:before {
    content: "";
    width: 60%;
    height: 100%;
    position: absolute;
    background-color: #fff;
    transform: scale(1, 1);
    left: 0;
    transition: -webkit-transform 1s ease-in;
    transition: transform 1s ease-in;
    transition: transform 1s ease-in, -webkit-transform 1s ease-in;
    transform-origin: left top;
    top: 0;
    z-index: 2; }
  [data-effect="inview-center"]:after {
    content: "";
    width: 60%;
    height: 100%;
    position: absolute;
    background-color: #fff;
    transform: scale(1, 1);
    right: 0;
    transition: -webkit-transform 1s ease-in;
    transition: transform 1s ease-in;
    transition: transform 1s ease-in, -webkit-transform 1s ease-in;
    transform-origin: right top;
    top: 0;
    z-index: 2; }
  [data-effect="inview-center"].inview-center:before {
    transform: scale(0, 1); }
  [data-effect="inview-center"].inview-center:after {
    transform: scale(0, 1); }

[data-effect="inview-left"] {
  position: relative;
  overflow: hidden; }
  [data-effect="inview-left"]:after {
    content: "";
    width: 102%;
    height: 102%;
    position: absolute;
    background-color: #fff;
    transform: scale(1, 1);
    right: 0;
    transition: -webkit-transform 1s ease-in;
    transition: transform 1s ease-in;
    transition: transform 1s ease-in, -webkit-transform 1s ease-in;
    transform-origin: right top;
    top: -1%; }
  [data-effect="inview-left"].inview-left:after {
    transform: scale(0, 1); }

[data-effect="inview-recruitleft"] {
  position: relative;
  overflow: hidden; }
  [data-effect="inview-recruitleft"]:after {
    content: "";
    width: 102%;
    height: 102%;
    position: absolute;
    background-color: #fff;
    transform: scale(1, 1);
    right: 0;
    transition: -webkit-transform 0.3s ease-in;
    transition: transform 0.3s ease-in;
    transition: transform 0.3s ease-in, -webkit-transform 0.3s ease-in;
    transform-origin: right top;
    top: -1%; }
  [data-effect="inview-recruitleft"].inview-recruitleft:after {
    transform: scale(0, 1); }

[data-effect="inview-right"] {
  position: relative;
  overflow: hidden; }
  [data-effect="inview-right"]:after {
    content: "";
    width: 102%;
    height: 102%;
    position: absolute;
    background-color: #fff;
    transform: scale(1, 1);
    right: 0;
    transition: -webkit-transform 1s ease-in;
    transition: transform 1s ease-in;
    transition: transform 1s ease-in, -webkit-transform 1s ease-in;
    transform-origin: left top;
    top: -1%; }
  [data-effect="inview-right"].inview-right:after {
    transform: scale(0, 1); }

[data-effect="inview-recruitright"] {
  position: relative;
  overflow: hidden; }
  [data-effect="inview-recruitright"]:after {
    content: "";
    width: 102%;
    height: 102%;
    position: absolute;
    background-color: #fff;
    transform: scale(1, 1);
    right: 0;
    transition: -webkit-transform 0.3s ease-in;
    transition: transform 0.3s ease-in;
    transition: transform 0.3s ease-in, -webkit-transform 0.3s ease-in;
    transform-origin: left top;
    top: -1%; }
  [data-effect="inview-recruitright"].inview-recruitright:after {
    transform: scale(0, 1); }

.fade-left {
  transform: translateX(0);
  opacity: 1; }

.fade-right {
  transform: translateX(0);
  opacity: 1; }

.fade-left2 {
  transform: translateX(0) skewY(-2deg);
  opacity: 1; }

.fade-right2 {
  transform: translateX(0) skewY(-2deg);
  opacity: 1; }

/* レスポンシブ対応（必要の応じて追記） */
.pc {
  display: block; }
  @media only screen and (max-width: 969px) {
    .pc {
      display: none; } }

.sp {
  display: none; }
  @media only screen and (max-width: 969px) {
    .sp {
      display: block; } }

@media only screen and (max-width: 969px) {
  .line--sp {
    display: inline-block; } }

@media only screen and (min-width: 970px) {
  .nowrap--pc {
    white-space: nowrap; } }

@media only screen and (max-width: 969px) {
  .nowrap--sp {
    white-space: nowrap; } }

@media only screen and (max-width: 969px) {
  img {
    width: 100%;
    max-width: auto;
    max-width: initial;
    height: auto; } }

[data-effect_fade] {
  opacity: 0;
  transform: translateY(20px);
  transition: all 1s; }

@media only screen and (max-width: 969px) {
  .header.opened {
    height: 100svh; }
    .header.opened .header-concepttext {
      display: none; } }

.header {
  width: 300px;
  height: 100svh;
  background: #fff;
  position: fixed;
  padding: 55px 45px 0;
  box-sizing: border-box;
  top: 0;
  right: 0;
  z-index: 9000;
  overflow: auto; }
  @media (max-width: 1440px) {
    .header {
      width: 20.62vw;
      padding: 55px 2.34vw 0; } }
  @media only screen and (max-width: 969px) {
    .header {
      width: 100%;
      height: 145px;
      padding: 30px 9.25% 35px 9.25%;
      box-sizing: border-box;
      z-index: 2000;
      background: #fff;
      display: flex;
      flex-wrap: wrap;
      align-items: center; } }
  .header-main {
    width: 100%;
    margin: 0 auto 70px;
    display: block; }
    @media only screen and (max-width: 969px) {
      .header-main {
        max-width: inherit;
        min-width: inherit;
        flex: 0 1 auto;
        order: 2;
        margin: 0;
        display: flex;
        align-items: center; } }
    .header-main__logo {
      display: block;
      margin: 0 auto; }
      @media only screen and (max-width: 969px) {
        .header-main__logo {
          line-height: 1;
          width: 100%; } }
      .header-main__logo a {
        width: 90%;
        display: block;
        vertical-align: middle;
        align-items: center;
        line-height: 1;
        display: inline-block; }
        .header-main__logo a picture {
          width: 100%; }
          @media only screen and (max-width: 969px) {
            .header-main__logo a picture {
              width: 140px; } }
          .header-main__logo a picture img {
            width: 100%; }
  .header-concepttext {
    color: #FF6321;
    font-size: 18.5px;
    font-size: 1.85rem;
    font-weight: 500;
    line-height: 2.8;
    letter-spacing: 0.4em;
    margin-bottom: 60px; }
    @media (min-width: 969px) {
      .header-concepttext {
        font-size: calc(12.5px + ((1vw - 9.69px) * 1.17)); } }
    @media (min-width: 1440px) {
      .header-concepttext {
        font-size: 18.5px; } }
    @media only screen and (max-width: 969px) {
      .header-concepttext {
        display: inline-block;
        order: 1;
        flex: 0 1 100%;
        font-size: 11px;
        font-size: 1.1rem;
        line-height: 1;
        margin-bottom: -10px;
        display: flex;
        align-items: center; } }
  .header-pcnav {
    margin: 0 auto 75px; }
    @media only screen and (max-width: 969px) {
      .header-pcnav {
        display: none; } }
    .header-pcnav-list {
      width: 100%; }
      .header-pcnav-list__item {
        width: 100%; }
        .header-pcnav-list__item:not(:last-child) {
          margin-bottom: 35px; }
          @media (max-width: 1440px) {
            .header-pcnav-list__item:not(:last-child) {
              margin-bottom: 3.09vw; } }
        .header-pcnav-list__item a {
          width: 100%;
          color: #FF6321;
          font-size: 15px;
          font-size: 1.5rem;
          font-weight: 500;
          font-family: "Montserrat", sans-serif;
          letter-spacing: 0.14em; }
          @media (min-width: 969px) {
            .header-pcnav-list__item a {
              font-size: calc(11.5px + ((1vw - 9.69px) * 0.744)); } }
          @media (min-width: 1440px) {
            .header-pcnav-list__item a {
              font-size: 15px; } }
          .header-pcnav-list__item a span {
            font-family: "Noto Sans JP", "メイリオ", Meiryo, Verdana, Arial, Helvetica, "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", "Osaka", "MS P Gothic", "ＭＳ Ｐゴシック", "lroSVbN", sans-serif; }
        .header-pcnav-list__item .current {
          border-bottom: 2px solid #FF6321;
          padding-bottom: 5px; }
      .header-pcnav-list .header-link-company {
        margin-right: 1.3vw; }
      .header-pcnav-list .header-iconlink {
        display: block;
        flex: 0 1 90px;
        margin-left: 5px; }
  .header-copy {
    width: 100%;
    text-align: left;
    display: block;
    margin-top: 13vh;
    margin: 0 auto 30px; }
    @media only screen and (max-width: 969px) {
      .header-copy {
        display: none; } }
    .header-copy small {
      display: block;
      color: #FF6321;
      font-size: 10.5px;
      font-size: 1.05rem;
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.08em;
      font-family: "Montserrat", sans-serif; }
  @media only screen and (min-width: 970px) {
    .header-button {
      display: none; } }
  @media only screen and (max-width: 969px) {
    .header-button {
      flex: 0 1 60px;
      display: block;
      position: fixed;
      right: 9.25%;
      top: 30px;
      z-index: 9000; }
      .header-button__clickable {
        transition: all 0.4s;
        display: block;
        width: 60px;
        margin-left: auto;
        z-index: 9000; }
        .header-button__clickable p {
          color: #FF6321;
          text-align: center;
          font-size: 10px;
          font-size: 1rem;
          letter-spacing: 0.24em;
          font-family: "Montserrat", sans-serif;
          font-weight: bold; }
        .header-button__clickable .opentext {
          display: none;
          color: #fff; }
        .header-button__clickable .btnmain {
          width: 60px;
          height: 60px;
          background: #FF6321;
          border-radius: 100%;
          position: relative; }
      .header-button .opened .opentext {
        display: block; }
      .header-button .opened .closetext {
        display: none; }
      .header-button .opened .btnmain span {
        display: inline-block;
        transition: all 1s;
        box-sizing: border-box;
        background: #fff;
        margin: auto;
        position: absolute;
        left: 50%;
        height: 1px; }
        .header-button .opened .btnmain span:nth-of-type(1) {
          transform: translateX(-50%) translateY(9px) rotate(-315deg);
          width: 100%;
          top: 20px; }
        .header-button .opened .btnmain span:nth-of-type(2) {
          transform: translateX(-50%) translateY(-10px) rotate(315deg);
          width: 100%;
          bottom: 20px; } }
  @media only screen and (min-width: 970px) {
    .header-spnav {
      display: none; } }
  @media only screen and (max-width: 969px) {
    .header-spnav {
      width: 100%;
      height: 100%;
      margin-right: 0;
      top: 0;
      padding: 30px 10% 40px;
      box-sizing: border-box;
      position: fixed;
      background: #FF6321;
      right: 0;
      z-index: 0;
      opacity: 0;
      display: none; }
      .header-spnav-logo img {
        width: 100%; }
      .header-spnav-logo__text {
        color: #fff;
        font-size: 12px;
        font-size: 1.2rem;
        font-weight: 500;
        line-height: 1;
        margin-bottom: 10px;
        letter-spacing: 0.4em; }
      .header-spnav-logo a {
        width: 38.86vw;
        display: block;
        max-width: 140px; }
      .header-spnav-list {
        margin: 24vw auto 0; }
        .header-spnav-list__item {
          width: 80%;
          margin: 0 auto 60px; }
          .header-spnav-list__item:nth-of-type(1) {
            animation: textFadeIn 3.5s cubic-bezier(0.25, 1, 0.5, 1) forwards; }
          .header-spnav-list__item:nth-of-type(2) {
            animation: textFadeIn 4s cubic-bezier(0.25, 1, 0.5, 1) forwards; }
          .header-spnav-list__item:nth-of-type(3) {
            animation: textFadeIn 4.5s cubic-bezier(0.25, 1, 0.5, 1) forwards; }
          .header-spnav-list__item:nth-of-type(4) {
            animation: textFadeIn 5s cubic-bezier(0.25, 1, 0.5, 1) forwards; }
          .header-spnav-list__item:nth-of-type(5) {
            animation: textFadeIn 5.5s cubic-bezier(0.25, 1, 0.5, 1) forwards; }
          .header-spnav-list__item:last-child {
            margin-bottom: 0; }
          .header-spnav-list__item a {
            text-align: center;
            display: block;
            color: #fff;
            font-size: 19px;
            font-size: 1.9rem;
            font-family: "Montserrat", sans-serif;
            font-weight: 500;
            letter-spacing: 0.18em; }
      .header-spnav .header-copy {
        display: block;
        margin: 0 auto;
        position: absolute;
        bottom: 50px;
        left: 50%;
        transform: translate(-50%); }
        .header-spnav .header-copy small {
          color: #fff;
          text-align: center;
          font-size: 13px;
          font-size: 1.3rem; } }
  .header .active {
    display: block;
    z-index: 4000;
    height: 100%;
    animation: zoomIn 1.8s cubic-bezier(0.25, 1, 0.5, 1) forwards; }

.header.opened .header-main {
  display: none; }
.header.opened .openedanime {
  overflow: hidden;
  width: 100%;
  height: 100%;
  position: relative; }
  .header.opened .openedanime:before {
    content: "";
    position: absolute;
    width: 60px;
    height: 60px;
    background: #FF6321;
    right: 9.25%;
    top: 30px;
    transform: translateY(-50%);
    position: fixed;
    animation: ButtonIn 4.5s cubic-bezier(0.15, 0.49, 0.75, 0.48) forwards; }
    @media (min-width: 768px) {
      .header.opened .openedanime:before {
        animation: ButtonIn 3s cubic-bezier(0.15, 0.49, 0.75, 0.48) forwards; } }
    @media (min-width: 912px) {
      .header.opened .openedanime:before {
        animation: ButtonIn 1.5s cubic-bezier(0.15, 0.49, 0.75, 0.48) forwards; } }

/*Animation*/
@keyframes ButtonIn {
  0% {
    width: 60px;
    height: 60px;
    border-radius: 1200px;
    right: 9.25%;
    top: 30px;
    left: inherit; }
  95% {
    right: -600px;
    transform: translateY(0);
    width: 4000px;
    height: 4000px; }
  100% {
    top: 0;
    right: 0;
    transform: translateY(0);
    width: 100svw;
    height: 100svh;
    border-radius: 0; } }
@keyframes zoomIn {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes zoomOut {
  0% {
    opacity: 1;
    transform: scale(1); }
  100% {
    transform: scale(0.8);
    opacity: 0;
    display: none; } }
@keyframes textFadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
.contact {
  padding-top: 13.89vh; }
  @media only screen and (max-width: 969px) {
    .contact {
      padding: 55px 10% 0;
      box-sizing: border-box; } }
  .contact-top {
    margin-bottom: 13.89vh; }
    @media only screen and (max-width: 969px) {
      .contact-top {
        margin-bottom: 75px; } }
    .contact-top p {
      color: #FF6321;
      font-size: 35px;
      font-size: 3.5rem;
      font-weight: 500;
      line-height: 2.5;
      letter-spacing: 0.46em; }
      @media only screen and (max-width: 969px) {
        .contact-top p {
          font-size: 18px;
          font-size: 1.8rem;
          padding-left: 7svw;
          text-align: center; } }
  .contact-detail {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap; }
    .contact-detail-block {
      flex: 0 1 auto;
      color: #FF6321;
      font-weight: 500;
      margin-right: 7.81vw; }
      @media only screen and (max-width: 969px) {
        .contact-detail-block {
          flex: 0 1 80%;
          margin: auto;
          order: 2; } }
      .contact-detail-block-logo {
        width: 19.79vw;
        margin-bottom: 0.93vh; }
        @media only screen and (max-width: 969px) {
          .contact-detail-block-logo {
            width: 100%;
            margin-bottom: 5px; } }
        .contact-detail-block-logo img {
          width: 100%; }
      .contact-detail-block-logotext {
        font-size: 15px;
        font-size: 1.5rem;
        letter-spacing: 0.38em;
        margin-bottom: 2.78vh; }
        @media only screen and (max-width: 969px) {
          .contact-detail-block-logotext {
            font-size: 10px;
            font-size: 1rem;
            margin-bottom: 15px; } }
      .contact-detail-block-mail {
        font-size: 25px;
        font-size: 2.5rem;
        letter-spacing: 0.1em;
        margin-bottom: 2.78vh; }
        @media only screen and (max-width: 969px) {
          .contact-detail-block-mail {
            font-size: 14px;
            font-size: 1.4rem; } }
      .contact-detail-block address {
        font-size: 19px;
        font-size: 1.9rem;
        letter-spacing: 0.18em;
        line-height: 1.8; }
        @media only screen and (max-width: 969px) {
          .contact-detail-block address {
            font-size: 12px;
            font-size: 1.2rem; } }
    .contact-detail-img {
      flex: 0 1 13.28vw; }
      @media only screen and (max-width: 969px) {
        .contact-detail-img {
          order: 1;
          flex: 0 1 50%;
          margin: 0 auto 60px; } }
      .contact-detail-img img {
        width: 100%; }
  .contact-btn {
    width: 13.8vw;
    min-width: 220px;
    margin: 25px auto 0;
    position: relative;
    display: block; }
    @media only screen and (max-width: 969px) {
      .contact-btn {
        width: 100%;
        background: #ffc435;
        margin: 20px auto 0;
        border-radius: 10px; } }
    .contact-btn input {
      display: block;
      padding: 0.78vw 0;
      text-align: center;
      box-sizing: border-box;
      font-size: 16px;
      font-size: 1.6rem;
      letter-spacing: 0.08em;
      border: none;
      width: 100%;
      cursor: pointer;
      background: #FF6321;
      border-radius: 10px;
      -webkit-appearance: none; }
      @media only screen and (max-width: 969px) {
        .contact-btn input {
          font-size: 16px;
          font-size: 1.6rem;
          padding: 13px 0; } }
    .contact-btn button {
      display: block;
      padding: 1.3vw 0;
      text-align: center;
      box-sizing: border-box;
      color: #fff;
      font-size: 24px;
      font-size: 2.4rem;
      letter-spacing: 0.08em;
      background: none;
      border: none;
      width: 100%;
      cursor: pointer; }
      @media only screen and (max-width: 969px) {
        .contact-btn button {
          font-size: 16px;
          font-size: 1.6rem;
          padding: 13px 0; } }
    .contact-btn a {
      position: relative;
      display: block;
      padding: 0.94vw 0;
      box-sizing: border-box;
      width: 100%;
      background: #FF6321;
      font-size: 16px;
      font-size: 1.6rem;
      font-weight: bold;
      color: #fff;
      text-align: center;
      border-radius: 100px; }
      @media only screen and (max-width: 969px) {
        .contact-btn a {
          font-size: 16px;
          font-size: 1.6rem;
          padding: 13px 0; } }
      .contact-btn a:before {
        content: "";
        position: absolute;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 6px 8px 6px 0;
        border-color: transparent #ffffff transparent transparent;
        top: 50%;
        left: 1.04vw;
        transform: translateY(-50%); }
  .contact-btnlist {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 30.57vw;
    margin: 0 auto; }
    @media only screen and (max-width: 969px) {
      .contact-btnlist {
        width: 100%;
        margin: 0 auto;
        flex-direction: column-reverse; } }
    .contact-btnlist-back {
      flex: 0 1 13.8vw;
      background: #eee;
      border-radius: 10px; }
      @media only screen and (max-width: 969px) {
        .contact-btnlist-back {
          flex: 0 1 100%; } }
      .contact-btnlist-back input {
        background: none;
        border: none;
        font-size: 16px;
        font-size: 1.6rem;
        text-align: center;
        padding: 15px 0;
        box-sizing: border-box;
        letter-spacing: 0.08em;
        display: block;
        width: 100%; }
    .contact-btnlist-btn {
      flex: 0 1 13.8vw;
      background: #FF6321;
      border-radius: 10px; }
      @media only screen and (max-width: 969px) {
        .contact-btnlist-btn {
          flex: 0 1 100%;
          order: 1;
          margin-bottom: 10px; } }
      .contact-btnlist-btn button {
        background: none;
        border: none;
        font-size: 16px;
        font-size: 1.6rem;
        text-align: center;
        padding: 15px 0;
        box-sizing: border-box;
        letter-spacing: 0.08em;
        display: block;
        width: 100%;
        cursor: pointer; }
  .contact-container {
    background: #f2f2f2;
    padding-bottom: 50px;
    box-sizing: border-box; }
    .contact-container .contact-confirm-block {
      width: 62.5vw;
      margin: 0 auto;
      min-width: 700px;
      background: #fff;
      box-shadow: 3px 3px 5px #ccc;
      border-radius: 5px;
      margin: 0 auto;
      padding: 4.17vw 4.69vw;
      box-sizing: border-box; }
      @media only screen and (max-width: 969px) {
        .contact-container .contact-confirm-block {
          width: 86.667%;
          min-width: inherit;
          margin: 0 auto;
          padding: 0; } }
      @media only screen and (max-width: 969px) {
        .contact-container .contact-confirm-block form {
          padding: 30px 15px 20px;
          box-sizing: border-box; } }
      .contact-container .contact-confirm-block .formTable {
        width: 90%;
        margin: 0 auto 1.56vw; }
        @media only screen and (max-width: 969px) {
          .contact-container .contact-confirm-block .formTable {
            width: 100%;
            margin-bottom: 25px; } }
        .contact-container .contact-confirm-block .formTable tr {
          display: block;
          border-bottom: 1px solid #ccc;
          padding: 1.3vw 0;
          box-sizing: border-box; }
          @media only screen and (max-width: 969px) {
            .contact-container .contact-confirm-block .formTable tr {
              padding: 20px 0; } }
          @media only screen and (max-width: 969px) {
            .contact-container .contact-confirm-block .formTable tr:first-child {
              padding-top: 0; } }
          .contact-container .contact-confirm-block .formTable tr th {
            width: 12.5vw;
            padding-left: 1.56vw;
            box-sizing: border-box;
            vertical-align: middle;
            font-family: "Noto Sans JP", "メイリオ", Meiryo, Verdana, Arial, Helvetica, "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", "Osaka", "MS P Gothic", "ＭＳ Ｐゴシック", "lroSVbN", sans-serif; }
            @media only screen and (max-width: 969px) {
              .contact-container .contact-confirm-block .formTable tr th {
                width: 100%;
                display: block;
                padding-left: 0; } }
          .contact-container .contact-confirm-block .formTable tr td {
            font-family: "Noto Sans JP", "メイリオ", Meiryo, Verdana, Arial, Helvetica, "Hiragino Kaku Gothic Pro W3", "ヒラギノ角ゴ Pro W3", "Osaka", "MS P Gothic", "ＭＳ Ｐゴシック", "lroSVbN", sans-serif; }
  .contact-block {
    width: 50.2vw;
    margin: 0 auto 1.56vw; }
    @media only screen and (max-width: 969px) {
      .contact-block {
        width: 79%;
        text-align: center;
        margin: 0 auto 15px; } }
    .contact-block p {
      text-align: center; }
      @media only screen and (max-width: 969px) {
        .contact-block p {
          font-size: 14px;
          font-size: 1.4rem;
          text-align: left;
          letter-spacing: -0.04em; } }
      .contact-block p:not(:last-child) {
        margin-bottom: 0.56vw; }
        @media only screen and (max-width: 969px) {
          .contact-block p:not(:last-child) {
            margin-bottom: 12px; } }
  .contact-block2 {
    width: 35.2vw;
    margin: 0 auto 2vw;
    border-top: 1px solid #ffc435;
    border-bottom: 1px solid #ffc435; }
    @media only screen and (max-width: 969px) {
      .contact-block2 {
        width: 79%;
        margin: 0 auto; } }
    .contact-block2-inner {
      background: rgba(255, 196, 53, 0.3);
      padding: 0.78vw 0;
      box-sizing: border-box;
      text-align: center;
      margin: 10px auto; }
      @media only screen and (max-width: 969px) {
        .contact-block2-inner {
          padding: 5px 15px;
          letter-spacing: -0.03em; } }
      .contact-block2-inner p {
        display: inline-block;
        text-align: left;
        font-size: 16px;
        font-size: 1.6rem; }
        @media only screen and (max-width: 969px) {
          .contact-block2-inner p {
            font-size: 13px;
            font-size: 1.3rem; } }
