@charset "UTF-8";
*,
*:before,
*:after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

html {
  color: #000;
  background: #FFF;
}

body {
  -webkit-text-size-adjust: 100%;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
input, textarea, button, select,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline;
}

td, th {
  vertical-align: top;
}

img {
  vertical-align: bottom;
}

ul, ol, li {
  list-style: none;
}

table {
  border-collapse: separate;
  border-spacing: 0;
}

p, li, dd, dt, td, th {
  word-wrap: break-word;
}

select, input {
  word-wrap: normal;
}

address, caption, cite, code, dfn, em, strong, th, var, time, mark {
  font-style: normal;
  font-weight: normal;
}

caption, th {
  text-align: left;
}

q:before, q:after {
  content: "";
}

abbr, acronym {
  border: 0;
  font-variant: normal;
}

mark {
  color: #000;
  background: #FFF;
}

sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

input, textarea, select, keygen {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

legend {
  color: #000;
}

pre, code,
kbd, samp, tt {
  font-family: monospace;
  line-height: 100%;
}

input:not([type=radio]):not([type=checkbox]), textarea, button {
  /* iosでボタンなどのデフォルト装飾を解除 */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input:focus,
select:focus,
textarea:focus {
  outline: 0;
}

/* Firefoxでボタン系の高さが1pxずれる対策 */
button::-moz-focus-inner,
input[type=button]::-moz-focus-inner,
input[type=reset]::-moz-focus-inner,
input[type=submit]::-moz-focus-inner {
  border: 0px;
}

/*----------------------
     html base
---------------------------------------- */
*,
*:before,
*:after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  height: 100%;
  font-size: 10px; /* 1rem = 10px */
  background: #fff;
}
@media (max-width: 767px) {
  html {
    font-size: 2.0833333333vw;
  }
}

body {
  min-height: 100%;
  font-size: 16px;
  font-size: 1.6rem;
  color: #000;
  line-height: 1;
  font-family: Noto Sans JP, ヒラギノ角ゴ ProN W3, Hiragino Kaku Gothic ProN, 游ゴシック, YuGothic, メイリオ, Meiryo, Arimo, sans-serif;
  font-weight: 400;
}

a {
  color: #000;
  text-decoration: none;
  transition: all 1s;
}
a:hover {
  opacity: 0.7;
}

button, input, textarea {
  font-family: Noto Sans JP, ヒラギノ角ゴ ProN W3, Hiragino Kaku Gothic ProN, 游ゴシック, YuGothic, メイリオ, Meiryo, Arimo, sans-serif;
}

input[type=text], textarea, select, input[type=password] {
  padding: 0.5em 1em;
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 6px;
  width: 100%;
}

textarea {
  height: 10em;
}

button {
  cursor: pointer;
}

img {
  max-width: 100%;
}

@media (max-width: 767px) {
  img {
    max-width: 100%;
  }
}
.l-container {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.l-header {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  background: #221714;
}
.l-header_inner {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  text-align: center;
  padding: 2.4rem;
  margin-top: calc(1.6rem * 4);
}

.l-main {
  width: 100%;
  max-width: 1202px;
  margin-left: auto;
  margin-right: auto;
  border: 1px solid #221714;
  background: url(../images/bg_right.png) no-repeat 178% 292rem;
}
@media (max-width: 767px) {
  .l-main {
    background: url(../images/bg_right.png) no-repeat 160% 110rem;
    background-size: 60%;
  }
}

.l-contents {
  width: 100%;
  max-width: 1202px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
@media (max-width: 767px) {
  .l-contents {
    padding-left: 3vw;
    padding-right: 3vw;
  }
}

.l-footer {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 1024px) {
  .c-contents_title {
    margin-top: calc(7.2rem * 0.25);
    margin-bottom: calc(7.2rem * 0.25);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .c-contents_title {
    margin-top: calc(5.6rem * 0.25);
    margin-bottom: calc(5.6rem * 0.25);
  }
}
@media (max-width: 767px) {
  .c-contents_title {
    margin-top: calc(4rem * 0.25);
    margin-bottom: calc(4rem * 0.25);
  }
}

.c-pagetop {
  background: #727171;
  color: #fff;
  padding: 0.2em 1em;
  font-weight: 700;
  font-size: 1.4rem;
  margin-top: calc(1.6rem * 1);
}

.p-mv {
  position: relative;
  background: url(../images/bg_mv.png) repeat-y top center;
  top: -1px;
}
@media (max-width: 767px) {
  .p-mv {
    padding: 0;
  }
}

@media (min-width: 1024px) {
  .p-arrow {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-arrow {
    margin-top: calc(5.6rem * 0.5);
    margin-bottom: calc(5.6rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-arrow {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-arrow .__image img {
    width: 20rem;
  }
}

.p-schedule {
  padding: 0 1.6rem;
  display: flex;
  gap: 1.6rem;
  justify-content: center;
  text-align: left;
}
.p-schedule .__map {
  position: relative;
}
.p-schedule .__map_arrow {
  position: absolute;
  left: 0;
  top: 0;
}

.p-schedule__text {
  margin-top: 2.4rem;
  background: #000;
  color: #fff;
  padding: 1em;
  font-size: 2.4rem;
  font-weight: 700;
  position: relative;
}
@media (max-width: 767px) {
  .p-schedule__text {
    margin-top: 1.6rem;
  }
}

@media (min-width: 1024px) {
  .p-pickup {
    margin-top: calc(7.2rem * 0.75);
    margin-bottom: calc(7.2rem * 0.75);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-pickup {
    margin-top: calc(5.6rem * 0.75);
    margin-bottom: calc(5.6rem * 0.75);
  }
}
@media (max-width: 767px) {
  .p-pickup {
    margin-top: calc(4rem * 0.75);
    margin-bottom: calc(4rem * 0.75);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-pickup {
    padding-inline: 3vw;
  }
}
.p-pickup__title {
  max-width: 97rem;
  background: url(../images/bg_catch.png) no-repeat top left;
  margin-inline: auto;
  padding: 3.2rem;
  display: grid;
  gap: 1.6rem;
  justify-items: center;
  text-align: center;
}
.p-pickup_inner {
  position: relative;
}
@media (min-width: 1024px) {
  .p-pickup_inner {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-pickup_inner {
    margin-top: calc(5.6rem * 0.5);
    margin-bottom: calc(5.6rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-pickup_inner {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
.p-pickup_list {
  width: 100%;
  max-width: 1074px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  row-gap: 2rem;
  -moz-column-gap: 3rem;
       column-gap: 3rem;
  justify-content: center;
}
.p-pickup_list.__coming_soon {
  pointer-events: none;
}
.p-pickup_list .__coming_soon {
  pointer-events: none;
  position: relative;
}
.p-pickup_list .__coming_soon:before {
  content: "Coming Soon";
  font-weight: 900;
  font-size: 6.4rem;
  width: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: center center;
  transform: translate(-50%, -50%) rotate(5deg);
  filter: drop-shadow(0 0 5px rgb(255, 255, 255));
}
.p-pickup_list .__coming_soon:before img {
  width: 100%;
}
@media (max-width: 767px) {
  .p-pickup_list .__coming_soon:before {
    width: 80%;
    font-weight: 900;
    font-size: 3.2rem;
  }
}
.p-pickup .coming_soon {
  font-weight: 900;
  font-size: 6.4rem;
  width: 50%;
  position: absolute;
  top: 60%;
  left: 50%;
  transform-origin: center center;
  transform: translate(-50%, -50%) rotate(5deg);
  filter: drop-shadow(0 0 5px rgb(255, 255, 255));
}
.p-pickup .coming_soon img {
  width: 100%;
}
@media (max-width: 767px) {
  .p-pickup .coming_soon {
    width: 80%;
  }
}
.p-pickup_arrow {
  margin: 3.2rem;
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  align-items: center;
  justify-content: space-between;
  gap: 2.4rem;
  width: 100%;
  max-width: 970px;
  margin-left: auto;
  margin-right: auto;
}
.p-freed {
  position: relative;
  width: 100%;
  max-width: 1074px;
  margin-left: auto;
  margin-right: auto;
  margin-left: auto;
  margin-right: auto;
}
.p-freed_desc {
  position: absolute;
  bottom: 0;
  background: #555657;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  height: 288px;
  width: 100%;
  max-width: 1074px;
  margin-left: auto;
  margin-right: auto;
  padding: 1.6rem;
}
@media (max-width: 767px) {
  .p-freed_desc {
    width: 94%;
    height: auto;
  }
  .p-freed_desc img {
    max-width: 96%;
  }
}

@media (min-width: 1024px) {
  .p-point {
    margin-top: calc(7.2rem * 1);
    margin-bottom: calc(7.2rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-point {
    margin-top: calc(5.6rem * 1);
    margin-bottom: calc(5.6rem * 1);
  }
}
@media (max-width: 767px) {
  .p-point {
    margin-top: calc(4rem * 1);
    margin-bottom: calc(4rem * 1);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-point {
    padding-inline: 3vw;
  }
}
.p-point_inner {
  width: 100%;
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
  border: 6px solid #c11920;
  background: #fff;
  margin-bottom: 1.6rem;
  padding: 1vw;
}
.p-point_inner.a-point1 {
  display: grid;
  grid-template-columns: 13.7rem 1fr;
  grid-template-areas: "point upper" "point box" "point text";
}
.p-point_inner.a-point1 .__point {
  grid-area: point;
}
.p-point_inner.a-point1 .__upper {
  grid-area: upper;
}
.p-point_inner.a-point1 .__box {
  grid-area: box;
}
.p-point_inner.a-point1 .__text {
  grid-area: text;
}
@media (max-width: 767px) {
  .p-point_inner.a-point1 {
    grid-template-columns: 6rem 1fr;
    grid-template-areas: "point ." "upper upper" "box box" "text text";
    gap: 0.8rem;
  }
}
.p-point_inner .__box {
  border: 2px solid #595757;
  padding-block: 0.4rem 0.8rem;
  padding-inline: 0.8rem;
}
.p-point_inner .__text {
  font-weight: "";
  font-size: 1rem;
  text-align: left;
  line-height: 1.2;
}
.p-point_inner .__point2 {
  margin-right: 2.4rem;
}
.p-point_link {
  display: block;
  padding: 2.4rem 0 3.2rem;
}
@media (max-width: 767px) {
  .p-point_link {
    padding: 3vw;
  }
}

@media (min-width: 1024px) {
  .p-present {
    margin-top: calc(7.2rem * 0.75);
    margin-bottom: calc(7.2rem * 0.75);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-present {
    margin-top: calc(5.6rem * 0.75);
    margin-bottom: calc(5.6rem * 0.75);
  }
}
@media (max-width: 767px) {
  .p-present {
    margin-top: calc(4rem * 0.75);
    margin-bottom: calc(4rem * 0.75);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-present {
    padding-inline: 3vw;
  }
}
.p-present_title {
  background: #e60012;
  background: url(../images/bg_catch.png) no-repeat top left;
  padding: 3.6rem 1.6rem;
  margin-inline: auto;
  width: 100%;
  max-width: 970px;
  margin-left: auto;
  margin-right: auto;
}
.p-present_inner {
  background: #c11920;
  padding: 3.6rem 1.6rem;
  border-radius: 2.2rem;
  width: 100%;
  max-width: 970px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  gap: 2.4rem;
  justify-items: center;
}
.p-present_inner .__text {
  width: 100%;
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  font-weight: 500;
  font-size: 1.2rem;
  color: #fff;
  line-height: 1.4;
  text-align: left;
}

.p-ayatori {
  background: url(../images/bg_right.png) no-repeat 174% 8rem;
}
@media (max-width: 767px) {
  .p-ayatori {
    background: url(../images/bg_right.png) no-repeat 160% 10rem;
    background-size: 60%;
  }
}
.p-ayatori_title {
  background: #ea617c;
  padding: 3.6rem 1.6rem;
  width: 100%;
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
}
.p-ayatori_inner {
  background: #ea617c;
  padding: 3.6rem 1.6rem;
  border-radius: 2.2rem;
  width: 100%;
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .p-link {
    padding-inline: 3vw;
  }
}
.p-link_inner {
  width: 100%;
  max-width: 1074px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  justify-content: space-around;
  gap: 0.8rem;
}
@media (min-width: 1024px) {
  .p-link_inner {
    margin-top: calc(7.2rem * 0.5);
    margin-bottom: calc(7.2rem * 0.5);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-link_inner {
    margin-top: calc(5.6rem * 0.5);
    margin-bottom: calc(5.6rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-link_inner {
    margin-top: calc(4rem * 0.5);
    margin-bottom: calc(4rem * 0.5);
  }
}
@media (max-width: 767px) {
  .p-link_inner {
    flex-wrap: wrap;
  }
  .p-link_inner li {
    width: 45%;
  }
}

.p-footer {
  background: url(../images/bg_footer.png) no-repeat center center/cover;
  color: #fff;
  text-align: center;
  line-height: 1.6;
}
@media (min-width: 1024px) {
  .p-footer {
    padding-top: calc(7.2rem * 0.75);
    padding-bottom: calc(7.2rem * 0.75);
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-footer {
    padding-top: calc(5.6rem * 0.75);
    padding-bottom: calc(5.6rem * 0.75);
  }
}
@media (max-width: 767px) {
  .p-footer {
    padding-top: calc(4rem * 0.75);
    padding-bottom: calc(4rem * 0.75);
  }
}
.p-footer_inner {
  font-weight: 600;
  font-size: 1.6rem;
}
.p-footer_title {
  font-weight: 700;
  font-size: 2.2rem;
  margin-bottom: calc(1.6rem * 0.5);
}
.p-footer_note {
  font-size: 90%;
}

@media (min-width: 1024px) {
  .h-pc_hide,
  .h-pc_tab_hide {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .h-tab_hide,
  .h-pc_tab_hide,
  .h-sp_tab_hide {
    display: none;
  }
}
@media (max-width: 767px) {
  .h-sp_hide,
  .h-sp_tab_hide {
    display: none;
  }
}
.h-mb0 {
  margin-bottom: 0rem !important;
}
@media (max-width: 767px) {
  .h-mb0 {
    margin-bottom: 0rem !important;
  }
}

.h-pb0 {
  padding-bottom: 0rem !important;
}
@media (max-width: 767px) {
  .h-pb0 {
    padding-bottom: 0rem !important;
  }
}

.h-mb10 {
  margin-bottom: 1.6rem !important;
}
@media (max-width: 767px) {
  .h-mb10 {
    margin-bottom: 0.8rem !important;
  }
}

.h-pb10 {
  padding-bottom: 1.6rem !important;
}
@media (max-width: 767px) {
  .h-pb10 {
    padding-bottom: 0.8rem !important;
  }
}

.h-mb20 {
  margin-bottom: 3.2rem !important;
}
@media (max-width: 767px) {
  .h-mb20 {
    margin-bottom: 1.6rem !important;
  }
}

.h-pb20 {
  padding-bottom: 3.2rem !important;
}
@media (max-width: 767px) {
  .h-pb20 {
    padding-bottom: 1.6rem !important;
  }
}

.h-mb30 {
  margin-bottom: 4.8rem !important;
}
@media (max-width: 767px) {
  .h-mb30 {
    margin-bottom: 2.4rem !important;
  }
}

.h-pb30 {
  padding-bottom: 4.8rem !important;
}
@media (max-width: 767px) {
  .h-pb30 {
    padding-bottom: 2.4rem !important;
  }
}

.h-mb40 {
  margin-bottom: 6.4rem !important;
}
@media (max-width: 767px) {
  .h-mb40 {
    margin-bottom: 3.2rem !important;
  }
}

.h-pb40 {
  padding-bottom: 6.4rem !important;
}
@media (max-width: 767px) {
  .h-pb40 {
    padding-bottom: 3.2rem !important;
  }
}

.h-mb50 {
  margin-bottom: 8rem !important;
}
@media (max-width: 767px) {
  .h-mb50 {
    margin-bottom: 4rem !important;
  }
}

.h-pb50 {
  padding-bottom: 8rem !important;
}
@media (max-width: 767px) {
  .h-pb50 {
    padding-bottom: 4rem !important;
  }
}

.h-mb60 {
  margin-bottom: 9.6rem !important;
}
@media (max-width: 767px) {
  .h-mb60 {
    margin-bottom: 4.8rem !important;
  }
}

.h-pb60 {
  padding-bottom: 9.6rem !important;
}
@media (max-width: 767px) {
  .h-pb60 {
    padding-bottom: 4.8rem !important;
  }
}

.h-mb70 {
  margin-bottom: 11.2rem !important;
}
@media (max-width: 767px) {
  .h-mb70 {
    margin-bottom: 5.6rem !important;
  }
}

.h-pb70 {
  padding-bottom: 11.2rem !important;
}
@media (max-width: 767px) {
  .h-pb70 {
    padding-bottom: 5.6rem !important;
  }
}

.h-mb80 {
  margin-bottom: 12.8rem !important;
}
@media (max-width: 767px) {
  .h-mb80 {
    margin-bottom: 6.4rem !important;
  }
}

.h-pb80 {
  padding-bottom: 12.8rem !important;
}
@media (max-width: 767px) {
  .h-pb80 {
    padding-bottom: 6.4rem !important;
  }
}

.h-mb90 {
  margin-bottom: 14.4rem !important;
}
@media (max-width: 767px) {
  .h-mb90 {
    margin-bottom: 7.2rem !important;
  }
}

.h-pb90 {
  padding-bottom: 14.4rem !important;
}
@media (max-width: 767px) {
  .h-pb90 {
    padding-bottom: 7.2rem !important;
  }
}

.h-mb100 {
  margin-bottom: 16rem !important;
}
@media (max-width: 767px) {
  .h-mb100 {
    margin-bottom: 8rem !important;
  }
}

.h-pb100 {
  padding-bottom: 16rem !important;
}
@media (max-width: 767px) {
  .h-pb100 {
    padding-bottom: 8rem !important;
  }
}

.h-mt0 {
  margin-top: 0rem !important;
}

.h-mt10 {
  margin-top: 1.6rem !important;
}

.h-mt20 {
  margin-top: 3.2rem !important;
}

.h-mt30 {
  margin-top: 4.8rem !important;
}

.h-mt40 {
  margin-top: 6.4rem !important;
}

.h-mt50 {
  margin-top: 8rem !important;
}

.h-mt60 {
  margin-top: 9.6rem !important;
}

.h-mt70 {
  margin-top: 11.2rem !important;
}

.h-mt80 {
  margin-top: 12.8rem !important;
}

.h-mt90 {
  margin-top: 14.4rem !important;
}

.h-mt100 {
  margin-top: 16rem !important;
}

.h-bold {
  font-weight: 700;
}

.h-white {
  color: #fff;
}

.h-black {
  color: #000;
}

.h-tac {
  text-align: center;
}

@media (max-width: 767px) {
  .h-sp_tal {
    text-align: left;
  }
}

.h-tal {
  text-align: left;
}

@media (max-width: 767px) {
  .h-sp_padding {
    padding-right: 5vw;
    padding-left: 5vw;
  }
}

.h-bg_white {
  background: #fff;
}
.h-bg_white .__note {
  color: #000;
}

.h-bg_radius {
  border-radius: 1.4rem;
}

.h-contents_padding {
  padding: 2.4rem;
}

.h-image_org_width img {
  width: auto !important;
}

.h-fontL {
  font-size: 2rem;
}
@media (max-width: 767px) {
  .h-fontL {
    font-size: 1.8rem;
  }
}

.h-fontS {
  font-size: 80%;
}

.h-notice {
  font-size: 80%;
}