/*
Theme Name:original
Author:SolabotSchool
Version:1.00
*/

/*全体設定*/
/*ヘッダー*/
/*フッター*/
/*トップページ*/

/*メディアクエリ・ブレイクポイント*/

/*-----------------------------------------------全体設定-----------------------------------------------*/
/* reset */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;}
ul{list-style:none;}
table{border-collapse:collapse;border-spacing:0;}
caption,th{text-align:left;}
q:before,q:after{content:'';}
object,embed{vertical-align:top;}
legend{display:none;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
img,abbr,acronym,fieldset{border:0;}

img {
	display: block;
    width: 100%;
    height: auto;
}

a {
  color: #222;
}

/*全体幅*/
*, *:before, *:after { box-sizing: border-box;}

body {
  overflow-x: hidden;
}

/*全体設定*/
/*ヘッダー*/
/*フッター*/
/*トップページ*/
/*固定ページ全体*/
/*料金ページ*/
/*選ばれる理由ページ*/
/*実績事例ページ*/
/*よくあるご質問*/
/*お客様の声*/
/*デモ一覧ページ*/
/*ゼロからWordPressサイト制作*/
/*お問い合わせ*/

/*メディアクエリ・ブレイクポイント*/


/*-----------------------------------------------全体設定-----------------------------------------------*/
body {
  cursor: default;
}

/*フォント*/
@font-face {
  font-family: "NotoSansJP-Thin";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-Thin.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-ExtraLight";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-ExtraLight.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-Light";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-Light.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-Regular";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-Regular.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-Medium";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-Medium.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-SemiBold";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-SemiBold.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-Bold";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-Bold.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-ExtraBold";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-ExtraBold.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-Black";
  src: url("/wp-content/themes/original/fonts/NotoSansJP-Black.woff") format("woff");
  font-display: swap;
}

@font-face {
  font-family: "OoohBaby-Regular";
  src: url("/wp-content/themes/original/fonts/OoohBaby-Regular.woff") format("woff");
  font-display: swap;
}

div,a,p,span {
  font-family: "NotoSansJP-Regular";
}
h1,h2,h3,h4 {
  font-family: "NotoSansJP-Bold";
  margin: auto;
}

p {
  margin: 0;
}

.red {color: #ce2029;}
.bold {font-weight: bold;}

/*ページ見出し*/
.page_h2 {
  margin-bottom: 3.084vw;
  display: flex;
  align-items: center;
  padding-bottom: 1.251vw;
  position: relative;
}
.page_h2_main {
  font-family: "NotoSansJP-Bold";
  font-size: 3.501vw;
  margin-right: 1.501vw;
}
.page_h2_sub {
  font-size: 1.334vw;
  line-height: 1;
  margin-top: 1vw;
}
.page_h2::before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 6.251vw;
  background: #CE2029;
  height: 0.418vw;
}
.page_h3 {
  margin-bottom: 2.501vw;
  font-family: "NotoSansJP-Bold";
  font-size: 2.001vw;
  line-height: 1.5;
  padding-bottom: 0.668vw;
  display: inline-block;
  position: relative;
}
.page_h3::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 6.251vw;
  height: 3px;
  background: #d00;
  z-index: 1;
}
.page_h3:before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: #461E26;
  z-index: 0;
}

.page_h4 {
  position: relative;
  font-size: 1.501vw;
  margin-bottom: 2.668vw;
}
.page_h4 i {
  color: #CE2029;
  font-size: 1.6vw;
  line-height: 1;
  margin-right: 0.4vw;
}

/*スクロールフェードイン*/
.object_anchor {
  opacity: 0;
  
}
.object_anchor.show {
  animation-name: fadein;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fadein {
  0% {
     opacity: 0;
     transform: translateY(20px);
  }
  100% {
     opacity: 1;
     transform: translateY(0px);
  }
}


/*全体幅*/
*, *:before, *:after { box-sizing: border-box;}

.home h2 {
  padding-top: 8vw;
  margin-top: -8vw;
}

/*page sepalate*/
.page_separate {
  margin-bottom: 11.251vw;
}

/*サイト全体マウスポインター*/
.cursor,
.follower {
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.cursor {
  width: 8px;
  height: 8px;
  background-color: #661015;
  z-index: 9999;
}

.follower {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 20px;
  height: 20px;
  background-color: #ce202933;
  z-index: 9998;
  transition: transform ease 0.5s;
  text-align: center;
}
.follower span {
  display: inline-block;
  font-size: 14px;
  font-weight: bold;
  transform: scale(0);
}
.follower.is-active {
  transform: scale(4);
}

.follower_white .follower {
  background-color: #33323275;
  mix-blend-mode: difference;
}

/*基本ボタン*/
.btn {
  position: relative;
  border: none;
  cursor: pointer;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
  width: 11.918vw;
  height: 4.168vw;
  margin: auto;
}
.btn .space {
  margin-right: 0.3vw;
}
.btn:active {
  -webkit-transform: scale(0.96);
  -ms-transform: scale(0.96);
  transform: scale(0.96);
}
.btn:before,
.btn:after {
  position: absolute;
  content: "";
  width: 150%;
  left: 50%;
  height: 100%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  z-index: 0;
  background-repeat: no-repeat;
  pointer-events: none;
}
.btn:hover:before {
  top: -70%;
  background-image: radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, transparent 20%, #ce2029 20%, transparent 30%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, transparent 10%, #ce2029 15%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%);
  background-size: 10% 10%, 20% 20%, 15% 15%, 20% 20%, 18% 18%, 10% 10%, 15% 15%,
    10% 10%, 18% 18%;
  background-position: 50% 120%;
  -webkit-animation: greentopBubbles 0.6s ease;
  animation: greentopBubbles 0.6s ease;
}
@-webkit-keyframes greentopBubbles {
  0% {
    background-position: 5% 90%, 10% 90%, 10% 90%, 15% 90%, 25% 90%, 25% 90%,
      40% 90%, 55% 90%, 70% 90%;
  }
  50% {
    background-position: 0% 80%, 0% 20%, 10% 40%, 20% 0%, 30% 30%, 22% 50%,
      50% 50%, 65% 20%, 90% 30%;
  }
  100% {
    background-position: 0% 70%, 0% 10%, 10% 30%, 20% -10%, 30% 20%, 22% 40%,
      50% 40%, 65% 10%, 90% 20%;
    background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
  }
}
@keyframes greentopBubbles {
  0% {
    background-position: 5% 90%, 10% 90%, 10% 90%, 15% 90%, 25% 90%, 25% 90%,
      40% 90%, 55% 90%, 70% 90%;
  }
  50% {
    background-position: 0% 80%, 0% 20%, 10% 40%, 20% 0%, 30% 30%, 22% 50%,
      50% 50%, 65% 20%, 90% 30%;
  }
  100% {
    background-position: 0% 70%, 0% 10%, 10% 30%, 20% -10%, 30% 20%, 22% 40%,
      50% 40%, 65% 10%, 90% 20%;
    background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
  }
}
.btn:hover::after {
  bottom: -70%;
  background-image: radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, transparent 10%, #ce2029 15%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%),
    radial-gradient(circle, #ce2029 20%, transparent 20%);
  background-size: 15% 15%, 20% 20%, 18% 18%, 20% 20%, 15% 15%, 20% 20%, 18% 18%;
  background-position: 50% 0%;
  -webkit-animation: greenbottomBubbles 0.6s ease;
  animation: greenbottomBubbles 0.6s ease;
}
@-webkit-keyframes greenbottomBubbles {
  0% {
    background-position: 10% -10%, 30% 10%, 55% -10%, 70% -10%, 85% -10%,
      70% -10%, 70% 0%;
  }
  50% {
    background-position: 0% 80%, 20% 80%, 45% 60%, 60% 100%, 75% 70%, 95% 60%,
      105% 0%;
  }
  100% {
    background-position: 0% 90%, 20% 90%, 45% 70%, 60% 110%, 75% 80%, 95% 70%,
      110% 10%;
    background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
  }
}
@keyframes greenbottomBubbles {
  0% {
    background-position: 10% -10%, 30% 10%, 55% -10%, 70% -10%, 85% -10%,
      70% -10%, 70% 0%;
  }

  50% {
    background-position: 0% 80%, 20% 80%, 45% 60%, 60% 100%, 75% 70%, 95% 60%,
      105% 0%;
  }

  100% {
    background-position: 0% 90%, 20% 90%, 45% 70%, 60% 110%, 75% 80%, 95% 70%,
      110% 10%;
    background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
  }
}

.btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  color: #fff;
  border-radius: 3.168vw;
  overflow: hidden;
  background: #CE2029;
  width: 100%;
  height: 100%;
  position: relative;
}
.btn a:before {
  transition: 0.5s all ease;
  position: absolute;
  top: 0;
  left: 50%;
  right: 50%;
  bottom: 0;
  opacity: 0;
  content: '';
  background-color: #ddd;
  z-index: 0;
}
.btn a:hover::before {
  transition: 0.5s all ease;
  left: 0;
  right: 0;
  opacity: 1;
}
.btn a .original {
  color: #fff;
  display: grid;
  inset: 0;
  place-content: center;
  position: absolute;
  transition: transform 0.2s cubic-bezier(0.87, 0, 0.13, 1);
  font-family: "NotoSansJP-Bold";
}
.btn a:hover .original {
  transform: translateY(100%);
}
.btn a .letters {
  display: inline-flex;
}
.btn a span {
  opacity: 0;
  transform: translateY(-15px);
  transition: transform 0.2s cubic-bezier(0.87, 0, 0.13, 1), opacity 0.2s;
  font-family: "NotoSansJP-Bold";
}
.btn a span:nth-child(2n) {
  transform: translateY(15px);
}
.btn a:hover span {
  opacity: 1;
  transform: translateY(0);
  color: #ce2029;
}
.btn a:hover span:nth-child(2) {
  transition-delay: 0.1s;
}
.btn a:hover span:nth-child(3) {
  transition-delay: 0.2s;
}
.btn a:hover span:nth-child(4) {
  transition-delay: 0.3s;
}
.btn a:hover span:nth-child(5) {
  transition-delay: 0.4s;
}
.btn a:hover span:nth-child(6) {
  transition-delay: 0.5s;
}
.btn a:hover span:nth-child(7) {
  transition-delay: 0.6s;
}
.btn a:hover span:nth-child(8) {
  transition-delay: 0.7s;
}

/*-----------------------------------------------ヘッダー-----------------------------------------------*/
#masthead {
  border: none;
  margin-bottom: 0;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  background: #fffc;
  width: 100%;
}
.main-header {
  padding: 0;
}
.main-header-content {
  max-width: 100%;
  padding: 0;
  width: 96.667vw;
  align-items: stretch;
  display: flex;
  justify-content: space-between;
}
.site-branding {
  padding: 0;
  width: 17.834vw;
}
.site-logo {
  display: flex;
  align-items: center;
  height: 100%;
}

/*このサイトの地図*/
.sitemap_btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
/*ボタン*/
.sitemap_btn a {
  display: flex;
  align-items: center;
  font-size: 1.168vw;
  text-decoration: none;
  font-weight: 700;
  color: #555;
  padding: 1.2vw 0;
}
.sitemap_btn .video {
  width: 4.4vw;
  position: relative;
  clip-path: circle(60% at 50% 50%);
  transition: all 0.3s;
}
.sitemap_btn .video video {
  position: fixed;
  background: #c4cbde;
  transform: translate(-50%, -50%);
  filter: brightness(150%) sepia(10%) contrast(80%);
}
.sitemap_btn a:hover .video {
  clip-path: circle(5.8vw at 50% 50%);
}
.sitemap_btn span {
  position: relative;
  z-index: 999;
}

/*テキスト*/
.sitemap_btn .text {
  position: relative;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.2px;
  opacity: 1;
  transition: opacity 0.3s ease 0.2s;
}
.sitemap_btn .text::before,.sitemap_btn .text::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: -1.1vw;
  right: 7.4vw;
  height: 0;
}
.sitemap_btn .text::before {
  box-shadow: 26px 0 0 1px #1F242D;
  /*! right: 25px; */
  opacity: 0;
  transition: right 0.5s ease-in, opacity 0.1s linear;
}
.sitemap_btn .text::after {
  box-shadow: 1.3vw 0 0 1px #fff;
  -webkit-clip-path: circle(60% at 50% 50%);
  clip-path: circle(1rem at left);
  transition: -webkit-clip-path 4s ease;
  transition: clip-path 4s ease;
  transition: clip-path .4s ease, .4s ease;
}
.sitemap_btn .text span::before,.sitemap_btn .text span::after {
  content: attr(data-text);
}
.sitemap_btn .text span::before {
  color: #1F242D;
}
.sitemap_btn .text span::after {
  color: #fff;
  -webkit-clip-path: circle(0% at left);
  clip-path: circle(0% at left);
  transition: -webkit-clip-path .4s ease;
  transition: clip-path .4s ease;
  transition: clip-path .4s ease, -webkit-clip-path .4s ease;
  position: absolute;
  left: 0;
  text-shadow: 2px 1px 3px #000;
}
.sitemap_btn a:hover .text::before {
  right: 1.4vw;
  opacity: 1;
}
.sitemap_btn a:hover .text::after {
  -webkit-clip-path: circle(4.6vw at 50% 50%);
          clip-path: circle(4.6vw at left);
}
.sitemap_btn a:hover .text > span::after {
  -webkit-clip-path: circle(6.6rem at 50% 50%);
          clip-path: circle(3.8vw at left);
}

/*モーダル*/
.modal{
  position: fixed;
  top: -120%;
  height: 100vh;
  width: 100%;
  left: 0;
  z-index: 999;
  transition: all 0.3s;
}
.fixed .modal {
  top: 0;
}
.modal_bg{
  position: absolute;
  height: 100vh;
  width: 100%;
  background: rgba(0, 0, 0, 0.8);
}
/* モーダル本体 */
.modal_content{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow: auto; /* はみ出た部分はスクロールさせる */
  /* これが無いと「overflow:scroll」が利かない */
  width: 92vw;/* これが無いと「overflow:scroll」が利かない */
}
/* モーダルウィンドウ表示中に記事本体を固定 */
body.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
}

/*モーダルクローズ*/
.js_modal_close {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}


/*ナビゲーション*/
.header_nav_container {
  display: flex;
  margin: 0;
  list-style: none;
  justify-content: space-between;
  width: 32vw;
  height: 100%;
}
.nav_item {
  position: relative;
}
.nav_item:hover > .sub_menu {
  display: block;
}
.nav_item a {
  font-size: 1.168vw;
  text-decoration: none;
  font-weight: 700;
  color: #333;
  display: flex;
  white-space: nowrap;
  height: 100%;
  align-items: center;
  padding: 1.2vw 0;
}
.sub_menu .nav_item {
  background: #461E26;
  opacity: 0;
  transform-origin: bottom;
  animation: enter 0.2s ease forwards;
}
.sub_menu a {
  padding: 0.8vw 2vw;
  color: #fff;
  position: relative;
  overflow: hidden;
  -webkit-transition: 0.3s ease-out;
  -moz-transition: 0.3s ease-out;
  transition: 0.3s ease-out;
}
.sub_menu .nav_item:last-child a {
  padding-bottom: 1.2vw;
}
.sub_menu .nav_item:nth-child(1) {
  animation-duration: 0.2s;
  animation-delay: 0s;
}
.sub_menu .nav_item:nth-child(2) {
  animation-duration: 0.3s;
  animation-delay: 0.1s;
}
.sub_menu .nav_item:nth-child(3) {
  animation-duration: 0.4s;
  animation-delay: 0.2s;
}
.sub_menu .nav_item:nth-child(4) {
  animation-duration: 0.5s;
  animation-delay: 0.3s;
}
.sub_menu .nav_item:nth-child(5) {
  animation-duration: 0.6s;
  animation-delay: 0.4s;
}
.sub_menu .nav_item:nth-child(6) {
  animation-duration: 0.7s;
  animation-delay: 0.5s;
}
.sub_menu .nav_item:nth-child(7) {
  animation-duration: 0.8s;
  animation-delay: 0.6s;
}
.sub_menu .nav_item:nth-child(8) {
  animation-duration: 0.9s;
  animation-delay: 0.7s;
}
.sub_menu .nav_item:nth-child(9) {
  animation-duration: 1s;
  animation-delay: 0.8s;
}
.sub_menu .nav_item:nth-child(9) {
  animation-duration: 1.1s;
  animation-delay: 0.9s;
}
.sub-menu .menu-item:hover {
  background: #F8B195;
}
.sub_menu {
  position: absolute;
  top: 100%;
  left: 0;
  display: none;
  z-index: 1;
  margin: 0;
  list-style: none;
  padding-top: 1vw;
}

