@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+1:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,opsz,wght@0,6..96,400..900;1,6..96,400..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap");
@import url("all.css");
/*===============================

共通

================================*/
@media screen and (max-width: 820px) {
  .pc {
    display: none;
  }
}
@media screen and (min-width: 821px) {
  .sp {
    display: none;
  }
}
.btn {
  display: block;
  width: 250px;
  margin: auto;
  margin-top: 25px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media screen and (max-width: 767px) {
  .btn {
    margin-top: 15px;
  }
}

.btn:hover {
  transform: scale(1.1, 1.1);
}

.btn_type {
  width: 630px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .btn_type {
    width: 95%;
  }
}
.btn_type dl {
  display: flex;
  margin: 30px 0 0;
}
@media screen and (max-width: 767px) {
  .btn_type dl {
    margin: 10px 0 0;
  }
}
.btn_type dt {
  width: 33.3333333333%;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  font-weight: 700;
}
.btn_type label {
  display: block;
  width: 200px;
  background: #7f93a8;
  color: white;
  padding: 10px;
  margin: auto;
  box-sizing: border-box;
  text-align: center;
  text-decoration: none;
  border-radius: 30px;
  cursor: pointer;
}
@media screen and (max-width: 767px) {
  .btn_type label {
    width: auto;
    margin: 2px;
  }
}
.btn_type input:checked + label {
  background: #1f1f40;
  color: #fff;
}
.btn_type input {
  display: none;
}

.sort-choice {
  display: flex;
  justify-content: center;
  margin: 30px 0 40px;
  overflow: hidden;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .sort-choice {
    margin: 10px 0 20px;
    padding: 0 10px;
  }
}
.sort-choice input {
  position: absolute !important;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  width: 1px;
  border: 0;
  overflow: hidden;
}
.sort-choice label {
  background-color: #f0f0f0;
  color: #1f1f40;
  text-align: center;
  font-size: 17px;
  line-height: 1;
  padding: 9px 18px;
  margin-right: -1px;
  border: 1px solid #1f1f40;
  transition: all 0.2s ease-in;
}
.sort-choice input:checked + label {
  background-color: #36365d;
  color: white;
}
.sort-choice:hover {
  cursor: pointer;
}
.sort-choice label:first-of-type {
  border-radius: 5px 0 0 5px;
}
.sort-choice label:last-of-type {
  border-radius: 0 5px 5px 0;
}

/*
調整
================================*/
.adjustment {
  margin: 70px 0 0;
}

.shadow_w {
  text-shadow: 2px 2px 1px #fff, -2px 2px 1px #fff, 2px -2px 1px #fff, -2px -2px 1px #fff;
}

.white {
  filter: invert(88%) sepia(61%) saturate(0%) hue-rotate(229deg) brightness(107%) contrast(101%);
}

.fade_wrap {
  position: relative;
  margin: 0 auto;
}

.fademovie {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

.fade_text_01 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

.fade_text_02 {
  position: absolute;
  top: 25px;
  left: 0;
  width: 100%;
}

.fade_text_inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 1;
}

.fade_click_inner {
  position: absolute;
  bottom: -1px;
  left: -1px;
  width: 103%;
  height: 103%;
  border-radius: 50%;
  background-color: #fff;
  z-index: 1;
}

.fade_image {
  position: absolute;
  top: 3.5%;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 92%;
  height: 92%;
  z-index: 1;
  object-fit: cover;
}

.fade_movie {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.fade_click {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100px;
  height: 100px;
}

.swiper-slide-active .fade_text_01 {
  animation: slideFromText 1s ease 0s 1 normal;
}

.swiper-slide-active .fade_text_02 {
  animation: slideFromText 1s ease 0s 1 normal;
}

.swiper-slide-active .fade_text_inner {
  animation: slideFromWhite 1.5s ease 0s 1 normal;
  animation-fill-mode: forwards;
}

.swiper-slide-active .fade_image {
  animation: slideFromWhite 1.5s ease 0s 1 normal;
  animation-fill-mode: forwards;
}

.swiper-slide-active .fade_movie {
  animation: slideFromRightMovie 555.5s ease 0s 1 normal;
}

.swiper-slide-active .fade_click {
  animation: slideFromClick 1.5s ease 0s 1 normal;
  animation-fill-mode: forwards;
}

.swiper-slide-active .fade_click_inner {
  animation: slideFromWhite 1.5s ease 0s 1 normal;
  animation-fill-mode: forwards;
}

@keyframes slideFromText {
  0%, 25% {
    transform: translateY(5px);
    opacity: 0;
  }
  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}
@keyframes slideFromClick {
  0%, 25% {
    transform: translateY(0px);
    opacity: 0;
  }
  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}
@keyframes slideFromWhite {
  0%, 25% {
    transform: translateX(0px);
    opacity: 1;
  }
  100% {
    transform: translateX(0px);
    opacity: 0;
  }
}
.main_pc_01 {
  animation-delay: 0.5s;
}

.main_pc_02 {
  animation-delay: 1s;
}

.main_pc_03 {
  animation-delay: 1.5s;
}

.main_pc_04 {
  animation-delay: 2s;
}

.main_pc_05 {
  animation-delay: 2.5s;
}

.main_pc_06 {
  animation-delay: 3s;
}

.main_pc_07 {
  animation-delay: 3.5s;
}

.main_pc_08 {
  animation-delay: 4.5s;
}

.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 1.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.fadeStay {
  animation-name: fadeStayAnime;
  animation-duration: 1.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeStayAnime {
  from {
    opacity: 0;
    transform: translateY(0);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes mainFrom01 {
  0%, 25% {
    transform: translateY(5px);
    opacity: 0;
  }
  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}
@keyframes mainFrom02 {
  0%, 25% {
    transform: translateY(0px);
    opacity: 0;
  }
  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}
/*
オン・オフ
================================*/
.button_more {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  color: #7335ff;
  font-size: 18px;
  border-radius: 30px;
  width: 320px;
  height: 60px;
  margin: auto;
  font-weight: bold;
  border: 1px solid #7335ff;
  position: relative;
  transition: 0.3s;
  background-color: #ffffff;
}

.button_more::before {
  content: "CLICK!!";
  display: block;
  font-size: 1.4rem;
  background-color: #7335ff;
  color: #fff;
  border-radius: 3px;
  padding: 5px 10px 7px;
  position: absolute;
  top: 0;
  left: 10px;
  transform: translate(-5px, -30%);
  transition: 0.3s;
}

.button_more:hover::before {
  transform: translate(-5px, -50%);
}

.button_pickup {
  display: flex;
  margin: 20px 0 0;
  align-items: center;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  color: #ffffff;
  font-size: 2rem;
  font-weight: bold;
  border-radius: 5px;
  width: 320px;
  height: 60px;
  position: relative;
  transition: 0.3s;
  background-color: #7335ff;
}
@media screen and (max-width: 768px) {
  .button_pickup {
    width: 100%;
    height: 50px;
    margin: 0;
    font-size: 1.4rem;
  }
}

.button_pickup::before,
.button_pickup::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 15px;
  transform-origin: 100% 50%;
  height: 2px;
  width: 12px;
  background-color: #fff;
  border-radius: 2px;
  will-change: transform;
  transition: 0.3s;
}
@media screen and (max-width: 768px) {
  .button_pickup::before,
.button_pickup::after {
    right: 5px;
  }
}

.button_pickup::before {
  transform: translateY(-50%) rotate(30deg);
}

.button_pickup::after {
  transform: translateY(-50%) rotate(-30deg);
}

.button_pickup:hover::before {
  transform: translate(5px, -50%) rotate(30deg);
}

.button_pickup:hover::after {
  transform: translate(5px, -50%) rotate(-30deg);
}

.color01 {
  color: #ff3980;
}

.color02 {
  color: #ff7706;
}

.color03 {
  color: #44b9a4;
}

.color04 {
  color: #00d8ff;
}

.color05 {
  color: #b931ff;
}

.color06 {
  color: #b39003;
}

.color07 {
  color: #ff83a3;
}

.color08 {
  color: #86ddcd;
}

.bg_color01 {
  background-color: #ff8caa;
}

.bg_color02 {
  background-color: #31ecb6;
}

.bg_color03 {
  background-color: #fff100;
}

html {
  font-size: 62.5%;
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  word-break: normal;
  -moz-tab-size: 4;
  -webkit-tab-size: 4;
  tab-size: 4;
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
  background: url("../img/bg.jpg") repeat fixed;
  background-size: 100%;
  color: black;
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-size: 1.6rem;
}

img {
  max-width: 100%;
}

/*
補足
================================*/
.br_sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .br_sp {
    display: block;
  }
}

.br_pc {
  display: block;
}
@media screen and (max-width: 767px) {
  .br_pc {
    display: none;
  }
}

.flex {
  display: flex;
}

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

#wrapper {
  width: 100%;
  overflow-x: hidden !important;
}

/*===============================

認証ページ

================================*/
.index {
  overflow: hidden;
  overflow-y: auto;
  height: 100vh;
  background: url("../img/index_bg2.jpg") no-repeat center center;
  background-size: cover;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .index {
    background: url("../img/index_sp2.jpg") no-repeat center center;
    background-size: cover;
  }
}
.index .index__content {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .index .index__content {
    padding: 0 20px;
  }
}
.index h1 {
  display: block;
  padding: 20px 0 0;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
}
@media screen and (max-width: 767px) {
  .index h1 {
    font-size: 1.3rem;
  }
}
.index h2 {
  padding: 50px 0;
  font-size: 1.4rem;
  line-height: 2;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  text-shadow: 0px 3px 5px rgba(0, 0, 0, 0.4);
}
@media screen and (max-width: 767px) {
  .index h2 {
    padding: 20px;
    font-size: 1.1rem;
    font-family: "Noto Sans JP", sans-serif;
    line-height: 1.4;
  }
}
.index .__logo {
  width: 600px;
  margin: auto;
  padding: 80px 0 20px;
  filter: drop-shadow(0px 0px 15px rgba(0, 0, 0, 0.4));
}
@media screen and (max-width: 767px) {
  .index .__logo {
    width: 80%;
    padding: 30px 0 20px;
    filter: drop-shadow(0px 0px 15px #000);
  }
}
.index .__open {
  width: 400px;
  margin: auto;
  padding: 20px 0;
  background-color: #1f1f40;
  border-radius: 100vh;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .index .__open {
    width: 80%;
    padding: 10px 0;
    font-size: 1.4rem;
  }
}
.index .__open a {
  display: block;
  padding: 10px 0 0;
  color: white;
  font-size: 3rem;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .index .__open a {
    padding: 5px 0 0;
    font-size: 2.5rem;
  }
}
.index .__enter {
  position: relative;
  width: 440px;
  height: 77px;
  margin: auto;
  filter: drop-shadow(0px 0px 15px rgba(0, 0, 0, 0.4));
}
@media screen and (max-width: 767px) {
  .index .__enter {
    width: 320px;
    height: 58px;
  }
}
.index .__enter .over_18 {
  position: absolute;
  top: 0;
  left: 0;
  width: 220px;
  height: 77px;
}
@media screen and (max-width: 767px) {
  .index .__enter .over_18 {
    width: 160px;
    height: 58px;
  }
}
.index .__enter .under_18 {
  position: absolute;
  top: 0;
  right: 0;
  width: 220px;
  height: 77px;
}
@media screen and (max-width: 767px) {
  .index .__enter .under_18 {
    width: 160px;
    height: 58px;
  }
}
.index .__text {
  width: 440px;
  margin: 20px auto;
  padding: 10px;
  background-color: white;
  color: black;
  font-size: 1.5rem;
  border-radius: 100vh;
}
@media screen and (max-width: 767px) {
  .index .__text {
    width: 320px;
    margin: 10px auto;
    padding: 10px;
    background-color: white;
    color: black;
    font-size: 1.2rem;
  }
}
.index .__banner {
  max-width: 468px;
  margin: auto;
  margin-top: 50px;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .index .__banner {
    max-width: 80%;
  }
}

.index2 {
  overflow: hidden;
  overflow-y: auto;
  height: 100vh;
  background: url("../img/index_bg2.jpg") no-repeat center center;
  background-size: cover;
  color: white;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .index2 {
    background: url("../img/index_sp2.jpg") no-repeat top center;
    background-size: 100%;
  }
}
.index2 h1 {
  display: block;
  padding: 20px 0 0;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
}
@media screen and (max-width: 767px) {
  .index2 h1 {
    font-size: 1.3rem;
  }
}
.index2 h2 {
  padding: 50px 0;
  font-size: 1.4rem;
  line-height: 2;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  text-shadow: 0px 3px 5px rgba(0, 0, 0, 0.4);
}
@media screen and (max-width: 767px) {
  .index2 h2 {
    padding: 20px;
    font-size: 1.1rem;
    font-family: "Noto Sans JP", sans-serif;
    line-height: 1.4;
  }
}
.index2 .__logo {
  width: 600px;
  margin: auto;
  padding: 80px 0 20px;
  filter: drop-shadow(0px 0px 15px rgba(0, 0, 0, 0.4));
}
@media screen and (max-width: 767px) {
  .index2 .__logo {
    width: 80%;
    padding: 30px 0 20px;
    filter: drop-shadow(0px 0px 15px #000);
  }
}
.index2 .__open {
  width: 400px;
  margin: auto;
  padding: 20px 0;
  background-color: #1f1f40;
  border-radius: 100vh;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .index2 .__open {
    width: 80%;
    padding: 10px 0;
    font-size: 1.4rem;
  }
}
.index2 .__open a {
  display: block;
  padding: 10px 0 0;
  color: white;
  font-size: 3rem;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .index2 .__open a {
    padding: 5px 0 0;
    font-size: 2.5rem;
  }
}
.index2 .__enter {
  position: relative;
  width: 700px;
  height: 77px;
  margin: auto;
  filter: drop-shadow(0px 0px 15px rgba(0, 0, 0, 0.4));
}
@media screen and (max-width: 767px) {
  .index2 .__enter {
    width: 98%;
    height: 50px;
  }
}
.index2 .__enter .over_18 {
  position: absolute;
  top: 0;
  left: 0;
  width: 220px;
  height: 77px;
}
@media screen and (max-width: 767px) {
  .index2 .__enter .over_18 {
    width: 35%;
    height: 50px;
  }
}
.index2 .__enter .under_18 {
  position: absolute;
  top: 0;
  right: 0;
  width: 220px;
  height: 77px;
}
@media screen and (max-width: 767px) {
  .index2 .__enter .under_18 {
    width: 35%;
    height: 50px;
  }
}
.index2 .__banner {
  max-width: 468px;
  margin: auto;
  margin-top: 50px;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .index2 .__banner {
    max-width: 80%;
  }
}

.index_seo {
  width: 900px;
  margin: auto;
  margin-top: 50px;
  padding: 30px;
  border: 1px solid #232345;
  background: rgba(255, 255, 255, 0.5);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .index_seo {
    width: 90%;
    margin-top: 25px;
    padding: 10px;
    background: rgba(255, 255, 255, 0);
    line-height: 1.5;
  }
}
.index_seo h4 {
  color: #3e3e78;
  font-size: 18px;
}

.purelovers {
  padding: 20px;
}

/*===============================

アサイド

================================*/
.aside {
  position: fixed;
  bottom: 10px;
  right: 10px;
  z-index: 1000000000;
}
@media screen and (max-width: 767px) {
  .aside {
    display: none;
  }
}

/*===============================

パンくずリスト

================================*/
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: auto;
  padding: 30px 0 20px;
  list-style: none;
  font-size: 1.3rem;
}
@media screen and (max-width: 767px) {
  .breadcrumb {
    justify-content: flex-start;
    margin: 75px 0 0;
    padding: 5px;
    font-size: 1rem;
  }
}
.breadcrumb a {
  color: #000;
  text-decoration: none;
}
.breadcrumb li:not(:last-of-type)::after {
  content: "›";
  margin: 0 5px;
}

/*===============================

夜這い

================================*/
.yobai {
  margin: 10px 0 0;
}
.yobai .__inner {
  overflow: hidden;
  position: relative;
  max-width: 1200px;
  height: 584px;
  margin: auto;
  background-color: #666;
}
@media screen and (max-width: 767px) {
  .yobai .__inner {
    height: 0;
    padding-top: 85.7%;
  }
}
.yobai .__inner .image {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 2;
}
.yobai .__inner .video {
  position: absolute;
  bottom: 33px;
  right: -235px;
  width: 920px;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .yobai .__inner .video {
    bottom: 7px;
    right: 0;
    left: 0;
    width: 115%;
    margin: auto;
  }
}
.yobai .__inner .video video {
  width: 100%;
}

/*===============================

カバーイベント

================================*/
.main_banner {
  max-width: 1200px;
  margin: auto;
  margin-top: 50px;
}
@media screen and (max-width: 767px) {
  .main_banner {
    margin-top: 10px;
    padding: 0 10px;
  }
}

.main_video {
  max-width: 1200px;
  margin: auto;
  margin-top: 10px;
}
@media screen and (max-width: 767px) {
  .main_video {
    margin-top: 10px;
    padding: 0 10px;
  }
}
.main_video .__inner {
  overflow: hidden;
  position: relative;
  max-width: 1200px;
  height: 384px;
  margin: auto;
  background-color: #666;
}
@media screen and (max-width: 767px) {
  .main_video .__inner {
    height: 0;
    height: auto;
    padding-top: 31%;
  }
}
.main_video .__inner .image {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 2;
}
.main_video .__inner .video {
  position: absolute;
  bottom: 0;
  right: -140px;
  width: 550px;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .main_video .__inner .video {
    bottom: 0;
    right: -40px;
    width: 170px;
    margin: auto;
  }
}
.main_video .__inner .video video {
  width: 100%;
}

.sub_video {
  max-width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .sub_video {
    padding: 0 10px;
  }
}
.sub_video .__inner {
  overflow: hidden;
  position: relative;
  max-width: 1200px;
  height: 333px;
  margin: auto;
  background-color: #666;
}
@media screen and (max-width: 767px) {
  .sub_video .__inner {
    height: 0;
    height: auto;
    padding-top: 28%;
  }
}
.sub_video .__inner .image {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 2;
}
.sub_video .__inner .video {
  position: absolute;
  bottom: 0;
  right: 200px;
  width: 590px;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .sub_video .__inner .video {
    bottom: 0;
    right: 60px;
    width: 190px;
    margin: auto;
  }
}
.sub_video .__inner .video video {
  width: 100%;
}

.coverevent {
  max-width: 1200px;
  margin: auto;
  margin-top: 10px;
}
@media screen and (max-width: 767px) {
  .coverevent {
    margin-top: 10px;
    padding: 0 10px;
  }
}

/*===============================

スライドバナー

================================*/
.slide {
  margin: 100px 0;
}
@media screen and (max-width: 767px) {
  .slide {
    width: auto;
    margin: 0;
  }
}

/*
週間出勤
================================*/
.week {
  width: 100%;
  margin: auto;
  padding: 50px 0 25px;
}
@media screen and (max-width: 767px) {
  .week {
    width: 900px;
    padding: 20px 0;
  }
}
.week dl {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.week dt {
  width: 14.2857142857%;
  position: relative;
  letter-spacing: 0.1rem;
  text-indent: 0.1rem;
}
.week dt + dt {
  border-left: 1px solid #a6a6c4;
}
.week a {
  display: block;
  padding: 10px 0 5px 0;
  color: #000;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
}
.week div {
  display: block;
  padding: 10px 0 5px 0;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
}
.week p {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .week p {
    font-size: 1.6rem;
  }
}
.week .time {
  padding: 20px 0;
  border-top: 1px solid #a6a6c4;
  font-size: 1.8rem;
  font-weight: 500;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .week .time {
    padding: 10px 0;
    font-size: 1.4rem;
  }
  .week .time span {
    display: block;
    margin: auto;
    writing-mode: vertical-rl;
  }
}
.week .current {
  background: rgba(250, 162, 167, 0.5);
}
.week .month {
  vertical-align: top;
  position: relative;
  top: -0.3em;
  font-size: 1.2rem;
}
.week .dotw-l {
  display: inline-block;
  width: 70%;
  margin-top: 5px;
  padding: 3px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 100vh;
  font-size: 1.1rem;
}
@media screen and (max-width: 767px) {
  .week .dotw-l {
    padding: 3px 0;
  }
}
.week .dotw {
  margin-top: 5px;
  padding: 3px;
  font-size: 1.1rem;
}

/*===============================

週間出勤情報

================================*/
.table_scroll {
  overflow-x: scroll;
}

table.week_table {
  max-width: 1600px;
  margin: auto;
  margin-top: 50px;
}
@media screen and (max-width: 767px) {
  table.week_table {
    width: 700px;
  }
}
table.week_table td {
  padding: 20px 0;
  vertical-align: middle;
  border: 1px solid #ddd;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
}
table.week_table td.image {
  padding: 10px;
  background: #fff;
  font-size: 1.2rem;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
}
@media screen and (max-width: 767px) {
  table.week_table td.image {
    width: 60px;
    padding: 5px;
  }
}
table.week_table td.image img {
  width: 100px;
  margin: auto;
  margin-bottom: 5px;
}
@media screen and (max-width: 767px) {
  table.week_table td.image img {
    width: 60px;
  }
}
table.week_table td.days {
  padding: 20px 0;
  background: #000;
}

.week_btn {
  width: 240px;
  margin: auto;
  margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
  .week_btn {
    width: 180px;
  }
}
.week_btn button {
  outline: none;
  cursor: pointer;
  border: none;
  width: 100%;
  padding: 15px 0;
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  position: relative;
  display: inline-block;
  letter-spacing: 0.05rem;
  font-weight: 700;
  font-size: 1.7rem;
  border-radius: 500px;
  overflow: hidden;
  background: #9000cc;
  color: ghostwhite;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
}
@media screen and (max-width: 767px) {
  .week_btn button {
    width: 180px;
    padding: 10px 0;
    font-size: 1.4rem;
  }
}
.week_btn button span {
  position: relative;
  z-index: 10;
  transition: color 0.4s;
}
.week_btn button:hover span {
  color: white;
}
.week_btn button::before,
.week_btn button::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.week_btn button::before {
  content: "";
  background: #000;
  width: 120%;
  left: -10%;
  transform: skew(30deg);
  transition: transform 0.4s cubic-bezier(0.3, 1, 0.8, 1);
}
.week_btn button:hover::before {
  transform: translate3d(100%, 0, 0);
}

/*===============================

女性一覧

================================*/
.cast,
.event,
.review,
.questionnaire,
.faq {
  padding: 100px 0 0;
}
@media screen and (max-width: 767px) {
  .cast,
.event,
.review,
.questionnaire,
.faq {
    padding: 20px 0;
  }
}
.cast h2,
.event h2,
.review h2,
.questionnaire h2,
.faq h2 {
  position: relative;
  max-width: 1200px;
  margin: auto;
  display: flex;
  align-items: center;
}
.cast h2 .list_sort,
.event h2 .list_sort,
.review h2 .list_sort,
.questionnaire h2 .list_sort,
.faq h2 .list_sort {
  position: absolute;
  right: 150px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  gap: 10px;
  z-index: 1;
}
.cast h2 .list_sort a,
.event h2 .list_sort a,
.review h2 .list_sort a,
.questionnaire h2 .list_sort a,
.faq h2 .list_sort a {
  padding: 8px 20px 11px;
  border-radius: 20px;
  text-decoration: none;
  color: #333;
  background: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  border: 1px solid #ddd;
  font-size: 1.8rem;
}
.cast h2 .list_sort a.active,
.event h2 .list_sort a.active,
.review h2 .list_sort a.active,
.questionnaire h2 .list_sort a.active,
.faq h2 .list_sort a.active {
  background-color: #1f1f40;
  color: #fff;
  border-color: #1f1f40;
}
@media screen and (max-width: 767px) {
  .cast h2,
.event h2,
.review h2,
.questionnaire h2,
.faq h2 {
    flex-direction: column;
    align-items: flex-start;
    overflow: hidden;
    padding: 0 10px;
  }
  .cast h2 img,
.event h2 img,
.review h2 img,
.questionnaire h2 img,
.faq h2 img {
    width: 900px;
    max-width: none;
  }
  .cast h2 .list_sort,
.event h2 .list_sort,
.review h2 .list_sort,
.questionnaire h2 .list_sort,
.faq h2 .list_sort {
    position: static;
    transform: none;
    margin-top: 15px;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 10px;
    width: 100%;
  }
  .cast h2 .list_sort a,
.event h2 .list_sort a,
.review h2 .list_sort a,
.questionnaire h2 .list_sort a,
.faq h2 .list_sort a {
    font-size: 1.5rem;
    padding: 6px 15px 9px;
    flex-grow: 1;
    text-align: center;
  }
}
.cast ul,
.event ul,
.review ul,
.questionnaire ul,
.faq ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .cast ul,
.event ul,
.review ul,
.questionnaire ul,
.faq ul {
    margin-left: 5px;
  }
}
.cast li,
.event li,
.review li,
.questionnaire li,
.faq li {
  display: flex;
  width: 25%;
  margin: 10px 0 0;
}
@media screen and (max-width: 1168px) {
  .cast li,
.event li,
.review li,
.questionnaire li,
.faq li {
    width: 33.3333333333%;
  }
}
@media screen and (max-width: 767px) {
  .cast li,
.event li,
.review li,
.questionnaire li,
.faq li {
    width: 49%;
  }
}
.cast figure,
.event figure,
.review figure,
.questionnaire figure,
.faq figure {
  position: relative;
  flex-grow: 1;
  margin: 10px;
  padding: 0 0 50px;
  background-color: white;
  text-align: center;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .cast figure,
.event figure,
.review figure,
.questionnaire figure,
.faq figure {
    height: 100%;
    margin: 7px 5px;
    padding: 0 0 45px;
  }
}
.cast figure .new,
.event figure .new,
.review figure .new,
.questionnaire figure .new,
.faq figure .new {
  position: absolute;
  top: -14px;
  right: 4px;
  z-index: 1;
}
.cast figure .new img,
.event figure .new img,
.review figure .new img,
.questionnaire figure .new img,
.faq figure .new img {
  width: 60px;
}
@media screen and (max-width: 767px) {
  .cast figure .new img,
.event figure .new img,
.review figure .new img,
.questionnaire figure .new img,
.faq figure .new img {
    width: 50px;
  }
}

.cast .__frame,
.event .__frame {
  position: relative;
  overflow: hidden;
}
.cast .__frame .photo,
.event .__frame .photo {
  position: relative;
  overflow: hidden;
}
.cast .__frame .photo img,
.event .__frame .photo img {
  transition: ease 0.5s;
}
.cast .__frame .photo a:hover img,
.event .__frame .photo a:hover img {
  transform: rotate(7deg) scale(1.2);
}
.cast .__frame .fl,
.event .__frame .fl {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
}
@media screen and (max-width: 767px) {
  .cast .__frame .fl,
.event .__frame .fl {
    bottom: 15px;
  }
}
.cast .__frame .fl img,
.event .__frame .fl img {
  width: 120px;
}
@media screen and (max-width: 767px) {
  .cast .__frame .fl img,
.event .__frame .fl img {
    width: 90px;
  }
}
.cast .__frame .type,
.event .__frame .type {
  position: absolute;
  top: 5px;
  left: 5px;
  display: flex;
  justify-content: center;
  height: 44px;
  margin-bottom: 10px;
  padding: 0 2px;
}
@media screen and (max-width: 767px) {
  .cast .__frame .type,
.event .__frame .type {
    height: 39px;
    top: 0px;
    left: 2px;
  }
}
.cast .__frame .type img,
.event .__frame .type img {
  display: block;
  width: 40px;
  height: 44px;
  margin: 7px 0 0;
}
@media screen and (max-width: 767px) {
  .cast .__frame .type img,
.event .__frame .type img {
    width: 35px;
    height: 39px;
  }
}
.cast .__frame .rank,
.event .__frame .rank {
  position: absolute;
  bottom: 5px;
  left: 0px;
  width: 100%;
}
.cast .__frame .waitingtime,
.event .__frame .waitingtime {
  position: absolute;
  width: 100%;
  min-height: 60px;
  bottom: 0;
  background: url("../img/photo_bg.png") no-repeat;
  background-size: 100%;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .cast .__frame .waitingtime,
.event .__frame .waitingtime {
    background: none;
  }
}
.cast .__frame .waitingtime p,
.event .__frame .waitingtime p {
  position: absolute;
  bottom: 10px;
  left: 10px;
  color: white;
  font-size: 1.7rem;
  font-weight: 500;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .cast .__frame .waitingtime p,
.event .__frame .waitingtime p {
    bottom: 5px;
    font-size: 1.4rem;
  }
}
.cast .__frame .waitingtime .waitingtime_sp,
.event .__frame .waitingtime .waitingtime_sp {
  display: none;
}
@media screen and (max-width: 767px) {
  .cast .__frame .waitingtime .waitingtime_sp,
.event .__frame .waitingtime .waitingtime_sp {
    display: block;
    position: absolute;
    width: 100%;
    min-height: 60px;
    bottom: -12px;
    left: 0;
  }
}
.cast .__data,
.event .__data {
  border-top: 3px solid #b8860b;
}
.cast .__data .text,
.event .__data .text {
  padding: 2px 5px 8px;
  font-size: 1.3rem;
  overflow: hidden;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .cast .__data .text,
.event .__data .text {
    display: flex;
    justify-content: center;
    width: 100%;
    height: 25px;
    padding: 5px 0px 5px 0px;
    line-height: 1.5;
  }
}
.cast .__data .name,
.event .__data .name {
  padding: 0 10px;
  font-size: 2.2rem;
  font-weight: 500;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .cast .__data .name,
.event .__data .name {
    width: 100%;
    padding: 0;
    font-size: 1.6rem;
  }
}
.cast .__data .name .en,
.event .__data .name .en {
  font-size: 1.4rem;
}
.cast .__data .name .age,
.event .__data .name .age {
  font-size: 1.4rem;
}
.cast .__data .size,
.event .__data .size {
  padding: 10px 0 7px;
  font-size: 1.5rem;
  font-family: "Bodoni Moda", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .cast .__data .size,
.event .__data .size {
    font-size: 1.3rem;
  }
}
.cast .__data .icon,
.event .__data .icon {
  width: 100%;
  padding: 0 2px;
  display: flex;
  justify-content: center;
}
.cast .__data .icon p,
.event .__data .icon p {
  width: 33.3333333333%;
}
@media screen and (max-width: 767px) {
  .cast .__data .icon p,
.event .__data .icon p {
    width: 50%;
  }
}
.cast .__data .icon a,
.event .__data .icon a {
  display: block;
  width: auto;
  margin: 2px;
  padding: 5px 0;
  background-color: #1f1f40;
  color: white;
  font-size: 1.2rem;
  text-align: center;
  text-decoration: none;
}
.cast .__data .type,
.event .__data .type {
  display: flex;
  justify-content: center;
  height: 44px;
  margin-bottom: 10px;
  padding: 0 2px;
}
@media screen and (max-width: 767px) {
  .cast .__data .type,
.event .__data .type {
    height: 39px;
  }
}
.cast .__data .type img,
.event .__data .type img {
  display: block;
  width: 40px;
  height: 44px;
  margin: 7px 0 0;
}
@media screen and (max-width: 767px) {
  .cast .__data .type img,
.event .__data .type img {
    width: 35px;
    height: 39px;
  }
}
.cast .__data .time,
.event .__data .time {
  position: absolute;
  width: 100%;
  bottom: 0;
  left: 0;
  margin: 10px 0 0;
  padding: 10px 0;
  background-color: #eee;
  font-size: 1.8rem;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .cast .__data .time,
.event .__data .time {
    font-size: 1.6rem;
  }
}

.glow-button {
  position: relative;
  display: block;
  width: calc(100% - 10px);
  margin: auto;
  padding: 8px 25px;
  border: none;
  border-radius: 5px;
  font-weight: 700;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.25em;
  line-height: 1.6;
  color: #fff;
  font-size: 2rem;
  cursor: default;
  overflow: hidden;
  transition: all 0.3s ease;
  box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.2), -4px -4px 8px rgba(255, 255, 255, 0.3);
  background-clip: padding-box;
  isolation: isolate;
}
.glow-button::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 1px;
  right: 1px;
  bottom: 1px;
  background: linear-gradient(45deg, rgba(255, 255, 255, 0.8), rgba(200, 200, 200, 0.5), rgba(255, 255, 255, 0.8));
  border-radius: 4px;
  z-index: -1;
  animation: border-glow 3s infinite;
  box-shadow: inset 2px 2px 4px rgba(255, 255, 255, 0.3), inset -2px -2px 4px rgba(0, 0, 0, 0.2);
}
.glow-button::before {
  content: "";
  position: absolute;
  width: 150%;
  left: -25%;
  width: 200%;
  height: 200%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 100%);
  transform: rotate(-45deg);
  animation: shine 3s infinite;
  animation-delay: 1s;
  filter: brightness(1.2);
  z-index: 1;
}
.glow-button.rank-02 {
  background: linear-gradient(145deg, #a0a0a0, #808080);
  text-shadow: black 1px 1px 2px, black 1px 1px 2px, black 1px 1px 2px, black 1px 1px 2px;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2), -5px -5px 10px rgba(255, 255, 255, 0.4);
}
.glow-button.rank-03 {
  background: linear-gradient(145deg, #d4af37, #b08d20);
  text-shadow: #6f5400 1px 1px 2px, #6f5400 1px 1px 2px, #6f5400 1px 1px 2px, #6f5400 1px 1px 2px;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2), -5px -5px 10px rgba(255, 255, 255, 0.3);
}
.glow-button.rank-04 {
  background: linear-gradient(145deg, #d0d0d0, #a0a0a0);
  text-shadow: #333 1px 1px 2px, #333 1px 1px 2px, #333 1px 1px 2px, #333 1px 1px 2px;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2), -5px -5px 10px rgba(255, 255, 255, 0.4);
}
.glow-button.rank-01 {
  background: linear-gradient(145deg, #ff6b9d, #d44a7c);
  text-shadow: #ae0c46 1px 1px 2px, #ae0c46 1px 1px 2px, #ae0c46 1px 1px 2px, #ae0c46 1px 1px 2px;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2), -5px -5px 10px rgba(255, 255, 255, 0.3);
}
.glow-button.rank-02::after {
  background: linear-gradient(45deg, #ffffff, #c0c0c0 50%, #808080);
  box-shadow: 0 0 10px rgba(192, 192, 192, 0.5);
}
.glow-button.rank-03:after {
  background: linear-gradient(45deg, #fff9b0, #ffd700 50%, #d4af37);
  box-shadow: 0 0 10px rgba(255, 215, 0, 0.3);
}
.glow-button.rank-04::after {
  background: linear-gradient(45deg, #ffffff, #e5e4e2 50%, #c0c0c0);
  box-shadow: 0 0 10px rgba(229, 228, 226, 0.5);
}
.glow-button.rank-01:after {
  background: linear-gradient(45deg, #ffaac4, #ff6b9d 50%, #d44a7c);
  box-shadow: 0 0 10px rgba(255, 107, 157, 0.3);
}

@keyframes border-glow {
  0% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.6;
  }
}
@keyframes shine {
  0% {
    transform: translateX(-100%) rotate(-45deg);
  }
  30% {
    transform: translateX(100%) rotate(-45deg);
  }
  100% {
    transform: translateX(100%) rotate(-45deg);
  }
}
@media screen and (max-width: 767px) {
  .glow-button {
    width: calc(100% - 8px);
    margin: 0px auto;
    padding: 5px 20px 8px;
    font-size: 1.6rem;
  }
}
.playguide {
  max-width: 1180px;
  margin: auto;
  margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
  .playguide {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 15px;
  }
  .playguide img {
    max-width: 100%;
    min-width: 850px;
  }
}

.playguide_ttl {
  max-width: 1180px;
  margin: auto;
  padding: 20px;
  background-color: #1f1f40;
  color: white;
  font-size: 2.2rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .playguide_ttl {
    padding: 10px 0;
    font-size: 1.4rem;
  }
}

/*===============================

イベント情報

================================*/
.event ul {
  margin-top: 10px;
}
@media screen and (max-width: 767px) {
  .event ul {
    width: 95%;
    margin: auto;
    margin-top: 15px;
    margin-bottom: 15px;
    padding: 15px;
    background-color: white;
    border-radius: 10px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
  }
}
.event h3 {
  display: block;
  max-width: 1200px;
  margin: auto;
  margin-top: 40px;
  padding: 20px;
  font-size: 1.8rem;
  color: #fff;
  font-weight: bold;
  border: 3px solid #d2b48c;
  background: rgb(31, 31, 64);
  border-radius: 5px;
  box-shadow: 0 0 2px 2px #fff;
}
@media screen and (max-width: 767px) {
  .event h3 {
    display: none;
    width: 95%;
    margin-top: 10px;
    padding: 10px;
    font-size: 1.6rem;
  }
}
.event .middle {
  padding: 10px;
  background-color: yellow;
  font-size: 2rem;
  font-weight: bold;
}
.event .image {
  width: 400px;
  height: 100%;
  margin-right: 20px;
}
@media screen and (max-width: 767px) {
  .event .image {
    width: 100px;
    margin-right: 10px;
  }
}
.event .image_detail {
  width: 400px;
  height: 100%;
  margin-right: 20px;
}
@media screen and (max-width: 767px) {
  .event .image_detail {
    display: none;
  }
}
.event .data {
  flex: 1;
  padding: 20px;
  background-color: white;
  border-radius: 10px;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .event .data {
    position: relative;
    min-height: 100px;
    padding: 0;
    background-color: none;
    box-shadow: none;
    font-size: 1.8rem;
    line-height: 1.5;
  }
}
.event .data .click {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  padding: 5px;
  background-color: #1f1f40;
  border-radius: 100vh;
  text-align: center;
}
.event .data .click a {
  color: white;
  text-decoration: none;
}
.event .comment {
  font-size: 1.4rem;
  line-height: 1.6;
  overflow-wrap: break-word;
}
.event .big {
  color: red;
  font-size: 3rem;
  font-weight: bold;
}

/*===============================

口コミ

================================*/
.review li {
  width: 50%;
}
@media screen and (max-width: 767px) {
  .review li {
    width: 100%;
  }
}
.review figure {
  margin: 5px 10px;
  padding: 10px;
  text-align: left;
}
.review .__item {
  display: flex;
}
.review .__item .image {
  width: 150px;
  margin-right: 10px;
}
@media screen and (max-width: 767px) {
  .review .__item .image {
    width: 120px;
  }
}
.review .__item .data {
  flex: 1;
}
@media screen and (max-width: 767px) {
  .review .__item .name {
    color: #1f1f40;
    font-size: 1.5rem;
  }
}
.review .__item .poster {
  padding: 10px 0;
  color: gray;
  font-size: 1.2rem;
  text-align: right;
}
.review .__item .message {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.3rem;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .review .__item .message {
    overflow-y: auto;
    height: 90px;
    font-size: 1.2rem;
    line-height: 1.55;
  }
}
.review .__item .more {
  text-align: right;
}
@media screen and (max-width: 767px) {
  .review .__item .more {
    margin: 5px 0 0;
  }
}
.review .__item .more a {
  color: #b8860b;
  font-family: "Bodoni Moda", serif;
  font-size: 1.4rem;
  text-decoration: none;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .review .__item .more a {
    font-size: 1.3rem;
  }
}
.review .__item .more i {
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .review .__item .more i {
    font-size: 1.3rem;
  }
}
.review .ttl {
  margin: 0 0 10px;
  padding: 10px;
  background-color: #1f1f40;
  color: white;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .review .ttl {
    font-size: 1.4rem;
    letter-spacing: 0.05em;
    text-indent: 0.05em;
  }
}

/*
口コミ一覧
================================*/
.reviewlist,
.reviewdetail {
  max-width: 1200px;
  margin: auto;
  padding: 100px 0 0;
}
@media screen and (max-width: 767px) {
  .reviewlist,
.reviewdetail {
    padding: 20px 0 0;
  }
}
.reviewlist ul,
.reviewdetail ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .reviewlist ul,
.reviewdetail ul {
    margin: 30px 0 0;
    padding: 0;
  }
}
.reviewlist a,
.reviewdetail a {
  color: black;
  text-decoration: none;
}
.reviewlist figure,
.reviewdetail figure {
  width: 200px;
  margin: 20px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .reviewlist figure,
.reviewdetail figure {
    width: auto;
    margin: 10px;
  }
}
.reviewlist__comment,
.reviewdetail__comment {
  padding: 20px 0 50px 0;
  font-size: 1.5rem;
  text-align: center;
  line-height: 2.5;
}
@media screen and (max-width: 767px) {
  .reviewlist__comment,
.reviewdetail__comment {
    padding: 10px;
    font-size: 1.1rem;
    line-height: 2;
  }
}
.reviewlist__photo .circle,
.reviewdetail__photo .circle {
  border-radius: 50%;
  width: 200px;
  height: 200px;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .reviewlist__photo .circle,
.reviewdetail__photo .circle {
    width: 150px;
    height: 150px;
  }
}
.reviewlist__name,
.reviewdetail__name {
  padding: 10px 0;
}
@media screen and (max-width: 767px) {
  .reviewlist__name,
.reviewdetail__name {
    padding: 5px 0;
    font-size: 1.4rem;
  }
}
.reviewlist__number,
.reviewdetail__number {
  padding: 12px 0;
  background-color: black;
  border-radius: 3px;
  color: white;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .reviewlist__number,
.reviewdetail__number {
    padding: 7px 0;
    font-size: 1.1rem;
  }
}
.reviewlist__input,
.reviewdetail__input {
  max-width: 1100px;
  margin: auto;
  padding: 90px 50px 100px;
  background-color: white;
  border-radius: 10px;
  font-family: "Noto Sans JP", sans-serif;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .reviewlist__input,
.reviewdetail__input {
    margin: 0 15px;
    padding: 20px 15px 40px;
  }
}
.reviewlist__input dl,
.reviewdetail__input dl {
  display: flex;
  align-items: center;
  padding: 40px 0;
  border-bottom: 1px solid #ddd;
}
@media screen and (max-width: 767px) {
  .reviewlist__input dl,
.reviewdetail__input dl {
    flex-wrap: wrap;
    padding: 20px 0;
  }
}
.reviewlist__input dt,
.reviewdetail__input dt {
  width: 300px;
  font-size: 1.6rem;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .reviewlist__input dt,
.reviewdetail__input dt {
    width: 100%;
  }
}
.reviewlist__input dd,
.reviewdetail__input dd {
  flex: 1;
}
.reviewlist__input dd span,
.reviewdetail__input dd span {
  display: block;
  padding: 0 0 10px;
  font-size: 12px;
}
@media screen and (max-width: 767px) {
  .reviewlist__input dd,
.reviewdetail__input dd {
    margin: 10px 0 0;
    padding: 10px;
    border-radius: 5px;
    background-color: white;
    font-size: 1.4rem;
    line-height: 1.5;
  }
}
.reviewlist__input input,
.reviewdetail__input input {
  width: 300px;
  padding: 10px;
  border: 1px solid #aaa;
  border-radius: 3px;
  outline: none;
  transition: background-color 0.5s ease-out;
}
.reviewlist__input input:focus,
.reviewdetail__input input:focus {
  background-color: rgb(224, 247, 255);
}
.reviewlist__input select,
.reviewdetail__input select {
  width: 300px;
  padding: 10px;
  border: 1px solid #aaa;
  border-radius: 3px;
  outline: none;
  transition: background-color 0.5s ease-out;
}
.reviewlist__input select:focus,
.reviewdetail__input select:focus {
  background-color: rgb(224, 247, 255);
}
.reviewlist__input textarea,
.reviewdetail__input textarea {
  width: 100%;
  height: 200px;
  margin: 0 0 10px;
  border: 1px solid #aaa;
  outline: none;
  transition: background-color 0.5s ease-out;
}
.reviewlist__input textarea:focus,
.reviewdetail__input textarea:focus {
  background-color: rgb(224, 247, 255);
}
.reviewlist__input .comment_count,
.reviewdetail__input .comment_count {
  width: 100px;
  height: 35px;
  line-height: 35px;
  margin: auto;
  color: white;
  font-size: 1.4rem;
  font-weight: bold;
  background-color: #60a944;
  border-radius: 35px;
  text-align: center;
}
.reviewlist__input .short,
.reviewdetail__input .short {
  width: 200px;
}
.reviewlist__input .stars .stars_select,
.reviewdetail__input .stars .stars_select {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
}
.reviewlist__input .stars input[type=radio],
.reviewdetail__input .stars input[type=radio] {
  display: none;
}
.reviewlist__input .stars label,
.reviewdetail__input .stars label {
  color: #d2d2d2;
  font-size: 30px;
  padding: 0 5px;
  cursor: pointer;
}
.reviewlist__input .stars label:hover,
.reviewlist__input .stars label:hover ~ label,
.reviewlist__input .stars input[type=radio]:checked ~ label,
.reviewdetail__input .stars label:hover,
.reviewdetail__input .stars label:hover ~ label,
.reviewdetail__input .stars input[type=radio]:checked ~ label {
  color: #f8c601;
}
.reviewlist .input_btn,
.reviewdetail .input_btn {
  display: block;
  width: 300px;
  padding: 20px 0;
  margin: auto;
  margin-top: 20px;
  background-color: #1f1f40;
  color: white;
  font-size: 1.8rem;
  font-weight: bold;
}
.reviewlist .input_text,
.reviewdetail .input_text {
  width: 100%;
  line-height: 2;
}

.reviewdetail ul {
  padding: 50px 0 0;
}
@media screen and (max-width: 767px) {
  .reviewdetail ul {
    padding: 0;
  }
}
.reviewdetail li {
  width: 100%;
}
.reviewdetail h2 {
  display: block;
  max-width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .reviewdetail h2 {
    width: 900px;
    overflow: hidden;
  }
}
.reviewdetail h2 img {
  filter: drop-shadow(2px 2px 2px rgba(160, 160, 160, 0.4));
}
.reviewdetail h4 {
  margin: 30px 0 0;
  font-size: 2.4rem;
  line-height: 1.4;
}
.reviewdetail figure {
  display: flex;
  width: 100%;
  padding: 0 0 25px;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .reviewdetail figure {
    flex-wrap: wrap;
    width: auto;
    padding: 0;
  }
}
.reviewdetail__photo {
  width: 300px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .reviewdetail__photo {
    margin: auto;
    text-align: center;
  }
  .reviewdetail__photo img {
    display: block;
    width: 100%;
    margin: auto;
  }
}
.reviewdetail__flex {
  width: 200px;
  margin: auto;
  margin-top: 20px;
  margin-bottom: -20px;
}
@media screen and (max-width: 767px) {
  .reviewdetail__flex {
    margin-bottom: -60px;
  }
}
.reviewdetail__name {
  font-size: 2.5rem;
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  .reviewdetail__name {
    font-size: 2rem;
  }
}
.reviewdetail__size {
  font-size: 1.2rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
.reviewdetail__text {
  width: 100%;
  padding: 0 20px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
}
@media screen and (max-width: 767px) {
  .reviewdetail__text {
    padding: 20px 10px 0;
  }
}
.reviewdetail__text div {
  padding: 0 0 100px;
}
@media screen and (max-width: 767px) {
  .reviewdetail__text div {
    padding: 30px 0;
  }
}
.reviewdetail__day {
  padding: 15px;
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
  border: 3px solid #d2b48c;
  background: rgb(31, 31, 64);
  border-radius: 5px;
  box-shadow: 0 0 2px 2px #fff;
}
@media screen and (max-width: 767px) {
  .reviewdetail__day {
    padding: 15px 10px;
    font-size: 1.6rem;
  }
}
.reviewdetail .allscore {
  padding: 20px 0 15px;
  color: #f7a52a;
  font-size: 2.2rem;
  font-weight: 300;
}
@media screen and (max-width: 767px) {
  .reviewdetail .allscore {
    font-size: 2rem;
  }
}
.reviewdetail .score {
  padding: 10px;
  background-color: #f6f6f6;
  border-radius: 4px;
  font-size: 1.4rem;
  font-weight: 500;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
.reviewdetail .comment {
  margin: 20px 0 0;
  font-size: 1.4rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .reviewdetail .comment {
    font-size: 1.3rem;
    line-height: 1.6;
  }
}
.reviewdetail .reply {
  margin: 20px 0 0;
  padding: 25px;
  background-color: white;
  border-radius: 10px;
  font-size: 1.4rem;
  line-height: 2;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .reviewdetail .reply {
    padding: 15px;
    font-size: 1.3rem;
    line-height: 1.8;
  }
}
.reviewdetail .reply span {
  display: block;
  font-size: 2rem;
  font-weight: bold;
}

.avplay {
  max-width: 1200px;
  margin: auto;
  margin-top: 100px;
}
@media screen and (max-width: 767px) {
  .avplay {
    margin-top: 0;
    padding: 20px 10px 10px;
  }
}
.avplay img {
  border-radius: 0 50px 50px 50px;
}

.contents {
  margin: 100px 0 0;
}
@media screen and (max-width: 767px) {
  .contents {
    margin: 20px 0 0;
  }
}
.contents h2 {
  display: block;
  max-width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .contents h2 {
    width: 900px;
    overflow: hidden;
  }
}
.contents h2 img {
  filter: drop-shadow(2px 2px 2px rgba(160, 160, 160, 0.4));
}
.contents .__inner {
  display: flex;
  max-width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .contents .__inner {
    display: block;
    flex-direction: row-reverse;
  }
}
.contents .menu {
  width: 400px;
  margin-right: 10px;
}
@media screen and (max-width: 767px) {
  .contents .menu {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0 5px 10px;
  }
}
.contents .menu a {
  display: block;
  margin: 0 0 11px;
}
@media screen and (max-width: 767px) {
  .contents .menu a {
    display: flex;
    margin: 0;
  }
}
.contents .review_top {
  flex: 1;
  height: 333px;
  margin: 8px 0 12px;
  background-color: white;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
  border-radius: 0 0 50px 0;
}
@media screen and (max-width: 767px) {
  .contents .review_top {
    margin: 10px;
    height: 318px;
    padding: 0 10px;
    border-radius: 0 0 20px 0;
  }
}
.contents .review_top li {
  width: 100%;
  border-bottom: 1px dotted #ddd;
}
@media screen and (max-width: 767px) {
  .contents .review_top li {
    width: 100%;
  }
}
.contents .review_top li:last-child {
  border-bottom: 0;
}
.contents .review_top figure {
  padding: 10px;
  text-align: left;
}
.contents .review_top .kuchikomi {
  padding: 20px;
}
@media screen and (max-width: 767px) {
  .contents .review_top .kuchikomi {
    padding: 10px 0;
  }
}
.contents .review_top .__item {
  display: flex;
}
.contents .review_top .__item .image {
  width: 90px;
  margin-right: 10px;
}
.contents .review_top .__item .image img {
  width: 90px;
  height: 90px;
  object-fit: cover;
}
.contents .review_top .__item .data {
  flex: 1;
}
@media screen and (max-width: 767px) {
  .contents .review_top .__item .name {
    color: #1f1f40;
    font-size: 1.5rem;
  }
}
.contents .review_top .__item .poster {
  padding: 10px 0;
  color: gray;
  font-size: 1.2rem;
  text-align: right;
}
.contents .review_top .__item .message {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.3rem;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .contents .review_top .__item .message {
    overflow-y: auto;
    height: 90px;
    font-size: 1.2rem;
    line-height: 1.55;
  }
}
.contents .review_top .__item .more {
  text-align: right;
}
@media screen and (max-width: 767px) {
  .contents .review_top .__item .more {
    margin: 5px 0 0;
  }
}
.contents .review_top .__item .more a {
  color: #b8860b;
  font-family: "Bodoni Moda", serif;
  font-size: 1.4rem;
  text-decoration: none;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .contents .review_top .__item .more a {
    font-size: 1.3rem;
  }
}
.contents .review_top .__item .more i {
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .contents .review_top .__item .more i {
    font-size: 1.3rem;
  }
}
.contents .review_top .ttl {
  margin: 0 0 10px;
  padding: 10px;
  background-color: #1f1f40;
  color: white;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .contents .review_top .ttl {
    font-size: 1.4rem;
    letter-spacing: 0.05em;
    text-indent: 0.05em;
  }
}
.contents .review_top .text {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 333px;
  font-size: 2.5rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .contents .review_top .text {
    height: 100px;
    font-size: 2rem;
  }
}

/*===============================

ランキング

================================*/
.ranking {
  max-width: 1200px;
  margin: auto;
  padding: 100px 0 0;
}
@media screen and (max-width: 767px) {
  .ranking {
    padding: 20px 0 0;
  }
}
.ranking h2 {
  display: block;
  max-width: 1200px;
  margin: auto;
  margin-bottom: -80px;
}
@media screen and (max-width: 767px) {
  .ranking h2 {
    width: 900px;
    overflow: hidden;
    margin-bottom: -50px;
  }
}
.ranking h2 img {
  filter: drop-shadow(2px 2px 2px rgba(160, 160, 160, 0.4));
}
.ranking h3 {
  display: block;
  max-width: 1200px;
  margin: auto;
  margin-top: 100px;
  padding: 20px;
  font-size: 2.8rem;
  color: #fff;
  font-weight: 300;
  border: 3px solid #d2b48c;
  background: rgb(31, 31, 64);
  border-radius: 5px;
  box-shadow: 0 0 2px 2px #fff;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .ranking h3 {
    width: 95%;
    margin-top: 50px;
    padding: 10px;
    font-size: 1.6rem;
  }
}
.ranking .__list {
  display: flex;
  margin: 50px 0;
  padding: 30px;
  background-color: white;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .ranking .__list {
    margin: 10px;
    padding: 10px;
  }
}
.ranking .__list .image {
  width: 400px;
}
@media screen and (max-width: 767px) {
  .ranking .__list .image {
    width: 150px;
  }
}
.ranking .__list .data {
  flex: 1;
  padding: 0 0 0 20px;
}
@media screen and (max-width: 767px) {
  .ranking .__list .data {
    padding: 0 0 0 10px;
  }
}
.ranking .__list .rank {
  color: #d2b48c;
  font-size: 3rem;
  font-family: "Bodoni Moda", serif;
  font-style: italic;
}
@media screen and (max-width: 767px) {
  .ranking .__list .rank {
    padding: 18px 0 0;
    font-size: 2rem;
  }
}
.ranking .__list .rank span {
  font-size: 5rem;
}
@media screen and (max-width: 767px) {
  .ranking .__list .rank span {
    font-size: 3rem;
  }
}
.ranking .__list .name {
  color: #36365d;
  font-size: 4rem;
}
@media screen and (max-width: 767px) {
  .ranking .__list .name {
    font-size: 3rem;
  }
}
.ranking .__list .name span {
  font-size: 2.5rem;
}
.ranking .__list .text {
  padding: 20px 0 10px;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .ranking .__list .text {
    font-size: 1.3rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}
.ranking .__list .size {
  padding: 10px 0 20px;
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .ranking .__list .size {
    font-size: 1.4rem;
  }
}
.ranking .__list .time {
  padding: 15px 0;
  background-color: #1f1f40;
  color: white;
  font-size: 2.2rem;
  font-weight: 500;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .ranking .__list .time {
    padding: 10px 0;
    font-size: 1.5rem;
  }
}
.ranking .__list .comment {
  margin: 20px 0;
  padding: 20px;
  border: 1px solid #1f1f40;
}
.ranking .__list .comment p {
  height: 235px;
  overflow-y: auto;
  font-size: 1.4rem;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.7;
}
@media screen and (max-width: 767px) {
  .ranking .__list .comment {
    display: none;
  }
}

/*===============================

アンケート

================================*/
.questionnaire__iframe {
  width: 100%;
}

.rubyposition_under {
  display: inline-block;
}

.rubyposition_under ruby {
  display: flex;
  flex-direction: column;
  text-align: justify; /* この指定は text-align-last を IE に対応させるために必要 */
  text-align-last: justify;
}

/*===============================

トップメニュー

================================*/
.topmenu {
  width: 100%;
  margin: 100px 0 0;
  background-color: #1f1f40;
}
@media screen and (max-width: 767px) {
  .topmenu {
    margin: 30px 0;
  }
}
.topmenu ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: auto;
  border-right: 1px solid #fff;
}
.topmenu li {
  width: 25%;
  border-left: 1px solid #fff;
  text-align: center;
}
.topmenu li:nth-child(-n+4) {
  border-bottom: 1px solid #fff;
}
.topmenu a {
  position: relative;
  display: block;
  padding: 25px 0;
  color: white;
  font-weight: 500;
  font-size: 1.8rem;
  text-decoration: none;
  transition: background-color 0.5s;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .topmenu a {
    padding: 10px 0 13px;
    font-size: 1.3rem;
    letter-spacing: 0em;
    text-indent: 0em;
  }
}
.topmenu a:hover {
  background-color: white;
  color: #1f1f40;
}
.topmenu span {
  display: block;
  margin: 0 0 5px;
  color: #7a7a9e;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .topmenu span {
    margin: 0 0 2px;
    font-size: 1.1rem;
  }
}
.topmenu i {
  position: absolute;
  top: 43%;
  right: 10px;
}
@media screen and (max-width: 767px) {
  .topmenu i {
    display: none;
  }
}

/*===============================

システム

================================*/
.system {
  padding: 100px 0 0;
}
@media screen and (max-width: 767px) {
  .system {
    padding: 20px 0;
  }
}
.system__inner {
  max-width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .system__inner {
    padding: 0 10px;
  }
}
.system h2 {
  display: block;
  max-width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .system h2 {
    width: 900px;
    overflow: hidden;
  }
}
.system h2 img {
  filter: drop-shadow(2px 2px 2px rgba(160, 160, 160, 0.4));
}
.system .sub {
  position: relative;
  margin: 100px 0;
  padding: 100px 0;
  color: white;
}
@media screen and (max-width: 767px) {
  .system .sub {
    margin: 30px 0;
    padding: 30px 0 40px;
  }
}
.system .sub::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #1f1f40;
  transform: skewY(-7deg);
  z-index: -1;
}
.system table.price,
.system .option {
  width: 100%;
  margin: 30px 0 0;
  background: url("../img/price_table-bg.png") no-repeat;
  background-size: cover;
  border-collapse: collapse;
  border-spacing: 0;
  border: 3px solid #232345;
  table-layout: fixed;
}
@media screen and (max-width: 767px) {
  .system table.price,
.system .option {
    margin: 15px 0 0;
  }
}
.system table.price th,
.system .option th {
  padding: 20px 0;
  color: yellow;
  font-size: 3rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  border-right: 3px solid #fff;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .system table.price th,
.system .option th {
    padding: 10px 0;
    font-size: 1.6rem;
  }
}
.system table.price th span,
.system .option th span {
  display: block;
  margin: 5px 0 0;
  color: white;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .system table.price th span,
.system .option th span {
    font-size: 1rem;
  }
}
.system table.price th a,
.system .option th a {
  color: yellow;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .system table.price th a,
.system .option th a {
    display: block;
    font-size: 1.5rem;
    line-height: 1;
  }
}
.system table.price th:last-child,
.system .option th:last-child {
  border-right: 0px;
}
.system table.price td,
.system .option td {
  padding: 20px 0;
  font-size: 2.5rem;
  border-right: 3px solid #1f1f40;
  border-bottom: 3px solid #1f1f40;
  font-weight: 600;
  font-family: "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "Times New Roman", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .system table.price td,
.system .option td {
    padding: 10px 0;
    font-size: 1.8rem;
  }
}
.system table.price td a,
.system .option td a {
  display: block;
  color: black;
  text-decoration: none;
}
.system table.price td .red,
.system .option td .red {
  color: #e61e20;
  font-size: 3rem;
}
.system table.price .small,
.system .option .small {
  display: block;
  margin: 5px 0 0;
  font-size: 1.2rem;
}
.system table.price .big,
.system .option .big {
  font-size: 4rem;
}
@media screen and (max-width: 767px) {
  .system table.price .big,
.system .option .big {
    font-size: 2.4rem;
  }
}
.system table.price .table_text,
.system .option .table_text {
  background-color: #333;
  color: white;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  line-height: 1.3;
}
.system table.price .table_text strong,
.system .option .table_text strong {
  font-size: 3rem;
  color: red;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text strong,
.system .option .table_text strong {
    font-size: 2.3rem;
  }
}
.system table.price .table_text .table_text-inner,
.system .option .table_text .table_text-inner {
  display: flex;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text .table_text-inner,
.system .option .table_text .table_text-inner {
    flex-wrap: wrap;
  }
}
.system table.price .table_text .table_text-inner .left,
.system .option .table_text .table_text-inner .left {
  flex: 1;
  padding: 50px 0 0;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text .table_text-inner .left,
.system .option .table_text .table_text-inner .left {
    width: 100%;
    padding: 0;
  }
}
.system table.price .table_text .table_text-inner .right,
.system .option .table_text .table_text-inner .right {
  width: 380px;
  margin-top: -15px;
  margin-right: 20px;
  padding: 0 10px;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text .table_text-inner .right,
.system .option .table_text .table_text-inner .right {
    width: 100%;
    margin-top: 0;
    margin-right: 0;
  }
}
.system table.price .table_text2,
.system .option .table_text2 {
  background-color: #333;
  color: white;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  line-height: 1.3;
}
.system table.price .table_text2 strong,
.system .option .table_text2 strong {
  font-size: 3rem;
  color: red;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text2 strong,
.system .option .table_text2 strong {
    font-size: 2.3rem;
  }
}
.system table.price .table_text2 .table_text-inner,
.system .option .table_text2 .table_text-inner {
  display: flex;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text2 .table_text-inner,
.system .option .table_text2 .table_text-inner {
    flex-wrap: wrap;
  }
}
.system table.price .table_text2 .table_text-inner .left,
.system .option .table_text2 .table_text-inner .left {
  flex: 1;
  padding: 50px 0 0;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text2 .table_text-inner .left,
.system .option .table_text2 .table_text-inner .left {
    width: 100%;
    padding: 0;
  }
}
.system table.price .table_text2 .table_text-inner .right,
.system .option .table_text2 .table_text-inner .right {
  width: 380px;
  margin-top: -15px;
  margin-right: 20px;
  padding: 0 10px;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text2 .table_text-inner .right,
.system .option .table_text2 .table_text-inner .right {
    width: 100%;
    margin-top: 0;
    margin-right: 0;
  }
}
.system table.price .table_text3,
.system .option .table_text3 {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2rem;
  text-align: center;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .system table.price .table_text3,
.system .option .table_text3 {
    font-size: 1.4rem;
  }
}
.system table.price .table_option,
.system .option .table_option {
  background-color: #ff9002;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
}
.system table.price .table_date,
.system .option .table_date {
  background-color: palevioletred;
  color: white;
  font-size: 2rem;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .system table.price .table_date,
.system .option .table_date {
    padding: 10px;
    font-size: 1.6rem;
  }
}
.system table.price .table_date span,
.system .option .table_date span {
  color: yellow;
  font-size: 2.4rem;
}
@media screen and (max-width: 767px) {
  .system table.price .table_date span,
.system .option .table_date span {
    font-size: 2rem;
  }
}
.system table.price .system__campaign,
.system .option .system__campaign {
  background-color: #5a4412;
  color: white;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .system table.price .system__campaign,
.system .option .system__campaign {
    font-size: 1.4rem;
  }
}
.system table.price .system__campaign span,
.system .option .system__campaign span {
  display: block;
  margin: 10px 0 0;
  color: yellow;
  font-size: 1.8rem;
}
@media screen and (max-width: 767px) {
  .system table.price .system__campaign span,
.system .option .system__campaign span {
    font-size: 1.4rem;
  }
}
.system table.price .system__campaign strong,
.system .option .system__campaign strong {
  color: #0f0;
  font-size: 3rem;
}
@media screen and (max-width: 767px) {
  .system table.price .system__campaign strong,
.system .option .system__campaign strong {
    font-size: 2.4rem;
  }
}
.system table.price .system__campaign .image,
.system .option .system__campaign .image {
  max-width: 800px;
  margin: auto;
  padding: 10px 0 20px;
}
@media screen and (max-width: 767px) {
  .system table.price .system__campaign .image,
.system .option .system__campaign .image {
    max-width: 100%;
    padding: 10px 20px;
  }
}
.system table.price .bg01,
.system .option .bg01 {
  background: url("../img/price_table-bg-th.jpg") no-repeat;
  background-size: cover;
}
.system table.price .bg_time,
.system .option .bg_time {
  background: url("../img/price_table-bg-time.jpg") no-repeat;
  background-size: 500%;
}
@media screen and (max-width: 767px) {
  .system table.price .bg_time,
.system .option .bg_time {
    width: 70px;
  }
}
.system table.option td {
  font-size: 1.8rem;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .system table.option td {
    font-size: 1.5rem;
  }
}
.system table.option td a {
  color: black;
  text-decoration: none;
}
.system .bg_option {
  background: url("../img/price_table-bg-time.jpg") no-repeat;
  background-size: 500%;
  font-size: 1.9rem;
}
@media screen and (max-width: 767px) {
  .system .bg_option {
    width: 50%;
  }
}
.system .tit_sub {
  width: 500px;
  margin: 50px 0 0;
}
@media screen and (max-width: 767px) {
  .system .tit_sub {
    width: 80%;
    margin: 30px 0 0;
  }
}
.system .basic {
  margin: 20px 0 0;
}
.system .basic ul {
  display: flex;
  flex-wrap: wrap;
}
.system .basic li {
  width: 25%;
}
@media screen and (max-width: 767px) {
  .system .basic li {
    width: 50%;
  }
}
.system .basic a {
  display: block;
  color: white;
  text-decoration: none;
}
.system .basic .lists {
  position: relative;
  width: 97%;
  height: 0;
  /* 表示画像の高さ ÷ 表示画像の幅 × 100 */
  padding-top: 28.86%;
  background: url("../img/basic_bg.png") 0 0 no-repeat;
  background-size: contain;
}
.system .basic .lists p {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translate(0%, -50%);
  -webkit-transform: translate(0%, -50%);
  -ms-transform: translate(0%, -50%);
  color: white;
  font-size: 2.4rem;
  font-weight: 600;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .system .basic .lists p {
    font-size: 1.6rem;
  }
}

.shimei_bg-01 {
  background: url("../img/shimei_bg-01.jpg") no-repeat;
  background-size: cover;
}

.shimei_bg-02 {
  background: url("../img/shimei_bg-02.jpg") no-repeat top center;
  background-size: cover;
}

.shimei_bg-03 {
  background: url("../img/shimei_bg-03.jpg") no-repeat;
  background-size: cover;
}

.hotel {
  margin: 50px 0 0;
}
.hotel .hotelmap {
  width: 50%;
  margin: auto;
  padding: 50px 0;
}
@media screen and (max-width: 767px) {
  .hotel .hotelmap {
    width: 90%;
    padding: 20px 0;
  }
}
.hotel .hotellist {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .hotel .hotellist {
    width: 130%;
    margin-left: -2px;
  }
}

table.hotel_table {
  width: 100%;
  margin: 40px 0 20px;
  border-collapse: collapse;
  border-top: 3px solid #1f1f40;
  border-right: 3px solid #1f1f40;
  font-size: 2rem;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  table.hotel_table {
    font-size: 1.6rem;
  }
}
table.hotel_table th,
table.hotel_table td {
  padding: 20px;
  border-left: 3px solid #1f1f40;
  border-bottom: 3px solid #1f1f40;
}
@media screen and (max-width: 767px) {
  table.hotel_table th,
table.hotel_table td {
    padding: 15px;
  }
}
table.hotel_table th {
  background-color: #36365d;
  color: white;
}
table.hotel_table td {
  background-color: white;
  color: #000;
  font-weight: bold;
}

.hotel_text {
  color: red;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
  line-height: 1.5;
}

.hotelmap_bg {
  width: 232px;
  height: 74px;
  margin: 2px;
  background: url(../img/hotelmap_bg.png) no-repeat;
}
@media screen and (max-width: 767px) {
  .hotelmap_bg {
    width: 185px;
    height: 59px;
    margin: 2px;
    background-size: 100%;
  }
}
.hotelmap_bg p {
  padding: 8px 0 0 20px;
  color: #fff;
  font-size: 1.2rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
  line-height: 2.1;
}
@media screen and (max-width: 767px) {
  .hotelmap_bg p {
    padding: 3px 0 0 12px;
    font-size: 1.1rem;
    line-height: 2;
  }
}

.hotelmap_ttl,
.situation {
  margin: 50px 0 0;
  padding: 20px 0;
  border-radius: 100vh;
  background-color: white;
  color: #1f1f40;
  font-size: 2rem;
  font-weight: 500;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .hotelmap_ttl,
.situation {
    padding: 10px 0;
  }
}

.situation_text {
  margin: 20px 0 0;
  padding: 25px;
  border: 1px solid #fff;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .situation_text {
    overflow: hidden;
    padding: 15px;
    font-size: 1.4rem;
    line-height: 1.7;
  }
}
.situation_text h2 {
  position: relative;
  padding: 10px 0 0;
  border-bottom: 6px solid #65658e;
}
@media screen and (max-width: 767px) {
  .situation_text h2 {
    width: 98%;
  }
}
.situation_text h2:before {
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 20%;
  height: 6px;
  content: "";
  background: #43436c;
}
.situation_text span {
  color: red;
  font-weight: bold;
}

.situation_option {
  display: inline-block;
  padding: 10px 0 0;
  font-size: 2.5rem;
  background: linear-gradient(transparent 80%, #ff0 80%);
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .situation_option {
    background: none;
    color: yellow;
    font-size: 1.7rem;
  }
}

.membercard {
  max-width: 800px;
  margin: auto;
  margin-top: 50px;
}

.creditcard {
  margin: 25px 0 0;
  padding: 25px;
  background-color: white;
  border: 1px solid #1f1f40;
  text-align: center;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .creditcard {
    padding: 15px;
    letter-spacing: 0em;
    text-indent: 0em;
    font-weight: 500;
    font-size: 1.4rem;
  }
}
.creditcard span {
  display: block;
  width: 300px;
  margin: auto;
  padding: 25px 0 0;
}
@media screen and (max-width: 767px) {
  .creditcard span {
    padding: 10px 0 0;
  }
}

.credit {
  display: block;
  width: 320px;
  margin: auto;
  padding: 20px 0;
  background-color: #36365d;
  border-radius: 10px;
  color: white;
  font-weight: bold;
  font-family: "Noto Sans JP", sans-serif;
  text-decoration: none;
}

.kiyaku {
  display: flex;
  flex-wrap: wrap;
  font-size: 1.3rem;
  font-weight: 300;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 2.5;
}
@media screen and (max-width: 767px) {
  .kiyaku {
    line-height: 1.6;
  }
}
.kiyaku dt {
  width: 50%;
}
@media screen and (max-width: 767px) {
  .kiyaku dt {
    width: 100%;
  }
}
.kiyaku span {
  display: block;
  padding: 15px 0;
  color: red;
  font-size: 1.8rem;
  font-weight: bold;
}

.option_detail {
  max-width: 1200px;
  margin: auto;
  padding: 50px 0 0;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .option_detail {
    padding: 10px;
  }
}
.option_detail h2 {
  margin: 20px 0 10px;
  padding: 10px;
  border-left: 5px solid #232345;
  background: #efeffc;
  font-size: 18px;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .option_detail h2 {
    line-height: 1;
  }
}
.option_detail h3 {
  position: relative;
  margin: 0 0 10px;
  padding: 10px 0 10px;
  font-size: 18px;
  font-weight: bold;
}
.option_detail h3:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  content: "";
  background-image: -webkit-repeating-linear-gradient(135deg, #232345, #232345 1px, transparent 2px, transparent 5px);
  background-image: repeating-linear-gradient(-45deg, #232345, #232345 1px, transparent 2px, transparent 5px);
  background-size: 7px 7px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.option_detail .ttl {
  width: 500px;
  margin: 50px 0 0;
}
@media screen and (max-width: 767px) {
  .option_detail .ttl {
    width: 80%;
    margin: 15px 0 0;
  }
}
.option_detail .inner {
  margin: 20px 0 30px;
  padding: 30px;
  background-color: white;
  border-radius: 10px;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .option_detail .inner {
    padding: 15px;
    font-size: 1.3rem;
    line-height: 1.6;
  }
}

/*===============================

プロフィール

================================*/
.profile {
  /* スマホ：縦並びにして上に余白 */
}
.profile h4 {
  position: relative;
  padding: 10px 0;
  border-bottom: 2px solid #a6a6c4;
  font-size: 2rem;
  font-weight: 300;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
.profile h4:before {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 20%;
  height: 2px;
  content: "";
  background: #3d3d62;
}
.profile h4 span {
  font-size: 1.2rem;
}
.profile .score {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  width: 95%;
  margin: 50px auto 50px;
  max-width: 1150px;
}
.profile .score .item {
  display: flex;
  width: calc(25% - 7.5px);
  border: 1px solid #1f1f40;
  background: #fff;
}
.profile .score .item .label {
  width: 30%;
  padding: 10px;
  background: #1f1f40;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 2.2rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .profile .score .item .label {
    font-size: 1.6rem;
  }
}
.profile .score .item .score-img {
  padding: 10px;
  width: 70%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .profile .score .item {
    width: calc(50% - 5px);
  }
}
.profile__inner {
  display: flex;
  max-width: 1150px;
  margin: auto;
  padding: 0 0 50px 0;
}
@media screen and (max-width: 767px) {
  .profile__inner {
    flex-wrap: wrap;
    padding: 0 10px;
  }
}
.profile__inner .data_left {
  width: 60%;
  padding: 0 30px 0 0;
  border-right: 1px solid #ddd;
}
@media screen and (max-width: 767px) {
  .profile__inner .data_left {
    width: 100%;
    padding: 0;
    border-right: 0;
  }
}
.profile__inner .data_right {
  flex: 1;
  padding: 0 0 0 30px;
}
@media screen and (max-width: 767px) {
  .profile__inner .data_right {
    padding: 0;
  }
}
.profile__rank01 {
  width: 260px;
  margin-top: 10px;
  padding: 5px 0;
  color: #bfad83;
  border: 1px solid #bfad83;
  font-weight: bold;
  font-family: "Bodoni Moda", serif;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .profile__rank01 {
    width: 100%;
    font-size: 1.2rem;
  }
}
.profile__rank02 {
  width: 260px;
  margin-top: 10px;
  padding: 5px 0;
  color: #aaa;
  border: 1px solid #aaa;
  font-weight: bold;
  font-family: "Bodoni Moda", serif;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .profile__rank02 {
    width: 100%;
    font-size: 1.2rem;
  }
}
.profile__rank03 {
  width: 260px;
  margin-top: 10px;
  padding: 5px 0;
  color: #4e279f;
  border: 1px solid #4e279f;
  font-weight: bold;
  font-family: "Bodoni Moda", serif;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .profile__rank03 {
    width: 100%;
    font-size: 1.2rem;
  }
}
.profile video {
  width: 100%;
  margin: 20px 0 0;
}
.profile .name {
  position: relative;
  font-size: 4rem;
}
@media screen and (max-width: 767px) {
  .profile .name {
    font-size: 3rem;
  }
}
.profile .name span {
  font-size: 1.4rem;
}
.profile .name .comment {
  padding: 0 0 5px;
  font-size: 1.5rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .profile .name .comment {
    font-size: 1.3rem;
  }
}
.profile .name .icon {
  position: absolute;
  bottom: 5px;
  right: 0;
}
.profile .name .icon img {
  float: left;
  width: 40px;
  margin: 0 0 0 2px;
}
@media screen and (max-width: 767px) {
  .profile .name .icon img {
    width: 35px;
  }
}
.profile .size {
  padding: 10px 0;
  font-size: 1.4rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .profile .size {
    font-size: 1.2rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}
.profile .icon_type {
  display: flex;
  margin: 0 0 10px;
}
.profile .icon_type img {
  width: 50px;
  margin: 0 0 0 2px;
}
.profile .massage {
  padding: 20px 0 40px;
  font-size: 1.3rem;
  font-weight: 300;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
}
.profile .diary {
  margin: 0 0 10px;
  font-family: "Noto Sans JP", sans-serif;
}
.profile .reserve-banner {
  display: block;
  position: relative;
  width: 100%;
  padding-top: 25.2%;
  background: url("../img/reserve_bg.jpg") no-repeat center center;
  background-size: cover;
  text-decoration: none;
}
.profile .reserve-banner .reserve-text {
  position: absolute;
  width: 100%;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  text-align: center;
  font-size: 1.6rem;
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.9);
}
@media screen and (max-width: 767px) {
  .profile .reserve-banner .reserve-text {
    top: 1.4em;
    font-size: 1.6rem;
  }
}
.profile .reserve-banner .reserve-text em {
  color: #d8b970;
  font-size: 3rem;
  font-style: normal;
}
@media screen and (max-width: 767px) {
  .profile .reserve-banner .reserve-text em {
    font-size: 2.5rem;
  }
}
.profile .reserve-banner.no {
  filter: grayscale(100%) brightness(0.9);
  opacity: 0.6;
  pointer-events: none;
}
.profile .reserve-banner.no .reserve-text {
  color: #999;
}
.profile .reserve-banner.no .reserve-text em {
  color: #999;
}
.profile .review-banner {
  display: block;
  position: relative;
  width: 100%;
  margin: 10px 0 0;
  padding-top: 20%;
  background: url("../img/review_bg.jpg") no-repeat center center;
  background-size: cover;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .profile .review-banner {
    margin: 10px 0 0;
  }
}
.profile .review-banner .review-text {
  position: absolute;
  width: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  text-align: center;
  font-size: 1.6rem;
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.9);
}
@media screen and (max-width: 767px) {
  .profile .review-banner .review-text {
    font-size: 1.4rem;
  }
}
.profile .review-banner .review-text em {
  color: #d8b970;
  font-size: 3rem;
  font-style: normal;
}
@media screen and (max-width: 767px) {
  .profile .review-banner .review-text em {
    font-size: 2.5rem;
  }
}
.profile .review-banner.no {
  filter: grayscale(100%) brightness(0.9);
  opacity: 0.6;
  pointer-events: none;
}
.profile .review-banner.no .review-text {
  color: #999;
}
.profile .review-banner.no .review-text em {
  color: #999;
}
.profile .banner-row {
  display: flex;
  margin: 10px 0 0;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}
.profile .banner {
  position: relative;
  width: calc(50% - 5px);
}
.profile .banner img {
  display: block;
  width: 100%;
  height: auto;
}
.profile .banner.no {
  pointer-events: none;
}
.profile .banner.no .overlay {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .profile .banner {
    width: 100%;
  }
}

.top-banner {
  max-width: 1220px;
  margin: 0 auto;
  padding: 10px;
}
.top-banner ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.top-banner ul li {
  flex: 0 0 calc(50% - 5px);
  display: flex;
  order: 0;
}
.top-banner ul li a {
  display: block;
  width: 100%;
}
.top-banner ul li a img {
  width: 100%;
  height: auto;
  display: block;
}
.top-banner ul li:nth-child(1) {
  order: 3;
}
.top-banner ul li:nth-child(2) {
  order: 1;
}
.top-banner ul li:nth-child(3) {
  order: 2;
}
@media screen and (max-width: 767px) {
  .top-banner ul {
    flex-direction: column;
  }
  .top-banner ul li {
    flex: 1 1 100%;
  }
  .top-banner ul li:nth-child(1) {
    order: 0;
  }
  .top-banner ul li:nth-child(2) {
    order: 1;
  }
  .top-banner ul li:nth-child(3) {
    order: 2;
  }
}
@media screen and (max-width: 767px) {
  .top-banner ul {
    flex-direction: column;
  }
  .top-banner ul li {
    flex: 1 1 100%;
    order: 0;
  }
}

.top-banner-sub {
  display: block;
  max-width: 1220px;
  margin: 0 auto;
  padding: 0 10px;
}
.top-banner-sub a {
  display: block;
}
.top-banner-sub a:last-child {
  margin-bottom: 0;
}
.top-banner-sub a img {
  width: 100%;
  height: auto;
  display: block;
}

/*===============================

ご利用案内

================================*/
.guide {
  max-width: 1200px;
  margin: auto;
  padding: 100px 0 0;
}
@media screen and (max-width: 767px) {
  .guide {
    padding: 20px 0;
  }
}
.guide h2 {
  display: block;
  max-width: 1200px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .guide h2 {
    width: 900px;
    overflow: hidden;
  }
}
.guide h2 img {
  filter: drop-shadow(2px 2px 2px rgba(160, 160, 160, 0.4));
}
.guide video {
  display: block;
  width: 360px;
  margin: auto;
  margin-top: 25px;
}
.guide .circle {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .guide .circle {
    width: 70%;
    height: 70%;
    margin: auto;
    margin-bottom: 10px;
  }
}

.heading {
  position: relative;
  height: 75px;
  margin: 0 0 10px;
  padding: 40px 0 0 50px;
  font-size: 1.6rem;
}
@media screen and (max-width: 767px) {
  .heading {
    height: 60px;
    margin: 25px 0 10px 0;
    padding: 0;
  }
}
.heading span {
  letter-spacing: 0.5em;
  text-indent: 0.5em;
}
.heading::before {
  content: attr(data-en);
  position: absolute;
  transform: rotate(-5deg);
  top: -20px;
  left: -10px;
  color: #7f93a8;
  font-size: 7rem;
  font-weight: 400;
  font-family: "Great Vibes", cursive;
  transform: rotate(-10deg);
  letter-spacing: 0.05em;
  text-indent: 0.05em;
}
@media screen and (max-width: 767px) {
  .heading::before {
    font-size: 6rem;
  }
}

.flex-item {
  display: flex;
  justify-content: space-between;
  width: 95%;
  margin: auto;
  background-color: white;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
  margin: 40px 0;
  padding: 25px;
}
.flex-item span {
  color: #e61e20;
  font-size: 2rem;
  font-weight: bold;
  font-family: "Noto Sans JP", sans-serif;
}

.flex-item:not(:last-child) {
  margin-bottom: 15px;
}

.flex-item:nth-child(odd) {
  flex-direction: row-reverse;
}

.flex-item__background {
  background-color: #1f1f40;
  color: white;
}

.flex-item__img {
  width: 40%;
  align-items: center;
}

.flex-item__img img {
  object-fit: cover;
}

.flex-item__txt {
  width: 60%;
  line-height: 2;
}
.flex-item__txt img {
  max-width: 420px;
}

.flex-item__txt-sub {
  width: 60%;
  padding-left: 20px;
  line-height: 2;
}

@media screen and (max-width: 767px) {
  .flex-item {
    flex-direction: column-reverse;
    align-items: center;
    padding: 10px;
    margin: auto;
  }
  .flex-item:nth-child(odd) {
    flex-direction: column-reverse;
  }
  .flex-item__img {
    width: 100%;
    margin: 20px 0 0;
  }
  .flex-item__txt,
.flex-item__txt-sub {
    width: 100%;
    padding: 0;
    font-size: 1.7rem;
    line-height: 1.8;
  }
  .flex-item__txt img,
.flex-item__txt-sub img {
    max-width: 100%;
  }
}
/*
プロフィールレビュー
================================*/
.profile_review h5 {
  font-size: 2rem;
  font-weight: bold;
}
.profile_review .inner {
  overflow-y: auto;
  height: 670px;
  margin: 0 0 10px;
  font-family: "Noto Sans JP", sans-serif;
}
.profile_review .title {
  padding: 30px 0 10px;
  border-bottom: 1px solid black;
  font-size: 1.5rem;
  font-family: "Zen Old Mincho", serif;
}
.profile_review .allscore {
  padding: 20px 0 15px;
  color: #f7a52a;
  font-size: 2rem;
  font-weight: 300;
}
.profile_review .score {
  padding: 5px;
  background-color: white;
  border-radius: 4px;
  font-size: 1.4rem;
  font-weight: 500;
}
.profile_review .comment {
  margin: 20px 0 0;
  font-size: 1.3rem;
  line-height: 1.6;
}
.profile_review .reply {
  margin: 20px 0 0;
  padding: 15px;
  background-color: white;
  border-radius: 4px;
  font-size: 1.3rem;
  line-height: 1.6;
}
.profile_review .reply span {
  display: block;
  font-size: 1.8rem;
  font-weight: bold;
}

/*
プロフィールインタビュー
================================*/
.profile_interview {
  width: 100%;
  margin: 0 0 20px;
  padding-top: 40px;
  font-family: "Noto Sans JP", sans-serif;
}
.profile_interview .row {
  margin-bottom: 12px;
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .profile_interview .row {
    display: block;
    margin-bottom: 5px;
  }
}
.profile_interview .row dt {
  background-color: white;
  border-radius: 9999px;
  font-size: 1.4rem;
  font-weight: 400;
  margin-bottom: 0px;
  width: 260px;
  padding: 10px 15px;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .profile_interview .row dt {
    width: 100%;
  }
}
.profile_interview .row dt::before {
  content: "Q.";
  display: inline;
  font-family: "Montserrat", sans-serif;
  margin-right: 4px;
  color: #d2b359;
}
.profile_interview .row dd {
  font-size: 1.4rem;
  font-weight: 300;
  flex: 1;
  padding: 10px 15px 10px;
  line-height: 1.5;
}

/*
プロフィールオプション
================================*/
.profile_option {
  margin: 10px 0 20px;
}
@media screen and (max-width: 767px) {
  .profile_option {
    margin: 0;
    padding: 20px 10px 30px;
  }
}
.profile_option ul {
  display: flex;
  flex-wrap: wrap;
  width: auto;
}
.profile_option li {
  width: 25%;
  padding: 10px 0;
  border-top: 1px solid #43436c;
  border-bottom: 1px solid #43436c;
  border-left: 1px solid #43436c;
  border-right: 1px solid #43436c;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .profile_option li {
    width: 50%;
  }
}
.profile_option li:nth-child(2n+2) {
  border-left: 0;
}
.profile_option li:nth-child(n+4) {
  border-top: 0;
}
.profile_option .on {
  border: 1px solid #1f1f40;
  background-color: #1f1f40;
  color: white;
}
.profile_option .off {
  background-color: white;
  color: lightgray;
}

/*
プロフィール出勤
================================*/
@media screen and (max-width: 767px) {
  .profile_scroll {
    overflow-x: scroll;
    white-space: nowrap;
  }
}

.profile_scroll::-webkit-scrollbar {
  height: 4px;
}

.profile_scroll::-webkit-scrollbar-track {
  background: #eee;
}

.profile_scroll::-webkit-scrollbar-thumb {
  background: #aaa;
  border: none;
}

.profile_scroll::-webkit-scrollbar-thumb:hover {
  background: #999;
}

.profile_week {
  padding: 60px 0 0;
}
@media screen and (max-width: 767px) {
  .profile_week {
    padding: 30px 10px 10px;
  }
}
.profile_week .inner {
  max-width: 1150px;
  margin: auto;
}

/*
プロフィールスライド
================================*/
@media screen and (min-width: 0px) {
  .profile_castimg {
    margin-bottom: 24px;
  }
  .profile_castimg .body .bg {
    display: none;
  }
  .profile_castimg .noimg {
    background: #f9f9f9;
    padding: 80px 20px;
  }
  .profile_castimg .noimg p {
    text-align: center;
  }
  .profile_castimg .noimg img {
    width: 129px;
  }
  .profile_castimg .imgs {
    position: relative;
  }
  .profile_castimg .imgs .main-profile {
    display: flex;
    align-items: center;
    background-color: none;
    margin-bottom: 2px;
  }
  .profile_castimg .imgs .main-profile.slick-initialized {
    opacity: 1;
  }
  .profile_castimg .imgs .main-profile .slick-track {
    display: flex;
  }
  .profile_castimg .imgs .main-profile .slick-slide {
    height: auto !important;
    align-items: center;
  }
  .profile_castimg .imgs .main-profile li {
    background: #fff;
    display: flex;
    align-items: center;
  }
  .profile_castimg .imgs .main-profile img {
    height: auto;
    width: 100%;
    object-fit: contain;
  }
  .profile_castimg .imgs .main-profile .slick-arrow {
    width: 72px;
    height: 72px;
    text-indent: -9999px;
    border: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
  }
  .profile_castimg .imgs .main-profile .slick-arrow.second {
    width: 50%;
    height: 100%;
    border-radius: 0;
    background: none;
  }
  .profile_castimg .imgs .main-profile .slick-arrow.second.slick-prev {
    left: 0;
  }
  .profile_castimg .imgs .main-profile .slick-arrow.second.slick-next {
    right: 0;
  }
  .profile_castimg .imgs .slider-main {
    position: relative;
  }
  .profile_castimg .imgs .slider-main .prev-next ul li {
    width: 25%;
    height: 100%;
    text-indent: -9999px;
    border: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
  }
  .profile_castimg .imgs .slider-main .prev-next .prev {
    left: 0px;
  }
  .profile_castimg .imgs .slider-main .prev-next .next {
    right: 0px;
  }
  .profile_castimg .imgs .sub {
    align-items: center;
  }
  .profile_castimg .imgs .sub.slick-initialized {
    opacity: 1;
  }
  .profile_castimg .imgs .sub li {
    cursor: pointer;
    padding: 0 1px;
    width: fit-content !important;
  }
  .profile_castimg .imgs .sub li.is-current {
    opacity: 0.7;
  }
  .profile_castimg .imgs .sub li.swiper-slide-thumb-active {
    opacity: 0.7;
  }
  .profile_castimg .imgs .sub li.swiper-slide-active {
    opacity: 0.7;
  }
  .profile_castimg .imgs .sub .slick-current img {
    opacity: 0.7;
  }
  .profile_castimg .imgs .sub img {
    width: 19.5vw;
  }
  .profile_castimg .imgs .sub img.is-wide {
    width: 27vw;
  }
  .profile_castimg .imgs .sub .slick-list {
    padding-right: 8vw;
  }
  .profile_castimg .imgs .sub .slick-track {
    display: flex;
    align-items: center;
  }
  .profile_castimg .imgs .count {
    background: rgba(0, 0, 0, 0.4);
    border-radius: 100px;
    padding: 0.6em 1.2em;
    color: #fff;
    display: inline-block;
    position: absolute;
    z-index: 3;
    top: 120vw;
    bottom: auto;
    left: 10px;
    font-size: 12px;
    font-family: "Montserrat", sans-serif;
    width: auto;
    height: auto;
  }
}
@media screen and (min-width: 1024px) {
  .profile_castimg .body {
    padding-top: 104px;
    position: relative;
    padding-bottom: 24px;
    width: 100%;
  }
  .profile_castimg .body::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.7);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
  }
  .profile_castimg .body .bg {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 774px;
    overflow: hidden;
  }
  .profile_castimg .body .bg img {
    width: 100vw;
    height: 774px;
    object-fit: cover;
  }
  .profile_castimg .noimg {
    padding: 100px 20px;
    margin-bottom: 0;
    margin-top: 85px;
  }
  .profile_castimg .noimg img {
    width: 155px;
  }
  .profile_castimg .imgs {
    position: relative;
    z-index: 3;
  }
  .profile_castimg .imgs .main-profile li {
    padding: 0 8px;
    background: none;
    display: block;
    width: auto;
  }
  .profile_castimg .imgs .main-profile img {
    height: 520px;
    width: auto;
  }
  .profile_castimg .imgs .main-profile .slick-arrow {
    width: 64px;
    height: 64px;
    text-indent: -9999px;
    border: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
  }
  .profile_castimg .imgs .main-profile .slick-arrow.slick-prev {
    background: url(../img/common/arw-prev.svg) 50% 50% no-repeat;
    background-size: contain;
    left: 20px;
  }
  .profile_castimg .imgs .main-profile .slick-arrow.slick-next {
    background: url(../img/common/arw-next.svg) 50% 50% no-repeat;
    background-size: contain;
    right: 20px;
  }
  .profile_castimg .imgs .slider-main .prev-next {
    display: none;
  }
  .profile_castimg .imgs .slider-sub {
    margin: 0 auto;
    max-width: 1145px;
    margin: 0 auto;
  }
  .profile_castimg .imgs .sub {
    padding: 0;
    margin: 16px auto 0 auto;
    opacity: 1;
  }
  .profile_castimg .imgs .sub li {
    margin-right: 5px;
    cursor: pointer;
    border: 2px solid rgba(0, 0, 0, 0);
    padding: 0;
  }
  .profile_castimg .imgs .sub li.is-current {
    opacity: 1;
    border: 2px solid #fff;
  }
  .profile_castimg .imgs .sub li.swiper-slide-active {
    opacity: 1;
    border: 0;
  }
  .profile_castimg .imgs .sub li.swiper-slide-thumb-active {
    opacity: 1;
    border: 2px solid #fff;
  }
  .profile_castimg .imgs .sub img {
    height: auto;
    width: 80px;
  }
  .profile_castimg .imgs .sub img.is-wide {
    width: 100px;
  }
  .profile_castimg .imgs .count {
    bottom: 0px;
    left: 16px;
    z-index: 4;
    top: auto;
  }
}
.faq-inner {
  padding: 0 10px;
}

.faq-title {
  margin: 0 0 20px;
  display: flex;
  align-items: center;
  position: relative;
  padding: 15px 10px;
  overflow: hidden;
  background-color: #fff;
  border: 2px solid #1f1f40;
  border-radius: 5px;
  font-size: 2.5rem;
  color: #1f1f40;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: bold;
  z-index: 1;
}
.faq-title::before {
  position: absolute;
  top: 0;
  left: -15px;
  transform: skew(-25deg);
  width: 3.7em;
  height: 100%;
  background-color: #1f1f40;
  content: "";
  z-index: 0;
}
.faq-title span {
  position: relative;
  z-index: 1;
  display: inline-block;
  min-width: 2em;
  text-align: center;
  color: #fff;
  font-size: 3rem;
  margin-right: 0.5em;
}
.faq-title .title-text {
  position: relative;
  z-index: 1;
  flex: 1;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .faq-title {
    padding: 10px 10px;
    font-size: 2rem;
  }
  .faq-title::before {
    width: 3.4em;
  }
  .faq-title span {
    font-size: 1em;
    min-width: 1.8em;
    margin-right: 0.6em;
  }
}

.faq {
  max-width: 1200px;
  margin: auto;
  font-family: "M PLUS 1p", sans-serif;
}
.faq mark {
  background-color: yellow;
  color: black;
}
.faq .faq-item {
  border: 2px solid #1f1f40;
  margin-bottom: 1em;
  overflow: hidden;
}
.faq .faq-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.7em 1em;
  background-color: #fff;
  cursor: pointer;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .faq .faq-heading {
    padding: 10px;
    font-size: 1.4rem;
  }
}
.faq .faq-heading .faq-label {
  display: inline-block;
  width: 1.8em;
  height: 1.8em;
  line-height: 1.8em;
  text-align: center;
  background-color: #1f1f40;
  border-radius: 50%;
  color: #b8860b;
  margin-right: 0.5em;
}
.faq .faq-heading .faq-question {
  flex: 1;
}
.faq .faq-heading .faq-toggle-icon {
  margin-left: 0.5em;
}
.faq .faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, padding 0.4s ease, background-color 0.4s ease;
  padding: 0 1em;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .faq .faq-answer {
    padding: 0 10px;
    font-size: 1.4rem;
    line-height: 1.5;
  }
}
.faq .faq-answer .faq-label {
  display: inline-block;
  width: 1.8em;
  height: 1.8em;
  line-height: 1.8em;
  text-align: center;
  background-color: #1f1f40;
  border-radius: 50%;
  margin-right: 0.5em;
  color: #fff;
  font-weight: bold;
}
.faq .faq-answer .faq-answer-text {
  padding: 0.5em 0;
}
.faq .faq-answer .faq-answer-text em {
  color: red;
  font-weight: bold;
  font-style: normal;
}
.faq .faq-item.open .faq-answer {
  border-top: #1f1f40 2px solid;
  max-height: 800px;
  padding: 0.7em 1em;
  background-color: #eee;
}
@media screen and (max-width: 767px) {
  .faq .faq-item.open .faq-answer {
    padding: 10px;
    font-size: 1.4rem;
    line-height: 1.5;
  }
}
.faq .faq-item.open .faq-toggle-icon::before {
  content: "\f077";
}

