@charset "UTF-8";
/*----------------------------------
 font 
-----------------------------------*/
@font-face {
  src: url("../fonts/ZenKakuGothicNew-Regular.woff") format("woff");
  font-family: 'Zen Kaku Gothic New';
  font-weight: 400;
  font-display: swap; }
@font-face {
  src: url("../fonts/ZenKakuGothicNew-Medium.woff") format("woff");
  font-family: 'Zen Kaku Gothic New';
  font-weight: 500;
  font-display: swap; }
@font-face {
  src: url("../fonts/ZenKakuGothicNew-Bold.woff") format("woff");
  font-family: 'Zen Kaku Gothic New';
  font-weight: 700;
  font-display: swap; }
.neue55 {
  font-family: neue-haas-grotesk-display;
  font-weight: 500; }

.neue65 {
  font-family: neue-haas-grotesk-display;
  font-weight: 600; }

html {
  font-family: 'Zen Kaku Gothic New', 'ゴシックMB101 R', 'Gothic MB101 Regular', '游ゴシック',YuGothic,'Yu Gothic','Yu Gothic UI','Meiryo UI','ヒラギノ角ゴシック','Hiragino Sans','Arial','Helvetica', sans-serif;
  font-size: 62.5%;
  font-weight: 500;
  overflow-x: hidden; }

body {
  margin: 0;
  color: #000;
  background: #F2F2F2;
  font-size: 1.6rem;
  line-height: 1.8;
  position: relative;
  overflow-x: hidden; }
  @media (max-width: 768px) {
    body {
      font-size: 1.4rem; } }

p {
  line-height: 2.1; }

a, a:link, a:visited {
  color: #000;
  text-decoration: none;
  transition: 0.3s; }

img {
  max-width: 100%;
  width: auto;
  height: auto;
  vertical-align: bottom;
  transition: 0.3s; }

a:hover, a:hover img {
  opacity: 0.7; }

.container {
  margin: 0 auto;
  width: 90%;
  max-width: 1080px;
  height: auto;
  box-sizing: border-box; }

.containerWide {
  margin: 0 auto;
  width: 100%;
  max-width: 1080px;
  height: auto;
  box-sizing: border-box; }

main {
  display: block; }

h2 {
  position: relative;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.3; }
  @media (max-width: 768px) {
    h2 {
      font-size: 2.4rem; } }

h3 {
  font-size: 2.4rem;
  font-weight: 700;
  position: relative; }
  @media (max-width: 768px) {
    h3 {
      font-size: 2rem; } }

.commonBtn {
  margin-top: 2.5em; }
  .commonBtn a {
    position: relative;
    box-sizing: border-box;
    font-family: neue-haas-grotesk-display;
    font-weight: 600;
    font-size: 1.2rem;
    letter-spacing: 0.1rem;
    border-bottom: solid 1px #000; }
    .commonBtn a .light {
      position: absolute;
      bottom: 0;
      right: -45px;
      width: 39px;
      height: 20px;
      overflow: hidden;
      transform: translate(-100%, 0);
      transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.5s; }
      .commonBtn a .light span {
        background: url("../img/common_btn.svg") no-repeat;
        position: absolute;
        display: block;
        bottom: 0;
        right: 0;
        margin: 0;
        width: 39px;
        height: 20px;
        transform: translate(100%, 0);
        transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.5s; }
    .commonBtn a:hover {
      opacity: 1; }
    .commonBtn a:hover .light, .commonBtn a:hover .light span {
      transform: translate(0, 0); }

.commonTtl {
  font-size: 9px;
  font-family: neue-haas-grotesk-display;
  font-weight: 600;
  margin-bottom: 100px;
  position: relative;
  padding-top: 10px;
  letter-spacing: 0.1rem; }
  @media (max-width: 768px) {
    .commonTtl {
      margin-bottom: 50px; } }
  .commonTtl::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0%;
    height: 1px;
    background: #000;
    transition: all linear 0.8s; }
  .commonTtl.active::before {
    width: 100%; }

