@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Lilita+One&family=Noto+Sans+JP:wght@100..900&display=swap');

/* --------------
 reset
-------------- */
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

ol,
ul {
  list-style: none
}

caption {
  text-align: left
}

img {
  max-width: 100% !important;
  height: auto;
  vertical-align: bottom;
}

iframe {
  max-width: 100% !important;
  border: 0;
}

input {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

/* --------------
 clearfix
-------------- */
div:after,
ul:after,
ol:after,
dl:after,
header:after,
footer:after,
nav:after,
section:after,
article:after {
  content: "";
  display: block;
  clear: both;
}

input,
button,
select,
textarea {
  -webkit-appearance: none;
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  outline: 0;
  border-radius: 0;
}

/* チェックボックスとラジオボタンをデフォルトの表示に戻す */
input[type="checkbox"],
input[type="radio"] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
  appearance: checkbox;
  display: inline-block;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
}

/* --------------
 base
-------------- */
body {
  color: #3B4043;
  font-family: "Noto Sans JP", "Century Gothic", sans-serif;
  word-wrap: break-word;
  overflow-wrap: break-word;
  background-color: #F2F0F6;
}

@media all and (-ms-high-contrast: none) {
  body {
    font: 16px/1.6 '源ノ角ゴシック', 'dnp-shuei-mgothic-std', 'tbudmincho-std', 'montserrat',
      'メイリオ', Meiryo, YuGothic, YuGothicM, 游ゴシック体, 'Yu Gothic', YuGothic,
      'Noto Sans JP', 'Century Gothic', 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro',
      'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
    font-family: "Noto Sans JP", "Century Gothic", sans-serif;
  }
}

body * {
  box-sizing: border-box;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.2;
  word-break: break-word !important;
}

/*h1,h2,h3{
font-family: tbudmincho-std, sans-serif;
}*/
h1 {
  font-size: 1.8em;
}

h2 {
  font-size: 1.3em;
}

h3 {
  font-size: 1.2em;
}

h4 {
  font-size: 1.1em;
}

h5 {
  font-size: 1.0em;
}

h6 {
  font-size: 1.0em;
}

/* link */
a {
  color: #3B4043;
  text-decoration: none;
  z-index: 1;
}

a:hover {
  opacity: .7;
  transition: .3s;
  cursor: pointer;
}

/* ----- decoration (button, etc...) */
.sp_hidden {
  display: none !important;
}

.display_line_one {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.display_line_three {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.display_line_four {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}

/* ----- button */


/* ----- img */
.ofi {
  object-fit: cover;
  font-family: 'object-fit: cover;'
}

.ofi-contain {
  object-fit: contain !important;
  font-family: 'object-fit: contain;'
}

/* ----- fadein */

.fadein {
  opacity: 0.1;
  transform: translate(0, 120px);
  transition: all 800ms;
}

/* 画面内に入った状態 */
.fadein.scrollin {
  opacity: 1;
  transform: translate(0, 0);
}

/* ----- background color */

.beigeBg {
  background-color: #f7f5f4;
}

.bgPink {
  background: url("../img/bgPink.jpg");
}

.squareImg {
  position: relative;
}

.squareImg::before {
  content: "";
  display: block;
  padding-top: 100%;
}

.squareImg img {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}

/* --------------
 tdc reset
-------------- */

main button,
main input,
main select,
main textarea {
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
  background: auto;
  border: solid 1px #999;
}

#container select {
  font-weight: normal;
  border: solid 1px #999;
  border-radius: 0;
  background: #fff;
  /*background-repeat: no-repeat;
  background-position: 100% 50%;*/
}

#container select option {
  font-weight: normal;
}

/* --------------
 SNS share
-------------- */
.modal {
  display: none;
  position: fixed;
  z-index: 99999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  /* 背景を半透明の黒にする */
}

.modal .share-inner {
  padding: 10px;
  padding-top: 16px;
  height: 25%;
  text-align: center;
  font: normal normal normal 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
  background-color: #FFFFFF;
  position: absolute;
  bottom: -100%;
  left: 0;
  right: 0;
  border-top-left-radius: 24px;
  /* 角丸 */
  border-top-right-radius: 24px;
  /* 角丸 */
  transition: bottom 0.3s ease;
  /* アニメーションの設定 */
}

.modal.active .share-inner {
  bottom: 0;
}

.share-buttons {
  height: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  place-content: center;
  line-height: 2;
}

.share-buttons i {
  font-size: 3em;
}

.share-buttons .fa-line {
  color: #00B900;
}

#modalToggleButton {
  width: 30px;
}

.shareSNS {
  text-align: right;
}

/* =header
-------------------------------------------------------------- **/

header {
  width: 100%;
  background: #8D7EA5 0% 0% no-repeat padding-box;
}

.header_menu_inner {
  position: relative;
  display: flex;
  align-items: center;
  padding: 8px 10px;
}

.header_logo {
  width: 90%;
  /* height: 44px; */
}

.header_user_menu {
  display: flex;
  margin-right: 0;
  margin-left: auto;
}


.header_login_btn {
  display: flex;
  flex-flow: column;
  align-items: center;
}

.header_login_btn {
  width: 100px;
  padding-top: 4px;
  padding-bottom: 4px;
  background: #FFFFFF 0% 0% no-repeat padding-box;
  box-shadow: 2px 2px 6px #0000004D;
  border: 1px solid #5A4D7A;
  border-radius: 66px;
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #5A4D7A;
  margin-right: 10px;
}

.header_signup_btn {
  width: 100px;
  padding-top: 4px;
  padding-bottom: 4px;
  background: #5A4D7A 0% 0% no-repeat padding-box;
  box-shadow: 2px 2px 6px #0000004D;
  border: 1px solid #FFFFFF;
  border-radius: 66px;
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #FFFFFF;
}


.menu-trigger {
  position: relative;
  width: 50px;
  height: 50px;
}

.header_menu_list {
  margin-left: auto;
  margin-right: 0;
}

.menu-trigger,
.menu-trigger span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}

.menu-trigger span {
  position: absolute;
  right: 0;
  height: 3px;
  background-color: #FFFFFF;
  border-radius: 4px;
  text-align: center;
}

.menu-trigger span:nth-of-type(1) {
  width: 125%;
  top: 20%;
}

.menu-trigger span:nth-of-type(2) {
  width: 100%;
  top: 50%;
}

.menu-trigger span:nth-of-type(3) {
  width: 75%;
  top: 80%;
}

.menu-trigger.active span:nth-of-type(1) {
  width: 100%;
  -webkit-transform: translateY(5px) rotate(-315deg);
  transform: translateY(15px) rotate(-315deg);
}

.menu-trigger.active span:nth-of-type(2) {
  opacity: 0;
}