.faq-text {
  padding: 0 0 30px;
}

.site-search {
  display: flex;
  gap: 0.5em;
  align-items: center;
  width: 100%;
  transition: opacity 0.6s ease, transform 0.6s ease;
  transform: translateY(-10px);
}

.domain {
  max-width: 320px;
}

#searchInput {
  flex: 1; /* 残りスペースを全部使う */
  max-width: 400px;
  padding: 15px 5px;
  border: 1px solid #ccc;
  border-radius: 3px;
  min-width: 0; /* flexで縮小OKにする保険 */
}
@media screen and (max-width: 767px) {
  #searchInput {
    /* width指定は不要、flexで調整される */
  }
}

#searchButton,
#prevButton,
#nextButton {
  padding: 13px 20px; /* 固定したいならここで調整 */
  background-color: #b8860b;
  color: #fff;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  #searchButton,
#prevButton,
#nextButton {
    padding: 13px 10px; /* スマホならちょい細く */
  }
}

.site-search.fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  padding: 0.5em;
  z-index: 1000;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  transform: translateY(0);
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .site-search.fixed {
    top: 70px;
  }
}

/*------------------ shine -----------------------------*/
.reflection {
  height: 100%;
  width: 30px;
  position: absolute;
  top: -180px;
  left: 0;
  background: rgba(255, 255, 255, 0.3);
  opacity: 0;
  transform: rotate(45deg);
  animation: reflection 3s ease-in-out infinite;
  -webkit-transform: rotate(45deg);
  -webkit-animation: reflection 3s ease-in-out infinite;
  -moz-transform: rotate(45deg);
  -moz-animation: reflection 3s ease-in-out infinite;
  -ms-transform: rotate(45deg);
  -ms-animation: reflection 3s ease-in-out infinite;
  -o-transform: rotate(45deg);
  -o-animation: reflection 3s ease-in-out infinite;
}

