@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+1:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap");
:root {
  --ltr-space-default: 0.1em;
  --line-height-default: 2;
  --line-height-hdr: 1.4;
  --line-height-none: 1;
  --fz-primary: 1.125rem;
  --fz-half: 0.5rem;
  --clr-main: #000;
  --clr-txt-sub: #171c60;
  --clr-body: #000;
  --clr-dark-blue: #101560;
  --clr-link: #333;
  --clr-wht: #fff;
  --clr-blk: #000;
  --bg-main: #000;
  --bg-yellow: #ffdb38;
  --bg-green: #96f165;
  --bg-sky: #73e4f1;
  --bg-purple: #b899f1;
  --bg-pink: #f5aaf2;
  --bg-red: #f19f99;
  --bg-blue: #002bb0;
  --bg-dark-blue: #030030;
  --bg-wht: #fff;
  --bg-sub: #f8f4ea;
  --bg-off_wht: #f9f9f9;
  --bg-blk: #000;
  --btn-bg-main: var(--clr-main);
  --btn-bg-main-hvr: var(--bg-blue);
  --btn-clr-main: #fff;
  --btn-clr--sec: #fff;
  --btn-bg-main2: var(--bg-yellow);
  --btn-bg-main2-hvr: #f3b723;
  --btn-clr-main2: #000;
  --btn-clr-wht: #333;
  --btn-bg-wht: #fff;
  --btn-clr-wht-hvr: #fff;
  --btn-bg-wht-hvr: var(--clr-dark-blue);
  --brd-main: #1d7fb7;
  --transit-default: all 0.4s ease-out;
}

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

共通

================================*/
@media screen and (max-width: 820px) {
  .pc {
    display: none !important;
  }
}
@media screen and (min-width: 1200px) {
  .sp {
    display: none !important;
  }
}
.br_sp {
  display: none;
}
@media screen and (max-width: 820px) {
  .br_sp {
    display: block;
  }
}

.br_pc {
  display: block;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  html {
    scroll-padding-top: 80px;
  }
}

body {
  overflow-x: hidden;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
  background-color: white;
  color: #212529;
  font-family: "M PLUS 1", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.6rem;
  background-image: url(../images/bg.jpg);
  background-attachment: scroll;
  background-size: 100%;
  background-position: center top;
}
@media screen and (max-width: 820px) {
  body {
    background-position: center bottom;
  }
}

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

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

.header {
  position: relative;
  background-color: white;
  background-image: url(../images/header_bg.jpg);
  background-size: cover;
  background-position: right top;
  background-repeat: no-repeat;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  z-index: 101;
}
@media screen and (min-width: 1921px) {
  .header {
    background-image: url(../images/header_bg-l.jpg);
  }
}
.header__title {
  text-align: center;
  font-size: 1.4rem;
  padding: 15px 0;
}
@media screen and (max-width: 820px) {
  .header__title {
    background-color: #81d8d0;
    color: white;
    font-size: 1.2rem;
    padding: 10px 0;
  }
}
.header__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: white;
  height: 80px;
  padding: 0 15px;
  z-index: 999;
  width: 100%;
  position: relative;
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform: none;
  opacity: 1;
}
@media screen and (min-width: 1200px) {
  .header__bar {
    display: none;
  }
}
.header__bar.fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  transform: translateY(0);
  opacity: 1;
  animation: slideIn 0.3s ease forwards;
}
.header__bar .header__left,
.header__bar .header__right {
  display: flex;
  align-items: center;
  gap: 10px;
}
.header__bar .header__center {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}
.header__line-icon, .header__tel-icon {
  width: 50px;
  height: 50px;
}
.header__line-icon img, .header__tel-icon img {
  width: 100%;
  height: auto;
  display: block;
}
.header .menu-toggle {
  width: 50px;
  height: 50px;
}
.header__logo {
  display: inline-block;
  padding: 0 10px;
}
.header__logo img {
  display: block;
  width: 400px;
  height: auto;
}
@media screen and (max-width: 820px) {
  .header__logo img {
    position: absolute;
    width: 80px;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
  }
}
.header__shopname {
  padding: 20px 0 0;
  font-size: 2rem;
  font-weight: bold;
}
.header__concept {
  margin-top: 30px;
  background-color: #81d8d0;
  border-radius: 100vh;
  padding: 15px 40px;
  color: white;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
}
.header__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 60px 0;
}
@media screen and (max-width: 820px) {
  .header__main {
    display: none;
  }
}
.header__tel {
  font-size: 4.5rem;
  font-family: "Jost", sans-serif;
  color: #212529;
  margin-top: 20px;
}
.header__time {
  font-size: 2.5rem;
  color: #212529;
  margin-top: 0.5rem;
  font-weight: 500;
  text-align: center;
  line-height: 1.3;
}
.header__time span {
  font-size: 1.6rem;
}

.footer {
  margin: 100px 0 0;
  padding: 25px 0;
  background-color: #37beb0;
  color: white;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .footer {
    margin: 0;
    padding: 15px 0;
    font-size: 1.3rem;
    letter-spacing: 0em;
  }
}

.main-nav {
  background-color: #81d8d0;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.main-nav__list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}
.main-nav__item {
  border-right: 1px solid #dcf6f2;
}
.main-nav__item:last-child {
  border-right: none;
}
.main-nav__item a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 80px;
  padding: 0 20px;
  text-decoration: none;
  color: white;
  font-size: 2rem;
  font-weight: bold;
  transition: background-color 0.4s ease, color 0.4s ease;
}
.main-nav__item a span {
  color: #20908a;
  font-size: 1.4rem;
  margin-top: 2px;
}
.main-nav__item a:hover {
  background-color: white;
  color: #81d8d0;
}

.sticky-nav {
  background-color: white;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
  opacity: 0;
  transform: translateY(-20px);
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.sticky-nav.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.sticky-nav .sticky-inner {
  max-width: 1920px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 30px;
  height: 80px;
}
.sticky-nav__logo img {
  height: 50px;
  width: auto;
}
.sticky-nav__menu {
  display: flex;
  gap: 40px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.sticky-nav__menu li a {
  text-decoration: none;
  color: #212529;
  font-size: 1.4rem;
  transition: color 0.3s;
}
.sticky-nav__menu li a:hover {
  color: #81d8d0;
}

.slide-menu {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: 100%;
  backdrop-filter: blur(5px);
  background-color: rgba(129, 216, 208, 0.6);
  box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);
  transform: translateX(100%);
  transition: transform 0.3s ease;
  z-index: 102;
  padding: 150px 20px 20px;
}
@media screen and (max-width: 820px) {
  .slide-menu {
    z-index: 100;
  }
}
.slide-menu.open {
  transform: translateX(0);
}
.slide-menu__list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 1200px;
  margin: auto;
}
.slide-menu__list li {
  background: white;
  border-radius: 5px;
  flex: 1 1 calc((100% - 30px) / 4);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.slide-menu__list li a {
  display: block;
  padding: 20px 0px 22px;
  color: #212529;
  font-size: 2rem;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
  transition: color 0.3s;
}
@media screen and (max-width: 820px) {
  .slide-menu__list li a {
    padding: 15px 0px 17px;
    font-size: 1.6rem;
  }
}
.slide-menu__list li a:hover {
  color: #81d8d0;
}
@media screen and (max-width: 820px) {
  .slide-menu__list {
    gap: 5px;
  }
  .slide-menu__list li {
    flex: 1 1 calc((100% - 5px) / 2);
  }
  .slide-menu__list li:nth-child(3),
.slide-menu__list li:nth-child(4),
.slide-menu__list li:nth-child(7),
.slide-menu__list li:nth-child(8),
.slide-menu__list li:nth-child(11),
.slide-menu__list li:nth-child(12),
.slide-menu__list li:nth-child(15),
.slide-menu__list li:nth-child(16) {
    background-color: #fff8e9;
  }
}
.slide-menu__tel {
  font-size: 4rem;
  font-family: "Jost", sans-serif;
  color: #212529;
  margin-top: 20px;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .slide-menu__tel {
    font-size: 3rem;
  }
}
.slide-menu__time {
  font-size: 2rem;
  color: #212529;
  margin-top: 0.5rem;
  font-weight: 500;
  text-align: center;
  line-height: 1.3;
}
@media screen and (max-width: 820px) {
  .slide-menu__time {
    font-size: 1.6rem;
  }
}
.slide-menu__time span {
  font-size: 1.6rem;
}
@media screen and (max-width: 820px) {
  .slide-menu__time span {
    font-size: 1.3rem;
  }
}
.slide-menu__concept {
  max-width: 1200px;
  margin: 0 auto 20px;
  background-color: #20908a;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  border-radius: 100vh;
  padding: 20px 0;
  color: white;
  font-size: 2.2rem;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .slide-menu__concept {
    padding: 15px 0;
    font-size: 2rem;
  }
}

.menu-toggle {
  width: 50px;
  height: 50px;
  background-color: #81d8d0;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  padding: 0;
  position: relative;
}
.menu-toggle span {
  position: absolute;
  left: 50%;
  width: 24px;
  height: 2px;
  background-color: white;
  transition: 0.3s ease;
  transform: translateX(-50%);
}
.menu-toggle span:nth-child(1) {
  top: 14px;
}
.menu-toggle span:nth-child(2) {
  top: 24px;
}
.menu-toggle span:nth-child(3) {
  top: 34px;
}
.menu-toggle.open span:nth-child(1) {
  transform: translateX(-50%) rotate(45deg);
  top: 24px;
}
.menu-toggle.open span:nth-child(2) {
  opacity: 0;
}
.menu-toggle.open span:nth-child(3) {
  transform: translateX(-50%) rotate(-45deg);
  top: 24px;
}

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

.section-title {
  position: relative;
  font-weight: bold;
  font-size: 2rem;
  text-align: left;
  display: flex;
  align-items: center;
  padding-bottom: 10px;
  margin-bottom: 30px;
  background-color: #e6fffe;
  border: 1px solid #81d8d0;
}
.section-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  z-index: 1;
}
@media screen and (max-width: 820px) {
  .section-title {
    display: block;
    text-align: center;
    padding-bottom: 0;
    margin-bottom: 25px;
    background-color: transparent;
    border: 0;
  }
  .section-title::after {
    display: none;
  }
}
.section-title__en {
  padding: 10px 10px 0 10px;
  font-size: 3.5rem;
  color: #81d8d0;
  font-weight: bold;
  font-family: "Jost", sans-serif;
  margin-right: 10px;
  letter-spacing: 0.05em;
  word-spacing: 0;
  display: inline-block;
  margin-right: 0;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 820px) {
  .section-title__en {
    display: block;
    margin: 0 auto 5px;
    text-align: center;
  }
}
.section-title__en::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #81d8d0;
  z-index: 3;
}
@media screen and (max-width: 820px) {
  .section-title__en::after {
    display: none;
  }
}
.section-title__en i {
  padding-right: 5px;
}
@media screen and (max-width: 820px) {
  .section-title__en i {
    display: block;
    font-size: 3rem;
  }
}
.section-title__jp {
  font-size: 1.8rem;
  z-index: 2;
}
@media screen and (min-width: 1200px) {
  .section-title__jp {
    position: absolute;
    bottom: 10px;
    right: 10px;
  }
}
@media screen and (max-width: 820px) {
  .section-title__jp {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
  }
  .section-title__jp::before, .section-title__jp::after {
    content: "";
    display: inline-block;
    width: 30px;
    height: 1px;
    background-color: #212529;
    margin: 0 8px;
  }
}
.section-title__sub {
  margin-top: -25px;
  margin-bottom: 50px;
  padding: 15px;
  background-color: #37beb0;
  color: white;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .section-title__sub {
    margin-top: -10px;
    margin-bottom: 20px;
    border-radius: 100vh;
  }
}

.index {
  margin-bottom: -100px;
  background-color: white;
}
@media screen and (max-width: 820px) {
  .index {
    margin-bottom: 0px;
  }
}
.index h1 {
  padding: 15px 10px;
  background-color: #111;
  color: #fff;
  font-size: 1.2rem;
  text-align: center;
}
.index__image {
  position: relative;
  width: 100%;
}
@media screen and (max-width: 820px) {
  .index__image {
    display: none;
  }
}
.index__image > a img {
  width: 100%;
  height: 100vh;
  object-fit: cover;
  display: block;
}
.index__image--banner {
  position: absolute;
  left: 50%;
  bottom: 100px;
  transform: translateX(-50%);
  width: 468px;
  text-align: center;
}
.index__image--banner img {
  width: 100%;
  height: auto;
  display: block;
}
.index__text {
  padding: 50px 10px 0 10px;
  font-size: 1.6rem;
  font-weight: bold;
  text-align: center;
  line-height: 2;
}
@media screen and (max-width: 820px) {
  .index__text {
    padding: 10px;
    font-size: 1.3rem;
  }
}
.index__text a {
  color: #37beb0;
  font-weight: bold;
}
.index__link {
  display: flex;
  justify-content: center;
  margin: auto;
  padding: 50px 10px;
  gap: 10px;
}
@media screen and (max-width: 820px) {
  .index__link {
    display: block;
    padding: 20px 10px;
  }
}
.index__link img {
  max-width: 468px;
}
.index .heaven-banner {
  padding: 10px 10px 0;
}

main {
  max-width: 1480px;
  margin: auto;
  padding: 100px 0;
  background-color: white;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.05);
  border-radius: 20px;
}
@media screen and (max-width: 820px) {
  main {
    padding: 30px 0;
    border-radius: 0;
  }
}

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

パンくずリスト

================================*/
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  padding: 15px 20px;
  list-style: none;
  font-size: 1.2rem;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .breadcrumb {
    margin-top: 80px;
    padding: 0 0 0 130px;
  }
}
@media screen and (max-width: 820px) {
  .breadcrumb {
    justify-content: flex-start;
    margin: 0;
    padding: 0 15px 15px;
  }
}
.breadcrumb li:not(:last-of-type)::after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 256 512'%3E%3Cpath d='M64 448c-8.2 0-16.4-3.1-22.6-9.4-12.5-12.5-12.5-32.8 0-45.3L178.7 256 41.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-6.3 6.3-14.5 9.4-22.7 9.4z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: -1px;
}
.breadcrumb a {
  color: #212529;
  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: 820px) {
  .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: #212529;
  text-decoration: none;
}

.standby {
  padding: 20px 0 0;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .standby {
    margin: 0 45px 0 120px;
  }
}
@media screen and (max-width: 820px) {
  .standby {
    margin: 0 10px 0 0;
  }
}
.standby h2 {
  padding: 0 0 0 10px;
  font-size: 2.5rem;
  font-family: "Zen Old Mincho", serif;
}
.standby h2 span {
  font-size: 1.4rem;
}

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

タイトル

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

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

404

================================*/
.page-404 {
  padding: 200px 0;
  text-align: center;
  line-height: 3;
}
@media screen and (max-width: 820px) {
  .page-404 {
    padding: 100px 20px;
    font-size: 1.3rem;
    line-height: 2;
  }
  .page-404 h2 {
    font-size: 1.8rem;
  }
}
.page-404 ul {
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
  margin: 25px 0 0;
  padding: 0;
}
@media screen and (max-width: 820px) {
  .page-404 ul {
    gap: 10px;
  }
}
.page-404 li {
  list-style: none;
}
.page-404 a {
  display: inline-block;
  padding: 10px 50px;
  background-color: white;
  border-radius: 100vh;
  text-decoration: none;
  color: #212529;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
}
.page-404 p {
  padding: 25px 0 0;
}

.slide-babber {
  padding: 40px 20px 20px;
}
@media screen and (max-width: 820px) {
  .slide-babber {
    padding: 15px;
  }
}