.menu-trigger.active span:nth-of-type(3) {
  width: 100%;
  -webkit-transform: translateY(-11px) rotate(315deg);
  transform: translateY(-14px) rotate(315deg);
}

.navigation {
  opacity: 0;
  width: 0;
  height: 0;
  overflow: hidden;
}


.navigation.active {
  opacity: 1;
  background: #FFFFFF;
  transition: .4s;
  text-align: center;
  width: fit-content;
  z-index: 100;
  height: auto;
  position: absolute;
  top: 100%;
  right: 10px;
  box-shadow: 1px 2px 2px #0000004D;
  ;
}

.navigation.active #mainNav li {
  padding: 0 16px;
}

.navigation.active #mainNav li:first-child a {
  margin-top: 16px;
}

.navigation.active #mainNav li a {
  display: inline-block;
  margin: auto;
  margin-bottom: 8px;
  text-decoration: underline;
  font: normal normal normal 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #5A4D7A;
}

.header_serch_box {
  display: none;
}

.header_user_img {
  display: none;
}

/* Loading */

/* ローディングアイコンのスタイル */
.loading {
  display: none;
  text-align: center;
  margin-top: 20px;
}

/* ローディングアイコンのアニメーション */
.loading::after {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #ccc;
  border-top-color: #333;
  animation: spin 0.8s linear infinite;
}

/* ローディングアイコンの回転アニメーション */
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* =breadcrumb
---------------------------------------------------- */
#breadcrumb {
  font-size: .8em;
  margin: 1em auto;
  text-align: left;
  padding-left: .5em;
}

.bread__ul li {
  display: inline-block;
}

.bread__ul li a {
  color: #000;
}

.bread__ul li a:after {
  content: "　>　";
}

/* =footer
-------------------------------------------------------------- **/
footer {
  position: relative;
}

footer .legal_notices ul {
  padding: 0 18px;
  margin-bottom: 8px;
}

footer .legal_notices li a {
  text-align: left;
  font: normal normal normal 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  margin-bottom: 8px;
}

.footer_dialog {
  position: relative;
  /* display: none; */
}

.dialog_content {
  width: 48%;
  max-width: 320px;
  position: fixed;
  bottom: 72px;
  right: 0;
  text-align: center;
  background: #FFFFFF 0% 0% no-repeat padding-box;
  padding: 32px 8px 16px;
  z-index: 9999;
}

.dialog_title {
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
  margin-bottom: 8px;
}

.footer_dialog .footer_dialog_img {
  width: 60%;
  border-radius: 50%;
  max-width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
}

.footer_dialog .dialog_text {
  text-align: left;
  font: normal normal normal 12px/16px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  letter-spacing: 0px;
  color: #5A4D7A;
  margin: 8px auto;
}

.footer_dialog .dialog_link {
  display: inline-block;
  background: #FFFFFF 0% 0% no-repeat padding-box;
  box-shadow: 2px 2px 6px #0000004D;
  border: 2px solid #5A4D7A;
  border-radius: 66px;
  padding: 4px 12px;
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #5A4D7A;
}

#close-dialog {
  position: absolute;
  top: 0;
  right: 0;
  width: 34px;
  height: 34px;
  background: #F0F3F5 0% 0% no-repeat padding-box;
  border-radius: 50%;
  text-align: center;
  font: normal normal normal 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  letter-spacing: 0px;
  color: #3B4043;
  opacity: 1;
}

.menu_navigation_inner {
  width: 100%;
  position: fixed;
  bottom: 0;
  background: #8D7EA5 0% 0% no-repeat padding-box;
  z-index: 9999;
  margin-bottom: -2px;
}

.menu_navigation_inner::after {
  content: none;
}

.menu_navigation {
  display: grid;
  grid-template-columns: 1fr 1fr 1.2fr 1fr 1fr;
  gap: 8px;
  padding: 8px 8px 0;
  place-items: center;
  place-content: center;
}

.menu_navigation::after {
  content: none;
}

.menu_navigation .menu_navigation_icon {
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;

}

.menu_navigation .menu_navigation_icon img {
  height: 36px;
  width: auto;
}

.menu_navigation .menu_navigation_icon span {
  text-align: center;
  font: normal normal bold 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #FFFFFF;
}

.menu_navigation .menu_navigation_icon:nth-child(3) {
  position: relative;
}

.menu_navigation .menu_navigation_icon:nth-child(3):hover {
  opacity: 1;
}

.menu_navigation .menu_navigation_icon:nth-child(3):hover img,
.menu_navigation .menu_navigation_icon:nth-child(3):hover span {
  opacity: .7;
  transition: .3s;
}

.menu_navigation .menu_navigation_icon:nth-child(3)::after {
  content: "";
  position: absolute;
  width: 215%;
  height: 125%;
  background-color: #FFFFFF;
  border-radius: 50%;
  top: -20%;
  z-index: -1;
}

.menu_navigation .menu_navigation_icon:nth-child(3) img {
  width: 42px;
  height: auto;
}

.menu_navigation .menu_navigation_icon:nth-child(3) span {
  color: #5A4D7A;
}

#copyright {
  padding-bottom: 96px;
}

#copyright p {
  text-align: center;
  font: normal normal normal 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}


/* =pageTop
---------------------------------------------------- */
#pageTop {
  display: block;
  position: fixed;
  bottom: 10%;
  right: 2%;
  z-index: 6;
  opacity: 0;
  transform: translateY(240px);
}

#pageTop a {
  display: block;
  position: fixed;
  bottom: 0;
  right: 2%;
  width: 50px;
  height: 0;
}

/*　上に上がる動き　*/
#pageTop.UpMove {
  animation: UpAnime 0.5s forwards;
}

@keyframes UpAnime {
  from {
    opacity: 0;
    transform: translateY(240px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/*　下に下がる動き　*/
#pageTop.DownMove {
  animation: DownAnime 0.5s forwards;
}

@keyframes DownAnime {
  from {
    opacity: 1;
    transform: translateY(0);
  }

  to {
    opacity: 1;
    transform: translateY(240px);
  }
}

/* =pagenation
---------------------------------------------------- */
.pagenation {
  display: none;
}

.review_container .pagenation {
  display: flex;
  width: 360px;
  margin: auto;
  margin-bottom: 24px;
  justify-content: center;
  align-items: center;
  column-gap: 24px;
  margin-top: 24px;
}

.review_container .pagenation::after {
  display: none;
}

.review_container .pagenation a,
.review_container .pagenation b,
.review_container .custom-navigation .slick-arrow,
.review_container .custom-dots .slick-dots li {
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font: normal normal bold 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
  background: #F0F3F5 0% 0% no-repeat padding-box;
  border: 2px solid #F0F3F5;
  border-radius: 50%;
}

.review_container .pagenation b {
  background: none;
}

.pagenation .pagenation_arrow {
  border-radius: 5px;
}


/* topPage ------------------------- */
#topPage {
  display: none;
}

#container {
  padding: 0 10px;
}

