/* Reservation links and information announcement. */
.reservation_button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 1px solid #004ea2;
  background: #ea5323;
  color: #fff;
  font: inherit;
  font-weight: 500;
  opacity: 1;
  cursor: pointer;
}
header .sub_gnav2 .reservation_button { font-size: 0.24rem; }
.fix_btn ul li { width: 25%; }
.fix_btn .reservation_button { border: 0; font-size: 0.24rem; font-weight: 600; }
.main .sec_mv .entry .visit_announcement {
  margin-top: 0.25rem;
  font-size: 0.64rem;
  line-height: 1.5;
  font-weight: 500;
}
.main .sec_mv .entry .visit_date,
.main .sec_mv .entry .visit_priority { display: inline-block; }
.main .sec_mv .entry .visit_announcement small { font-size: 0.75em; }
.main .sec_mv .entry .visit_button { margin: 0.6rem auto 0; width: 7.5rem; max-width: 100%; }
.main .sec_mv .entry .visit_button .reservation_button {
  position: relative;
  min-height: 1.1rem;
  padding: 0.2rem 0.75rem;
  border-radius: 0;
  font-size: 0.4rem;
  box-shadow: 3px 5px #004ea2;
}
.main .sec_mv .entry .visit_button span { position: absolute; right: 0.4rem; }
.main .sec_mv .entry .ent_lim { margin-top: 0.6rem; }
.main .sec_mv .entry .entry_details { margin-top: 0.7rem; }
.main .sec_mv .entry .entry_details .ttl { font-size: 0.48rem; line-height: 1.5; }
#design .page_mv .image img { display: block; width: 100%; height: auto; }
@media screen and (max-width: 750px) {
  .main .sec_mv .entry .visit_announcement { font-size: 0.4rem; }
  .main .sec_mv .entry .visit_date,
  .main .sec_mv .entry .visit_priority { display: block; }
  .main .sec_mv .entry .visit_priority + br { display: none; }
  .main .sec_mv .entry .visit_button { width: 100%; margin-top: 0.5rem; }
  .main .sec_mv .entry .visit_button .reservation_button { font-size: 0.32rem; }
  .main .sec_mv .entry .entry_details .ttl { font-size: 0.36rem; }
  .fix_btn ul li a, .fix_btn .reservation_button { font-size: max(0.22rem, 10px); }
}

#access .page_mv .image img { display: block; width: 100%; aspect-ratio: 2733 / 1361; object-fit: cover; object-position: 70% 50%; }
.main .sec_location .fireworks_video { display: block; width: 100%; height: auto; }

header ul.sub_gnav2 li.res a.reservation_button { background: #ea5323; color: #fff; }
.fix_btn ul li.res a.reservation_button { background: #ea5323; color: #fff; }
.reservation_button:focus-visible { outline: 3px solid #ffe100; outline-offset: 3px; }
.main .sec_mv .entry .visit_date { display: block; }
.main .sec_mv .entry .visit_priority,
.main .sec_mv .entry .visit_event { display: block; color: #ffe100; font-size: 0.8rem; font-weight: 700; line-height: 1.5; }
.main .sec_mv .entry .entry_details .text_svg { width: 8rem; max-width: 75%; margin: 0.5rem auto; }
@media screen and (max-width: 750px) {
 .main .sec_mv .entry .visit_priority,
 .main .sec_mv .entry .visit_event { font-size: 0.48rem; }
 .main .sec_mv .entry .entry_details .text_svg { width: 5.2rem; max-width: 75%; }
}

footer .footer_reservation { width: 6.6rem; max-width: calc(100% - 0.8rem); margin: 0.6rem auto 0; }
footer .footer_reservation .reservation_button { position: relative; min-height: 1.04rem; padding: 0.2rem 0.7rem; border-radius: 0; background: #ea5323; color: #fff; font-size: 0.3rem; font-weight: 600; box-shadow: 3px 5px #004ea2; }
footer .footer_reservation span { position: absolute; right: 0.35rem; }
footer .footer_reservation .reservation_button:hover { background: #ce431b; }
@media screen and (max-width: 750px) {
 footer .footer_reservation { width: 6.3rem; margin-top: 0.5rem; }
 footer .footer_reservation .reservation_button { font-size: 0.28rem; }
}

/* Reservation link in the mobile navigation menu. */
.sub_nav li.res a div { background: #ea5323; color: #fff; }
.sub_nav li.res a::after { background: #f3a8ab; }

@media screen and (max-width: 750px) {
  .sub_nav { width: 90%; }
  .sub_nav li { height: auto; }
  .sub_nav li.res { margin-top: 0.25rem; }
  .sub_nav li.res a { width: 100%; }
  .sub_nav li.res a div { width: 100%; min-height: 1.2rem; box-sizing: border-box; display: flex; justify-content: center; align-items: center; border: 1px solid #004ea2; }
}

/* Opening announcement in the footer. */
footer .footer_announcement { padding: 0 0.4rem; font-size: 0.4rem; line-height: 1.6; font-weight: 600; }
footer .footer_announcement .announcement_date { display: block; }
footer .footer_announcement .announcement_priority { display: inline-block; margin-right: 0.3rem; color: #ffe100; }
footer .footer_announcement .announcement_event { display: inline-block; color: #ffe100; }
@media screen and (max-width: 750px) {
  footer .footer_announcement { font-size: 0.32rem; }
  footer .footer_announcement .announcement_priority,
  footer .footer_announcement .announcement_event { display: block; margin-right: 0; }
}
