
/* message */
.v3-oc-message-wrap {
  margin-top: 56px;
  margin-bottom: 48px;
}
.v3-oc-message img {
  max-width: 100%;
  width: 832px;
}
@media (max-width: 767px) {
  .v3-oc-message-wrap {
    margin-top: 32px;
    margin-bottom: 24px;
  }
}

/* navbutton */
.v3-oc-navbutton {
  margin-top: 48px;
}
.v3-oc-navbutton__list {
  display: flex;
  justify-content: space-between;
}
.v3-oc-navbutton__item {
  max-width: 540px;
}
.v3-oc-navbutton__item a {
  
}
.v3-oc-navbutton__item img {
  max-width: 100%;
  transition-duration: .4s;
}
.v3-oc-navbutton__item a:hover img {
  transform: scale(1.05);
}
@media (max-width: 767px) {
  .v3-oc-navbutton__list {
    align-items: center;
    flex-direction: column;
  }
}

/* flow */
.v3-oc-flow-wrap {
  margin-top: 72px;
}
.v3-oc-flow__header img {
  width: 100%;
  max-width: 652px;
}
.v3-oc-flow__first-card {
  margin-top: 64px;
  margin-bottom: 64px;
}
.v3-oc-flow__first-card p {
  /* margin-left: 104px; */
  margin-left: 48px;
  font-size: 18px;
}
.v3-oc-flow__title {
  width: 100%;
  max-width: 480px;
  margin-bottom: 48px;
}

/* flow title banner（v3-oc-flow-title-01.png の CSS 再現・文言は HTML で変更可能） */
.v3-oc-flow__title:has(> .v3-oc-flow__title-banner) {
  /* 文言の長さに依存せず、すべて同じ横幅にする */
  width: min(480px, 100%);
  min-width: min(480px, 100%);
  max-width: min(480px, 100%);
  margin-bottom: 24px;
  box-sizing: border-box;
}
/* カード内：左カラムが短文で縮まないようにする */
.v3-oc-flow__card:has(.v3-oc-flow__title-banner) > .v3-oc-flow__card-left {
  min-width: min(480px, 100%);
}
.v3-oc-flow__title-banner {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  width: 100%;
  box-sizing: border-box;
  border: 2px solid #1da1d2;
  overflow: hidden;
}
.v3-oc-flow__title-banner__num {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  flex: 0 0 22%;
  min-width: 3.25em;
  box-sizing: border-box;
  padding: 0.18em 0.95em 0.18em 0.2em;
  margin-right: -1.5em;
  background-color: #1da1d2;
  color: #fff;
  font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(3.35rem, 9.5vw, 5.25rem);
  font-weight: 900;
  line-height: 1;
  clip-path: polygon(0 0, 100% 0, calc(100% - 1.5em) 100%, 0 100%);
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.v3-oc-flow__title-banner__text {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  margin-left: 0;
  padding: 0.35em 0.85em 0.35em 2em;
  background-color: #fff;
  color: #222;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", "Yu Gothic", YuGothic, "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: clamp(2.05rem, 6.4vw, 3.15rem);
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.22em;
  line-height: 1.2;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .v3-oc-flow__title:has(> .v3-oc-flow__title-banner) {
    width: 80%;
    min-width: 80%;
    max-width: 80%;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }
  .v3-oc-flow__title-banner__num {
    flex: 0 0 26%;
    min-width: 3.1em;
    max-width: none;
    padding: 0.1em 0.55em 0.1em 0.12em;
    margin-right: -0.85em;
    font-size: clamp(2.2rem, 8vw, 3.35rem);
    clip-path: polygon(0 0, 100% 0, calc(100% - 0.95em) 100%, 0 100%);
  }
  .v3-oc-flow__title-banner__text {
    padding: 0.3em 0.5em 0.3em 1.35em;
    /* スマホでも可読性確保（約20px前後。番号側のサイズは変更しない） */
    font-size: clamp(20px, 4.9vw, 22px);
    letter-spacing: 0.14em;
  }
}
@media (max-width: 380px) {
  .v3-oc-flow__title-banner__text {
    letter-spacing: 0.08em;
    padding-left: 1.1em;
    padding-right: 0.35em;
  }
}
.v3-oc-flow__video {
  display: flex;
  justify-content: center;
  column-gap: 48px;
  margin-top: 48px;
}
.v3-oc-flow__video-item {
  max-width: 100%;
  width: 425px;
}
.v3-oc-flow__card {
  display: flex;
  justify-content: space-between;
}
.v3-oc-flow__card + .v3-oc-flow__card {
  margin-top: 64px;
}
.v3-oc-flow__card-left {
  margin-right: 40px;
}
.v3-oc-flow__card-left p {
  /* margin-left: 104px; */
  margin-left: 48px;
  font-size: 18px;
}
@media (max-width: 1199px) {
  .v3-oc-flow__first-card p {
    margin-left: 40px;
  }
  .v3-oc-flow__title {
    max-width: 400px;
  }
  .v3-oc-flow__video {
    column-gap: 32px;
  }
  .v3-oc-flow__card-right img {
    max-width: 400px;
  }
  .v3-oc-flow__card-left p {
    margin-left: 40px;
  }
}
@media (max-width: 991px) {
  .v3-oc-flow__first-card p {
    margin-left: 0;
  }
  .v3-oc-flow__title {
    max-width: 320px;
    margin-bottom: 24px;
  }
  .v3-oc-flow__card-right img {
    max-width: 320px;
  }
  .v3-oc-flow__card-left p {
    margin-left: 0;
  }
}
@media (max-width: 767px) {
  .v3-oc-flow__video {
    flex-direction: column;
    align-items: center;
    row-gap: 24px;
  }
  .v3-oc-flow__card {
    flex-direction: column;
    row-gap: 24px;
  }
  .v3-oc-flow__title {
    max-width: 70%;
  }
  .v3-oc-flow__card-left {
    margin-right: 0;
  }
  .v3-oc-flow__card-right img {
    max-width: 100%;
  }
}
@media (max-width: 480px) {
  .v3-oc-flow__title {
    max-width: 90%;
  }
}

/* gallery */
.v3-oc-gallery__title {
  font-size: 36px;
  text-align: center;
  margin-bottom: 56px;
}
.v3-oc-gallery__inner {
  max-width: 1400px;
  margin: 0 auto 80px;
}
.slider .slick-slide {
  margin:0 10px;
}
.v3-oc-schedule-link img {
  width: 100%;
  max-width: 800px;
  transition-duration: .4s;
}
.v3-oc-schedule-link:hover img {
  transform: scale(1.05);
}
@media (max-width: 480px) {
  .v3-oc-gallery__title {
    font-size: 24px;
  }
}

/* faq */
.v3-oc-faq__header {
  margin-bottom: 40px;
}
.v3-oc-faq__header img {
  width: 100%;
  max-width: 652px;
}

.tab__menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: clamp(32px, 5vw, 64px);
  text-align: center;
  line-height: 1.5;
}