.topPage_slider li {
  width: 400px;
  height: 300px;
}

.topPage_slider img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.topPage_content {
  padding: 24px 8px;
  background: #FFFFFF 0% 0% no-repeat padding-box;
  margin-bottom: 24px;
}

.content_title {
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  margin-bottom: 16px;
}


.topPage_content_more {
  width: 212px;
  margin: auto;
  background: #FFFFFF 0% 0% no-repeat padding-box;
  box-shadow: 2px 2px 6px #0000004D;
  border: 2px solid #5A4D7A;
  border-radius: 66px;
  display: block;
  padding: 4px 8px;
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #5A4D7A;
}

.topPage_content_more p {
  margin: 4px auto;
}

/* index */
.index_container .fortune_teller_list,
.index_container .fortune_menu_list {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-left: 12px;
}

.index_container .fortune_teller_list .fortune_link_box,
.index_container .fortune_menu_list .fortune_link_box {
  flex: 0 0 30%;
}

.index_container .respond_quickly .fortune_teller_img_box .respond_quickly_icon {
  top: 0;
}

.index_container .topPage_topic_inner dl,
.index_container .topPage_fortune_inner dl {
  font: normal normal normal 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  margin-bottom: 8px;
}

.index_container .topPage_fortune_inner dl dt {
  font-weight: bold;
  margin-bottom: 8px;
}

.index_container .topPage_fortune_inner dl dd div {
  position: relative;
  width: -webkit-fill-available;
  text-align: left;
  margin-bottom: 8px;
  border-bottom: 1px solid #F0F3F5;
}

.index_container .topPage_topic_inner dl dt {
  position: relative;
  display: flex;
  align-items: center;
  font-weight: bold;
  color: #5A4D7A;
  border-bottom: 1px solid #F0F3F5;
  width: 200px;
  margin-bottom: 12px;
}

.index_container .topPage_fortune_inner dl dd div::after {
  content: "";
  display: inline-block;
  position: absolute;
  width: 12px;
  height: 12px;
  background-image: url(/public/img/topPage/fortune_more.png);
  background-size: contain;
  background-repeat: no-repeat;
  right: 5%;
  top: 50%;
  transform: translateY(-50%);
}

.index_container .topPage_topic_inner dl dt::after {
  position: absolute;
  font: var(--fa-font-solid);
  content: '\2b';
  font-family: 'Font Awesome 6 Free';
  right: 5%;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.3s;
}

.index_container .topPage_topic_inner dl dt.active::after {
  content: '\f068';
  transform: translateY(-50%) rotate(180deg);
}

.index_container .icon_topic {
  width: 20px;
  margin-right: 8px;
}

.index_container .topPage_topic_inner dl dd {
  display: none;
  margin: 0;
  padding: 0 20px;
}

.index_container .topPage_topic_inner dl dd.show {
  display: grid;
}


/* fotune-teller */

.respond_quickly_attention {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-bottom: 16px;
}

.respond_quickly_attention img {
  width: 24px;
  height: 24px;
  margin-right: 8px;
}

.respond_quickly_attention span {
  text-align: left;
  font: normal normal normal 12px/33px Montserrat, "Noto Sans JP", "Century Gothic", sans-serif;
}

.fortune_teller_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  -ms-overflow-style: none;
}

.fortune_teller_list::-webkit-scrollbar {
  display: none;
}

.fortune_teller_img_box .fortune_teller_img {
  display: inline-block;
  border-radius: 50%;
  aspect-ratio: 1/1;
  object-fit: cover;
}

.fortune_teller_img_box.square .fortune_teller_img {
  border-radius: 0%;
  aspect-ratio: 1/1;
  object-fit: cover;
}

.respond_quickly .fortune_teller_img_box {
  position: relative;
}

.respond_quickly .fortune_teller_img_box .fortune_teller_img {
  aspect-ratio: 1/1;
  object-fit: cover;
  border: 5px solid #A679CA;
}

.respond_quickly .fortune_teller_img_box .respond_quickly_icon {
  width: 28%;
  position: absolute;
  top: -3px;
  left: 0;
  background-color: #fff;
  border-radius: 28px;
}

.fortune_teller_name {
  text-align: center;
  font: normal normal bold 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  overflow: hidden;
}

.fortune_teller_rating {
  text-align: center;
  font: normal normal bold 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  line-height: 1.0;
  margin-bottom: 0.5rem;
}

.fortune_teller_profile {
  padding: 8px;
  padding-bottom: 0;
  margin-bottom: 8px;
  text-align: left;
  font: normal normal normal 12px/18px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  overflow: hidden;
  padding-right: 0;
}

.fortune_teller_more {
  margin-top: 24px;
}

/* fortune-menu */
.fortune_menu_list {
  display: grid;
  grid-template-columns: repeat(3, calc(100% / 3 - 10.5px));
  gap: 16px;
  -ms-overflow-style: none;
}

.fortune_menu_list::after {
  content: none;
}

.fortune_menu_list::-webkit-scrollbar {
  display: none;
}

.fortune_menu_box {
  background: #F0F3F5 0% 0% no-repeat padding-box;
}

.fortune_menu_info {
  padding: 4px 3px 8px;
}

.fortune_menu_info .fortune_menu_name {
  text-align: left;
  font: normal normal bold 12px/12px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  text-overflow: ellipsis;
  overflow: hidden;
}

.fortune_menu_info .fortune_menu_amount {
  text-align: right;
  font: normal normal bold 12px/24px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #5A4D7A;
}

.fortune_menu_info .fortune_menu_about {
  text-align: left;
  font: normal normal normal 12px/16px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.fortune_menu_rating {
  text-align: center;
  font: normal normal bold 12px/16px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  margin-bottom: 0.2rem;
}

.fortune_menu_more {
  margin-top: 24px;
}


/* fortune_telling */
.fortune_telling_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  place-items: center;
  -ms-overflow-style: none;
  padding-right: 4px;
  padding-left: 4px;
}

.fortune_telling_list::after {
  content: none;
}

.fortune_telling_list::-webkit-scrollbar {
  display: none;
}

