/* 共通 */
:root {
  --body: #00040b;
  --strong: #73b04bff;
  --main: #081c2a;
  --subc: #a3a9d4ff;
}
body.loading:after, body.network_error:after {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100dvh;
  background: var(--body);
  color: white;
  font-size: 7.5vw;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  z-index: 999;
}
body.loading:after {
  content: 'Loading...';
}
body.network_error:after {
  content: 'ネットワークに接続されていません';
  font-size: 5vw;
}
label.sending {
  color: transparent!important;
}
label.sending:after {
  content: 'Loading...';
  position: absolute;
  color: white;
  filter: drop-shadow(0 0 2px #858585)drop-shadow(0 0 5px #858585)drop-shadow(0 0 10px #858585);
}
small {
	color: #858585;
}
.conspicuous_btn {
  background: var(--main)!important;
  color: white!important;
}
form {
  display: flex;
  flex-direction: column;
  align-items: center;
}
select:valid, select:invalid {
  color: gray;
}
form input, form select {
  font-size: 16px;
  padding: 5px 30px;
  text-align: center;
  margin: 5px 15px;
  border: solid .5px #858585;
  border-radius: 5px;
  min-width: 50vw;
}
form input[type="button"] {
  background: var(--main);
  color: white;
  border: 0;
  border-radius: 50px;
  margin: 15px 0;
}
form .required {
  position: relative;
}
form .required:before {
  content: '*';
  position: absolute;
  top: 50%;
  left: 15%;
  transform: translate(0, -50%);
  color: var(--strong);
}
.off_display {
  display: none!important;
}

/* スイッチ レイアウト */
.switch input[type="checkbox"] {
  display: none;
}
.switch label {
  position: relative;
  width: 70px;
  height: 25px;
  padding: 10px 30px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  border-radius: 50px;
  background: var(--body);
  font-size: 11px!important;
  transition: .3s;
  box-shadow: inset -2px -2px 2px #e8e8e8, inset 2px 2px 2px #858585;
}
.switch input[type="checkbox"] +label:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 3%;
  transform: translateY(-50%);
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background: #ffffffad;
  box-shadow: 2px 2px 4px #858585, -2px -2px 4px #e8e8e8;
  transition: .3s;
}
.switch input[type="checkbox"]:checked +label {
  background: #858585;
  color: white;
  justify-content: flex-start;
}
.switch input[type="checkbox"]:checked +label:before {
  left: 97%;
  transform: translate(-100%, -50%);
  box-shadow: 2px 2px 4px #858585;
}

/* モーダル */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100dvh;
  background: #00000085;
  visibility: hidden;
  opacity: 0;
  transition: .3s;
  z-index: 2;
}
.modal > div {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: max-content;
  max-width: 75vw;
  max-height: 75dvh;
  padding: 15px;
  background: white;
  border-radius: 5px;
  overflow: scroll;
  scroll-snap-type: x mandatory;
}
.modal .close {
	position: absolute;
  top: 0;
  right: 0;
  border: 0;
  padding: 10px;
  background: initial;
}
.on_display {
	visibility: visible;
	opacity: 1;
}

/* コントロールボタン */
.control {
  position: fixed;
  bottom: 20px;
  right: 0;
  z-index: 2;
  display: inline-flex;
  flex-direction: column;
  justify-content: space-evenly;
  align-content: stretch;
  align-items: flex-end;
  transition: none;
}
.control > * {
  width: calc(100% - 40px);
  margin-top: 10px;
  padding: 10px 20px;
  border-radius: 10px 0 0 10px;
  background: white;
  box-shadow: 0 0 10px #858585;
  display: inline-flex;
  align-items: center;
  flex-direction: column;
}
.control span {
  width: max-content;
  font-size: .8em;
}
.control_opener {
  width: max-content;
  padding: 20px;
}
.control.close {
  transform: translate(100%, 0);
}
.control.close .control_opener {
  transform: translate(calc(-150% - 37.5px), 0);
}
.control .control_opener:after {
  content: '';
  display: block;
  width: 10px;
  height: 10px;
  border-right: 3px solid var(--main);
  border-bottom: 3px solid var(--main);
  transform: rotate(-45deg);
}
.control.close .control_opener:after {
  content: '';
  transform: rotate(133deg);
}
.place_about_all {
  margin: 0 4px 15px 0 !important;
  padding: 8px !important;
  width: max-content !important;
  border-radius: 50% !important;
}
.control.close .place_about_all {
  transform: translate(calc(-150% - 55.5px), 0);
}
.control .on_switch {
  background: var(--main);
  color: white;
}
.control .on_switch img {
  filter: brightness(0)invert(1);
}

