html {
  height: 100% !important;
}

body {
  height: 100% !important;
  user-select: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  overflow-x: hidden;
  -ms-user-select: none;
}

html, body, #wrapper {
  height: 100%;
}
#wrapper {
  overflow-y: auto;
}

.container {
  border-color: #ccc;
  border-style: solid;
  border-width: 0px 1px 0px 1px;
}

#page_intro {
  min-height: 100% !important;
  position: relative;
  height: 100%;
}

.minh-100 {
  min-height: 100%;
}
@media all and (-ms-high-contrast: none) {
  /* IE10以降 min-height bugfix */
  #page_intro.minh-100 {
    height: 100%;
    overflow-y: scroll;
  }
}

.row-5 {
  height: 5vh;
  min-height: 22px;
}
.row-10 {
  height: 10vh;
  min-height: 43px;
}
.row-10.upperbound {
  max-height: 50px;
}
.row-10.lowerbound {
  min-height: 10vh;
}
.row-15 {
  height: 15vh;
  min-height: 63px;
}
.row-65 {
  height: 65vh;
  min-height: 275px;
}
.intro_wrapper {
  height: 100%;
}

.messages_intro {
  height: min(90%, 100% - 53px) !important;
  padding-bottom: 60px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  padding-bottom: 60px;
  max-width: 1170px;
}
#intro {
  position: absolute;
  top: 17px;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 96% !important;
  height: min(90%, 100vh - 60px) !important;
  padding-top: 5%;
  padding-bottom: 5%;
  overflow: auto;
}
#intro p {
  display: block;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 96% !important;
  color: black;
  font-weight: bold;
  font-size: max(23px, 3vh);
  position: relative;
  text-align: center;
  z-index: 1;
  word-break: break-word;
  text-overflow: ellipsis;
}

#start_image {
  position: absolute;
  z-index: 0;
  bottom: 15%;
}

.ab-bottom {
  position: absolute !important;
  bottom: 0;
}

#page_main {
  min-height: 100% !important;
  position: relative;
  max-width: 1170px;
}

#status {
  margin-top: 5px;
  padding-bottom: 5px;
}

.card {
  height: 100%;
  max-height: 100%;
  overflow-y: scroll;
  overflow-x: scroll;
  background-color: #fff;
  scrollbar-width: none;
  -ms-overflow-style: none;
  box-shadow: 0px 0px 2px 3px #ccc inset;
}

.card.card-explanation {
  background-color: #ddd;
  box-shadow: 0px 0px 8px 3px #bbb inset;
}

/* chrome, safari対応 */
.card::-webkit-scrollbar {
  display:none;
}

#status_right label.btn {
  margin: 0;
  padding: 2px;
}

.progress-bar {
  border-radius: 10px;
}

.chip {
  color: rgba(0, 0, 0, 0.6);
  padding: 5px 17px;
  line-height: max(min(7.2vh, 7.2vw), 30px);
  width: max(16vw, 70px);
  border-radius: max(23vw, 16px)  !important;
  background-color: #eee !important;
  margin-bottom: 1rem;
  margin-right: 1rem;
  box-sizing: border-box;
  font-size: max(min(3vh, 3vw), 14px);
}

#mode_select {
  width: 100%;
  height: 100%;
  border: 0;
  cursor: pointer;
  border-radius: 2px;
  text-transform: uppercase;
  text-align: center;
  font-size: clamp(14px, 2.5vh, 35px);
  -webkit-transition: 0.2s ease-out;
  -moz-transition: 0.2s ease-out;
  -o-transition: 0.2s ease-out;
  -ms-transition: 0.2s ease-out;
  transition: 0.2s ease-out;
  -webkit-appearance:none;
  transition: auto;
  color: #fff;
  background: #2bbbad;
}

#mode_select:focus {
  outline: none !important;
}

#mode_select option {
  background-color: #fff;
  color: #000;
}

.word {
  display: flex;
  width: 100%;
  min-height: 100%;
  align-content: center;
  justify-content: center;
}

.word-content {
  width: 100%;
}

.word-content > div{
  width: 100%;
  display: flex;
  vertical-align: middle;
  text-align: center;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: max(3vh, 14px);
  padding: 5px;
  word-break: break-all;
}

.word-content > div > * {
  margin: auto;
}

.word-content > * {
  width: 100%;
}

.word-content > div {
  height: 100%;
}

.word-content p {
  width: 100%;
  max-height: 100%;
  margin: 0;
  word-wrap: break-word;
}

.word-content img,
.word-content svg {
  max-width: 100%;
  height: auto;
}

.explanation {
  display: flex;
  width: 100%;
  min-height: 100%;
  align-content: center;
  justify-content: center;
}

.explanation-content {
  width: 100%;
}

.explanation-content > div {
  width: 100%;
  display: flex;
  vertical-align: middle;
  text-align: center;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  font-size: max(3vh, 14px);
  word-break: break-all;
  -webkit-line-break: strict;
  line-break: strict;
}

.explanation-content > div > * {
  margin: auto;
}

.explanation-content > * {
  width: 100%;
}
.explanation-content p {
  width: 100%;
  max-height: 100%;
  margin: 0;
  word-wrap: break-word;
}
.explanation-content > div {
  height: 100%;
}

.explanation-content img,
.explanation-content svg {
  max-width: 100%;
  height: auto;
}

.word-content ul,
.word-content ul li,
.explanation-content ul,
.explanation-content ul li  {
  list-style-type: inherit;
}

.arrow_nav {
  padding: 5px;
}

.arrow_nav .btn {
  margin: 2px !important;
}

.arrow_circle {
  border-radius: 50% !important;
  height: max(min(8.5vh, 8.5vw), 40px) !important;
  width: max(min(9vh, 9vw), 40px) !important;
  background-color: #eee !important;
  font-size: max(min(3vh, 3vw), 14px);
  padding: 0 !important;
}

#status_right {
  height: clamp(34px, 6vh, 70px);
  position: relative;
  width: 100%;
}

#status_left {
  height: clamp(34px, 6vh, 70px);
  width: 100%;
}

#progress {
  height: 20px;
  width: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
}

.card-preview-content{
  height: 65vh;
  min-height: 275px;
}

.done_button {
  line-height: max(31px, 8.5vh);
  font-size: max(14px, 3.5vh);
  padding: 1px 6px;
}

@media (max-width: 767px) {
  .explanation img {
    height: 100px;
  }

  .explanation-content {
    min-height: 100px;
  }

  .explanation-content img{
    height: auto;
  }

  .progress-bar {
    font-size: 10px!important;
  }

  .page.container .card-gen-top-button-row{
    height: fit-content;
  }

  .card-gen-top-button-row .card-gen-top-button{
    flex-direction: column;
    display: flex;
    width: 100%;
    margin: 0 auto;
    row-gap: 10px;
  }

  .card-gen-top-button .column{
    width: 100%;
  }

  .card-gen-button-area {
    flex-direction: column;
    display: flex;
    height: fit-content;
  }

  .card-gen-button-area .columun-button{
    width: 100%;
  }

  .card-preview-content{
    height: 50vh;
  }

  #status_right {
    height: 20px;
  }

}

/* For photoswipe link option */
.photoswipe-parent {
  position: relative;
  width: 100%;
  height: 100%;
}
.photoswipe-parent::before {
  content: "";
  display: block;
}
.photoswipe-parent > img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}
.photoswipe-child {
  position: absolute;
  top: 0px;
  right: 0px;
  z-index: 1;
}
#prev-content {
  top: 0px;
  left: 0px;
  height: 100%;
  max-height: 100%;
  overflow-y: hidden;
  position: absolute;
}
