@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@font-face {
  font-family: "LINE Seed JP";
  src: url("../font/LINESeedJP_OTF_Th.woff2") format("woff2");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "LINE Seed JP";
  src: url("../font/LINESeedJP_OTF_Rg.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "LINE Seed JP";
  src: url("../font/LINESeedJP_OTF_Bd.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "LINE Seed JP";
  src: url("../font/LINESeedJP_OTF_Eb.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
.bg_color01 {
  background-color: #ff8caa;
}

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

.bg_color03 {
  background-color: #fff100;
}

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

共通

================================*/
@media screen and (max-width: 820px) {
  .pc {
    display: none;
  }
}
@media screen and (min-width: 821px) {
  .sp {
    display: none;
  }
}
.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;
  }
}

.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;
  }
}
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-padding-top: 120px;
  scroll-behavior: smooth;
}
@media screen and (max-width: 767px) {
  html {
    scroll-padding-top: 80px;
  }
}

body {
  overflow-x: hidden;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
  background-color: #e8eaea;
  color: #433b3a;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: 400;
  font-size: 1.6rem;
  font-feature-settings: "palt";
}

img {
  width: 100%;
  max-width: 100%;
}

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

header {
  position: relative;
  max-width: 1243px;
  margin: 0 auto;
  margin-bottom: -52px;
  padding: 20px 0 0;
}
@media screen and (max-width: 1024px) {
  header {
    overflow: hidden;
    height: 60vh;
    margin-left: 82px;
  }
}
@media screen and (max-width: 767px) {
  header {
    overflow: hidden;
    height: 100vh;
    margin: 0;
  }
}
header video {
  overflow: hidden;
  position: absolute;
}
@media screen and (max-width: 1024px) {
  header video {
    overflow: hidden;
    height: auto;
    top: 0;
    left: -40%;
  }
}
@media screen and (max-width: 767px) {
  header video {
    top: 50%;
    left: 50%;
    transform: translate(-45%, -50%);
    width: auto;
    height: 102vh;
    filter: blur(5px);
    z-index: 2;
  }
}
header h1 {
  position: absolute;
  font-size: 1.1rem;
  font-weight: normal;
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  z-index: 10;
}
@media screen and (max-width: 1024px) {
  header h1 {
    padding: 0 0 0 40px;
    color: white;
  }
}
@media screen and (max-width: 767px) {
  header h1 {
    display: block;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    padding: 10px 0;
    background-color: #433b3a;
    color: white;
    text-align: center;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
  }
}
header .logo {
  display: none;
}
@media screen and (max-width: 1024px) {
  header .logo {
    display: block;
    position: absolute;
    top: 30%;
    right: 0;
    left: 0;
    transform: translate(0, -50%);
    margin: auto;
    width: 200px;
    z-index: 3;
  }
}
@media screen and (max-width: 767px) {
  header .logo {
    top: 35%;
  }
}
@media screen and (max-width: 375px) {
  header .logo {
    display: none;
  }
}
header .widget {
  display: none;
}
@media screen and (max-width: 1024px) {
  header .widget {
    display: block;
    position: absolute;
    bottom: 20px;
    right: 35px;
    left: 35px;
    margin: auto;
    color: white;
    z-index: 3;
  }
}
@media screen and (max-width: 767px) {
  header .widget {
    display: block;
    position: absolute;
    bottom: 70px;
    right: 0;
    left: 0;
    margin: auto;
    z-index: 3;
  }
}
header .widget h2 {
  padding: 0 0 0 10px;
  font-size: 2.5rem;
  font-family: "LINE Seed JP", sans-serif;
}
header .widget h2 span {
  font-size: 1.4rem;
}
header .widget iframe {
  min-height: 170px;
  margin-bottom: -10px;
}
header .widget .btn {
  width: 240px;
  margin: auto;
  margin-top: 20px;
}

.header {
  width: 100%;
  background-color: white;
  box-shadow: 0 0.5rem 0.5rem rgba(0, 0, 0, 0.02);
}

.header__inner {
  width: 100%;
  height: 80px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  display: flex;
  align-items: center;
  position: relative;
}
.header__inner li {
  border-right: 1px solid #f5f5f5;
}
.header__inner li:last-child {
  border-right: 0px solid #f5f5f5;
}

.header__nav {
  width: 100%;
  padding-left: 82px;
}

.header__list {
  display: flex;
  justify-content: center;
}

.header-list__item {
  font-family: "LINE Seed JP", sans-serif;
}
.header-list__item a {
  display: block;
  padding: 10px 20px;
  color: #433b3a;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-indent: 0.05em;
  text-decoration: none;
  text-align: center;
  transition: ease 0.5s;
}
.header-list__item a:hover {
  margin-top: -5px;
}
.header-list__item a em {
  display: block;
  margin: 5px 0 0;
  color: #fe804d;
  font-size: 1.2rem;
  font-style: normal;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}

.header-list__item:first-child {
  margin-left: 0;
}

.fixed__header {
  position: fixed;
  top: -80px;
  left: 0;
  z-index: 100;
  transition: all 0.3s ease-in-out;
  visibility: hidden;
}

.fixed__header.is-show {
  top: 0;
  visibility: visible;
}

.header__dark {
  background-color: #433b3a;
  color: white;
}
@media screen and (max-width: 1024px) {
  .header__dark {
    margin-left: 82px;
  }
}
@media screen and (max-width: 767px) {
  .header__dark {
    display: none;
  }
}
.header__dark h1 {
  padding: 10px 0;
  font-size: 1.2rem;
  font-weight: normal;
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  text-align: center;
}

.header__inner {
  position: relative;
}

.header__favorite {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 80px;
  height: 80px;
  background-color: #fe804d;
  color: #fff;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 1rem;
  text-decoration: none;
}
.header__favorite img {
  width: 35px;
  margin-bottom: 5px;
}
.header__favorite span {
  font-size: 1.2rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .header__favorite {
    width: 60px;
    height: 60px;
    font-size: 0.8rem;
  }
  .header__favorite img {
    width: 30px;
    height: 30px;
  }
}

.footer {
  padding: 25px 0;
  background-color: #433b3a;
  color: white;
  font-size: 1.7rem;
  font-weight: 300;
  letter-spacing: 0.12em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .footer {
    padding: 15px 0;
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0em;
  }
}
.footer small {
  text-align: center;
}

.nav {
  position: fixed;
  top: 0;
  left: -100%;
  width: 100%;
  backdrop-filter: blur(5px);
  color: white;
  /* 左からスライド */
  transition: left 0.5s;
  z-index: 90;
}
.nav__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50%;
  height: 100vh;
  background-color: rgba(255, 100, 40, 0.7);
  margin-left: auto;
}
@media screen and (max-width: 1024px) {
  .nav__inner {
    width: calc(100% - 82px);
  }
}
@media screen and (max-width: 767px) {
  .nav__inner {
    width: 100%;
  }
}
.nav__inner .__box {
  display: block;
}
.nav__inner ul {
  display: flex;
  flex-wrap: wrap;
  width: 75%;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .nav__inner ul {
    width: 95%;
  }
}
.nav__inner li {
  width: 33.3333333333%;
  text-align: center;
}
.nav__inner li a {
  display: block;
  margin: 5px;
  padding: 10px 0;
  color: white;
  border: 1px solid #fff;
  font-weight: 600;
  text-decoration: none;
  transition-duration: 0.8s;
}
@media screen and (max-width: 767px) {
  .nav__inner li a {
    margin: 2px;
    padding: 7px 0;
    font-size: 1.3rem;
  }
}
.nav__inner li a span {
  display: block;
  margin: 5px 0 0;
  color: #433b3a;
  font-size: 1rem;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: bold;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 767px) {
  .nav__inner li a span {
    margin: 2px 0 0;
    font-size: 0.8rem;
  }
}
.nav__inner li a:hover {
  background-color: white;
  color: #fe804d;
  transition-duration: 0.8s;
}
.nav__inner .__logo {
  margin-bottom: 20px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .nav__inner .__logo {
    top: 15%;
    margin-bottom: 10px;
  }
}
@media screen and (max-width: 375px) {
  .nav__inner .__logo {
    display: none;
  }
}
.nav__inner .__logo img {
  display: block;
  width: 100px;
  margin: 0 auto 10px;
}
.nav__inner .__logo span {
  display: block;
  margin: 5px 0 0;
  color: #433b3a;
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
.nav__inner .__data {
  margin: auto;
  text-align: center;
}
.nav__inner .__btn {
  display: flex;
  justify-content: center;
  margin: 10px 0 0;
}
@media screen and (max-width: 767px) {
  .nav__inner .__btn {
    width: 96.5%;
    margin: auto;
  }
}
.nav__inner .__btn img {
  width: 210px;
}
.nav__inner .__btn a {
  margin: 10px;
}
@media screen and (max-width: 767px) {
  .nav__inner .__btn a {
    margin: 5px;
  }
}
.nav__inner .__icon {
  display: flex;
  justify-content: center;
}
.nav__inner .__icon img {
  width: 50px;
}
@media screen and (max-width: 767px) {
  .nav__inner .__icon img {
    width: 40px;
  }
}
.nav__inner .__icon a {
  margin: 10px;
}
@media screen and (max-width: 767px) {
  .nav__inner .__icon a {
    margin: 5px;
  }
}
.nav__inner .__time {
  padding: 10px 0 20px 0;
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .nav__inner .__time {
    padding: 0 0 10px;
    font-size: 1.2rem;
  }
}
.nav__inner .__tel a {
  font-size: 2.2rem;
  font-family: "LINE Seed JP", sans-serif;
  color: #433b3a;
  text-decoration: none;
}

/* ナビゲーションボタン（開く） */
#navbtn {
  position: fixed;
  top: 50%;
  left: 25px;
  padding: 0;
  outline: none;
  border: none;
  background: none;
  width: 30px;
  height: 20px;
  cursor: pointer;
  z-index: 101;
}
@media screen and (max-width: 767px) {
  #navbtn {
    top: 18px;
    left: auto;
    right: 10px;
  }
}

#navbtn::before,
#navbtn::after {
  content: "";
  display: block;
  height: 1px;
  background-color: #433b3a;
  transform: translateY(10px);
  transition: 0.3s ease-in-out;
}

#navbtn::before {
  transform: translateY(-10px);
  box-shadow: 0 10px #423b3a;
}

/* ナビゲーションボタン（閉じる） */
.open #navbtn {
  z-index: 101;
}

.open #navbtn::before {
  transform: rotate(-45deg);
  box-shadow: none;
}

.open #navbtn::after {
  transform: rotate(45deg);
  box-shadow: none;
}

/* ナビゲーションメニュー 開いた時*/
.open .nav {
  left: 0;
}

/* flex
**************************************** */
/* --- ブロック要素 --- */
.flex {
  display: flex;
}

/* --- インライン要素 --- */
.flex-inline {
  display: inline-flex;
}

/* --- 逆向き --- */
.flex-reverse {
  flex-direction: row-reverse;
}

/* --- 縦並び --- */
.flex-column {
  flex-direction: column;
}

/* --- 水平方向揃え --- */
.flex-j-start {
  justify-content: flex-start;
}

.flex-j-end {
  justify-content: flex-end;
}

.flex-j-ctr {
  justify-content: center;
}

.flex-j-between {
  justify-content: space-between;
}

.flex-j-around {
  justify-content: space-around;
}

/* --- 垂直方向揃え --- */
.flex-a-start {
  align-items: flex-start;
}

.flex-a-end {
  align-items: flex-end;
}

.flex-a-ctr {
  align-items: center;
}

.flex-a-baseline {
  align-items: baseline;
}

.flex-a-stretch {
  align-items: stretch;
}

/* --- 子要素の折り返し設定 --- */
.flex-c-nowrap {
  flex-wrap: nowrap;
}

.flex-c-wrap {
  flex-wrap: wrap;
}

/* --- 子要素の複数行設定 --- */
.flex-c-reverse {
  flex-wrap: wrap-reverse;
}

.flex-c-start {
  align-content: flex-start;
}

.flex-c-start {
  align-content: flex-start;
}

.flex-c-end {
  align-content: flex-end;
}

.flex-c-ctr {
  align-content: center;
}

.flex-c-baseline {
  align-content: baseline;
}

.flex-c-stretch {
  align-content: stretch;
}

.flex-col2,
.flex-col3,
.flex-col4 {
  flex-wrap: wrap;
}

.flex-col1 > * {
  width: 100%;
}

.flex-col2 > * {
  width: 50%;
}

.flex-col3 > * {
  width: 33.3333333333%;
}

.flex-col4 > * {
  width: 25%;
}

.flex-col2.gap {
  gap: 6%;
}

.flex-col3.gap {
  gap: 3%;
}

.flex-col4.gap {
  gap: 2%;
}

.flex-col2.gap > * {
  width: 47%;
}

.flex-col2.gap.flex-c-wrap > * {
  margin-bottom: 7%;
}

.flex-col3.gap > * {
  width: 31.33%;
}

.flex-col3.gap.flex-c-wrap > * {
  margin-bottom: 10%;
}

.flex-col4.gap > * {
  width: 23.5%;
}

.flex-col4.gap.flex-c-wrap > * {
  margin-bottom: 2%;
}

.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);
}

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

認証ページ

================================*/
.index {
  width: 100%;
  height: 100vh;
}
@media screen and (max-width: 767px) {
  .index {
    height: 100dvh;
  }
}
.index h1,
.index h2 {
  display: block;
  padding: 10px 0;
  color: white;
  font-size: 1.2rem;
  text-align: center;
  text-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
  letter-spacing: 0.5em;
  text-indent: 0.5em;
}
@media screen and (max-width: 767px) {
  .index h1,
.index h2 {
    letter-spacing: 0.4em;
    text-indent: 0.4em;
  }
}
.index .__inner {
  position: absolute;
  top: 40%;
  left: 0;
  right: 0;
  transform: translate(0%, -50%);
  z-index: 1;
}
@media screen and (max-width: 1024px) {
  .index .__inner {
    top: 37%;
  }
}
@media screen and (max-width: 767px) {
  .index .__inner {
    top: 40%;
  }
}
.index .__logo {
  width: 300px;
  margin: auto;
  padding: 50px 0 10px;
  filter: drop-shadow(0px 0px 15px rgb(255, 255, 255));
}
@media screen and (max-width: 1024px) {
  .index .__logo {
    width: 250px;
  }
}
@media screen and (max-width: 767px) {
  .index .__logo {
    width: 200px;
    padding: 30px 0 10px;
  }
}
.index .__shop {
  max-width: 340px;
  width: auto;
  margin: auto;
  padding: 15px 0;
  background-color: white;
  border-radius: 100vh;
  text-align: center;
}
.index .__tel {
  padding: 30px 0 15px;
  color: white;
  font-size: 3.5rem;
  text-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
  line-height: 1;
  letter-spacing: 0.04em;
  text-align: center;
}
.index .__tel a {
  color: white;
  text-decoration: none;
}
.index .__tel span {
  font-size: 2.5rem;
}
.index .__time {
  padding: 0 0 40px;
  color: white;
  font-size: 1.4rem;
  text-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
  text-align: center;
}
.index .__town {
  width: 95%;
  max-width: 400px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .index .__town {
    max-width: 200px;
  }
}
.index .__town img {
  margin: 4px 0;
}

.index__enter {
  position: fixed;
  bottom: 67px;
  width: 100%;
  padding: 25px 0;
  background-color: rgba(255, 73, 0, 0.7);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .index__enter {
    bottom: 0;
    width: 100%;
    padding: 15px 0;
    transition: bottom 0.5s ease;
  }
  .index__enter.scrolled {
    bottom: 45px;
  }
}
.index__enter ul {
  display: flex;
  justify-content: center;
  align-items: center;
}
.index__enter a {
  color: #433b3a;
  font-size: 3rem;
  text-decoration: none;
}
.index__enter a:hover {
  color: white;
  transition-duration: 0.4s;
}
.index__enter .enter {
  padding-right: 10px;
}
.index__enter .leave {
  padding-left: 10px;
}
.index__enter .mark {
  width: 50px;
}
.index__enter .__text {
  padding: 0 0 10px;
  font-size: 1.2rem;
}

.index__video {
  overflow: hidden;
  width: 100%;
  z-index: 1;
}
.index__video video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: -1;
}