@keyframes enter {
  from {
    opacity: 0;
    transform: scaleY(0.98) translateY(10px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/*サブメニューアニメーション*/
.sub_menu a span::before {
  width: 6px;
  height: 6px;
  background: transparent;
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  border-top: 2px solid #ce2029;
  border-left: 2px solid #ce2029;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  transition: 0.3s;
  opacity: 0;
}
.sub_menu a span::after {
  width: 6px;
  height: 6px;
  background: transparent;
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  border-right: 2px solid #ce2029;
  border-bottom: 2px solid #ce2029;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  transition: 0.3s;
  opacity: 0;
}
.sub_menu a::before {
  width: 6px;
  height: 6px;
  background: transparent;
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  border-right: 2px solid #ce2029;
  border-top: 2px solid #ce2029;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  transition: 0.3s;
  opacity: 0;
}
.sub_menu a::after {
  width: 6px;
  height: 6px;
  background: transparent;
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  border-left: 2px solid #ce2029;
  border-bottom: 2px solid #ce2029;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  transition: 0.3s;
  opacity: 0;
}
.sub_menu a:hover {
  color: #ce2029;
}
.sub_menu a:hover:before {
  opacity: 1;
  right: 15px;
  top: 10px;
}
.sub_menu a:hover:after {
  opacity: 1;
  left: 15px;
  bottom: 10px;
}
.sub_menu a:hover span:before {
  opacity: 1;
  left: 15px;
  top: 10px;
}

.sub_menu a:hover span:after {
  opacity: 1;
  right: 15px;
  bottom: 10px;
}

/*親メニュー矢印*/
.nav_item.has_child {
  position: relative;
  padding-right: 1.5vw;
}
.nav_item.has_child:before {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 0.1vw);
  right: 0;
  transform: translateY(-50%);
  width: 1vw;
  height: 1vw;
  display: inline-block;
  vertical-align: middle;
  color: #111;
  line-height: 1;
  width: 0.8vw;
  height: 0.8vw;
  border: 0.1em solid currentColor;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  transform: translateY(-25%) rotate(135deg);
  transform: translateY(-50%) rotate(135deg);
}
.nav_item:hover.has_child::before {
  animation: rotate-scale-up-hor 0.5s linear both;
}
@keyframes rotate-scale-up-hor {
  0% {
            transform: scale(1) translateY(-50%)  rotate(135deg);
  }
  50% {
            transform: scale(1.5) translateY(-50%) rotate(135deg);
  }
  100% {
            transform: scale(1) translateY(-50%) rotate(135deg);
  }
}

/*メニューアンダーライン*/
.header_nav_container > .nav_item::after {
  content: "";
  position: absolute;
  bottom: 0.4vw;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 3px;
  background: #ce2029;
  transition: all 0.3s;
}
.header_nav_container > .nav_item:hover:after {
  width: 100%;
}

/*このサイトの地図コンテンツ*/
/*全体*/
.sitemap_contents {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.sitemap_contents_item {
  width: 43.2vw;
  background: #fff;
  position: relative;
  overflow: hidden;
}
.sitemap_contents_inner {
  padding: 1vw 2.584vw;
  position: relative;
  z-index: 1;
  margin: 3px;
  background: #fff;
  height: calc(100% - 6px);
  overflow: auto;
  max-height: 48vh;
}
.sitemap_contents_item:nth-child(1),.sitemap_contents_item:nth-child(2) {
  margin-bottom: 2vw;
}
.sitemap_contents_title,.sitemap_contents_title span {
  font-size: 1.334vw;
  font-family: "NotoSansJP-Bold";
}
.sitemap_contents_title {
  padding-bottom: 0.418vw;
  margin-bottom: 1.584vw;
  border-bottom: 1px solid #000;
}
.sitemap_contents_main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  width: 100%;
}
/*パネルボーダーグラデーション*/
.sitemap_contents_item:hover::before {
  content: "";
  display: block;
  background: linear-gradient( 90deg, rgb(210, 0, 0) 0%, rgba(208, 208, 208, 0.75) 50%, rgba(255, 255, 255, 0) 100% );
  height: 43.2vw;
  width: 30%;
  transform: translate(0);
  position: absolute;
  animation: rotate 3s cubic-bezier(.45,.05,.55,.95) forwards infinite;
  z-index: 0;
  top: 50%;
  transform-origin: top center;
  left: 50%;
}
@keyframes rotate {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}
/*左上メニュー*/
.sitemap_ul {
  margin: 0;
  list-style: none;
  width: 23.918vw;
}
.sitemap_li {
  margin-bottom: 1.001vw;
}
.sitemap_li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  font-size: 1.001vw;
  color: #333;
  position: relative;
  padding-right: 0.4vw;
}
.sitemap_li a:before {
  transform: scaleX(0);
  transform-origin: bottom right;
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  inset: 0 0 0 0;
  background: #F9E5E5;
  z-index: 0;
  transition: transform .3s ease;
  border-radius: 1vw 0 0 1vw;
}
.sitemap_li a:hover::before {
  transform: scaleX(1);
  transform-origin: bottom left;
}
.sitemap_li a:hover > div {
  font-family: "NotoSansJP-Bold";
}
.sitemap_li_label {
  margin-left: 0.6vw;
  margin-right: auto;
  position: relative;
}
.sitemap_li_field {
  position: relative;
}
.hi-icon::after {
  display: none;
  pointer-events: none;
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  content: '';
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.hi-icon::before {
  font-size: 0.8rem;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f054";
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.hi-icon {
  border: 1px solid #555;
  overflow: hidden;
  -webkit-transition: background 0.3s, color 0.3s, box-shadow 0.3s;
  -moz-transition: background 0.3s, color 0.3s, box-shadow 0.3s;
  transition: background 0.3s, color 0.3s, box-shadow 0.3s;
}
.hi-icon {
  display: inline-block;
  font-size: 0px;
  cursor: pointer;
  width: 1.668vw;
  height: 1.668vw;
  border-radius: 50%;
  position: relative;
  z-index: 1;
  color: #555;
  text-decoration: none;
  background: #fff;
}
.sitemap_li a:hover .hi-icon {
	color: #ce2029;
	border: 1px solid #ce2029;
}
.sitemap_li a:hover .hi-icon:before {
	animation: toRightFromLeft 0.3s forwards;
}
@keyframes toRightFromLeft {
	49% {
		transform: translate(100%);
	}
	50% {
		opacity: 0;
		transform: translate(-100%);
	}
	51% {
		opacity: 1;
	}
}

/*ドットライン*/
.sitemap_li_line {
  width: auto;
  display: block;
  border-top: 3px dotted #333;
  flex-shrink: 0;
  flex-grow: 1;
  margin: 0 0.6vw;
  position: relative;
}

/*CTA*/
.sitemap_cta_caption {
  font-size: 1.001vw;
  text-align: center;
  position: relative;
  line-height: 1.2;
  font-family: "NotoSansJP-Bold";
  margin-bottom: 0.584vw;
  animation: contraction 2s ease-out infinite;
}
@keyframes contraction {
  0%, 40%, 60%, 80% {
    transform: scale(1.0);
  }
  50%, 70% {
    transform: scale(0.95);
  }
}
.sitemap_cta_caption::before,.sitemap_cta_caption::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  width: 1px;
  height: 100%;
  background: #000;
  transform: translateY(-50%);
}
.sitemap_cta_caption::before {
  left: 0.8vw;
  transform: translateY(-50%) rotate(150deg);
}
.sitemap_cta_caption::after {
  right: 0.8vw;
  transform: translateY(-50%) rotate(30deg);
}
.sitemap_cta_btn a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  background: #CE2029;
  border-radius: 0.251vw;
  color: #fff;
  text-align: center;
  font-size: 1.001vw;
  padding: 0.668vw;
  line-height: 1.4;
  border: none;
  outline: none;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s ease-out;
  position: relative;
}
.sitemap_cta_btn a i {
  font-size: 1.5vw;
  margin-bottom: 0.418vw;
}
.sitemap_li a:hover > div {
  font-family: "NotoSansJP-Bold";
}

.sitemap_cta_btn a:hover {
  color: #fff;
  background: #A61920;
}
.sitemap_cta_btn a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: #ffffff;
  opacity: 0.8;
  transition: all 0.5s ease-out;
}
.sitemap_cta_btn a:hover::before {
  transform: translate(-50%, -50%) scale(20);
  opacity: 0;
}

/*右上スライドカード*/
.slide_card_container {
  width: 18vw;
  height: 13.501vw;
  position: relative;
  border-radius: 0.834vw;
  box-shadow: 0 0.834vw 1.668vw rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

.slide_card {
  width: 100%;
  height: 100%;
  border-radius: inherit;
}

.slide_card .slide_front {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1)
}

.slide_card .slide_front p {
  font-size: 1.001vw;
  font-weight: 700;
  opacity: 1;
  transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1)
}
.slide1 .slide_card .slide_front p {
  color: #9d0000;
}
.slide2 .slide_card .slide_front p {
  color: #b07402;
}