.fortune_telling_name {
  text-align: center;
  font: normal normal normal 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.fortune_telling_more {
  margin-top: 24px;
}

/* fortune_topic */
.fortune_topic_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.fortune_topic_list::after {
  content: none;
}

.fortune_topic_serch {
  display: block;
  text-align: center;
  font: normal normal normal 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  background: #F0F3F5 0% 0% no-repeat padding-box;
  border-radius: 5em;
  padding: 6px;
}

.fortune_topic_more {
  margin-top: 24px;
}

/* fortune_teller_registration */
.fortune_teller_registration_btn {
  display: block;
  width: 212px;
  margin: auto;
  margin-bottom: 24px;
  padding: 4px 8px;
  background: #5A4D7A 0% 0% no-repeat padding-box;
  box-shadow: 2px 2px 6px #0000004D;
  border: 2px solid #FFFFFF;
  border-radius: 66px;
}

.fortune_teller_registration_btn p {
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #FFFFFF;
  margin: 8px auto;
}

.teller_login_btn {
  background: #FFFFFF 0% 0% no-repeat padding-box;
  border: 2px solid #5A4D7A;
}

.teller_login_btn p {
  color: #5A4D7A;
}

/* listingPage */
#listDetail .list_item_container,
#listingPage .list_item_container {
  background-color: #FFFFFF;
  padding: 24px 8px;
  margin-bottom: 24px;
}

#listingPage .list_item_info {
  position: relative;
}

#listingPage .fortune_teller_ranking {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

#listingPage .fortune_teller_ranking .rankin_icon {
  width: 24px;
}

/* listDetail */
#listDetail .list_item_name {
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

#listDetail .list_item_name_span {
  display: block;
}

.list_item_basic_info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  place-items: center;
  gap: 4px;
}

.list_item_basic_left {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.list_item_basic_left .teller_ranking {
  position: relative;
  width: 100%;
  height: 32px;
}

.list_item_basic_left .teller_ranking img,
.list_item_basic_left .teller_ranking p {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.list_item_basic_left .teller_ranking img {
  width: 32px;
}

.list_item_basic_left .teller_ranking .rank_about {
  font: normal normal bold 10px/24px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}


.list_item_basic_left .fortune_menu_img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.send_chat_btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 172px;
  padding: 4px 8px;
  background: #5A4D7A 0% 0% no-repeat padding-box;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #FFFFFF;
  box-shadow: 2px 2px 6px #0000004D;
  border: 2px solid #FFFFFF;
  border-radius: 66px;
}

.list_item_basic_right {
  height: 100%;
}

.list_item_info_link {
  display: flex;
  flex-flow: column;
  height: 100%;
  align-items: flex-end;
  padding-top: 32px;
  justify-content: space-between;
}

.list_item_info_link::after {
  content: none;
}


.favorite_btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 172px;
  padding: 4px 8px;
  background: #FFFFFF 0% 0% no-repeat padding-box;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  box-shadow: 2px 2px 6px #0000004D;
  border: 2px solid #5A4D7A;
  border-radius: 66px;
  color: #5A4D7A;
}

.send_chat_btn img {
  width: 24px;
  margin-right: 8px;
}

.favorite_btn img {
  width: 20px;
  margin-right: 4px;
}

#listDetail .fortune_telling img {
  display: none;
}


.item_tabs_container {
  display: flex;
  flex-direction: column;
  padding-top: 8px;
}

.item_detail_tab {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  text-align: center;
}

.item_detail_tab li a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #3B4043;
}

.item_detail_tab li.active a:hover {
  opacity: 1;
}

.item_detail_tab li {
  background: #F0F3F5;
  font: normal normal bold 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  box-shadow: inset 0px 0.5px 1px #00000029;
  height: 40px;
}

/*liにactiveクラスがついた時の形状*/
.item_detail_tab li.active {
  background: #FFFFFF;
}

.item_detail_area {
  display: none;
  /*はじめは非表示*/
  opacity: 0;
  /*透過0*/
  font: normal normal bold 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
  padding: 16px 8px;
}

/*item_detail_areaにis-activeというクラスがついた時の形状*/
.item_detail_area.is-active {
  display: block;
  /*表示*/
  animation-name: displayAnime;
  /*ふわっと表示させるためのアニメーション*/
  animation-duration: .7s;
  animation-fill-mode: forwards;
  text-align: left;
}

@keyframes displayAnime {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.tab_menu_link_button .send_chat_btn {
  margin: 24px auto;
}

.tab_menu_link_button .favorite_btn {
  margin: 0 auto;
}

#listDetail .fortune_telling {
  grid-column: span 2;
  width: 100%;
  display: grid;
  gap: 16px 20px;
  grid-template-columns: repeat(2, 1fr);
  margin: 12px auto 4px;
}

#listDetail .fortune_telling .telling_name {
  background: #F0F3F5 0% 0% no-repeat padding-box;
  font: normal normal normal 14px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
  opacity: 1;
  padding: 4px 8px;
  text-align: center;
  border-radius: 5em;
}

#listDetail .topic {
  grid-column: span 2;
  width: 100%;
  display: grid;
  gap: 4px 8px;
  place-items: center;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 12px;
}

#listDetail .topic .topic_name {
  text-align: center;
  font: normal normal normal 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  letter-spacing: 0px;
  color: #5A4D7A;
  opacity: 1;
}

.list_item_detail_menu {
  background: #F0F3F5 0% 0% no-repeat padding-box;
  box-shadow: 0px 2px 2px #00000029;
  margin-bottom: 16px;
}

.list_item_detail_menu:last-child {
  margin-bottom: 0;
}

.fortune_menu_info_link {
  padding: 8px 4px;
  display: flex;
  flex-flow: column;
  justify-content: space-around;
  height: 100%;
}

.fortune_menu_info_link::after {
  content: none;
}