.serifTtl {
  font-family: 'Shippori Mincho B1', serif;
  font-weight: 700;
  font-size: 4.0rem;
  line-height: 1.5;
  margin-bottom: 40px; }
  @media (max-width: 768px) {
    .serifTtl {
      font-size: 2.5rem; } }

small {
  font-size: 1.2rem; }

/*=====================================================================
	header
=====================================================================*/
header {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  z-index: 9990;
  box-sizing: border-box;
  text-align: right; }
  header .headContact a {
    background: #EDFE53;
    font-weight: 700;
    width: 156px;
    height: 60px;
    margin-left: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    transition: .3s;
    position: relative;
    overflow: hidden;
    z-index: 1; }
    @media (max-width: 768px) {
      header .headContact a {
        width: 130px;
        height: 50px; } }
    header .headContact a::before {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background: #fff;
      transform: scale(0, 1);
      z-index: -1; }
    header .headContact a:hover {
      opacity: 1; }
    header .headContact a:hover::before {
      animation: hover-in .2s forwards alternate, hover-out .2s .2s forwards alternate; }

@keyframes hover-in {
  0% {
    transform-origin: left top;
    transform: scale(0, 1); }
  100% {
    transform-origin: left top;
    transform: scale(1, 1); } }
@keyframes hover-out {
  0% {
    transform-origin: right top;
    transform: scale(1, 1); }
  100% {
    transform-origin: right top;
    transform: scale(0, 1); } }
/*=====================================================================
	footer
=====================================================================*/
footer {
  padding: 180px 0 110px;
  background: #BDC6CA;
  font-size: 1.2rem;
  font-weight: 700; }
  @media (max-width: 768px) {
    footer {
      padding: 80px 0 50px; } }
  @media (max-width: 480px) {
    footer {
      font-size: 1.1rem; } }
  footer .Logo, footer .shunbin {
    width: 349px; }
  footer .Logo {
    margin-bottom: 120px; }
    @media (max-width: 768px) {
      footer .Logo {
        margin-bottom: 80px; } }
    @media (max-width: 480px) {
      footer .Logo {
        width: 85%;
        margin-bottom: 50px; } }
  footer .shunbin a {
    position: relative;
    width: 124px;
    height: 28px;
    margin: 0;
    display: block; }
    @media (max-width: 480px) {
      footer .shunbin a {
        width: 107px;
        height: 25px; } }
    footer .shunbin a img {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      width: 100%;
      display: block;
      -webkit-transition: all .3s;
      transition: all .3s; }
      footer .shunbin a img:nth-of-type(2) {
        opacity: 0; }
    footer .shunbin a:hover img:nth-of-type(2) {
      opacity: 1; }
    footer .shunbin a:hover img:nth-of-type(1) {
      opacity: 0; }
  footer .Address {
    line-height: 2; }
    footer .Address span {
      font-family: neue-haas-grotesk-display;
      font-weight: 600; }
  footer .Address, footer .privacyPolicy {
    width: 231px;
    letter-spacing: 0.05rem; }
    @media (max-width: 1024px) {
      footer .Address, footer .privacyPolicy {
        margin-left: 30px; } }
  footer .siteLink, footer .privacyPolicy, footer .copy {
    font-family: neue-haas-grotesk-display; }
  footer .siteLink, footer .copy {
    width: 152px;
    margin-left: 80px;
    letter-spacing: 0.05rem; }
    @media (max-width: 1024px) {
      footer .siteLink, footer .copy {
        margin-left: 30px; } }
  footer .privacyPolicy, footer .copy {
    font-size: 1.1rem; }
  footer .siteLink, footer .privacyPolicy {
    font-weight: 600;
    transition: all 0.3s; }
    footer .siteLink :hover, footer .privacyPolicy :hover {
      color: #EDFE53;
      opacity: 1; }
  footer .copy {
    font-weight: 500; }
  @media (max-width: 480px) {
    footer .shunbin, footer .Address, footer .privacyPolicy, footer .siteLink, footer .copy {
      width: 100%; }
    footer .siteLink {
      margin-bottom: 2rem; }
    footer .shunbin {
      margin-bottom: 3rem; }
    footer .Address, footer .privacyPolicy, footer .siteLink, footer .copy {
      margin-left: 0;
      line-height: 2; }
    footer .privacyPolicy {
      margin-bottom: 4.5rem; }
    footer .headWrap1 {
      margin-bottom: 1.5rem; } }