.swiper-wrap {
  position: relative;
  overflow: hidden;
}
.swiper-wrap .mySwiper {
  width: 100%;
  margin-top: 20px;
  overflow: visible;
}
@media screen and (max-width: 820px) {
  .swiper-wrap .mySwiper {
    margin-top: 0px;
  }
}
.swiper-wrap .mySwiper .swiper-slide {
  position: relative;
}
.swiper-wrap .mySwiper .swiper-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  transition: opacity 0.3s ease;
  opacity: 1;
}
.swiper-wrap .mySwiper .swiper-slide.swiper-slide-active::after {
  opacity: 0;
}
@media screen and (max-width: 820px) {
  .swiper-wrap .mySwiper .swiper-slide::after {
    opacity: 0 !important;
  }
}
.swiper-wrap .mySwiper .swiper-button-prev,
.swiper-wrap .mySwiper .swiper-button-next {
  width: 40px;
  height: 40px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
}
@media screen and (max-width: 820px) {
  .swiper-wrap .mySwiper .swiper-button-prev,
.swiper-wrap .mySwiper .swiper-button-next {
    width: 20px;
    height: 40px;
    margin-top: 0px;
  }
}
.swiper-wrap .mySwiper .swiper-button-prev {
  background-image: url("../images/prev.png");
  filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.2));
  left: 15px;
}
@media screen and (max-width: 820px) {
  .swiper-wrap .mySwiper .swiper-button-prev {
    background-image: url("../images/prev-s.png");
    left: 0px;
  }
}
.swiper-wrap .mySwiper .swiper-button-next {
  background-image: url("../images/next.png");
  filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.2));
  right: 15px;
}
@media screen and (max-width: 820px) {
  .swiper-wrap .mySwiper .swiper-button-next {
    background-image: url("../images/next-s.png");
    right: 0px;
  }
}
.swiper-wrap .mySwiper .swiper-button-prev::after,
.swiper-wrap .mySwiper .swiper-button-next::after {
  display: none;
}
.swiper-wrap .swiper-pagination {
  text-align: center;
  margin-top: 5px;
  position: static;
}
.swiper-wrap .swiper-pagination-bullet {
  background-color: #81d8d0;
  opacity: 0.5;
}
.swiper-wrap .swiper-pagination-bullet-active {
  opacity: 1;
}

/* PCで3枚しかない時の“固定表示”用スタイル */
.mySwiper.is-static-desktop .swiper-wrapper {
  display: flex;
  gap: 20px;
  transform: none !important; /* Swiperのtranslateを無効化 */
}

.mySwiper.is-static-desktop .swiper-slide {
  flex: 0 0 calc((100% - 40px) / 3); /* 3枚を均等幅 */
  width: auto !important;
}

.mySwiper.is-static-desktop .swiper-pagination,
.mySwiper.is-static-desktop .swiper-button-prev,
.mySwiper.is-static-desktop .swiper-button-next {
  display: none !important; /* 矢印・ドットは非表示 */
}

.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 0 50px;
}
@media screen and (max-width: 820px) {
  .container {
    padding: 0 15px;
  }
}

.main-grid {
  display: flex;
  align-items: flex-start;
}
@media screen and (max-width: 820px) {
  .main-grid {
    flex-direction: column;
  }
}

.banners {
  width: 250px;
  flex-shrink: 0;
}
.banners ul {
  display: block;
}
@media screen and (max-width: 820px) {
  .banners ul {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 30px 0 20px;
  }
}
.banners li {
  margin-bottom: 15px;
}
@media screen and (max-width: 820px) {
  .banners li {
    width: calc(50% - 2.5px);
    margin-bottom: 0;
  }
}
.banners li img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 820px) {
  .banners {
    width: 100%;
    order: 4;
  }
}

.main-content {
  flex: 1;
  margin-left: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media screen and (max-width: 820px) {
  .main-content {
    width: 100%;
    margin-left: 0;
    order: 1;
  }
}
.main-content .concept {
  order: 1;
}
.main-content .concept__inner img {
  border-radius: 30px;
}
.main-content .pair-block {
  display: flex;
  gap: 40px;
  order: 2;
}
@media screen and (max-width: 820px) {
  .main-content .pair-block {
    flex-direction: column;
    order: 2;
  }
}
.main-content .pair-block .pickup {
  width: 350px;
  flex-shrink: 0;
}
@media screen and (max-width: 820px) {
  .main-content .pair-block .pickup {
    width: 100%;
    order: 1;
  }
}
.main-content .pair-block .news {
  flex: 1;
}
@media screen and (max-width: 820px) {
  .main-content .pair-block .news {
    background-color: #e6fffe;
    margin-left: -15px;
    margin-right: -15px;
    padding-left: 15px;
    padding-right: 15px;
    padding: 30px 15px;
  }
}
.main-content .pair-block .news__image {
  flex-shrink: 0;
  width: 200px;
}
@media screen and (max-width: 820px) {
  .main-content .pair-block .news__image {
    width: 220px;
  }
}
.main-content .pair-block .news__image img {
  width: 100%;
  height: auto;
  display: block;
}
.main-content .pair-block .news__img {
  float: left;
  width: 200px;
  margin-right: 20px;
  margin-bottom: 10px;
}
@media screen and (max-width: 820px) {
  .main-content .pair-block .news__img {
    width: 220px;
    float: none;
    display: block;
    margin: 0 auto 20px;
  }
}
.main-content .pair-block .news__body {
  flex: 1;
  overflow: hidden;
  position: relative;
}
.main-content .pair-block .news__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.main-content .pair-block .news__title {
  font-size: 1.6rem;
  font-weight: bold;
  color: #81d8d0;
  margin: 0;
}
.main-content .pair-block .news__date {
  font-size: 1.2rem;
  color: #999;
  margin-left: auto;
}
.main-content .pair-block .news__text {
  font-size: 1.4rem;
  line-height: 1.8;
  color: #212529;
  transition: max-height 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  max-height: 738px;
  overflow: hidden;
}
@media screen and (max-width: 820px) {
  .main-content .pair-block .news__text {
    max-height: 520px;
  }
}
.main-content .pair-block .news__text-wrapper {
  clear: both;
  position: relative;
  margin-top: 0;
  padding: 20px;
  border: 1px solid #81d8d0;
}
@media screen and (max-width: 820px) {
  .main-content .pair-block .news__text-wrapper {
    border: 0;
  }
}
.main-content .pair-block .news__text-wrapper .js-toggle-btn {
  display: block;
  width: 120px;
  margin: 15px auto 0;
  padding: 10px 0;
  font-size: 1.4rem;
  font-weight: bold;
  color: white;
  background-color: #81d8d0;
  border-radius: 4px;
  cursor: pointer;
  text-align: center;
  transition: background-color 0.3s;
}
.main-content .pair-block .news__text-wrapper .js-toggle-btn::after {
  content: "続きを読む";
}
.main-content .pair-block .news__text-wrapper .js-toggle-btn.is-open::after {
  content: "閉じる";
}
@media screen and (max-width: 820px) {
  .main-content .pair-block .news {
    order: 2;
  }
}

@media screen and (max-width: 820px) {
  .pickup {
    margin-bottom: -20px;
  }
}
.pickup__inner {
  padding: 20px;
  border: 1px solid #81d8d0;
}
.pickup__image {
  margin: 0 auto 20px;
}
@media screen and (max-width: 820px) {
  .pickup__image {
    width: 80%;
  }
}
.pickup__image img {
  width: 100%;
  height: auto;
  border-radius: 20px;
}
.pickup__info {
  border-left: 5px solid #81d8d0;
  padding-left: 10px;
  margin: 10px 0 15px;
}
.pickup__info .pickup__name {
  font-size: 2rem;
  font-weight: bold;
  margin: 0;
}
.pickup__info .pickup__name img {
  display: inline-block;
  width: 22px;
  height: auto;
}
.pickup__info .pickup__name .pickup__age {
  font-size: 1.4rem;
  font-weight: normal;
  margin-left: 4px;
}
.pickup__info .pickup__size {
  font-size: 1.5rem;
  font-weight: 700;
  margin-top: 5px;
}
.pickup__comment {
  height: 230px;
  font-size: 1.4rem;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow-y: auto;
  text-overflow: ellipsis;
}
@media screen and (max-width: 820px) {
  .pickup__comment {
    height: auto;
  }
}
.pickup__click {
  margin: 20px 0 0;
}
@media screen and (max-width: 820px) {
  .pickup__click {
    margin: 20px 0 50px;
  }
}
.pickup__click a {
  display: block;
  width: 180px;
  margin: auto;
  padding: 10px 0 12px;
  background-color: #81d8d0;
  border-radius: 3px;
  color: white;
  font-size: 1.4rem;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
}

.swiper-pagination {
  margin-top: 10px;
  text-align: center;
}

@media screen and (max-width: 820px) {
  .pickup-swiper.swiper-container-initialized {
    overflow: visible !important;
  }
  .pickup-swiper .swiper-wrapper {
    display: block !important;
  }
  .pickup-swiper .swiper-slide {
    width: 100% !important;
    margin-bottom: 20px;
  }
  .swiper-pagination {
    display: none;
  }
}
.today {
  --premium-h: 45px;
  max-width: 1280px;
  margin: 0 auto 0;
  width: 100%;
}
@media screen and (max-width: 820px) {
  .today {
    --premium-h: 41px;
  }
}
@media screen and (max-width: 820px) {
  .today {
    padding: 0 15px;
  }
}
.today ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}
.today li {
  display: flex;
  flex-direction: column;
  width: calc((100% - 60px) / 4);
  margin-right: 20px;
  margin-top: 20px;
  background: #fff;
  border: 1px solid #0abab5;
  padding: 10px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}
.today li::after {
  content: "";
  display: block;
  height: var(--premium-h);
}
.today li:has(.today__premium)::after {
  height: 0;
}
.today li:not(:has(.today__premium))::after {
  content: "";
  display: block;
  height: var(--premium-h);
}
@media screen and (max-width: 820px) {
  .today li {
    width: calc((100% - 12px) / 2);
    margin-right: 12px;
    margin-top: 12px;
    padding: 5px;
  }
}
.today li:nth-child(4n) {
  margin-right: 0;
}
@media screen and (max-width: 820px) {
  .today li:nth-child(2n) {
    margin-right: 0;
  }
}
.today__image {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 133%;
  overflow: hidden;
}
.today__image .photo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.today__image .icon-rank {
  position: absolute;
  bottom: 0px;
  left: 0px;
}
.today__image .icon-rank img {
  width: 150px;
}
@media screen and (max-width: 820px) {
  .today__image .icon-rank img {
    width: 55%;
  }
}
.today__image .icon-new {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 60px;
  height: auto;
}
@media screen and (max-width: 820px) {
  .today__image .icon-new {
    width: 40px;
  }
}
.today__image .icon-new img {
  width: 100%;
  height: auto;
}
.today__image .icon-other {
  position: absolute;
  bottom: 5px;
  right: 5px;
  display: flex;
  gap: 4px;
}
@media screen and (max-width: 820px) {
  .today__image .icon-other {
    gap: 2px;
    right: 2px;
  }
}
.today__image .icon-other img {
  width: 40px;
}
@media screen and (max-width: 820px) {
  .today__image .icon-other img {
    width: 30px;
  }
}
.today__name {
  font-size: 2.2rem;
  font-weight: bold;
  margin-top: 10px;
}
@media screen and (max-width: 820px) {
  .today__name {
    font-size: 1.6rem;
  }
}
.today__name img {
  display: inline-block;
  width: 22px;
  height: auto;
}
.today__age {
  font-size: 1.4rem;
}
.today__size {
  font-size: 1.4rem;
  font-weight: 500;
  margin: 10px 0;
}
@media screen and (max-width: 820px) {
  .today__size {
    font-size: 1.2rem;
    margin: 5px 0;
  }
}
.today__comment {
  color: #81d8d0;
  font-size: 12px;
}
.today__time {
  width: 100%;
  margin: 0 0 10px;
  padding: 10px 0 12px;
  background-color: #81d8d0;
  font-size: 2rem;
  font-weight: bold;
  color: white;
  border-radius: 5px;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .today__time {
    margin: 5px 0 7px;
    padding: 7px 0 10px;
    font-size: 1.6rem;
    border-radius: 100vh;
  }
}
.today__icon_class {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  max-width: 150px;
  margin: 10px auto;
  min-height: 30px;
}
@media screen and (max-width: 820px) {
  .today__icon_class {
    max-width: 120px;
    min-height: 30px;
    margin: 5px auto 0;
  }
}
.today__icon_class img {
  display: block;
  width: 100%;
  height: auto;
}
.today__icon {
  display: flex;
  flex-wrap: wrap;
  column-gap: 4px;
  row-gap: 6px;
  height: 85px;
}
@media screen and (max-width: 820px) {
  .today__icon {
    height: 50px;
  }
}
.today__icon p {
  flex: 0 0 calc((100% - 4px) / 2);
  height: 40px;
  box-sizing: border-box;
  border: 1px solid #37beb0;
  padding: 10px 0 0;
  font-weight: bold;
  text-align: center;
  font-size: 1.6rem;
  color: #37beb0;
  /* ▼画像が入っているpだけ別処理 */
  /* p内が画像だけの場合 → paddingを消す */
}
.today__icon p img {
  display: block;
  width: auto;
  height: 100%;
  max-height: 100%;
  margin: 0 auto;
  object-fit: contain;
}
.today__icon p:has(img) {
  padding: 0;
  border: none;
}
@media screen and (max-width: 820px) {
  .today__icon p {
    flex: 0 0 calc((100% - 4px) / 2);
    height: 23px;
    padding: 3px 0 0;
    font-size: 1.1rem;
    line-height: 1.2;
  }
}
.today__icon p.icon-list.is-gray {
  color: #9aa0a6;
  border-color: #9aa0a6;
  background: #f3f4f6;
  font-weight: 600;
}
.today__icon p.icon-list.is-gray:has(img) {
  background: transparent;
}
.today__premium {
  height: 40px;
  margin-top: 10px;
}
@media screen and (max-width: 820px) {
  .today__premium {
    height: 35px;
    margin-top: 10px;
  }
}
.today__premium img {
  width: auto;
  height: 40px;
  margin: auto;
}
@media screen and (max-width: 820px) {
  .today__premium img {
    height: 35px;
  }
}