.fortune_menu_info_link .send_chat_btn,
.fortune_menu_info_link .favorite_btn {
  width: 170px;
  padding: 0 4px;
  font: normal normal bold 14px / 30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.fortune_menu_info_link .favorite_btn {
  margin-bottom: 0;
}

.fortune_menu_info_link .send_chat_btn img,
.fortune_menu_info_link .favorite_btn img {
  width: 18px;
  margin-right: 6px;
}

.detail_fortune_menu_list {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  place-items: center;
}

.menu_list_left .fortune_menu_img_box {
  width: 100%;
  height: 100%;
}

.menu_list_left .fortune_menu_img_box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.detail_fortune_menu_about {
  padding: 8px 16px;
}

.detail_fortune_menu_about p,
.list_item_detail_review p {
  text-align: left;
  font: normal normal normal 12px / 30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
}

.detail_fortune_menu_about .name {
  font: normal normal bold 12px / 30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.detail_fortune_menu_about .valuation,
.list_item_detail_review .score {
  margin-bottom: 4px;
}

.valuation .score {
  float: left;
}

.valuation .amount {
  color: #5A4D7A;
  float: right;
  padding-right: 8px;
}

.detail_fortune_menu_about .about,
.list_item_detail_review .review_body {
  line-height: 1.5em;
}

.detail_fortune_menu_about .about {
  font: normal normal normal 12px / 24px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.list_item_detail_review {
  padding: 16px 8px;
  border-bottom: 1px solid #CCCCCC;
}

.list_item_detail_review:first-child {
  padding-top: 0;
}

.review_info .reviewer {
  float: left;
}

.review_info .regist_date {
  float: right;
}

.list_item_detail_review .menu_name {
  font: normal normal bold 12px / 20px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #5A4D7A;
}

.see_more_review {
  text-align: center;
  margin: 32px auto 0;
}

.see_more_review a {
  background: #F0F3F5 0% 0% no-repeat padding-box;
  border-radius: 66px;
  text-align: center;
  font: normal normal bold 16px / 30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
  padding: 8px 16px;
}

/* recommend */
.recommend_items .recommend_item_list {
  display: flex;
  padding: 8px;
  column-gap: 8px;
  overflow-y: hidden;
  overflow-x: scroll;
  margin-bottom: 24px;
}

.recommend_items .recommend_item_list::-webkit-scrollbar {
  display: none;
}

.recommend_items .recommend_item_list a {
  display: block;
  flex-shrink: 0;
  width: calc(33% - 4px);
  min-width: 124px !important;
}

#listDetail .recommend_items .recommend_item_list .list_item_name,
#listDetail .recommend_items .recommend_item_list .fortune_teller_rating {
  text-align: center;
  font: normal normal bold 12px / 30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
}

#listDetail .recommend_items .recommend_menu .list_item_name {
  text-align: left;
  font: normal normal bold 12px / 12px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}


#listDetail .recommend_items .recommend_item_list .fortune_teller_profile {
  text-align: center;
  font: normal normal normal 12px / 30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
  padding: 0;
  line-height: 1.5em;
  text-align: left;
}

.custom-navigation {
  display: none;
}

/* list_menu */
.list_menu .item_detail_tab {
  grid-template-columns: 1fr 1fr 1fr;
}

.list_menu .list_item_info_link {
  padding-top: 0;
}

.appraised_date {
  margin-bottom: 24px;
}

.list_menu .wordcount,
.list_menu .days {
  display: inline;
  font: normal normal bold 12px/37px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #5A4D7A;
}

.list_menu .wordcount {
  margin-right: 24px;
}

.list_menu .fortune_teller_box {
  display: grid;
  grid-template-columns: 1fr 2fr;
  column-gap: 8px;
  margin: 24px auto;
}

.list_menu .fortune_teller_info>* {
  padding: 0;
  margin: 0;
  padding-left: 16px;
}

.list_menu .fortune_teller_name {
  position: relative;
  z-index: 1;
}

.list_menu .rankin_icon {
  width: 24px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

.list_menu .fortune_teller_info {
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: space-between;
}

.list_menu .recommend_items .recommend_item_list {
  padding: 0;
  column-gap: 8px;
}

.list_menu .recommend_items .list_item_name,
.list_menu .recommend_items .fortune_menu_rating {
  text-align: left;
  font: normal normal bold 12px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
  margin: 0;
}

.list_menu .recommend_items .fortune_menu_rating {
  font: normal normal bold 12px / 16px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.list_menu .recommend_items .fortune_menu_amount {
  text-align: right;
  font: normal normal bold 12px/16px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.list_menu .recommend_items .fortune_menu_about {
  text-align: left;
  font: normal normal normal 12px/16px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #3B4043;
}

.recommend_items .valuation .score,
.recommend_items .valuation .amount {
  float: unset;
}

#listingPage .fortune_menu_list {
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  place-items: center;
}

.list_item_detail .fortune_teller_img_box {
  grid-column: span 1;
  grid-row: span 2;
}

/* fortune */
.fortune_main .fortune_img_box {
  width: 100%;
}

.fortune_main .fortune_img_box img {
  width: 100%;
  aspect-ratio: 4/ 3;
  object-fit: cover;
}

.fortune_main .fortune_text_box {
  background-color: #FFFFFF;
  padding: 16px 8px;
  margin-bottom: 16px;
  text-align: left;
  font: normal normal normal 14px / 18px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  overflow: hidden;
}

.fortune_main .fortune_name {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 16px;
}

#listingPage .fortune_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  place-items: center;
}

#listingPage .fortune_list .fortune_box {
  box-shadow: 0px 2px 4px #00000015;
  border-radius: 0px 0px 6px 6px;
}

#listingPage .fortune_list .fortune_box .list_item_info {
  padding: 4px;
  padding-top: 1px;
}

.fortune_name,
.category_name {
  text-align: left;
  font: normal normal bold 12px / 30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  overflow: hidden;
}

.fortune_about,
.category_about {
  padding-bottom: 0;
  text-align: left;
  font: normal normal normal 12px / 18px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.category_about {
  margin-bottom: 8px;
}

.category_about {
  margin-bottom: 16px;
}

.fortune_category {
  margin-bottom: 16px;
}

/* term */
.term_list_inner {
  padding: 8px;
  background-color: #FFFFFF;
  font: normal normal 12px/18px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif
}

.term_list_inner dl {
  margin-bottom: 16px;
}

.term_list_inner dl dt {
  font-weight: bold;
  margin-bottom: 8px;
}

.term_list_inner dl dd ol {
  list-style: decimal;
  padding-left: 12px;
}

.term_list_inner.privacy dl dd ol {
  list-style: none;
  list-style-type: disc;
  padding-left: 16px;
}

.term_list_inner dl dd ul {
  list-style-position: outside;
}

.term_list_inner dl dd,
.term_list_inner dl dd p,
.term_list_inner dl dd ol li,
.term_list_inner dl dd ul li {
  margin-bottom: 8px;
}

.term_list_inner .enactment {
  padding-top: 8px;
}

.term_list_inner .provisions {
  margin-bottom: 16px;
}

.term_list_inner .term_detail_item {
  padding-left: 8px;
}

.term_list_inner.search_box select {
  text-align: center;
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  appearance: menulist;
  padding: 4px 8px;
}

.term_list_inner.search_box select option {
  padding: 0;
}

/* search */
.term_list_inner.search_box dd {
  display: flex;
  flex-wrap: wrap;
  word-wrap: break-word;
}

.term_list_inner.search_box dd input {
  margin: 8px;
  margin-right: 0;
}

.term_list_inner.search_box dd p {
  width: 100%;
  margin-bottom: 0;
  margin-top: 8px;
  font-weight: bold;
}

.term_list_inner.search_box p.response {
  text-align: center;
  margin-bottom: 8px;
}

.serach_submit_btn {
  text-align: center;
  display: block;
  width: 180px;
  color: #FFFFFF;
  margin: 8px auto;
  margin-bottom: 24px;
  padding: 8px;
  background: #5A4D7A 0% 0% no-repeat padding-box;
  box-shadow: 2px 2px 6px #0000004D;
  border: 2px solid #FFFFFF;
  border-radius: 66px;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  transition: .3s;
}

.serach_submit_btn:hover {
  opacity: .7;
}

/* login */

.login_box .login_btn_inner {
  margin-top: 32px;
}

.login_box dl {
  display: flex;
  align-items: center;
  width: 100%;
}

.login_box dl dt {
  width: 30%;
}

.login_box dl dd {
  width: 70%;
}

.login_box dl .flex_box {
  display: flex;
  flex-wrap: wrap;
  column-gap: 4px;
}

.login_box input[type="text"],
.login_box input[type="password"] {
  border: 1px solid #5A4D7A;
  padding: 4px 8px;
  width: 100%;
}

.login_box .serach_submit_btn {
  text-align: center;
}

.login_box .serach_submit_btn {
  margin-bottom: 16px;
}

.admin-page .signup_link,
.login_box .signup_link {
  text-align: center;
  margin-bottom: 16px;
}

.admin-page .signup_link a,
.login_box .signup_link a {
  color: #78ade3;
  text-decoration: underline;
}

.login_box .error {
  color: #FF0000;
}

.login_box .password_input {
  position: relative;
}

.login_box #togglePassword {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
}

