@charset "UTF-8";
html {
  overflow-y: scroll; }

body::before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100vh;
  background: url("../lib/cmn_img/sec02_bg.jpg") center top no-repeat;
  background-size: cover; }

/*----------------------------------------------------
	☆common
----------------------------------------------------*/
.bdOn {
  position: relative; }
  .bdOn::before {
    content: "";
    position: absolute;
    width: 33.333%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    height: 100%;
    border-right: 1px solid #eee;
    border-left: 1px solid #eee;
    z-index: 0; }
  .bdOn .inr {
    position: relative;
    z-index: 9; }

.sec {
  padding: 100px 0; }
  @media screen and (max-width: 768px) {
    .sec {
      padding: 60px 0; } }

.secTtl {
  text-align: center;
  color: #fff;
  font-size: 2.0rem;
  line-height: 1;
  letter-spacing: 0.05em;
  margin-bottom: 30px; }
  @media screen and (max-width: 768px) {
    .secTtl {
      font-size: 1.4rem; } }
  .secTtl span {
    font-size: 5.4rem;
    display: block;
    margin-bottom: 5px; }
    @media screen and (max-width: 768px) {
      .secTtl span {
        font-size: 3.2rem; } }

/*----------------------------------------------------
	☆loading
----------------------------------------------------*/
/* ローディングの背景部分のCSS */
.loader {
  background: #111;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 99999; }
  .loader .banana {
    margin: 0 auto; }
    .loader .banana img {
      width: 100px;
      height: 100px; }
      @media screen and (max-width: 768px) {
        .loader .banana img {
          width: 70px;
          height: 70px; } }

/* ローディングのアニメーション部分のCSS (https://projects.lukehaas.me/css-loaders/) */
.loader-animation,
.loader-animation:before,
.loader-animation:after {
  background: #ffffff;
  -webkit-animation: load1 1s infinite ease-in-out;
  animation: load1 1s infinite ease-in-out;
  width: 1em;
  height: 4em; }

.loader-animation {
  height: 10px;
  left: 50%;
  margin: -5px 0 0 -5px;
  position: absolute;
  top: 50%;
  width: 10px;
  color: #ffffff;
  text-indent: -9999em;
  font-size: 10px;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s; }

.loader-animation:before,
.loader-animation:after {
  position: absolute;
  top: 0;
  content: ''; }

.loader-animation:before {
  left: -1.5em;
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s; }

.loader-animation:after {
  left: 1.5em; }

@-webkit-keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 4em; }
  40% {
    box-shadow: 0 -2em;
    height: 5em; } }
@keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 4em; }
  40% {
    box-shadow: 0 -2em;
    height: 5em; } }
.loader .loading span {
  display: inline-block;
  margin: 0 -.05em;
  animation: loading 1.4s infinite alternate;
  color: #fff;
  font-size: 1.8rem;
  margin-top: 5px;
  font-family: 'Poppins', sans-serif; }
.loader loading span:nth-child(2) {
  animation-delay: .1s; }
.loader loading span:nth-child(3) {
  animation-delay: .2s; }
.loader loading span:nth-child(4) {
  animation-delay: .3s; }
.loader loading span:nth-child(5) {
  animation-delay: .4s; }
.loader loading span:nth-child(6) {
  animation-delay: .5s; }
.loader loading span:nth-child(7) {
  animation-delay: .6s; }
@keyframes loading {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }
.loader .wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  margin: auto;
  max-width: 400px;
  width: 100%;
  text-align: center; }

/*----------------------------------------------------
	☆mv
----------------------------------------------------*/
.mv {
  width: 100%;
  height: 100vh;
  position: relative;
  background: url("../lib/cmn_img/mv_bg.jpg") no-repeat center center/cover; }
  @media screen and (max-width: 768px) {
    .mv {
      padding-top: 120%;
      height: auto; } }
  .mv .logo {
    position: absolute;
    top: 50px;
    left: 50px;
    width: 270px;
    height: auto; }
    @media screen and (max-width: 768px) {
      .mv .logo {
        top: 20px;
        left: auto;
        right: 20px; } }
  .mv .txBox {
    position: absolute;
    right: 40px;
    bottom: 40px;
    text-align: right;
    width: auto;
    height: auto; }
    @media screen and (max-width: 768px) {
      .mv .txBox {
        top: 50%;
        left: 50%;
        transform: translateY(-50%) translateX(-50%);
        text-align: center;
        width: 90%; } }
    .mv .txBox .enMain img {
      width: 612px;
      height: auto; }
      @media screen and (max-width: 768px) {
        .mv .txBox .enMain img {
          width: 95%;} }
    .mv .txBox .jaTx {
      letter-spacing: 0.5em;
      color: #fff;
      font-size: 2.8rem;
      font-weight: 500;
      margin-top: 20px; }
      @media screen and (max-width: 768px) {
        .mv .txBox .jaTx {
          font-size: 2.1rem;
          letter-spacing: 0.35em;
          margin-top: 10px;
          margin-left: 5px; } }