/*============================================================================
	topBtn
=============================================================================*/
#back_to_top.sc {
  opacity: 1; }

#back_to_top {
  margin: 0 auto;
  width: 100px;
  height: 100px;
  position: fixed;
  right: 40px;
  bottom: 30px;
  z-index: 200;
  transition: 0.3s ease;
  opacity: 0;
  text-align: center; }
  @media (max-width: 768px) {
    #back_to_top {
      right: 25px;
      width: 70px;
      height: 70px; } }
  @media (max-width: 480px) {
    #back_to_top {
      right: 20px;
      bottom: 20px;
      width: 50px;
      height: 50px; } }
  #back_to_top button {
    background: url("../img/arrow_blown2.svg") no-repeat;
    background-size: contain;
    transform: rotate(-90deg);
    width: 100px;
    height: 100px;
    position: relative;
    border: none;
    cursor: pointer;
    transition: 0.3s; }
    #back_to_top button:hover {
      opacity: 0.7; }
    @media (max-width: 768px) {
      #back_to_top button {
        width: 70px;
        height: 70px; } }
    @media (max-width: 480px) {
      #back_to_top button {
        width: 50px;
        height: 50px; } }

/*================================
	scアニメ
================================*/
.fadein, .fadein02, .fadein03 {
  opacity: 0;
  transition: all 2.5s; }

.fadein.show, .fadein02.show, .fadein03.show {
  opacity: 1; }

.upfade {
  opacity: 0;
  transform: translate(0, 50px);
  transition: all 1.0s; }

.upfade.scrollin {
  opacity: 1;
  transform: translate(0, 0); }

.fvupfade1, .fvupfade2 {
  opacity: 0;
  transform: translate(0, 50px);
  transition: all 1.0s; }

.fvupfade1.display, .fvupfade2.display {
  opacity: 1;
  transform: translate(0, 0); }

.downfade {
  opacity: 0;
  transform: translate(0, -50px);
  transition: all 1.0s; }

.downfade.scrollin {
  opacity: 1;
  transform: translate(0, 0); }

.fade {
  opacity: 0;
  transition: all 1.2s; }

.fade.active {
  opacity: 1; }

.scalbig {
  transform: scale(0.9); }

.scalbig.scrollin {
  transform: scale(1); }

.sclinWrap {
  height: auto;
  overflow: hidden; }

.sclin_right {
  opacity: 0;
  transform: translate(50px, 0);
  transition: all 1.0s; }

.sclin_right.scrollin {
  opacity: 1;
  transform: translate(0, 0); }

.sclin_left {
  opacity: 0;
  transform: translate(-50px, 0);
  transition: all 1.0s; }

.sclin_left.scrollin {
  opacity: 1;
  transform: translate(0, 0); }

/*============================================================================
	調整用
=============================================================================*/
.fl {
  display: -webkit-flex;
  display: -moz-flex;
  display: flex; }

.fl-pc {
  display: -webkit-flex;
  display: -moz-flex;
  display: flex; }
  @media (max-width: 1024px) {
    .fl-pc {
      -webkit-flex-direction: column;
      -moz-flex-direction: column;
      flex-direction: column; } }

.fl-tab {
  display: -webkit-flex;
  display: -moz-flex;
  display: flex; }
  @media (max-width: 768px) {
    .fl-tab {
      -webkit-flex-direction: column;
      -moz-flex-direction: column;
      flex-direction: column; } }

.fl-smp {
  display: -webkit-flex;
  display: -moz-flex;
  display: flex; }
  @media (max-width: 480px) {
    .fl-smp {
      -webkit-flex-direction: column;
      -moz-flex-direction: column;
      flex-direction: column; } }