.popup {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
}
.popup.is-open {
  display: block;
}
.popup__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
}
.popup__content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(92vw, 640px);
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
  padding: 30px 24px 28px;
  z-index: 1001;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .popup__content {
    padding: 22px 18px 18px;
  }
}
.popup__close {
  position: absolute;
  top: 10px;
  right: 12px;
  background: none;
  border: none;
  font-size: 28px;
  cursor: pointer;
  color: #666;
}
.popup__close:hover {
  opacity: 0.7;
}
.popup__title {
  font-size: 3rem;
  font-weight: bold;
  margin-bottom: 10px;
}
.popup__text {
  font-size: 1.4rem;
  margin-bottom: 20px;
  line-height: 1.6;
  color: #444;
}
.popup__form {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
@media screen and (max-width: 820px) {
  .popup__form {
    flex-direction: column;
  }
}
.popup__input {
  flex: 1;
  min-width: 200px;
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 1.3rem;
}
.popup__input:focus {
  outline: none;
  border-color: #81d8d0;
  box-shadow: 0 0 0 3px rgba(129, 216, 208, 0.15);
}
.popup__button {
  background: linear-gradient(135deg, #81d8d0, #62cec4);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 12px 20px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(129, 216, 208, 0.25);
  transition: filter 0.2s ease, transform 0.05s ease;
}
.popup__button:hover {
  filter: brightness(1.05);
}
.popup__button:active {
  transform: translateY(1px);
}
@media screen and (max-width: 820px) {
  .popup__button {
    margin-top: 10px;
  }
}

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

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

.modal-content {
  position: relative;
  padding: 10px;
  text-align: center;
  max-width: 900px;
  animation: popIn 0.3s ease;
}

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

.modal-text {
  font-size: 18px;
  margin-bottom: 10px;
  font-weight: bold;
}

.modal-comment {
  line-height: 1.5;
}

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

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

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

.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: #81d8d0;
  border-color: #81d8d0;
}

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

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

キャスト

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

@media screen and (max-width: 768px) {
  .week {
    width: 100%;
    min-width: auto;
    margin-bottom: 5px;
  }
}
/*===============================

週間出勤情報

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

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

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

.sort-choice {
  display: flex;
  justify-content: center;
  margin: 30px 0 40px;
  font-weight: 700;
}
.sort-choice label {
  flex: 1;
  background-color: white;
  color: #37beb0;
  text-align: center;
  font-size: 17px;
  line-height: 1;
  padding: 15px 0;
  margin-right: -1px;
  border: 1px solid #37beb0;
  transition: all 0.2s ease-in;
}
.sort-choice label:first-of-type {
  border-radius: 5px 0 0 5px;
}
.sort-choice label:last-of-type {
  border-radius: 0 5px 5px 0;
}
.sort-choice input {
  position: absolute !important;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  width: 1px;
  border: 0;
  overflow: hidden;
}
.sort-choice input:checked + label {
  background: linear-gradient(176deg, rgb(55, 190, 176) 0%, rgb(55, 190, 176) 100%);
  color: white;
}
.sort-choice:hover {
  cursor: pointer;
}
@media screen and (max-width: 820px) {
  .sort-choice {
    flex-wrap: wrap;
    margin: 10px 0 20px;
    padding: 0 1px;
  }
  .sort-choice label {
    flex: 1 0 20%;
    font-size: 15px;
    padding: 10px 0;
    border-radius: 0;
  }
}

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

最新情報

================================*/
.information {
  width: 100%;
  padding: 150px 0;
  background-color: #f2d1d9;
  color: white;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .information {
    padding: 75px 15px 75px 130px;
  }
}
@media screen and (max-width: 820px) {
  .information {
    padding: 50px 10px;
  }
}
.information ul {
  display: flex;
  flex-wrap: wrap;
}
.information li {
  width: 50%;
  margin: 40px 0 0 0;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .information li {
    width: 100%;
    margin: 15px 0 0 0;
  }
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .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: 820px) {
  .information figure .data {
    flex: 1;
    padding: 0;
  }
}
.information figure .data a {
  color: #81d8d0;
  text-decoration: none;
}
.information__inner {
  max-width: 1250px;
  margin: auto;
}
.information .ttl img {
  width: auto;
  height: 80px;
}
@media screen and (max-width: 820px) {
  .information .ttl img {
    height: 50px;
  }
}
.information .day {
  color: #212529;
  font-size: 1rem;
}
.information .name {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 500px;
  margin: 7px 0 2px;
  padding: 10px;
  background-color: #81d8d0;
  border-radius: 100vh;
  color: white;
  font-size: 1.6rem;
  font-weight: bold;
}
@media screen and (max-width: 820px) {
  .information .name {
    max-width: 280px;
    padding: 5px;
    font-size: 1.4rem;
    line-height: 1.1;
  }
}
.information .doc {
  color: #212529;
  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: 820px) {
  .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: 300px;
  margin: auto;
  padding: 20px 0 0;
}

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

お得な情報

================================*/
.discount {
  width: 100%;
  padding: 150px 0 0 82px;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .discount {
    padding: 75px 20px 75px 130px;
  }
}
@media screen and (max-width: 820px) {
  .discount {
    padding: 50px 0px;
  }
}
.discount .slide-items {
  display: flex;
  flex-wrap: wrap;
  width: 85%;
  margin: auto;
}
@media screen and (max-width: 820px) {
  .discount .slide-items {
    width: 100%;
  }
}
.discount .slide-item {
  display: flex;
  width: 33.3333333333%;
  margin-top: 10px;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .discount .slide-item {
    width: 50%;
  }
}
@media screen and (max-width: 820px) {
  .discount .slide-item {
    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: 820px) {
  .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: 820px) {
  .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 (min-width: 821px) and (max-width: 1199px) {
  .event {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .event h2 {
    margin: 0 0 20px;
    padding: 20px 0 20px;
  }
}
.event h3 {
  background-color: #81d8d0;
  margin: 50px 0 25px;
  padding: 10px 15px;
  color: white;
  font-size: 1.8rem;
}
@media screen and (max-width: 820px) {
  .event h3 {
    margin: 25px 0;
    padding: 10px;
  }
}
.event h4 {
  padding: 0px 10px 5px;
  color: #81d8d0;
  font-size: 1.8rem;
  border-left: 5px solid #81d8d0;
  border-bottom: 1px solid #81d8d0;
}
@media screen and (max-width: 820px) {
  .event h4 {
    padding: 5px 0px 5px 10px;
  }
}
.event ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1600px;
  margin: auto;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .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: 820px) {
  .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: 820px) {
  .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: 820px) {
  .event__list {
    padding: 10px;
  }
}
@media screen and (max-width: 820px) {
  .event__list {
    padding: 10px;
  }
}
.event__thumbnail {
  width: 130px;
  height: 130px;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .event__title {
    font-size: 1.8rem;
  }
}
.event__days {
  padding: 15px 0;
  font-size: 1.4rem;
}
@media screen and (max-width: 820px) {
  .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;
}
@media screen and (max-width: 820px) {
  .review {
    min-height: 500px;
    margin-top: 50px;
  }
}
.review__box {
  display: flex;
  flex-wrap: wrap;
  max-width: 1280px;
  margin: auto;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .review__box {
    padding: 75px 20px 75px 120px;
  }
}
@media screen and (max-width: 820px) {
  .review__box {
    margin-top: -10px;
    padding: 0 5px;
  }
}
.review ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1280px;
  margin: auto;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .review ul {
    padding: 75px 20px 75px 120px;
  }
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .review figure {
    margin: 10px 5px;
    padding: 0;
  }
}
.review video {
  position: absolute;
  top: -20%;
  z-index: 1;
  width: 100%;
  filter: blur(10px);
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .review video {
    width: 150%;
    top: -5%;
    left: -10%;
  }
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .review__inner {
    padding-top: 180px;
  }
}
.review .__photo {
  width: 200px;
  padding: 0 10px 0 0;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .review .name {
    padding: 10px 0 5px;
    font-size: 1.4rem;
  }
}
.review .name span {
  font-size: 1.4rem;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .review .comment {
    height: 120px;
    margin-right: 10px;
    padding: 0px;
    border: 1px solid white;
    font-size: 1.2rem;
    overflow-wrap: break-word;
    hyphens: manual;
    line-height: 1.9;
  }
}
.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: 820px) {
  .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;
  margin-top: -20px;
  filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.7));
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .review__ttl {
    width: 50%;
    margin-top: -10px;
    margin-left: 10px;
  }
}