.index_concept {
  width: 100%;
  padding: 200px 0;
  background-color: white;
  text-align: center;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .index_concept {
    padding: 100px 20px;
  }
}
.index_concept h2 {
  position: relative;
  padding-bottom: 50px;
  font-size: 2.5rem;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  line-height: 2;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 767px) {
  .index_concept h2 {
    font-size: 2rem;
    letter-spacing: 0.1em;
  }
}
.index_concept h2::before {
  content: attr(data-en);
  display: block;
  color: #fe804d;
  font-size: 20px;
  font-style: italic;
  font-family: "LINE Seed JP", sans-serif;
  text-transform: uppercase;
}
.index_concept h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%) rotate(30deg);
  width: 1px;
  height: 40px;
  background-color: #fe804d;
}
.index_concept .__safe {
  max-width: 600px;
  margin: auto;
  margin-bottom: 100px;
}
.index_concept .__ttl {
  display: flex;
  justify-content: center;
}
.index_concept .__text {
  padding: 25px 0 100px 0;
  font-size: 1.4rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .index_concept .__text {
    font-size: 1.3rem;
  }
}
.index_concept .marker {
  background: linear-gradient(transparent 20%, rgba(235, 144, 156, 0.3) 20%);
  display: inline;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2.5rem;
  font-weight: bold;
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: background-size 1.5s;
}
.index_concept .marker.on {
  background-size: 100% 100%;
}

.index_linkbanner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 20px 0 0;
  gap: 10px;
}
.index_linkbanner a {
  display: inline-block;
}
.index_linkbanner a img {
  display: block;
  height: auto;
}
@media screen and (max-width: 767px) {
  .index_linkbanner a {
    width: 95%;
    margin: auto;
  }
  .index_linkbanner a img {
    max-width: 100%;
    width: auto;
  }
}
@media screen and (max-width: 767px) {
  .index_linkbanner {
    gap: 5px;
  }
}

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

メイン

================================*/
main {
  padding: 0;
}
@media screen and (max-width: 767px) {
  main {
    padding: 0;
  }
}

aside {
  position: fixed;
  top: 0;
  left: 0;
  width: 82px;
  height: 100vh;
  background-color: white;
  z-index: 100;
  box-shadow: 0 0.5rem 0.5rem rgba(0, 0, 0, 0.02);
}
@media screen and (max-width: 767px) {
  aside {
    width: 100%;
    height: 60px;
  }
}
aside .logo {
  display: block;
  padding: 20px 0;
  letter-spacing: 0.04em;
  text-align: center;
}
aside .logo img {
  padding: 0 10px;
}
aside .logo .text_pc {
  display: block;
  margin: 5px 0 0;
  padding: 0;
  font-size: 1.2rem;
  line-height: 1.2;
}
aside .logo .text_sp {
  display: none;
}
@media screen and (max-width: 767px) {
  aside .logo {
    position: relative;
    padding: 6px 0 0 10px;
    text-align: left;
  }
  aside .logo img {
    display: block;
    width: auto;
    height: 50px;
    padding: 0;
  }
  aside .logo .text_pc {
    display: none;
  }
  aside .logo .text_sp {
    display: block;
    position: absolute;
    top: 12px;
    left: 60px;
    font-size: 1.3rem;
    line-height: 1.3;
  }
}

.phone {
  display: none;
}
@media screen and (max-width: 767px) {
  .phone {
    display: block;
    position: fixed;
    top: 10px;
    right: 50px;
    z-index: 101;
  }
  .phone img {
    width: 35px;
  }
}

.top-container {
  position: relative;
  height: 700px;
}
@media screen and (max-width: 1024px) {
  .top-container {
    display: none;
  }
}

.hipsgroup {
  position: absolute;
  max-width: 1200px;
  width: 50%;
  right: 0;
  bottom: 0;
  z-index: 11;
}
.hipsgroup img {
  display: block;
  width: 320px;
  margin: auto;
  margin-bottom: -8em;
}

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

パンくずリスト

================================*/
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  max-width: 1260px;
  margin: auto;
  margin-top: 100px;
  padding: 0 0 20px;
  list-style: none;
  font-size: 1.2rem;
}
@media screen and (max-width: 1024px) {
  .breadcrumb {
    margin-top: 80px;
    padding: 0 0 0 130px;
  }
}
@media screen and (max-width: 767px) {
  .breadcrumb {
    justify-content: flex-start;
    margin: 10px 0 0;
    padding: 10px;
    font-size: 1rem;
  }
}
.breadcrumb li:not(:last-of-type)::after {
  content: "›";
  margin: 0 5px;
}
.breadcrumb a {
  color: #433b3a;
  text-decoration: none;
}

.breadcrumb__page {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: 20px;
  padding: 0 10px 20px;
  list-style: none;
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  .breadcrumb__page {
    justify-content: flex-start;
    margin: 60px 0 0;
    padding: 10px;
    font-size: 1rem;
  }
}
.breadcrumb__page li:not(:last-of-type)::after {
  content: "›";
  margin: 0 5px;
}
.breadcrumb__page a {
  color: #433b3a;
  text-decoration: none;
}

.standby {
  padding: 20px 0 0;
}
@media screen and (max-width: 1024px) {
  .standby {
    margin: 0 45px 0 120px;
  }
}
@media screen and (max-width: 767px) {
  .standby {
    margin: 0 10px 0 0;
  }
}
.standby h2 {
  padding: 0 0 0 10px;
  font-size: 2.5rem;
  font-family: "LINE Seed JP", sans-serif;
}
.standby h2 span {
  font-size: 1.4rem;
}

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

スライド

================================*/
.slideshow {
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
  max-width: 1200px;
  width: 50%;
  height: 700px;
  z-index: 10;
}
@media screen and (max-width: 1024px) {
  .slideshow {
    display: none;
  }
}

.slideshow video {
  width: auto;
  height: 100%;
}

.concept {
  position: absolute;
  width: 620px;
  top: 60px;
  left: calc(50% - 620px);
  padding-right: 10px;
  font-size: 1.4rem;
  font-family: "LINE Seed JP", sans-serif;
  line-height: 2;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 1024px) {
  .concept {
    position: static;
  }
}
@media screen and (max-width: 767px) {
  .concept {
    position: absolute;
    width: auto;
    padding: 0 10px;
    top: 70px;
    left: 0;
  }
}
.concept h2 {
  position: relative;
  border-bottom: 2px solid #433b3a;
  font-weight: 500;
  font-size: 2.5rem;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
.concept h2 span {
  font-size: 1.3rem;
}
.concept h2:before {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 20%;
  height: 2px;
  content: "";
  background-color: #fe804d;
}
.concept .tel {
  font-size: 2.2rem;
}
.concept .tel i {
  font-size: 1.8rem;
}
.concept .btn {
  width: 220px;
  margin: auto;
  margin-top: -20px;
}

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

タイトル

================================*/
.title {
  max-width: 1250px;
  margin: auto;
}
.title img {
  width: auto;
  height: 80px;
}
@media screen and (max-width: 767px) {
  .title img {
    display: block;
    width: 75%;
    height: auto;
    margin: auto;
  }
}

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

ショップリスト

================================*/
.shoplist {
  overflow: hidden;
  position: relative;
  min-height: 600px;
}
@media screen and (max-width: 1024px) {
  .shoplist {
    min-height: 900px;
    margin-top: 50px;
    margin-left: 82px;
  }
}
@media screen and (max-width: 767px) {
  .shoplist {
    min-height: 900px;
    margin-top: 50px;
    margin-left: 0;
  }
}
.shoplist ul {
  display: flex;
  flex-wrap: wrap;
  padding: 50px 20px;
}
@media screen and (max-width: 767px) {
  .shoplist ul {
    margin-top: -10px;
    padding: 0 5px;
  }
}
.shoplist li {
  width: 25%;
  color: white;
  border-right: 1px solid rgba(255, 255, 255, 0.3);
}
@media screen and (max-width: 1024px) {
  .shoplist li {
    width: 50%;
    border: 0;
  }
}
@media screen and (max-width: 767px) {
  .shoplist li {
    width: 100%;
    border: 0;
  }
}
.shoplist li:last-child {
  border-right: 0px;
}
.shoplist video {
  position: absolute;
  top: -50%;
  z-index: 1;
  width: 100%;
  filter: blur(10px);
}
@media screen and (max-width: 1024px) {
  .shoplist video {
    width: auto;
    height: 1050px;
    top: -5%;
    left: -30%;
    filter: blur(5px);
  }
}
@media screen and (max-width: 767px) {
  .shoplist video {
    width: auto;
    height: 1110px;
    top: -5%;
    left: -200%;
    filter: blur(5px);
  }
}
.shoplist a {
  display: block;
  padding: 10px 0;
  color: white;
  font-family: "LINE Seed JP", sans-serif;
  font-size: 1.4rem;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .shoplist a {
    padding: 5px 0;
    font-size: 1.2rem;
  }
}
.shoplist .__inner {
  position: absolute;
  top: 0px;
  right: 0;
  left: 82px;
  bottom: 0;
  width: 80%;
  height: 380px;
  background-color: rgba(0, 0, 0, 0.4);
  margin: auto;
  z-index: 3;
}
@media screen and (max-width: 1024px) {
  .shoplist .__inner {
    left: 0;
    width: 90%;
    height: 740px;
  }
}
@media screen and (max-width: 767px) {
  .shoplist .__inner {
    left: 0;
    width: 95%;
    height: 740px;
  }
}
.shoplist .area {
  padding: 0 30px;
}
@media screen and (max-width: 1024px) {
  .shoplist .area {
    padding: 30px 15px 0 15px;
  }
}
@media screen and (max-width: 767px) {
  .shoplist .area {
    padding: 30px 15px 0 15px;
  }
}
.shoplist .ttl {
  margin: 0 0 10px;
  padding: 5px 15px;
  border-left: 5px solid white;
  font-weight: bold;
  font-size: 2rem;
}
@media screen and (max-width: 1024px) {
  .shoplist .ttl {
    padding: 5px 10px;
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 767px) {
  .shoplist .ttl {
    padding: 5px 10px;
    font-size: 1.5rem;
  }
}

.type {
  position: relative;
  width: 100%;
  height: 100vh;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
}
.type::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80%;
}

.type a {
  display: inline-block;
  position: absolute;
  right: 25px;
  bottom: 100px;
  z-index: 2;
  padding: 10px 10px 110px;
  color: #433b3a;
  font-size: 0.9rem;
  font-family: "LINE Seed JP", sans-serif;
  line-height: 1;
  letter-spacing: 0.2em;
  text-decoration: none;
  writing-mode: vertical-lr;
  transition: 0.2s;
  overflow: hidden;
}
.type a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 45%;
  width: 1px;
  height: 100px;
  background-color: #433b3a;
}
.type a:hover {
  opacity: 0.5;
}

#type01 a::after {
  animation: sdl01 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}

@keyframes sdl01 {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap; /* 折り返し禁止 */
  padding: 100px 0;
  margin: 0;
  list-style: none; /* リストマーカー削除 */
  /* li要素直接スタイリング */
}
@media screen and (max-width: 767px) {
  .pagination {
    padding: 50px 0 0;
  }
}
.pagination > li {
  display: inline-block; /* インラインブロック化 */
  margin: 0 5px; /* 左右マージンのみ */
  padding: 0;
}
.pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  color: #433b3a;
  border: 1px solid #ccc;
  border-radius: 3px;
  text-decoration: none;
  transition: 0.2s;
  box-sizing: border-box;
}
.pagination a:hover {
  color: white;
  background-color: #433b3a;
}
.pagination .active a {
  background-color: #433b3a;
  color: white;
  border-color: #433b3a;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  color: white;
  animation: fadeIn 0.3s ease;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

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

.modal-content {
  position: relative;
  padding: 20px 0px;
  text-align: center;
  max-width: 640px;
  width: 95%;
  animation: popIn 0.3s ease;
}

.modal-image {
  width: 100%;
  margin-bottom: 10px;
}

.modal-text {
  color: #ffd0d0;
  font-size: 16px;
  margin-bottom: 10px;
}

.modal-comment {
  font-size: 16px;
}

.modal-comment-sub {
  font-size: 16px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
  line-height: 1.5;
}

.modal-countdown {
  font-weight: bold;
  margin: 10px 0;
}

.modal-close,
#modalClose {
  display: block;
  margin: auto;
  padding: 8px 20px;
  background: #fe804d;
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}

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

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

.custom-checkbox {
  display: inline-flex !important;
  align-items: center;
  font-size: 16px;
  cursor: pointer;
  user-select: none;
}

/* 本来の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: 10px;
  height: 16px;
  border: solid #aaa;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
}

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

/* ✅ チェック時でもマークは白のまま */
.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: red;
  font-weight: bold;
}

/* 
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;

  &.hidden {
    display: none;
  }

  .modal-content {
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    max-width: 400px;
    width: 90%;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);

    .modal-image {
      width: 100%;
      height: auto;
      border-radius: 8px;
      margin-bottom: 15px;
    }

    .modal-text {
      margin-bottom: 15px;
      font-size: 16px;
    }

    button {
      padding: 10px 20px;
      border: none;
      background: #0077cc;
      color: #fff;
      border-radius: 6px;
      cursor: pointer;

      &:hover {
        background: #005fa3;
      }
    }
  }
}
 */
.slick-slide {
  display: flex !important;
  justify-content: center;
  align-items: center;
}

.slick-slide img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

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

キャスト