.login_box .input_mail_box {
  display: block;
  margin-bottom: 24px;
}

.login_box .input_mail_box dt,
.login_box .input_mail_box dd,
.login_box .input_mail_box dd input {
  width: 100%;
}

.login_box .input_mail_box dt {
  margin-bottom: 4px;
}

.login_box .form-section {
  display: none;
}

.login_box .form-section.active {
  display: block;
}

.sns_login_box .sns_logon_btn {
  text-align: center;
  display: block;
  width: 240px;
  margin: 8px auto;
  margin-bottom: 16px;
  padding: 8px;
  box-shadow: 2px 2px 6px #0000004D;
  border-radius: 66px;
  font: normal normal bold 16px / 30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  transition: .3s;
}

.sns_login_box .sns_logon_btn a {
  color: #FFFFFF;
}

.sns_login_box .sns_logon_btn i {
  margin-right: 8px;
}

.sns_login_box .sns_logon_btn:nth-child(1) {
  background: #0F1419 0% 0% no-repeat padding-box;
  border: 2px solid #FFFFFF;
}

.sns_login_box .sns_logon_btn:nth-child(2) {
  background: #1877f2 0% 0% no-repeat padding-box;
  border: 2px solid #FFFFFF;
}

.sns_login_box .sns_logon_btn:nth-child(3) {
  background: #06c755 0% 0% no-repeat padding-box;
  border: 2px solid #FFFFFF;
}

.login_box .term_attention {
  margin-bottom: 16px;
}

.login_box #agreeSection dl {
  margin-bottom: 16px;
}

.undeliverd a,
.login_box #agreeSection dl a {
  color: #78ade3;
  text-decoration: underline;
}

.login_box #agreeSection dl dd {
  display: flex;
  width: 100%;
}

.login_box #agreeSection .error_box {
  margin-top: -12px;
  margin-bottom: 24px;
}

.login_box #agreeSection dl input[type="checkbox"] {
  margin-right: 8px;
}

.login_box .undeliverd {
  margin-top: 8px;
  margin-bottom: 16px;
}

#userForm dl {
  align-items: start;
  margin-bottom: 16px;
}

#userForm .passwordError {
  width: 70%;
  margin-left: auto;
  margin-right: 0;
  margin-top: -16px;
}

#userForm .passwordError #passwordError {
  display: inline-block;
  margin-bottom: 8px;
}

#userForm .input_name input:first-child {
  margin-bottom: 8px;
}

#userForm input[type="date"] {
  border: 1px solid #5A4D7A;
  padding: 4px 8px;
}

#userForm label {
  display: inline-block;
  padding: 4px 8px;
  margin-bottom: 4px;
}

#userForm select {
  padding: 4px 8px;
  margin-right: 8px;
}

#optionalSection .serach_submit_btn {
  margin-top: 32px;
}

#userForm .input_skip {
  display: block;
  width: fit-content;
  margin: 16px auto;
}

#userForm .input_skip i {
  margin-right: 8px;
}

/* mypage */
.mypage .user_info_box {
  text-align: center;
}

.mypage .user_info_box .no_img_icon {
  width: 120px;
  height: 120px;
  border: 1px solid #707070;
  border-radius: 50%;
  position: relative;
  text-align: center;
  margin: auto;
  margin-bottom: 16px;
  overflow: hidden;
}

.mypage .user_info_box .no_img_icon img {
  scale: .7;
  position: absolute;
  left: 0;
  bottom: -55%;
  transform: translateY(-50%);
}

.mypage .user_info_box .mypage_icon {
  width: 120px;
  height: 120px;
  border: 1px solid #707070;
  border-radius: 50%;
  margin-bottom: 16px;
  object-fit: cover;
}

.mypage .mypage_menu_list {
  width: 80%;
  margin: 32px auto;
}

.mypage .mypage_menu_list li {
  position: relative;
  padding: 4px;
  border-bottom: 2px solid #F0F3F5;
  margin-bottom: 16px;
}

.mypage .mypage_menu_list li::after {
  content: "";
  display: inline-block;
  position: absolute;
  width: 12px;
  height: 12px;
  background-image: url(/public/img/topPage/fortune_more.png);
  background-size: contain;
  background-repeat: no-repeat;
  right: 5%;
  top: 50%;
  transform: translateY(-50%);
}

.mypage .mypage_line {
  background: #06c755 0% 0% no-repeat padding-box;
  border: 2px solid #FFFFFF;
}

.mypage .mypage_menu_list li a {
  display: inline-block;
  width: 100%;
}

.mypage_change_message {
  text-align: center;
  color: #FF0000;
  margin: 16px auto 20px;
}

.cancel_account .login_box dl {
  display: block;
}

.cancel_account .login_box dl dt,
.cancel_account .login_box dl dd,
.cancel_account .login_box dl dd textarea {
  width: 100%;
}

.cancel_account .login_box dl dd textarea {
  padding: 8px
}

.cancel_account .login_box p {
  margin: 0 auto 16px;
}

/* favorite */
.favorite_container .item_detail_tab {
  grid-template-columns: 1fr 1fr;
  margin-top: 32px;
}

.favorite_container .fortune_teller_list {
  display: block;
}

.favorite_container .favorite_list {
  padding-top: 16px;
}