/*
レビュー一覧
================================*/
.reviewlist {
  padding: 150px 0 150px 82px;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .reviewlist {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 820px) {
  .reviewlist {
    padding: 50px 0 80px;
  }
}
.reviewlist ul {
  display: flex;
  flex-wrap: wrap;
  width: 85%;
  margin: auto;
  margin-top: 75px;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .reviewlist ul {
    width: 100%;
    margin-top: 15px;
    padding: 0 5px;
  }
}
.reviewlist li {
  width: 33.3333333333%;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .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: 820px) {
  .reviewlist figure {
    margin: 5px;
    padding: 10px;
  }
}
.reviewlist figure .image {
  width: 150px;
}
@media screen and (max-width: 820px) {
  .reviewlist figure .image {
    width: 90px;
  }
}
.reviewlist figure .data {
  flex: 1;
  padding: 0 0 0 10px;
}
.reviewlist figure .ttl {
  padding: 0 0 10px;
  color: #212529;
  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: 820px) {
  .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: #212529;
  border-radius: 100vh;
  color: white;
  font-size: 1.2rem;
  font-weight: bold;
}
.reviewlist figure .message {
  padding: 10px 15px 0 0;
  color: #212529;
  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: 820px) {
  .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: 820px) {
  .reviewlist figure .days {
    padding: 10px 0 0 0;
  }
}
.reviewlist figure .icon {
  position: absolute;
  top: -5px;
  right: -5px;
  width: 60px;
}
@media screen and (max-width: 820px) {
  .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 (min-width: 821px) and (max-width: 1199px) {
  .reviewlist__input {
    margin-top: 40px;
  }
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .reviewlist__input dl {
    flex-wrap: wrap;
    padding: 20px 0;
  }
}
.reviewlist__input dt {
  width: 300px;
  font-size: 1.6rem;
  font-weight: bold;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .reviewlist__input dt {
    width: 200px;
  }
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .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: #212529;
  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: #81d8d0;
  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: 820px) {
  .reviewgirls {
    margin-top: 20px;
  }
}
.reviewgirls dl {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 820px) {
  .reviewgirls dl {
    padding: 0 5px;
  }
}
.reviewgirls dt {
  width: 16.6666666667%;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .reviewgirls dt {
    width: 33.3333333333%;
  }
}
.reviewgirls .__list {
  margin: 20px;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .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: #212529;
}
@media screen and (max-width: 820px) {
  .reviewgirls .name {
    padding: 5px 0;
    font-size: 1.4rem;
  }
}
.reviewgirls .number {
  padding: 12px 0;
  background-color: #212529;
  border-radius: 100vh;
  color: white;
  font-size: 1.4rem;
}
@media screen and (max-width: 820px) {
  .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 #212529;
  font-size: 1.5rem;
  text-align: center;
  line-height: 2;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .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: 820px) {
  .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: 820px) {
  .reviewlist .title img,
.reviewdetail .title img {
    display: block;
    width: 75%;
    height: auto;
    margin: auto;
  }
}

/*
レビュー詳細
================================*/
.reviewdetail {
  padding: 150px 0 100px 82px;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .reviewdetail {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .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: 820px) {
  .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: 820px) {
  .reviewdetail figure {
    flex-wrap: wrap;
    width: auto;
    padding: 0;
  }
}
.reviewdetail__photo {
  width: 300px;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .reviewdetail__photo {
    width: 200px;
    margin: auto;
  }
}
.reviewdetail__photo img {
  display: block;
  width: 100%;
  margin: auto;
  margin-bottom: 10px;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .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: 820px) {
  .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: #212529;
  border-radius: 5px;
  color: white;
  font-size: 1.4rem;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .reviewdetail__text {
    padding: 0 10px 0;
  }
}
.reviewdetail__text div {
  padding: 0 0 100px;
}
@media screen and (max-width: 820px) {
  .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: #81d8d0;
  border-radius: 5px;
  box-shadow: 0 0 2px 2px white;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .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: 820px) {
  .reviewdetail .comment {
    font-size: 1.3rem;
    line-height: 1.6;
  }
}
.reviewdetail .reply {
  margin: 20px 0 0;
  padding: 25px;
  background-color: white;
  border-radius: 10px;
  font-size: 1.4rem;
  line-height: 2;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 820px) {
  .reviewdetail .reply {
    padding: 15px;
    font-size: 1.3rem;
    line-height: 1.8;
  }
}
.reviewdetail .reply span {
  display: block;
  font-size: 2rem;
  font-weight: bold;
}

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

ランキング

================================*/
.ranking {
  max-width: 1280px;
  margin: 0px auto 0;
  width: 100%;
}
@media screen and (max-width: 820px) {
  .ranking {
    padding: 0 15px;
  }
}
.ranking ul {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 820px) {
  .ranking ul {
    gap: 12px;
  }
}
.ranking li {
  width: calc((100% - 80px) / 5);
  background: #fff;
  border: 1px solid #0abab5;
  padding: 10px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
@media screen and (max-width: 820px) {
  .ranking li {
    width: calc((100% - 12px) / 2);
    padding: 5px;
  }
}
.ranking__image {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 133%;
  overflow: hidden;
}
.ranking__image .photo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ranking__image .icon-shimei {
  position: absolute;
  bottom: 0px;
  left: 0px;
}
.ranking__image .icon-shimei img {
  width: 130px;
}
@media screen and (max-width: 820px) {
  .ranking__image .icon-shimei img {
    width: 55%;
  }
}
.ranking__image .icon-rank {
  position: absolute;
  top: 5px;
  left: 5px;
}
.ranking__image .icon-rank img {
  width: 60px;
}
@media screen and (max-width: 820px) {
  .ranking__image .icon-rank img {
    width: 40px;
  }
}
.ranking__image .icon-new {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 60px;
  height: auto;
}
@media screen and (max-width: 820px) {
  .ranking__image .icon-new {
    width: 40px;
  }
}
.ranking__image .icon-new img {
  width: 100%;
  height: auto;
}
.ranking__image .icon-other {
  position: absolute;
  bottom: 5px;
  right: 5px;
  display: flex;
  gap: 4px;
}
@media screen and (max-width: 820px) {
  .ranking__image .icon-other {
    gap: 2px;
    right: 2px;
  }
}
.ranking__image .icon-other img {
  width: 40px;
}
@media screen and (max-width: 820px) {
  .ranking__image .icon-other img {
    width: 30px;
  }
}
.ranking__name {
  font-size: 2.2rem;
  font-weight: bold;
  margin-top: 10px;
}
@media screen and (max-width: 820px) {
  .ranking__name {
    font-size: 1.6rem;
  }
}
.ranking__name img {
  display: inline-block;
  width: 22px;
  height: auto;
}
.ranking__age {
  font-size: 1.4rem;
}
.ranking__size {
  font-size: 1.4rem;
  font-weight: 500;
  margin: 10px 0;
}
@media screen and (max-width: 820px) {
  .ranking__size {
    font-size: 1.2rem;
    margin: 5px 0;
  }
}
.ranking__comment {
  color: #81d8d0;
  font-size: 12px;
}
.ranking__time {
  width: 100%;
  padding: 10px 0 12px;
  background-color: #81d8d0;
  font-size: 2rem;
  font-weight: bold;
  color: white;
  border-radius: 5px;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .ranking__time {
    margin-top: 5px;
    padding: 7px 0 10px;
    font-size: 1.6rem;
    border-radius: 100vh;
  }
}
.ranking__icon_class {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  max-width: 150px;
  margin: 10px auto;
  min-height: 30px;
}
@media screen and (max-width: 820px) {
  .ranking__icon_class {
    max-width: 120px;
    min-height: 20px;
  }
}
.ranking__icon_class img {
  width: 100%;
  height: auto;
}
.ranking__icon-inner {
  height: 66px;
  margin-bottom: 10px;
}
@media screen and (max-width: 820px) {
  .ranking__icon-inner {
    height: 50px;
    margin-top: 0;
    margin-bottom: 0;
  }
}
.ranking__icon {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  width: 100%;
}
.ranking__icon p {
  width: calc(50% - 2.5px);
  border: 1px solid #37beb0;
  padding: 7px 0 10px;
  font-weight: bold;
  text-align: center;
  font-size: 1.6rem;
  color: #37beb0;
}
@media screen and (max-width: 820px) {
  .ranking__icon p {
    padding: 5px 0 7px;
    font-size: 1.2rem;
  }
}

.legendary {
  width: 300px;
  margin: 0 auto 50px;
  background: url(../images/legendary-bg.jpg);
  background-size: cover;
}
.legendary__inner {
  padding: 15px;
}
.legendary__data {
  padding: 20px 0 0;
  font-weight: bold;
  text-align: center;
}
.legendary__name {
  font-size: 2.3rem;
  text-shadow: #fff 2px 0px 2px, #fff -2px 0px 2px, #fff 0px -2px 2px, #fff -2px 0px 2px, #fff 2px 2px 2px, #fff -2px 2px 2px, #fff 2px -2px 2px, #fff -2px -2px 2px, #fff 1px 2px 2px, #fff -1px 2px 2px, #fff 1px -2px 2px, #fff -1px -2px 2px, #fff 2px 1px 2px, #fff -2px 1px 2px, #fff 2px -1px 2px, #fff -2px -1px 2px, #fff 1px 1px 2px, #fff -1px 1px 2px, #fff 1px -1px 2px, #fff -1px -1px 2px;
}
.legendary__name img {
  display: inline-block;
  width: 22px;
  height: auto;
}
.legendary__size {
  padding: 10px 0 10px 5px;
  font-size: 16px;
  text-shadow: #fff 2px 0px 2px, #fff -2px 0px 2px, #fff 0px -2px 2px, #fff -2px 0px 2px, #fff 2px 2px 2px, #fff -2px 2px 2px, #fff 2px -2px 2px, #fff -2px -2px 2px, #fff 1px 2px 2px, #fff -1px 2px 2px, #fff 1px -2px 2px, #fff -1px -2px 2px, #fff 2px 1px 2px, #fff -2px 1px 2px, #fff 2px -1px 2px, #fff -2px -1px 2px, #fff 1px 1px 2px, #fff -1px 1px 2px, #fff 1px -1px 2px, #fff -1px -1px 2px;
}

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

求人

================================*/
.recruit {
  max-width: 1280px;
  margin: 0px auto 0;
  width: 100%;
}
@media screen and (max-width: 820px) {
  .recruit {
    padding: 0 15px;
  }
}
.recruit__truth {
  font-size: 2.2rem;
  font-weight: bold;
  color: white;
  background-color: #37beb0;
  padding: 20px;
  margin: 30px 0;
  border-radius: 100vh;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .recruit__truth {
    margin-top: 10px;
    padding: 10px;
    font-size: 2rem;
  }
}

.btn-group {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
}

.recruit-text {
  padding: 10px;
  font-size: 13px;
  line-height: 1.8em;
}

.recruit-tab td {
  padding: 5px;
}

.recruit h3 {
  padding-bottom: 20px;
  color: #37beb0;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.2;
}

.recruit .text {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.6;
}

.recruit .text span {
  color: #37beb0;
  font-size: 18px;
}

.recruit .text_en {
  padding-bottom: 20px;
  font-size: 13px;
  line-height: 1.5;
}

.recruit .text_jp {
  font-size: 15px;
  font-weight: bold;
  line-height: 1.5;
}

.recruit .recruit_movie {
  float: left;
  margin-right: 15px;
}
@media screen and (max-width: 820px) {
  .recruit .recruit_movie {
    float: none;
    width: 100%;
  }
}

.recruit_table {
  margin-top: 20px;
}

.recruit_table {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px; /* 行間 x 列間 */
  align-items: flex-start;
  /* 1行ごと中央寄せにしたい場合 ↓ をON */
  /* justify-content: center; */
}

.recruit_table table {
  border-collapse: collapse;
  border-top: 1px solid #37beb0;
  border-left: 1px solid #37beb0;
  background: #fff;
  margin: 0;
  padding: 0;
  font-size: 13px;
  line-height: 1.5;
}

.recruit_table th {
  width: 150px;
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px solid #37beb0;
  border-right: 1px solid #37beb0;
  background-color: #e6fffe;
  color: #20908a;
  font-size: 15px;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .recruit_table th {
    display: block;
    width: 100%;
  }
}

.recruit_table td {
  margin: 0;
  padding: 10px;
  border-bottom: 1px solid #37beb0;
  border-right: 1px solid #37beb0;
}
@media screen and (max-width: 820px) {
  .recruit_table td {
    display: block;
  }
}

.recruit_table td a {
  color: #20908a;
  font-weight: bold;
  text-decoration: underline;
}

.recruit_table .list {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 5px;
  padding: 6px 10px;
  background: linear-gradient(0deg, rgb(255, 128, 0) 0%, rgb(255, 156, 0) 100%);
  color: #fff;
  font-size: 12px;
  font-weight: bold;
  border-radius: 6px;
  white-space: nowrap; /* 折り返さずチップっぽく */
  line-height: 1.2;
}

.grad-wrap {
  position: relative;
}

.grad-wrap + .grad-wrap {
  margin-top: 40px;
}

.grad-btn {
  z-index: 2;
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  width: 148px;
  margin: auto;
  padding: 10px 0;
  border-radius: 2px;
  background-color: #20908a;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  cursor: pointer;
  transition: 0.2s ease;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
}

.grad-btn::after {
  content: "続きを読む";
}

.grad-btn:hover {
  background: #fff;
  color: #20908a;
}

.grad-btn .fa {
  margin-right: 0.5em;
}

.grad-item {
  position: relative;
  overflow: hidden;
  height: 380px;
}

.grad-item p + p {
  margin-top: 1em;
}

.grad-item::before {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 40px; /*グラデーションで隠す範囲*/
  background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 0.9) 50%, #fff 100%);
  background: linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 0.9) 50%, #fff 100%);
}

.grad-trigger {
  display: none;
}

.grad-trigger:checked ~ .grad-btn {
  bottom: -1em;
}

.grad-trigger:checked ~ .grad-btn::after {
  content: "閉じる";
}

.grad-trigger:checked ~ .grad-btn .fa {
  transform: rotate(180deg);
}

.grad-trigger:checked ~ .grad-item {
  height: auto;
}

.grad-trigger:checked ~ .grad-item::before {
  display: none;
}

.btn,
a.btn,
button.btn {
  width: 150px;
  font-size: 22px;
  font-weight: bold;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 10px 15px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #fff;
  text-shadow: 0px 1px 1px #000;
  border-radius: 0.25rem;
}

a.btn_tel {
  color: #fff;
  background-color: #f74d99;
  border-bottom: 5px solid #d21569;
}

a.btn_tel:hover {
  margin-top: 3px;
  color: #fff;
  background: #f74d99;
  border-bottom: 2px solid #d21569;
}

a.btn_line {
  color: #fff;
  background-color: #19bc03;
  border-bottom: 5px solid #119000;
}

a.btn_line:hover {
  margin-top: 3px;
  color: #fff;
  background: #19bc03;
  border-bottom: 2px solid #119000;
}

a.btn_line i {
  font-weight: normal;
}

a.btn_mail {
  color: #fff;
  background-color: #fff100;
  border-bottom: 5px solid #ccc100;
}

a.btn_mail:hover {
  margin-top: 3px;
  color: #fff;
  background: #fff20a;
  border-bottom: 2px solid #ccc100;
}

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

プロフィール

================================*/
.profile {
  /*
  プロフィールレビュー
  ================================*/
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .profile {
    padding: 0 40px 0 122px;
  }
}
@media screen and (max-width: 820px) {
  .profile {
    padding: 0;
  }
}
.profile h4 {
  position: relative;
  padding: 10px 0;
  border-bottom: 2px solid white;
  font: 300 2rem/1 "M PLUS 1", 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: #0abab5;
}
.profile h4 span {
  font-size: 1.2rem;
}
.profile__inner {
  display: flex;
  max-width: 95%;
  margin: auto;
  margin-top: -50px;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .profile__inner {
    flex-wrap: wrap;
    padding: 0;
  }
}
@media screen and (max-width: 820px) {
  .profile__inner {
    margin-top: 0;
    padding: 0 10px;
    flex-direction: column;
  }
}
.profile__inner .data_left {
  width: 60%;
  padding: 0 30px 0 0;
  border-right: 1px solid #ddd;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .profile__inner .data_left {
    width: 100%;
    padding: 0;
    border-right: 0;
  }
}
@media screen and (max-width: 820px) {
  .profile__inner .data_left {
    width: 100%;
    padding: 0;
    border-right: 0;
  }
}
.profile__inner .data_right {
  flex: 1;
  padding: 0 0 0 30px;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .profile__inner .data_right {
    margin-top: 20px;
    padding: 0;
  }
}
@media screen and (max-width: 820px) {
  .profile__inner .data_right {
    width: 100%;
    margin: 0;
    padding: 0;
  }
}
@media screen and (max-width: 820px) {
  .profile {
    /* data_left のラッパをフラット化：中身を親直下扱いに */
    /* 既存の .profile_movie を最後へ */
  }
  .profile .profile__inner {
    display: flex;
    flex-direction: column;
  }
  .profile .profile__inner .data_left {
    display: contents;
  }
  .profile .profile_movie {
    order: 999;
    max-width: 100%;
    margin: 20px 0 0;
  }
}
.profile video {
  width: 100%;
  margin: 20px 0 0;
}
.profile .shop-type {
  display: inline-block;
  margin: 0 0 10px;
  padding: 10px 20px;
  background-color: #0abab5;
  border-radius: 100vh;
  color: white;
  font-size: 1.4rem;
}
.profile .name {
  position: relative;
  font-size: 4rem;
}
@media screen and (max-width: 820px) {
  .profile .name {
    font-size: 3rem;
  }
}
.profile .name span {
  font-size: 1.4rem;
}
.profile .name .comment {
  padding: 0 0 10px;
  font-size: 1.5rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
@media screen and (max-width: 820px) {
  .profile .name .comment {
    font-size: 1.3rem;
  }
}
.profile .name .rank {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
  align-items: flex-end;
}
.profile .name .rank-01,
.profile .name .rank-02 {
  width: auto;
  height: 35px;
}
@media screen and (max-width: 820px) {
  .profile .name .rank-01,
.profile .name .rank-02 {
    height: 30px;
  }
}
.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: 820px) {
  .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: 820px) {
  .profile .size {
    font-size: 1.2rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
}
.profile .icon_type {
  display: flex;
  margin: 0 0 10px;
}
.profile .icon_type img {
  width: 50px;
  margin: 0 0 0 2px;
}
.profile .massage {
  order: 2;
  padding: 20px 0 0;
  font: 300 1.3rem/1.8 "M PLUS 1", sans-serif;
  line-height: 1.8;
}
@media screen and (max-width: 820px) {
  .profile .massage {
    padding: 20px 0 20px;
    order: 2;
  }
}
.profile .massage strong {
  font-weight: bold;
}
.profile .massage .inner {
  font-size: 16px;
}
.profile .massage .inner * {
  font-size: clamp(12px, 1em, 20px) !important;
}
@media screen and (max-width: 820px) {
  .profile .massage .inner {
    padding: 25px;
    border: 1px solid #dcf6f2;
  }
}
.profile .diary {
  margin: 0 0 10px;
  font-family: "M PLUS 1", sans-serif;
}
.profile .reserve_btn {
  max-width: 250px;
  margin: auto;
}
.profile .profile_comment {
  background-color: #e6fffe;
  margin: 30px 0 0;
  padding: 30px;
  border-radius: 10px;
  font-size: 1.5rem;
  line-height: 1.5;
}
.profile .profile_comment * {
  font-size: clamp(12px, 1em, 20px) !important;
}
@media screen and (max-width: 820px) {
  .profile .profile_comment {
    margin: 30px 0 -20px;
    padding: 20px;
    font-size: 1.4rem;
  }
}
.profile .profile_comment-sub {
  background-color: #ffeeef;
  margin: 30px 0 0;
  padding: 30px;
  border-radius: 10px;
  font-size: 1.5rem;
  line-height: 1.5;
}
.profile .profile_comment-sub * {
  font-size: clamp(12px, 1em, 20px) !important;
}
@media screen and (max-width: 820px) {
  .profile .profile_comment-sub {
    margin: 30px 0 -20px;
    padding: 20px;
    font-size: 1.4rem;
  }
}
.profile .profile_review {
  padding: 0 0 25px;
  order: 1;
}
@media screen and (max-width: 820px) {
  .profile .profile_review {
    order: 3;
  }
}
.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: "M PLUS 1", sans-serif;
}
.profile .profile_review .title {
  padding: 30px 0 10px;
  border-bottom: 1px solid black;
  font-size: 1.5rem;
  font-family: "M PLUS 1", 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 .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-p ul {
  display: flex;
  justify-content: center;
  gap: 10px;
  list-style: none;
}
.profile .profile_review .btn-p ul li a {
  display: inline-block;
  background-color: #81d8d0;
  color: white;
  margin-top: 10px;
  padding: 15px 20px;
  border-radius: 4px;
  text-decoration: none;
  font-weight: bold;
  font-size: 1.6rem;
  font-family: "M PLUS 1", sans-serif;
  transition: background-color 0.3s, opacity 0.3s, box-shadow 0.3s;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.profile .profile_review .btn-p ul li a i {
  margin-right: 8px;
}
.profile .profile_review .btn-p ul li a:hover {
  opacity: 0.8;
}

/*
プロフィールインタビュー
================================*/
.profile_interview {
  width: 100%;
  margin: 0 0 20px;
  padding-top: 40px;
  font-family: "M PLUS 1", sans-serif;
}
@media screen and (max-width: 820px) {
  .profile_interview {
    padding-top: 20px;
  }
}
.profile_interview .row {
  margin-bottom: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 820px) {
  .profile_interview .row {
    display: block;
    margin-bottom: 5px;
  }
}
.profile_interview .row dt {
  background-color: #dcf6f2;
  border-radius: 100vh;
  font: 400 1.4rem/1 "M PLUS 1", sans-serif;
  margin-bottom: 0px;
  width: 260px;
  padding: 10px 15px 15px;
  line-height: 1.5;
}
@media screen and (max-width: 820px) {
  .profile_interview .row dt {
    width: 100%;
    margin: 10px 0 5px;
  }
}
.profile_interview .row dt::before {
  content: "Q.";
  display: inline;
  margin-right: 4px;
  color: #d2b359;
}
.profile_interview .row dd {
  font: 300 1.4rem/1 "M PLUS 1", sans-serif;
  flex: 1;
  padding: 0px 15px 0px;
  line-height: 1.5;
}
.profile_interview .row dd .flag img {
  display: inline-block;
  width: 22px;
  margin-right: 10px;
}

.shimei-icon {
  width: 260px;
  margin: 5px 0 0;
}
@media screen and (max-width: 820px) {
  .shimei-icon {
    width: 220px;
    margin: 0;
  }
}

/*
プロフィールオプション
================================*/
.profile_option,
.profile_option-p {
  margin: 15px 0;
}
@media screen and (max-width: 820px) {
  .profile_option,
.profile_option-p {
    margin: 0;
    padding: 20px 0;
  }
}
.profile_option ul,
.profile_option-p ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0 -1px -1px 0;
}
@media screen and (max-width: 820px) {
  .profile_option ul,
.profile_option-p ul {
    border-left: 0;
  }
}
.profile_option li,
.profile_option-p li {
  flex: 0 0 calc(33.3333333333% - 1px);
  padding: 10px 0;
  border: 1px solid #37beb0;
  font-family: "M PLUS 1", sans-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: 820px) {
  .profile_option li,
.profile_option-p li {
    flex: 0 0 calc(50% - 1px);
  }
  .profile_option li:nth-child(2n),
.profile_option-p li:nth-child(2n) {
    margin-right: -1px;
  }
}
.profile_option li:nth-child(n+4),
.profile_option-p li:nth-child(n+4) {
  border-top: 1px solid #37beb0;
}
.profile_option .on,
.profile_option-p .on {
  background-color: #81d8d0;
  color: white;
}
.profile_option .off,
.profile_option-p .off {
  background-color: white;
  color: lightgray;
}

.profile_option-p li {
  border: 1px solid #e4c974;
}
.profile_option-p li:nth-child(n+4) {
  border-top: 1px solid #e4c974;
}
.profile_option-p .on {
  background-color: #cfa647;
  color: white;
}

.profile_option-title {
  background-color: #37beb0;
  margin-top: 10px;
  padding: 15px;
  border-radius: 100vh;
  color: white;
  font-weight: bold;
  text-align: center;
}

.profile_option-title-p {
  margin: 20px 0 15px;
  background: linear-gradient(180deg, #e4c974 0%, #cfa647 55%, #b78727 100%);
  padding: 15px;
  border-radius: 100vh;
  color: white;
  font-weight: bold;
  text-align: center;
}

/*
プロフィール出勤
================================*/
.profile_scroll {
  margin-top: -30px;
}
@media screen and (max-width: 820px) {
  .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 (min-width: 821px) and (max-width: 1199px) {
  .profile__week {
    padding: 0;
  }
}
@media screen and (max-width: 820px) {
  .profile__week {
    display: none;
  }
}
.profile__week .inner {
  max-width: 95%;
  margin: auto;
}
@media screen and (max-width: 820px) {
  .profile__week .inner {
    max-width: 100%;
    padding: 0 20px;
  }
}

.profile__week-sp {
  display: none;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .profile__week-sp {
    display: block;
  }
}
@media screen and (max-width: 820px) {
  .profile__week-sp {
    display: block;
    margin-top: 20px;
  }
}

/*
プロフィールスライド
================================*/
@media screen and (min-width: 0px) {
  .profile_castimg {
    overflow-x: hidden;
    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;
    font-family: "Montserrat", sans-serif;
    width: auto;
    height: auto;
  }
}
@media screen and (min-width: 1024px) {
  .profile_castimg .body {
    padding-top: 20px;
    position: relative;
    padding-bottom: 24px;
    width: 100%;
  }
  .profile_castimg .body::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    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 (min-width: 821px) and (max-width: 1199px) {
  .weekley {
    padding: 20px 0;
  }
}
@media screen and (max-width: 820px) {
  .weekley {
    width: 1000px;
    padding: 20px 0 25px;
  }
}
.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: 820px) {
  .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 (min-width: 821px) and (max-width: 1199px) {
  .weekley .time {
    padding: 10px 0;
    font-size: 1.4rem;
  }
  .weekley .time span {
    display: block;
    margin: auto;
    writing-mode: vertical-rl;
  }
}
.weekley .current {
  background: rgba(250, 162, 167, 0.5);
}
.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: 820px) {
  .weekley .dotw-l {
    padding: 3px 0;
  }
}
.weekley .dotw {
  margin-top: 5px;
  padding: 3px;
  font-size: 1.1rem;
}

/* ========== スリムHTML用 ========== */
.weekley-sp--stack {
  max-width: 960px;
  margin: 20px auto 0;
}

.weekley-sp__stack {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.weekley-sp__row {
  text-align: center;
}

.weekley-sp__datebar {
  background: #37beb0;
  color: white;
  padding: 8px 10px;
  border-radius: 100vh;
  font-weight: 800;
  font-size: clamp(18px, 4vw, 22px);
  letter-spacing: 0.02em;
}

.weekley-sp__time {
  padding: 14px 0 6px;
  font-weight: 800;
  font-size: clamp(20px, 6.4vw, 30px);
  line-height: 1.2;
}

.profile_movie {
  max-width: 300px;
}
@media screen and (max-width: 820px) {
  .profile_movie {
    max-width: 100%;
    margin: 0 0 20px;
  }
}

/*------------------ 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 (min-width: 821px) and (max-width: 1199px) {
  .hotel {
    padding: 50px 40px 0 122px;
  }
}
@media screen and (max-width: 820px) {
  .hotel {
    padding: 50px 0;
  }
}
.hotel .__area {
  max-width: 1600px;
  margin: auto;
  padding: 75px 0 0;
}
@media screen and (max-width: 820px) {
  .hotel .__area {
    padding: 20px 0 0;
  }
}
.hotel .__area ul {
  display: flex;
  flex-wrap: wrap;
  padding: 10px;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .hotel .__area ul {
    padding: 0;
  }
}
@media screen and (max-width: 820px) {
  .hotel .__area ul {
    padding: 10px 10px 0;
  }
}
.hotel .__area li {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 16.6666666667%;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .hotel .__area li {
    width: 33.3333333333%;
    font-size: 1.2rem;
  }
}
.hotel .__area li a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 25px 0px;
  background-color: #212529;
  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;
}
@media screen and (max-width: 820px) {
  .hotel .__area li a {
    padding: 15px 0px;
    font-size: 1.2rem;
  }
}
.hotel .__area li a:hover {
  background-color: #0abab5;
}
.hotel .googlemap {
  max-width: 1580px;
  margin: auto;
  padding: 50px 0 0;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .hotel .googlemap {
    padding: 20px 0 0;
  }
}
@media screen and (max-width: 820px) {
  .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 #d2b48c;
  background-color: #0abab5;
  border-radius: 5px;
  box-shadow: 0 0 2px 2px white;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .hotellist .hotel-name {
    width: 24%;
  }
}
.hotellist .hotel-address {
  width: 35%;
}
@media screen and (max-width: 820px) {
  .hotellist .hotel-address {
    width: 30%;
  }
}
.hotellist .hotel-tel {
  width: 10%;
}
@media screen and (max-width: 820px) {
  .hotellist .hotel-tel {
    width: 16%;
    text-align: center;
  }
}
.hotellist .hotel-other {
  width: 25%;
}
@media screen and (max-width: 820px) {
  .hotellist .hotel-other {
    width: 20%;
  }
}

.hotellist table.pt01 {
  width: 100%;
  font-size: 1.5rem;
}
@media screen and (max-width: 820px) {
  .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: 820px) {
  .hotellist table {
    font-size: 1.3rem;
  }
}

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

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

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

.hotellist a {
  color: #212529;
}

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

遊び方＆注意事項

================================*/
.howto {
  max-width: 1280px;
  margin: 0px auto 0;
  width: 100%;
}
@media screen and (max-width: 820px) {
  .howto {
    padding: 0 15px;
  }
}
.howto__truth {
  font-size: 2.2rem;
  font-weight: bold;
  color: white;
  background-color: #37beb0;
  padding: 20px;
  margin-top: 30px;
  border-radius: 100vh;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .howto__truth {
    margin-top: 10px;
    padding: 10px;
    font-size: 2rem;
  }
}

.guide {
  padding-bottom: 35px;
}

.guide dl {
  display: flex;
  flex-wrap: wrap;
  width: 560px;
  margin: auto;
  padding-bottom: 20px;
}
@media screen and (max-width: 820px) {
  .guide dl {
    width: 300px;
  }
}

.guide .arrow i {
  display: block;
  padding: 10px;
  color: #20908a;
  font-size: 30px;
  text-align: center;
}

.guide-btn {
  display: inline-block;
  background-color: #37beb0;
  color: #fff;
  width: 260px;
  margin: 10px;
  padding: 20px 0;
  font-size: 18px;
  font-weight: bold;
  text-decoration: none;
  text-shadow: 0px 1px 1px #000;
  border-radius: 6px;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
  -webkit-tap-highlight-color: transparent;
  transition: 0.2s ease-out;
  text-align: center;
}

.guide-btn:hover {
  cursor: pointer;
  text-decoration: none;
  transform: translateY(-4px);
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 3px 10px 0 rgba(0, 0, 0, 0.12), 0 4px 7px -2px rgba(0, 0, 0, 0.2);
}

.guide-btn span {
  color: #ff0;
  font-size: 22px;
}

.guide-step {
  width: 200px;
  margin: auto;
}

.guide-text {
  padding: 20px;
  border: 1px solid #37beb0;
  font-weight: bold;
  background: #fff;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  line-height: 1.5;
}

.guide-text a {
  color: #37beb0;
}

.guide-text span {
  color: #b38546;
  font-size: 2rem;
}

.guide-text .staff {
  color: #b38546;
  font-size: 2rem;
}

.guide-text .hissu {
  color: #f00;
  font-size: 2rem;
}

.matter {
  font-size: 1.4rem;
  line-height: 1.5;
}

.tousatsu {
  padding: 25px;
  background-color: #81d8d0;
}

.tousatsu .inner {
  background: #fff;
  padding: 25px;
  font-weight: bold;
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  line-height: 1.5;
}

.tousatsu .inner span {
  display: block;
  color: red;
  font-size: 20px;
}

.kinshi {
  width: auto;
  margin: 20px 0;
  padding: 30px;
  border: 1px solid #37beb0;
  font-size: 12px;
  font-weight: bold;
  background: #fff;
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  line-height: 1.5;
}

.kinshi li {
  padding: 5px 0;
  border-bottom: 1px dotted #fbd4e1;
}

.kinshi li:last-child {
  border-bottom: 0px dotted #fbd4e1;
}

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

料金システム

================================*/
.system {
  max-width: 1280px;
  margin: 0px auto 0;
  width: 100%;
}
@media screen and (max-width: 820px) {
  .system {
    padding: 0 15px;
  }
}
.system__truth {
  font-size: 2.2rem;
  font-weight: bold;
  color: white;
  background-color: #37beb0;
  padding: 20px;
  margin: 30px 0 10px;
  border-radius: 100vh;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .system__truth {
    margin-top: 20px;
    padding: 10px;
    font-size: 2rem;
  }
}
.system__truth-sub {
  font-size: 2.2rem;
  font-weight: bold;
  color: white;
  background-color: #bc75c5;
  padding: 20px;
  margin: 30px 0 10px;
  border-radius: 100vh;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .system__truth-sub {
    margin-top: -5px;
    padding: 10px;
    font-size: 2rem;
  }
}
.system__basic {
  padding: 20px 0;
  border: 1px solid #37beb0;
  font-weight: bold;
  line-height: 2;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .system__basic {
    padding: 15px;
    font-size: 1.2rem;
    line-height: 1.5;
  }
}
.system__basic span {
  display: block;
  color: #ff6ab4;
  font-size: 3rem;
}
@media screen and (max-width: 820px) {
  .system__basic span {
    font-size: 1.8rem;
  }
}
.system__basic em {
  font-style: normal;
  color: blue;
  font-size: 2.2rem;
}
@media screen and (max-width: 820px) {
  .system__basic em {
    font-size: 1.5rem;
  }
}
.system__price, .system__price-sub {
  margin: 30px 0 100px;
  box-shadow: 0 0 5px 5px rgba(55, 190, 176, 0.2);
  border-radius: 20px;
  font-size: 2rem;
}
.system__price {
  padding: 50px 100px 80px;
}
.system__price-sub {
  margin: 30px 0 0;
  padding: 50px;
  box-shadow: 0 0 5px 5px rgba(188, 117, 197, 0.2);
}
@media screen and (max-width: 820px) {
  .system__price, .system__price-sub {
    margin: -10px 0 10px;
    padding: 0;
    font-size: 1.8rem;
    box-shadow: none;
  }
}
.system__text {
  padding: 20px 0 0;
  font-weight: bold;
  text-align: center;
  line-height: 2;
}
@media screen and (max-width: 820px) {
  .system__text {
    padding: 10px 0 0;
    font-size: 1.2rem;
    line-height: 1.5;
  }
}
.system__shop {
  max-width: 1600px;
  margin: auto;
  padding: 100px 0 75px;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system__shop {
    padding: 50px 0px 20px;
  }
}
.system__shop ul {
  display: flex;
  flex-wrap: wrap;
}
.system__shop li {
  width: 33.3333333333%;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system__shop li {
    width: 100%;
    margin: 0 0 10px;
  }
}
.system .price_01,
.system .price_02,
.system .price_03 {
  width: 95%;
  margin: auto;
}
.system .price_01 a,
.system .price_02 a,
.system .price_03 a {
  position: relative;
  display: block;
  border-radius: 10px;
  padding: 20px 0;
  color: white;
  font-size: 2.5rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
  line-height: 1.2;
}
@media screen and (max-width: 820px) {
  .system .price_01 a,
.system .price_02 a,
.system .price_03 a {
    padding: 15px 0;
    font-size: 2rem;
  }
}
.system .price_01 a span,
.system .price_02 a span,
.system .price_03 a span {
  display: block;
  font-size: 1.8rem;
}
.system .price_01 a i,
.system .price_02 a i,
.system .price_03 a i {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translate(0%, -50%);
}
.system .price_01 a:hover,
.system .price_02 a:hover,
.system .price_03 a:hover {
  background-color: white;
  color: #212529;
  transition-duration: 0.4s;
}
.system .price_01 {
  background-color: #eb909c;
  border-radius: 10px;
}
.system .price_02 {
  background-color: #d2b48c;
  border-radius: 10px;
}
.system .price_03 {
  background-color: #5bc0de;
  border-radius: 10px;
}
.system .bg-01 {
  background: url("../images/bg_sys_01.jpg") center center;
  background-size: 100%;
}
.system .bg-02 {
  background: url("../images/bg_sys_02.jpg") center center;
  background-size: 100%;
}
.system .bg-03 {
  background: url("../images/bg_sys_03.jpg") center center;
  background-size: 100%;
}
.system .t-01 {
  background-color: #fcd1d6;
}
.system .t-02 {
  background-color: #faeedf;
}
.system .t-03 {
  background-color: #dcf6fd;
}
.system__concept {
  text-align: center;
  line-height: 2;
}
@media screen and (max-width: 820px) {
  .system__concept {
    padding: 0 10px;
    font-size: 1.4rem;
    line-height: 1.5;
  }
  .system__concept h2 {
    display: block;
    margin: 0 0 10px;
  }
}
.system__box {
  max-width: 1570px;
  margin: auto;
  margin-top: 100px;
  padding: 100px;
  color: white;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system__box {
    margin-top: 40px;
    padding: 30px 10px;
  }
}
.system__box h2 {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3.5rem;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .system__box h2 {
    font-size: 2.5rem;
  }
}
.system__box h2::before,
.system__box h2::after {
  content: "";
  width: 3px;
  height: 40px;
  background-color: white;
}
.system__box h2::before {
  margin-right: 30px;
  transform: rotate(-35deg);
}
.system__box h2::after {
  margin-left: 30px;
  transform: rotate(35deg);
}
.system__box h3 {
  display: block;
  margin: 50px 0 0;
  font-size: 2.5rem;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.5;
}
@media screen and (max-width: 820px) {
  .system__box h3 {
    margin: 30px 0 0;
  }
}
.system__box h3::before {
  content: attr(data-en);
  display: block;
  color: #212529;
  font-size: 18px;
}
.system__box h3::after {
  content: "";
  display: block;
  width: 50px;
  height: 1px;
  background-color: #212529;
}
.system__box ul {
  display: flex;
  flex-wrap: wrap;
  margin: 50px 0 0;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system__box ul {
    margin: 10px 0 0;
  }
}
.system__box li {
  width: 50%;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system__box li {
    width: 100%;
  }
}
.system__box .__list {
  display: flex;
  flex-wrap: wrap;
  margin: 10px;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .system__box .__list {
    margin: 10px 0 0 0;
  }
}
.system__box .__list .time {
  width: 48%;
  height: 60px;
  margin: 1px;
  line-height: 60px;
  vertical-align: middle;
}
@media screen and (max-width: 820px) {
  .system__box .__list .time {
    width: 32%;
  }
}
.system__box .__list .time p {
  color: #212529;
  font-size: 2rem;
}
@media screen and (max-width: 820px) {
  .system__box .__list .time p {
    font-size: 1.8rem;
  }
}
.system__box .__list .time span {
  display: block;
  margin-top: -43px;
  color: red;
  font-size: 1.3rem;
  font-weight: bold;
}
.system__box .__list .yen {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 48%;
  height: 60px;
  margin: 1px;
  background: white;
  color: #212529;
  vertical-align: middle;
  border: 1px #bbb solid;
}
@media screen and (max-width: 820px) {
  .system__box .__list .yen {
    width: 66.5%;
  }
}
.system__box .__list .yen p {
  font-size: 2.8rem;
  font-weight: bold;
}
@media screen and (max-width: 820px) {
  .system__box .__list .yen p {
    font-size: 2.5rem;
  }
}
.system__box .__list .yen span {
  display: block;
  font-size: 1.1rem;
}
@media screen and (max-width: 820px) {
  .system__box .__list .yen span {
    font-size: 1rem;
  }
}
.system__box .text {
  padding: 25px 0 0;
  color: #212529;
  font-size: 1.5rem;
  font-weight: 500;
  text-align: center;
  line-height: 1.5;
}
@media screen and (max-width: 820px) {
  .system__box .text {
    font-size: 1.4rem;
  }
}
.system .__basic {
  margin: 50px 0 0;
  border-top: 1px solid white;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .__basic {
    padding: 0 20px;
  }
}
@media screen and (max-width: 820px) {
  .system .__basic {
    margin: 30px 0 0;
    padding: 0;
  }
}
.system .__basic .list-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
}
@media screen and (max-width: 820px) {
  .system .__basic .list-wrapper {
    gap: 8px;
  }
}
.system .__basic .list {
  padding: 10px 20px;
  background-color: white;
  color: #212529;
  line-height: 1.5;
  border-radius: 100vh;
  text-align: center;
  font-size: 1.5rem;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .__basic .list {
    font-size: 1.3rem;
  }
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .__basic .list {
    padding: 10px 15px;
    font-size: 1.2rem;
  }
}
.system .__basic .list small {
  display: block;
}
.system .__basic .text {
  display: block;
  color: red;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.5;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .__basic .text {
    font-size: 1.2rem;
  }
}
.system .__basic .text span {
  display: block;
  font-size: 2rem;
}
.system .option ul {
  margin: 0;
}
.system .option li {
  width: 25%;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .option li {
    width: 50%;
  }
}
@media screen and (max-width: 820px) {
  .system .option li {
    width: 100%;
  }
}
.system .option .__list {
  display: flex;
  margin: 10px 5px 0 5px;
  border: 1px solid #212529;
  font-size: 1.4rem;
}
.system .option .__list .left {
  width: 50%;
  padding: 10px 0;
  background-color: #212529;
}
.system .option .__list .right {
  width: 50%;
  padding: 10px 0;
  background-color: white;
  color: #212529;
}
.system .option .__list .right span {
  font-size: 1rem;
}
.system .card {
  position: relative;
  top: 150px;
  padding: 150px 0;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .card {
    top: 100px;
    padding: 100px 10px 50px;
  }
}
.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 (min-width: 821px) and (max-width: 1199px) {
  .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: 820px) {
  .system .card dl {
    padding: 20px 0 0;
  }
}
.system .card dd {
  width: 50%;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .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: 820px) {
  .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: 820px) {
  .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: 820px) {
  .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: auto;
}
.system .area {
  position: relative;
  top: 150px;
  padding: 150px 0;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .area {
    top: 100px;
    padding: 50px 10px;
  }
}
.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%;
  transform: skewY(-5deg);
  z-index: -1;
}
.system .area h2 {
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  text-align: center;
  line-height: 1.5;
}
.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 (min-width: 821px) and (max-width: 1199px) {
  .system .area table {
    width: 100%;
    margin-top: 25px;
    font-size: 1.2rem;
  }
}
.system .area th {
  padding: 20px;
  background-color: #0abab5;
  color: white;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .area th {
    padding: 20px 0;
  }
}
.system .area td {
  min-width: 200px;
  padding: 40px 20px;
  background-color: white;
  text-align: center;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .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: 820px) {
  .system .area td span {
    font-size: 1rem;
  }
}
.system .flow {
  padding: 300px 0 0;
}
@media screen and (min-width: 821px) and (max-width: 1199px) {
  .system .flow {
    padding: 150px 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: #212529;
  border-radius: 100vh;
  color: white;
  font-weight: normal;
  font-size: 1.8rem;
  text-align: center;
}
.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: 820px) {
  .system .flow .__inner {
    padding: 20px 20px 0;
    font-size: 1.2rem;
  }
}
.system .flow .__inner p {
  padding: 20px 0;
}

/* 入会金・指名料バナー（テキストのみ） */
.fee-banner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 24px 16px;
  text-align: center;
  line-height: 1.35;
}

.fee-banner__heading {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 0.3em;
  margin: 0 0 16px;
}

.fee-banner__free {
  color: #d91515; /* 赤 */
  font-weight: 700;
  font-size: clamp(30px, 6vw, 64px);
}

.fee-banner__fee {
  font-weight: 700;
  font-size: clamp(26px, 5.5vw, 30px);
  letter-spacing: 0.02em;
}

.fee-banner__label {
  margin-right: 0.25em;
}

.fee-banner__divider {
  width: min(92%, 1100px);
  height: 2px;
  border: 0;
  margin: 8px auto 20px;
  background-color: #81d8d0;
}

.fee-banner__note {
  font-size: clamp(13px, 2.6vw, 18px);
  font-weight: bold;
}

.fee-banner__note-sub {
  display: inline-block;
  margin-left: 0.25em;
  font-size: 0.9em;
  letter-spacing: 0.06em;
  opacity: 0.9;
}

/* スマホで長文が折返しやすいように */
@media screen and (max-width: 820px) {
  .fee-banner__note-sub {
    display: block;
    margin-top: 0.25em;
  }
}
.delivery-fee {
  font-weight: 500;
  line-height: 1.5;
}
@media screen and (max-width: 820px) {
  .delivery-fee {
    margin-top: 20px;
    font-size: 1.3rem;
  }
}
.delivery-fee span {
  font-size: clamp(18px, 2vw, 30px);
  font-weight: bold;
}
.delivery-fee__box {
  margin-bottom: 10px;
  padding: 20px 30px 30px;
  border: 1px solid transparent;
}
@media screen and (max-width: 820px) {
  .delivery-fee__box {
    padding: 10px;
  }
}
.delivery-fee__box--red {
  border-color: #f00;
}
.delivery-fee__box--cyan {
  border-color: #00c4ff;
}
.delivery-fee__box--magenta {
  border-color: #f0f;
}
.delivery-fee__price--red {
  color: #f00;
}
.delivery-fee__price--cyan {
  color: #00c4ff;
}
.delivery-fee__price--magenta {
  color: #f0f;
}

.extend-banner {
  width: 100%;
  margin: 50px 0 100px;
  box-shadow: 0 8px 22px rgba(131, 102, 34, 0.4);
  background: linear-gradient(180deg, #cfa647 0%, #ac862d 100%);
  border-radius: 18px;
  padding: 18px;
}
@media screen and (max-width: 820px) {
  .extend-banner {
    margin: 0 0 40px;
    padding: 0px;
  }
}
.extend-banner__inner {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 14px;
  padding: clamp(16px, 2.5vw, 26px) clamp(0px, 3vw, 36px);
}
.extend-banner__main {
  color: #fff;
  margin: 0;
  font-weight: 700;
  font-size: clamp(18px, 2.4vw, 32px);
  line-height: 1.6;
  text-align: center;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.45);
}
.extend-banner__main b {
  font-weight: 800;
  letter-spacing: 0.02em;
}
.extend-banner__sep {
  opacity: 0.9;
}
.extend-banner__sub {
  color: #fff;
  text-align: center;
  margin: 8px 0 0;
  font-size: clamp(13px, 1.6vw, 18px);
  line-height: 1.7;
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.4);
}

.option-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 1.2vw, 18px);
  align-items: stretch;
}
@media screen and (max-width: 820px) {
  .option-grid {
    grid-template-columns: 1fr;
  }
}