@keyframes reflection {
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
@-webkit-keyframes reflection {
  0% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    -webkit-transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
@-moz-keyframes reflection {
  0% {
    -moz-transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    -moz-transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    -moz-transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    -moz-transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
@-ms-keyframes reflection {
  0% {
    -ms-transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    -ms-transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    -ms-transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    -ms-transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
@-o-keyframes reflection {
  0% {
    -o-transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    -o-transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    -o-transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    -o-transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
@-o-keyframes reflection {
  0% {
    -o-transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    -o-transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    -o-transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    -o-transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 100000;
  color: white;
  font-weight: bold;
  animation: fadeIn 0.3s ease;
}

.modal.hidden {
  display: none !important;
}

.modal-content {
  max-height: 94vh;
  height: min(94vh, 100dvh);
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px; /* 内側にパディング */
  box-sizing: border-box;
  overflow: hidden; /* 外へはみ出さない */
  min-height: 0; /* ← 重要：子が縮める */
}

/* ⑤ フッター（チェック＋閉じる）を1つの塊にして高さを測れるように */
.modal-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

/* レイアウト微調整 */
.custom-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

#modalClose {
  min-width: 120px;
}

/* ⑥ ノートPC対策の微圧縮（高さや余白だけ少し詰める） */
@media (max-width: 1366px), (max-height: 800px) {
  .modal-content {
    gap: 10px;
  }
  .modal-footer {
    gap: 6px;
  }
}
.modal-inner {
  flex: 1 1 auto; /* 余り高さを受け取る */
  min-height: 0; /* ← 重要：高さ不足でも縮む */
  max-width: 650px;
  width: 95%;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* a も枠いっぱいに広げておく（どちらでもOKだが安全のため） */
.modal-inner > a {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
}

/* 縦長・横長どちらでも“全体表示”にする */
.modal-inner img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain; /* 余白OKで全体表示 */
  display: block;
}

/* 3) 画面が低いときは余白とフッターを圧縮 */
@media (max-height: 820px) {
  .modal-content {
    gap: 8px;
    padding: 10px;
  }
  .modal-inner {
    margin-bottom: 6px;
  }
  .modal-footer {
    gap: 4px;
  }
  .custom-checkbox .checkmark {
    width: 24px;
    height: 24px;
    border-width: 2px;
  }
  .custom-checkbox .checkmark::after {
    left: 6px;
    top: 2px;
    width: 7px;
    height: 12px;
    border-width: 0 2px 2px 0;
  }
  .custom-checkbox .label-text {
    font-size: 14px;
  }
  #modalClose {
    padding: 8px 22px;
    font-size: 15px;
  }
}
.modal-close,
#modalClose {
  display: block;
  margin: 10px auto;
  padding: 10px 30px;
  background: #313189;
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
}

.modal-close:hover,
#modalClose:hover {
  background: #313189;
}

.modal .close-icon {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 20px;
  cursor: pointer;
}

/* チェックボックスとボタンは自然な高さで下部に並ぶ */
.custom-checkbox {
  margin-top: 0;
}

#modalClose {
  min-width: 120px;
}

/* 画面が低いノートPCなどは少し圧縮（ギャップや余白だけ） */
@media (max-width: 1366px), (max-height: 800px) {
  .modal-content {
    gap: 10px;
  }
  .modal-inner {
    margin-bottom: 10px;
  }
}
.custom-checkbox {
  display: flex !important; /* ← inline-flex から flex に変更 */
  justify-content: center; /* 水平方向のセンター */
  align-items: center; /* 垂直方向のセンター */
  font-size: 16px;
  cursor: pointer;
  user-select: none;
  width: 100%; /* 中央揃え用に横幅いっぱい */
}

/* 本来のcheckboxを非表示 */
.custom-checkbox input[type=checkbox] {
  display: none;
}

/* チェックマーク円形ボックス */
.custom-checkbox .checkmark {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 3px solid #aaa;
  background-color: transparent;
  margin-right: 10px;
  position: relative;
  box-sizing: border-box;
  flex-shrink: 0;
}

/* ✅ 常時表示される白いチェックマーク（未チェックでも表示） */
.custom-checkbox .checkmark::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 2px;
  width: 8px;
  height: 14px;
  border: solid #aaa;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
}

/* ✅ チェック時に背景と縁を青に、マークは白のまま */
.custom-checkbox input[type=checkbox]:checked + .checkmark {
  background-color: #5050ac;
  border-color: #5050ac;
}

/* ✅ チェック時でもマークは白のまま */
.custom-checkbox input[type=checkbox]:checked + .checkmark::after {
  border-color: white;
}

/* ラベル文字 */
.custom-checkbox .label-text {
  font-size: 15px;
  color: white;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes popIn {
  from {
    transform: scale(0.95);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.2);
  }
}
.pulse {
  animation: pulse 2s ease-in-out infinite;
  color: yellow;
  font-weight: bold;
}

.blog {
  display: grid;
  grid-template-columns: 800px 380px;
  grid-template-areas: "title title" "list  aside";
  column-gap: 20px;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding-bottom: 60px;
  min-height: 1200px;
}
@media screen and (max-width: 767px) {
  .blog {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "list" "aside";
    row-gap: 20px;
    min-height: auto;
    padding-bottom: 40px;
  }
}
.blog > h2 {
  grid-area: title;
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
}
.blog > h2 .list_sort {
  position: absolute;
  right: 150px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  gap: 10px;
  z-index: 1;
}
.blog > h2 .list_sort a {
  padding: 8px 20px 11px;
  border-radius: 20px;
  text-decoration: none;
  color: #333;
  background: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  border: 1px solid #ddd;
  font-size: 1.8rem;
}
.blog > h2 .list_sort a.active {
  background-color: #1f1f40;
  color: #fff;
  border-color: #1f1f40;
}
@media screen and (max-width: 767px) {
  .blog > h2 {
    flex-direction: column;
    align-items: flex-start;
    overflow: hidden;
    padding: 0 10px;
  }
  .blog > h2 img {
    width: 900px;
    max-width: none;
  }
  .blog > h2 .list_sort {
    position: static;
    transform: none;
    margin-top: 15px;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 10px;
    width: 100%;
  }
  .blog > h2 .list_sort a {
    font-size: 1.5rem;
    padding: 6px 15px 9px;
    flex-grow: 1;
    text-align: center;
  }
}
.blog .list {
  grid-area: list;
  width: 800px;
}
@media screen and (max-width: 767px) {
  .blog .list {
    width: auto;
    padding: 0 20px;
  }
}
.blog .list h3,
.blog .list h4,
.blog .list h5 {
  display: block;
  margin: 20px 0;
  padding: 10px 20px;
  font-size: 22px;
  font-weight: bold;
  border-radius: 5px;
  color: #fff;
}
.blog .list h3 {
  background: #e78b35;
}
.blog .list h4 {
  background: #585896;
}
.blog .list h5 {
  background: #8cc8d7;
}
.blog .list ul {
  display: flex;
  flex-wrap: wrap;
}
.blog .list li {
  width: 380px;
  margin: 10px;
  border: 1px solid #4e4e76;
  box-sizing: border-box;
  border-radius: 5px;
  padding: 10px;
  box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 767px) {
  .blog .list li {
    width: 100%;
    margin: 0 0 20px;
  }
}
.blog .list a {
  color: #1f1f40;
  text-decoration: none;
}
.blog .list img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}
.blog .list .title {
  padding: 10px 0 0;
  font-size: 14px;
  line-height: 1.6;
}
.blog .aside {
  grid-area: aside;
  width: 380px;
  position: sticky;
  top: 93px;
}
@media screen and (max-width: 767px) {
  .blog .aside {
    position: static !important;
    width: auto;
    margin-top: 0;
    padding: 0 20px;
  }
}
.blog .aside .blog-new {
  width: 100%;
  border: 1px solid #4e4e76;
}
.blog .aside .blog-new .ttl {
  margin: 5px;
  padding: 10px;
  border-radius: 3px;
  font-weight: bold;
  font-size: 18px;
  background: #4e4e76;
  color: #fff;
  text-align: center;
}
.blog .aside .blog-new ul {
  padding: 0 5px;
}
.blog .aside .blog-new li {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 5px;
  padding: 0 0 5px;
  border-bottom: 1px dotted #4e4e76;
}
.blog .aside .blog-new li:last-child {
  border-bottom: 0;
}
.blog .aside .blog-new a {
  margin: 0;
  padding: 0;
  color: #666;
  text-decoration: none;
}
.blog .aside .blog-new .image {
  width: 100px;
}
.blog .aside .blog-new .image img {
  display: block;
  max-width: 100%;
  height: auto;
}
.blog .aside .blog-new .text {
  width: calc(100% - 100px - 10px);
  padding-left: 10px;
  font-size: 14px;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .blog .aside .blog-new .text {
    width: 100%;
    padding-left: 0;
    margin-top: 6px;
  }
}
.blog .blog-contents {
  width: 800px;
  margin-top: 0;
}
@media screen and (max-width: 767px) {
  .blog .blog-contents {
    width: auto;
  }
}
.blog .blog-contents h2 {
  position: relative;
  font-size: 22px;
  font-weight: bold;
  line-height: 1.6;
}
.blog .blog-contents h2::first-letter {
  font-size: 38px;
}
.blog .blog-contents h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 7px;
  background: repeating-linear-gradient(-45deg, #54548f, #54548f 2px, #fff 2px, #fff 4px);
}
.blog .blog-contents .image {
  margin: 20px 0;
  padding: 10px;
  border: 1px dotted #ccc;
  border-radius: 4px;
}
.blog .blog-contents .image img {
  display: block;
  max-width: 100%;
  height: auto;
}
.blog .blog-contents .text {
  line-height: 2;
}
.blog .blog-contents .text img {
  display: block;
  max-width: 100%;
  height: auto !important;
}

.blog-btn {
  display: block;
  margin: 50px auto 0;
  padding: 20px;
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  background: #1f1f40;
  border-radius: 5px;
  text-align: center;
  text-decoration: none;
}

/* ===== 最小差分パッチ（CSSの一番最後に追記）===== */
/* PC: h2を1段目フル幅、list/asideを2段目に並べる */
.blog {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 20px;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
}

/* 1段目をフル幅にする */
.blog > h2 {
  flex: 0 0 100%;
}

/* 2段目 左カラム */
.blog .list {
  flex: 0 0 800px;
  max-width: 800px;
}

/* 2段目 右カラム */
.blog .aside {
  flex: 0 0 380px;
  max-width: 380px;
  margin-top: 10px;
  /* 旧absoluteを無効化（重要） */
  position: static !important;
  /* PCで固定風にしたければ下を有効化
  position: sticky;
  top: 93px;
  */
  align-self: flex-start;
}

/* SP: 縦並びに強制 */
@media screen and (max-width: 767px) {
  .blog {
    gap: 20px;
  } /* そのままでもOK */
  .blog .list,
.blog .aside {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 20px;
  }
  .blog .aside {
    position: static !important; /* 念押し */
    margin-top: 0;
  }
}
/* 画像は一応レスポンシブに */
.blog .list img,
.blog .aside img {
  display: block;
  max-width: 100%;
  height: auto;
}

.manga {
  max-width: 1220px;
  margin: 100px auto 0;
  overflow-x: auto; /* ← これが超重要！ */
  overflow-y: hidden;
  display: flex; /* 横並びなら flex のほうが管理しやすい */
  gap: 10px; /* 画像の間に余白が欲しい場合 */
  padding-bottom: 10px; /* ScrollHintの影が見やすいように余白 */
  -webkit-overflow-scrolling: touch; /* スマホでヌルヌルスクロール */
}
@media screen and (max-width: 767px) {
  .manga {
    margin: 30px auto 0;
  }
}

.manga img {
  flex: 0 0 auto; /* 画像を縮ませず横並び固定 */
  height: auto;
  width: auto;
  max-height: 750px; /* 高さの上限設定（必要に応じて変更） */
  display: block;
}

.header {
  color: #1f1f40;
}
.header h1 {
  display: block;
  padding: 20px 0 10px;
  font-weight: 400;
  font-size: 1.3rem;
}
.header address {
  width: 370px;
  margin-left: auto;
  padding: 10px;
  background-color: #1f1f40;
  color: white;
  font-style: normal;
  font-size: 1.4rem;
  border-radius: 100vh;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  text-align: center;
}
.header .__inner {
  display: flex;
  max-width: 1200px;
  margin: auto;
}
.header .logo {
  width: 300px;
  padding: 10px 0 5px;
}
.header .data {
  flex: 1;
  text-align: right;
}
.header .tel {
  position: relative;
  width: 275px;
  margin-left: auto;
  padding: 30px 0 0;
  font-size: 1.6rem;
  font-family: "Bodoni Moda", serif;
  font-optical-sizing: auto;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
.header .tel span {
  display: block;
  padding: 5px 0 0;
  font-size: 3.6rem;
}
.header .tel i {
  position: absolute;
  top: 56px;
  left: 0;
  font-size: 2.6rem;
}

.header_sp {
  margin-top: 65px;
}
.header_sp .logo {
  width: 80%;
  margin: auto;
  padding: 10px 0 0;
}
.header_sp .tel {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 40px;
  background-color: #1f1f40;
  color: white;
  font-size: 1.5rem;
  text-align: center;
}
.header_sp .tel span {
  font-size: 2.6rem;
  font-family: "Bodoni Moda", serif;
  font-optical-sizing: auto;
  font-weight: 400;
}
.header_sp .tel a {
  color: white;
  text-decoration: none;
}

footer {
  padding: 100px 0 0;
  text-align: center;
}
@media screen and (max-width: 767px) {
  footer {
    padding: 15px 0 0;
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0em;
  }
}
footer small {
  display: block;
  padding: 15px 0;
  background-color: black;
  color: white;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  footer small {
    font-size: 1.3rem;
  }
}
footer .text {
  margin: 20px 0 0;
  padding: 20px 0;
  background-color: white;
  color: gray;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.3rem;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  footer .text {
    padding: 5px;
    font-size: 0.9rem;
  }
}
footer .textlink {
  padding: 10px 0;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.3rem;
}
footer .textlink a {
  color: black;
}

.nav {
  background-color: #1f1f40;
  border-top: 3px solid #b8860b;
  color: white;
  box-shadow: 0 0.5rem 0.5rem rgba(0, 0, 0, 0.2);
}
.nav ul {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 1200px;
  margin: auto;
}
.nav li {
  width: 12.5%;
}
.nav a {
  display: block;
  padding: 20px 0;
  color: white;
  font-size: 1.1rem;
  text-decoration: none;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  transition: background-color 0.5s;
  text-align: center;
  text-transform: uppercase;
}
.nav a:hover {
  background-color: white;
  color: #1f1f40;
}
.nav span {
  display: block;
  margin: 0 0 5px;
  font-family: "Bodoni Moda", serif;
  font-optical-sizing: auto;
  font-size: 1.8rem;
  font-weight: 400;
  font-style: normal;
}

.nav_sp {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 70px;
  background: rgba(31, 31, 64, 0.9);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05);
  z-index: 10000000;
}
.nav_sp h2 {
  padding: 0 20px 20px;
  color: white;
  font-weight: normal;
}
.nav_sp h2 span {
  font-size: 1.2rem;
}
.nav_sp ul {
  display: flex;
  flex-wrap: wrap;
  padding: 20px 10px 0 10px;
}
.nav_sp li {
  width: 50%;
  margin: 0 0 10px;
}
.nav_sp li a {
  display: block;
  width: 95%;
  margin: auto;
  padding: 10px;
  border: 1px solid white;
  color: white;
  text-decoration: none;
}
.nav_sp .nav_logo {
  padding: 5px 0 0 10px;
}
.nav_sp .nav_logo img {
  width: auto;
  height: 60px;
}
.nav_sp .nav_open {
  position: absolute;
  bottom: 8px;
  right: 135px;
  color: white;
  font-size: 1.5rem;
  text-align: left;
  box-shadow: 0 1.9px 2.5px rgba(0, 0, 0, 0.04), 0 5px 6.1px rgba(0, 0, 0, 0.04), 0 10.1px 11.4px rgba(0, 0, 0, 0.04), 0 19.2px 19.8px rgba(0, 0, 0, 0.04), 0 38.4px 34.8px rgba(0, 0, 0, 0.1), 0 101px 74px rgba(0, 0, 0, 0.13);
}
.nav_sp .nav_open span {
  display: block;
  margin: 0 0 3px;
  font-size: 1.1rem;
}
.nav_sp .nav_tel {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 7px;
  right: 75px;
  width: 55px;
  height: 55px;
  border: 2px solid white;
  box-shadow: 0 1.9px 2.5px rgba(0, 0, 0, 0.04), 0 5px 6.1px rgba(0, 0, 0, 0.04), 0 10.1px 11.4px rgba(0, 0, 0, 0.04), 0 19.2px 19.8px rgba(0, 0, 0, 0.04), 0 38.4px 34.8px rgba(0, 0, 0, 0.1), 0 101px 74px rgba(0, 0, 0, 0.13);
}
.nav_sp .nav_tel a {
  color: white;
  font-size: 1rem;
  text-decoration: none;
}
.nav_sp .nav_tel i {
  display: block;
  margin: 0 0 3px;
  font-size: 2.2rem;
}
.nav_sp .nav_tel img {
  width: 60px;
}
.nav_sp .line {
  width: 75%;
  margin: auto;
}
.nav_sp .logo_nav {
  width: 200px;
  margin: auto;
  padding: 20px 0;
}
.nav_sp .logo_nav a {
  border: none;
}
.nav_sp .logo_x {
  text-align: center;
}
.nav_sp .logo_x img {
  display: block;
  width: 30px;
  margin: auto;
  padding: 0 0 10px;
}
.nav_sp .logo_x a {
  border: none;
  color: white;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
}
.nav_sp .open {
  color: white;
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  text-align: center;
}
.nav_sp .open a {
  display: block;
  margin: 10px 0 0;
  font-family: "Bodoni Moda", serif;
  font-optical-sizing: auto;
  font-size: 3rem;
  color: white;
  text-decoration: none;
  letter-spacing: 0.15em;
  text-indent: 0.15em;
}

.g_navi a {
  font-size: 16px;
  font-weight: bold;
  transition: 0.3s;
}
.g_navi a:hover {
  opacity: 0.5;
}

#globalMenu {
  display: none;
}
@media screen and (max-width: 767px) {
  #globalMenu {
    display: block;
    width: 100%;
    height: 0;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 20;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    overflow: hidden;
    transition: 0.4s;
  }
}