================================*/
.cast,
.newface {
  position: relative;
  padding-left: 82px;
}
@media screen and (max-width: 1024px) {
  .cast,
.newface {
    padding: 75px 40px 0px 130px;
  }
}
@media screen and (max-width: 767px) {
  .cast,
.newface {
    padding: 10px 0;
  }
}
.cast__inner,
.newface__inner {
  position: absolute;
  max-width: 1250px;
  top: 0px;
  right: 0;
  left: 0;
  margin: auto;
}
@media screen and (max-width: 1024px) {
  .cast__inner,
.newface__inner {
    left: 0;
  }
}
.cast ul,
.newface ul {
  display: flex;
  flex-wrap: wrap;
  width: 85%;
  margin: auto;
}
@media screen and (max-width: 1024px) {
  .cast ul,
.newface ul {
    width: 100%;
    margin-left: -5px;
    margin-right: -5px;
  }
}
@media screen and (max-width: 767px) {
  .cast ul,
.newface ul {
    width: 97%;
    margin: auto;
    padding: 0 5px;
  }
}
@media screen and (max-width: 767px) {
  .cast .sort_adjustment,
.newface .sort_adjustment {
    width: 95%;
    margin: auto;
    margin-left: 4px;
  }
}
.cast li,
.newface li {
  display: flex;
  width: 25%;
  margin-top: 10px;
  min-width: 0;
}
@media screen and (max-width: 1024px) {
  .cast li,
.newface li {
    width: 50%;
  }
}
@media screen and (max-width: 767px) {
  .cast li,
.newface li {
    width: 50%;
    margin-top: 0px;
  }
}
.cast figure,
.newface figure {
  flex-grow: 1;
  margin: 15px;
  padding: 0 0 20px;
  text-align: center;
  background-color: white;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 1024px) {
  .cast figure,
.newface figure {
    margin: 10px;
  }
}
@media screen and (max-width: 767px) {
  .cast figure,
.newface figure {
    margin: 10px 5px;
    padding: 0 0 10px;
  }
}
.cast em,
.newface em {
  font-style: normal;
}
.cast .__data,
.newface .__data {
  overflow: hidden;
  display: block;
}
.cast .__frame,
.newface .__frame {
  position: relative;
}
.cast .__frame .num,
.newface .__frame .num {
  position: absolute;
  top: -7px;
  left: 10px;
  width: 80px;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .cast .__frame .num,
.newface .__frame .num {
    top: -3px;
    left: 5px;
    width: 40px;
  }
}
.cast .time,
.newface .time {
  position: absolute;
  bottom: 0;
  right: 0;
  padding: 10px 10px 0 10px;
  background-color: white;
  font-size: 2.2rem;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .cast .time,
.newface .time {
    font-size: 1.6rem;
  }
}
.cast .waitingtime,
.newface .waitingtime {
  color: white;
  position: absolute;
  top: -10px;
  left: -10px;
  width: 170px;
  padding: 10px 0;
  border-radius: 20px 0 10px 0;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 767px) {
  .cast .waitingtime,
.newface .waitingtime {
    top: -3px;
    left: -5px;
    width: 150px;
    padding: 7px 0;
    font-size: 1.4rem;
  }
}
.cast .new,
.newface .new {
  display: inline-block;
  margin-bottom: -10px;
}
@media screen and (max-width: 767px) {
  .cast .new,
.newface .new {
    margin-bottom: -6px;
  }
}
.cast .new img,
.newface .new img {
  width: 35px;
}
@media screen and (max-width: 767px) {
  .cast .new img,
.newface .new img {
    width: 25px;
  }
}
.cast .tabako,
.newface .tabako {
  position: absolute;
  top: 10px;
  right: 10px;
}
.cast .tabako img,
.newface .tabako img {
  width: 60px;
}
@media screen and (max-width: 767px) {
  .cast .tabako,
.newface .tabako {
    top: 5px;
    right: 5px;
  }
  .cast .tabako img,
.newface .tabako img {
    width: 30px;
  }
}
.cast .photo,
.newface .photo {
  overflow: hidden;
}
.cast .photo img,
.newface .photo img {
  transition: ease 0.5s;
}
.cast .photo a:hover img,
.newface .photo a:hover img {
  transform: scale(1.2);
}
.cast .text,
.newface .text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  max-width: 90%;
  height: 38px;
  margin: 0 auto 10px;
  padding: 20px 0 0;
  font-size: 1.5rem;
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .cast .text,
.newface .text {
    height: 22px;
    padding: 10px 0;
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}
.cast .name,
.newface .name {
  max-width: 95%;
  margin: 0 auto;
  padding: 0 5px;
  font-size: 2.2rem;
  font-family: "LINE Seed JP", sans-serif;
  box-sizing: border-box;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .cast .name,
.newface .name {
    font-size: 1.6rem;
  }
}
.cast .name .en,
.newface .name .en {
  font-size: 1.5rem;
  color: #aaa;
  font-family: "Bodoni Moda", serif;
}
@media screen and (max-width: 1024px) {
  .cast .name .en,
.newface .name .en {
    display: none;
  }
}
.cast .name .age,
.newface .name .age {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .cast .name .age,
.newface .name .age {
    font-size: 1.4rem;
  }
}
.cast .size,
.newface .size {
  padding: 10px 0 20px;
  font-size: 1.4rem;
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
.cast .size span,
.newface .size span {
  display: block;
  padding: 5px 0 0;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
}
@media screen and (max-width: 767px) {
  .cast .size,
.newface .size {
    padding: 10px 0;
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}
.cast .icon,
.newface .icon {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  height: 30px;
}
@media screen and (max-width: 767px) {
  .cast .icon,
.newface .icon {
    height: 25px;
  }
}
.cast .icon a,
.newface .icon a {
  display: flex;
  align-items: center;
  height: 25px;
  margin: 3px;
  padding: 0 10px;
  border: 1px solid #433b3a;
  color: #433b3a;
  font-size: 1.3rem;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .cast .icon a,
.newface .icon a {
    height: 20px;
    padding: 0 5px 2px;
    font-size: 1.1rem;
  }
}
.cast .type-icon,
.newface .type-icon {
  display: flex;
  flex-wrap: wrap;
  height: 60px;
  margin: 10px 0 0;
  padding: 0 10px;
  gap: 2px;
}
.cast .type-icon div,
.newface .type-icon div {
  flex: 0 0 calc(50% - 1px);
  border-radius: 2px;
  text-align: center;
  height: 30px;
  line-height: 27px;
  padding: 0 8px;
  color: #fff;
  background-color: #fe510d;
  text-shadow: 1px 1px 0px #666;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .cast .type-icon,
.newface .type-icon {
    flex-wrap: nowrap;
    flex-direction: column;
    justify-content: flex-start;
    height: 110px;
  }
  .cast .type-icon div,
.newface .type-icon div {
    flex: none;
    width: 100%;
    height: 25px;
    line-height: 25px;
    font-size: 1.2rem;
  }
}
.cast .shimei,
.newface .shimei {
  max-width: 300px;
  width: 95%;
  margin: 15px auto 0;
}
@media screen and (max-width: 767px) {
  .cast .shimei,
.newface .shimei {
    margin: 5px auto 0;
  }
}
.cast .rank_inner,
.newface .rank_inner {
  overflow: hidden;
  position: relative;
  height: 50px;
}
.cast .rank01,
.newface .rank01 {
  width: 90%;
  margin: auto;
  margin-top: 20px;
  padding: 5px 0;
  color: #f29cbe;
  border: 1px solid #f29cbe;
  font-weight: bold;
  font-family: "Bodoni Moda", serif;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
}
@media screen and (max-width: 767px) {
  .cast .rank01,
.newface .rank01 {
    margin-top: 10px;
    font-size: 1.2rem;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
  }
}
.cast .rank02,
.newface .rank02 {
  width: 90%;
  margin: auto;
  margin-top: 20px;
  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;
}
@media screen and (max-width: 767px) {
  .cast .rank02,
.newface .rank02 {
    margin-top: 10px;
    font-size: 1.2rem;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
  }
}
.cast .rank03,
.newface .rank03 {
  width: 90%;
  margin: auto;
  margin-top: 20px;
  padding: 5px 0;
  color: #15a5af;
  border: 1px solid #15a5af;
  font-weight: bold;
  font-family: "Bodoni Moda", serif;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
}
@media screen and (max-width: 1024px) {
  .cast .rank03,
.newface .rank03 {
    letter-spacing: 0.2em;
    text-indent: 0.2em;
  }
}
@media screen and (max-width: 767px) {
  .cast .rank03,
.newface .rank03 {
    margin-top: 10px;
    font-size: 1.2rem;
    letter-spacing: 0em;
    text-indent: 0em;
  }
}
.cast .adjustment,
.newface .adjustment {
  padding-top: 450px;
}
@media screen and (max-width: 1024px) {
  .cast .adjustment,
.newface .adjustment {
    padding-top: 40%;
  }
}
@media screen and (max-width: 767px) {
  .cast .adjustment,
.newface .adjustment {
    padding-top: 100px;
  }
}
.cast .ttl,
.newface .ttl {
  position: absolute;
  top: 40px;
  right: 0;
  z-index: 2;
}
.cast .ttl img,
.newface .ttl img {
  width: 225px;
}
@media screen and (max-width: 1024px) {
  .cast .ttl,
.newface .ttl {
    top: -50px;
  }
  .cast .ttl img,
.newface .ttl img {
    width: 200px;
  }
}
@media screen and (max-width: 767px) {
  .cast .ttl,
.newface .ttl {
    top: -50px;
  }
  .cast .ttl img,
.newface .ttl img {
    width: 100px;
  }
}
.cast .banner,
.newface .banner {
  position: absolute;
  top: 150px;
  left: 0;
  right: 0;
  width: 750px;
  margin: auto;
  z-index: 1;
}
@media screen and (max-width: 1024px) {
  .cast .banner,
.newface .banner {
    top: 7em;
    width: 72%;
    left: 10px;
    margin: 0;
  }
}
@media screen and (max-width: 767px) {
  .cast .banner,
.newface .banner {
    top: -5px;
    width: 70%;
    left: 10px;
    margin: 0;
  }
}

.cast {
  margin: 150px 0;
}
@media screen and (max-width: 1024px) {
  .cast {
    margin: 20px 0 220px;
  }
}
@media screen and (max-width: 767px) {
  .cast {
    margin: 50px 0 80px;
  }
}
.cast ul {
  padding: 100px 0 0;
}
@media screen and (max-width: 1024px) {
  .cast ul {
    padding: 40px 0 0;
  }
}
@media screen and (max-width: 767px) {
  .cast ul {
    padding: 0 5px;
  }
}
.cast .title {
  margin-bottom: 50px;
}
@media screen and (max-width: 767px) {
  .cast .title {
    margin-bottom: 25px;
  }
}

/*
週間出勤
================================*/
.week {
  width: 100%;
  max-width: 1250px;
  margin: auto;
  margin-top: 75px;
}
@media screen and (max-width: 767px) {
  .week {
    margin-top: 25px;
  }
}
.week dl {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .week dl {
    padding: 0 0 20px;
  }
}
.week dt {
  width: 14.2857142857%;
  position: relative;
  letter-spacing: 0.1rem;
}
.week dt + dt {
  border-left: 1px solid #ddd;
}
.week a {
  display: block;
  padding: 10px 0 5px 0;
  color: #433b3a;
  font-family: "Bodoni Moda SC", serif;
  font-weight: 300;
  text-decoration: none;
  text-align: center;
}
.week a:hover {
  background-color: #ffa9ad;
  transition-duration: 0.8s;
}
.week p {
  font-size: 20px;
}
@media screen and (max-width: 767px) {
  .week p {
    font-size: 15px;
  }
}
.week .current {
  background-color: #ffa9ad;
}
.week .month {
  vertical-align: top;
  position: relative;
  top: -0.3em;
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  .week .month {
    font-size: 1rem;
  }
}
.week .day,
.week .day-on {
  display: inline-block;
  width: 70%;
  margin-top: 5px;
  padding: 3px;
  border-radius: 100vh;
  background-color: #f5f5f5;
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  .week .day,
.week .day-on {
    font-size: 0.8rem;
  }
}
.week .day-on {
  background: rgba(255, 255, 255, 0.4);
}
.week .dotw {
  margin-top: 5px;
  padding: 3px;
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  .week .dotw {
    font-size: 1rem;
  }
}

@media screen and (max-width: 768px) {
  .week {
    width: 100%;
    min-width: auto;
    margin-bottom: 5px;
  }
}
.weekly_btn {
  position: relative;
  width: 300px;
  margin: auto;
  margin-top: 20px;
  background-color: #fe804d;
  border-radius: 100vh;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .weekly_btn {
    width: 250px;
    margin-top: -15px;
    margin-bottom: 15px;
  }
}
.weekly_btn :hover {
  background-color: #433b3a;
  color: white;
  border-radius: 100vh;
  transition-duration: 0.8s;
}
.weekly_btn a {
  display: block;
  padding: 15px 0;
  color: white;
  font-weight: bold;
  text-decoration: none;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
}
@media screen and (max-width: 767px) {
  .weekly_btn a {
    padding: 10px 0;
    font-size: 1.4rem;
  }
}
.weekly_btn i {
  position: absolute;
  left: 20px;
  top: 15px;
  transition: 0.5s;
}
.weekly_btn a:hover i {
  left: 25px;
}

/*
週間出勤情報
================================*/
.table_scroll {
  overflow-y: hidden;
  overflow-x: auto;
}
.table_scroll table {
  width: 85%;
  margin: auto;
  margin-top: 100px;
  margin-bottom: 1px;
  border-collapse: collapse;
}
@media screen and (max-width: 767px) {
  .table_scroll table {
    width: 800px;
    margin-top: 50px;
  }
}
.table_scroll th,
.table_scroll td {
  padding: 10px 0;
  background-color: white;
  border: 1px #ccc solid;
  text-align: center;
  width: 100px;
}
@media screen and (max-width: 767px) {
  .table_scroll th,
.table_scroll td {
    width: 100px;
  }
}
.table_scroll th em,
.table_scroll td em {
  display: block;
  padding: 5px 0;
  font-style: normal;
  transform: rotate(-90deg);
  transform-origin: center;
}
.table_scroll th.sticky {
  position: sticky;
  top: 0;
  left: 0;
  border-left: none;
  border-right: none;
  background: none;
  z-index: 1;
  width: 100px !important;
}
@media screen and (max-width: 767px) {
  .table_scroll th.sticky {
    width: 100px !important;
  }
}
.table_scroll th.sticky img {
  display: block;
  width: 80px;
  margin: auto;
}
.table_scroll th.sticky p.name {
  width: 100px;
  padding: 5px 0 0;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .table_scroll th.sticky p.name {
    font-size: 1.1rem;
  }
}
.table_scroll th.sticky p.name {
  padding: 5px 0 0;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .table_scroll th.sticky p.name {
    font-size: 1.1rem;
  }
}
.table_scroll th.sticky::before {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  border-left: 1px #ccc solid;
  border-right: 1px #ccc solid;
  background-color: #eee;
  z-index: -1;
  box-sizing: content-box;
}
.table_scroll .days {
  background-color: #433b3a;
  color: white;
  text-align: center;
}

/*
コンセプト検索
================================*/
.list_sort {
  padding: 40px 0 40px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .list_sort {
    width: 95%;
    margin: auto;
    padding: 20px 0;
    text-align: center;
  }
}
.list_sort a {
  display: inline-block;
  padding: 15px 20px;
  color: #433b3a;
  border-radius: 100px;
  border: 1px solid #dedede;
  background: #fff;
  font-size: 15px;
  margin: 3px 0;
  font-weight: bold;
  text-shadow: none;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .list_sort a {
    display: inline-block;
    width: 32.3%;
    margin: auto;
    margin-bottom: 7px;
    padding: 15px 0;
    color: #433b3a;
    border-radius: 100px;
    border: 1px solid #dedede;
    background: #fff;
    font-size: 1.3rem;
    font-weight: bold;
    text-shadow: none;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
    text-decoration: none;
  }
}
@media screen and (max-width: 767px) {
  .list_sort a span {
    display: none;
  }
}
.list_sort a.active {
  background: -ms-linear-gradient(left, #c3b0e5, #a28acd);
  background: -moz-linear-gradient(left, #c3b0e5, #a28acd);
  background: -webkit-linear-gradient(left, #c3b0e5, #a28acd);
  background: linear-gradient(to right, #c3b0e5, #a28acd);
  color: white;
  border: 1px solid #ede0ed;
  text-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
  box-shadow: none;
}
@media screen and (max-width: 767px) {
  .list_sort .big {
    width: 100%;
  }
}

/*
条件検索
================================*/
.search .box .search_inner {
  height: 0;
  overflow: hidden;
  transition: 0.9s;
  opacity: 0;
}

.search .box input:checked ~ .search_inner {
  height: auto;
  opacity: 1;
}

.search_inner {
  width: 84%;
  margin: auto;
  margin-top: 40px;
  padding: 0 40px;
  border: 1px solid #423b3a;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
@media screen and (max-width: 1024px) {
  .search_inner {
    width: 100%;
    margin-top: 40px;
    margin-bottom: 10px;
    padding: 0 10px;
  }
}
@media screen and (max-width: 767px) {
  .search_inner {
    width: 95%;
    margin-top: 10px;
  }
}
.search_inner dl {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
@media screen and (max-width: 1024px) {
  .search_inner dl {
    justify-content: flex-start;
  }
}
.search_inner dt {
  width: 14.2857142857%;
}
@media screen and (max-width: 1024px) {
  .search_inner dt {
    width: 33.3333333333%;
  }
}
@media screen and (max-width: 767px) {
  .search_inner dt {
    width: 50%;
  }
}
.search_inner label {
  display: inline-block;
  padding: 5px 10px;
}
@media screen and (max-width: 767px) {
  .search_inner label {
    padding: 5px;
  }
}
.search_inner input[type=checkbox] {
  position: relative;
  width: 16px;
  height: 16px;
  margin-right: 5px;
  border: 1px solid #000;
  vertical-align: -2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.search_inner input[type=checkbox]:checked:before {
  position: absolute;
  top: 1px;
  left: 4px;
  transform: rotate(50deg);
  width: 4px;
  height: 8px;
  border-right: 2px solid #000;
  border-bottom: 2px solid #000;
  content: "";
}
.search_inner select {
  height: 22px;
  border: 1px solid black;
}

.search_ttl_inner {
  display: flex;
  justify-content: center;
}

.search_ttl {
  position: relative;
  display: inline-block;
  margin: 40px 0 20px;
  padding: 0 45px;
  font-size: 2.5rem;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .search_ttl {
    margin: 30px 0 20px;
    font-size: 2rem;
  }
}

.search_ttl:before,
.search_ttl:after {
  content: "";
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 44px;
  height: 2px;
  background-color: black;
  -webkit-transform: rotate(-60deg);
  transform: rotate(-60deg);
}
@media screen and (max-width: 767px) {
  .search_ttl:before,
.search_ttl:after {
    width: 33px;
  }
}

.search_ttl:before {
  left: 0;
}

.search_ttl:after {
  right: 0;
}

.search_btn dl {
  display: flex;
  justify-content: center;
}
.search_btn dt {
  margin: 0 10px;
}

.search_click {
  display: block;
  width: 180px;
  margin: auto;
  padding: 10px 0;
  background: #423b3a;
  color: white;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: bold;
  transition: all 0.5s;
  text-align: center;
}

.search_click i {
  font-size: 18px;
}

.search_click:hover {
  background-color: #fe510d;
}

.search_click a {
  display: block;
  color: white;
  text-decoration: none;
}

.search_btn_form {
  width: 320px;
  margin: auto;
  padding: 20px 0;
}
.search_btn_form dl {
  display: flex;
}
.search_btn_form dl dt {
  width: 50%;
}

input.btn_form {
  display: block;
  text-align: center;
  text-decoration: none;
  width: 150px;
  margin: 10px;
  padding: 10px 40px;
  font-weight: bold;
  background-image: linear-gradient(to top, #d8d9db 0%, #fff 80%, #fdfdfd 100%);
  border-radius: 100vh;
  color: #333;
  border: 1px solid #999;
  text-shadow: 0 1px #fff;
  box-shadow: 0 3px 2px 1px #fcfcfc, 0 4px 6px #cecfd1, 0 -2px 2px #cecfd1, 0 -4px 2px #eee, inset 0 0 2px 2px #cecfd1;
  transition: 0.5s;
}

input.btn_form:hover {
  opacity: 0.5;
}

.fav-toggle {
  margin: 0 0 10px;
  padding: 5px 15px;
  border: 1px solid #ccc;
  border-radius: 100vh;
  color: #ccc;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .fav-toggle {
    margin: 0 0 5px;
    padding: 5px 10px;
  }
}

.heart-icon {
  width: 16px;
  height: 16px;
  vertical-align: middle;
  fill: #ccc;
  transition: fill 0.3s ease;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .heart-icon {
    width: 14px;
    height: 14px;
  }
}

.fav-toggle.is-on .heart-icon {
  fill: #e74c3c;
}

.fav-toggle.animate .heart-icon {
  animation: explode 0.4s ease-out;
}

@keyframes explode {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  30% {
    transform: scale(1.4);
    opacity: 0.8;
  }
  60% {
    transform: scale(1.2);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.fav-label {
  font-size: 1.6rem;
  vertical-align: middle;
  transition: color 0.3s ease;
}
@media screen and (max-width: 767px) {
  .fav-label {
    font-size: 1.4rem;
  }
}

.fav-toggle.is-on .fav-label {
  color: #e74c3c;
}

.fav-toggle.is-on {
  border: 1px solid #e74c3c;
}

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

最新情報

================================*/
.information {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 150px 0;
}
@media screen and (max-width: 1024px) {
  .information {
    padding: 75px 15px 75px 130px;
  }
}
@media screen and (max-width: 767px) {
  .information {
    padding: 50px 10px;
  }
}
.information ul {
  display: flex;
  flex-wrap: wrap;
}
.information li {
  width: 50%;
  margin: 40px 0 0 0;
}
@media screen and (max-width: 1024px) {
  .information li {
    width: 100%;
    margin: 15px 0 0 0;
  }
}
@media screen and (max-width: 767px) {
  .information li {
    width: 100%;
    margin: 15px 0 0 0;
  }
}
.information figure {
  display: flex;
}
.information figure .image {
  width: 100px;
  height: 100px;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
  margin-right: 10px;
}
@media screen and (max-width: 767px) {
  .information figure .image {
    width: 80px;
    height: 80px;
  }
}
.information figure .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.information figure .data {
  flex: 1;
  padding: 0 30px 0 0;
}
@media screen and (max-width: 767px) {
  .information figure .data {
    flex: 1;
    padding: 0;
  }
}
.information figure .data a {
  color: #fe804d;
  text-decoration: none;
}
.information video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  pointer-events: none;
}
.information::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.5);
  z-index: -1;
}
.information__inner {
  position: relative;
  z-index: 1;
  max-width: 1250px;
  margin: auto;
}
.information .ttl img {
  width: auto;
  height: 80px;
}
@media screen and (max-width: 767px) {
  .information .ttl img {
    height: 50px;
  }
}
.information .day {
  color: #433b3a;
  font-size: 1rem;
}
.information .name {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 500px;
  margin: 7px 0 2px;
  padding: 10px;
  background-color: #fe510d;
  border-radius: 100vh;
  color: white;
  font-size: 1.6rem;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .information .name {
    max-width: 280px;
    padding: 5px;
    font-size: 1.4rem;
    line-height: 1.1;
  }
}
.information .doc {
  color: #433b3a;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  font-size: 1.4rem;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .information .doc {
    font-size: 1.2rem;
    line-height: 1.4;
  }
}
.information .button_arrow {
  display: inline-block;
  width: auto;
  cursor: pointer;
  position: relative;
  text-decoration: none;
}
.information .button_arrow::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -5px;
  right: 10px;
  width: 60px;
  height: 10px;
  border: none;
  border-right: 2px solid white;
  border-bottom: 1px solid white;
  transform: skew(45deg);
  transition: 0.3s;
}
.information .button_arrow:hover::after {
  right: 0px;
  bottom: -5px;
  width: 70px;
}
.information .btn {
  width: 240px;
  margin: auto;
  padding: 20px 0 0;
}

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

お得な情報

================================*/
.discount {
  width: 100%;
  padding: 150px 0 0 82px;
}
@media screen and (max-width: 1024px) {
  .discount {
    padding: 75px 20px 75px 130px;
  }
}
@media screen and (max-width: 767px) {
  .discount {
    padding: 50px 0px;
  }
}
.discount ul {
  display: flex;
  flex-wrap: wrap;
  width: 85%;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .discount ul {
    width: 100%;
  }
}
.discount li {
  display: flex;
  width: 33.3333333333%;
  margin-top: 10px;
}
@media screen and (max-width: 1024px) {
  .discount li {
    width: 50%;
  }
}
@media screen and (max-width: 767px) {
  .discount li {
    width: 50%;
    padding: 0 5px;
  }
}
.discount figure {
  flex-grow: 1;
  margin: 15px;
  text-align: center;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .discount figure {
    margin: 10px 5px;
  }
}
.discount .ttl {
  max-width: 1250px;
  margin: auto;
}
.discount .ttl img {
  width: auto;
  height: 80px;
  margin: 0 0 50px;
}
@media screen and (max-width: 767px) {
  .discount .ttl img {
    height: 50px;
    margin: 0 0 10px;
  }
}
.discount .text {
  display: flex;
  position: absolute;
  top: 130px;
  height: 350px;
  left: calc(50% - 550px);
  font-size: 1.5rem;
  font-weight: 300;
  writing-mode: vertical-rl;
  letter-spacing: 0.5em;
  margin-right: -0.5em;
}

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

イベント情報

================================*/
.event {
  padding: 150px 0 50px 82px;
}
@media screen and (max-width: 1024px) {
  .event {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .event {
    padding: 50px 0 0;
  }
}
.event h2 {
  margin: 0 0 50px;
  padding: 0 0 20px;
  border-bottom: 1px solid #ddd;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .event h2 {
    margin: 0 0 20px;
    padding: 20px 0 20px;
  }
}
.event h3 {
  background-color: #fe804d;
  margin: 50px 0 25px;
  padding: 10px 15px;
  color: white;
  font-size: 1.8rem;
}
@media screen and (max-width: 767px) {
  .event h3 {
    margin: 25px 0;
    padding: 10px;
  }
}
.event h4 {
  padding: 0px 10px 5px;
  color: #fe804d;
  font-size: 1.8rem;
  border-left: 5px solid #fe804d;
  border-bottom: 1px solid #fe804d;
}
@media screen and (max-width: 767px) {
  .event h4 {
    padding: 5px 0px 5px 10px;
  }
}
.event ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1600px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .event ul {
    padding: 0 10px;
  }
}
.event li {
  width: 100%;
  padding: 0 0 100px;
}
.event__text {
  padding: 50px 0;
  font-size: 1.5rem;
  text-align: center;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .event__text {
    padding: 10px;
    font-size: 1.1rem;
  }
}
.event__image {
  max-width: 900px;
  margin: auto;
}
.event__image-sub {
  max-width: 500px;
  margin: auto;
}
.event__comment {
  margin: 50px 0 0;
  padding: 40px;
  background-color: white;
  border-radius: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 300;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .event__comment {
    margin: 20px 0 0;
    padding: 20px;
    font-size: 1.3rem;
    line-height: 1.7;
  }
}
.event__line {
  max-width: 900px;
  margin: auto;
  padding: 70px 0 100px 0;
}
@media screen and (max-width: 767px) {
  .event__line {
    padding: 20px 0;
  }
}
.event__list {
  display: flex;
  flex-wrap: wrap;
  max-width: 1600px;
  margin: auto;
  padding: 25px 0;
  border-bottom: 1px solid #ccc;
}
@media screen and (max-width: 767px) {
  .event__list {
    padding: 10px;
  }
}
@media screen and (max-width: 767px) {
  .event__list {
    padding: 10px;
  }
}
.event__thumbnail {
  width: 130px;
  height: 130px;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
}
@media screen and (max-width: 767px) {
  .event__thumbnail {
    width: 100px;
    height: 100px;
    padding: 0 10px 0 0;
  }
}
.event__thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.event__data {
  flex: 1;
  padding-left: 10px;
}
.event__title {
  font-weight: bold;
  font-size: 2rem;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .event__title {
    font-size: 1.8rem;
  }
}
.event__days {
  padding: 15px 0;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .event__days {
    padding: 5px 0 10px;
    font-size: 1.2rem;
  }
}
.event__more a {
  display: inline-block;
  color: black;
  text-decoration: none;
  transition-duration: 0.4s;
}
.event__more a:hover {
  padding-left: 10px;
  transition-duration: 0.4s;
}

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

レビュー

================================*/
.review {
  overflow: hidden;
  position: relative;
  min-height: 600px;
  background: url(../images/review-bg.jpg) center/cover no-repeat;
}
@media screen and (max-width: 767px) {
  .review {
    min-height: 500px;
    margin-top: 50px;
  }
}
.review ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1280px;
  margin: auto;
}
@media screen and (max-width: 1024px) {
  .review ul {
    padding: 75px 20px 75px 120px;
  }
}
@media screen and (max-width: 767px) {
  .review ul {
    margin-top: -10px;
    padding: 0 5px;
  }
}
.review figure {
  display: flex;
  flex-grow: 1;
  margin: 15px;
  padding: 10px;
  background-color: white;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .review figure {
    margin: 10px 5px;
    padding: 0;
  }
}
.review video {
  position: absolute;
  top: 0%;
  z-index: 1;
  width: 100%;
  filter: blur(5px);
}
@media screen and (max-width: 1024px) {
  .review video {
    width: 150%;
    top: -5%;
    left: -10%;
  }
}
@media screen and (max-width: 767px) {
  .review video {
    width: auto;
    height: 530px;
    top: -5%;
    left: -70%;
    filter: blur(10px);
  }
}
.review__inner {
  position: absolute;
  top: 0px;
  right: 0;
  left: 0;
  margin: auto;
  padding-top: 150px;
  z-index: 3;
}
@media screen and (max-width: 767px) {
  .review__inner {
    padding-top: 180px;
  }
}
.review .__photo {
  width: 200px;
  padding: 0 10px 0 0;
}
@media screen and (max-width: 767px) {
  .review .__photo {
    width: 150px;
  }
}
.review .__data {
  flex: 1;
}
.review .name {
  padding: 10px 0 15px;
  font-family: "Bodoni Moda SC", serif;
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
@media screen and (max-width: 767px) {
  .review .name {
    padding: 10px 0 5px;
    font-size: 1.4rem;
  }
}
.review .name span {
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .review .name span {
    font-size: 1rem;
  }
}
.review .comment {
  height: 185px;
  overflow-x: auto;
  padding: 7px 15px;
  border: 1px solid #eee;
  font-size: 1.3rem;
  overflow-wrap: break-word;
  hyphens: manual;
  line-height: 28px;
}
@media screen and (max-width: 767px) {
  .review .comment {
    height: 120px;
    margin-right: 10px;
    padding: 0px;
    border: 1px solid white;
    font-size: 1.1rem;
    overflow-wrap: break-word;
    hyphens: manual;
    line-height: 1.8;
  }
}
.review .more {
  padding: 10px 0 0;
  font-weight: 700;
  text-align: right;
  font-family: "Bodoni Moda SC", serif;
}
.review .more a {
  color: black;
  font-size: 1.5rem;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .review .more a {
    padding: 0 10px 0 0;
    font-size: 1.2rem;
  }
}
.review .more i {
  font-size: 1.4rem;
}
.review .btn {
  width: 300px;
  margin: auto;
  filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.3));
}
@media screen and (max-width: 767px) {
  .review .btn {
    width: 200px;
  }
}

.review__ttl {
  position: relative;
  width: 225px;
  margin-top: -100px;
  margin-bottom: -200px;
  margin-left: auto;
  margin-right: 25px;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .review__ttl {
    width: 50%;
    margin-top: -10px;
    margin-left: 10px;
  }
}

/*
レビュー一覧
================================*/
.reviewlist {
  padding: 150px 0 150px 82px;
}
@media screen and (max-width: 1024px) {
  .reviewlist {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .reviewlist {
    padding: 50px 0 80px;
  }
}
.reviewlist ul {
  display: flex;
  flex-wrap: wrap;
  width: 85%;
  margin: auto;
  margin-top: 75px;
}
@media screen and (max-width: 1024px) {
  .reviewlist ul {
    width: 100%;
    margin-top: 15px;
    padding: 0 5px;
  }
}
.reviewlist li {
  width: 33.3333333333%;
}
@media screen and (max-width: 1024px) {
  .reviewlist li {
    width: 100%;
  }
}
.reviewlist figure {
  position: relative;
  display: flex;
  margin: 15px;
  padding: 10px;
  background: url(../images/review_bg.jpg) center/cover no-repeat;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .reviewlist figure {
    margin: 5px;
    padding: 10px;
  }
}
.reviewlist figure .image {
  width: 150px;
}
@media screen and (max-width: 767px) {
  .reviewlist figure .image {
    width: 90px;
  }
}
.reviewlist figure .data {
  flex: 1;
  padding: 0 0 0 10px;
}
.reviewlist figure .ttl {
  padding: 0 0 10px;
  color: #433b3a;
  font-size: 2.2rem;
  font-weight: bold;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  line-clamp: 1;
}
@media screen and (max-width: 767px) {
  .reviewlist figure .ttl {
    width: auto;
    height: 18px;
    margin-bottom: 5px;
    padding-right: 50px;
    font-size: 1.8rem;
  }
}
.reviewlist figure .name {
  padding: 5px 10px;
  background-color: #433b3a;
  border-radius: 100vh;
  color: white;
  font-size: 1.2rem;
  font-weight: bold;
}
.reviewlist figure .message {
  padding: 10px 15px 0 0;
  color: #433b3a;
  font-size: 1.3rem;
  line-height: 1.5;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
  line-clamp: 6;
}
@media screen and (max-width: 767px) {
  .reviewlist figure .message {
    -webkit-line-clamp: 3;
  }
}
.reviewlist figure a {
  text-decoration: none;
}
.reviewlist figure .days {
  padding: 10px 15px 0 0;
  color: gray;
  font-size: 1.2rem;
  text-align: right;
}
@media screen and (max-width: 767px) {
  .reviewlist figure .days {
    padding: 10px 0 0 0;
  }
}
.reviewlist figure .icon {
  position: absolute;
  top: -5px;
  right: -5px;
  width: 60px;
}
@media screen and (max-width: 767px) {
  .reviewlist figure .icon {
    width: 50px;
  }
}
.reviewlist__input {
  max-width: 1000px;
  margin: auto;
  margin-top: 100px;
  padding: 90px 50px 100px;
  background-color: #fef4f5;
  border-radius: 10px;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 1024px) {
  .reviewlist__input {
    margin-top: 40px;
  }
}
@media screen and (max-width: 767px) {
  .reviewlist__input {
    margin: 0 15px;
    padding: 20px 15px 40px;
  }
}
.reviewlist__input dl {
  display: flex;
  align-items: center;
  padding: 40px 0;
  border-bottom: 1px solid #ddd;
}
@media screen and (max-width: 767px) {
  .reviewlist__input dl {
    flex-wrap: wrap;
    padding: 20px 0;
  }
}
.reviewlist__input dt {
  width: 300px;
  font-size: 1.6rem;
  font-weight: bold;
}
@media screen and (max-width: 1024px) {
  .reviewlist__input dt {
    width: 200px;
  }
}
@media screen and (max-width: 767px) {
  .reviewlist__input dt {
    width: 100%;
  }
}
.reviewlist__input dd {
  flex: 1;
}
.reviewlist__input dd span {
  display: block;
  padding: 0 0 10px;
  font-size: 12px;
}
@media screen and (max-width: 767px) {
  .reviewlist__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 {
  width: 300px;
  padding: 10px;
  border: 1px solid #aaa;
  border-radius: 3px;
  outline: none;
  transition: background-color 0.5s ease-out;
}
.reviewlist__input input:focus {
  background-color: #ffe2e6;
}
.reviewlist__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 {
  background-color: rgb(224, 247, 255);
}
.reviewlist__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 {
  background-color: #ffe2e6;
}
.reviewlist__input .comment_count {
  width: 100px;
  height: 35px;
  line-height: 35px;
  margin: auto;
  color: white;
  font-size: 1.4rem;
  font-weight: bold;
  background-color: #433b3a;
  border-radius: 35px;
  text-align: center;
}
.reviewlist__input .short {
  width: 200px;
}
.reviewlist__input .stars .stars_select {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
}
.reviewlist__input .stars input[type=radio] {
  display: none;
}
.reviewlist__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 {
  color: #f8c601;
}
.reviewlist .input_btn {
  display: block;
  width: 300px;
  padding: 20px 0;
  margin: auto;
  margin-top: 20px;
  background-color: #fe804d;
  color: white;
  font-size: 1.8rem;
  font-weight: bold;
}
.reviewlist .input_text {
  width: 100%;
  line-height: 2;
}

/*
レビュー女性一覧
================================*/
.reviewgirls {
  max-width: 1280px;
  margin: auto;
  margin-top: 50px;
}
@media screen and (max-width: 767px) {
  .reviewgirls {
    margin-top: 20px;
  }
}
.reviewgirls dl {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .reviewgirls dl {
    padding: 0 5px;
  }
}
.reviewgirls dt {
  width: 16.6666666667%;
}
@media screen and (max-width: 1024px) {
  .reviewgirls dt {
    width: 33.3333333333%;
  }
}
.reviewgirls .__list {
  margin: 20px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .reviewgirls .__list {
    margin: 5px;
  }
}
.reviewgirls .__list a {
  text-decoration: none;
}
.reviewgirls .image {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 50%;
  aspect-ratio: 1/1;
}
.reviewgirls .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.reviewgirls .name {
  padding: 10px 0;
  color: #433b3a;
}
@media screen and (max-width: 767px) {
  .reviewgirls .name {
    padding: 5px 0;
    font-size: 1.4rem;
  }
}
.reviewgirls .number {
  padding: 12px 0;
  background-color: #433b3a;
  border-radius: 100vh;
  color: white;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .reviewgirls .number {
    padding: 7px 0;
    font-size: 1.1rem;
  }
}

.reviewlist .__comment,
.reviewdetail .__comment {
  max-width: 1240px;
  margin: auto;
  margin-top: 15px;
  padding: 25px 0;
  border: 1px solid #433b3a;
  font-size: 1.5rem;
  text-align: center;
  line-height: 2;
}
@media screen and (max-width: 1024px) {
  .reviewlist .__comment,
.reviewdetail .__comment {
    margin: 10px;
    padding: 10px 10px 0;
    border: 0;
    font-size: 1.2rem;
    line-height: 1.7;
  }
}
.reviewlist .__btn,
.reviewdetail .__btn {
  width: 250px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .reviewlist .__btn,
.reviewdetail .__btn {
    width: 200px;
  }
}
.reviewlist .title,
.reviewdetail .title {
  max-width: 1250px;
  margin: auto;
}
.reviewlist .title img,
.reviewdetail .title img {
  width: auto;
  height: 80px;
}
@media screen and (max-width: 767px) {
  .reviewlist .title img,
.reviewdetail .title img {
    display: block;
    width: 75%;
    height: auto;
    margin: auto;
  }
}

/*
レビュー詳細
================================*/
.reviewdetail {
  padding: 150px 0 100px 82px;
}
@media screen and (max-width: 1024px) {
  .reviewdetail {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .reviewdetail {
    padding: 50px 0 0;
  }
}
.reviewdetail ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1240px;
  margin: auto;
  margin-top: 50px;
}
@media screen and (max-width: 767px) {
  .reviewdetail ul {
    width: 100%;
    margin-top: 15px;
    padding: 0 5px;
  }
}
.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%;
}
@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 {
    width: 200px;
    margin: auto;
  }
}
.reviewdetail__photo img {
  display: block;
  width: 100%;
  margin: auto;
  margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
  .reviewdetail__photo img {
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: 50%;
  }
}
.reviewdetail__photo-girls {
  display: block;
  width: 200px;
  margin: auto;
  padding: 0 0 40px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .reviewdetail__photo-girls {
    padding: 0;
  }
}
.reviewdetail__photo-girls img {
  width: 200px;
  height: 200px;
  object-fit: cover;
  border-radius: 50%;
}
.reviewdetail__name {
  padding: 30px 0 0;
  font-size: 2.5rem;
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  .reviewdetail__name {
    font-size: 2rem;
  }
}
.reviewdetail__name span {
  font-size: 1.8rem;
}
.reviewdetail__name rt {
  margin-bottom: 0.3rem;
}
.reviewdetail__size {
  padding: 5px 0 0;
  font-size: 1.2rem;
  font-weight: normal;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
.reviewdetail__number {
  padding: 12px 0;
  background-color: #433b3a;
  border-radius: 5px;
  color: white;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .reviewdetail__number {
    padding: 7px 0;
    font-size: 1.1rem;
  }
}
.reviewdetail__text {
  width: 100%;
  padding: 0 0 0 20px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
}
@media screen and (max-width: 767px) {
  .reviewdetail__text {
    padding: 0 10px 0;
  }
}
.reviewdetail__text div {
  padding: 0 0 100px;
}
@media screen and (max-width: 767px) {
  .reviewdetail__text div {
    padding: 30px 0;
  }
}
.reviewdetail__day {
  margin: 0 0 5px;
  padding: 15px;
  color: white;
  font-size: 1.8rem;
  font-weight: bold;
  border: 3px solid #d2b48c;
  background-color: #fe804d;
  border-radius: 5px;
  box-shadow: 0 0 2px 2px white;
}
@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: 700;
  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 .comment span[style*="#EE82EE"],
.reviewdetail .comment span[style*="#DDA0DD"] {
  color: #fe804d !important;
  font-weight: bold;
}
.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;
}

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

ランキング

================================*/
.ranking {
  padding: 150px 0 150px 82px;
}
@media screen and (max-width: 1024px) {
  .ranking {
    padding: 75px 20px 75px 120px;
  }
}
@media screen and (max-width: 767px) {
  .ranking {
    padding: 50px 0 50px;
  }
}
.ranking h3 {
  padding: 50px 0 0;
  font-size: 1.6rem;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: normal;
  letter-spacing: 0.15em;
  text-indent: 0.15em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .ranking h3 {
    padding: 30px 0 0;
    font-size: 1.3rem;
    line-height: 2;
  }
}
.ranking ul {
  display: flex;
  flex-wrap: wrap;
  width: 85%;
  margin: auto;
}
@media screen and (max-width: 1024px) {
  .ranking ul {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .ranking ul {
    width: 100%;
    padding: 0 15px;
  }
}
.ranking li {
  display: flex;
  width: 25%;
  margin-top: 10px;
}
@media screen and (max-width: 1024px) {
  .ranking li {
    width: 33.3333333333%;
  }
}
@media screen and (max-width: 767px) {
  .ranking li {
    width: 50%;
  }
}
.ranking figure {
  flex-grow: 1;
  margin: 15px;
  padding: 0 0 20px;
  text-align: center;
  background-color: white;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 767px) {
  .ranking figure {
    margin: 10px 5px;
    padding: 0 0 10px;
  }
}
.ranking em {
  font-style: normal;
}
.ranking .__frame {
  position: relative;
}
.ranking .__frame .num {
  position: absolute;
  top: -7px;
  left: 10px;
  width: 25%;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .ranking .__frame .num {
    top: -3px;
    left: 5px;
    width: 40px;
  }
}
.ranking .time {
  position: absolute;
  bottom: 0;
  right: 0;
  padding: 10px 10px 0 10px;
  background-color: white;
  font-size: 2rem;
  font-family: "LINE Seed JP", sans-serif;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .ranking .time {
    padding: 5px 5px 0 5px;
    font-size: 1.4rem;
  }
}
.ranking .waitingtime {
  color: white;
  position: absolute;
  top: -10px;
  left: -10px;
  width: 170px;
  padding: 10px 0;
  border-radius: 20px 0 10px 0;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 767px) {
  .ranking .waitingtime {
    top: -7px;
    left: -5px;
    width: 150px;
    padding: 7px 0;
    font-size: 1.4rem;
  }
}
.ranking .photo {
  overflow: hidden;
}
.ranking .photo img {
  height: auto;
  transition: ease 0.5s;
}
.ranking .photo a:hover img {
  transform: scale(1.2);
}
.ranking .__data {
  overflow: hidden;
  display: block;
}
.ranking .text {
  max-width: 95%;
  height: 38px;
  margin: 0 auto 10px;
  padding: 20px 0 0;
  font-size: 1.5rem;
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  line-height: 1.2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .ranking .text {
    height: 30px;
    padding: 10px 0;
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
    padding-left: 100%;
    white-space: nowrap;
    animation: animate-banner 15s linear infinite;
  }
}
.ranking .name {
  font-size: 2.8rem;
  font-family: "LINE Seed JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .ranking .name {
    padding: 10px 0 0;
    font-size: 1.8rem;
  }
}
.ranking .name .en {
  font-size: 1.5rem;
  color: #aaa;
  font-family: "Bodoni Moda", serif;
}
@media screen and (max-width: 767px) {
  .ranking .name .en {
    display: none;
  }
}
.ranking .name .age {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .ranking .name .age {
    font-size: 1.2rem;
  }
}
.ranking .size {
  padding: 10px 0 20px;
  font-size: 1.4rem;
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
.ranking .size span {
  display: block;
  padding: 5px 0 0;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
}
@media screen and (max-width: 767px) {
  .ranking .size {
    padding: 10px 0;
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}
.ranking .icon {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  height: 30px;
}
@media screen and (max-width: 767px) {
  .ranking .icon {
    height: 25px;
  }
}
.ranking .icon a {
  display: flex;
  align-items: center;
  height: 25px;
  margin: 3px;
  padding: 0 10px;
  border: 1px solid #433b3a;
  color: #433b3a;
  font-size: 1.3rem;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .ranking .icon a {
    height: 20px;
    padding: 0 5px 2px;
    font-size: 1.1rem;
  }
}
.ranking .rank01 {
  width: 90%;
  margin: auto;
  margin-top: 20px;
  padding: 5px 0;
  color: #fe804d;
  border: 1px solid #f29cbe;
  font-weight: bold;
  font-family: "Bodoni Moda", serif;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
}
@media screen and (max-width: 767px) {
  .ranking .rank01 {
    margin-top: 10px;
    font-size: 1.1rem;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
  }
}
.ranking .rank02 {
  width: 90%;
  margin: auto;
  margin-top: 20px;
  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;
}
@media screen and (max-width: 767px) {
  .ranking .rank02 {
    margin-top: 10px;
    font-size: 1.1rem;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
  }
}
.ranking .rank03 {
  width: 90%;
  margin: auto;
  margin-top: 20px;
  padding: 5px 0;
  color: #15a5af;
  border: 1px solid #15a5af;
  font-weight: bold;
  font-family: "Bodoni Moda", serif;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
}
@media screen and (max-width: 767px) {
  .ranking .rank03 {
    margin-top: 10px;
    font-size: 1.1rem;
    letter-spacing: 0;
    text-indent: 0;
  }
}
.ranking .__heading {
  width: 380px;
  position: relative;
  margin-top: 100px;
  margin-left: 8.2%;
  margin-bottom: 25px;
  padding: 0 0 1.5rem 0rem;
  border-bottom: 3px solid #000;
  border-left: 3px solid #000;
  border-radius: 0 0 0 20px;
  font-size: 1.8rem;
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .ranking .__heading {
    width: auto;
    margin-top: 40px;
    margin-left: 10px;
  }
}
.ranking .__heading::first-letter {
  font-size: 3rem;
  color: #e00000;
}
.ranking .__heading .big {
  font-size: 3rem;
  color: #e00000;
}
.ranking .__heading .small {
  color: gray;
  font-size: 1.4rem;
}
.ranking .__heading:before {
  position: absolute;
  right: 50px;
  bottom: -21px;
  width: 0;
  height: 0;
  content: "";
  border-width: 21px 21px 0 0;
  border-style: solid;
  border-color: #000 transparent transparent transparent;
}
.ranking .__heading:after {
  position: absolute;
  right: 54px;
  bottom: -14px;
  width: 0;
  height: 0;
  content: "";
  border-width: 14px 14px 0 0;
  border-style: solid;
  border-color: #e8eaea transparent transparent transparent;
}
.ranking .ttl img {
  width: auto;
  height: 80px;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .ranking .ttl img {
    height: 50px;
  }
}

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

ランキング一覧

================================*/
.rankinglist {
  padding: 150px 0 50px 82px;
}
@media screen and (max-width: 1024px) {
  .rankinglist {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .rankinglist {
    padding: 50px 0;
  }
}
.rankinglist h2 {
  margin: 0 0 50px;
  padding: 0 0 20px;
  border-bottom: 1px solid #ddd;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .rankinglist h2 {
    margin: 0 0 20px;
    padding: 20px 0 20px;
  }
}
.rankinglist h3 {
  margin: 0 0 50px;
  padding: 0 0 20px;
  border-bottom: 1px solid #ddd;
  text-align: center;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  font-weight: 300;
}
@media screen and (max-width: 767px) {
  .rankinglist h3 {
    margin: 0 0 20px;
    padding: 20px 0 20px;
  }
}
.rankinglist h3:first-letter {
  font-size: 150%;
  color: #e00000;
}
.rankinglist .__list {
  display: flex;
  max-width: 1200px;
  margin: auto;
  margin-top: 50px;
  margin-bottom: 50px;
  padding: 30px;
  background-color: white;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list {
    margin: 20px;
    padding: 20px;
  }
}
@media screen and (max-width: 767px) {
  .rankinglist .__list {
    margin: 10px;
    padding: 10px;
  }
}
.rankinglist .__list .image {
  width: 400px;
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list .image {
    width: 250px;
  }
}
@media screen and (max-width: 767px) {
  .rankinglist .__list .image {
    width: 150px;
  }
}
.rankinglist .__list .data {
  flex: 1;
  padding: 0 0 0 20px;
}
@media screen and (max-width: 767px) {
  .rankinglist .__list .data {
    padding: 0 0 0 10px;
  }
}
.rankinglist .__list .rank {
  color: #d2b48c;
  font-size: 3rem;
  font-family: "Bodoni Moda", serif;
  font-style: italic;
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list .rank {
    padding: 18px 0 0;
    font-size: 2rem;
  }
}
.rankinglist .__list .rank span {
  font-size: 5rem;
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list .rank span {
    font-size: 3rem;
  }
}
.rankinglist .__list .name {
  color: #fe804d;
  font-size: 4rem;
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list .name {
    font-size: 3rem;
  }
}
.rankinglist .__list .name span {
  font-size: 2.5rem;
}
.rankinglist .__list .text {
  padding: 20px 0 10px;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list .text {
    font-size: 1.3rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}
.rankinglist .__list .size {
  padding: 10px 0 20px;
  font-size: 2rem;
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list .size {
    font-size: 1.4rem;
  }
}
.rankinglist .__list .time {
  padding: 15px 0;
  background-color: #fe510d;
  color: white;
  font-size: 2.2rem;
  font-weight: 500;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list .time {
    padding: 10px 0;
    font-size: 1.5rem;
  }
}
.rankinglist .__list .comment {
  margin: 20px 0;
  padding: 20px;
  border: 1px solid #d2b48c;
}
@media screen and (max-width: 1024px) {
  .rankinglist .__list .comment {
    margin: 10px 0;
    padding: 10px;
  }
}
@media screen and (max-width: 767px) {
  .rankinglist .__list .comment {
    display: none;
  }
}
.rankinglist .__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: 1024px) {
  .rankinglist .__list .comment p {
    font-size: 1.3rem;
    line-height: 1.3;
  }
}
.rankinglist .title {
  max-width: 1250px;
  margin: auto;
}
.rankinglist .title img {
  width: auto;
  height: 80px;
}
@media screen and (max-width: 767px) {
  .rankinglist .title img {
    display: block;
    width: 75%;
    height: auto;
    margin: auto;
  }
}
.rankinglist i {
  display: block;
  padding: 75px 0 0;
  font-size: 3rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .rankinglist i {
    padding: 25px 0 0;
    margin-bottom: -20px;
  }
}

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

ご予約

================================*/
.reserve {
  padding: 150px 0 50px 82px;
}
@media screen and (max-width: 1024px) {
  .reserve {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .reserve {
    padding: 50px 0;
  }
}
.reserve .__inner {
  max-width: 1000px;
  margin: auto;
  padding: 100px 0;
}
@media screen and (max-width: 767px) {
  .reserve .__inner {
    padding: 4px 10px;
  }
}
.reserve .__inner input.send {
  display: block;
  text-align: center;
  text-decoration: none;
  width: 320px;
  margin: auto;
  margin-top: 10px;
  margin-bottom: 10px;
  padding: 1rem 4rem;
  font-weight: bold;
  border: 2px solid #fe804d;
  background: #fff;
  color: #fe804d;
  border-radius: 100vh;
  font-size: 20px;
  transition: 0.5s;
}
.reserve .__inner input.send:hover {
  color: #fff;
  background: #fe804d;
}
.reserve .__inner .list {
  display: flex;
  margin: 0 0 25px;
  padding: 0 0 25px;
  border-bottom: 1px solid #433b3a;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list {
    margin: 0 0 15px;
    padding: 0 0 15px;
  }
}
.reserve .__inner .list:last-child {
  border-bottom: 0;
}
.reserve .__inner .list .image {
  width: 150px;
  margin-right: 20px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list .image {
    margin-right: 10px;
  }
}
.reserve .__inner .list .image img {
  width: 150px;
  height: 150px;
  object-fit: cover;
  border-radius: 10px;
}
.reserve .__inner .list .data {
  flex: 1;
}
.reserve .__inner .list .data dl {
  display: flex;
  flex-wrap: wrap;
}
.reserve .__inner .list .data dt {
  width: 33.3333333333%;
  margin: 0 0 15px;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list .data dt {
    width: 50%;
    margin: 0 0 7px;
  }
}
.reserve .__inner .list .name {
  padding: 10px 0 5px;
  font-size: 1.5rem;
}
.reserve .__inner .list .size {
  font-size: 1rem;
}
.reserve .__inner .list a.reseve-btn {
  display: block;
  width: 95%;
  margin: auto;
  padding: 20px 0;
  background-color: white;
  border: 1px solid #ddd;
  border-radius: 10px;
  color: #433b3a;
  font-size: 1.7rem;
  text-align: center;
  text-underline-offset: 0.2em;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list a.reseve-btn {
    font-size: 1.3rem;
  }
}
.reserve .__inner .list a:hover.reseve-btn {
  background-color: #fffaee;
}
.reserve .__inner .list_girls {
  display: flex;
  margin: 0 0 25px;
  padding: 0 0 25px;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list_girls {
    flex-wrap: wrap;
    margin: 0 0 15px;
    padding: 0 0 15px;
  }
}
.reserve .__inner .list_girls .image {
  width: 300px;
  margin-right: 20px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list_girls .image {
    margin: auto;
    margin-top: 25px;
  }
}
.reserve .__inner .list_girls .image img {
  border-radius: 10px;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list_girls .image img {
    display: block;
    width: 150px;
    margin: auto;
  }
}
.reserve .__inner .list_girls .data {
  flex: 1;
}
.reserve .__inner .list_girls .name {
  padding: 10px 0 5px;
  font-size: 2rem;
}
.reserve .__inner .list_girls .size {
  font-size: 1.4rem;
}
.reserve .__inner .list_girls table {
  width: 100%;
  margin: 25px 0 0;
  background-color: white;
  border-spacing: 0;
  border-left: 1px solid #ddd;
  border-top: 1px solid #ddd;
  font-size: 1.4rem;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list_girls table {
    margin: 15px 0 25px;
  }
}
.reserve .__inner .list_girls th {
  padding: 10px 10px;
  background-color: #433b3a;
  color: white;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}
.reserve .__inner .list_girls td {
  padding: 10px 10px;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}
.reserve .__inner .list_girls .contents {
  margin: 0 0 25px;
  padding: 20px;
  border-radius: 10px;
  background-color: white;
}
@media screen and (max-width: 767px) {
  .reserve .__inner .list_girls .contents {
    padding: 15px;
    font-size: 1.4rem;
  }
}
.reserve .__inner .list_girls .contents .ttl {
  margin: 0 0 10px;
}
.reserve .__inner .list_girls .contents label {
  display: block;
  padding: 5px 0;
  font-family: "Noto Sans JP", sans-serif;
}
.reserve .__inner .list_girls .contents textarea {
  height: 200px;
}
.reserve .__inner .list_girls .contents span {
  display: inline-block;
  padding: 4px 10px;
  background: #ee0020;
  font-family: "Noto Sans JP", sans-serif;
  border-radius: 3px;
  color: #ff0;
  font-weight: bold;
  font-size: 1.3rem;
}
.reserve .__inner .list_girls .select-hotel {
  display: flex;
}
.reserve .__inner .list_girls .select-hotel li {
  width: 50%;
}
.reserve .__inner .list_girls .select-hotel li select {
  width: 95%;
}
.reserve .__inner .list_girls .form-control {
  display: block;
  width: 100%;
  padding: 0.375rem 0.75rem;
  height: 38px;
  font-size: 16px;
  line-height: 1.5;
  color: #433b3a;
  background-color: white;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.reserve .__inner .list_girls .input_btn {
  display: block;
  width: 300px;
  padding: 20px 0;
  margin: auto;
  margin-top: 20px;
  background-color: #fe804d;
  color: white;
  font-size: 1.8rem;
  font-weight: bold;
}
.reserve .__comment {
  max-width: 1240px;
  margin: auto;
  margin-top: 15px;
  padding: 25px;
  border: 1px solid #433b3a;
  font-size: 1.5rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .reserve .__comment {
    margin: 10px 10px;
    padding: 10px 10px 0;
    border: 0;
    font-size: 1.2rem;
    line-height: 1.7;
  }
}

.progressbar {
  overflow-y: hidden;
  max-width: 750px;
  display: flex;
  flex-wrap: wrap;
  margin: auto;
  margin-top: 50px;
  padding: 0 10px;
  border-radius: 5px;
}

.progressbar .item {
  position: relative;
  width: 33.333%;
  text-align: center;
  position: relative;
  align-items: center;
  justify-content: center;
  padding: 13px 0;
  line-height: 1.5;
  background-color: white;
  color: #999999;
}

.progressbar .item:not(:last-child)::before,
.progressbar .item:not(:last-child)::after {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: 100%;
  content: "";
  border: 45px solid transparent;
  border-left: 20px solid white;
  margin: auto;
}

.progressbar .item:not(:last-child)::before {
  margin-left: 3px;
  border-left-color: #f5f5f5;
}

@media screen and (max-width: 767px) {
  .progressbar .item {
    font-size: 11px;
    line-height: 1.4;
    padding: 10px 0;
  }
  .progressbar .item:not(:last-child)::before,
.progressbar .item:not(:last-child)::after {
    border-width: 30px;
    border-left-width: 16px;
  }
}
/* active */
.progressbar .item.active {
  z-index: 1;
  background-color: #fe804d;
  color: white;
}

.progressbar .item.active:not(:last-child)::after {
  border-left-color: #fe804d;
}

.progressbar .item.active:not(:last-child)::before {
  border-left: none;
}

.notes {
  padding: 20px 0 10px;
  color: red;
  font-weight: bold;
  line-height: 2;
}

.finish {
  margin: 0 0 75px;
  font-size: 1.4rem;
  text-align: center;
  line-height: 3;
}
@media screen and (max-width: 767px) {
  .finish {
    margin: 0 0 30px;
    padding: 30px 0 0;
    font-size: 1.3rem;
    line-height: 2.5;
  }
}
.finish span {
  color: red;
  font-size: 2rem;
  font-weight: bold;
  background: linear-gradient(transparent 60%, #ff6 60%);
}

.design01 {
  width: 100%;
  margin: 30px 0 0;
  font-family: "LINE Seed JP", serif;
  font-size: 17px;
}
@media screen and (max-width: 767px) {
  .design01 {
    margin: 15px 0 0;
    font-size: 15px;
  }
}

.design01 th {
  width: 300px;
  padding: 20px;
  background-color: white;
  border: solid 1px #ddd;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .design01 th {
    display: block;
    width: 100%;
    margin-bottom: 2px;
    padding: 15px 10px;
    text-align: left;
  }
}

.design01 td {
  padding: 20px;
  border: solid 1px #ddd;
  background-color: #e8eaea;
}
@media screen and (max-width: 767px) {
  .design01 td {
    display: block;
    padding: 15px 10px;
  }
}

.design02 {
  width: 100%;
  margin: 30px 0;
  font-family: "LINE Seed JP", serif;
  font-size: 1.8rem;
}
@media screen and (max-width: 767px) {
  .design02 {
    margin: 15px 0;
    font-size: 1.4rem;
  }
}

.design02 th {
  width: 100%;
  padding: 20px;
  background-color: #433b3a;
  border: solid 1px #ddd;
  color: white;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .design02 th {
    padding: 15px 10px;
  }
}

.design02 td {
  padding: 20px;
  border: solid 1px #ddd;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .design02 td {
    padding: 15px 10px;
  }
}

.design02 strong {
  font-size: 25px;
  font-weight: bold;
  color: red;
}

.design02 span {
  display: block;
  padding: 15px 0 0;
  font-size: 12px;
  line-height: 1.5;
}

.total {
  background: #fe804d;
  color: #fff;
  font-size: 20px;
  font-weight: bold;
}

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

求人

================================*/
.recruit {
  overflow: hidden;
  position: relative;
  height: 650px;
  margin: 150px 0 0;
}
@media screen and (max-width: 1024px) {
  .recruit {
    margin: 0 0 0 80px;
    height: 700px;
    padding: 75px 20px 0 0;
  }
}
@media screen and (max-width: 767px) {
  .recruit {
    height: 400px;
    margin: 50px 0 0;
    padding: 0;
  }
}
.recruit .__inner {
  position: absolute;
  top: 110px;
  left: 0;
  right: 0;
  margin: auto;
  line-height: 2;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .recruit .__inner {
    top: 50px;
  }
}
.recruit .__ttl {
  font-family: "LINE Seed JP", sans-serif;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .recruit .__ttl {
    width: 600px;
    margin: auto;
  }
}
@media screen and (max-width: 767px) {
  .recruit .__ttl {
    width: 100%;
    font-size: 2rem;
    letter-spacing: 0em;
    text-indent: 0em;
  }
}
.recruit .__ttl span {
  display: block;
  margin: 25px 0 0;
  color: #e2505c;
  font-size: 1.4rem;
  font-weight: normal;
  letter-spacing: 0.8em;
  text-indent: 0.8em;
}
@media screen and (max-width: 767px) {
  .recruit .__ttl span {
    letter-spacing: 0.05em;
    text-indent: 0.05em;
  }
}
.recruit .__banner {
  width: 600px;
  margin: auto;
  padding: 50px 0 0;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .recruit .__banner {
    width: 85%;
    padding: 25px 0 0;
  }
}
.recruit video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  pointer-events: none;
}

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

プロフィール

================================*/
.profile {
  padding-left: 82px;
  /*
  プロフィールレビュー
  ================================*/
}
@media screen and (max-width: 1024px) {
  .profile {
    padding: 0 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .profile {
    padding: 0;
  }
}
.profile h4 {
  position: relative;
  padding: 10px 0;
  border-bottom: 2px solid white;
  font: 300 2rem/1 "LINE Seed JP", sans-serif;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}
.profile h4:before {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 20%;
  height: 2px;
  content: "";
  background-color: #fe804d;
}
.profile h4 span {
  font-size: 1.2rem;
}
.profile__inner {
  display: flex;
  max-width: 1150px;
  margin: auto;
  padding: 50px 0 0;
}
@media screen and (max-width: 1024px) {
  .profile__inner {
    flex-wrap: wrap;
    padding: 0;
  }
}
@media screen and (max-width: 767px) {
  .profile__inner {
    padding: 0 10px;
  }
}
.profile__inner .data_left {
  width: 60%;
  padding: 0 30px 0 0;
  border-right: 1px solid #ddd;
}
@media screen and (max-width: 1024px) {
  .profile__inner .data_left {
    width: 100%;
    padding: 0;
    border-right: 0;
  }
}
.profile__inner .data_right {
  flex: 1;
  margin-top: -10px;
  padding: 0 0 0 30px;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 1024px) {
  .profile__inner .data_right {
    margin-top: 20px;
    padding: 0;
  }
}
@media screen and (max-width: 767px) {
  .profile__inner .data_right {
    margin: 0;
    padding: 0;
    flex-direction: column;
  }
}
.profile video {
  width: 100%;
  margin: 20px 0 0;
}
.profile .shop-type {
  display: inline-block;
  margin: 0 0 10px;
  padding: 10px 20px;
  background-color: #fe804d;
  border-radius: 100vh;
  color: white;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .profile .shop-type {
    margin: 0 0 5px;
    padding: 10px 10px;
    font-size: 1.3rem;
  }
}
.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 img.tabako {
  display: inline-block;
  width: 40px;
  margin-left: 10px;
  vertical-align: bottom;
}
@media screen and (max-width: 767px) {
  .profile .name img.tabako {
    width: 30px;
  }
}
.profile .name .comment {
  padding: 10px 0;
  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 10px;
}
@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 .shimei {
  max-width: 300px;
  width: 95%;
  margin: 15px 0;
}
@media screen and (max-width: 767px) {
  .profile .shimei {
    margin: 5px 0;
  }
}
.profile .massage {
  order: 2;
  padding: 20px 0 40px;
  font: 300 1.3rem/1.8 "LINE Seed JP", serif;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .profile .massage {
    order: 1;
  }
}
.profile .massage strong {
  font-weight: bold;
}
.profile .diary {
  margin: 0 0 10px;
  font-family: "LINE Seed JP", serif;
}
.profile .profile_review {
  padding: 0 0 25px;
  order: 1;
}
@media screen and (max-width: 767px) {
  .profile .profile_review {
    order: 2;
  }
}
.profile .profile_review h5 {
  font-size: 2rem;
  font-weight: bold;
}
.profile .profile_review .inner {
  overflow-y: auto;
  height: auto;
  min-height: 20px;
  max-height: 670px;
  margin: 0 0 10px;
  font-family: "LINE Seed JP", serif;
}
.profile .profile_review .title {
  padding: 30px 0 10px;
  border-bottom: 1px solid black;
  font-size: 1.5rem;
  font-family: "LINE Seed JP", sans-serif;
}
.profile .profile_review .allscore {
  padding: 20px 0 15px;
  color: #f7a52a;
  font-size: 2rem;
  font-weight: 300;
}
.profile .profile_review .score {
  padding: 5px;
  background-color: white;
  border-radius: 4px;
  font-size: 1.4rem;
  font-weight: 500;
}
.profile .profile_review .comment {
  margin: 20px 0 0;
  font-size: 1.3rem;
  line-height: 1.6;
}
.profile .profile_review .comment span[style*="#EE82EE"],
.profile .profile_review .comment span[style*="#DDA0DD"] {
  color: #fe804d !important;
  font-weight: bold;
}
.profile .profile_review .reply {
  margin: 20px 0 0;
  padding: 15px;
  background-color: white;
  border-radius: 4px;
  font-size: 1.3rem;
  line-height: 1.6;
}
.profile .profile_review .reply span {
  display: block;
  font-size: 1.8rem;
  font-weight: bold;
}
.profile .profile_review .btn {
  width: 250px;
  margin: auto;
}

/*
プロフィールインタビュー
================================*/
.profile_interview {
  width: 100%;
  margin: 0 0 20px;
  padding-top: 40px;
  font-family: "LINE Seed JP", 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: 400 1.4rem/1 "LINE Seed JP", serif;
  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;
  margin-right: 4px;
  color: #d2b359;
}
.profile_interview .row dd {
  font: 300 1.4rem/1 "LINE Seed JP", serif;
  flex: 1;
  padding: 10px 15px 10px;
  line-height: 1.5;
}

/*
プロフィールオプション
================================*/
.profile_option {
  margin: 15px 0 0;
}
@media screen and (max-width: 767px) {
  .profile_option {
    margin: 0;
    padding: 20px 10px 30px;
  }
}
.profile_option ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0 -1px -1px 0;
}
@media screen and (max-width: 767px) {
  .profile_option ul {
    border-left: 0;
  }
}
.profile_option li {
  flex: 0 0 calc(33.3333333333% - 1px);
  padding: 10px 0;
  border: 1px solid #fe510d;
  font-family: "LINE Seed JP", serif;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  box-sizing: border-box;
  margin-right: -1px;
  margin-bottom: -1px;
}
@media screen and (max-width: 767px) {
  .profile_option li {
    flex: 0 0 calc(50% - 1px);
  }
  .profile_option li:nth-child(2n) {
    margin-right: -1px;
  }
}
.profile_option li:nth-child(n+4) {
  border-top: 1px solid #fe510d;
}
.profile_option .on {
  background-color: #fe804d;
  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;
}
@media screen and (max-width: 1024px) {
  .profile__week {
    padding: 0;
  }
}
@media screen and (max-width: 767px) {
  .profile__week {
    padding: 10px 0 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-color: white;
    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: white;
    display: inline-block;
    position: absolute;
    z-index: 3;
    top: 120vw;
    bottom: auto;
    left: 10px;
    font-size: 12px;
    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: 600px;
    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 .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;
  }
}
/*
週間出勤
================================*/
.weekley {
  width: 100%;
  margin: auto;
  padding: 50px 0 25px;
}
@media screen and (max-width: 1024px) {
  .weekley {
    padding: 20px 0;
  }
}
@media screen and (max-width: 767px) {
  .weekley {
    width: 900px;
  }
}
.weekley dl {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
.weekley dt {
  width: 14.2857142857%;
  position: relative;
  letter-spacing: 0.1rem;
  text-indent: 0.1rem;
}
.weekley dt + dt {
  border-left: 1px solid #ddd;
}
.weekley a {
  display: block;
  padding: 10px 0 5px 0;
  color: #000;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
}
.weekley div {
  display: block;
  padding: 10px 0 5px 0;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
}
.weekley p {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .weekley p {
    font-size: 1.6rem;
  }
}
.weekley .time {
  padding: 20px 0;
  border-top: 1px solid #ddd;
  font-size: 1.8rem;
  font-weight: 500;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .weekley .time {
    padding: 10px 0;
    font-size: 1.4rem;
  }
  .weekley .time span {
    display: block;
    margin: auto;
    writing-mode: vertical-rl;
  }
}
.weekley .current {
  background-color: #ffa9ad;
}
.weekley .month {
  vertical-align: top;
  position: relative;
  top: -0.3em;
  font-size: 1.2rem;
}
.weekley .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) {
  .weekley .dotw-l {
    padding: 3px 0;
  }
}
.weekley .dotw {
  margin-top: 5px;
  padding: 3px;
  font-size: 1.1rem;
}

/*------------------ 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;
  }
}
/*===============================

ホテルマップ

================================*/
.hotel {
  padding: 150px 0 200px 82px;
}
@media screen and (max-width: 1024px) {
  .hotel {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .hotel {
    padding: 50px 0;
  }
}
.hotel .__area {
  max-width: 1600px;
  margin: auto;
  padding: 75px 0 0;
}
@media screen and (max-width: 767px) {
  .hotel .__area {
    padding: 20px 0 0;
  }
}
.hotel .__area ul {
  display: flex;
  flex-wrap: wrap;
  padding: 10px;
}
@media screen and (max-width: 1024px) {
  .hotel .__area ul {
    padding: 0;
  }
}
@media screen and (max-width: 767px) {
  .hotel .__area ul {
    padding: 10px 10px 0;
  }
}
.hotel .__area li {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 16.6666666667%;
}
@media screen and (max-width: 1024px) {
  .hotel .__area li {
    width: 33.3333333333%;
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 767px) {
  .hotel .__area li {
    width: 50%;
    font-size: 1.2rem;
  }
}
.hotel .__area li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 25px 0px;
  background-color: #c83a00;
  border: solid 1px #f6f6f6;
  font-size: 1.4rem;
  font-weight: bold;
  color: white;
  font-family: "Noto Sans JP", sans-serif;
  text-decoration: none;
  text-align: center;
  transition: background-color 0.5s, color 0.5s;
}
@media screen and (max-width: 767px) {
  .hotel .__area li a {
    padding: 15px 0px;
    font-size: 1.2rem;
  }
}
.hotel .__area li a:hover {
  background-color: #fe804d;
  color: white;
}
.hotel .__area li a.active {
  background-color: white;
  color: #433b3a;
}
.hotel .__area li a.active:hover {
  background-color: #fe804d;
  color: white;
}
.hotel .googlemap {
  max-width: 1580px;
  margin: auto;
  padding: 50px 0 0;
}
@media screen and (max-width: 1024px) {
  .hotel .googlemap {
    padding: 20px 0 0;
  }
}
@media screen and (max-width: 767px) {
  .hotel .googlemap {
    padding: 30px 10px 10px;
  }
}
.hotel .googlemap .__title {
  margin: 0 0 25px;
  padding: 20px 0;
  color: white;
  font-size: 1.8rem;
  font-weight: bold;
  border: 3px solid #d2b359;
  background-color: #fe804d;
  border-radius: 5px;
  box-shadow: 0 0 2px 2px white;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .hotel .googlemap .__title {
    margin: 0 0 15px;
    padding: 15px 10px;
    font-size: 1.6rem;
  }
}

.hotellist_area {
  max-width: 1580px;
  margin: auto;
  padding: 20px 0;
  background: lightgray;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
  text-align: center;
}

.hotellist_inner {
  max-width: 1580px;
  overflow-y: hidden;
  overflow-x: auto;
  margin: auto;
  font-family: "Noto Sans JP", sans-serif;
}

.hotellist {
  min-height: 130px;
}
.hotellist .hotel-name {
  width: 30%;
}
@media screen and (max-width: 767px) {
  .hotellist .hotel-name {
    width: 24%;
  }
}
.hotellist .hotel-address {
  width: 35%;
}
@media screen and (max-width: 767px) {
  .hotellist .hotel-address {
    width: 30%;
  }
}
.hotellist .hotel-tel {
  width: 10%;
}
@media screen and (max-width: 767px) {
  .hotellist .hotel-tel {
    width: 16%;
    text-align: center;
  }
}
.hotellist .hotel-other {
  width: 25%;
}
@media screen and (max-width: 767px) {
  .hotellist .hotel-other {
    width: 20%;
  }
}

.hotellist table.pt01 {
  width: 100%;
  font-size: 1.5rem;
}
@media screen and (max-width: 767px) {
  .hotellist table.pt01 {
    width: 800px;
    font-size: 1.3rem;
  }
}

.hotellist table {
  max-width: 1580px;
  margin: auto;
  font-size: 1.5rem;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .hotellist table {
    font-size: 1.3rem;
  }
}

.hotellist th {
  background: #ffccac;
  padding: 15px;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .hotellist th {
    padding: 10px 5px;
  }
}

.hotellist td {
  background-color: white;
  padding: 15px;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .hotellist td {
    padding: 10px 5px;
  }
}

.hotellist td.check {
  background-color: #433b3a;
  color: white;
  font-weight: bold;
  text-align: center;
}

.hotellist a {
  color: #433b3a;
}

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

メルマガ登録

================================*/
.mailmagazine {
  padding: 150px 0 50px 82px;
}
@media screen and (max-width: 1024px) {
  .mailmagazine {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .mailmagazine {
    padding: 50px 0px;
  }
}
.mailmagazine h3 {
  position: relative;
  display: inline-block;
  margin: 40px 0 20px;
  padding: 0 45px;
  font-size: 2.5rem;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .mailmagazine h3 {
    margin: 30px 0 20px;
    font-size: 2rem;
  }
}
.mailmagazine h3:before,
.mailmagazine h3:after {
  content: "";
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 44px;
  height: 2px;
  background-color: #433b3a;
  -webkit-transform: rotate(-60deg);
  transform: rotate(-60deg);
}
@media screen and (max-width: 767px) {
  .mailmagazine h3:before,
.mailmagazine h3:after {
    width: 33px;
  }
}
.mailmagazine h3:before {
  left: 0;
}
.mailmagazine h3:after {
  right: 0;
}
.mailmagazine .__text-01 {
  padding: 50px 0 25px;
  color: #fe804d;
  font-size: 3.5rem;
  text-align: center;
  line-height: 1.5;
}
@media screen and (max-width: 1024px) {
  .mailmagazine .__text-01 {
    padding: 30px 10px 25px;
    color: #fe804d;
    font-size: 2rem;
  }
}
.mailmagazine .__text-02,
.mailmagazine .__text-04 {
  padding: 0 0 75px;
  font-size: 1.6rem;
  text-align: center;
  line-height: 2;
}
@media screen and (max-width: 1024px) {
  .mailmagazine .__text-02,
.mailmagazine .__text-04 {
    padding: 0 10px 25px;
    font-size: 1.2rem;
    text-align: center;
    line-height: 1.8;
  }
}
.mailmagazine .__text-03 {
  max-width: 600px;
  margin: auto;
  padding: 50px 0;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .mailmagazine .__text-03 {
    padding: 20px 0;
  }
}
.mailmagazine .__image {
  height: 500px;
  background: url("../images/bg_mailmagazine.jpg") center center;
  background-size: 100%;
}
@media screen and (max-width: 1024px) {
  .mailmagazine .__image {
    height: 200px;
    background-size: cover;
  }
}
.mailmagazine .__form {
  max-width: 640px;
  margin: auto;
  margin-bottom: 200px;
  padding: 50px;
  background-color: white;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .mailmagazine .__form {
    width: 95%;
    padding: 15px;
    margin-bottom: 0px;
    text-align: left;
    line-height: 2;
  }
}

.google-form {
  width: 100%;
  max-width: 640px;
  margin: 50px auto 0;
  border: 0;
  display: block;
  height: 700px;
}

@media screen and (max-width: 1024px) {
  .google-form {
    height: 720px;
  }
}
/*===============================

料金システム

================================*/
.system {
  position: relative;
  overflow: hidden;
  padding: 150px 0 200px 82px;
}
.system::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../images/system-bg.jpg") center center no-repeat;
  background-size: cover;
  filter: blur(5px);
  z-index: -1;
}
@media screen and (max-width: 1024px) {
  .system {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .system {
    padding: 50px 0;
  }
}
.system__shop {
  max-width: 1600px;
  margin: auto;
  padding: 100px 0 75px;
}
@media screen and (max-width: 1024px) {
  .system__shop {
    padding: 50px 0px 20px;
  }
}
.system__shop ul {
  display: flex;
  flex-wrap: wrap;
}
.system__shop li {
  width: 33.3333333333%;
}
@media screen and (max-width: 1024px) {
  .system__shop li {
    width: 100%;
    margin: 0 0 10px;
  }
}
.system .price {
  width: 95%;
  max-width: 1600px;
  margin: 50px auto 0;
}
@media screen and (max-width: 1024px) {
  .system .price {
    margin: 20px auto 0;
  }
}
.system .option {
  width: 95%;
  max-width: 1600px;
  margin: 50px auto 0;
  padding: 30px;
  background: #fff;
}
.system .option dl {
  display: flex;
  flex-wrap: wrap;
}
.system .option dt {
  width: 20%;
  margin: 10px 5px;
  background: #2d83c0;
  padding: 20px 0;
  color: #fff;
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
}
.system .option dd {
  width: 11.8%;
  margin: 10px 5px;
  border: 1px solid #2d83c0;
  padding: 20px 0;
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
}
.system .option small {
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .system .option {
    margin: 10px auto 0;
    padding: 20px;
  }
  .system .option dl {
    display: flex;
    flex-wrap: wrap;
  }
  .system .option dt {
    width: 48%;
    margin: 2px;
    background: #2d83c0;
    padding: 15px 0;
    color: #fff;
    font-size: 1.7rem;
    font-weight: bold;
    text-align: center;
  }
  .system .option dd {
    width: 48%;
    margin: 2px;
    border: 1px solid #2d83c0;
    padding: 15px 0;
    font-size: 2rem;
    font-weight: bold;
    text-align: center;
  }
}
.system .basic {
  width: 95%;
  max-width: 1600px;
  margin: 50px auto 0;
  padding: 30px;
  background: #fff;
}
.system .basic dl {
  display: flex;
  flex-wrap: wrap;
}
.system .basic dt {
  width: 25%;
  background: #2d83c0;
  padding: 30px 0;
  color: #fff;
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
  border: 10px solid #fff;
  box-sizing: border-box;
}
@media screen and (max-width: 767px) {
  .system .basic {
    margin: 10px auto 0;
    padding: 20px;
  }
  .system .basic dl {
    display: flex;
    flex-wrap: wrap;
  }
  .system .basic dt {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32%;
    margin: 2px;
    background: #2d83c0;
    padding: 12px 0;
    border: 0px solid #fff;
    color: #fff;
    font-size: 1.6rem;
    font-weight: bold;
    text-align: center;
  }
}
.system .card {
  position: relative;
  top: 150px;
  padding: 150px 0;
}
@media screen and (max-width: 1024px) {
  .system .card {
    top: 100px;
    padding: 100px 10px 100px;
  }
}
.system .card ::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: white;
  transform: skewY(-5deg);
  z-index: -1;
}
.system .card h2 {
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  text-align: center;
  line-height: 1.5;
}
.system .card h2 span {
  display: block;
  font-size: 1.2rem;
}
.system .card h3 {
  position: relative;
  width: 50%;
  padding: 0.9em;
  background: rgba(0, 0, 0, 0.8);
  color: white;
}
@media screen and (max-width: 1024px) {
  .system .card h3 {
    width: 100%;
  }
}
.system .card h3:after {
  position: absolute;
  content: "";
  top: 100%;
  left: 30px;
  border: 15px solid transparent;
  border-top: 15px solid rgba(0, 0, 0, 0.8);
  width: 0;
  height: 0;
}
.system .card dl {
  display: flex;
  flex-wrap: wrap;
  max-width: 1100px;
  margin: auto;
  padding: 50px 0 0;
}
@media screen and (max-width: 767px) {
  .system .card dl {
    padding: 20px 0 0;
  }
}
.system .card dd {
  width: 50%;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 1024px) {
  .system .card dd {
    width: 100%;
    padding: 0 0 25px;
  }
}
.system .card dd p {
  padding: 30px 0 0;
  font-weight: bold;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .system .card dd p {
    font-size: 1.5rem;
  }
}
.system .card table {
  margin: 20px 0 0;
  text-align: left;
  line-height: 2;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .system .card table {
    font-size: 1.4rem;
    line-height: 1.4;
  }
}
.system .card table span {
  color: red;
  font-size: 2.2rem;
}
@media screen and (max-width: 767px) {
  .system .card table span {
    font-size: 2rem;
  }
}
.system .card table td {
  color: orange;
}
.system .card .icon {
  width: 300px;
  margin: auto;
  padding: 25px 0;
}
.system .card .text {
  padding: 0 0 25px;
  font-size: 1.4rem;
  text-align: center;
  line-height: 1.5;
}
.system .card .image {
  max-width: 500px;
  margin: 25px auto 0;
}
.system .area {
  position: relative;
  padding: 150px 0;
}
@media screen and (max-width: 1024px) {
  .system .area {
    padding: 50px 10px 100px;
  }
}
.system .area ::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: url("../images/bg_area.jpg") bottom center;
  background-size: 100%;
  z-index: -1;
}
.system .area h2 {
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  text-align: center;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .system .area h2 {
    padding: 50px 0 0;
  }
}
.system .area h2 span {
  display: block;
  font-size: 1.2rem;
}
.system .area table {
  width: 1110px;
  margin: auto;
  margin-top: 50px;
  font-size: 1.4rem;
}
@media screen and (max-width: 1024px) {
  .system .area table {
    width: 100%;
    margin-top: 25px;
    font-size: 1.2rem;
  }
}
.system .area th {
  padding: 20px;
  background-color: #fe804d;
  color: white;
}
@media screen and (max-width: 1024px) {
  .system .area th {
    padding: 20px 0;
  }
}
.system .area td {
  min-width: 200px;
  padding: 40px 20px;
  background-color: white;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .system .area td {
    min-width: 120px;
    padding: 20px 10px;
    line-height: 1.5;
  }
}
.system .area td span {
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  .system .area td span {
    font-size: 1rem;
  }
}
.system .area dl {
  width: 95%;
  max-width: 1600px;
  margin: 50px auto;
  padding: 40px;
  background: #fff;
  display: flex;
  flex-wrap: wrap;
}
.system .area dt {
  width: 100%;
  margin: 10px 0;
  background: #2d83c0;
  padding: 20px 0;
  color: #fff;
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
}
.system .area dd {
  width: 100%;
  margin-bottom: 10px;
  border: 1px solid #2d83c0;
  padding: 20px 0;
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
}
.system .area h3 {
  min-width: 300px;
  position: relative;
  display: inline-block;
  padding: 2rem 2rem 2rem 4rem;
  color: #ff0;
  border-radius: 100vh 0 0 100vh;
  background: #ff5273;
}
.system .area h3::before {
  position: absolute;
  top: calc(50% - 7px);
  left: 20px;
  width: 14px;
  height: 14px;
  content: "";
  border-radius: 50%;
  background: #fff;
  z-index: 9999;
}
.system .area .text {
  width: 600px;
  margin: auto;
  padding-bottom: 15px;
}
@media screen and (max-width: 768px) {
  .system .area {
    padding: 20px;
  }
  .system .area dl {
    padding: 20px;
  }
  .system .area dt {
    width: 100%;
    margin: 5px 0;
    background: #2d83c0;
    padding: 15px 0;
    color: #fff;
    font-size: 2rem;
    font-weight: bold;
    text-align: center;
  }
  .system .area dd {
    width: 100%;
    margin-bottom: 10px;
    border: 1px solid #2d83c0;
    padding: 15px 10px;
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    line-height: 1.5;
  }
}
@media screen and (max-width: 599px) {
  .system .area h3 {
    min-width: 190px;
    padding: 1.5rem 2rem 1.5rem 4rem;
    font-size: 2rem;
  }
  .system .area .text {
    width: 100%;
    font-size: 2rem;
  }
}
.system .flow {
  padding: 150px 0 0;
}
@media screen and (max-width: 1024px) {
  .system .flow {
    padding: 50px 10px 0;
  }
}
.system .flow h2 {
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  text-align: center;
  line-height: 1.5;
}
.system .flow h2 span {
  display: block;
  font-size: 1.2rem;
}
.system .flow h4 {
  padding: 10px;
  background-color: #433b3a;
  border-radius: 100vh;
  color: white;
  font-weight: normal;
  font-size: 1.8rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .system .flow h4 {
    font-size: 1.4rem;
  }
}
.system .flow .__inner {
  max-width: 1100px;
  margin: auto;
  margin-top: 50px;
  padding: 50px 50px 30px;
  border: 1px solid gray;
  background-color: white;
  font-size: 1.4rem;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .system .flow .__inner {
    padding: 20px 20px 0;
    font-size: 1.2rem;
  }
}
.system .flow .__inner p {
  padding: 20px 0;
}
.system .flow .__inner span {
  color: red;
  font-weight: 700;
}

.cute-title {
  text-align: center;
  margin: 5em auto 2em;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .cute-title {
    margin: 3em auto 1em;
  }
}
.cute-title .main {
  display: inline-block;
  background-color: #ff5273;
  color: #fff;
  padding: 0.6em 2.5em;
  font-size: 2rem;
  border-radius: 999px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  position: relative;
}
.cute-title .main::before, .cute-title .main::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 10px;
  height: 10px;
  background-color: #ff5273;
  border-radius: 50%;
  transform: translateY(-50%);
}
.cute-title .main::before {
  left: -15px;
}
.cute-title .main::after {
  right: -15px;
}
@media screen and (max-width: 767px) {
  .cute-title .main {
    font-size: 1.8rem;
    padding: 0.8em 1.8em;
  }
}
.cute-title .sub {
  margin-top: 0.8em;
  font-size: 1.2rem;
  color: #fe804d;
  letter-spacing: 0.1em;
  display: block;
  position: relative;
}
.cute-title .sub::before, .cute-title .sub::after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 1px;
  background-color: #ff5273;
  vertical-align: middle;
  margin: 0 10px;
}
.cute-title .sub::before {
  margin-left: 0;
}
.cute-title .sub::after {
  margin-right: 0;
}

.suggestionbox {
  max-width: 640px;
  margin: 0 auto 100px;
}
@media screen and (max-width: 767px) {
  .suggestionbox {
    width: 95%;
    margin: 0 auto 50px;
  }
}

.mdafterpay {
  text-align: center;
  padding: 40px 0;
  background-color: white;
  font-family: "Noto Sans JP", sans-serif;
}

@media screen and (max-width: 767px) {
  .mdafterpay {
    padding: 0px;
  }
}
.mdafterpay__title {
  display: inline-block;
  background: linear-gradient(135deg, #2c5aa0, #1e3a6f);
  font-weight: bold;
  width: 640px;
  padding: 30px 0;
  margin-bottom: 80px;
  color: white;
  border-radius: 15px;
  box-shadow: 0 5px 20px rgba(44, 90, 160, 0.3);
  line-height: 1.4;
}

@media screen and (max-width: 767px) {
  .mdafterpay__title {
    width: 95%;
    margin-bottom: 40px;
  }
}
.mdafterpay__title span {
  display: block;
  font-size: 1.4rem;
  color: white !important;
}

.mdafterpay__wrapper {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 50px;
  flex-wrap: nowrap;
  margin: 0 auto;
  max-width: 1100px;
}

@media screen and (min-width: 1025px) {
  .mdafterpay__wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 50px;
    justify-items: center;
    align-items: start;
  }
}
@media screen and (max-width: 767px) {
  .mdafterpay__wrapper {
    flex-direction: column;
    align-items: center;
    gap: 25px;
    max-width: 100%;
  }
}
.mdafterpay__btn {
  position: relative;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  color: #546eae;
  font-size: 20px;
  border-radius: 5px;
  width: 100%;
  max-width: 450px;
  margin: 0 auto;
  height: 80px;
  font-weight: bold;
  border: 1px solid #546eae;
  transition: 0.3s;
  background-color: #ffffff;
  /* 🔹中央寄せ */
  margin: 0 auto;
  /* 中の <p> を中央で1行扱いに */
}

.mdafterpay__btn p {
  margin: 0;
  white-space: nowrap;
}

.mdafterpay__btn:hover {
  background-color: #f8faff;
}

@media screen and (max-width: 767px) {
  .mdafterpay__btn {
    width: 95%;
    font-size: 18px;
  }
}
.mdafterpay__btn:focus-visible {
  outline: 3px solid rgba(84, 110, 174, 0.35);
  outline-offset: 2px;
}

.mdafterpay__badge {
  position: absolute;
  top: -10px;
  left: 0;
  transform: translate(-5px, -30%);
  padding: 6px 15px 8px;
  border-radius: 100vh;
  background: #546eae;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
  z-index: 2;
  transition: transform 0.3s;
}

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

.mdafterpay__badge span {
  color: white !important;
}

.mdafterpay__banner {
  border: 5px solid #4b6eb3;
  border-radius: 8px;
  overflow: hidden;
  max-width: 480px;
  margin-bottom: 40px;
}

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

@media screen and (max-width: 767px) {
  .mdafterpay__banner {
    width: 85%;
  }
}
@media screen and (min-width: 1025px) {
  .mdafterpay__wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 50px;
    justify-items: center;
    align-items: start;
    max-width: 1100px;
    margin: 0 auto;
  }
  .mdafterpay .mda-btn--flow {
    grid-column: 1/2;
    grid-row: 1;
  }
  .mdafterpay .mda-banner--blue {
    grid-column: 1/2;
    grid-row: 2;
  }
  .mdafterpay .mda-btn--apply {
    grid-column: 2/3;
    grid-row: 1;
  }
  .mdafterpay .mda-banner--white {
    grid-column: 1/-1;
    grid-row: 2;
    justify-self: center;
    width: 100%;
    max-width: 480px;
  }
}
.mdpay-section {
  text-align: center;
  margin-top: 40px;
}

.mdpay-notice {
  display: inline-block;
  border-radius: 14px;
  padding: 25px;
  margin: 0 auto 20px;
  max-width: 680px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
}

.mdpay-notice__label {
  margin: 0 0 8px;
  font-weight: 600;
  opacity: 0.9;
  font-size: 1.6rem;
}

.mdpay-notice__pill {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  margin-right: 8px;
  font-size: 1.2rem;
}

.mdpay-notice__main {
  font-size: 1.8rem;
  font-weight: 700;
  margin: 4px 0 6px;
}

.mdpay-notice__sub {
  font-size: 1.4rem;
  color: #333;
}

.mdpay-notice__warn {
  color: #f00;
  font-weight: 700;
  display: inline-block;
  margin: 6px 0;
  font-size: 1.8rem;
}

.mdpay-notice--brand {
  background: #eef3ff;
  border: 2px solid #1e3a6f;
}

.mdpay-notice--brand .mdpay-notice__label {
  color: #1e3a6f;
}

.mdpay-notice--brand .mdpay-notice__pill {
  background: #1e3a6f;
  color: #ff0;
}

.mdpay-notice--brand .mdpay-notice__main {
  color: #1e3a6f;
}

.mdpay-notice--danger {
  background: #fff3f3;
  border: 2px solid #d32f2f;
}

.mdpay-notice--danger .mdpay-notice__label {
  color: #d32f2f;
}

.mdpay-notice--danger .mdpay-notice__pill {
  background: #d32f2f;
  color: #fff;
}

.mdpay-notice--danger .mdpay-notice__main {
  color: #d32f2f;
}

@media screen and (max-width: 767px) {
  .mdpay-notice {
    width: 95%;
    margin: auto 0 20px;
    padding: 16px 18px;
    border-radius: 12px;
  }
  .mdpay-notice__main {
    font-size: 1.6rem;
  }
  .mdpay-notice__sub {
    font-size: 1.3rem;
  }
}
/*===============================

キャスト

================================*/
.costume {
  position: relative;
  margin: 150px 0;
  padding-left: 82px;
}
@media screen and (max-width: 1024px) {
  .costume {
    margin: 0;
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .costume {
    margin: 50px 0 80px;
    padding: 10px 0;
  }
}
.costume ul {
  display: flex;
  flex-wrap: wrap;
  width: 85%;
  margin: auto;
  padding: 100px 0 0;
}
@media screen and (max-width: 1024px) {
  .costume ul {
    width: 100%;
    padding: 0 5px;
  }
}
.costume li {
  display: flex;
  width: 16.6666666667%;
  margin-top: 10px;
}
@media screen and (max-width: 1024px) {
  .costume li {
    width: 33.3333333333%;
  }
}
@media screen and (max-width: 767px) {
  .costume li {
    width: 50%;
    margin-top: 0px;
  }
}
.costume figure {
  flex-grow: 1;
  margin: 15px;
  color: white;
  background-color: #433b3a;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .costume figure {
    margin: 10px 5px;
    padding: 0 0 10px;
  }
}
.costume span {
  display: block;
  padding: 15px 0;
}

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

スタッフブログ

================================*/
.blog {
  padding: 150px 0 150px 82px;
}
@media screen and (max-width: 1024px) {
  .blog {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 767px) {
  .blog {
    padding: 50px 0 0;
  }
}
.blog h2 {
  margin: 0 0 50px;
  padding: 0 0 20px;
  border-bottom: 1px solid #ddd;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .blog h2 {
    margin: 0 0 20px;
    padding: 20px 0 20px;
  }
}
.blog h3 {
  background-color: #fe804d;
  margin: 50px 0 25px;
  padding: 10px 15px;
  color: white;
  font-size: 1.8rem;
}
@media screen and (max-width: 767px) {
  .blog h3 {
    margin: 25px 0;
    padding: 10px;
  }
}
.blog h4 {
  padding: 0px 10px 5px;
  color: #fe804d;
  font-size: 1.8rem;
  border-left: 5px solid #fe804d;
  border-bottom: 1px solid #fe804d;
}
@media screen and (max-width: 767px) {
  .blog h4 {
    padding: 5px 0px 5px 10px;
  }
}
.blog ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1600px;
  margin: auto;
  padding: 50px 0 0;
}
@media screen and (max-width: 767px) {
  .blog ul {
    padding: 0 10px;
  }
}
.blog .left {
  flex: 1;
  padding: 0 50px 0;
}
.blog .right {
  width: 100%;
  max-width: 400px;
}
.blog__article {
  margin: 0 0 50px;
}
.blog__image {
  display: flex;
  justify-content: center;
  margin: auto;
}
.blog__image img {
  width: auto;
  max-width: 640px;
}
.blog__image-sub {
  max-width: 500px;
  margin: auto;
}
.blog__comment {
  margin: 50px 0 0;
  padding: 40px;
  background-color: white;
  border-radius: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 300;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .blog__comment {
    margin: 20px 0 0;
    padding: 20px;
    font-size: 1.3rem;
    line-height: 1.7;
  }
}
.blog__line {
  max-width: 900px;
  margin: auto;
  padding: 70px 0 100px 0;
}
@media screen and (max-width: 767px) {
  .blog__line {
    padding: 20px 0;
  }
}
.blog__title {
  font-weight: bold;
  font-size: 2rem;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .blog__title {
    font-size: 1.8rem;
  }
}
.blog__days {
  padding: 15px 0;
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  .blog__days {
    padding: 5px 0 10px;
    font-size: 1.2rem;
  }
}