/* 共通ボタン */
.option-card {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: bold;
  padding: clamp(12px, 1.8vw, 18px) clamp(10px, 2vw, 22px);
  border: 1px solid #cfcfcf;
  border-radius: 4px;
  background: linear-gradient(180deg, #f4f4f4 0%, #e7e7e7 100%);
  box-shadow: 0 1px 0 #fff inset, 0 8px 14px -8px rgba(0, 0, 0, 0.18);
  color: #444;
  text-decoration: none;
  font-size: clamp(15px, 1.6vw, 22px);
  line-height: 1.6;
  transition: transform 0.08s ease, box-shadow 0.12s ease, filter 0.12s ease;
}
.option-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 1px 0 #fff inset, 0 12px 18px -10px rgba(0, 0, 0, 0.18);
  filter: saturate(1.05);
}
.option-card:active {
  transform: translateY(0);
  filter: saturate(0.98);
}
@media screen and (max-width: 820px) {
  .option-card {
    width: 100%;
    justify-content: center;
  }
}

/* 左上の赤い特大ボタン */
.option-card--featured {
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  border-color: #780d15;
  background: linear-gradient(180deg, #b4131f 0%, #8f0f19 60%, #6e0b12 60%, #6e0b12 100%);
  box-shadow: 0 8px 18px -8px rgba(0, 0, 0, 0.35), 0 1px 0 rgba(255, 255, 255, 0.25) inset;
}
.option-card--featured .option-card__main {
  font-weight: 800;
  font-size: clamp(18px, 2.2vw, 30px);
  letter-spacing: 0.02em;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
}
.option-card--featured .option-card__cta {
  display: inline-block;
  margin-top: clamp(6px, 0.8vw, 10px);
  font-weight: 700;
  font-size: clamp(16px, 2vw, 26px);
  letter-spacing: 0.04em;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
  background-image: linear-gradient(#e7c64b, #e7c64b);
  background-repeat: no-repeat;
  background-size: 100% 0.2em;
  background-position: 0 100%;
  padding-bottom: 0.1em;
}

@media screen and (max-width: 820px) {
  .option-card {
    padding: 12px 14px;
    font-size: 1.6rem;
  }
  .option-card--featured {
    align-items: center;
    text-align: center;
  }
}
.premium-options {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 1.4vw, 14px);
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 820px) {
  .premium-options {
    flex-direction: column;
  }
}

.premium-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  text-decoration: none;
  color: #fff;
  padding: clamp(16px, 1.2vw, 12px) clamp(16px, 2.4vw, 28px);
  min-height: clamp(38px, 5vw, 48px);
  border-radius: 4px;
  border: 1px solid #754f13;
  background: linear-gradient(180deg, #e4c974 0%, #cfa647 55%, #b78727 100%);
  box-shadow: 0 10px 14px -8px rgba(0, 0, 0, 0.25), 0 1px 0 rgba(255, 255, 255, 0.45) inset, 0 -2px 10px rgba(138, 93, 22, 0.35) inset;
  text-shadow: 0 1px 0px rgba(0, 0, 0, 0.45), 0 0 2px rgba(0, 0, 0, 0.35);
  font-weight: 700;
  font-size: clamp(18px, 1.6vw, 20px);
  letter-spacing: 0.02em;
  transition: transform 0.08s ease, box-shadow 0.12s ease, filter 0.12s ease;
}
.premium-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 18px -10px rgba(0, 0, 0, 0.38), 0 1px 0 rgba(255, 255, 255, 0.45) inset, 0 -2px 10px rgba(138, 93, 22, 0.38) inset;
  filter: saturate(1.05);
}
.premium-btn:active {
  transform: translateY(0);
  filter: saturate(0.98);
}
@media screen and (max-width: 820px) {
  .premium-btn {
    width: 100%;
    justify-content: center;
  }
}

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