/*----------------------------------------------------
	☆sec01
----------------------------------------------------*/
.sec01 {
  padding: 220px 0;
  background: #fff;
  position: relative; }
  @media screen and (max-width: 768px) {
    .sec01 {
      padding: 70px 0; } }
  .sec01 .mainTx {
	  font-weight: bold;
    font-size: 2.6rem;
    line-height: 2.4;
    letter-spacing: 0.08em; }
    @media screen and (max-width: 768px) {
      .sec01 .mainTx {
        font-size: 1.6rem; } }
  .sec01 .slideWrap {
    position: absolute;
    top: 140px;
    left: 0;
    width: 100%;
    height: auto;
    z-index: 1; }
    @media screen and (max-width: 768px) {
      .sec01 .slideWrap {
        top: 25px; } }
    .sec01 .slideWrap .bx-viewport {
      background: none;
      border: none; }
    .sec01 .slideWrap .bx-wrapper {
      max-width: 100% !important; }
    .sec01 .slideWrap li {
      margin-right: 40px; }

/*----------------------------------------------------
	☆sec02
----------------------------------------------------*/
.sec02 .ttl{
	text-align: center;
	margin-bottom: 20px;
}
.sec02 .ttl span{
	display: inline-block;
	padding: 8px 30px;
	line-height: 1;
	background: #fff;
	color: #111;
	font-size: 1.8rem;
	font-weight: bold;
}
.sec02 .serviceList {
  text-align: center; }
  .sec02 .serviceList > li {
    display: inline-block;
    vertical-align: top;
    border: 1px solid #fff;
    margin: 5px;
    position: relative; }
    @media screen and (max-width: 768px) {
      .sec02 .serviceList > li {
        width: 49%;
        margin: 0 2% 2% 0;
        padding: 15px 2px; } }
    @media screen and (max-width: 768px) {
      .sec02 .serviceList > li:nth-child(2n) {
        margin-right: 0; } }
    .sec02 .serviceList > li::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 0;
      height: 0;
      border-style: solid;
      border-width: 12px 12px 0 0;
      border-color: #ffffff transparent transparent transparent;
      z-index: 1; }
    .sec02 .serviceList > li .tx {
      padding: 0 20px;
      color: #fff;
      font-size: 2.0rem;
      display: inline-block;
      vertical-align: middle; }
      @media screen and (max-width: 768px) {
        .sec02 .serviceList > li .tx {
          padding: 0;
          font-size: 1.4rem;
          line-height: 1.6;
          display: block; } }
    .sec02 .serviceList > li .icon {
      width: 85px;
      height: 85px;
      display: inline-block;
      vertical-align: middle;
      border-left: 1px dotted rgba(255, 255, 255, 0.5); }
      @media screen and (max-width: 768px) {
        .sec02 .serviceList > li .icon {
          width: 100%;
          display: block;
          margin-top: 7px;
          border: none;
          height: auto; } }
      .sec02 .serviceList > li .icon p {
        display: table;
        height: 100%;
        text-align: center;
        margin: 0 auto; }
        .sec02 .serviceList > li .icon p span {
          display: table-cell;
          vertical-align: middle; }

