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

    INDEX board

===================================================================================== */
@media screen and (max-width: 47.9375em) {
  html {
    font-size: min(3.5897435897vw, 0.875rem);
  }
}
.bold {
  font-weight: bold;
}
.txt-ctr {
  text-align: center;
}

/* fz 不便すぎて作った…偶数のみ
********************************************** */
@media screen and (max-width: 47.9375em) {
  .fz-sp8 {
    font-size: 0.5714285714rem !important;
  }
}
.fz10 {
  font-size: 0.625rem;
}
@media screen and (max-width: 47.9375em) {
  .fz10 {
    font-size: 0.625rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp10 {
    font-size: 0.7142857143rem !important;
  }
}
.fz12 {
  font-size: 0.75rem;
}
@media screen and (max-width: 47.9375em) {
  .fz12 {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp12 {
    font-size: 0.8571428571rem !important;
  }
}
.fz14 {
  font-size: 0.875rem;
}
@media screen and (max-width: 47.9375em) {
  .fz14 {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp14 {
    font-size: 1rem !important;
  }
}
.fz16 {
  font-size: 1rem;
}
@media screen and (max-width: 47.9375em) {
  .fz16 {
    font-size: 1rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp16 {
    font-size: 1.1428571429rem !important;
  }
}
.fz18 {
  font-size: 1.125rem;
}
@media screen and (max-width: 47.9375em) {
  .fz18 {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp18 {
    font-size: 1.2857142857rem !important;
  }
}
.fz20 {
  font-size: 1.25rem;
}
@media screen and (max-width: 47.9375em) {
  .fz20 {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp20 {
    font-size: 1.4285714286rem !important;
  }
}
.fz22 {
  font-size: 1.375rem;
}
@media screen and (max-width: 47.9375em) {
  .fz22 {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp22 {
    font-size: 1.5714285714rem !important;
  }
}
.fz24 {
  font-size: 1.5rem;
}
@media screen and (max-width: 47.9375em) {
  .fz24 {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp24 {
    font-size: 1.7142857143rem !important;
  }
}
.fz26 {
  font-size: 1.625rem;
}
@media screen and (max-width: 47.9375em) {
  .fz26 {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp26 {
    font-size: 1.8571428571rem !important;
  }
}
.fz28 {
  font-size: 1.75rem;
}
@media screen and (max-width: 47.9375em) {
  .fz28 {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp28 {
    font-size: 2rem !important;
  }
}
.fz30 {
  font-size: 1.875rem;
}
@media screen and (max-width: 47.9375em) {
  .fz30 {
    font-size: 1.875rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp30 {
    font-size: 2.1428571429rem !important;
  }
}
.fz32 {
  font-size: 2rem;
}
@media screen and (max-width: 47.9375em) {
  .fz32 {
    font-size: 2rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp32 {
    font-size: 2.2857142857rem !important;
  }
}
.fz34 {
  font-size: 2.125rem;
}
@media screen and (max-width: 47.9375em) {
  .fz34 {
    font-size: 2.125rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp34 {
    font-size: 2.4285714286rem !important;
  }
}
.fz36 {
  font-size: 2.25rem;
}
@media screen and (max-width: 47.9375em) {
  .fz36 {
    font-size: 2.25rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp36 {
    font-size: 2.5714285714rem !important;
  }
}
.fz38 {
  font-size: 2.375rem;
}
@media screen and (max-width: 47.9375em) {
  .fz38 {
    font-size: 2.375rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp38 {
    font-size: 2.7142857143rem !important;
  }
}
.fz40 {
  font-size: 2.5rem;
}
@media screen and (max-width: 47.9375em) {
  .fz40 {
    font-size: 2.5rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp40 {
    font-size: 2.8571428571rem !important;
  }
}
.fz42 {
  font-size: 2.625rem;
}
@media screen and (max-width: 47.9375em) {
  .fz42 {
    font-size: 2.625rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp42 {
    font-size: 3rem !important;
  }
}
.fz44 {
  font-size: 2.75rem;
}
@media screen and (max-width: 47.9375em) {
  .fz44 {
    font-size: 2.75rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp44 {
    font-size: 3.1428571429rem !important;
  }
}
.fz46 {
  font-size: 2.875rem;
}
@media screen and (max-width: 47.9375em) {
  .fz46 {
    font-size: 2.875rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp46 {
    font-size: 3.2857142857rem !important;
  }
}
.fz48 {
  font-size: 3rem;
}
@media screen and (max-width: 47.9375em) {
  .fz48 {
    font-size: 3rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp48 {
    font-size: 3.4285714286rem !important;
  }
}
.fz50 {
  font-size: 3.125rem;
}
@media screen and (max-width: 47.9375em) {
  .fz50 {
    font-size: 3.125rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp50 {
    font-size: 3.5714285714rem !important;
  }
}
.fz52 {
  font-size: 3.25rem;
}
@media screen and (max-width: 47.9375em) {
  .fz52 {
    font-size: 3.25rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp52 {
    font-size: 3.7142857143rem !important;
  }
}
.fz54 {
  font-size: 3.375rem;
}
@media screen and (max-width: 47.9375em) {
  .fz54 {
    font-size: 3.375rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp54 {
    font-size: 3.8571428571rem !important;
  }
}
.fz56 {
  font-size: 3.5rem;
}
@media screen and (max-width: 47.9375em) {
  .fz56 {
    font-size: 3.5rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp56 {
    font-size: 4rem !important;
  }
}
.fz58 {
  font-size: 3.625rem;
}
@media screen and (max-width: 47.9375em) {
  .fz58 {
    font-size: 3.625rem;
  }
}
@media screen and (max-width: 47.9375em) {
  .fz-sp58 {
    font-size: 4.1428571429rem !important;
  }
}
.fz60 {
  font-size: 3.75rem;
}
.fz70 {
  font-size: 4.375rem;
}
.fz80 {
  font-size: 5rem;
}

/* tick
********************************************** */
[data-js-tick] {
  --gap: 80;
  display: flex;
  white-space: nowrap;
  position: relative;
  overflow: clip;
  margin-inline: calc(50% - 50vw);
}
[data-js-tick].load-complete [data-js-tick-row] {
  animation: loop-tick var(--tick-duration) linear infinite;
}
[data-js-tick-row] {
  position: relative;
  display: flex;
  flex-shrink: 0;
}
[data-js-tick-item] {
  flex-shrink: 0;
  padding-right: var(--gap);
}
@keyframes loop-tick {
  0% {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-100%);
  }
}

/* board
 **************************************** */
@font-face {
  font-family: "font_dots_jp";
  src: url(../fonts/dots_jp.woff2) format("woff2");
}
.dots_jp {
  font-family: font_dots_jp, sans-serif;
}
.board {
  position: relative;
  padding-top: 160px;
  font-weight: bold;
  margin-bottom: 72px;
}
.board.calendar-page {
  padding-top: 40px;
  margin-bottom: 0;
  padding-bottom: 0;
}
.board .inner {
  position: relative;
  z-index: 0;
  width: 90%;
  border-radius: 20px;
  color: #fff;
  background-color: #fff;
}
.board--lft {
  position: absolute;
  z-index: 1;
  width: 50%;
  padding: 110px 20px 20px;
}
.board--youtube {
  position: relative;
  border-radius: 20px;
}
.board--youtube::before {
  content: "";
  display: block;
  aspect-ratio: 16 / 9;
}
.board--youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border-radius: 15px;
}
/* iframe */
.board--rt {
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  min-height: 670px;
  vertical-align: middle;
  border-radius: 20px;
}
.board--rt-html {
  -ms-overflow-style: none;
  /* IE, Edge 対応 */
  scrollbar-width: none;
  /* Firefox 対応 */
  overflow-y: hidden !important;
}
.board--rt-body {
  position: relative;
  z-index: 0;
}
.board--rt-body.opening .board--txtarea {
  color: #333;
}
.board--rt-body.opening {
  background: linear-gradient(135deg, #f9dc09, #6a5c00);
}
.board--rt-body.open {
  background: linear-gradient(135deg, #e60012, #7b0000);
}
.board--rt-body.out {
  background: linear-gradient(135deg, #1d2088, #000004);
}
.board--rt-body.closed {
  background: linear-gradient(135deg, #686666, #231815);
}
.board--rt-body.closed_business {
  background: linear-gradient(135deg, #8bbf1e 0%, #466700 100%);
}
.board--crawling_text {
  position: absolute;
  position: relative;
  top: 0;
  left: 0;
  right: 0;
  z-index: 0;
  white-space: nowrap;
  overflow: hidden;
  height: calc(1.7rem * 1.8 + 1.25rem * 1.8);
}
.board--crawling_text .dots_jp {
  /* --tick-duration: 14s; */
  height: 1lh;
  color: #ffd13f;
  font-size: 1.7rem;
  background: #000 url(../images/dots.png);
}
.board--crawling_text .dots_jp [data-js-tick-item] {
  padding-left: 100vw;
}
.board--crawling_text .live {
  --tick-duration: 20s;
  position: relative;
  z-index: 1;
  height: 1lh;
  color: #000;
  font-size: 1.25rem;
  font-weight: bold;
  background-color: #fff;
}
.board--crawling_text .icon-live {
  width: 100px;
  background-image: url(../images/live.gif);
  background-size: 100%;
  background-position: center;
}
.board--crawling_text br {
  display: none;
}
.board--txtarea {
  padding: 0 20px 20px;
}
.board--txtarea a {
  color: #fff;
  text-decoration: underline;
}
.board--txtarea-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 330px;
  margin-left: 50%;
}
.board--ttl {
  font-size: 160%;
  line-height: 1.1;
  font-family: "リュウミン B-KL";
}
.board--ttl-main .time_box {
  flex-shrink: 0;
  font-weight: bold;
  line-height: 1.6;
}
.board_card.closed .board--ttl-main .time_box {
  line-height: 1.2;
}
.board--rt-body.closed_business .time_box {
  line-height: 1.5;
}
.flash {
  opacity: 0;
  animation: flash 1.2s linear infinite;
}
.board--rt-body .en {
  display: inline-block;
  padding-top: 0.1em;
  font-family: "Sharoa Pro Bold", sans-serif;
  line-height: 1;
}
.ua-mac .board--rt-body .en {
  margin-bottom: -0.1em;
}
.ua-win .board--rt-body .en {
  margin-top: -0.2em;
  margin-bottom: 0.1em;
}
.board--rt-body .jp {
  font-family: "リュウミン B-KL";
}
.board--time {
  line-height: 1.3;
  font-weight: bold;
}
.board--btm {
  padding-top: 16px;
}
.board--card-list .lists {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}

/* board_card */
.board_card.opening {
  --bg_color: #f39800;
}
.board_card.open {
  --bg_color: #e60012;
}
.board_card.out {
  --bg_color: #1d2088;
}
.board_card.closed {
  --bg_color: #9fa0a0;
}
.board_card.closed_business {
  --bg_color: #80af19;
}
.closed_business .board--txtarea-inner {
  justify-content: flex-end;
}
.closed_business .board--card-list .lists .board_card {
  order: -1;
}
@media screen and (min-width: 768px) {
  .board--card-list ul.lists .board_card:not(.closed) {
    grid-template-rows: subgrid;
  }
}
.board_card {
  --border_w: 3px;
  --radius: 10px;
  position: relative;
  display: grid;
  grid-template-columns: 85px 1fr;
  gap: 0 10px;
  grid-template-areas:
    "img txt"
    "img tel"
    "comment comment";
  grid-row: span 3;
  margin-top: 36px;
  padding: 16px 8px 8px;
  border: var(--border_w) solid #fff;
  border-radius: 0 var(--radius) var(--radius) var(--radius);
  background-color: var(--bg_color);
}
.board_card:only-child {
  max-width: 500px;
  margin-inline: auto;
}
.board_card .card_index {
  position: absolute;
  top: calc(-1lh - var(--border_w));
  left: calc(-1 * var(--border_w));
  width: fit-content;
  min-width: 150px;
  padding-inline: 1em;
  text-align: center;
  border: var(--border_w) solid #fff;
  border-bottom: none;
  border-radius: var(--radius) var(--radius) 0 0;
  background-color: var(--bg_color);
}
.board_card--img {
  grid-area: img;
}
.board_card--txt {
  grid-area: txt;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-bottom: 6px;
}
.board_card--txt .board--ttl-main {
  display: flex;
  align-items: center;
  column-gap: 0.7em;
  line-height: 1.1;
}
.board--ttl-main:not(:has(> *:nth-child(2))) {
  justify-content: center;
}
.board_card .tel_box {
  grid-area: tel;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5em 1em;
  border: 1px solid #fff;
  border-radius: 8px;
  padding: 0.1em 0.5em 0em 0.5em;
  color: #fff;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0;
}
.board_card .tel_box a {
  text-decoration: none;
}
.board_card .tel_box a::before {
  content: "";
  position: absolute;
  inset: 0;
}
.board_card--comment {
  grid-area: comment;
  margin-top: 10px;
  padding: 0.5em 1em;
  font-size: 0.875rem;
  border-radius: 0.5rem;
  background-color: #fff;
}
.board--comment {
  margin-top: 2rem;
  font-size: 1.5rem;
  font-family: "リュウミン M-KL";
}
.board--comment-box {
  padding: 1em;
  color: #303030;
  line-height: 1.5;
  font-weight: bold;
  background-color: #fff;
  border-radius: 10px;
  font-size: 1rem;
}
.board--attention a {
  position: relative;
  display: block;
  width: fit-content;
  margin-bottom: 8px;
  margin-inline: auto;
  color: #000;
  background: #ffe68a;
  border-radius: 50px;
  padding: 0.5em 1em;
  line-height: 1.3;
  font-size: 1rem;
  text-decoration: underline;
}
.calendar-page .board--attention {
  display: none;
}
.board--attention span {
  position: absolute;
  right: 20px;
  bottom: -20px;
  color: #fff;
  font-size: 0.85rem;
  font-weight: bold;
}
.board--attention span::after {
  content: "";
  position: absolute;
  right: -20px;
  top: -6px;
  display: block;
  width: 20px;
  aspect-ratio: 122/ 150;
  background: url(../images/icon-finger.svg);
}
@media screen and (max-width: 767px) {
  .board--ttl {
    font-size: 170%;
  }
  .board--lft {
    width: 100%;
    padding: 20vw 10px 10px;
  }
  .board--youtube iframe {
    border-radius: 12px;
  }
  .board--rt {
    position: relative;
    width: 100%;
    border-radius: 10px;
  }
  .board--crawling_text {
    font-size: 1.5rem;
  }
  .board--txtarea {
    padding: 0 20px 20px;
  }
  .board--txtarea-inner {
    margin-left: 0;
    margin-top: calc(9 / 16 * 100vw + 30px);
    min-height: auto;
    padding-bottom: 24px;
  }
  .board--comment {
    margin-top: 1rem;
  }
  .board--card-list .lists {
    grid-template-columns: 1fr;
  }
  .board_card {
    margin-top: 1.7142857143rem;
    padding: 0 0.5714285714rem 0.5714285714rem;
    gap: 0 0.5714285714rem;
    grid-template-columns: 3.5714285714rem 1fr;
    grid-template-areas:
      "img txt"
      "tel tel"
      "comment comment";
  }
  .board_card--txt {
    padding-bottom: 0;
  }
  .board_card--txt .board--ttl-main {
    column-gap: 0;
  }
  .board--ttl-main {
    position: relative;
  }
  .board--ttl-main .time_box-txt span {
    position: absolute;
    inset-inline: 0;
    text-align: center;
  }
  .board_card .tel_box {
    flex-direction: column;
    gap: 0;
    margin-top: 6px;
    padding: 4px;
  }
  .board_card:has(.board--ttl-main .time_box-txt span) .board_card--img {
    margin-top: 6px;
  }
  .board_card--img {
    font-size: 10px;
    letter-spacing: 0;
    line-height: 1.2;
  }
  .board_card--img span {
    letter-spacing: inherit;
  }
  .board_card--comment {
    line-height: 1.6;
  }

  /* ステータスごとの調整 */
  .board_card.closed_business .board--card-list .lists .board_card {
    order: initial;
  }
  .board_card.closed,
  .board_card.closed_business {
    padding-top: 10px;
  }
}