.blog__list {
  background-color: white;
  padding: 10px;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 767px) {
  .blog__list {
    padding: 10px;
  }
}
@media screen and (max-width: 767px) {
  .blog__list {
    padding: 10px;
  }
}
.blog__list .blog__article-sub {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 5px;
  padding: 0 0 5px;
  border-bottom: 1px solid #eee;
}
.blog__list .blog__article-sub:last-child {
  margin: 0;
  padding: 0;
  border-bottom: 0;
}
.blog__list .blog__article-sub .thumbnail {
  width: 130px;
  height: 130px;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
}
@media screen and (max-width: 767px) {
  .blog__list .blog__article-sub .thumbnail {
    width: 100px;
    height: 100px;
    padding: 0 10px 0 0;
  }
}
.blog__list .blog__article-sub .thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.blog__list .blog__article-sub .data {
  flex: 1;
  padding: 0 0 0 10px;
}
.blog__list .blog__article-sub .data a {
  text-decoration: none;
}
.blog__list .blog__article-sub .data .day {
  padding: 5px 0 0;
  color: gray;
  font-size: 1.2rem;
  text-align: right;
}
.blog__list .blog__article-sub .data .title {
  padding: 10px 0;
  color: #fe804d;
  font-size: 2rem;
  font-weight: bold;
}
.blog__list .blog__article-sub .data .text {
  font-size: 1.4rem;
  overflow: hidden;
  display: -webkit-box;
  color: #433b3a;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  line-height: 1.5;
}

.reaction-buttons {
  display: flex;
  gap: 40px;
  justify-content: center;
  margin-top: 20px;
}

.reaction {
  display: flex;
  align-items: center;
  cursor: pointer;
  color: #999;
  transition: color 0.3s;
  font-size: 18px;
}

.reaction.active {
  color: #2b80d0;
}

.reaction i {
  font-size: 32px;
  margin-right: 10px;
}

.reaction-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.2;
}

.reaction-label {
  font-size: 15px;
  margin-bottom: 2px; /* ← 間隔を縮める */
}

.reaction-count {
  font-size: 13px;
  color: #333;
  margin: 0; /* ← デフォルト余白をリセット */
}

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