カード決済

================================*/
.card-text {
  margin: 30px 0 100px;
  padding: 50px;
  box-shadow: 0 0 5px 5px rgba(55, 190, 176, 0.2);
  border-radius: 20px;
  font-size: 2rem;
  font-weight: bold;
  border-radius: 10px;
  line-height: 1.5;
}
@media screen and (max-width: 820px) {
  .card-text {
    margin: 30px 0;
    padding: 20px;
    font-size: 1.4rem;
    box-shadow: none;
  }
}

.card-text h2 {
  display: block;
  margin: 25px 0 10px;
  padding: 0.25em 0em;
  color: #20908a;
  font-size: 2rem;
  font-weight: bold;
  background: transparent;
  border-left: solid 5px #81d8d0;
}

.card-text-sub {
  padding-bottom: 25px;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.5;
}

.color01 {
  color: #b38546;
  font-size: 1.6rem;
}

.color02 {
  color: #cc4297;
  font-size: 1.4rem;
}

.color03 {
  display: block;
  margin-top: 10px;
  color: #f2286b;
  font-size: 1.5rem;
}

.color04 {
  display: block;
  margin-top: 10px;
  color: #f2286b;
  font-size: 1.5rem;
}

.card-table {
  width: auto;
  margin: 7px;
  font-size: 1.1rem;
  font-weight: bold;
  text-shadow: #fff 2px 0px 2px, #fff -2px 0px 2px, #fff 0px -2px 2px, #fff -2px 0px 2px, #fff 2px 2px 2px, #fff -2px 2px 2px, #fff 2px -2px 2px, #fff -2px -2px 2px, #fff 1px 2px 2px, #fff -1px 2px 2px, #fff 1px -1px 2px, #fff -1px -1px 2px, #fff 2px 1px 2px, #fff -2px 1px 2px, #fff 2px -1px 2px, #fff -2px -1px 2px, #fff 1px 1px 2px, #fff -1px 1px 2px, #fff 1px -1px 2px, #fff -1px -1px 2px;
  line-height: 1.5;
}

.card-table th {
  color: #ff2da0;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: left;
}

.manga ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}
@media screen and (max-width: 820px) {
  .manga ul {
    gap: 10px;
  }
}
.manga img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}
.manga__hidden {
  display: none;
}