.tab__menu-item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc((100% - (24px * 3)) / 4);
  padding: 24px 0;
  border-radius: 24px 24px 0 0;
  background-color: #FFEBEB;
  font-size: 18px;
}

.tab__menu-item:hover {
  cursor: pointer;
}

.tab__menu-item.is-active {
  background-color: #F7A0A0;
}

.tab__panel {
  padding: 80px 56px;
  background-color: #F5F5F5;
}

.tab__panel-box001,
.tab__panel-box002,
.tab__panel-box003,
.tab__panel-box004 {
  display: none;
}

.tab__panel-box.is-show {
  display: block;
}

/* Accordion */
.qa__item {
  background-color: #fff;
}

.qa__item+.qa__item {
  margin-top: 24px;
}

.qa__head {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  column-gap: 40px;
  padding: 16px 24px;
  font-size: 16px;
}

.qa__head span {
  display: block;
}

.qa__head span:nth-of-type(1) {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  background-image: url("../img/icon-q.svg");
  background-size: cover;
}

.qa__head span:nth-of-type(2) {
  flex-grow: 1;
  text-align: left;
}

.qa__head span:nth-of-type(3) {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  background-image: url("../img/icon-plus.svg");
  background-size: cover;
}

.qa__head:hover {
  cursor: pointer;
}

.qa__body {
  display: none;
  padding: 16px 24px;
}

.qa__body > div {
  display: flex;
}
.qa__body img {
  display: block;
  width: 50px;
  height: 50px;
  margin: 0 24px 8px 0;
  float: left;
}

.qa__body p {
  min-height: 50px;
  margin-bottom: 8px;
}

@media (max-width: 992px) {
  .tab__menu-item {
    width: calc((100% - (16px * 3)) / 4);
  }
}

@media (max-width: 768px) {
  .tab__menu-item {
    width: calc((100% - (8px * 3)) / 4);
    border-radius: 16px 16px 0 0;
    font-size: 16px;
  }
}

@media (max-width: 576px) {
  .tab__panel {
    padding: 40px 16px;
  }

  /* Accordion */
  .qa__head {
    column-gap: 24px;
  }

}

@media (max-width: 480px) {
  .tab__menu-item {
    width: calc((100% - (5px * 3)) / 4);
    font-size: 16px;
  }

  /* Accordion */
  .qa__head {
    column-gap: 16px;
    padding: 16px;
  }

  .qa__head span:nth-of-type(1) {
    width: 32px;
    height: 32px;
  }

  .qa__body {
    padding: 16px;
  }

  .qa__body img {
    width: 32px;
    height: 32px;
    margin: 0 16px 8px 0;
  }

  .qa__body p {
    margin-top: 0;
  }
}

@media (max-width: 390px) {
  .tab__menu-item {
    font-size: 12px;
  }
}

/* bottom message */
.v3-oc-b-message {
  margin-bottom: 64px;
}
.v3-oc-b-message img {
  max-width: 100%;
  width: 832px;
}

/* v2 common の負マージンを上書き：.v2-day-time と .v2-txt の間に控えめな余白 */
.v2-oc-wrap .v2-oc-box .v2-day-time {
  margin-bottom: 0.35rem;
}

@media (max-width: 575px) {
  .v2-oc-wrap .v2-oc-box .v2-day-time.v2-small {
    margin-bottom: 0.25rem;
  }
}