.favorite_container .favorite_list li {
  display: grid;
  align-items: center;
  grid-template-columns: .8fr 3fr .5fr;
  padding: 6px 0 16px 4px;
  border-bottom: 2px solid #F0F3F5;
  margin-bottom: 16px;
}

.favorite_container .favorite_list .fortune_teller_img {
  border-radius: 50%;
  aspect-ratio: 1/1;
  object-fit: cover;
}

.favorite_container .favorite_list p {
  padding-left: 14px;
}

.favorite_container .favorite_list .favorite_btn {
  display: block;
  border: none;
  box-shadow: none;
  font: unset;
  padding: 0;
  width: auto;
}

.favorite_container .favorite_list .favorite_btn img {
  margin: 0;
}

/* select */
#listingPage .chat_select_container .fortune_menu_list {
  display: block;
}

.chat_select_container .fortune_menu_info .fortune_menu_amount {
  text-align: left;
}

#listingPage .chat_select_container .select_menu_inner {
  margin-bottom: 16px;
}

#listingPage .chat_select_container .fortune_menu_box {
  display: grid;
  grid-template-columns: 1fr 3fr;
  align-items: center;
  column-gap: 8px;
}

.chat_select_container .announce {
  text-align: center;
  margin-bottom: 24px;
}

.chat_select_container .fortune_menu_name {
  font: normal normal bold 16px/16px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  margin-bottom: 8px;
}

.chat_select_container .fortune_menu_amount {
  font: normal normal bold 16px/16px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

#listingPage .chat_select_container .select_btn_innner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 8px;
  padding-bottom: 0;
  grid-column: span 2;
}

.chat_select_container .select_btn_innner button {
  display: block;
  padding: 6px 10px;
  background: #5A4D7A 0% 0% no-repeat padding-box;
  box-shadow: 2px 2px 6px #0000004D;
  text-align: center;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  color: #FFFFFF;
}

.chat_select_container .select_btn_innner .about {
  background: #FFFFFF 0% 0% no-repeat padding-box;
  border: 2px solid #5A4D7A;
  color: #5A4D7A;
}

/* admin-teller */
.admin_nav {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 8px;
  padding: 8px 8px 0;
  place-items: center;
  place-content: center;
}

.admin_nav .menu_navigation_icon:nth-child(3)::after {
  content: none;
}

.admin_nav .menu_navigation_icon:nth-child(3) span {
  color: #FFFFFF;
}

.admin_head .header_menu_list {
  display: block;
}

.admin_head .markup_teller {
  background-color: #FFFFFF;
  color: #5A4D7A;
  padding: 8px 16px;
  border-radius: 100px;
  margin-left: 16px;
  font-weight: bold;
}

.admin_head .header_user_menu {
  margin-right: 0;
  margin-left: auto;
}

.admin-page .teller_login_btn,
.admin-page .fortune_teller_registration_btn {
  margin-top: 16px;
  width: 240px;
}

.admin-page .teller_login_btn p,
.admin-page .fortune_teller_registration_btn p {
  margin: 0 auto;
  font: normal normal bold 16px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.admin-page input {
  display: none;
}

.admin-page label {
  width: 80px;
  height: 26px;
  box-sizing: border-box;
  border: #5A4D7A 2px solid;
  float: right;
  border-radius: 100px;
  position: relative;
  cursor: pointer;
  transition: .3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.admin-page label span {
  font-size: 12px;
  color: #5A4D7A;
  font-weight: bold;
}

.admin-page input[type=checkbox]:checked+label {
  background: #5A4D7A;
}

.admin-page input[type=checkbox]:checked+label span {
  color: white;
  font-weight: bold;
}

.admin-page input[type=checkbox]:checked+label:before {
  left: 58px;
  background: #FFFFFF;
}

.admin-page label:before {
  transition: .3s ease;
  content: '';
  width: 24px;
  height: 24px;
  position: absolute;
  background: white;
  left: -8px;
  top: 50%;
  transform: translateY(-50%);
  border: #5A4D7A 2px solid;
  color: black;
  border-radius: 100px;
  background: #5A4D7A;
}


.admin-page .mypage .mypage_menu_list li:first-child,
.admin-page .mypage .mypage_menu_list li:nth-child(2) {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.admin-page .mypage .mypage_menu_list li:first-child::after,
.admin-page .mypage .mypage_menu_list li:nth-child(2)::after {
  content: none;
}

.admin-page .teller-status {
  border: #FFFFFF 2px solid;
  width: fit-content;
  padding: 4px 8px;
  border-radius: 100px;
  background-color: #5A4D7A;
  color: #FFFFFF;
  font-size: 12px;
  font-weight: bold;
  margin: auto;
  margin-bottom: 16px;
}

.admin-page .back_reason {
  width: fit-content;
  font-size: 12px;
  margin: auto;
  margin-bottom: 16px;
}

.fortune_menu_img_box {
  aspect-ratio: 3 / 2;
  overflow: hidden;
  object-fit: cover;
}

.admin-page .fortune_menu_box {
  position: relative;
}

.admin-page .menu_masking {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.1);
}

.admin-page .menu_masking p {
  font-size: 20px;
  font-weight: bold;
}

.admin-page #review {
  display: grid;
  grid-template-columns: 1fr 4fr;
  align-items: center;
}

.admin-page .user_detail_review {
  display: flex;
  flex-flow: column;
  align-items: center;
}

.admin-page .user_detail_review img {
  aspect-ratio: 1/1;
  border: 1px solid #707070;
  border-radius: 50%;
  margin-bottom: 16px;
  object-fit: cover;
}

.admin_review_sort {
  position: relative;
  width: fit-content;
  margin-right: 0;
  margin-left: auto;
}

.admin_review_sort::after {
  position: absolute;
  content: '\f0d7';
  font: var(--fa-font-solid);
  font-family: 'Font Awesome 6 Free';
  right: 10%;
  top: 50%;
  transform: translateY(-50%);
}

#container .admin_review_sort select {
  padding: 8px 16px;
  padding-right: 32px;
  background: #f0f3f5;
  border: #f0f3f5;
  border-radius: 100px;
}

.admin-page .user_detail_review {
  position: relative;
}

.block_masking {
  display: none;
  pointer-events: none;
  position: absolute;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  width: 75px;
  height: 75px;
  top: 0;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 50%;
  font: Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
  font-weight: bold;
  font-size: 14px;
}

.block_masking.active {
  display: flex;
}

.admin_review .user-modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.5);
}

.admin_review .modal-content {
  background-color: #fff;
  margin: 70% auto;
  padding: 20px;
  border: 1px solid #888;
  width: 90%;
  text-align: center;
  border-radius: 32px;
}

.admin_review .block-btn:hover,
.admin_review .chatroom-btn:hover {
  background-color: #3e3757;
}