.costume ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
}
@media screen and (max-width: 820px) {
  .costume ul {
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.costume a {
  text-decoration: none;
  display: block;
}
.costume img {
  display: block;
  width: 100%;
  aspect-ratio: 3/4;
  height: auto;
  object-fit: cover;
  object-position: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}
.costume__hidden {
  display: none;
}
.costume__name {
  padding: 15px 0;
  background-color: #81d8d0;
  font-weight: bold;
  color: white;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .costume__name {
    padding: 10px 0;
    font-size: 1.3rem;
  }
}

/* ====== 料金テーブル（WEEKLY系） ====== */
/* テーマ色 */
.price-sp {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  /* PCの並び順（初期） */
  /* タイトル帯 */
  /* 角丸外枠 */
  /* バッジ */
  /* テーブル共通 */
  /* オールタイム */
  /* ハッピープライス */
  /* デリバリーコース（ハッピーの色違い） */
  /* 花びら回転 */
  /* 3Pコース */
}
.price-sp .inner {
  width: 75%;
  margin: auto;
}
@media screen and (max-width: 820px) {
  .price-sp .inner {
    width: 100%;
  }
}
.price-sp .u-small {
  font-size: 0.78em;
}
@media screen and (min-width: 1200px) {
  .price-sp {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "all all" "happy rose" "happy threep";
    gap: 28px;
  }
}
.price-sp__block {
  margin: 16px 0;
}
@media screen and (min-width: 1200px) {
  .price-sp__block[data-area=all] {
    grid-area: all;
  }
}
@media screen and (min-width: 1200px) {
  .price-sp__block[data-area=happy] {
    grid-area: happy;
  }
}
@media screen and (min-width: 1200px) {
  .price-sp__block[data-area=rose] {
    grid-area: rose;
  }
}
@media screen and (min-width: 1200px) {
  .price-sp__block[data-area=threep] {
    grid-area: threep;
  }
}
.price-sp__title {
  text-align: center;
  padding: 20px 14px;
  border-radius: 14px 14px 0 0;
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.04em;
  font-size: clamp(16px, 4.6vw, 28px);
}
.price-sp__title span {
  display: inline-block;
}
.price-sp__title--teal {
  background: #12b3b3;
}
.price-sp__title--yellow {
  background: #f3b41a;
}
.price-sp__title--pink {
  background: #ff6ab4;
}
.price-sp__title--green {
  background: #2fb765;
}
.price-sp__title--purple {
  background: #bc75c5;
}
.price-sp__tablewrap {
  position: relative;
  border-radius: 0 0 14px 14px;
  background: #fff;
}
.price-sp__tablewrap::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 2px solid;
  pointer-events: none;
}
.price-sp__tablewrap--teal::after {
  border-color: #12b3b3;
}
.price-sp__tablewrap--yellow::after {
  border-color: #f3b41a;
}
.price-sp__tablewrap--pink::after {
  border-color: #ff6ab4;
}
.price-sp__tablewrap--green::after {
  border-color: #2fb765;
}
.price-sp__tablewrap--purple::after {
  border-color: #bc75c5;
}
.price-sp .badge {
  position: absolute;
  left: 10px;
  width: 50px;
  height: 50px;
  border-radius: 100vh;
  font-size: clamp(10px, 2.6vw, 13px);
  font-weight: 800;
  color: #fff;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 2;
  animation: badge-bounce 2.2s ease-in-out infinite;
}
@media screen and (max-width: 820px) {
  .price-sp .badge {
    width: 35px;
    height: 35px;
    left: -7px;
  }
}
.price-sp .badge--teal {
  background: #12b3b3;
}
.price-sp .badge--yellow {
  background: #f3b41a;
}
@media screen and (max-width: 820px) {
  .price-sp .badge--yellow {
    margin-left: 20px;
  }
}
.price-sp .badge--purple {
  background: #bc75c5;
  margin-left: 8px;
}
@media screen and (max-width: 820px) {
  .price-sp .badge--purple {
    margin-left: 20px;
  }
}
@keyframes badge-bounce {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.2);
  }
}
.price-sp__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  text-align: center;
  font-weight: 800;
  background: #fff;
}
.price-sp__table thead th {
  padding: 11px 6px;
  font-size: clamp(12px, 3.6vw, 14px);
  background: #dcf6f2;
  border: 0;
}
.price-sp__table tbody th,
.price-sp__table tbody td {
  padding: 12px 0;
  font-size: clamp(16px, 5.6vw, 28px);
  vertical-align: middle;
  border: 0;
  word-break: keep-all;
}
@media screen and (min-width: 1200px) {
  .price-sp__table thead th {
    font-size: 30px;
    padding: 14px 10px;
  }
  .price-sp__table tbody th,
.price-sp__table tbody td {
    font-size: 30px;
    padding: 16px 12px;
  }
}
.price-sp__table th.is-time {
  width: auto;
  font-weight: 900;
  background: #e6fffe;
}
@media screen and (max-width: 820px) {
  .price-sp__table th.is-time {
    width: 90px;
  }
}
.price-sp__table--all thead th {
  border-bottom: 1px solid #12b3b3;
}
.price-sp__table--all thead th:not(:last-child) {
  border-right: 1px solid #12b3b3;
}
.price-sp__table--all tbody th,
.price-sp__table--all tbody td {
  border-bottom: 1px solid #12b3b3;
}
.price-sp__table--all tbody th:not(:last-child),
.price-sp__table--all tbody td:not(:last-child) {
  border-right: 1px solid #12b3b3;
}
.price-sp__table--all tbody tr:last-child th,
.price-sp__table--all tbody tr:last-child td {
  border-bottom: 0;
}
.price-sp__table--all th.is-time {
  background: rgba(18, 179, 179, 0.1);
}
@media screen and (max-width: 820px) {
  .price-sp .price-sp__table--all thead th {
    height: 40px;
    font-size: 14px !important;
    padding: 4px 2px !important;
  }
  .price-sp .price-sp__table--all tbody th,
.price-sp .price-sp__table--all tbody td {
    font-size: 18px !important;
    padding: 10px 2px !important;
    line-height: 0.5;
  }
}
.price-sp__table--happy thead {
  display: none;
}
.price-sp__table--happy tbody th,
.price-sp__table--happy tbody td {
  border-bottom: 1px solid #f3b41a;
}
.price-sp__table--happy tbody th:not(:last-child),
.price-sp__table--happy tbody td:not(:last-child) {
  border-right: 1px solid #f3b41a;
}
.price-sp__table--happy tbody tr:last-child > * {
  border-bottom: 0;
}
.price-sp__table--happy th.is-time {
  background: rgba(243, 180, 26, 0.14);
  width: 42%;
}
.price-sp__table--delivery {
  /* 2列なのでヘッダなし */
}
.price-sp__table--delivery thead {
  display: none;
}
.price-sp__table--delivery tbody th,
.price-sp__table--delivery tbody td {
  border-bottom: 1px solid #bc75c5;
}
.price-sp__table--delivery tbody th:not(:last-child),
.price-sp__table--delivery tbody td:not(:last-child) {
  border-right: 1px solid #bc75c5;
}
.price-sp__table--delivery tbody tr:last-child > * {
  border-bottom: 0;
}
.price-sp__table--delivery th.is-time {
  background: rgba(188, 117, 197, 0.14);
  width: 42%;
}
.price-sp__table--rose thead {
  display: none;
}
.price-sp__table--rose tbody th,
.price-sp__table--rose tbody td {
  border-bottom: 1px solid #ff6ab4;
}
.price-sp__table--rose tbody th:not(:last-child),
.price-sp__table--rose tbody td:not(:last-child) {
  border-right: 1px solid #ff6ab4;
}
.price-sp__table--rose tbody tr:last-child > * {
  border-bottom: 0;
}
.price-sp__table--rose th.is-time {
  background: rgba(255, 106, 180, 0.16);
  width: 62%;
}
.price-sp__note {
  margin: 18px;
  padding: 20px 0;
  text-align: center;
  font-size: clamp(20px, 4.8vw, 25px);
  line-height: 1.6;
  font-weight: 900;
}
@media screen and (min-width: 1200px) {
  .price-sp__note {
    margin: 22px;
    padding: 0;
    height: 120px;
    line-height: 120px;
  }
}
.price-sp__note strong {
  font-weight: 900;
}

/* オールタイム：時間セルの中で time と badge を整列 */
.price-sp__table--all th.is-time {
  display: flex;
  flex-direction: column; /* SPは縦積み */
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  box-sizing: border-box;
}

.price-sp__table--all th.is-time .time {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  white-space: nowrap;
}