#globalMenu.fixed {
  height: 70px;
  background: rgba(31, 31, 64, 0.9);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05);
}

.hamburger_nav {
  position: fixed;
  top: 2px;
  right: 0;
  z-index: 100;
}
@media screen and (max-width: 767px) {
  .hamburger_nav {
    position: absolute;
  }
}

.hamburger {
  display: block;
  height: 55px;
  margin-left: auto;
  position: absolute;
  z-index: 1000;
  width: 55px;
  border: none;
  top: 7px;
  right: 20px;
  border-radius: 50%;
  background-color: white;
  box-shadow: 0 1.9px 2.5px rgba(0, 0, 0, 0.04), 0 5px 6.1px rgba(0, 0, 0, 0.04), 0 10.1px 11.4px rgba(0, 0, 0, 0.04), 0 19.2px 19.8px rgba(0, 0, 0, 0.04), 0 38.4px 34.8px rgba(0, 0, 0, 0.1), 0 101px 74px rgba(0, 0, 0, 0.13);
}
@media screen and (max-width: 767px) {
  .hamburger {
    right: 10px;
  }
}

.hamburger.-active .hamburger__line {
  background-color: transparent;
}

.hamburger.-active .hamburger__line::before {
  top: 0;
  transform: rotate(45deg);
}

.hamburger.-active .hamburger__line::after {
  top: 0;
  transform: rotate(-45deg);
}

.hamburger.-active .hamburger__text::before {
  content: "CLOSE";
}

.hamburger__line {
  display: block;
  height: 2px;
  position: absolute;
  top: 23px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  background-color: #1f1f40;
  transition: 0.4s;
}

.hamburger__line:before,
.hamburger__line:after {
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  width: 100%;
  background-color: #7a7ac4;
  transition: inherit;
}

.hamburger__line:before {
  top: -6px;
}

.hamburger__line:after {
  top: 6px;
}

.hamburger__text {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}

.hamburger__text::before {
  content: "MENU";
  text-align: center;
  font-size: 10px;
  font-weight: 900;
  color: #1f1f40;
}

.nav_area {
  position: fixed;
  top: 0;
  right: -100%;
  z-index: 9;
  height: 100vh;
  width: 100%;
  max-width: 820px;
  visibility: hidden;
  padding-top: 100px;
  transition: 0.4s;
  background-color: #1f1f40;
  font-weight: 500;
  font-size: 1.5rem;
}

.nav_area.-active {
  right: 0;
  visibility: visible;
}

/*# sourceMappingURL=style.css.map */