.fl-jst {
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between; }

.fl-cen {
  -webkit-justify-content: center;
  -moz-justify-content: center;
  justify-content: center; }

.fl-end {
  -webkit-justify-content: flex-end;
  -moz-justify-content: flex-end;
  justify-content: flex-end; }

.fl-wrap {
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }

.fl-col {
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  flex-direction: column; }

.fl-reverse {
  -webkit-flex-direction: row-reverse;
  -moz-flex-direction: row-reverse;
  flex-direction: row-reverse; }

.mt0 {
  margin-top: 0 !important; }

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

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

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

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

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

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

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

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

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

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

.mr0 {
  margin-right: 0 !important; }

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

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

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

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

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

.mb0 {
  margin-bottom: 0 !important; }

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

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

.mb12 {
  margin-bottom: 12px !important; }

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

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

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

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

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

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

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

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

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

.ml0 {
  margin-left: 0 !important; }

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

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

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

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

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

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

.ls5 {
  letter-spacing: 5px !important; }

.ls10 {
  letter-spacing: 10px !important; }

.ls15 {
  letter-spacing: 15px !important; }

.ls40 {
  letter-spacing: 40px !important; }

.ls60 {
  letter-spacing: 60px !important; }

br {
  display: inline; }
  @media (min-width: 1025px) {
    br.show1024 {
      display: none !important; } }
  @media (min-width: 769px) {
    br.show768 {
      display: none !important; } }
  @media (min-width: 481px) {
    br.show480 {
      display: none !important; } }
  @media (max-width: 1024px) {
    br.hdn1024 {
      display: none !important; }
    br.show1024 {
      display: inherit; } }
  @media (max-width: 768px) {
    br.hdn768 {
      display: none !important; }
    br.show768 {
      display: inherit; } }
  @media (max-width: 480px) {
    br.hdn480 {
      display: none !important; }
    br.show480 {
      display: inherit; } }

span, a {
  display: inline-block; }
  @media (min-width: 1025px) {
    span.show1024, a.show1024 {
      display: none !important; } }
  @media (min-width: 769px) {
    span.show768, a.show768 {
      display: none !important; } }
  @media (min-width: 481px) {
    span.show480, a.show480 {
      display: none !important; } }
  @media (max-width: 1024px) {
    span.hdn1024, a.hdn1024 {
      display: none !important; }
    span.show1024, a.show1024 {
      display: inherit; } }
  @media (max-width: 768px) {
    span.hdn768, a.hdn768 {
      display: none !important; }
    span.show768, a.show768 {
      display: inherit; } }
  @media (max-width: 480px) {
    span.hdn480, a.hdn480 {
      display: none !important; }
    span.show480, a.show480 {
      display: inherit; } }

p, div, figure, ul {
  display: block; }
  @media (min-width: 1025px) {
    p.show1024, div.show1024, figure.show1024, ul.show1024 {
      display: none !important; } }
  @media (min-width: 769px) {
    p.show768, div.show768, figure.show768, ul.show768 {
      display: none !important; } }
  @media (min-width: 481px) {
    p.show480, div.show480, figure.show480, ul.show480 {
      display: none !important; } }
  @media (max-width: 1024px) {
    p.hdn1024, div.hdn1024, figure.hdn1024, ul.hdn1024 {
      display: none !important; }
    p.show1024, div.show1024, figure.show1024, ul.show1024 {
      display: inherit; } }
  @media (max-width: 768px) {
    p.hdn768, div.hdn768, figure.hdn768, ul.hdn768 {
      display: none !important; }
    p.show768, div.show768, figure.show768, ul.show768 {
      display: inherit; } }
  @media (max-width: 480px) {
    p.hdn480, div.hdn480, figure.hdn480, ul.hdn480 {
      display: none !important; }
    p.show480, div.show480, figure.show480, ul.show480 {
      display: inherit; } }

.ta_cnt {
  text-align: center; }

.ta_right {
  text-align: right; }

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

.mw_wp_form_confirm .confirm-hidden {
  　display: hidden; }