.admin_review .modal-content button {
  width: 100%;
  margin: auto;
  margin-bottom: 24px;
  padding: 12px 8px;
  color: #FFFFFF;
  background: #5A4D7A 0% 0% no-repeat padding-box;
  box-shadow: 2px 2px 6px #0000004D;
  border: 2px solid #FFFFFF;
  border-radius: 66px;
  transition: background-color 0.3s ease;
  font: normal normal bold 20px/30px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.admin_review .modal-content .block-btn {
  color: #5A4D7A;
  background: #FFFFFF 0% 0% no-repeat padding-box;
  border: 2px solid #5A4D7A;
  margin-top: 24px;
}

.admin_review .modal-content img {
  width: 120px;
  height: 120px;
  aspect-ratio: 1 / 1;
  border: 1px solid #707070;
  border-radius: 50%;
  margin-bottom: 16px;
  object-fit: cover;
  margin-top: 16px;
}

.admin_review .modal-content p {
  font-size: 16px;
  font-weight: bold;
}

.admin-page.modal-open {
  overflow: hidden;
  position: fixed;
  width: 100%;
}

/* chat */
.chat_index_body #chat-list {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  margin-bottom: 24px;
}

.chat_index_body .chat-item a {
  display: flex;
  align-items: center;
  padding: 10px;
  border-bottom: 1px solid #ccc;
}

.chat_index_body .chat-icon {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  margin-right: 10px;
  object-fit: cover;
}

.chat_index_body .chat-info {
  flex: 1;
}

.chat_index_body .chat-name {
  margin: 0;
  font-size: 1.2em;
}

.chat_index_body .chat-message {
  margin: 5px 0;
  color: #666;
}

.chat_index_body .chat-timestamp {
  font-size: 0.8em;
  color: #999;
}

.chat_body.active {
  overflow: hidden;
}

.chat_body .chat-container {
  width: 100%;
  max-width: 600px;
  padding-top: 48px;
  padding-bottom: 48px;
  margin: 0 auto;
  min-height: 100vh;
  overflow-y: auto;
}

.chat_body .chat-message {
  display: flex;
  margin: 24px 0;
}

.chat_body .chat-message.left {
  justify-content: flex-start;
}

.chat_body .chat-message.right {
  justify-content: flex-end;
}

.chat_body .chat-bubble {
  position: relative;
  width: fit-content;
  max-width: 90%;
  padding: 10px;
  border-radius: 15px;
}

.chat_body .chat-image {
  position: relative;
  width: fit-content;
  width: 90%;
}

.chat_body .chat-message.right.image_message .chat-bubble {
  text-align: right;
  background: none;
  padding: 0;
}

.chat_body .chat-message.left.image_message .chat-bubble {
  text-align: left;
  background: none;
  padding: 0;
}

.chat_body .chat-bubble p {
  margin: 0;
  padding: 0;
}

.chat_body .chat-bubble .timestamp {
  position: absolute;
  font-size: 0.75em;
  color: #999;
  text-align: right;
  min-width: 100px;
}

.chat_body .chat-message.left .timestamp {
  text-align: left;
  left: 0;
  bottom: -16px;
}

.chat_body .chat-message.right .timestamp {
  right: 0;
  bottom: -16px;
}

.chat_body .chat-message.left .chat-bubble {
  background-color: #f1f1f1;
  border-top-left-radius: 0;
}

.chat_body .chat-message.right .chat-bubble {
  background-color: #8D7EA5;
  color: #fff;
  border-top-right-radius: 0;
}

.chat_body textarea {
  padding: 8px;
  border-radius: 16px;
  overflow: hidden;
  background-color: rgba(243, 247, 253, .4);
  border-color: #5A4D7A;
}

.chat_body #chatForm {
  display: grid;
  grid-template-columns: 1fr 8fr 1fr;
  gap: 8px;
  align-items: end;
  text-align: center;
}

.chat_body #chatForm i {
  font-size: 24px;
  color: #5A4D7A;
  padding-bottom: 8px;
}

.chat_body .chat_about {
  position: relative;
  background-color: #FFFFFF;
}

.chat_body .chat_about p {
  width: fit-content;
  max-width: 80%;
  margin: auto;
}

.chat_body #chat_header {
  position: fixed;
  width: 100%;
  background-color: #FFFFFF;
  z-index: 1000;
  padding: 16px;
  border-bottom: 1px solid #0000004D;
}

.chat_body .chat_about::before {
  content: '\f053';
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #5A4D7A;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.chat_body #chat_footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  background-color: #FFFFFF;
  padding: 16px 8px;
  border-top: 1px solid #0000004D;
  z-index: 1000;
}

.chat_body #cancelButton {
  display: block;
  text-align: center;
  width: fit-content;
  margin: 16px auto;
  background-color: #CCCCCC;
  padding: 8px 16px;
  border-radius: 8px;
}

/* モーダルのスタイル */
.modal {
  display: none;
  /* デフォルトでは非表示 */
  position: fixed;
  z-index: 10000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: #000000;
}

.modal-content {
  margin: auto;
  display: block;
  max-width: 90%;
  max-height: 80%;
}

.close {
  position: absolute;
  top: 20px;
  right: 5%;
  color: #fff;
  font-size: 36px;
  font-weight: bold;
  cursor: pointer;
}

#saveButton {
  position: absolute;
  font-size: 32px;
  bottom: 20px;
  right: 5%;
  text-decoration: none;
  color: #FFFFFF;
  cursor: pointer;
}

.enter_info_box .bought_menu_about {
  padding: 8px;
  margin-bottom: 16px;
  font: normal normal 12px/18px Source Han Sans JP, "Noto Sans JP", "Century Gothic", sans-serif;
}

.enter_info_box .about-content {
  max-height: 8.5em;
  overflow: hidden;
  position: relative;
}

.enter_info_box .show-more {
  display: block;
  margin-top: 5px;
  color: #5A4D7A;
  cursor: pointer;
  text-align: center;
  margin-top: 8px;
}

.enter_info_box .show-more.active {
  display: none;
}

.complete_service {
  margin-bottom: 8px;
}

.complete_service input[type=checkbox] {
  display: none;
}

.complete_service label {
  position: relative;
}

.complete_service label::before {
  transition: .3s ease;
  content: '';
  width: 18px;
  height: 18px;
  position: absolute;
  background: white;
  left: -24px;
  top: 50%;
  transform: translateY(-50%);
  border: #5A4D7A 2px solid;
  color: black;
  border-radius: 100px;
}

.complete_service input[type=checkbox]:checked+label::before {
  background: #5A4D7A;
}

.chat-container.admin-chat {
  padding-bottom: 64px;
}