/*----------------------------------------------------
	☆sec02
----------------------------------------------------*/
.sec03 {
  background: #fff; }
.sec03 .secTtl{
	color: #111;
}
  .sec03 .tblStyle_02 tr th {
    width: 18%; }
    @media screen and (max-width: 768px) {
      .sec03 .tblStyle_02 tr th {
        padding: 15px 15px 5px 15px !important; } }
  @media screen and (max-width: 768px) {
    .sec03 .tblStyle_02 tr td {
      padding: 2px 15px 15px 15px !important; } }
  .sec03 .tblStyle_02 tr th, .sec03 .tblStyle_02 tr td, .sec03 .tblStyle_02 tr a {
    font-size: 1.6rem;}
    @media screen and (max-width: 768px) {
      .sec03 .tblStyle_02 tr th, .sec03 .tblStyle_02 tr td, .sec03 .tblStyle_02 tr a {
        font-size: 1.4rem; } }
  .sec03 .tblStyle_02 tr th, .sec03 .tblStyle_02 tr td {
    padding: 30px 25px 27px; }
  .sec03 .tblStyle_02 tr:nth-child(odd) th, .sec03 .tblStyle_02 tr:nth-child(odd) td {
    background: #f1f1f1; }
  .sec03 .tblStyle_02 tr:nth-child(even) th, .sec03 .tblStyle_02 tr:nth-child(even) td {
    background: #fff; }

/*----------------------------------------------------
	☆sec04
----------------------------------------------------*/
.sec04 {
  background: #f1f1f1; }
.sec04 .secTtl{
	color: #111;
}
  .sec04 form {
    /* Edge */ }
    .sec04 form table.tblStyle_01 {
      border: none; }
      .sec04 form table.tblStyle_01 th, .sec04 form table.tblStyle_01 td {
        background: none;
        border: none;
        text-align: left;
        vertical-align: middle; }
        @media screen and (max-width: 768px) {
          .sec04 form table.tblStyle_01 th, .sec04 form table.tblStyle_01 td {
            font-size: 1.3rem; } }
      .sec04 form table.tblStyle_01 th {
        font-size: 1.7rem; }
        @media screen and (max-width: 768px) {
          .sec04 form table.tblStyle_01 th {
            font-size: 1.4rem;
            padding: 15px 0 5px; } }
      .sec04 form table.tblStyle_01 td {
        font-size: 1.4rem; }
        @media screen and (max-width: 768px) {
          .sec04 form table.tblStyle_01 td {
            padding: 5px 0 15px; } }
      .sec04 form table.tblStyle_01 .radioGroup li {
        font-size: 1.5rem;
        display: inline-block;
        vertical-align: top;
        margin-right: 30px; }
        @media screen and (max-width: 768px) {
          .sec04 form table.tblStyle_01 .radioGroup li {
            font-size: 1.3rem;
            display: block; } }
        .sec04 form table.tblStyle_01 .radioGroup li .nowrap input {
          vertical-align: middle;
          margin-right: 7px; }
        .sec04 form table.tblStyle_01 .radioGroup li .nowrap label {
          vertical-align: middle; }
    .sec04 form .subscribeBtn input {
      border: 1px solid #fff;
      background-color: #333 !important;
      font-size: 1.6rem;
      max-width: 440px;
      width: 100%;
      padding: 25px 0 !important;
      -webkit-border-radius: 0;
      -moz-border-radius: 0;
      -ms-border-radius: 0;
      border-radius: 0 !important;
      transition: all .3s ease-in-out; }
      @media screen and (max-width: 768px) {
        .sec04 form .subscribeBtn input {
          font-size: 1.4rem;
          padding: 15px 0; } }
      .sec04 form .subscribeBtn input:hover {
        background-color: #fff !important;
        color: #111 !important;
        border: 1px solid #111; }
    .sec04 form input, .sec04 form textarea {
      padding: 14px 15px 16px !important;
      border: 1px solid #ddd; }
      @media screen and (max-width: 768px) {
        .sec04 form input, .sec04 form textarea {
          padding: 11px 9px 12px !important; } }
      .sec04 form input.wLL, .sec04 form textarea.wLL {
        max-width: 100% !important; }
      .sec04 form input::placeholder, .sec04 form textarea::placeholder {
        color: #bbb;
        font-weight: 400;
        font-size: 1.6rem; }
        @media screen and (max-width: 768px) {
          .sec04 form input::placeholder, .sec04 form textarea::placeholder {
            font-size: 1.3rem; } }
    .sec04 form input:-ms-input-placeholder, .sec04 form textarea:-ms-input-placeholder {
      color: #bbb;
      font-weight: 400;
      font-size: 1.6rem; }
      @media screen and (max-width: 768px) {
        .sec04 form input:-ms-input-placeholder, .sec04 form textarea:-ms-input-placeholder {
          font-size: 1.3rem; } }
    .sec04 form input::-ms-input-placeholder, .sec04 form textarea::-ms-input-placeholder {
      color: #bbb;
      font-weight: 400;
      font-size: 1.6rem; }
      @media screen and (max-width: 768px) {
        .sec04 form input::-ms-input-placeholder, .sec04 form textarea::-ms-input-placeholder {
          font-size: 1.3rem; } }
    .sec04 form select {
      width: 100%;
      padding: 10px 30px 12px 15px !important;
      border: 1px solid #ccc !important;
      border-radius: 5px;
      background: #fff url("/lib/cmn_img/arw01.png") no-repeat;
      background-size: 7px 5px;
      background-position: right 15px center;
      -webkit-appearance: none;
      -moz-appearance: none; }
      @media screen and (max-width: 768px) {
        .sec04 form select {
          padding: 11px 9px 12px !important; } }
    .sec04 form option,
    .sec04 form textarea,
    .sec04 form input[type="submit"],
    .sec04 form input[type="number"],
    .sec04 form input[type="email"],
    .sec04 form input[type="tel"],
    .sec04 form input[type="text"],
    .sec04 form input[type="option"],
    .sec04 form input[type="checkbox"] {
      -webkit-appearance: none;
      -moz-appearance: none;
      -ms-appearance: none;
      appearance: none;
      -webkit-border-radius: 5px;
      -moz-border-radius: 5px;
      -ms-border-radius: 5px;
      border-radius: 5px;
      outline: 0;
      margin: 0; }
    .sec04 form select,
    .sec04 form input[type="select"] {
      text-indent: 0.01px;
      text-overflow: '';
      -webkit-border-radius: 5px;
      -moz-border-radius: 5px;
      -ms-border-radius: 5px;
      border-radius: 5px;
      outline: 0;
      margin: 0; }
    .sec04 form select::-ms-expand {
      display: none; }
  .sec04 .formrun-system-show {
    font-size: 1.3rem;
    margin-top: 5px;
    color: #f73490;
    margin-top: 5px;
    display: block; }

/*----------------------------------------------------
	☆form
----------------------------------------------------*/
form .form-control-danger, form .form-control-success, form .form-control-warning {
  padding-right: 2.25rem;
  background-repeat: no-repeat;
  background-position: center right .625rem; }
form .has-danger .form-control-danger {
  background-image: url("../lib/cmn_img/form_icon02.png");
  background-size: 12px 12px; }
form .has-danger .form-control {
  border-color: #fd2181; }
form .has-success .form-control-success {
  background-image: url("../lib/cmn_img/form_icon01.png");
  background-size: 18px 15px; }
form .has-success .form-control {
  border-color: #1de0be; }
form .btn-primary {
  color: #fff;
  font-size: 1.6rem;
  text-align: center;
  padding: 20px;
  max-width: 280px;
  width: 100%;
  margin: 0 auto;
  display: inline-block;
  line-height: 1.25;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
	background: #111;
  transition: all .3s ease-in-out; }
  @media screen and (max-width: 768px) {
    form .btn-primary {
      font-size: 1.4rem; } }
  form .btn-primary:hover {
    background: #333;
    color: #fff; }

/*----------------------------------------------------
	☆form
----------------------------------------------------*/
.thanks {
  padding: 120px 0;
  color: #fff; }
  .thanks .ttl {
    text-align: center;
    font-size: 2.4rem;
    margin-bottom: 35px;
    position: relative;
    line-height: 1.7; }
    @media screen and (max-width: 768px) {
      .thanks .ttl {
        font-size: 2.0rem; } }
    .thanks .ttl::before {
      content: "";
      position: absolute;
      bottom: -14px;
      left: 50%;
      width: 30px;
      height: 2px;
      margin-left: -18px;
      background: #aaa; }
  .thanks .tx {
    font-size: 1.6rem;
    text-align: center;
    line-height: 2.2; }
    @media screen and (max-width: 768px) {
      .thanks .tx {
        font-size: 1.4rem;
        text-align: left; } }
    .thanks .tx a {
      color: #fff;
      text-decoration: underline; }
      .thanks .tx a:hover {
        text-decoration: none; }
  .thanks .btn a {
    color: #fff;
    font-size: 1.4rem;
    text-align: center;
    display: block;
    border: 1px solid #fff;
    padding: 15px;
    max-width: 280px;
    width: 100%;
    margin: 0 auto; }
    .thanks .btn a:hover {
      background: #fff;
      color: #111; }