/* コメント */
.comment_area {
  min-width: 70vw;
  max-height: 40dvh;
  border: solid 1px #858585;
  border-radius: 3px;
  overflow-y: scroll;
}
.comment_area > div {
  margin: 10px;
}
.comment_area p {
  margin: 0;
}
.text_field div[data-id="comment_form"] {
  flex-direction: row;
}
.text_field input[type="text"] {
  min-width: 40vw;
  padding: 5px 10px;
  margin: 5px 15px;
  text-align: left;
  font-size: 16px;
  border: solid 0.5px #858585;
  border-radius: 5px;
}
.text_field input[type="button"] {
  min-width: 0;
  margin: 15px 0;
  padding: 5px 15px;
  background: var(--main);
  color: white;
  border: 0;
  border-radius: 50px;
  font-size: 16px;
  text-align: center;
}
.good {
  width: 100%;
  display: inline-flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
}
.good.pushed img {
  filter: drop-shadow(0 0 2px red);
}
.good > span {
  font-size: .75em;
  color: #858585;
  padding-left: 10px;
}
.good.loading img, .good.loading span {
  opacity: 0;
}
.good.loading:after {
  content: 'いいね集計中...';
  font-size: .75em;
}
.translater {
  font-size: .5em;
  color: var(--strong);
}

/* 通報 */
#report_detail .button_area input[type="button"] {
  width: 100%;
  display: block;
  background: var(--main);
  color: white;
  border: 0;
  border-radius: 50px;
  padding: 5px 10px;
  margin: 5px 0;
}

/* プレイスの追加 */
body.place_add_area header {
  display: none;
}
div#place_add {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -100%);
  display: none;
}
body.place_add_area div#place_add {
  display: inline-flex!important;
  flex-direction: column;
  align-items: center;
}
.allow {
  position: relative;
  width: 35px;
  height: 70px;
  background: var(--strong);
  box-shadow: 0 0 10px #85858585;
}
.allow:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 35px 35px 0 35px;
  border-color: var(--strong) transparent transparent transparent;
  filter: drop-shadow(0 7.5px 5px #858585);
  z-index: 1;
}
#place_add input[type="button"] {
  background: var(--strong);
  color: white;
  border: 0;
  padding: 5px 15px;
  font-size: 16px;
  box-shadow: 0 0 10px #858585;
}
.place_add_close {
  display: none;
}
body.place_add_area .place_add_close {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  font-size: 90px;
  background: initial;
  color: var(--main);
  border: 0;
  padding: 0 20px;
  filter: drop-shadow(0 0 5px #858585);
}





.list_area > div {
  position: relative;
  width: 100%;
  margin: 10px 0;
  display: flex;
  flex-direction: column;
}
.list_area .place_type {
  position: absolute;
  top: 0;
  left: 15px;
  transform: translate(0, -20%);
  display: inline-flex;
  flex-direction: row;
  align-content: center;
  align-items: flex-start;
  /* background: white; */
  padding: 0 5px;
}
.list_area .place_type span {
  font-size: .5em;
  padding-right: 5px;
  color: #858585;
  background: #ffffff;
}
.list_area .place_type img {
  filter: drop-shadow(0 0 1px #ffffff) drop-shadow(0 0 1px #ffffff) drop-shadow(0 0 1px #ffffff) drop-shadow(0 0 1px #ffffff) drop-shadow(0 0 1px #ffffff) drop-shadow(0 0 1px #ffffff);
}
.list_area input[type="button"] {
  width: 60vw;
  font-size: 16px;
  background: white;
  border: solid 1px #858585;
  border-radius: 50px;
  padding: 7.5px 20px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: black;
}



/* 広告 */
.bottom_ad_area {
  position: fixed;
  bottom: 25px;
  left: 10px;
  width: max-content;
  height: 65.625px;
  box-shadow: 0 0 10px #858585;
  border-radius: 5px;
  z-index: 99;
}

.bottom_ad_area > * {
  width: 210px; /*3 : 1*/
  height: 65.625px;
  margin: 0;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

.bottom_ad_area > p {
  width: max-content!important;
  padding: 10px 25px;
  filter: drop-shadow(0 0 2px white)
    drop-shadow(0 0 5px white)
    drop-shadow(0 0 10px white)
    drop-shadow(0 0 20px white);
}

.bottom_ad_area.small {
  bottom: 5px;
  left: 5px;
  transform: scale(0.75)translate(-18%, 20%);
  box-shadow: -2px -2px 2px #e8e8e8, 2px 2px 2px #858585;
}


/*スクロールバー全体*/
::-webkit-scrollbar {
  /*width: 10px;*/
}

/*スクロールバーの軌道*/
::-webkit-scrollbar-track {
  /*opacity: 0;*/
}

/*スクロールバーの動く部分*/
::-webkit-scrollbar-thumb {
  /*background: #858585;
  border-radius: 50px;*/
}