.slide_card .slide_content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.834vw;
  color: #e8e8e8;
  padding: 0;
  line-height: 1.5;
  border-radius: 0.418vw;
  transform: translateX(-96%);
  transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1);
}
.slide1 .slide_content {
  background: linear-gradient(180deg, #551212 0%, #C10000 100%);
}
.slide2 .slide_content {
  background: linear-gradient(180deg, #6F560B 0%, #D78D00 100%);
}

.slide_card .slide_content .slide_heading {
  font-size: 32px;
  font-weight: 700;
}

.slide_card:hover .slide_content {
  transform: translateY(0);
}

.slide_card:hover .slide_front {
  transform: translateX(-30%);
}

.slide_card:hover .slide_front p {
  opacity: 0;
}
.slide_content a {
  font-size: 1.001vw;
  text-decoration: none;
  font-family: "NotoSansJP-Bold";
  color: #fff;
  display: block;
  margin-bottom: 0.4vw;
}

/*スライド内リンクアニメーション*/
.slide2 .slide_content a {
  margin-bottom: 1vw;
}
.slide_content a:hover {
  color: #fff;
  opacity: 0.8;
}

.slide2 .slide_content a {
  position: relative;
}

.slide2 .slide_content a::before, .slide2 .slide_content a::after {
  position: absolute;
  width: 100%;
  height: 1px;
  background: currentColor;
  top: 100%;
  left: 0;
  pointer-events: none;
}

.slide2 .slide_content a::before {
  content: '';
  transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.3s cubic-bezier(0.2, 1, 0.8, 1);

}
.slide2 .slide_content a:hover::before {
  transform-origin: 0% 50%;
    transform: scale3d(1, 2, 1);
    transition-timing-function: cubic-bezier(0.7, 0, 0.2, 1);

}
.slide2 .slide_content a::after {
  content: '';
    top: calc(100% + 4px);
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform 0.4s 0.1s cubic-bezier(0.2, 1, 0.8, 1);

}
.slide2 .slide_content a:hover::after {
  transform-origin: 0% 50%;
    transform: scale3d(1, 1, 1);
    transition-timing-function: cubic-bezier(0.7, 0, 0.2, 1);
}

/*フリップカード*/
.sitemap_demos {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.sitemap_demo_item {
  width: 11.8vw;
}
.sitemap_demo_item:nth-child(1), .sitemap_demo_item:nth-child(2), .sitemap_demo_item:nth-child(3) {
  margin-bottom: 1.084vw;
}

.flip_card {
  position: relative;
  width: 100%;
  height: 100%;
  background-color: #f2f2f2;
  border-radius: 0.3vw;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 0 0 5px #ffffff80;
  transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.flip_card img {
  transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border: 3px solid;
  width: 100%;
}
.flip_card_content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  background-color: #f2f2f2;
  transform: rotateX(-90deg);
  transform-origin: bottom;
  transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.flip_card_content a {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding-left: 0.4vw;
}

.flip_card_title {
  margin: 0;
  font-size: 1.001vw;
  color: #333;
  font-weight: 700;
}
.card__description {
  font-size: 0.918vw;
}

.flip_card:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 16px rgba(255, 255, 255, 0.2);
}
.flip_card:hover .flip_card_content {
  transform: rotateX(0deg);
}

/*右下SNS*/
.sitemap_contents_item.item4 {
  background: none;
}
.sitemap_contents_item.item4 .sitemap_contents_inner {
  background: none;
  padding-bottom: 0;
  display: flex;
}
.sitemap_contents_item.item4::before {
  display: none;
}

/*QRコード*/
.qr_card {
  width: 9.168vw;
  height: 16.668vw;
  background: black;
  border-radius: 1.418vw;
  border: 2px solid rgb(40, 40, 40);
  padding: 0.334vw;
  position: relative;
  box-shadow: 2px 5px 15px rgba(0, 0, 0, 0.486);
}

.qr_card_int {
  background-image: linear-gradient(to right bottom, #ff0000, #ff0045, #ff0078, #ea00aa, #b81cd7, #8a3ad6, #5746cf, #004ac2, #003d94, #002e66, #001d3a, #020812);
  background-size: 200% 200%;
  background-position: 0% 0%;
  height: 100%;
  border-radius: 1.001vw;
  transition: all 0.6s ease-out;
  overflow: hidden;
  cursor: pointer;
}

.qr_card:hover .qr_card_int {
  background-position: 100% 100%;
}

.qr_top {
  position: absolute;
  top: 0px;
  right: 50%;
  transform: translate(50%, 0%);
  width: 35%;
  height: 0.751vw;
  background-color: black;
  border-bottom-left-radius: 0.418vw;
  border-bottom-right-radius: 0.418vw;
}

.qr_speaker {
  position: absolute;
  top: 0.168vw;
  right: 50%;
  transform: translate(50%, 0%);
  width: 40%;
  height: 0.168vw;
  border-radius: 0.168vw;
  background-color: rgb(20, 20, 20);
}

.qr_camera {
  position: absolute;
  top: 0.251vw;
  right: 84%;
  transform: translate(50%, 0%);
  width: 0.251vw;
  height: 0.251vw;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.048);
}

.qr_int {
  position: absolute;
  width: 0.251vw;
  height:0.251vw;
  border-radius: 50%;
  top: 50%;
  right: 50%;
  transform: translate(50%, -50%);
  background-color: rgba(0, 0, 255, 0.212);
}

.qr_btn1, .qr_btn2, .qr_btn3, .qr_btn4 {
  position: absolute;
  width: 0.168vw;
}

.qr_btn1, .qr_btn2, .qr_btn3 {
  height: 1.834vw;
  top: 27%;
  right: -0.251vw;
  background-image: linear-gradient(to right, #111111, #222222, #333333, #464646, #595959);
}

.qr_btn2, .qr_btn3 {
  transform: scale(-1);
  left: -0.168vw;
}

.qr_btn2, .qr_btn3 {
  transform: scale(-1);
  height: 1.251vw;
}

.qr_btn2 {
  top: 23%
}

.qr_btn3 {
  top: 33%
}

.qr_content {
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1vw;
  font-weight: bold;
  text-align: center;
  line-height: 2.918vw;
  height: 100%;
  transition: 0.5s ease-in-out;
}

.qr_hidden {
  display: none;
  opacity: 0;
  transition: all 0.3s ease-in;
  transition: height 0.5s ease;
}

.qr_card:hover .qr_hidden {
  opacity: 1;
  display: block;
  animation-name: slideUp;
  animation-fill-mode: forwards;
  animation-duration: 1s;
}

.qr_card:hover .qr_content {
  transform: translateY(-1.9vw);
}

.qr_hidden img {
  width: 6vw;
}
.qr_content > img {
  width: 7vw;
}
.qr_card:hover .qr_content > img {
  transition: all 0.3s;
}

@keyframes slideUp{
    0% {
      height: 0;
    }

    100% {
      height: 100%;
    }
}
.qr_card:not(:hover) .qr_hidden  {
  animation: slideDown 0.5s forwards;
}
@keyframes slideDown {
  0% {
    height: 100%;
  }

  100% {
    height: 0;
  }
}

/*SNSボタン*/
.sns_btns {
  display: flex;
  flex-wrap: wrap;
  width: 16vw;
  justify-content: space-between;
  position: relative;
}
.sns_btn {
  width: 7.668vw;
}
.sns_btn1,.sns_btn2 {
  margin-bottom: 3vw;
}
.sns_btn1, .sns_btn3 {
}
.sns_btn button {
  transform: rotate(-25deg) skew(25deg);
  transform-style: preserve-3d;
  position: relative;
  list-style: none;
  width: 4.168vw;
  height: 3.334vw;
  border: none;
  background: transparent;
  font-family: inherit;
  cursor: pointer;
}

.sns_btn button:before {
  content: '';
  position: absolute;
  bottom: -10px;
  left: -5px;
  width: 100%;
  height: 10px;
  background: #202020;
  transform: skewX(-41deg);
}

.sns_btn button:after {
  content: '';
  position: absolute;
  top: 5px;
  left: -9px;
  width: 9px;
  height: 100%;
  background: #111;
  transform: skewY(-49deg);
}

.sns_btn button span {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #2a2a2a;
  color: #fff;
  font-size: 2.3vw;
  transition: 1.1s ease-out;
}

.sns_btn button:hover span {
  z-index: 1000;
  transition: .3s;
  color: #fff;
}

.sns_btn button:hover span:nth-child(5) {
  transform: translate(40px, -40px);
  opacity: 1;
}

.sns_btn button:hover span:nth-child(4) {
  transform: translate(30px, -30px);
  opacity: .8;
}

.sns_btn button:hover span:nth-child(3) {
  transform: translate(20px, -20px);
  opacity: .6;
}

.sns_btn button:hover span:nth-child(2) {
  transform: translate(10px, -10px);
  opacity: .4;
}

.sns_btn button:hover span:nth-child(1) {
  transform: translate(0px, 0px);
  opacity: .2;
}

.sns_btn button:active span:nth-child(5) {
  transform: translate(20px, -20px);
  opacity: 1;
}

.sns_btn button:active span:nth-child(4) {
  transform: translate(15px, -15px);
}

.sns_btn button:active span:nth-child(3) {
  transform: translate(10px, -10px);
}

.sns_btn button:active span:nth-child(2) {
  transform: translate(5px, -5px);
}

.sns_btn button:active span:nth-child(1) {
  transform: translate(0px, 0px);
}

.sns_btn button:nth-child(1):hover span {
  background: #52E19F;
}

.sns_btn1 button:nth-child(1):hover span {
  background: #f00;
}
.sns_btn2 button:nth-child(1):hover span {
  background: #000;
}
.sns_btn3 button:nth-child(1):hover span {
  background: #06C755;
}
.sns_btn4 button:nth-child(1):hover span {
  background: #3c4579;
}

.youtube_bg::before {
  content: "";
  width: 1.4vw;
  background: #fff;
  position: absolute;
  top: calc(50% - 0.5vw);
  left: calc(50% - 0.7vw);
  height: 1.2vw;
  z-index: 0;
}
.sns_btn1 i {
  position: relative;
  color: #FF0000;
}
.sns_btn:hover i {
  color: #fff;
}
.sns_btn:hover .youtube_bg:before {
  display: none;
}

.line_bg::before {
  content: "";
  width: 2vw;
  background: #fff;
  position: absolute;
  top: calc(50% - 0.8vw);
  left: calc(50% - 1vw);
  height: 1.9vw;
  z-index: 0;
}
.sns_btn3 i {
  position: relative;
  color: #06C755;
}
.sns_btn:hover i {
  color: #fff;
}
.sns_btn:hover .line_bg:before {
  display: none;
}

.sns_btns:before {
  content: "SNS";
  position: absolute;
  top: 0vw;
  left: -2vw;
  transform: translate(-50%,-50%) skew(30deg) rotate(-20deg);
  color: #aaaaaa29;
  font-size: 8vw;
  text-shadow: 0 0 15px #4a4a4aed;
}

/*メニュー閉じるボタン*/
.circle_button {
  position: relative;
  overflow: hidden;
  background: #42455a;
  width: 8.334vw;
  height: 8.334vw;
  border-radius: 50%;
  border: none;
  font-size: 1.2rem;
  color: #e0ffff;
  font-weight: 500;
  cursor: pointer;
  z-index: 1;
}
.circle_button:active{
  transform: scale(0.95);
}
.circle_button::before {
  content: '';
  position: absolute;
  inset: -1px 2.501vw;
  background: #910000;
  transition: 500ms;
  animation: circleRotate 4s linear infinite;
  z-index: -1;
}
.circle_button:hover::before{
  inset: -1px;
}
.circle_button::after{
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: #22232e;
  z-index: -1;
}
@keyframes circleRotate {
  0%{
    transform: rotate(0deg);
  }
  100%{
    transform: rotate(360deg);
  }
}

/*-----------------------------------------------フッター-----------------------------------------------*/
#footer {
  background: url(/wp-content/themes/original/images/home_bg_grd.webp);
  background-size: cover;
}
/*下部CTA*/
.bottom_contact_items {
  display: flex;
  width: 70vw;
  margin: 0 auto -12vw;
  justify-content: space-between;
}
.bottom_contact_item {
  width: 32vw;
  height: 32vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 1vw;
  background-color: #fffffe;
  border-radius: 0.8vw;
  position: relative;
  overflow: hidden;
  box-shadow: 0px 0px 8px 3px #ddd;
}
.bottom_contact_item::before {
  content: "";
  width: 32vw;
  height: 12vw;
  position: absolute;
  top: 0;
  border-top-left-radius: 0.8vw;
  border-top-right-radius: 0.8vw;
  border-bottom: 3px solid #fefefe;
  transition: all 0.5s ease;
}
.bottom_contact_item * {
  z-index: 1;
}
.bottom_contact_icon {
  width: 10vw;
  height: 10vw;
  border-radius: 50%;
  border: 4px solid #fefefe;
  margin-top: 3vw;
  transition: all 0.5s ease;
  position: relative;
}
.bottom_contact_item_info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2vw;
  transition: all 0.5s ease;
}
.bottom_contact_item_info span {
  font-weight: 600;
  font-size: 2.4vw;
  color: #161A42;
  margin-top: 2vw;
  line-height: 5px;
  transition: all 1s;
}
.bottom_contact_item_info p {
  color: rgba(0, 0, 0, 0.5);
  transition: all 1s;
}
.bottom_contact_button {
  text-decoration: none;
  color: white;
  padding: 5px 20px;
  border-radius: 5px;
  border: 1px solid white;
  transition: all 0.5s ease;
  text-shadow: 1px 1px 5px #000;
}
.bottom_contact_item:hover::before {
  width: 32vw;
  height: 32vw;
  border-bottom: none;
  border-bottom-left-radius: 0.8vw;
  border-bottom-right-radius: 0.8vw;
  transform: scale(0.95);
}
.bottom_contact_item:hover .bottom_contact_item_info {
  transform: translate(0%,-25%);
  color: #fff;
}
.bottom_contact_item:hover .bottom_contact_item_info span,
.bottom_contact_item:hover .bottom_contact_item_info p{
  color: #fff;
  text-shadow: 1px 1px 5px #000;
}
.bottom_contact_item:hover .bottom_contact_icon {
  transform: scale(2) translate(-45%,-35%);
}
.bottom_contact_button:hover {
  background-color: #FF6844;
  transform: scale(1.1);
  color: #fff;
}
.bottom_contact {
  padding: 25vw 0 3vw;
}
.bottom_contact_icon i {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  font-size: 4vw;
  color: #fff;
}
.bottom_contact_item.form::before {
  background: linear-gradient(93.68deg, #FF0033 0%, #461E26 100%);
}
.bottom_contact_item.line::before {
  background: linear-gradient(92.44deg, #06C655 0%, #008C3A 100%);
}
.form .bottom_contact_icon {
  background: linear-gradient(93.68deg, #FF0033 0%, #461E26 100%);
}
.line .bottom_contact_icon {
  background: linear-gradient(92.44deg, #06C655 0%, #008C3A 100%);
}
.form .bottom_contact_button {
  background: linear-gradient(93.68deg, #FF0033 0%, #461E26 100%);
}
.line .bottom_contact_button {
  background: linear-gradient(92.44deg, #06C655 0%, #008C3A 100%);
}

/*Footer　全体*/
.footer_nav_container {
  display: flex;
}
.footer_nav_title {
  font-size: 1.4vw;
  font-weight: bold;
  margin-bottom: 1vw;
}
.footer_nav_items {
  margin: 0;
  list-style: none;
}
.footer_nav_items li {
  margin-bottom: 0.4vw;
  transition: all cubic-bezier(.68,-0.55,.27,1.55) 0.6s;
}
.footer_nav_items li:hover {
  transform: scale(1.05);
  transform-origin: left center;
}
.footer_nav_items li a {
  text-decoration: none;
  font-size: 1vw;
  font-weight: bold;
}
.footer_nav_items li a i {
  margin-right: 0.4vw;
}
.footer_nav {
  margin-right: 3vw;
}
.footer_contents {
  background: #eeeeeee8;
}

/*Footer contents*/
.footer_content {
  display: flex;
  justify-content: space-between;
  width: 80vw;
  margin: auto;
  padding-top: 4.6vw;
}
.footer_logos {
  width: 12vw;
}

/*Footer LOGO*/
.footer_logo {
  margin-bottom: 1vw;
  background: #d7d7d7;
  border: 2px solid #ccc;
}
.footer_logo img {
  transition: transform 0.5s ease-in-out;
}
.footer_logo:hover img {
  transform: rotateY(720deg);
}

/*Footer SNS*/
.footer_sns {
  display: flex;
  justify-content: space-evenly;
}
.footer_sns_btn {
	width: 2.5vw;
	height: 2.5vw;
	display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background-color: transparent;
    position: relative;
    /* overflow: hidden; */
    border-radius: 0.3vw;
    cursor: pointer;
    transition: all 0.3s;
    position: relative;
    padding: 0;
}
.footer_sns_svg {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    backdrop-filter: blur(0px);
    letter-spacing: 0.8px;
    border-radius: 0.3vw;
    transition: all 0.3s;
    border: 1px solid rgba(156, 156, 156, 0.466);
	position: absolute;
	z-index: 1;
}
.footer_sns_bg {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    z-index: 0;
    border-radius: 0.3vw;
    pointer-events: none;
    transition: all 0.3s;
}
.footer_sns_btn:hover .footer_sns_bg {
    transform: rotate(35deg);
    transform-origin: bottom;
}

.footer_sns_btn.youtube .footer_sns_bg {
    background: #ff0000;
}
.footer_sns_btn.youtube:hover .footer_sns_svg {
    border: 1px solid rgba(255, 110, 110, 0.466);
    background-color: rgba(219, 219, 219, 0.466);
    backdrop-filter: blur(4px);
}
.footer_sns_btn.x .footer_sns_bg {
  
  background: #000;
}
.footer_sns_btn.line .footer_sns_bg {
  
  background: #008C3A;
}
.footer_sns_btn.mail .footer_sns_bg {
  
  background: #eecd69;
}
.footer_sns_btn.line svg path {
  fill: #ffffffd9;
}
.footer_sns_btn svg {
  width: 70%;
}
.footer_sns_btn.mail svg path {
  fill: #fff;
}
.footer_sns_btn.line svg {
  width: 100%;
  height: 100%;
}

/*Footer QR*/
.footer_qr_container {
  position: relative;
  height: 6vw;
}
.footer_qr_loader {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 10;
  width: 6.668vw;
  height: 4.168vw;
  margin-left: -3.334vw;
  margin-top: -2.084vw;
  border-radius: 0.418vw;
  background: #1e3f57;
  animation: dot1_ 3s cubic-bezier(0.55,0.3,0.24,0.99) infinite;
}
.footer_qr_loader:nth-child(2) {
  z-index: 11;
  width: 6.251vw;
  height: 3.751vw;
  margin-top: -1.834vw;
  margin-left: -3.084vw;
  border-radius: 0.251vw;
  background: #3c517d;
  animation-name: dot2_;
}
.footer_qr_loader:nth-child(3) {
  z-index: 12;
  width: 1.667vw;
  height: 0.834vw;
  margin-top: 2.084vw;
  margin-left: -0.834vw;
  border-radius: 0 0 0.418vw 0.418vw;
  background: #6bb2cd;
  animation-name: dot3_;
}
@keyframes dot1_ {
  3%,97% {
    width: 6.668vw;
    height: 4.168vw;
    margin-top: -2.084vw;
    margin-left: -3.334vw;
  }
  30%,36% {
    width: 3.334vw;
    height: 5.001vw;
    margin-top: -2.501vw;
    margin-left: -1.667vw;
  }
  63%,69% {
    width: 1.667vw;
    height: 3.334vw;
    margin-top: -1.667vw;
    margin-left: -0.834vw;
  }
}
@keyframes dot2_ {
  3%,97% {
    height: 3.751vw;
    width: 6.251vw;
    margin-left: -3.084vw;
    margin-top: -1.834vw;
  }
  30%,36% {
    width: 2.918vw;
    height: 4.001vw;
    margin-left: -1.418vw;
    margin-top: -2.001vw;
  }
  63%,69% {
    width: 1.334vw;
    height: 2.501vw;
    margin-left: -0.668vw;
    margin-top: -1.251vw;
  }
}
@keyframes dot3_ {
  3%,97% {
    height: 0.834vw;
    width: 1.667vw;
    margin-left: -0.834vw;
    margin-top: 2.084vw;
  }
  30%,36% {
    width: 0.334vw;
    height: 0.334vw;
    margin-left: -0.168vw;
    margin-top: 2.001vw;
    border-radius: 0.668vw;
  }
  63%,69% {
    width: 0.668vw;
    height: 0.168vw;
    margin-left: -0.334vw;
    margin-top: -1.501vw;
    border-radius: 0.834vw;
  }
}

.footer_qr_image {
  position: absolute;
  bottom: -90%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 10vw;
  background: #ce2029;
  padding: 0.6vw;
  opacity: 0;
  transition: all 0.3s;
}
.footer_qr_wrap {
  width: 15vw;
  height: 100%;
  margin: auto;
}
.footer_qr_wrap:hover .footer_qr_image {
  opacity: 1;
  bottom: 100%;
  transform: translate(-50%,0%);
}

.footer_copyright {
  text-align: center;
  background: #eeeeeee8;
  padding: 3vw 0 1vw;
}

/*プログレススクロールトップボタン*/
.progress-wrap {
  position: fixed;
  right: 4.168vw;
  bottom: 4.168vw;
  height: 3.834vw;
  width: 3.834vw;
  cursor: pointer;
  display: block;
  border-radius: 4.168vw;
  box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.2);
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  transform: translateY(15px);
  -webkit-transition: all 200ms linear;
  transition: all 200ms linear;
}
.progress-wrap.active-progress {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.progress-wrap::after {
  position: absolute;
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f062';
  text-align: center;
  line-height: 3.834vw;
  font-size: 1.501vw;
  color: #ce2029;
  left: 0;
  top: 0;
  height: 3.834vw;
  width: 3.834vw;
  cursor: pointer;
  display: block;
  z-index: 1;
  -webkit-transition: all 200ms linear;
  transition: all 200ms linear;
}
.lightScrollIcon::after {
  color: #ecedf3 !important;
}
.progress-wrap:hover::after {
  opacity: 0;
}
.progress-wrap::before {
  position: absolute;
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f062';
  text-align: center;
  line-height: 3.834vw;
  font-size: 1.501vw;
  opacity: 0;
  background-image: linear-gradient(298deg, #ce2029, #333);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  left: 0;
  top: 0;
  height: 3.834vw;
  width: 3.834vw;
  cursor: pointer;
  display: block;
  z-index: 2;
  -webkit-transition: all 200ms linear;
  transition: all 200ms linear;
}
.progress-wrap:hover::before {
  opacity: 1;
}
.progress-wrap svg path {
  fill: none;
}
.progress-wrap svg.progress-circle path {
  stroke: #ce2029;
  stroke-width: 4;
  box-sizing: border-box;
  -webkit-transition: all 200ms linear;
  transition: all 200ms linear;
}


.privacy_link {
  margin-top: 1vw;
  text-align: center;
}
.privacy_link a {
  font-size: 0.8vw;
  color: #777;
  text-decoration: none;
}

/*-----------------------------------------------トップページ-----------------------------------------------*/
/* ローディング画面 */
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1s;
  background-color: #222;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
}
/*ローディングロゴアニメーション*/
#loading_contents {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 21.001vw;
}
#logo_animation {
  width: 6.668vw;
  margin: auto;
}
/*ローディングプログレスバー*/
#loading_progress {
  margin: auto;
  width: 100%;
  height: 0.668vw;
  position: relative;
}
/*ローディングテキスト*/
.loading_text {
    display: flex;
    overflow: hidden;
    justify-content: center;
}
.loading_text p {
    color: #fff;
    font-size: 1.501vw;
    font-weight: bold;
    letter-spacing: .06em;
    margin: 0;

    /* ここからアニメーション関係 */
    transform: translateY(2em);
    animation: textanimation 1s forwards;
}
/* 1文字目 */
.loading_text p:nth-child(1) {
    animation-delay: 0.2s
}
/* 2文字目 */
.loading_text p:nth-child(2) {
    animation-delay: 0.4s
}
/* 3文字目 */
.loading_text p:nth-child(3) {
    animation-delay: 0.6s
}
/* 4文字目 */
.loading_text p:nth-child(4) {
    animation-delay: 0.8s
}
/* 5文字目 */
.loading_text p:nth-child(5) {
    animation-delay: 1s
}
/* 6文字目 */
.loading_text p:nth-child(6) {
    animation-delay: 1.2s
}
/* 7文字目 */
.loading_text p:nth-child(7) {
    animation-delay: 1.4s
}
/* 8文字目 */
.loading_text p:nth-child(8) {
    animation-delay: 1.6s
}
/* 9文字目 */
.loading_text p:nth-child(9) {
    animation-delay: 1.8s
}
/* 10文字目 */
.loading_text p:nth-child(10) {
    animation-delay: 2s
}
@keyframes textanimation {
    0% {
        transform: translateY(2em);
    }

    100% {
        transform: translateY(0);
    }
}
/* ローディング非表示 */
.loaded {
  opacity: 0;
  visibility: hidden;
}
/*全体背景*/
body:before {
  content: "";
  background: url(/wp-content/themes/original/images/home_bg_grd.webp);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
  background-size: 100%;
}
body::after {
  content: "";
  background: rgba(255, 255, 255, 0.9);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
  transition: all 0.8s;
}
body.in_service::after,body.in_rds::after {
  background: rgba(0, 0, 0, 0.7);
}

#content {
  max-width: 100%;
  padding: 0;
  display: block;
}
/*FV*/
.fv_container {
  display: flex;
  overflow: hidden;
  position: relative;
}
.fv_main_container {
  width: 50vw;
  height: 100vh;
  position: relative;
}
.fv_main_contents {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
.fv_h2 {
  font-size: 4.834vw;
  color: #333;
  white-space: nowrap;
}
.fv_copy {
  text-align: right;
  font-size: 2.168vw;
  font-weight: 600;
  display: flex;
  justify-content: end;
  overflow: hidden;
  opacity: 0;
}
.fv_copy.animated {
  opacity: 1;
}
.fv_image_container {
  display: flex;
  overflow: hidden;
  width: 50vw;
  background: #f4e9e9;
  -webkit-mask-image: linear-gradient(to left, rgb(243, 236, 234) 90%, rgba(128, 77, 77, 0) 100%);
  mask-image: linear-gradient(to left, rgb(243, 236, 234) 30%, rgba(128, 77, 77, 0) 100%);
}
.fv_image_wrap {
  display: flex;
  animation: infinity-scroll-left 60s infinite linear 0.5s both;
}
@keyframes infinity-scroll-left {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}
.fv_image {
  width: 100vw;
}
.fv_image img {
  height: 100vh;
  width: 100%;
}

/*FVタイトルアニメーション*/
.fv_h2 {
  background-image: linear-gradient( -225deg, #801111 0%, #d99884 29%, #262424 67%, #7b4c38 100% );
  background-size: auto auto;
  background-clip: border-box;
  background-size: 200% auto;
  color: #fff;
  background-clip: text;
  text-fill-color: transparent;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: textclip 4s cubic-bezier(.59,-0.54,.2,2.47) infinite;
  display: inline-block;
}

@keyframes textclip {
  to {
    background-position: 200% center;
  }
}

/*FVコピーアニメーション*/
.fv_copy.animated span {
  position: relative;
  display: inline-block;
  transform: translateY(2em);
  animation: textanimation 1s forwards;
  font-family: "NotoSansJP-Medium";
}
/* 1文字目 */
.fv_copy span:nth-child(1) {
    animation-delay: 0.2s
}
/* 2文字目 */
.fv_copy span:nth-child(2) {
    animation-delay: 0.4s
}
/* 3文字目 */
.fv_copy span:nth-child(3) {
    animation-delay: 0.6s
}
/* 4文字目 */
.fv_copy span:nth-child(4) {
    animation-delay: 0.8s
}
/* 5文字目 */
.fv_copy span:nth-child(5) {
    animation-delay: 1s
}
/* 6文字目 */
.fv_copy span:nth-child(6) {
    animation-delay: 1.2s
}
/* 7文字目 */
.fv_copy span:nth-child(7) {
    animation-delay: 1.4s
}
/* 8文字目 */
.fv_copy span:nth-child(8) {
    animation-delay: 1.6s
}
/* 9文字目 */
.fv_copy span:nth-child(9) {
    animation-delay: 1.8s
}
/* 10文字目 */
.fv_copy span:nth-child(10) {
    animation-delay: 2s
}
/* 11文字目 */
.fv_copy span:nth-child(11) {
    animation-delay: 2.2s
}
/* 12文字目 */
.fv_copy span:nth-child(12) {
    animation-delay: 2.4s
}
/* 13文字目 */
.fv_copy span:nth-child(13) {
    animation-delay: 2.6s
}

@keyframes textanimation {
    0% {
        transform: translateY(2em);
    }

    100% {
        transform: translateY(0);
    }
}

/*スクロールアイコン*/
.scroll_icon_wrap {
  position: absolute;
  bottom: 2vw;
  left: 50%;
  transform: translateX(-50%);
}
/*スクロールアイコンアニメーション*/
.scroll_icon p {
  margin-top: 1vw;
  letter-spacing: 0.2vw;
  color: #ffffff;
  -webkit-animation: colorText 5s ease-out infinite, nudgeText 5s ease-out infinite;
          animation: colorText 5s ease-out infinite, nudgeText 5s ease-out infinite;
  font-size: clamp(10px, 0.8vw, 14px);
}
.mouse {
  background: #e5d2cb linear-gradient(#98919100 0%, #9f9f9f69 50%, #fff 50%, #fff 100%);
  position: relative;
  width: 1.668vw;
  height: 3.168vw;
  border-radius: 8.334vw;
  background-size: 100% 200%;
  -webkit-animation: colorSlide 5s linear infinite, nudgeMouse 5s ease-out infinite;
          animation: colorSlide 5s linear infinite, nudgeMouse 5s ease-out infinite;
  margin: auto;
}
.mouse:before, .mouse:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
.mouse:before {
  width: 1.334vw;
  height: 2.668vw;
  background-color: #cec4bd;
  border-radius: 100px;
}
.mouse:after {
  background-color: #ffffff;
  width: 0.418vw;
  height: 0.418vw;
  border-radius: 100%;
  -webkit-animation: trackBallSlide 5s linear infinite;
          animation: trackBallSlide 5s linear infinite;
}

@-webkit-keyframes colorSlide {
  0% {
    background-position: 0% 100%;
  }
  20% {
    background-position: 0% 0%;
  }
  21% {
    background-color: #4e5559;
  }
  29.99% {
    background-color: #ffffff;
    background-position: 0% 0%;
  }
  30% {
    background-color: #4e5559;
    background-position: 0% 100%;
  }
  50% {
    background-position: 0% 0%;
  }
  51% {
    background-color: #4e5559;
  }
  59% {
    background-color: #ffffff;
    background-position: 0% 0%;
  }
  60% {
    background-color: #4e5559;
    background-position: 0% 100%;
  }
  80% {
    background-position: 0% 0%;
  }
  81% {
    background-color: #4e5559;
  }
  90%, 100% {
    background-color: #ffffff;
  }
}

@keyframes colorSlide {
  0% {
    background-position: 0% 100%;
  }
  20% {
    background-position: 0% 0%;
  }
  21% {
    background-color: #4e5559;
  }
  29.99% {
    background-color: #ffffff;
    background-position: 0% 0%;
  }
  30% {
    background-color: #4e5559;
    background-position: 0% 100%;
  }
  50% {
    background-position: 0% 0%;
  }
  51% {
    background-color: #4e5559;
  }
  59% {
    background-color: #ffffff;
    background-position: 0% 0%;
  }
  60% {
    background-color: #4e5559;
    background-position: 0% 100%;
  }
  80% {
    background-position: 0% 0%;
  }
  81% {
    background-color: #4e5559;
  }
  90%, 100% {
    background-color: #ffffff;
  }
}
@-webkit-keyframes trackBallSlide {
  0% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  6% {
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  14% {
    opacity: 0;
    transform: scale(0.4) translateY(20px);
  }
  15%, 19% {
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  28%, 29.99% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  30% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  36% {
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  44% {
    opacity: 0;
    transform: scale(0.4) translateY(20px);
  }
  45%, 49% {
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  58%, 59.99% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  60% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  66% {
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  74% {
    opacity: 0;
    transform: scale(0.4) translateY(20px);
  }
  75%, 79% {
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  88%, 100% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
}
@keyframes trackBallSlide {
  0% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  6% {
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  14% {
    opacity: 0;
    transform: scale(0.4) translateY(20px);
  }
  15%, 19% {
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  28%, 29.99% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  30% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  36% {
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  44% {
    opacity: 0;
    transform: scale(0.4) translateY(20px);
  }
  45%, 49% {
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  58%, 59.99% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  60% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  66% {
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  74% {
    opacity: 0;
    transform: scale(0.4) translateY(20px);
  }
  75%, 79% {
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  88%, 100% {
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
}
@-webkit-keyframes nudgeMouse {
  0% {
    transform: translateY(0);
  }
  20% {
    transform: translateY(8px);
  }
  30% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(8px);
  }
  60% {
    transform: translateY(0);
  }
  80% {
    transform: translateY(8px);
  }
  90% {
    transform: translateY(0);
  }
}
@keyframes nudgeMouse {
  0% {
    transform: translateY(0);
  }
  20% {
    transform: translateY(8px);
  }
  30% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(8px);
  }
  60% {
    transform: translateY(0);
  }
  80% {
    transform: translateY(8px);
  }
  90% {
    transform: translateY(0);
  }
}
@-webkit-keyframes nudgeText {
  0% {
    transform: translateY(0);
  }
  20% {
    transform: translateY(2px);
  }
  30% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(2px);
  }
  60% {
    transform: translateY(0);
  }
  80% {
    transform: translateY(2px);
  }
  90% {
    transform: translateY(0);
  }
}
@keyframes nudgeText {
  0% {
    transform: translateY(0);
  }
  20% {
    transform: translateY(2px);
  }
  30% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(2px);
  }
  60% {
    transform: translateY(0);
  }
  80% {
    transform: translateY(2px);
  }
  90% {
    transform: translateY(0);
  }
}
@-webkit-keyframes colorText {
  21% {
    color: #4e5559;
  }
  30% {
    color: #ffffff;
  }
  51% {
    color: #4e5559;
  }
  60% {
    color: #ffffff;
  }
  81% {
    color: #4e5559;
  }
  90% {
    color: #ffffff;
  }
}
@keyframes colorText {
  21% {
    color: #4e5559;
  }
  30% {
    color: #ffffff;
  }
  51% {
    color: #4e5559;
  }
  60% {
    color: #ffffff;
  }
  81% {
    color: #4e5559;
  }
  90% {
    color: #ffffff;
  }
}

/*トップページメニューセクション*/
.global_menu_bg {
  height: 100vh;
  width: 100vw;
}
.global_menu_bg_text {
  position: absolute;
  white-space: nowrap;
  font-size: 30vh;
  color: #D2BBBB33;
  font-weight: bold;
  left: 0;
}
.global_menu_bg_text1 {
  top: calc(50% + 2vw);
  transform: translateY(-50%);
}
.global_menu_bg_text2 {
  top: 50%;
  transform: translateY(-50%);
}
.global_menu_bg_text3 {
  top: calc(50% - 3vw);
  transform: translateY(-50%);
}
.global_menu_bg_text ul {
  list-style: none;
  display: flex;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.global_menu_bg_text ul {
  animation: loop-slide1 120s infinite linear 1s both;
}
@keyframes loop-slide1 {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
.global_menu_bg_text2 ul {
  animation-delay: 1s;
}
.global_menu_bg_text2 ul {
  animation-delay: 3s;
}

.global_menu {
  padding: 100vh 0 70vh;
  position: relative;
  overflow: hidden;
}
.global_menu_inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
.global_menu .card a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  font-weight: bold;
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.global_menu .card .main_text {
  font-size: 2.084vw;
  font-family: "NotoSansJP-Bold";
}
.global_menu .card .sub_text {
  font-size: 1.001vw;
}
.global_menu .card a:before {
  content: "";
  display: block;
  position: absolute;
  top: -6vw;
  right: -6vw;
  width: 10vw;
  height: 10vw;
  background: #f2efef3d;
  border-radius: 50%;
  transition: all 0.5s;
}
.global_menu .card a:hover:before {
  top: -3vw;
  right: -3vw;
  z-index: -1;
}
.global_menu .card a span {
  transition: all 0.6s cubic-bezier(.68,-0.55,.27,1.55);
}
.global_menu .card a:hover span {
  letter-spacing: 0.3vw;
}

/*メニュー*/
.main_back {
  position: absolute;
  border-radius: 10px;
  transform: rotate(90deg);
  width: 41.7vw;
  height: 41.7vw;
  background: linear-gradient(270deg, #03a9f4, #cc39a4, #ffb5d2);
  z-index: -2;
  box-shadow: inset 0px 0px 180px 5px #ffffff;
}

.global_menu .main {
  display: flex;
  flex-wrap: wrap;
  width: 22.168vw;
  align-items: center;
  justify-content: center;
  z-index: -1;
  width: 40vw;
}

.global_menu .card {
  width: 12.251vw;
  height: 12.251vw;
  border-top-left-radius: 10px;
  background: lightgrey;
  transition: .4s ease-in-out, .2s background-color ease-in-out, .2s background-image ease-in-out;
  background: rgba(255, 255, 255, 0.596);
  backdrop-filter: blur(5px);
  border: 1px solid transparent;
  -webkit-backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.global_menu .card1 a {
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .card2 {
  border-radius: 0px;
}

.global_menu .card2 a {
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .card3 {
  border-top-right-radius: 10px;
  border-top-left-radius: 0px;
}

.global_menu .card3 a {
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .card4 {
  border-radius: 0px;
}

.global_menu .card4 a {
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .card5 {
  border-radius: 0px;
}

.global_menu .card5 a {
  position: absolute;
  margin-left: 0.2em;
  margin-top: 0.2em;
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .card6 {
  border-radius: 0px;
}

.global_menu .card6 a {
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .card7 {
  border-bottom-left-radius: 10px;
  border-top-left-radius: 0px;
}

.global_menu .card7 a {
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .card8 {
  border-radius: 0px;
}

.global_menu .card8 a {
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .card9 {
  border-bottom-right-radius: 10px;
  border-top-left-radius: 0px;
}

.global_menu .card9 a {
  opacity: 0;
  transition: .2s ease-in-out;
}

.global_menu .main:hover {
  width: 45.7vw;
  cursor: pointer;
}

.global_menu .main:hover .main_back {
  opacity: 0;
}

.global_menu .main:hover .card {
  margin: 0.3vw;
  border-radius: 0.834vw;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.2);
}

.global_menu .main:hover .card5 {
  border: transparent;
}

.global_menu .main:hover .text {
  opacity: 0;
  z-index: -3;
}

.global_menu .main:hover .card1 a {
  opacity: 1;
}

.global_menu .main:hover .card2 a {
  opacity: 1;
}

.global_menu .main:hover .card3 a {
  opacity: 1;
}

.global_menu .main:hover .card4 a {
  opacity: 1;
}

.global_menu .main:hover .card5 a {
  opacity: 1;
}

.global_menu .main:hover .card6 a {
  opacity: 1;
}

.global_menu .main:hover .card7 a {
  opacity: 1;
}

.global_menu .main:hover .card8 a {
  opacity: 1;
}

.global_menu .main:hover .card9 a {
  opacity: 1;
}

.global_menu .card:hover {
  animation: backgroundIMG .1s;
  animation-fill-mode: forwards;
}

@keyframes backgroundIMG {
  100% {
    background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%);
  }
}

.global_menu .text {
  position: absolute;
  font-size: 2.084vw;
  font-family: "NotoSansJP-Bold";
  color: #444;
  transition: .4s ease-in-out;
  color: black;
  text-align: center;
  letter-spacing: 0.33em;
  z-index: 3;
}

/*Service*/
.home .service {
  padding: 70vh 0;
  overflow: hidden;
}

/*Service背景*/
.service_outer {
  position: relative;
}
.service_bg {
  position: relative;
  height: 100vh;
}

.service_bg_text {
  position: absolute;
  white-space: nowrap;
  font-size: 25vh;
  color: #D2BBBB33;
  font-weight: bold;
  left: 0;
}
.service_bg_text1 {
  top: 0vw;
}
.service_bg_text2 {
  top: 50%;
  transform: translateY(-50%);
}
.service_bg_text3 {
  bottom: 0vw;
}
.service_bg_text ul {
  list-style: none;
  display: flex;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.service_bg_text ul {
  animation: loop-slide1 120s infinite linear 1s both;
}
@keyframes loop-slide1 {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
.global_menu_bg_text2 ul {
  animation-delay: 1s;
}
.global_menu_bg_text2 ul {
  animation-delay: 3s;
}

.in_service .section_title,.in_rds .section_title {
  color: #ffffffc7;
  text-shadow: 1px 1px 5px #6c6c6c;
}
.section_title {
  font-size: 2.501vw;  
  margin-bottom: 3.334vw;
  margin-left: 5.001vw;
  transition: all 0.8s;
}
.service_inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 100%;
}
.service_items {
  width: 75vw;
  margin: 0 auto 4.168vw;
  display: flex;
  justify-content: space-between;
}
.service_item {
  color: #fff;
  background: rgba(0, 0, 0, 0.55);
  padding: 3.834vw 3.168vw;
  border-radius: 1.168vw;
  position: relative;
}
.service_item:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 1.168vw;
  border: 0.1vw solid transparent;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  -webkit-mask-composite: destination-out;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
  mask-composite: exclude;
}
.service_item:nth-child(1)::before {
  background: linear-gradient(135deg,rgb(255, 20, 20) 0%,rgba(255, 139, 139, 0.87) 15%,rgba(255, 62, 62, 0.39) 25%,rgba(240, 82, 82, 0.57) 35%,rgba(234, 52, 43, 0.76) 45%,rgba(223, 55, 47, 0.76) 55%,rgba(208, 38, 30, 0.67) 65%,rgba(134, 31, 27, 0.47) 75%,rgba(255, 122, 116, 0.51) 85%,rgba(244, 44, 33, 0.65) 95%,rgb(255, 20, 20) 100%) border-box border-box;
}
.service_item:nth-child(2):before {
  background: linear-gradient(135deg,rgb(255, 240, 20) 0%,rgba(255, 215, 139, 0.87) 15%,rgba(255, 252, 62, 0.39) 25%,rgba(240, 208, 82, 0.57) 35%,rgba(234, 222, 43, 0.76) 45%,rgba(223, 204, 47, 0.76) 55%,rgba(208, 197, 30, 0.67) 65%,rgba(134, 132, 27, 0.47) 75%,rgba(255, 240, 116, 0.51) 85%,rgba(244, 231, 33, 0.65) 95%,rgb(255, 240, 20) 100%) border-box border-box;
}
.service_item_title {
  text-align: center;
  font-family: "NotoSansJP-Bold";
  font-size: 1.667vw;
  margin-bottom: 1.834vw;
}
.service_item_text {
  font-size: 1.334vw;
}

/*Price*/
.home .price {
  padding: 70vh 0;
}
.price_items {
  display: flex;
  justify-content: space-between;
  width: 66vw;
  margin: 0 auto 7.001vw;
}
.price_item_title {
  font-family: "NotoSansJP-Bold";
  font-size: 1.667vw;
  text-align: center;
  margin-bottom: 2.001vw;
}
.price_item_title .emphasis {
  font-family: "NotoSansJP-Bold";
  color: #DD0000;
}
.price_item_fee {
  text-align: center;
  padding-bottom: 2.001vw;
  margin-bottom: 2.834vw;
  border-bottom: 2px solid #000;
}
.price_item_fee span {
  font-family: "NotoSansJP-Bold";
}
.fee_value {
  font-size: 3.834vw;
  margin-right: 0.4vw;
}
.fee_unit {
  font-size: 1.834vw;
}
.price_item {
  width: 26.5vw;
}
.price_item_text {
  font-size: 1.334vw;
}
.price_item_caption {
  font-size: 1.001vw;
  color: #555;
}

/*Feature*/
.home .feature {
  padding: 70vh 0;
}
.feature_contents {
  width: 88vw;
  margin: 0 auto 4.834vw;
  display: flex;
  justify-content: space-between;
}
.feature_image {
  width: 42.2vw;
}
.feature_items {
  width: 38vw;
}
.feature_item {
  margin-bottom: 3.334vw;
}
.feature_item:last-child {
  margin-bottom: 0;
}
.feature_item_title {
  font-family: "NotoSansJP-Bold";
  font-size: 1.667vw;
  margin-bottom: 1.667vw;
  line-height: 1.5;
}
.feature_item_text {
  font-size: 1.334vw;
  line-height: 1.5;
}

/*case*/
.case_inner {
  position: relative;
}
.case_contents {
  width: 56vw;
  margin: 0 auto 2.501vw;
  position: relative;
}
.case_contents ul {
  list-style: none;
  margin: 0;
}
.case_contents li {
  margin-bottom: 2.001vw;
  padding-bottom: 0.918vw;
  border-bottom: 1px solid #D9D9D9;
  font-size: 1.001vw;
}
.case_bg {
  position: absolute;
  bottom: -1.251vw;
  right: 6.001vw;
  width: 29vw;
}
.home .case {
  padding: 70vh 0;
}
/*Q&A*/
.home .qa {
  padding: 70vh 0;
}
.qa_inner {
  position: relative;
}
.home .qa_items {
  width: 56.5vw;
  margin: 0 auto 5.334vw;
  position: relative;
  z-index: 1;
}
.home .qa_item {
  margin-bottom: 2.251vw;
  background: #E5E1E1;
  box-shadow: 4px 4px 6px rgba(0, 0, 0, 0.25);
  padding: 1.418vw 1.584vw;
}
.home .qa_item:last-child {
  margin-bottom: 0;
}
.home .qa_item_title {
  display: flex;
  align-items: baseline;
  font-family: "NotoSansJP-Bold";
  margin-bottom: 1.584vw;
}
.home .qa_item_title .label {
  font-family: "NotoSansJP-Bold";
  font-size: 2.001vw;
  color: #d00;
  margin-right: 0.918vw;
  line-height: 1;
}
.home .qa_item_title .field {
  font-family: "NotoSansJP-Bold";
}
.home .qa_item_text {
  background: #fff;
  padding: 1.251vw;
  font-size: 1.001vw;
}
.home .qa_bg {
  position: absolute;
  bottom: -4vw;
  left: 4vw;
  width: 39vw;
}

/*Review*/
.home .review {
  padding: 70vh 0;
}
.review_inner {
  position: relative;
}
.birthday-gift_wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
.review_items {
  width: 81vw;
  margin: 0 auto 5.001vw;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  opacity: 0;
}
.review_item {
  width: 36vw;
  margin-bottom: 4.418vw;
  display: flex;
  justify-content: space-between;
  padding: 1.501vw 2.084vw;
  background: #404040;
  box-shadow: 0px 0px 12px #C7C7C7;
  color: #fff;
}
.review_item:nth-last-child(1), .review_item:nth-last-child(2) {
  margin-bottom: 0;
}
.review_item_icon {
  width: 2.251vw;
  flex-shrink: 0;
}
.review_item_text {
  font-size: 1.2vw;
  width: 28.5vw;
}

/*ギフトボックスオープンアニメーション*/
.birthday-gift {
  position: relative;
  display: flex;
  justify-content: center;
}

.birthday-gift:before {
  content:"";
  position: absolute;
  width: 170px;
  height:20px;
  border-radius:50%;
  background-color: rgba(0,0,0,0.4);
  top:90px;
  left:50%;
  transform: translateX(-50%);
}

input#click {
  display: none;
}

.gift {
  position: relative;
  width: 150px;
  height: 100px;
  background-color: #e9c46a;
}

.gift:before {
  content:"";
  position: absolute;
  width: 25px;
  height: 100px;
  background-color: #e76f51;
  left:62px;
}

.gift:after {
  content:"";
  position: absolute;
  box-shadow: inset 0 10px rgba(0,0,0,0.3);
  width: 150px;
  height: 100px;
  top: 0;
}

.click {
  position: absolute;
  background-color: #e9c46a;
  width: 170px;
  height: 40px;
  top:-40px;
  left:-10px;
  transform-origin: bottom left;
  transition: .3s;
  cursor: pointer;
}

.click:before {
  content:"";
  position: absolute;
  width: 25px;
  height: 40px;
  background-color: #e76f51;
  left:69px;
}

.click:after {
  content:"";
  position: absolute;
  width: 5px;
  height: 0;
  border-bottom: 30px solid #e76f51;
  border-top: 30px solid #e76f51;
  border-left: 0px solid transparent;
  border-right: 30px solid transparent;
  transform: rotate(-90deg);
  left:65px;
  top:-47px;
}

#click:checked + .click {
  transform: rotate(-110deg) scaleX(0.85);
}

.wishes {
  position: absolute;
  transition: .5s;
  color: #333;
  font-size: 37px;
  text-align: center;
  z-index:-1;
  left:5px;
}

#click:checked ~ .wishes {
  transform: translateY(-100%);
}

#click:checked ~ .sparkles {
  display: block;
}



.sparkles {
  position: absolute;
  display: none;
  top:-15px;
  z-index:0;
  left:40px;
}

.spark1, .spark2, .spark3, .spark4, .spark5, .spark6 {
  position: absolute;
  background-color: #fee440;
  border-radius:50%;
  top:-9px;
  z-index:-1;
}

.spark1 {
  width: 8px;
  height:8px;
  left:30px;
  top:-9px;
  animation: fire 0.9s ease-in-out infinite, color 0.4s linear infinite;
}

.spark1:before {
  content:"";
  position: absolute;
  width:5px;
  height:5px;
  top:8px;
  left:11px;
  background-color: #fee440;
  border-radius:50%;
}

.spark2 {
  width: 9px;
  height:9px;
  left:33px;
  top:-5px;
  animation: fire2 0.28s ease-in-out infinite, color 0.4s linear infinite;
}

.spark2:before {
  content:"";
  position: absolute;
  width:5px;
  height:5px;
  top:12px;
  left:3px;
  background-color: #fee440;
  border-radius:50%;
}

.spark3 {
  width: 8.5px;
  height:8.5px;
  left:33px;
  top:-5px;
  animation: fire3 0.36s ease-in-out infinite, color2 0.4s linear infinite;
}

.spark3:before {
  content:"";
  position: absolute;
  width:5px;
  height:5px;
  top:12px;
  left:-1px;
  background-color: #fee440;
  border-radius:50%;
}

.spark4 {
  width: 7px;
  height:7px;
  left:27px;
  top:-5px;
  animation: fire2 0.24s ease-in-out infinite, color2 0.2s linear infinite;
}

.spark5 {
  width: 7px;
  height:7px;
  left:29px;
  top:-5px;
  animation: fire3 0.45s ease-in-out infinite, color 0.2s linear infinite;
}

.spark6 {
  width: 6px;
  height:6px;
  left:29px;
  top:-5px;
  animation: fire 0.35s ease-in-out infinite, color2 0.2s linear infinite;
}
  
@keyframes fire3 {
  100% { transform:translateX(20px) translateY(-93px); 
         opacity: 0.3; }
}

@keyframes fire2 {
  100% { transform:translateX(-5px) translateY(-90px); 
         opacity: 0.3; }
}

@keyframes fire {
  100% { transform:translateX(-25px) translateY(-95px); 
         opacity: 0.3; }
}

@keyframes color {
  from {background-color: #d00000;}
  to {background-color: #0081a7;}
}

@keyframes color2 {
  from {background-color: #8cff00;}
  to {background-color: #1d2d44;}
}

.gift .box {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
  z-index: 1;
  cursor: pointer;
}

.review_items.active {
  animation-name: fadein_box;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
  position: relative;
  z-index: 1;
}
@keyframes fadein_box {
  0% {
     opacity: 0;
  }
  100% {
     opacity: 1;
  }
}
.birthday-gift_wrap.active {
  animation-name: fadeout_box;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fadeout_box {
  0% {
     opacity: 1;
  }
  100% {
     opacity: 0.3;
  }
}

.active .review_item:nth-child(1) {
  animation-name: fadein_box1;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fadein_box1 {
  0% {
     transform: translate(100px,100px);
  }
  100% {
     transform: translate(0,0);
  }
}
.active .review_item:nth-child(2) {
  animation-name: fadein_box2;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fadein_box2 {
  0% {
     transform: translate(-100px,100px);
  }
  100% {
     transform: translate(0,0);
  }
}
.active .review_item:nth-child(3) {
  animation-name: fadein_box3;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fadein_box3 {
  0% {
     transform: translate(100px,0px);
  }
  100% {
     transform: translate(0,0);
  }
}
.active .review_item:nth-child(4) {
  animation-name: fadein_box4;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fadein_box4 {
  0% {
     transform: translate(-100px,0px);
  }
  100% {
     transform: translate(0,0);
  }
}
.active .review_item:nth-child(5) {
  animation-name: fadein_box5;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fadein_box5 {
  0% {
     transform: translate(100px,-100px);
  }
  100% {
     transform: translate(0,0);
  }
}
.active .review_item:nth-child(6) {
  animation-name: fadein_box6;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fadein_box6 {
  0% {
     transform: translate(-100px,-100px);
  }
  100% {
     transform: translate(0,0);
  }
}

/*DEMO SITE*/
.home .demo {
  padding: 70vh 0;
}
.home .demos {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 80vw;
  margin : 0 auto 6vw;
}
.home .demo_item {
  width: 24vw;
}
.home .demo_item:nth-child(1),.home .demo_item:nth-child(2),.home .demo_item:nth-child(3) {
  margin-bottom: 5vw;
}

.home .demo .flip_card_content {
  background: #000000cf;
}
.home .demo .flip_card_content * {
  color: #fff;
  text-align: center;
}
.home .demo .flip_card_title {
  font-size: 2vw;
}
.home .demo .card__description {
  font-size: 1.2vw;
}

/*Study*/
.home .study {
  padding: 70vh 0;
}
.study ul {
  list-style: none;
  margin: 0;
}
.study_outer {
  width: 80vw;
  margin: auto;
}
.study_items {
  display: flex;
  justify-content: space-evenly;
}
.study_item_container {
	width: 34vw;
	height: 35vw;
	position: relative;
	border-radius: 10px;
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
	overflow: hidden;
}
.study_item {
	width: 100%;
	height: 100%;
	border-radius: inherit;
	background: #212121;
}
.study_item .front-content {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1);
}
.study_item .front-content_title {
	font-size: 1.8vw;
	font-weight: 700;
	opacity: 1;
	background: linear-gradient(-45deg, #f89b29 0%, #ff0f7b 100%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1);
	width: 90%;
	margin: auto;
	padding-left: 2vw;
}
.study_item .content {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 10px;
	background: linear-gradient(-45deg, #f89b29 0%, #ff0f7b 100%);
	color: #e8e8e8;
	padding: 20px;
	line-height: 1.5;
	border-radius: 5px;
	transform: translateX(-96%);
	transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1);
}
.study_item .content .heading {
	font-size: 32px;
	font-weight: 700;
}
.study_item:hover .content {
	transform: translateY(0);
}
.study_item:hover .front-content {
	transform: translateX(-30%);
}
.study_item:hover .front-content p {
	opacity: 0;
}
.study_item .content p {
  font-size: 2vw;
  color: #fff;
  text-shadow: 1px 1px 3px #000;
}
.study_item .content > a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999;
  display: block;
}

.study_item .content > a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999;
  display: block;
}
.content_list {
  margin: 0;
  text-align: left;
}
.content_list li {
  font-size: 1.8vw;
  margin-bottom: 1vw;
}
.study ul li i {
  margin-right: 0.8vw;
}


/*-----------------------------------------------固定ページ全体-----------------------------------------------*/
/*ページローディング*/
.page_load_container {
  background:#000;
}
#page_load {
  position:absolute;
  width:600px;
  height:36px;
  left:50%;
  top:40%;
  margin-left:-300px;
  overflow:visible;
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  cursor:default;
}
#page_load div {
  position:absolute;
  width:20px;
  height:36px;
  opacity:0;
  font-family:Helvetica, Arial, sans-serif;
  animation:page_load_move 2s linear infinite;
  -o-animation:page_load_move 2s linear infinite;
  -moz-animation:page_load_move 2s linear infinite;
  -webkit-animation:page_load_move 2s linear infinite;
  transform:rotate(180deg);
  -o-transform:rotate(180deg);
  -moz-transform:rotate(180deg);
  -webkit-transform:rotate(180deg);
  color:#CE2029;
}
#page_load div:nth-child(2) {
  animation-delay:0.2s;
  -o-animation-delay:0.2s;
  -moz-animation-delay:0.2s;
  -webkit-animation-delay:0.2s;
}
#page_load div:nth-child(3) {
  animation-delay:0.4s;
  -o-animation-delay:0.4s;
  -webkit-animation-delay:0.4s;
  -webkit-animation-delay:0.4s;
}
#page_load div:nth-child(4) {
  animation-delay:0.6s;
  -o-animation-delay:0.6s;
  -moz-animation-delay:0.6s;
  -webkit-animation-delay:0.6s;
}
#page_load div:nth-child(5) {
  animation-delay:0.8s;
  -o-animation-delay:0.8s;
  -moz-animation-delay:0.8s;
  -webkit-animation-delay:0.8s;
}
#page_load div:nth-child(6) {
  animation-delay:1s;
  -o-animation-delay:1s;
  -moz-animation-delay:1s;
  -webkit-animation-delay:1s;
}
#page_load div:nth-child(7) {
  animation-delay:1.2s;
  -o-animation-delay:1.2s;
  -moz-animation-delay:1.2s;
  -webkit-animation-delay:1.2s;
}
@keyframes page_load_move {
  0% {
    left:0;
    opacity:0;
  }
  35% {
    left: 41%; 
    -moz-transform:rotate(0deg);
    -webkit-transform:rotate(0deg);
    -o-transform:rotate(0deg);
    transform:rotate(0deg);
    opacity:1;
  }
  65% {
    left:59%; 
    -moz-transform:rotate(0deg); 
    -webkit-transform:rotate(0deg); 
    -o-transform:rotate(0deg);
    transform:rotate(0deg); 
    opacity:1;
  }
  100% {
    left:100%; 
    -moz-transform:rotate(-180deg); 
    -webkit-transform:rotate(-180deg); 
    -o-transform:rotate(-180deg); 
    transform:rotate(-180deg);
    opacity:0;
  }
}
@-moz-keyframes page_load_move {
  0% {
    left:0; 
    opacity:0;
  }
  35% {
    left:41%; 
    -moz-transform:rotate(0deg); 
    transform:rotate(0deg);
    opacity:1;
  }
  65% {
    left:59%; 
    -moz-transform:rotate(0deg); 
    transform:rotate(0deg);
    opacity:1;
  }
  100% {
    left:100%; 
    -moz-transform:rotate(-180deg); 
    transform:rotate(-180deg);
    opacity:0;
  }
}
@-webkit-keyframes page_load_move {
  0% {
    left:0; 
    opacity:0;
  }
  35% {
    left:41%; 
    -webkit-transform:rotate(0deg); 
    transform:rotate(0deg); 
    opacity:1;
  }
  65% {
    left:59%; 
    -webkit-transform:rotate(0deg); 
    transform:rotate(0deg); 
    opacity:1;
  }
  100% {
    left:100%;
    -webkit-transform:rotate(-180deg); 
    transform:rotate(-180deg); 
    opacity:0;
  }
}
@-o-keyframes page_load_move {
  0% {
    left:0; 
    opacity:0;
  }
  35% {
    left:41%; 
    -o-transform:rotate(0deg); 
    transform:rotate(0deg); 
    opacity:1;
  }
  65% {
    left:59%; 
    -o-transform:rotate(0deg); 
    transform:rotate(0deg); 
    opacity:1;
  }
  100% {
    left:100%; 
    -o-transform:rotate(-180deg); 
    transform:rotate(-180deg); 
    opacity:0;
  }
}
/*ページヘッダー*/
.page_header_image {
  position: absolute;
  z-index: 0;
}
.page_header_image1 {
  width: 18.584vw;
  bottom: 2vw;
  left: 5.334vw;
}
.page_header_image2 {
  width: 18.584vw;
  bottom: 0vw;
  left: 29.5vw;
}
.page_header_image3 {
  width: 35.6vw;
  bottom: 2vw;
  right: 5.334vw;
}
.page_header {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow-x: hidden;
  margin-bottom: 8vw;
}
.page_header_contents {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 64vw;
}
.page_title {
  background: #fffc;
  text-align: center;
  white-space: nowrap;
  padding-top: 2.668vw;
  padding-bottom: 5vw;
}
.page_title_label {
  font-family: "NotoSansJP-Bold";
  font-size: 7vw;
  line-height: 1.4;
  color: #555555;
}
.page_title_main {
  font-family: "NotoSansJP-Bold";
  font-size: 2vw;
  line-height: 1.4;
  color: #555555;
  margin-bottom: 2.918vw;
}
.page_title_sub {
  font-family: "NotoSansJP-Bold";
  font-size: 1.6vw;
  line-height: 1.4;
  color: #555555;
}

/*下部問い合わせ*/
.bottom_contact:not(.home .bottom_contact) {
  padding: 8vw 0 3vw;
}

/*-----------------------------------------------料金ページ-----------------------------------------------*/
/*タブ*/
.panel {
  display: none;
}
.panel.active {
  display: block;
}
.price_outer {
  width: 83.4vw;
  margin: auto;
}
.tab_area {
  display: flex;
}
.tab {
  border: 1px solid #461E26;
  width: 50%;
  text-align: center;
  padding: 1.667vw 0;
  position: relative;
  transition: all 0.2s;
}
.tab_name {
  font-family: "NotoSansJP-Bold";
  font-size: 1.918vw;
  line-height: 1.4;
  margin-bottom: 0.334vw;
}
.tab_caption {
  font-size: 1.001vw;
  line-height: 1.4;
}
.tab.active {
  background: #461E26;
  color: #fff;
}
.tab.active:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0.668vw;
  background: #DC143C;
  box-shadow: 0 0 0 1px #DC143C;
}

/*タブ内*/
.panel {
  padding: 5.001vw 4vw 0;
}
.price_lead {
  margin-bottom: 5.001vw;
}
.price_lead_text {
  font-size: 1.334vw;
  margin-bottom: 1.001vw;
}
.price_lead_caption {
  font-size: 1.001vw;
  color: #545454;
}

/*テーブル*/
.page_table table {
  margin-bottom: 6vw;
}
.page_table .col1 {
  width: 27%;
}
.page_table .col2,.page_table .col3 {
  width: 12%;
}
.page_table th,.page_table td {
  padding: 1vw 1vw;
  font-size: 1.1vw;
  border: 1px solid #D05050;
}
.page_table th {
  font-weight: bold;
  text-align: center;
  background: #461E26;
  color: #fff;
}
.page_table thead th {
  position: sticky;
  top: 4vw;
  z-index: 2;
}
.page_table .price {
  text-align: center;
  font-size: 1.3vw;
  font-weight: bold;
}
.page_table .emphasis {
  color: #D05050;
}
/*指導内容*/
.price_container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 2.168vw;
}
.price_text {
  font-size: 5.001vw;
  font-family: "NotoSansJP-Bold";
}
.price_text.old_price {
  color: #777;
  position: relative;
}
.price_arrow {
  width: 6.834vw;
  margin: 0 2.918vw;
}
.price_text.old_price:before {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 0.5vw);
  left: 52%;
  width: 100%;
  height: 3px;
  background: #d00;
  transform: translate(-50%,-50%);
}
.price_text.old_price:after {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% + 0.5vw);
  left: 52%;
  width: 100%;
  height: 3px;
  background: #d00;
  transform: translate(-50%,-50%);
}
.price_caption {
  color: #777;
  text-align: center;
  margin-bottom: 5.501vw;
  font-family: "NotoSansJP-Bold";
}
.price_list {
  list-style: none;
  margin: 0 0 6.918vw;
}
.price_list li {
  font-size: 1.501vw;
  margin-bottom: 0.5vw;
}
.price_text.new_price {
  color: #CE2029;
}
.price_list li i {
  margin-right: 0.6vw;
  color: #CE2029;
}

/*-----------------------------------------------選ばれる理由ページ-----------------------------------------------*/
.feature_fv {
  width: 100%;
  height: 50vh;
  position: relative;
}
.feature_circle_wrap {
  position: sticky;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 1vw;
  height: 1vw;
}
.feature_circle {
  border-radius: 50%;
  background: radial-gradient(50% 50% at 50% 50%, #FFFFFF 0%, #FCFCFC 74.5%, #EEEEEE 100%, #F8F8F8 100%);
}
.feature_fv.active .feature_circle {
  opacity: 1;
}
.feature_circle {
  opacity: 0;
  width: 100%;
  height: 100%;
}

.feature_sv_text {
  height: 100vh;
  text-align: center;
  font-size: 2.334vw;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "NotoSansJP-Bold";
  position: relative;
  z-index: 1;
}

.feature_sv_images {
  position: sticky;
  top: 0;
  left: 0;
  height: 100vh;
  overflow: hidden;
}
.feature_sv_image1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 55vw;
  opacity: 0.5;
}
.feature_sv_image2 {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 22vw;
  opacity: 0.5;
}
.feature_sv_image3 {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 52vw;
  opacity: 0.5;
}

.feature_sv {
  opacity: 0;
  margin-bottom: 12vw;
}

.feature_sv.active {
  opacity: 0;
  animation-name: fadein;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}

/*ポイントエリア*/
.feature .page_h2 {
  margin-left: 11.251vw;
  margin-bottom: 9.668vw;
}
.point_main_wrap {
  display: flex;
  align-items: start;
}
.point_animation {
  position: sticky;
  top: 16vw;
  width: 11.251vw;
}
.point_main {
  width: 88.75vw;
  position: relative;
}
/*ポイントタブエリア*/
.point_tab_area {
  display: flex;
  position: sticky;
  top: 4.5vw;
  left: 0;
  z-index: 3;
}
.point_tab {
  background: #F7F7FD;
  width: calc(100% / 5);
  clip-path: polygon(0% 100%, 0% 0%, 85% 0%, 100% 100%);
  position: relative;
  z-index: 1;
}
.point_tab a {
  text-decoration: none;
  color: #000;
  position: relative;
  z-index: 2;
  display: block;
  padding: 1.501vw 0 2.251vw 2.501vw;
}
.point_tab_name {
  font-family: "NotoSansJP-Bold";
  font-size: 1.334vw;
  margin-bottom: 0.834vw;
}
.point_tab_caption {
  font-family: "NotoSansJP-Bold";
  font-size: 1.334vw;
}
.point_tab::before {
  background: #F7F7FD;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  display: block;
  z-index: 0;
}
.point_tab::after {
  background: linear-gradient(180deg, #CE2029 0%, #CE2029 10%, #F7F7FD 10%, #F7F7FD 100%);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  display: block;
  z-index: -1;
}
.point_tab:hover:before,.point_tab:active:before {
  background: transparent;
}
.point_panel_area {
  background: #F7F7FD;
  padding: 5.001vw 0 0 5.001vw;
}
.point_tab.active::before {
  background: transparent;
}
/*ポイントブロックエリア*/
.point_panel_block {
  margin-bottom: 16.668vw;
  position: relative;
  padding-top: 15vw;
  margin-top: -15vw;
}
.point_panel_block:last-child {
  margin-bottom: 0;
  padding-bottom: 16.668vw;
}
.point_text {
  font-size: 1.501vw;
  line-height: 2.6;
  position: relative;
  z-index: 1;
}

.point_panel_block_bg {
  position: absolute;
  top: 15vw;
  right: 5.251vw;
  font-family: "NotoSansJP-Bold";
  font-size: 11.668vw;
  line-height: 1;
  text-align: right;
  color: #F2F2FA;
  z-index: 0;
}

/*ポイントサークル*/
.point_circle {
  position: relative;
  margin: 20px auto;
  width: 16.8vw;  /* 200px = 16.8vw (1px = 0.084vw) */
  height: 16.8vw; /* 200px = 16.8vw */
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
}

.point_circle_inner {
  position: relative;
  width: 1.68vw;  /* 20px = 1.68vw */
  height: 1.68vw; /* 20px = 1.68vw */
  border-radius: 50%;
  animation: rotateAnim 7s linear infinite;
}

.point_circle_inner:hover {
  animation-play-state: paused;
}

@keyframes rotateAnim {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-180deg); }
  100% { transform: rotate(-360deg); }
}

.point_circle_text span {
  position: absolute;
  inset: 0;
  font-weight: 700;
  color: #000;
  font-family: "NotoSansJP-Bold";
}

/*-----------------------------------------------実績事例ページ-----------------------------------------------*/
.case #page {
  overflow: hidden;
}
.case_outer {
  width: 83.334vw;
  margin: 0 auto 12.084vw;
}

.case .page_h2 {
  margin-bottom: 8.334vw;
}
.case_caption {
  text-align: center;
  font-family: "NotoSansJP-Bold";
  font-size: 1.918vw;
  margin-bottom: 6.084vw;
}
.case_item {
  display: flex;
  position: relative;
  width: 80.334vw;
  border-radius: 0.834vw;
  margin-bottom: 4.584vw;
  padding: 1.918vw 0;
  transform: translateX(10vw);
}
.case_item.show {
  animation-name: to_left;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes to_left {
  0% {
     transform: translateX(10vw);
  }
  100% {
     transform: translateX(0);
  }
}
.case_item_bg {
  position: absolute;
  bottom: -1vw;
  left: 7.3vw;
  color: #58232E;
  width: 76vw;
  opacity: 0;
}
.case_item:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: -3.001vw;
  width: 76vw;
  height: 100%;
  background: #fff;
  z-index: 0;
  transform: translateY(-50%);
  border-radius: 0.834vw;
  box-shadow: 0px 0px 12px 5px rgba(0, 0, 0, 0.25);
}
.case_item_image {
  position: relative;
  z-index: 1;
  width: 25.001vw;
  flex-shrink: 0;
}
.case_item_image:before {
  content: "";
  display: block;
  padding-top: 100%;
}
.case_item_image img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0.834vw 0 0 0.834vw;
}
.case_item_contents {
  position: relative;
  background: #F5F5F5;
  z-index: 1;
  width: auto;
  padding: 3.001vw 2.751vw;
  border-radius: 0 0.834vw 0.834vw 0;
}
.case_item_cat {
  display: inline-block;
  border-radius: 0.418vw;
  font-size: 1.001vw;
  font-family: "NotoSansJP-Bold";
  padding: 0.584vw 1.334vw;
  margin-bottom: 1.251vw;
}
.case_item_cat.green {
  background: #B2D3AD;
}
.case_item_cat.orange {
  background: #fdab59;
}
.case_item_cat i {
  margin-right: 0.4vw;
}
.case_item_h3 {
  font-size: 1.667vw;
  margin-bottom: 2.168vw;
  padding-bottom: 0.834vw;
  border-bottom: 3px solid #EDEDED;
}
.case_item_text {
  font-size: 1.667vw;
  width: 47.5vw;
}

.case_item:hover::before {
  background: #461E26;
  transition: all 0.3s;
  height: 106%;
}
.case_item:hover .case_item_bg {
  opacity: 1;
  transition: all 0.2s;
}

.loop_text {
	display: flex;
	width: 100%;
	overflow: hidden;
}

.loop_text div {
	flex: 0 0 auto;
	white-space: nowrap;
	font-size: 2.501vw;
}

.loop_text div:nth-child(odd) {
	animation: loop 30s linear infinite;
}

.loop_text div:nth-child(even) {
	animation: loop2 30s linear infinite;
}

@keyframes loop {
	0% {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}

@keyframes loop2 {
	0% {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}


/*-----------------------------------------------よくあるご質問ページ-----------------------------------------------*/
.q-a .page_h2 {
  width: 83.334vw;
  margin-bottom: 7.084vw;
}
.q-a .qa_items {
  width: 83.334vw;
  margin: auto;
}
.q-a .qa_item {
  margin-bottom: 2vw;
  box-shadow: 0 3px 10px 0px #aaa;
}
.q-a .qa_item_q {
  padding: 2.501vw 3.168vw;
  display: flex;
  align-items: baseline;
  border-bottom: 1px solid #DDDDDD;
  background: #fff;
  position: relative;
  cursor: pointer;
}
.q-a .qa_item_q:hover {
  background: #f9f0f0;
}
.q-a .qa_item_label {
  width: 7.334vw;
  font-family: "NotoSansJP-Bold";
  font-size: 3.001vw;
  line-height: 1.45;
  padding-right: 1.834vw;
  text-align: right;
}
.q-a .q_title {
  font-family: "NotoSansJP-Bold";
  font-size: 2.001vw;
  width: 65.9vw;
}
.q-a .qa_item_a_wrap {
  display: none;
}
.q-a .qa_item_a {
  display: flex;
  padding: 2.501vw 3.168vw;
  background: #F9F9F9;
}
.q-a .qa_item_a_contents {
  padding-top: 1.6vw;
  font-size: 1.334vw;
  font-family: "NotoSansJP-Bold";
  width: 65.9vw;
}
.q-a .qa_item_a .qa_item_label {
  color: #CE2029;
}

.q-a .toggle_btn {
  position: relative;
  width: 3.251vw;
  height: 3.251vw;
  display: block;
  transition: 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: pointer;
  will-change: transform;
  background: #CE2029;
  border-radius: 50%;
}
.q-a .toggle_btn:hover {
  transform: scale(0.92);
}
.q-a .toggle_btn:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 1.667vw;
  height: 0.251vw;
  border-radius: 0.501vw;
  background: #fff;
  display: block;
}
.q-a .toggle_btn:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 0.251vw;
  height: 1.667vw;
  border-radius: 0.501vw;
  background: #fff;
  display: block;
  transition: 0.3s cubic-bezier(0.76, 0, 0.24, 1);
  will-change: transform;
}
.q-a .toggle_btn.active:after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.q-a .toggle_btn_wrap {
  position: absolute;
  top: 50%;
  right: 3.501vw;
  transform: translateY(-50%);
}
.q-a .qa_link {
  color: #CE2029;
  font-family: "NotoSansJP-Bold";
}

/*-----------------------------------------------よくあるご質問ページ-----------------------------------------------*/
.reviews #content {
  overflow: hidden;
}
.reviews_outer {
  width: 83.334vw;
  margin: 0 auto 17.834vw;
}
.reviews .page_h2 {
  margin-bottom: 6.834vw;
}
.reviews .reviews_item {
  background: #FFFFFF;
  box-shadow: 0px 4px 12px 3px rgba(0, 0, 0, 0.25);
  border-radius: 0.418vw;
  position: relative;
  display: flex;
  padding: 3.584vw 5.584vw;
  justify-content: space-between;
  margin-bottom: 5.334vw;
  transition: all 0.3s;
  transform: translateX(10vw);
}
.reviews .reviews_item_bg {
  position: absolute;
  top: 2.251vw;
  right: 3.418vw;
  transition: all 0.3s;
}
.reviews .reviews_item_bg svg {
  width: 10.668vw;
}
.reviews .reviews_user {
  width: 12.418vw;
  flex-shrink: 0;
}
.reviews .reviews_user_icon {
  border-radius: 50%;
  background: #ECECEC;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 12.418vw;
  margin-bottom: 0.4vw;
  transition: all 0.3s;
}
.reviews .reviews_user_icon i {
  font-size: 8vw;
  color: #FF7070;
}
.reviews .reviews_contents {
  flex-grow: 0;
  width: 55.25vw;
}
.reviews .reviews_user_name {
  font-size: 2.001vw;
  text-align: center;
  font-family: "NotoSansJP-Bold";
}
.reviews .reviews_stars {
  font-size: 2.501vw;
  font-family: "NotoSansJP-Bold";
  color: #F0DA8A;
  letter-spacing: 0.2vw;
}
.reviews .reviews_text {
  font-size: 1.334vw;
  line-height: 1.62;
}
.reviews .reviews_item:hover {
  background: #eaeff4;
}
.reviews .reviews_item:hover .reviews_user_icon {
  border: 3px solid #dfdfdf;
  box-shadow: inset 0px 0px 8px rgba(0,0,0,.5);
  background: #fff;
}
.reviews .reviews_item:hover .reviews_item_bg {
  transform: rotate(20deg);
  transform-origin: center center;
}
.reviews .reviews_item:hover .reviews_item_bg svg path {
  fill: #d00;
}
.reviews_item.show {
  animation-name: to_left;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}

.coconara_sample {
  border: 3px solid #777;
}
.coconara_sample img {
  width: 100%;
}
.reviews_caption {
  margin-bottom: 6vw;
  font-size: 1.3vw;
  color: #777;
}

/*-----------------------------------------------デモサイト一覧-----------------------------------------------*/
.bg_white:before {
  animation-name: bg_white;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes bg_white {
  0% {
     opacity: 1;
  }
  100% {
     opacity: 0;
  }
}
.page-template-page-demo .demo_inner {
  width: 83.334vw;
  margin: auto;
  padding-bottom: 13.918vw;
}
.page-template-page-demo .page_h2 {
  margin-bottom: 8.334vw;
}
.page-template-page-demo .demo_item {
  margin-bottom: 13.918vw;
}
.page-template-page-demo .demo_item_header {
  display: flex;
  margin-bottom: 5.418vw;
}
.page-template-page-demo .demo_item_header .page_h3 {
  margin: 0 3.334vw 0 0;
}
.page-template-page-demo .demo_item_url a {
  display: flex;
  align-items: center;
  height: 100%;
  font-size: 1.334vw;
  font-family: "NotoSansJP-Bold";
  text-decoration: none;
  background: #F6F0F0;
  padding: 0 3vw 0 4vw;
  border-radius: 3.001vw;
  position: relative;
  overflow: hidden;
  z-index: 1;
  transition: all 0.3s;
}
.page-template-page-demo .demo_item_url a i {
  position: absolute;
  top: 50%;
  left: 1.4vw;
  transform: translateY(-50%);
}
.page-template-page-demo .demo_item_url a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: -1;
  background: #333;
  top: 0;
  left: 0;
  border-radius: 3.001vw;
  transform: scaleX(0);
  transform-origin: left;
  transition: all 0.3s;
}
.page-template-page-demo .demo_item_url a:hover:before {
  transform: scaleX(1);
}
.page-template-page-demo .demo_item_url a:hover {
  color: #fff;
}
.page-template-page-demo .demo_item_image {
  width: 90%;
  margin-left: auto;
  margin-right: 6vw;
  margin-bottom: 8.334vw;
}
.page-template-page-demo .demo_item_property {
  display: flex;
  margin-bottom: 5.251vw;
}
.page-template-page-demo .demo_item_detail_label {
  width: 18.834vw;
  flex-shrink: 0;
}
.page-template-page-demo .demo_item_detail_label_main {
  font-family: "NotoSansJP-Bold";
  font-size: 3.168vw;
  line-height: 1;
  margin-bottom: 1vw;
}
.page-template-page-demo .demo_item_detail_label_sub {
  font-family: "NotoSansJP-Bold";
  font-size: 1.334vw;
}
.page-template-page-demo .demo_item_detail_field p {
  font-size: 1.334vw;
  font-family: "NotoSansJP-Bold";
}
.page-template-page-demo .demo_item_example {
  display: flex;
  margin-bottom: 5.251vw;
}
.page-template-page-demo .demo_item_detail_field ul {
  margin: 0 0 0 1vw;
}
.page-template-page-demo .demo_item_links {
  display: flex;
  justify-content: center;
  align-items: center;
}
.page-template-page-demo .demo_item_link {
  background: #D9D9D9;
  width: 16.251vw;
  text-align: center;
  border-radius: 1.001vw;
  position: relative;
  z-index: 1;
  transition: all 0.3s;
}
.page-template-page-demo .demo_item_link a {
  text-decoration: none;
  font-family: "NotoSansJP-Bold";
  color: #333;
  padding: 0.834vw 0;
  display: block;
}
.page-template-page-demo .demo_item_link span {
  font-family: "NotoSansJP-Bold";
  color: #333;
  text-align: center;
  display: block;
  padding: 0.834vw 0;
}
.page-template-page-demo .demo_item_link i {
  margin-left: 1.001vw;
}
.page-template-page-demo .demo_item_qr {
  position: absolute;
  bottom: calc(100% - 3vw);
  padding: 1vw;
  background: #d00;
  opacity: 0;
  transition: all 0.3s;
  z-index: -1;
}
.demo_item_link:first-child {
  margin-right: 2.501vw;
}
.demo_item_link:last-child:hover .demo_item_qr {
  opacity: 1;
  bottom: calc(100% + 1vw);
  z-index: 0;
}

.demo_item_link:hover {
  background: #5e0505;
}
.demo_item_link:hover a,.demo_item_link:hover span {
  color: #fff;
}

.demo_sv {
  width: 100%;
  height: 60vh;
  overflow: hidden;
  position: relative;
  margin: 6vw 0;
}
.demo_sv_wrap {
  width: 200vw;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.demo_sv:before {
  box-shadow: inset 0 0 12px 5px #999;
  content: "";
  display: ;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999;
}


/*-----------------------------------------------お問い合わせ-----------------------------------------------*/
.contact_inner {
  width: 83.334vw;
  margin: auto;
}
.contact .page_h2 {
  margin-bottom: 7.918vw;
}
.contact_header {
  margin-bottom: 4vw;
  text-align: center;
}
.contact_header_title {
  font-family: "NotoSansJP-Bold";
  font-size: 2.334vw;
  margin-bottom: 3.668vw;
  color: #000;
}
.contact_header_caption {
  font-family: "NotoSansJP-Bold";
  color: #000;
  font-size: 1.334vw;
}
.contact_header_caption a {
  color: #CE2029;
  font-family: "NotoSansJP-Bold";
}
.contact_main {
  display: flex;
  justify-content: space-between;
  align-items: start;
}
.contact_description {
  width: 33.334vw;
  flex-shrink: 0;
  position: sticky;
  top: 5vw;
}
.contact_description_text {
  font-family: "NotoSansJP-Medium";
  font-size: 1.2vw;
  color: #000;
  line-height: 1.5;
  position: relative;
  z-index: 1;
}
.contact_description_sign {
  font-family: "OoohBaby-Regular";
  font-size: 5.668vw;
  color: #eee;
  transform: rotate(-5.65deg);
  margin-top: -3.8vw;
}
.contact_form {
  width: 45.834vw;
}

.contact_items {
  margin-bottom: 4.584vw;
}
.contact_item {
  margin-bottom: 4.584vw;
}
.contact_item_title {
  display: flex;
  margin-bottom: 0.834vw;
  align-items: center;
}
.required {
  background: #CE2029;
  color: #fff;
  font-family: "NotoSansJP-Bold";
  font-size: 0.9vw;
  display: flex;
  align-items: center;
  border-radius: 0.418vw;
  padding: 0vw 0.6vw 0.1vw;
  margin-right: 1.168vw;
}
.no_required {
  background: #555;
  color: #fff;
  font-family: "NotoSansJP-Bold";
  font-size: 0.9vw;
  display: flex;
  align-items: center;
  border-radius: 0.418vw;
  padding: 0vw 0.6vw 0.1vw;
  margin-right: 1.168vw;
}
.contact_item_title_text {
  font-family: "NotoSansJP-Bold";
  font-size: 1.501vw;
}
.contact_form input,.contact_form textarea {
  margin: 0;
}

.contact_form input,.contact_form textarea {
  margin: 0;
  background: #F8F8F8;
  border: 0;
  border-bottom: 2px solid #777777;
  font-size: 1.334vw;
  color: #000;
  padding: 1vw;
}
.contact_form .wpcf7-list-item {
  display: block;
  margin: 0 0 0.6vw 0.6vw;
}
.contact_form .wpcf7-list-item-label {
  margin-left: 0.2vw;
  font-size: 1.1vw;
}
.contact_form input::placeholder {
  color: #777;
}

.wpcf7 input[type="file"] {
  background: #fff;
  border: 0;
}

.contact_form .contact_acceptance .wpcf7-list-item {
  margin: 0;
}

.contact_form select {
  font-size: 1.1vw;
  padding: 0.5vw 1vw;
}


.contact_submit input {
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 1.834vw;
  padding: 1.2vw 0;
  position: relative;
  width: 100%;
}
.contact_submit {
  width: 100%;
  display: flex;
  justify-content: center;
  position: relative;
  background: #CE2029;
  border-radius: 2.501vw;
  z-index: 1;
  overflow: hidden;
}
.contact_submit i {
  position: absolute;
  top: 50%;
  left: 2vw;
  transform: translate(0,-50%) rotate(0deg);
  color: #fff;
  transition: all 0.3s;
  z-index: 1;
}
.contact_submit:hover i {
  transform: translate(0,-50%) rotate(45deg);
}

.contact_submit.send i {
  animation-name: submit_send;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes submit_send {
  0% {
     left: 2vw;
     transform: translate(0,-50%) rotate(45deg);
  }
  100% {
     left: calc(100% - 3vw);
     transform: translate(0,-50%) rotate(45deg);
  }
}
.contact_submit:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #333;
  border-radius: 2.501vw;
  transform: scaleX(0);
  transition: all 0.3s;
  transform-origin: left;
  transition-duration: 1.5s;
}
.contact_submit.send::before {
  transform: scaleX(1);
}

.wpcf7-spinner {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  background: #dd00004a;
}

.contact_submit input:hover {
  background: #91161C;
}
.contact_submit input:focus {
  background: transparent;
}

/*ヘルプ*/
.guide_container {
  cursor: pointer;
  display: flex;
  justify-content: flex-start;
  margin-left: 1vw;
}
.guide_container .guide {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.guide_container .guide_dot {
  position: relative;
  z-index: 999;
  background: #fff;
}
.guide_container .guide[data-position="1"] .guide_content {
  top: 85px;
  left: 50%;
  margin-left: 56px;
}
.guide_container .guide_content {
  width: 26vw;
  position: absolute;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.7s ease, visibility 0.7s ease;
  color: #fff;
  visibility: hidden;
  pointer-events: none;
}
.guide_container .guide:hover .guide_content {
  position: absolute;
  z-index: 5;
  opacity: 1;
  -webkit-transition: opacity 0.7s ease, visibility 0.7s ease;
  transition: opacity 0.7s ease, visibility 0.7s ease;
  color: #fff;
  visibility: visible;
  pointer-events: none;
}
.guide_container .guide_content::before {
  width: 0px;
  bottom: 0;
  left: 0;
  content: "";
  background-color: #fff;
  height: 2px;
  position: absolute;
  transition: width 0.4s;
  background: #d00;
}
.guide_container .guide:hover .guide_content::before {
  transition: width 0.4s;
  width: 100%;
}
.guide_container .guide_content::after {
  -webkit-transform-origin: 0 50%;
  transform-origin: 0 50%;
  -webkit-transform: rotate(-225deg);
  transform: rotate(-220deg);
  bottom: 0vw;
  left: 0;
  width: 6vw;
  content: "";
  background-color: #fff;
  height: 2px;
  position: absolute;
  opacity: 1;
  -webkit-transition: opacity 0.5s ease;
  transition: opacity 0.5s ease;
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
  background: #d00;
}
.guide_container .guide:hover .guide_content::after {
  opacity: 1;
  visibility: visible;
}
.guide_container .guide[data-position="4"] .guide_content {
  bottom: 5vw;
  left: 50%;
  margin-left: 4.668vw;
}

.guide_container .guide[data-position="4"] .guide_content p {
  color: #000;
  background: #F8F7F7;
  padding: 1vw;
  font-size: 1.2vw;
}
.guide_container .guide_dot i {
  color: #000;
  font-size: 1.8vw;
}

.step_item_contents_text {
  font-family: "NotoSansJP-Medium";
  font-size: 1.168vw;
  line-height: 1.43;
  margin-bottom: 3.084vw;
}

/*reCaptchaマーク非表示*/
.grecaptcha-badge { visibility: hidden; }


/*-----------------------------------------------ゼロからWordPressサイト制作-----------------------------------------------*/
.study .page_h2 {
  margin-bottom: 6vw;
}
.study_caption {
  font-size: 1.4vw;
  margin-bottom: 5vw;
}

.study .study_outer {
  width: 100%;
}
.study .study_inner {
  width: 83.334vw;
  margin: auto;
  padding-bottom: 13.918vw;
}
.study_index {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10.501vw;
}
.study_index_item {
  width: 25.001vw;
  position: relative;
  display: flex;
  flex-direction: column;
}
.step {
  border-bottom: 0.834vw solid #461E26;
}
.step_label {
  display: flex;
  justify-content: center;
  align-items: end;
  margin-bottom: 0.2vw;
}
.step_label_text {
  font-family: "NotoSansJP-Black";
  font-size: 2.668vw;
  color: #000;
  line-height: 1.45;
}
.step_label_gear {
  position: relative;
  width: 5.668vw;
}
.step_label_num {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  font-family: "NotoSansJP-Black";
  font-size: 1.8vw;
  line-height: 1;
}
.step_caption {
  font-family: "NotoSansJP-Medium";
  font-size: 1.501vw;
  text-align: center;
  color: #000;
  padding-bottom: 0.584vw;
  border-bottom: 3px solid #d00;
}
.step_contents {
  padding: 1.667vw 2.168vw;
  background: #FFF9F9;
  flex-grow: 1;
}
.step_image {
  padding-bottom: 2.168vw;
  margin-bottom: 2.168vw;
  border-bottom: 1px solid #aaa;
}
.step_image img {
  width: 100%;
}
.step_contents_text {
  font-family: "NotoSansJP-Medium";
  font-size: 1.168vw;
  line-height: 1.45;
  color: #000;
}
.study_index_item:after {
  content: "\f054";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 3vw;
  position: absolute;
  top: 50%;
  left: calc(100% + 1.2vw);
  transform: translateY(-50%);
}
.study_index_item:last-child::after {
  display: none;
}

.sticky_index .study_index_item::after {
  font-size: 2vw;
  top: calc(50% + 1vw);
}

/*各見出し*/
.sticky_index .step_label_text {
  font-size: 1.2vw;
  margin-right: 0.2vw;
}
.sticky_index .step_label_gear {
  width: 3vw;
}
.study_index_item.active .step_label_gear img {
  animation:6s linear infinite rotationGear;
}
@keyframes rotationGear{
  0%{ transform:rotate(0);}
  100%{ transform:rotate(360deg); }
}
.sticky_index .step_label_num {
  font-size: 1.1vw;
}
.sticky_index .step_caption {
  font-size: 1.2vw;
  padding-bottom: 0.2vw;
}
.study_index_item.active .step_caption {
  position: relative;
  z-index: 1;
}
.sticky_index .step_caption span {
  font-family: "NotoSansJP-Medium";
}
.sticky_index .step_label {
  margin-bottom: 0;
}

.study_index.sticky_index {
  position: sticky;
  top: 4.5vw;
  z-index: 998;
  background: #fffc;
}

.study_index_item .step_caption::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #461e26;
  z-index: 0;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: all 1s;
  transition-delay: 0.3s;
}
.study_index_item.active .step_caption::before {
  transform: scaleY(1);
}
.study_index_item.active .step_caption span {
  position: relative;
  z-index: 1;
  color: #fff;
}

.triangle {
  background: #CE2029;
  height: calc(tan(60deg) * 1.501vw / 2);
  width: 1.251vw;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  animation: yurayura 1.6s linear infinite;
  margin-left: -0.501vw;
  margin-right: 0.501vw;
  margin-bottom: 0.2vw;
  
}

@keyframes yurayura {
  0% , 100%{
      transform: translate(0,0);
  }
  50%{
      transform: translate(0.501vw,0);
  }
}


/*トグルボタン*/
.toggle_btn {
  position: relative;
  width: 3.251vw;
  height: 3.251vw;
  display: block;
  transition: 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: pointer;
  will-change: transform;
  background: #CE2029;
  border-radius: 50%;
}
.toggle_btn:hover {
  transform: scale(0.92);
}
.toggle_btn:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 1.667vw;
  height: 0.251vw;
  border-radius: 0.834vw;
  background: #fff;
  display: block;
}
.toggle_btn:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 0.251vw;
  height: 1.667vw;
  border-radius: 0.834vw;
  background: #fff;
  display: block;
  transition: 0.3s cubic-bezier(0.76, 0, 0.24, 1);
  will-change: transform;
}

.toggle_btn.active {
  transform: rotate(180deg);
}
.toggle_btn.active:after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/*フロー*/
.flow_container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: 1.667vw;
  margin-bottom: 5.001vw;
}
.flow_container ul {
  padding: 0;
}
.flow_container li {
  list-style-type: none;
}
.flow_container dd {
  margin-left: 0;
  font-family: "NotoSansJP-Medium";
  font-size: 1.168vw;
}
.flow {
  position: relative;
}
.flow::before {
  content: "";
  width: 1.251vw;
  height: 100%;
  background: #EFEFEF;
  margin-left: -10.751vw;
  display: block;
  position: absolute;
  top: 0;
  left: 10.001vw;
  border-radius: 1.667vw;
}
.flow > li {
  position: relative;
}
.flow > li:not(:last-child) {
  margin-bottom: 5.001vw;
}
.flow > li .flow_icon {
  font-size: 1.418vw;
  width: 3.918vw;
  height: 3.918vw;
  line-height: 1;
  /*! text-align: center; */
  font-weight: bold;
  border-radius: 100vh;
  color: #fff;
  background: #CE2029;
  display: inline-block;
  margin-right: 1vw;
  display: flex;
  justify-content: center;
  align-items: center;
}
.flow > li dl {
  padding-left: 70px;
  position: relative;
}
.flow > li dl::before,
.flow > li dl::after {
  content: "";
  display: block;
  position: absolute;
  top: 2vw;
}
.flow > li dl::before {
  width: 0.584vw;
  height: 0.584vw;
  margin-top: -0.1vw;
  background: #CE2029;
  border-radius: 50%;
  left: -0.334vw;
}
.flow > li dl::after {
  width: 4.168vw;
  border-bottom: 3px dotted #CE2029;
  position: absolute;
  left: 0.418vw;
}
.flow > li dl dt {
  font-size: 1.667vw;
  font-weight: 600;
  color: #000;
  margin-bottom: 1.418vw;
  display: flex;
  align-items: center;
}

/*step_item_header*/
.step_item_header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6.334vw;
}
.step_item_header_image {
  width: 24.834vw;
  flex-shrink: 0;
}
.step_item_header_image img {
  width: 100%;
}
.step_item_header_contents {
  width: 53.2vw;
}
.step_item_header_text {
  font-family: "NotoSansJP-Medium";
  font-size: 1.168vw;
  line-height: 1.43;
  margin-bottom: 2.334vw;
}
.hint_label {
  background: #461E26;
  color: #fff;
  font-family: "NotoSansJP-Medium";
  font-size: 1.501vw;
  line-height: 1.5;
  border-radius: 0.251vw 0.251vw 0 0;
  width: 6.668vw;
  text-align: center;
  margin-bottom: -0.1vw;
}
.hint_text {
  border: 1px solid #461E26;
  padding: 1.251vw 1.667vw;
  font-family: "NotoSansJP-Medium";
  font-size: 1.168vw;
}

.data_bar_table {
  margin-bottom: 6.834vw;
}
.data_bar_table table {
  table-layout: fixed;
  margin-bottom: 1.584vw;
}
.data_bar_table thead th {
  top: 11vw;
}
.data_bar_table td {
  text-align: center;
  color: #000;
  font-size: 1.334vw;
}
.star_red {
  color: #CE2029;
}
.star_gray {
  color: #aaa;
}
.data_bar {
  position: relative;
}
.data_bar:before {
  content: "";
  display: block;
  width: calc(100% - 5%);
  height: 75%;
  background: #F9EFF0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 0;
}
.data_bar span {
  position: relative;
  z-index: 1;
}
.data_bar::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 7%;
  transform: translateY(-50%);
  color: #0AB8C3;
  font-family: "NotoSansJP-Medium";
  font-size: 1.334vw;
}

.data_33:before {
  width: calc(33% - 5%);
  left: 2.5%;
  transform: translate(0,-50%);
}
.data_33:after {
  content: "33";
}
.data_50::before {
  width: calc(55% - 5%);
  left: 2.5%;
  transform: translate(0,-50%);
}
.data_50:after {
  content: "50";
}
.data_66::before {
  width: calc(66% - 5%);
  left: 2.5%;
  transform: translate(0,-50%);
}
.data_66:after {
  content: "66";
}
.data_70::before {
  width: calc(70% - 5%);
  left: 2.5%;
  transform: translate(0,-50%);
}
.data_70:after {
  content: "70";
}
.data_100:after {
  content: "100";
}

.page_table_caption {
  font-size: 1.001vw;
  color: #555;
  text-align: right;
}

.toggle_item_contents {
  display: none;
  border-top: 1px solid #ddd;
  padding: 1.834vw 0;
}
.toggle_item {
  background: #FFFFFF;
  box-shadow: 3px 3px 4px 3px rgba(0, 0, 0, 0.25);
  border-radius: 0.418vw;
  padding: 0 1.918vw;
  margin-bottom: 3.501vw;
}
.toggle_item_header {
  padding: 1.834vw 0;
  position: relative;
}
.toggle_item_title {
  font-family: "NotoSansJP-Bold";
  font-size: 1.501vw;
}
.toggle_item_btn {
  position: absolute;
  top: 50%;
  right: 0vw;
  transform: translateY(-50%);
}

.normal_table tr td:first-child {
  width: 0;
  white-space: nowrap;
  font-family: "NotoSansJP-Bold";
}
.normal_table tr td:first-child {
  width: 0;
  white-space: nowrap;
  font-family: "NotoSansJP-Bold";
}
.toggle_item_text {
  font-size: 1.334vw;
}
.toggle_item_text .emphasis {
  font-family: "NotoSansJP-Bold";
  color: #CE2029;
}


.study_server_item {
  display: flex;
  justify-content: space-between;
  padding: 2.168vw 0;
  border-bottom: 1px solid #ddd;
}
.study_server_image {
  width: 21.668vw;
  flex-shrink: 0;
}
.study_server_text {
  width: 39.2vw;
  font-family: "NotoSansJP-Medium";
  font-size: 1.168vw;
}
.study_server_btn {
  width: 15.5vw;
}
.study_server_name {
  font-size: 1.334vw;
  text-align: center;
  font-family: "NotoSansJP-Medium";
  color: #000;
  margin-top: 0.834vw;
}

.page_more button {
 display: flex;
 align-items: center;
 justify-content: center;
 height: 4.168vw;
 position: relative;
 padding: 0 1.667vw;
 font-size: 1.334vw;
 border: 0;
 background-color: #CE2029;
 border-radius: 0.834vw;
 overflow: hidden;
 transition: 31ms cubic-bezier(.5, .7, .4, 1);
 cursor: pointer;
}
.page_more button:before {
 content: attr(alt);
 display: flex;
 align-items: center;
 justify-content: center;
 position: absolute;
 inset: 0;
 font-size: 1.334vw;
 font-weight: bold;
 color: white;
 letter-spacing: 0.334vw;
 opacity: 1;
}
.page_more button:after {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background: #88151b;
 z-index: 0;
 transform: scaleX(0);
 transition: all 0.3s;
}
.page_more button:active {
 opacity: 0.8;
}
.page_more button:hover:before {
 transition: all .0s;
 transform: translateY(100%);
 opacity: 0;
}
.page_more button:hover:after {
 transform: scaleX(1);
}
.page_more button i {
 color: white;
 font-size: 1.334vw;
 font-weight: bold;
 letter-spacing: 0.334vw;
 font-style: normal;
 transition: all 2s ease;
 transform: translateY(-1.667vw);
 opacity: 0;
 position: relative;
 z-index: 2;
}
.page_more button:hover i {
 transition: all .2s ease;
 transform: translateY(0px);
 opacity: 1;
}
.page_more button:hover i:nth-child(1) {
 transition-delay: 0.045s;
}
.page_more button:hover i:nth-child(2) {
 transition-delay: calc(0.045s * 3);
}
.page_more button:hover i:nth-child(3) {
 transition-delay: calc(0.045s * 4);
}
.page_more button:hover i:nth-child(4) {
 transition-delay: calc(0.045s * 5);
}
.page_more button:hover i:nth-child(5) {
 transition-delay: calc(0.045s * 6);
}
.page_more button:hover i:nth-child(6) {
 transition-delay: calc(0.045s * 7);
}
.page_more button:hover i:nth-child(7) {
 transition-delay: calc(0.045s * 8);
}
.study_server {
  margin-bottom: 14.168vw;
}

.wp_guide_links {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.wp_guide_link {
  width: 25.001vw;
  box-shadow: 5px 5px 5px 0 #999;
  margin-bottom: 3vw;
}
.wp_guide_link img {
  width: 100%;
}
.event_none {
  pointer-events: none;
}


/*-----------------------------------------------プライバシーポリシー-----------------------------------------------*/
.privacy_container {
  width: 60vw;
  margin: auto;
}
.privacy_caption {
  font-size: 1.1vw;
  margin-bottom: 6vw;
}
.privacy_text {
  font-size: 1.1vw;
  margin-bottom: 6vw;
}
.privacy_text.short_margin {
  margin-bottom: 3vw;
}
.privacy_list {
  margin-bottom: 6vw;
}
.privacy_list li {
  font-size: 1vw;
  margin-bottom: 0.8vw;
}

/*-------------------------------------メディアクエリ750以下【SPのみ】-------------------------------------*/
@media only screen and (max-width: 750px) {
	.pc_only {
		display: none !important;
	}
	/*全体*/
	body::before {
		background-size: cover;
	}
	body {
		padding-bottom: 14vw;
	}
	/*ローディング*/
	#loading_contents {
		width: 60vw;
	}
	#logo_animation {
		width: 20vw;
	}
	.loading_text p {
		font-size: 5vw;
	}
	/*ヘッダー*/
	.site-branding {
		width: 50vw;
	}
	.main-header-content {
		padding: 1.6vw 0;
		width: 92vw;
	}
	.sitemap_button {
		width: 10vw;
		display: flex;
		align-items: center;
	}
	.sitemap_button a {
		display: block;
	}
	#sp_sitemap {
		padding-top: 20vw;
		margin-top: -20vw;
	}
	/*FV*/
	.fv_main_container_sp {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		z-index: 999;
	}
	.fv_main_container {
		width: 100vw;
	}
	.fv_h2 {
		font-size: 8vw;
	}
	.fv_copy {
		justify-content: center;
		font-size: 4vw;
	}
	.fv_container {
		display: block;
	}
	.fv_image_container {
		width: 100%;
		mask-image: linear-gradient(to bottom, rgb(243, 236, 234) 30%, rgba(128, 77, 77, 0) 100%);
	}
	.fv_image {
		width: 300vw;
		opacity: 0.6;
	}
	.mouse {
		width: 6.668vw;
		height: 12.168vw;
		border-radius: 3.334vw;
		background-size: 100% 200%;
	}
	.mouse:before {
		width: 5.334vw;
		height: 10.668vw;
	}
	.mouse::after {
		width: 3.418vw;
		height: 3.418vw;
	}
	.scroll_icon p {
		font-size: 4vw;
	}
	/*メニューセクション*/
	.global_menu {
		padding: 50vh 0;
	}
	.global_menu .main {
		width: 80vw;
	}
	/*グローバルメニュー*/
	.main_back {
		width: 80vw;
		height: 80vw;
	}
	.global_menu .text {
		font-size: 5vw;
	}
	.global_menu .card {
		width: calc(100% / 3);
		height: calc(80vw / 3);
	}
	.global_menu_container.active .text {
		opacity: 0;
		z-index: -3;
	}
	.global_menu_container.active .main {
		width: 80vw;
	}
	.global_menu .main:hover {
		width: 80vw;
	}
	.global_menu .main:hover .card {
		width: 100%;
	}
	.global_menu_container.active .card {
		width: 100%;
		height: 17vw;
		border-radius: .834vw;
		box-shadow: 0 4px 30px rgba(0, 0, 0, .1);
		border: 1px solid rgba(255, 255, 255, .3);
		background: rgba(255, 255, 255, .2);
		margin: .3vw;
	}
	.global_menu .card .main_text {
		font-size: 5vw;
		line-height: 1;
		margin-bottom: 2vw;
	}
	.global_menu .card .sub_text {
		font-size: 3vw;
		line-height: 1;
	}
	.global_menu_container.active .main_back {
		opacity: 0;
	}
	.global_menu_container.active .card1 a,
	.global_menu_container.active .card2 a,
	.global_menu_container.active .card3 a,
	.global_menu_container.active .card4 a,
	.global_menu_container.active .card5 a,
	.global_menu_container.active .card6 a,
	.global_menu_container.active .card7 a,
	.global_menu_container.active .card8 a,
	.global_menu_container.active .card9 a {
		opacity: 1;
	}
	.global_menu_bg_text {
		font-size: 15vh;
	}
	.global_menu_bg_text1 {
		top: calc(50% - 50vw);
	}
	.global_menu_bg_text3 {
		top: calc(50% + 50vw);
	}
	.global_menu_container a {
		pointer-events: none;
	}
	.global_menu_container.active a {
		pointer-events: auto;
	}
	/*サービス*/
	.home .service {
		padding: 50vh 0;
	}
	.section_title {
		font-size: 8vw;
		margin-bottom: 10vw;
	}
	.service_items {
		display: block;
	}
	.service_items {
		width: 80vw;
	}
	.service_item {
		margin-bottom: 8vw;
		padding: 6vw 5vw;
	}
	.service_item:last-child {
		margin-bottom: 0;
	}
	.service_item_title {
		font-size: 4.6vw;
		margin-bottom: 5vw;
	}
	.service_item_text {
		font-size: 3.6vw;
	}
	/*Price*/
	.price.object_anchor {
		padding: 50vh 0;
	}
	.price_items {
		width: 80vw;
		display: block;
	}
	.price_item {
		width: 100%;
	}
	.price_item_title {
		font-size: 4.6vw;
		margin-bottom: 5vw;
	}
	.price_item_fee {
		border-bottom: 0;
	}
	.fee_value {
		font-size: 9vw;
		line-height: 1;
	}
	.fee_unit {
		font-size: 5vw;
		line-height: 1;
	}
	.price_item_text {
		font-size: 3.8vw;
		text-align: center;
	}
	.price_item_caption {
		font-size: 3vw;
	}
	.price_item:first-child {
		margin-bottom: 12vw;
		border-bottom: 2px solid #000;
		padding-bottom: 12vw;
	}
	.btn {
		width: 30vw;
		height: 10vw;
	}
	.btn a .original {
		font-size: 3vw;
	}
	.btn a {
		border-radius: 5vw;
	}
	/*Feature*/
	.feature.object_anchor {
		padding: 50vh 0;
	}
	.feature_contents {
		width: 80vw;
		display: block;
	}
	.feature_image {
		position: absolute;
		width: 90%;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		opacity: 0.6;
	}
	.feature_items {
		width: 100%;
		position: relative;
		margin-bottom: 12vw;
	}
	.feature_item {
		margin-bottom: 6vw;
	}
	.feature_item_title {
		font-size: 4.8vw;
		margin-bottom: 5vw;
	}
	.feature_item_text {
		font-size: 3.8vw;
	}
	/*Case*/
	.case_outer {
		width: 100%;
	}
	.case_contents {
		width: 80vw;
		margin: 0 auto 12vw;
	}
	.case_contents li {
		font-size: 4vw;
		margin-bottom: 6vw;
		padding-bottom: 6vw;
		min-height: 20vw;
	}
	.case_bg {
		width: 90%;
		bottom: auto;
		top: 50%;
		left: 50%;
		right: auto;
		transform: translate(-50%, -50%);
		opacity: 0.6;
	}
	/*QA*/
	.home .qa {
		padding: 50vh 0;
	}
	.home .qa_items {
		width: 80vw;
		margin: 0 auto 12vw;
	}
	.home .qa_item {
		margin-bottom: 6vw;
		padding: 3vw;
	}
	.home .qa_item_title {
		margin-bottom: 3vw;
	}
	.home .qa_item_title .label {
		font-size: 6vw;
	}
	.home .qa_item_text {
		font-size: 3.8vw;
		padding: 3vw;
		line-height: 2;
	}
	.home .qa_bg {
		width: 90%;
		bottom: -18vw;
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		opacity: .6;
	}
	/*Review*/
	.home .review {
		padding: 50vh 0;
		overflow: hidden;
	}
	.review_inner {
		height: 100vh;
	}
	.review_items {
		display: block;
		margin: 0 auto 12vw;
	}
	.review_item {
		width: 100%;
		display: block;
		padding: 5vw;
		margin-bottom: 6vw;
	}
	.review_item_icon {
		width: 15vw;
		position: absolute;
		opacity: 0.1;
		top: 0;
		right: 0;
	}
	.review_item_text {
		font-size: 3vw;
		width: 100%;
	}
	.review_item:nth-last-child(2) {
		margin-bottom: 6vw;
	}
	.home .review .btn {
		margin-top: -1vw;
	}
	/*Demo*/
	.home .demo {
		padding: 50vh 0;
	}
	.home .demos {
		width: 80vw;
		margin: 0 auto 12vw;
	}
	.home .demo_item {
		width: 100%;
		margin-bottom: 12vw;
	}
	.home .demo_item:first-child, .home .demo_item:nth-child(2), .home .demo_item:nth-child(3) {
		margin-bottom: 12vw;
	}
	.home .demo_item:last-child {
		margin-bottom: 0;
	}
	.demo_text {
		text-align: center;
	}
	.home .demo .flip_card_title {
		font-size: 5vw;
		color: #fff;
		line-height: 1.2;
		margin-bottom: 2vw;
	}
	.home .demo .card__description {
		font-size: 4vw;
		color: #fff;
		line-height: 1;
	}
	.flip_card {
		height: auto;
		margin-bottom: 3vw;
	}
	/*Study*/
	.home .study {
		padding: 50vh 0;
	}
	.study_items {
		width: 80vw;
		margin: 0 auto 12vw;
		display: block;
	}
	.study_item_container {
		width: 100%;
		box-shadow: 0 0 23px 8px rgba(255, 225, 225, 0.2);
		height: auto;
	}
	.study_item_container:first-child {
		margin-bottom: 12vw;
	}
	.study_item .content {
		position: static;
		transform: none;
		border-radius: 0 0 5px 5px;
	}
	.study_item .front-content_title {
		font-size: 4.2vw;
		padding: 3vw 2vw;
	}
	.study_item .content p {
		font-size: 3.8vw;
	}
	.content_list li {
		font-size: 3.8vw;
	}
	/*下部問い合わせ*/
	.bottom_contact_items {
		width: 83.334vw;
		margin: 0 auto -48vw;
		display: block;
	}
	.bottom_contact_item {
		width: 100%;
		height: 75vw;
		border-radius: 2vw;
		gap: 3vw;
	}
	.bottom_contact_item::before {
		width: 100%;
		height: 26vw;
	}
	#bottom_contact_item_line {}
	.bottom_contact_icon {
		width: 30vw;
		height: 30vw;
	}
	.bottom_contact_icon i {
		font-size: 10vw;
	}
	.bottom_contact_item.form {
		margin-bottom: 10vw;
	}
	.bottom_contact_item_info span {
		font-size: 6vw;
	}
	.bottom_contact_item_info p {
		font-size: 4vw;
	}
	/*Footer*/
	.footer_content {
		width: 83.334vw;
		display: block;
		padding-top: 16vw;
	}
	.footer_logos {
		margin: 0 auto 12vw;
		width: 45vw;
	}
	.footer_logo {
		margin-bottom: 3vw;
	}
	.footer_sns_btn {
		width: 10vw;
		height: 10vw;
		border-radius: 2vw;
	}
	.footer_sns_svg {
		border-radius: 2vw;
	}
	.footer_sns_bg {
		border-radius: 2vw;
	}
	.privacy_link a {
		font-size: 4vw;
	}
	.footer_nav_container {
		display: block;
	}
	.footer_nav_title {
		font-size: 5vw;
		text-align: center;
		border-bottom: 2px solid #777;
		padding-bottom: 2vw;
		margin-bottom: 3vw;
	}
	.footer_nav_items li a {
		font-size: 4vw;
	}
	.footer_nav_items li {
		margin-bottom: 2vw;
	}
	.footer_nav {
		margin-bottom: 8vw;
	}
	.footer_nav_items {
		padding-left: 2vw;
	}
	.footer_nav_items li a i {
		margin-right: 2vw;
	}
	.footer_qr_wrap {
		display: none;
	}
	/*トップへ戻る*/
	.progress-wrap {
		width: 15vw;
		height: 15vw;
		border-radius: 50%;
		bottom: 20vw;
	}
	.progress-wrap::before {
		width: 15vw;
		height: 5vw;
		font-size: 7vw;
		top: 50%;
		transform: translateY(-50%);
	}
	.progress-wrap::after {
		width: 15vw;
		height: 5vw;
		font-size: 7vw;
		top: 50%;
		transform: translateY(-50%);
	}
	/*下部メニュー*/
	.fixed_cta_wrap {
		display: none;
		position: sticky;
		bottom: 0;
		z-index: 99999;
		position: fixed;
		width: 100%;
	}
	.fixed_cta {
		display: flex;
		width: 100%;
	}
	.fixed_cta_button {
		cursor: pointer;
		text-align: center;
		font-size: 5vw;
		position: relative;
		z-index: 99999;
		padding: 3vw 0;
		background: #222c;
		color: #fff;
	}
	.fixed_cta_menu {
		position: fixed;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		z-index: 99998;
		transform: translateY(100%);
		transition: all 0.3s;
	}
	.fixed_cta_menu.show {
		transform: translateY(0%);
	}
	.fixed_cta_item {
		width: calc(100% / 2);
	}
	.fixed_cta_bg {
		background: #fffc;
		width: 100%;
		height: 100%;
	}
	.fixed_cta_menu ul {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		z-index: 99999;
		margin: 0;
		list-style: none;
		width: 85vw;
		padding: 2vw 0;
		background: #000000d6;
	}
	.fixed_cta_item:first-child {
		position: relative;
	}
	.fixed_cta_item:first-child:before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		width: 1px;
		height: 100%;
		background: #686868;
		z-index: 999999;
	}
	.fixed_cta_menu li {
		position: relative;
	}
	.fixed_cta_menu li:before {
		content: "";
		display: block;
		position: absolute;
		bottom: 0;
		width: 100%;
		height: 1px;
		background: #393939;
	}
	.fixed_cta_menu li:last-child:before {
		display: none;
	}
	.fixed_cta_menu ul li a {
		text-decoration: none;
		font-size: 4.2vw;
		display: block;
		padding: 4vw 0;
		text-align: center;
		color: #fff;
	}
	.fixed_cta_button:before {
		content: "閉じる";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		padding: 3vw 0;
		background: #ce2029;
		transform: translateY(100%);
		transition: all 0.3s;
	}
	.fixed_cta_button.active:before {
		transform: translateY(0);
	}
	/*各ページ*/
	.page_header_contents {
		width: 85vw;
	}
	.page_title {
		white-space: wrap;
		padding: 12vw 8vw;
	}
	.page_title_label {
		font-size: 12vw;
	}
	.page_title_main {
		font-size: 5vw;
		margin-bottom: 10vw;
	}
	.page_title_sub {
		font-size: 3.8vw;
		text-align: left;
		line-height: 1.8;
	}
	.page_header_image1 {
		width: 40vw;
		bottom: auto;
		top: 25vw;
	}
	.page_header_image2 {
		width: 40vw;
		bottom: auto;
		top: 25vw;
		right: 5.334vw;
		left: auto;
	}
	.page_header_image3 {
		width: 80vw;
		right: auto;
		left: 10vw;
	}
	.page_header_image1 {
		width: 40vw;
		bottom: auto;
		top: 25vw;
		left: 220vw;
	}
	.page_header_image2 {
		width: 40vw;
		bottom: auto;
		top: 25vw;
		left: 265vw;
	}
	.page_header_image3 {
		width: 80vw;
		right: auto;
		left: 10vw;
	}
	/*Price*/
	.price_outer {
		width: 90vw;
	}
	.tab {
		padding: 4vw 3vw;
	}
	.tab_name {
		font-size: 4.6vw;
		margin-bottom: 3vw;
	}
	.tab_caption {
		font-size: 3vw;
	}
	.panel {
		padding: 10vw 0;
	}
	.page_h2 {
		display: block;
		padding-bottom: 4vw;
		margin-bottom: 8vw;
	}
	.page_h2_main {
		font-size: 6vw;
	}
	.page_h2_sub {
		font-size: 4vw;
	}
	.page_h2::before {
		width: 10vw;
		height: 1vw;
	}
	.price_lead {
		margin-bottom: 12vw;
	}
	.price_lead_text {
		font-size: 4vw;
		margin-bottom: 6vw;
	}
	.price_lead_caption {
		font-size: 3.2vw;
	}
	.page_h3 {
		font-size: 4.8vw;
		margin-bottom: 6vw;
	}
	.price_list li {
		font-size: 4vw;
		margin-bottom: 3vw;
	}
	.price_list {
		margin: 0 0 12vw;
	}
	.price_text {
		font-size: 9vw;
	}
	.price_caption {
		text-align: left;
	}
	.page_table td, .page_table th {
		font-size: 3.4vw;
	}
	.page_table .price {
		font-size: 3.4vw;
	}
	/*テーブル*/
	.page_table tr > th:first-child {
		position: static;
	}
	.page_table td, .page_table th {
		min-width: 45vw;
	}
	.page_table {
		overflow-x: scroll;
	}
	.page_table thead th {
		position: static;
	}
	.page_table tr>th:first-child {
		position: sticky;
		left: 0;
		top: 0;
		min-width: 33vw;
	}
	/*選ばれる理由*/
	.feature_sv_image1 {
		width: 90vw;
		top: 15vw;
	}
	.feature_sv_image2 {
		width: 40vw;
		bottom: 15%;
	}
	.feature_sv_image3 {
		width: 58vw;
	}
	.feature_sv_text {
		font-size: 6vw;
		width: 80vw;
		margin: auto;
	}
	.point_main {
		position: relative;
	}
	.point_animation {
		top: 45vw;
		left: 7vw;
	}
	.point_circle_inner {
		width: 25vw;
		height: 25vw;
	}
	.point_circle {
		width: 25vw;
		height: 25vw;
		margin-top: 10vw;
	}
	
}
/*--------------------------------メディアクエリ750以上【タブレット以上】---------------------------------*/
@media only screen and (min-width: 751px) {
	.sp_only {
		display: none !important;
	}
	/*ドロワーメニュー非表示*/
	.drawer-hamburger, .drawer-overlay, .drawer-navigation {
		display: none;
	}
}