/* 円バッジ：中央寄せ＆絶対配置を解除 */
.price-sp__table--all th.is-time .badge {
  display: flex; /* 円の中で上下左右中央 */
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* PC時は横並びにして間隔を確保 */
@media screen and (min-width: 1200px) {
  .price-sp__table--all th.is-time {
    flex-direction: row;
    justify-content: center;
    gap: 12px;
  }
  .price-sp__table--all th.is-time .badge {
    /* inline-blockは不要。flexのままでOK */
    margin-left: 8px;
  }
}
/* ハッピープライス：時間セルは縦積み＋塊(数字+分)は横並びで改行禁止 */
.price-sp__table--happy th.is-time {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
}

.price-sp__table--happy th.is-time .time {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  white-space: nowrap;
}

.price-sp__table--happy th.is-time .badge {
  /* display: block; ←削除 */
  display: flex; /* 円内の中央寄せ */
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* デリバリー：同じ挙動（SP縦／PC横） */
.price-sp__table--delivery th.is-time {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  box-sizing: border-box;
}

.price-sp__table--delivery th.is-time .time {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  white-space: nowrap;
}

.price-sp__table--delivery th.is-time .badge {
  /* 既存 margin:0; は維持しつつ中央寄せを明示 */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* PC：ハッピー／デリバリーは横並びへ */
@media screen and (min-width: 1200px) {
  .price-sp__table--happy th.is-time {
    flex-direction: row;
    justify-content: center;
    gap: 12px;
  }
  .price-sp__table--happy th.is-time .badge {
    /* display: inline-block; ←削除 */
    display: flex; /* PCでもflexのまま中央寄せ維持 */
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-top: 0;
    margin-left: 8px;
  }
  .price-sp__table--delivery th.is-time {
    flex-direction: row;
    gap: 12px;
  }
  /* デリバリー側は gap で並び調整するので個別マージンは不要 */
}
/* PCの最終レイアウト修正
   [ オールタイム ]
   [ ハッピープライス | 右カラム(花びら+3P) ]
   [ デリバリー      | 右カラム(花びら+3P) ]
*/
@media screen and (min-width: 1200px) {
  .price-sp {
    display: block;
    grid-template-areas: none;
    grid-template-columns: none;
    gap: 28px;
  }
  .price-sp__block {
    margin: 28px 0; /* 既存感に合わせた余白 */
  }
  .price-sp__rightcol {
    display: contents;
  }
}
/* オールタイム：個別ヘッダーだけ小さく */
.price-sp__head {
  font-size: clamp(14px, 2.4vw, 24px) !important;
  font-weight: 700;
  padding: 6px 4px !important;
  line-height: 1.4;
  text-align: center;
}

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

悪質店

================================*/
.alert-scam {
  max-width: 1280px;
  margin: 0px auto 0;
  width: 100%;
  text-align: center;
}
@media screen and (max-width: 820px) {
  .alert-scam {
    padding: 0 15px;
  }
}
.alert-scam__title {
  display: inline-block;
  font-size: 26px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
  border-bottom: 6px solid #000;
  padding-bottom: 10px;
}
.alert-scam__desc {
  line-height: 2.5;
  margin-bottom: 20px;
}
@media screen and (max-width: 820px) {
  .alert-scam__desc {
    font-size: 1.5rem;
    line-height: 1.8;
  }
}
.alert-scam__desc .alert-scam__note {
  color: red;
  font-weight: bold;
  display: block;
  margin-top: 10px;
}
.alert-scam__block {
  background: #ffffcc;
  padding: 40px;
  margin-top: 20px;
  border-radius: 8px;
}
@media screen and (max-width: 820px) {
  .alert-scam__block {
    padding: 15px;
    font-size: 1.5rem;
    line-height: 1.8;
  }
}
.alert-scam__subtitle {
  display: flex;
  justify-content: center;
  max-width: 350px;
  font-size: 2.5rem;
  font-weight: bold;
  background: #000;
  margin: auto;
  color: yellow;
  padding: 20px;
  margin-bottom: 20px;
}
@media screen and (max-width: 820px) {
  .alert-scam__subtitle {
    padding: 10px;
  }
}
.alert-scam__point {
  display: inline-block;
  font-size: 2.2rem;
  font-weight: bold;
  margin-bottom: 10px;
  border-left: 5px solid #37beb0;
  padding-left: 10px;
}
@media screen and (max-width: 820px) {
  .alert-scam__point {
    font-size: 2rem;
    line-height: 1.2;
  }
}
.alert-scam__text {
  font-size: 1.5rem;
  line-height: 2.5;
  margin-bottom: 20px;
}
@media screen and (max-width: 820px) {
  .alert-scam__text {
    font-size: 1.4rem;
    line-height: 1.8;
  }
}
.alert-scam__images {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 30px;
}
.alert-scam__images figure {
  flex: 1 1 calc(33.333% - 20px);
  text-align: center;
}
.alert-scam__images figure img {
  max-width: 200px;
  margin: auto;
  border: 1px solid #ccc;
}
.alert-scam__images figure figcaption {
  margin-top: 5px;
  font-size: 13px;
}
@media screen and (max-width: 820px) {
  .alert-scam__images {
    flex-direction: column;
  }
  .alert-scam__images figure {
    flex: 1 1 100%;
  }
}
.alert-scam__reality {
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  margin: 30px 0 10px;
}
.alert-scam__result {
  text-align: center;
}
.alert-scam__result img {
  width: 300px;
  margin: auto;
  max-width: 100%;
}
.alert-scam__result .alert-scam__wait {
  font-size: 2.2rem;
  color: #f00;
  font-weight: bold;
  margin-top: 10px;
}
.alert-scam__truth {
  font-size: 2.2rem;
  font-weight: bold;
  color: white;
  background-color: #37beb0;
  padding: 20px;
  margin-top: 30px;
  border-radius: 100vh;
  line-height: 1.5;
}
@media screen and (max-width: 820px) {
  .alert-scam__truth {
    margin-top: 10px;
    padding: 10px;
    font-size: 2rem;
  }
}
.alert-scam__dialog-title {
  font-weight: bold;
  font-size: 2.2rem;
  color: red;
  margin: 20px 0 10px;
}
.alert-scam__dialog {
  background: #f9f9f9;
  padding: 30px;
  margin: 20px 0;
  border-radius: 20px;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 2;
}
@media screen and (max-width: 820px) {
  .alert-scam__dialog {
    padding: 10px;
    border-radius: 10px;
    text-align: left;
    width: 110%;
    margin-left: -5%;
  }
}
.alert-scam__truth.red {
  color: red;
  background: transparent;
  font-weight: bold;
  font-size: 2.2rem;
  padding: 10px 0;
}

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

アクセス

================================*/
.access {
  max-width: 1280px;
  margin: 0px auto 0;
  width: 100%;
}
@media screen and (max-width: 820px) {
  .access {
    padding: 0 15px;
  }
}
.access__text {
  padding: 0 0 30px;
  font-weight: 700;
  line-height: 2;
}
@media screen and (max-width: 820px) {
  .access__text {
    background-color: #e6fffe;
    margin-bottom: 20px;
    padding: 20px;
    font-size: 1.5rem;
    line-height: 1.8;
  }
}

.hotel_title {
  background-image: -webkit-gradient(linear, left top, left bottom, from(#e6c669), to(#a36f12));
  height: 55px;
  line-height: 55px;
  margin-top: 30px;
  font-size: 2rem;
  color: white;
  font-weight: bold;
  text-align: center;
  text-shadow: rgba(0, 0, 0, 0.6) 0 -1px 0;
  border-top: 1px solid #f3dd8e;
  border-bottom: 1px solid #a65c1c;
}

.hotel-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media screen and (max-width: 820px) {
  .hotel-table-wrap {
    border: 1px solid #ccc;
    padding-bottom: 4px;
  }
}

.hotel-table {
  width: 100%;
  border-collapse: collapse;
  font-weight: bold;
  font-size: 1.6rem;
  border: 2px solid #81d8d0;
  min-width: 650px;
}
.hotel-table th,
.hotel-table td {
  border: 1px solid #81d8d0;
  padding: 15px;
}
.hotel-table thead th {
  background-color: #37beb0;
  color: #fff;
  font-weight: bold;
}
.hotel-table tbody tr:nth-child(odd) td {
  background-color: #fefdeb;
}
.hotel-table__business td {
  background-color: #e6fffe !important;
}
@media screen and (max-width: 820px) {
  .hotel-table {
    font-size: 1.4rem;
  }
  .hotel-table th,
.hotel-table td {
    padding: 10px;
  }
}

.way {
  margin-top: 50px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
@media screen and (max-width: 820px) {
  .way {
    grid-template-columns: 1fr;
  }
}
.way li {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.way img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}
@media screen and (max-width: 820px) {
  .way img {
    border-radius: 6px;
  }
}
.way p {
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  line-height: 1.7;
  font-weight: 700;
}
.way p span {
  font-size: 2.2rem;
  color: #37beb0;
}
@media screen and (max-width: 820px) {
  .way p span {
    font-size: 1.8rem;
  }
}

/* ===== Champagne Gold (orange控えめ) ===== */
.line-reserve {
  max-width: 1280px;
  margin: 0px auto 0;
  width: 100%;
}
@media screen and (max-width: 820px) {
  .line-reserve {
    padding: 0 15px;
  }
}
.line-reserve__hero {
  background: linear-gradient(180deg, #5be059 0%, #21b51f 60%, #119d11 100%);
  padding: 24px 16px;
}
@media screen and (max-width: 820px) {
  .line-reserve__hero {
    padding: 20px 12px;
  }
}
.line-reserve__hero-inner {
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.line-reserve__badge {
  font-size: clamp(28px, 6vw, 46px);
  font-weight: 900;
  letter-spacing: 0.08em;
}
.line-reserve__since {
  font-size: clamp(20px, 4.5vw, 40px);
  font-weight: 800;
  margin-left: 8px;
  align-self: center;
  opacity: 0.95;
}
.line-reserve__icon {
  margin-left: auto;
}
.line-reserve__icon img {
  width: clamp(64px, 12vw, 120px);
  height: auto;
  display: block;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
}
.line-reserve__body {
  padding: 32px 0 48px;
}
@media screen and (max-width: 820px) {
  .line-reserve__body {
    padding: 24px 14px 40px;
  }
}
.line-reserve__title {
  font-size: clamp(22px, 4.8vw, 40px);
  font-weight: 900;
  color: #37beb0;
  margin: 8px 0 24px;
}
.line-reserve__block {
  padding: 22px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  line-height: 1.5;
}
.line-reserve__block--caution {
  background-color: #37beb0;
  border: none;
  margin-top: 8px;
  padding-top: 28px;
}
.line-reserve__block2 {
  padding: 30px;
  background-color: #dcf6f2;
  border-radius: 10px;
  line-height: 2;
}
.line-reserve__heading {
  font-size: clamp(18px, 4.5vw, 32px);
  font-weight: 800;
}
.line-reserve__heading .line-reserve__vip {
  display: block;
  padding: 15px 0 0;
  color: #37beb0;
}
.line-reserve__em--green {
  color: #37beb0;
}
.line-reserve__lead {
  font-size: clamp(15px, 3.8vw, 22px);
  margin: 8px 0 4px;
}
.line-reserve__lead strong {
  font-weight: 900;
}
.line-reserve__note {
  font-size: clamp(12px, 3.4vw, 16px);
  opacity: 0.9;
}
.line-reserve__subttl {
  font-size: clamp(18px, 4.6vw, 30px);
  color: #ff2b2b;
  font-weight: 900;
  margin-bottom: 12px;
}
.line-reserve__list {
  counter-reset: num;
  margin: 10px 0 16px 0;
  padding: 0;
}
.line-reserve__list li {
  list-style: none;
  margin: 20px 0;
  display: flex;
  align-items: center;
  gap: 0.6em;
  padding-left: 0;
  font-size: clamp(15px, 3.8vw, 22px);
  font-weight: bold;
}
.line-reserve__list li::before {
  counter-increment: num;
  content: counter(num);
  position: static;
  flex: 0 0 1.7em;
  width: 1.7em;
  height: 1.7em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #20908a;
  color: #fff;
  border-radius: 0.35em;
  font-weight: 800;
  line-height: 1;
}
.line-reserve__member-break {
  padding: 20px 0;
  background: radial-gradient(120% 60% at 18% 0%, rgba(255, 255, 255, 0.45) 0%, rgba(255, 255, 255, 0) 58%), linear-gradient(-180deg, #fff9ee 0%, #fff2cf 22%, #ffe9a9 52%, #f3db85 78%, #e6cd6f 100%);
  border-radius: 100vh;
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
}
.line-reserve__choice {
  opacity: 0.95;
  font-size: 0.95em;
}
.line-reserve__caution {
  font-size: clamp(18px, 4.6vw, 30px);
  color: #ff2b2b;
  font-weight: 900;
  margin-bottom: 10px;
}
.line-reserve__notes {
  margin: 0;
  padding-left: 1.2em;
}
.line-reserve__notes li {
  margin: 6px 0;
  font-size: clamp(14px, 3.6vw, 18px);
}

.dot--circle {
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  margin-right: 0.3em;
  border: 2px solid #ffe000;
  border-radius: 50%;
  vertical-align: 0.02em;
}

.time-strong {
  font-weight: 900;
  font-size: 1.15em;
  color: #ff2b2b;
}

.line-click {
  width: 320px;
  margin: auto;
  margin-top: 20px;
  margin-bottom: 20px;
  border: solid 1px #ddd;
  background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#eee));
  text-align: center;
}

.line-click a {
  display: block;
  padding: 20px;
  color: #000;
  font-size: 1.8rem;
  font-weight: bold;
  text-decoration: none;
}

.pt-5 {
  padding-top: 5px !important;
}

.pb-5 {
  padding-bottom: 5px !important;
}

.pl-5 {
  padding-left: 5px !important;
}

.pr-5 {
  padding-right: 5px !important;
}

.p-5 {
  padding: 5px !important;
}

.pt-10 {
  padding-top: 10px !important;
}

.pb-10 {
  padding-bottom: 10px !important;
}

.pl-10 {
  padding-left: 10px !important;
}

.pr-10 {
  padding-right: 10px !important;
}

.p-10 {
  padding: 10px !important;
}

.pt-15 {
  padding-top: 15px !important;
}

.pb-15 {
  padding-bottom: 15px !important;
}

.pl-15 {
  padding-left: 15px !important;
}

.pr-15 {
  padding-right: 15px !important;
}

.p-15 {
  padding: 15px !important;
}

.pt-20 {
  padding-top: 20px !important;
}

.pb-20 {
  padding-bottom: 20px !important;
}

.pl-20 {
  padding-left: 20px !important;
}

.pr-20 {
  padding-right: 20px !important;
}

.p-20 {
  padding: 20px !important;
}

.pt-25 {
  padding-top: 25px !important;
}

.pb-25 {
  padding-bottom: 25px !important;
}

.pl-25 {
  padding-left: 25px !important;
}

.pr-25 {
  padding-right: 25px !important;
}

.p-25 {
  padding: 25px !important;
}

.pt-30 {
  padding-top: 30px !important;
}

.pb-30 {
  padding-bottom: 30px !important;
}

.pl-30 {
  padding-left: 30px !important;
}

.pr-30 {
  padding-right: 30px !important;
}

.p-30 {
  padding: 30px !important;
}

.pt-35 {
  padding-top: 35px !important;
}

.pb-35 {
  padding-bottom: 35px !important;
}

.pl-35 {
  padding-left: 35px !important;
}

.pr-35 {
  padding-right: 35px !important;
}

.p-35 {
  padding: 35px !important;
}

.pt-40 {
  padding-top: 40px !important;
}

.pb-40 {
  padding-bottom: 40px !important;
}

.pl-40 {
  padding-left: 40px !important;
}

.pr-40 {
  padding-right: 40px !important;
}

.p-40 {
  padding: 40px !important;
}

.pt-45 {
  padding-top: 45px !important;
}

.pb-45 {
  padding-bottom: 45px !important;
}

.pl-45 {
  padding-left: 45px !important;
}

.pr-45 {
  padding-right: 45px !important;
}

.p-45 {
  padding: 45px !important;
}

.pt-50 {
  padding-top: 50px !important;
}

.pb-50 {
  padding-bottom: 50px !important;
}

.pl-50 {
  padding-left: 50px !important;
}

.pr-50 {
  padding-right: 50px !important;
}

.p-50 {
  padding: 50px !important;
}

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

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

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

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

.m-5 {
  margin: 5px !important;
}

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

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

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

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

.m-10 {
  margin: 10px !important;
}

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

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

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

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

.m-15 {
  margin: 15px !important;
}

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

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

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

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

.m-20 {
  margin: 20px !important;
}

.mt-25 {
  margin-top: 25px !important;
}

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

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

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

.m-25 {
  margin: 25px !important;
}

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

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

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

.mr-30 {
  margin-right: 30px !important;
}

.m-30 {
  margin: 30px !important;
}

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

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

.ml-35 {
  margin-left: 35px !important;
}

.mr-35 {
  margin-right: 35px !important;
}

.m-35 {
  margin: 35px !important;
}

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

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

.ml-40 {
  margin-left: 40px !important;
}

.mr-40 {
  margin-right: 40px !important;
}

.m-40 {
  margin: 40px !important;
}

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

.mb-45 {
  margin-bottom: 45px !important;
}

.ml-45 {
  margin-left: 45px !important;
}

.mr-45 {
  margin-right: 45px !important;
}

.m-45 {
  margin: 45px !important;
}

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

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

.ml-50 {
  margin-left: 50px !important;
}

.mr-50 {
  margin-right: 50px !important;
}

.m-50 {
  margin: 50px !important;
}

@media screen and (max-width: 820px) {
  .sp-pt-5 {
    padding-top: 5px !important;
  }
  .sp-pb-5 {
    padding-bottom: 5px !important;
  }
  .sp-pl-5 {
    padding-left: 5px !important;
  }
  .sp-pr-5 {
    padding-right: 5px !important;
  }
  .sp-p-5 {
    padding: 5px !important;
  }
  .sp-mt-5 {
    margin-top: 5px !important;
  }
  .sp-mb-5 {
    margin-bottom: 5px !important;
  }
  .sp-ml-5 {
    margin-left: 5px !important;
  }
  .sp-mr-5 {
    margin-right: 5px !important;
  }
  .sp-m-5 {
    margin: 5px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-10 {
    padding-top: 10px !important;
  }
  .sp-pb-10 {
    padding-bottom: 10px !important;
  }
  .sp-pl-10 {
    padding-left: 10px !important;
  }
  .sp-pr-10 {
    padding-right: 10px !important;
  }
  .sp-p-10 {
    padding: 10px !important;
  }
  .sp-mt-10 {
    margin-top: 10px !important;
  }
  .sp-mb-10 {
    margin-bottom: 10px !important;
  }
  .sp-ml-10 {
    margin-left: 10px !important;
  }
  .sp-mr-10 {
    margin-right: 10px !important;
  }
  .sp-m-10 {
    margin: 10px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-15 {
    padding-top: 15px !important;
  }
  .sp-pb-15 {
    padding-bottom: 15px !important;
  }
  .sp-pl-15 {
    padding-left: 15px !important;
  }
  .sp-pr-15 {
    padding-right: 15px !important;
  }
  .sp-p-15 {
    padding: 15px !important;
  }
  .sp-mt-15 {
    margin-top: 15px !important;
  }
  .sp-mb-15 {
    margin-bottom: 15px !important;
  }
  .sp-ml-15 {
    margin-left: 15px !important;
  }
  .sp-mr-15 {
    margin-right: 15px !important;
  }
  .sp-m-15 {
    margin: 15px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-20 {
    padding-top: 20px !important;
  }
  .sp-pb-20 {
    padding-bottom: 20px !important;
  }
  .sp-pl-20 {
    padding-left: 20px !important;
  }
  .sp-pr-20 {
    padding-right: 20px !important;
  }
  .sp-p-20 {
    padding: 20px !important;
  }
  .sp-mt-20 {
    margin-top: 20px !important;
  }
  .sp-mb-20 {
    margin-bottom: 20px !important;
  }
  .sp-ml-20 {
    margin-left: 20px !important;
  }
  .sp-mr-20 {
    margin-right: 20px !important;
  }
  .sp-m-20 {
    margin: 20px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-25 {
    padding-top: 25px !important;
  }
  .sp-pb-25 {
    padding-bottom: 25px !important;
  }
  .sp-pl-25 {
    padding-left: 25px !important;
  }
  .sp-pr-25 {
    padding-right: 25px !important;
  }
  .sp-p-25 {
    padding: 25px !important;
  }
  .sp-mt-25 {
    margin-top: 25px !important;
  }
  .sp-mb-25 {
    margin-bottom: 25px !important;
  }
  .sp-ml-25 {
    margin-left: 25px !important;
  }
  .sp-mr-25 {
    margin-right: 25px !important;
  }
  .sp-m-25 {
    margin: 25px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-30 {
    padding-top: 30px !important;
  }
  .sp-pb-30 {
    padding-bottom: 30px !important;
  }
  .sp-pl-30 {
    padding-left: 30px !important;
  }
  .sp-pr-30 {
    padding-right: 30px !important;
  }
  .sp-p-30 {
    padding: 30px !important;
  }
  .sp-mt-30 {
    margin-top: 30px !important;
  }
  .sp-mb-30 {
    margin-bottom: 30px !important;
  }
  .sp-ml-30 {
    margin-left: 30px !important;
  }
  .sp-mr-30 {
    margin-right: 30px !important;
  }
  .sp-m-30 {
    margin: 30px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-35 {
    padding-top: 35px !important;
  }
  .sp-pb-35 {
    padding-bottom: 35px !important;
  }
  .sp-pl-35 {
    padding-left: 35px !important;
  }
  .sp-pr-35 {
    padding-right: 35px !important;
  }
  .sp-p-35 {
    padding: 35px !important;
  }
  .sp-mt-35 {
    margin-top: 35px !important;
  }
  .sp-mb-35 {
    margin-bottom: 35px !important;
  }
  .sp-ml-35 {
    margin-left: 35px !important;
  }
  .sp-mr-35 {
    margin-right: 35px !important;
  }
  .sp-m-35 {
    margin: 35px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-40 {
    padding-top: 40px !important;
  }
  .sp-pb-40 {
    padding-bottom: 40px !important;
  }
  .sp-pl-40 {
    padding-left: 40px !important;
  }
  .sp-pr-40 {
    padding-right: 40px !important;
  }
  .sp-p-40 {
    padding: 40px !important;
  }
  .sp-mt-40 {
    margin-top: 40px !important;
  }
  .sp-mb-40 {
    margin-bottom: 40px !important;
  }
  .sp-ml-40 {
    margin-left: 40px !important;
  }
  .sp-mr-40 {
    margin-right: 40px !important;
  }
  .sp-m-40 {
    margin: 40px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-45 {
    padding-top: 45px !important;
  }
  .sp-pb-45 {
    padding-bottom: 45px !important;
  }
  .sp-pl-45 {
    padding-left: 45px !important;
  }
  .sp-pr-45 {
    padding-right: 45px !important;
  }
  .sp-p-45 {
    padding: 45px !important;
  }
  .sp-mt-45 {
    margin-top: 45px !important;
  }
  .sp-mb-45 {
    margin-bottom: 45px !important;
  }
  .sp-ml-45 {
    margin-left: 45px !important;
  }
  .sp-mr-45 {
    margin-right: 45px !important;
  }
  .sp-m-45 {
    margin: 45px !important;
  }
}
@media screen and (max-width: 820px) {
  .sp-pt-50 {
    padding-top: 50px !important;
  }
  .sp-pb-50 {
    padding-bottom: 50px !important;
  }
  .sp-pl-50 {
    padding-left: 50px !important;
  }
  .sp-pr-50 {
    padding-right: 50px !important;
  }
  .sp-p-50 {
    padding: 50px !important;
  }
  .sp-mt-50 {
    margin-top: 50px !important;
  }
  .sp-mb-50 {
    margin-bottom: 50px !important;
  }
  .sp-ml-50 {
    margin-left: 50px !important;
  }
  .sp-mr-50 {
    margin-right: 50px !important;
  }
  .sp-m-50 {
    margin: 50px !important;
  }
}
.radius-0 {
  border-radius: 0 !important;
}

@media screen and (max-width: 820px) {
  .sp-radius-0 {
    border-radius: 0 !important;
  }
}
.radius-5 {
  border-radius: 5px !important;
}

@media screen and (max-width: 820px) {
  .sp-radius-5 {
    border-radius: 5px !important;
  }
}
.radius-10 {
  border-radius: 10px !important;
}

@media screen and (max-width: 820px) {
  .sp-radius-10 {
    border-radius: 10px !important;
  }
}
.radius-15 {
  border-radius: 15px !important;
}

@media screen and (max-width: 820px) {
  .sp-radius-15 {
    border-radius: 15px !important;
  }
}
.radius-20 {
  border-radius: 20px !important;
}

@media screen and (max-width: 820px) {
  .sp-radius-20 {
    border-radius: 20px !important;
  }
}

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