@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Lato:wght@700&family=Noto+Serif+JP:wght@500;600;700&display=swap");
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,
b, u, i, center,
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,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  line-height: 1.7em;
}

article, aside, details, figcaption, figure, main,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  vertical-align: baseline;
  -webkit-text-size-adjust: 100%;
}

img {
  display: inherit;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}

* {
  box-sizing: border-box;
  word-break: normal;
  line-height: 1.7em;
  background-repeat: no-repeat;
}

div#ie_container {
  display: none;
  width: 100%;
  height: 100%;
  margin: auto;
}
div#ie_container div.cover {
  width: 100%;
  height: 100%;
  max-width: none;
  position: fixed;
  top: 0;
  left: 0;
  text-align: center;
  margin: auto;
}
div#ie_container div.cover p {
  width: 100%;
  position: absolute;
  font-size: 12px;
  line-height: 1.7em;
  top: 50%;
  left: 0;
  right: 0;
  text-align: center;
}

.ie7 body {
  overflow: hidden;
  background: #FFFFFF;
}

.ie7 div#container {
  display: none;
}

.ie8 body {
  overflow: hidden;
  background: #FFFFFF;
}

.ie8 div#container {
  display: none;
}

.ie8 div#ie_container {
  display: inherit;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.center {
  text-align: center;
}

.center_left {
  text-align: center;
}
@media screen and (max-width: 768px) {
  .center_left {
    text-align: left;
  }
}

.mt_10 {
  margin-top: 10px;
}

.mt_20 {
  margin-top: 20px;
}

.mt_30 {
  margin-top: 30px;
}

.mt_50 {
  margin-top: 50px;
}

.mt_100 {
  margin-top: 100px;
}

@media screen and (max-width: 768px) {
  .mt_20 {
    margin-top: 15px;
  }

  .mt_30 {
    margin-top: 20px;
  }

  .mt_50 {
    margin-top: 30px;
  }

  .mt_100 {
    margin-top: 50px;
  }
}
@media screen and (max-width: 568px) {
  .mt_20 {
    margin-top: 15px;
  }

  .mt_50 {
    margin-top: 25px;
  }
}
.mb_10 {
  margin-bottom: 10px;
}

.mb_20 {
  margin-bottom: 20px;
}

.mb_30 {
  margin-bottom: 30px;
}

.mb_50 {
  margin-bottom: 50px;
}

.mb_100 {
  margin-bottom: 100px;
}

@media screen and (max-width: 768px) {
  .mb_20 {
    margin-bottom: 15px;
  }

  .mb_30 {
    margin-bottom: 20px;
  }

  .mb_50 {
    margin-bottom: 30px;
  }

  .mb_100 {
    margin-bottom: 50px;
  }
}
@media screen and (max-width: 568px) {
  .mb_20 {
    margin-bottom: 15px;
  }

  .mb_50 {
    margin-bottom: 25px;
  }
}
.mr_05 {
  margin-right: 5px;
}

.mr_10 {
  margin-right: 10px;
}

.mr_15 {
  margin-right: 15px;
}

.mr_20 {
  margin-right: 20px;
}

.mr_30 {
  margin-right: 30px;
}

.ml_05 {
  margin-left: 5px;
}

.ml_10 {
  margin-left: 10px;
}

.ml_15 {
  margin-left: 15px;
}

.ml_20 {
  margin-left: 20px;
}

.ml_30 {
  margin-left: 30px;
}

.font_size_30, div.basket_box h1, div.basket_box h2 {
  font-size: 30px;
}
@media screen and (max-width: 768px) {
  .font_size_30, div.basket_box h1, div.basket_box h2 {
    font-size: 26px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_30, div.basket_box h1, div.basket_box h2 {
    font-size: 24px;
  }
}

.font_size_26 {
  font-size: 26px;
}
@media screen and (max-width: 768px) {
  .font_size_26 {
    font-size: 24px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_26 {
    font-size: 22px;
  }
}

.font_size_24 {
  font-size: 24px;
}
@media screen and (max-width: 768px) {
  .font_size_24 {
    font-size: 22px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_24 {
    font-size: 20px;
  }
}

.font_size_22 {
  font-size: 22px;
}
@media screen and (max-width: 768px) {
  .font_size_22 {
    font-size: 20px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_22 {
    font-size: 18px;
  }
}

.font_size_20, .ttl_sub, div.front div.agree_box p.strong_text,
div.form div.agree_box p.strong_text {
  font-size: 20px;
}
@media screen and (max-width: 768px) {
  .font_size_20, .ttl_sub, div.front div.agree_box p.strong_text,
  div.form div.agree_box p.strong_text {
    font-size: 18px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_20, .ttl_sub, div.front div.agree_box p.strong_text,
  div.form div.agree_box p.strong_text {
    font-size: 16px;
  }
}

.font_size_18, h2.ttl, .ttl_form, section.plan h3:before, div.top_view .kv_copy {
  font-size: 18px;
}
@media screen and (max-width: 768px) {
  .font_size_18, h2.ttl, .ttl_form, section.plan h3:before, div.top_view .kv_copy {
    font-size: 17px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_18, h2.ttl, .ttl_form, section.plan h3:before, div.top_view .kv_copy {
    font-size: 15px;
  }
}

.font_size_16, body, div.basket_box p, input,
select,
textarea,
search, button {
  font-size: 16px;
}
@media screen and (max-width: 768px) {
  .font_size_16, body, div.basket_box p, input,
  select,
  textarea,
  search, button {
    font-size: 15px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_16, body, div.basket_box p, input,
  select,
  textarea,
  search, button {
    font-size: 14px;
  }
}

.font_size_14, .btn_add, .btn_remove, p#fm_ajax_message {
  font-size: 14px;
}
@media screen and (max-width: 768px) {
  .font_size_14, .btn_add, .btn_remove, p#fm_ajax_message {
    font-size: 13px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_14, .btn_add, .btn_remove, p#fm_ajax_message {
    font-size: 12px;
  }
}

.font_size_12, footer section.copyright p, div.pan, dl.faq span, div.err_area p, div.err_area .text_box li, p.text_attention {
  font-size: 12px;
}
@media screen and (max-width: 768px) {
  .font_size_12, footer section.copyright p, div.pan, dl.faq span, div.err_area p, div.err_area .text_box li, p.text_attention {
    font-size: 12px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_12, footer section.copyright p, div.pan, dl.faq span, div.err_area p, div.err_area .text_box li, p.text_attention {
    font-size: 11px;
  }
}

.font_size_10 {
  font-size: 10px;
}
@media screen and (max-width: 768px) {
  .font_size_10 {
    font-size: 10px;
  }
}
@media screen and (max-width: 568px) {
  .font_size_10 {
    font-size: 10px;
  }
}

.nomal {
  font-weight: normal;
}

.bold {
  font-weight: bold;
}

.corners {
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
}

@media screen and (max-width: 768px) {
  .hide_sp {
    display: none;
  }
}

@media screen and (min-width: 769px) {
  .hide_pc {
    display: none;
  }
}

@media screen and (max-width: 568px) {
  .hide_less_sp {
    display: none;
  }
}

@media screen and (min-width: 569px) {
  .hide_more_sp {
    display: none;
  }
}

@media screen and (max-width: 414px) {
  .hide_less_ssp {
    display: none;
  }
}

@media screen and (min-width: 415px) {
  .hide_more_ssp {
    display: none;
  }
}

@media screen and (max-width: 374px) {
  .hide_less_sssp {
    display: none;
  }
}

@media screen and (min-width: 375px) {
  .hide_more_sssp {
    display: none;
  }
}

.display_none {
  display: none;
}

.sp_link {
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .sp_link {
    pointer-events: inherit;
  }
}

.wbr {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* Slider */
.slider {
  display: none;
}

.slider.slick-initialized {
  display: block;
}

.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir="rtl"] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
  width: 25.5vw;
  max-width: 349px;
  height: auto;
}
@media screen and (max-width: 768px) {
  .slick-slide img {
    max-width: 268px;
    width: 71vw;
  }
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* Slider */
.slick-loading .slick-list {
  background: #fff url(../img/arrow/ajax-loader.gif) center center no-repeat;
}

/* Arrows */
.slick-prev,
.slick-next {
  position: absolute;
  display: block;
  height: 20px;
  width: 20px;
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  background: transparent;
  color: transparent;
  top: 50%;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding: 0;
  border: none;
  outline: none;
}
.slick-prev:hover, .slick-prev:focus,
.slick-next:hover,
.slick-next:focus {
  outline: none;
  background: transparent;
  color: transparent;
}
.slick-prev:hover:before, .slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
  opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
  opacity: 0.25;
}
.slick-prev:before,
.slick-next:before {
  font-family: "slick";
  font-size: 20px;
  line-height: 1;
  color: white;
  opacity: 0.75;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-prev {
  left: -25px;
}
[dir="rtl"] .slick-prev {
  left: auto;
  right: -25px;
}
.slick-prev:before {
  content: "←";
}
[dir="rtl"] .slick-prev:before {
  content: "→";
}

.slick-next {
  right: -25px;
}
[dir="rtl"] .slick-next {
  left: -25px;
  right: auto;
}
.slick-next:before {
  content: "→";
}
[dir="rtl"] .slick-next:before {
  content: "←";
}

/* Dots */
.slick-dots {
  position: absolute;
  bottom: -25px;
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0;
  width: 100%;
}
.slick-dots li {
  position: relative;
  display: inline-block;
  height: 20px;
  width: 20px;
  margin: 0 5px;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  border: 0;
  background: transparent;
  display: block;
  height: 20px;
  width: 20px;
  outline: none;
  line-height: 0px;
  font-size: 0px;
  color: transparent;
  padding: 5px;
  cursor: pointer;
}
.slick-dots li button:hover, .slick-dots li button:focus {
  outline: none;
}
.slick-dots li button:hover:before, .slick-dots li button:focus:before {
  opacity: 1;
}

html,
body {
  width: 100%;
  height: 100%;
  min-width: 1000px;
  margin: auto;
}
@media screen and (max-width: 768px) {
  html,
  body {
    min-width: inherit;
  }
}

body {
  font-family: 游明朝, "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "Noto Serif JP", HGS明朝E, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  color: #363636;
}

div#container {
  width: 100%;
  height: 100%;
}

::selection {
  background: #363636;
  color: #FFF;
}

::-moz-selection {
  background: #363636;
  color: #FFF;
}

a {
  color: #363636;
  text-decoration: none;
  -moz-transition: background-color 0.4s ease, color 0.4s ease, opacity 0.4s ease;
  -o-transition: background-color 0.4s ease, color 0.4s ease, opacity 0.4s ease;
  -webkit-transition: background-color 0.4s ease, color 0.4s ease, opacity 0.4s ease;
  transition: background-color 0.4s ease, color 0.4s ease, opacity 0.4s ease;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
a:hover {
  color: #363636;
  text-decoration: underline;
}
a:visited {
  color: #363636;
}
a img {
  -moz-transition: opacity 0.4s ease;
  -o-transition: opacity 0.4s ease;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}
a:hover img {
  opacity: 0.8;
}

table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
@media screen and (max-width: 768px) {
  table.tb_block, div.front main section.reserve table,
  div.front main section.confirm table,
  div.front main section.complete table,
  div.form main section.reserve table,
  div.form main section.confirm table,
  div.form main section.complete table, table.tb_block thead, div.front main section.reserve table thead,
  div.front main section.confirm table thead,
  div.front main section.complete table thead,
  div.form main section.reserve table thead,
  div.form main section.confirm table thead,
  div.form main section.complete table thead, table.tb_block tbody, div.front main section.reserve table tbody,
  div.front main section.confirm table tbody,
  div.front main section.complete table tbody,
  div.form main section.reserve table tbody,
  div.form main section.confirm table tbody,
  div.form main section.complete table tbody, table.tb_block tfoot, div.front main section.reserve table tfoot,
  div.front main section.confirm table tfoot,
  div.front main section.complete table tfoot,
  div.form main section.reserve table tfoot,
  div.form main section.confirm table tfoot,
  div.form main section.complete table tfoot, table.tb_block tr, div.front main section.reserve table tr,
  div.front main section.confirm table tr,
  div.front main section.complete table tr,
  div.form main section.reserve table tr,
  div.form main section.confirm table tr,
  div.form main section.complete table tr {
    display: block;
    width: 100%;
  }
  table.tb_block tr th, div.front main section.reserve table tr th,
  div.front main section.confirm table tr th,
  div.front main section.complete table tr th,
  div.form main section.reserve table tr th,
  div.form main section.confirm table tr th,
  div.form main section.complete table tr th, table.tb_block tr td, div.front main section.reserve table tr td,
  div.front main section.confirm table tr td,
  div.front main section.complete table tr td,
  div.form main section.reserve table tr td,
  div.form main section.confirm table tr td,
  div.form main section.complete table tr td {
    display: block;
    width: 100%;
  }
}
@media screen and (max-width: 568px) {
  table.sp_block, table.sp_block thead, table.sp_block tbody, table.sp_block tfoot, table.sp_block tr {
    display: block;
    width: 100%;
  }
  table.sp_block tr th, table.sp_block tr td {
    display: block;
    width: 100%;
  }
}

picture {
  display: block;
}

br {
  line-height: inherit;
}

hr {
  height: 1px;
  clear: both;
  border: none;
  border-top: #CCCCCC 1px solid;
  color: #FFF;
}

img {
  width: 100%;
  height: auto;
}

.wrapper, header div.inner, .sec article, div.column_2, div.pan div.in, div.front p.head,
div.form p.head, div.front p.closing,
div.form p.closing, div.front div.comp_box,
div.form div.comp_box, div.front div.flow_nav,
div.form div.flow_nav, div.err_area .list_box, div.error_area, div.error_area .error_access, div.error_area .text_box, div.error_area .list_box, nav > ul {
  zoom: 1;
}
.wrapper:after, header div.inner:after, .sec article:after, div.column_2:after, div.pan div.in:after, div.front p.head:after,
div.form p.head:after, div.front p.closing:after,
div.form p.closing:after, div.front div.comp_box:after,
div.form div.comp_box:after, div.front div.flow_nav:after,
div.form div.flow_nav:after, div.err_area .list_box:after, div.error_area:after, div.error_area .error_access:after, div.error_area .text_box:after, div.error_area .list_box:after, nav > ul:after {
  display: block;
  content: "";
  clear: both;
}

.wrapper, header div.inner, .sec article, div.column_2, div.pan div.in, div.front p.head,
div.form p.head, div.front p.closing,
div.form p.closing, div.front div.comp_box,
div.form div.comp_box, div.front div.flow_nav,
div.form div.flow_nav, div.err_area .list_box, div.error_area, div.error_area .error_access, div.error_area .text_box, div.error_area .list_box {
  width: 62.3%;
  max-width: 1200px;
  margin: auto;
  position: relative;
}
@media screen and (max-width: 768px) {
  .wrapper, header div.inner, .sec article, div.column_2, div.pan div.in, div.front p.head,
  div.form p.head, div.front p.closing,
  div.form p.closing, div.front div.comp_box,
  div.form div.comp_box, div.front div.flow_nav,
  div.form div.flow_nav, div.err_area .list_box, div.error_area, div.error_area .error_access, div.error_area .text_box, div.error_area .list_box {
    width: 84%;
    min-width: inherit;
  }
}

.transitions {
  transition: all 0.4s ease;
  -webkit-transition: all 0.4s ease;
  -moz-transition: all 0.4s ease;
  -o-transition: all 0.4s ease;
}
@media screen and (max-width: 768px) {
  .transitions {
    transition: all 0s ease;
    -webkit-transition: all 0s ease;
    -moz-transition: all 0s ease;
    -o-transition: all 0s ease;
  }
}

.all_transitions {
  transition: all 0.4s ease;
  -webkit-transition: all 0.4s ease;
  -moz-transition: all 0.4s ease;
  -o-transition: all 0.4s ease;
}

.vertical, header h1,
header div.header_logo, header ul.cv li a p, nav {
  position: absolute;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
}

.obj_image {
  object-fit: cover;
  font-family: "object-fit: cover;";
}

h2.ttl, .ttl_form {
  margin: 0 auto 27px auto;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.24em;
}

h2.ttl {
  background-size: auto 21px;
  background-position: center;
  padding-top: 60px;
}

.ttl_sub {
  font-weight: 600;
  padding-left: 18px;
  position: relative;
  margin-bottom: 11px;
}
.ttl_sub:before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 2px;
  background-color: #363636;
  position: absolute;
  left: 0;
  top: 50%;
}

div#pageup {
  width: 70px;
  height: 70px;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 100;
}
@media screen and (max-width: 768px) {
  div#pageup {
    width: 50px;
    height: 50px;
  }
}
@media screen and (max-width: 568px) {
  div#pageup {
    width: 40px;
    height: 40px;
  }
}
div#pageup a img.img_pageup {
  width: 100%;
  height: 100%;
}

.btn a, .btn_return a {
  display: inline-block;
  min-width: 300px;
  text-align: center;
  padding: 20px 20px;
  font-weight: bold;
  background-color: #363636;
  color: #FFF;
  text-decoration: none;
}
.btn a:hover, .btn_return a:hover {
  color: #FFF;
  text-decoration: underline;
}
.btn a:visited, .btn_return a:visited {
  color: #FFF;
}
.btn a:hover, .btn_return a:hover {
  color: #363636;
  background-color: #CCCCCC;
  text-decoration: none;
}
@media screen and (max-width: 568px) {
  .btn a, .btn_return a {
    min-width: 0;
    display: block;
  }
}

.btn_return a, .btn_return span {
  background-color: #CCCCCC;
  color: #363636;
  text-decoration: none;
}
.btn_return a:hover, .btn_return span:hover {
  color: #363636;
  text-decoration: underline;
}
.btn_return a:visited, .btn_return span:visited {
  color: #363636;
}
.btn_return a:hover, .btn_return span:hover {
  background-color: #363636;
  color: #fff;
  text-decoration: none;
}

span.essential {
  white-space: nowrap;
  padding: 3px 10px;
  font-size: 80%;
  color: #FFF;
  background-color: #363636;
  font-weight: 500;
  margin: 0 5px;
  border-radius: 3px;
}

header {
  width: 100%;
  position: fixed;
  background-color: #363636;
  top: 0;
  top: 0;
  left: 0;
  right: 0;
}
header div.inner {
  min-width: 1000px;
  height: 103px;
  width: 100%;
  max-width: inherit;
}
@media screen and (max-width: 768px) {
  header div.inner {
    min-width: inherit;
    height: 62px;
  }
}
header h1,
header div.header_logo {
  padding-left: 32px;
}
header h1 a,
header div.header_logo a {
  display: block;
}
header h1 a img,
header div.header_logo a img {
  width: 230px;
  height: auto;
}
@media screen and (max-width: 1280px) {
  header h1 a img,
  header div.header_logo a img {
    width: 180px;
  }
}
@media screen and (max-width: 768px) {
  header h1 a img,
  header div.header_logo a img {
    width: 160px;
  }
}
@media screen and (max-width: 1280px) {
  header h1,
  header div.header_logo {
    padding-left: 15px;
  }
}
@media screen and (max-width: 768px) {
  header h1,
  header div.header_logo {
    padding-left: 10px;
  }
}
header ul.cv {
  height: 100%;
  position: absolute;
  right: 0;
  display: flex;
}
@media screen and (max-width: 768px) {
  header ul.cv {
    display: none;
  }
}
header ul.cv li {
  position: relative;
  text-align: center;
}
header ul.cv li a {
  width: 100%;
  height: 100%;
  display: block;
}
header ul.cv li a p {
  left: 0;
  right: 0;
}
header ul.cv li a:hover {
  opacity: 0.8;
}
header ul.cv li.cv_tel {
  color: #fff;
  width: 225px;
}
header ul.cv li.cv_tel a {
  color: #fff;
}
header ul.cv li.cv_tel span {
  font-size: 23px;
  line-height: 1;
  display: inline-block;
  vertical-align: middle;
}
@media screen and (max-width: 1280px) {
  header ul.cv li.cv_tel span {
    font-size: 22px;
  }
}
header ul.cv li.cv_tel span.tel_number {
  background-image: url(../img/common/icon_tell_w.svg);
  background-size: 21px 21px;
  background-position: left center;
  padding-left: 30px;
}
@media screen and (max-width: 1280px) {
  header ul.cv li.cv_tel span.tel_number {
    padding-left: 22px;
  }
}
header ul.cv li.cv_tel span.time {
  font-size: 10px;
  display: block;
  text-align: left;
}
header ul.cv li.cv_tel:before {
  content: "";
  display: block;
  width: 1px;
  height: 37px;
  background-color: #fff;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
}
@media screen and (max-width: 1280px) {
  header ul.cv li.cv_tel {
    width: 195px;
  }
}
header ul.cv li.cv_reserve {
  background-color: #000000;
  width: 173px;
}
header ul.cv li.cv_reserve a {
  color: #fff;
}
header ul.cv li.cv_reserve a span {
  background-image: url(../img/common/icon_mail_w.svg);
  background-size: 21px 21px;
  background-position: left center;
  padding-left: 30px;
}
@media screen and (max-width: 1280px) {
  header ul.cv li.cv_reserve {
    width: 150px;
  }
}
@media screen and (max-width: 768px) {
  header li.cv_tel {
    color: #fff;
    width: 100% !important;
  }
  header li.cv_tel a {
    color: #fff;
  }
  header li.cv_tel span {
    font-size: 23px;
    line-height: 1;
    display: inline-block;
    vertical-align: middle;
  }
}
@media screen and (max-width: 768px) and (max-width: 1280px) {
  header li.cv_tel span {
    font-size: 22px;
  }
}
@media screen and (max-width: 768px) {
  header li.cv_tel span.tel_number {
    background-image: url(../img/common/icon_tell_w.svg);
    background-size: 21px 21px;
    background-position: left center;
    padding-left: 33px;
  }
}
@media screen and (max-width: 768px) and (max-width: 1280px) {
  header li.cv_tel span.tel_number {
    padding-left: 22px;
  }
}
@media screen and (max-width: 768px) {
  header li.cv_tel span.time {
    font-size: 10px;
    display: block;
    text-align: left;
  }
  header li.cv_tel:before {
    content: none;
  }
}

header.fixed {
  box-shadow: 0px 10px 10px rgba(0, 0, 0, 0.1);
  z-index: 1000;
}

nav {
  margin: auto;
  position: absolute;
  right: 400px;
  background-color: #363636;
  z-index: 1;
  font-weight: 500;
}
@media screen and (max-width: 1280px) {
  nav {
    right: 340px;
  }
}
@media screen and (max-width: 768px) {
  nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 70%;
    overflow: auto;
    background-color: #363636;
    z-index: 9999;
    -webkit-transform: none;
    transform: none;
  }
}
nav > ul {
  padding: 0 10px;
}
@media screen and (max-width: 768px) {
  nav > ul {
    width: 100%;
    padding: 20px 0;
  }
}
nav > ul > li {
  float: left;
}
@media screen and (max-width: 768px) {
  nav > ul > li {
    width: 100%;
    float: none;
    border-bottom: #ececec 1px solid;
  }
}
nav > ul > li a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 26px 15px;
  font-weight: 500;
  font-size: 15px;
  color: #fff;
  text-decoration: none;
}
nav > ul > li a:hover {
  color: #fff;
  text-decoration: underline;
}
nav > ul > li a:visited {
  color: #fff;
}
@media screen and (max-width: 1130px) {
  nav > ul > li a {
    font-size: 13px;
    padding: 26px 9px;
  }
}
@media screen and (max-width: 768px) {
  nav > ul > li a {
    padding: 15px;
  }
}
nav > ul > li a.active {
  color: #fff;
}
nav > ul > li a:hover {
  opacity: 0.8;
  text-decoration: none;
}
nav > ul > li.switching {
  display: none;
}
@media screen and (max-width: 768px) {
  nav > ul > li.switching {
    display: inherit;
  }
}
nav > ul > li.switching img {
  width: 80%;
  height: auto;
}
@media screen and (max-width: 768px) {
  nav > ul > li.switching img {
    width: 50%;
  }
}
@media screen and (max-width: 568px) {
  nav > ul > li.switching img {
    width: 80%;
  }
}
nav > ul > li.switching ul {
  padding: 15px 0;
}
nav > ul > li.switching ul li a {
  padding: 3px 15px;
  font-weight: normal;
  border-bottom: none;
}

body.drawer_open {
  width: 100%;
  height: 100%;
  z-index: 999;
}

.toggle_button {
  display: none;
}
@media screen and (max-width: 768px) {
  .toggle_button {
    position: absolute;
    z-index: 10000;
    top: 0;
    right: 0;
    display: block;
    box-sizing: content-box;
    width: 1.8rem;
    padding: 19px 0.8rem 19px;
    -webkit-transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
    transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    border: 0;
    outline: 0;
    background-color: transparent;
  }
}
.toggle_button .bar {
  background-color: #fff;
  display: block;
  width: 100%;
  height: 2px;
  border: 0;
  -webkit-transition: all .35s ease;
  transition: all .35s ease;
}
.toggle_button .bar + .bar {
  margin-top: 9px;
}
.toggle_button .middle {
  top: 14px;
}
.toggle_button .bottom {
  top: 25px;
}
.toggle_button.toggle_active .bar {
  background-color: #fff;
}
.toggle_button.toggle_active .top {
  -webkit-transform: translateY(15px) translateX(0) rotate(45deg);
  transform: translateY(15px) translateX(0) rotate(45deg);
  width: 30px;
}
.toggle_button.toggle_active .middle {
  opacity: 0;
}
.toggle_button.toggle_active .bottom {
  -webkit-transform: translateY(-7px) translateX(0) rotate(-45deg);
  transform: translateY(-7px) translateX(0) rotate(-45deg);
  width: 30px;
  margin-left: 0;
}

.drawer_bg {
  display: none;
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  background-color: rgba(51, 51, 51, 0.5);
}

@media screen and (max-width: 768px) {
  nav {
    display: none;
    opacity: 0;
  }
  nav.is_open {
    display: block;
    opacity: 1;
    animation-duration: 0.4s;
    position: fixed;
    animation-name: fadeInRight;
  }
}

/**
 * drawer animation
 */
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeOutRight {
  from {
    opacity: 0;
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(100%, 0, 0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeOutLeft {
  from {
    opacity: 0;
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(-100%, 0, 0);
  }
}
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeOutDown {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeOutUp {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
}
@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes fadeOutScale {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0.9);
  }
}
footer {
  width: 100%;
  padding: 63px 0 96px;
  margin: auto;
  background-color: #363636;
  text-align: center;
  color: #fff;
}
footer div.logo {
  padding: 0;
}
footer div.logo img {
  width: 80%;
  max-width: 130px;
  height: auto;
  margin: auto;
}
@media screen and (max-width: 768px) {
  footer div.logo img {
    width: 35%;
    max-width: 100px;
  }
}
footer .bnr_area {
  display: flex;
  justify-content: space-between;
  max-width: 612px;
  margin: 27px auto 33px;
}
footer .bnr_area li {
  width: 49%;
}
footer .bnr_area li a {
  display: block;
}
footer .bnr_area li a:hover {
  opacity: 0.6;
  text-decoration: none;
}
footer .bnr_area li.bnr_tel a {
  padding: 15px;
  border: 1px solid #fff;
}
footer .bnr_area li.bnr_tel a span {
  font-size: 23px;
  line-height: 1;
  display: inline-block;
  vertical-align: middle;
}
footer .bnr_area li.bnr_tel a span.tel_number {
  background-image: url(../img/common/icon_tell_w.svg);
  background-size: 21px 21px;
  background-position: left center;
  padding-left: 30px;
}
footer .bnr_area li.bnr_tel a span.time {
  font-size: 10px;
  display: block;
  text-align: left;
}
footer .bnr_area li.bnr_reserve a {
  background-color: #fff;
  color: #363636;
  height: 100%;
  display: flex;
  align-items: center;
}
footer .bnr_area li.bnr_reserve a span {
  background-image: url(../img/common/icon_mail_b.svg);
  background-size: 21px 21px;
  background-position: left center;
  padding-left: 30px;
  display: block;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  footer .bnr_area li.bnr_reserve a {
    padding: 18px 15px;
  }
}
@media screen and (max-width: 768px) {
  footer .bnr_area {
    display: block;
  }
  footer .bnr_area li {
    width: 80%;
    margin: 0 auto;
    margin-bottom: 10px;
  }
}
footer a {
  color: #fff;
  text-decoration: none;
}
footer a:hover {
  color: #fff;
  text-decoration: underline;
}
footer a:visited {
  color: #fff;
}
footer a:hover {
  text-decoration: underline;
}
footer section.copyright {
  padding: 0;
}

.sec {
  padding-top: 40px;
  padding-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .sec {
    padding-top: 20px;
    padding-bottom: 50px;
  }
}
.sec:first-child {
  padding-top: 80px;
}
@media screen and (max-width: 768px) {
  .sec:first-child {
    padding-top: 30px;
  }
}

div.column_2 {
  padding-top: 50px;
}
@media screen and (max-width: 768px) {
  div.column_2 {
    padding-top: 20px;
  }
}
div.column_2 main {
  width: 70%;
  float: left;
}
@media screen and (max-width: 768px) {
  div.column_2 main {
    width: 100%;
    float: none;
  }
}
div.column_2 .sec {
  padding: 0;
}
div.column_2 aside {
  width: 25%;
  float: right;
}
@media screen and (max-width: 768px) {
  div.column_2 aside {
    width: 100%;
    float: none;
  }
}

div.ttl {
  width: 100%;
  background-color: #363636;
  background-position: center center;
  background-size: cover;
  padding: 30px 0;
  margin-top: 102px;
}
@media screen and (max-width: 768px) {
  div.ttl {
    padding: 40px 0;
    margin-top: 61px;
  }
}
@media screen and (max-width: 568px) {
  div.ttl {
    padding: 30px 0;
  }
}
div.ttl + div.pan {
  border-top: none;
  margin-bottom: 10px;
}

.ttl_form {
  background-size: auto 21px;
  background-position: center;
  padding-top: 60px;
  color: #fff;
  background-image: url(../img/common/ttl_reserve_form@2x.png);
}

div.pan {
  width: 100%;
  height: 3.7em;
  margin: 0;
  padding: 1em 0;
  background-color: #fafafa;
  border-top: #CCCCCC 1px solid;
  z-index: -1;
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
}
div.pan #breadcrumbs {
  margin: auto;
  white-space: nowrap;
}
div.pan #breadcrumbs a {
  color: #363636;
  background-image: url(../img/arrow/arrow_right_c.svg);
  background-position: center right 5px;
  background-size: 13px 13px;
  padding: 0 22px 0 0;
}
div.pan #breadcrumbs img {
  margin: 1px 5px;
  vertical-align: text-bottom;
  width: 14px;
  height: 13px;
}

dl.faq {
  text-align: left;
}
dl.faq p {
  display: inline;
}
@media screen and (max-width: 768px) {
  dl.faq p {
    display: block;
  }
}
dl.faq span {
  display: inline-block;
  text-align: center;
  background-color: #363636;
  color: #FFF;
  padding: 2px 15px;
  margin: 0 10px 0 0;
  font-weight: bold;
  border-radius: 100px;
}
@media screen and (max-width: 768px) {
  dl.faq span {
    margin: 0 0 5px 0;
  }
}
dl.faq dt {
  cursor: pointer;
  font-weight: bold;
  padding: 20px 0;
  border-bottom: #CCCCCC 1px solid;
}
dl.faq dt p {
  padding: 0 35px 0 0;
  background-image: url(../img/arrow/arrow_open.svg);
  background-position: right center;
  background-size: 20px 20px;
}
dl.faq dt:hover p {
  text-decoration: underline;
}
dl.faq dt.open p {
  background-image: url(../img/arrow/arrow_close.svg);
  background-position: right center;
  background-size: 20px 20px;
}
dl.faq dd {
  display: none;
  line-height: 1.5em;
}
dl.faq dd div.detail {
  padding: 30px 0 30px 60px;
}
@media screen and (max-width: 568px) {
  dl.faq dd div.detail {
    padding: 10px 0 20px 10px;
  }
}
dl.faq dd div.detail img {
  width: 90%;
  max-width: 650px;
  margin: 20px auto 15px auto;
}
dl.faq dd div.detail p span {
  color: #CCCCCC;
}

div.basket_box {
  max-width: 700px;
  height: auto;
  margin: auto;
  text-align: center;
  padding: 100px 0;
}
@media screen and (max-width: 568px) {
  div.basket_box {
    padding: 50px 0;
  }
}
div.basket_box h1, div.basket_box h2 {
  padding: 0 0 20px;
  margin: 0 0 20px 0;
  text-align: center;
  font-weight: bold;
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100px 100px;
  border-bottom: #DADADA 1px solid;
}
div.basket_box p {
  padding: 0 0 30px 0;
  font-weight: 600;
}

div.n_found h1, div.n_found h2 {
  color: #363636;
}

div.front main section.reserve table table,
div.front main section.confirm table table,
div.front main section.complete table table,
div.form main section.reserve table table,
div.form main section.confirm table table,
div.form main section.complete table table {
  width: 100%;
}
div.front main section.reserve table th,
div.front main section.reserve table td,
div.front main section.confirm table th,
div.front main section.confirm table td,
div.front main section.complete table th,
div.front main section.complete table td,
div.form main section.reserve table th,
div.form main section.reserve table td,
div.form main section.confirm table th,
div.form main section.confirm table td,
div.form main section.complete table th,
div.form main section.complete table td {
  text-align: left;
  vertical-align: top;
  border-bottom: #CBCFD7 1px solid;
}
div.front main section.reserve table th,
div.front main section.confirm table th,
div.front main section.complete table th,
div.form main section.reserve table th,
div.form main section.confirm table th,
div.form main section.complete table th {
  width: 34%;
  background-color: #FAFAFA;
  font-weight: 600;
  position: relative;
}
@media screen and (min-width: 769px) {
  div.front main section.reserve table th,
  div.front main section.confirm table th,
  div.front main section.complete table th,
  div.form main section.reserve table th,
  div.form main section.confirm table th,
  div.form main section.complete table th {
    padding: 30px 20px;
  }
}
@media screen and (max-width: 768px) {
  div.front main section.reserve table th,
  div.front main section.confirm table th,
  div.front main section.complete table th,
  div.form main section.reserve table th,
  div.form main section.confirm table th,
  div.form main section.complete table th {
    width: 100%;
    padding: 10px;
    border: none;
  }
}
@media all and (-ms-high-contrast: none) {
  div.front main section.reserve table th,
  div.front main section.confirm table th,
  div.front main section.complete table th,
  div.form main section.reserve table th,
  div.form main section.confirm table th,
  div.form main section.complete table th {
    width: 330px;
  }
}
div.front main section.reserve table th p,
div.front main section.confirm table th p,
div.front main section.complete table th p,
div.form main section.reserve table th p,
div.form main section.confirm table th p,
div.form main section.complete table th p {
  display: inline-block;
  vertical-align: middle;
  word-break: break-all;
  line-height: 1.0;
}
div.front main section.reserve table th p span,
div.front main section.confirm table th p span,
div.front main section.complete table th p span,
div.form main section.reserve table th p span,
div.form main section.confirm table th p span,
div.form main section.complete table th p span {
  display: block;
  font-size: 12px;
}
div.front main section.reserve table th span.essential,
div.front main section.confirm table th span.essential,
div.front main section.complete table th span.essential,
div.form main section.reserve table th span.essential,
div.form main section.confirm table th span.essential,
div.form main section.complete table th span.essential {
  position: absolute;
  right: 10px;
}
div.front main section.reserve table td,
div.front main section.confirm table td,
div.front main section.complete table td,
div.form main section.reserve table td,
div.form main section.confirm table td,
div.form main section.complete table td {
  padding: 15px 20px;
}
@media screen and (max-width: 768px) {
  div.front main section.reserve table td,
  div.front main section.confirm table td,
  div.front main section.complete table td,
  div.form main section.reserve table td,
  div.form main section.confirm table td,
  div.form main section.complete table td {
    padding: 10px 10px 20px 10px;
  }
}
div.front main section.reserve table tr:first-child th, div.front main section.reserve table tr:first-child td,
div.front main section.confirm table tr:first-child th,
div.front main section.confirm table tr:first-child td,
div.front main section.complete table tr:first-child th,
div.front main section.complete table tr:first-child td,
div.form main section.reserve table tr:first-child th,
div.form main section.reserve table tr:first-child td,
div.form main section.confirm table tr:first-child th,
div.form main section.confirm table tr:first-child td,
div.form main section.complete table tr:first-child th,
div.form main section.complete table tr:first-child td {
  border-top: 1px solid #363636;
}
div.front main section.reserve table tr:last-child th, div.front main section.reserve table tr:last-child td,
div.front main section.confirm table tr:last-child th,
div.front main section.confirm table tr:last-child td,
div.front main section.complete table tr:last-child th,
div.front main section.complete table tr:last-child td,
div.form main section.reserve table tr:last-child th,
div.form main section.reserve table tr:last-child td,
div.form main section.confirm table tr:last-child th,
div.form main section.confirm table tr:last-child td,
div.form main section.complete table tr:last-child th,
div.form main section.complete table tr:last-child td {
  border-bottom: 1px solid #363636;
}
@media screen and (max-width: 768px) {
  div.front main section.reserve table tr:first-child td, div.front main section.reserve table tr:last-child th,
  div.front main section.confirm table tr:first-child td,
  div.front main section.confirm table tr:last-child th,
  div.front main section.complete table tr:first-child td,
  div.front main section.complete table tr:last-child th,
  div.form main section.reserve table tr:first-child td,
  div.form main section.reserve table tr:last-child th,
  div.form main section.confirm table tr:first-child td,
  div.form main section.confirm table tr:last-child th,
  div.form main section.complete table tr:first-child td,
  div.form main section.complete table tr:last-child th {
    border: none;
  }
}
@media screen and (min-width: 769px) {
  div.front main section.reserve table.table_confirm th,
  div.front main section.confirm table.table_confirm th,
  div.front main section.complete table.table_confirm th,
  div.form main section.reserve table.table_confirm th,
  div.form main section.confirm table.table_confirm th,
  div.form main section.complete table.table_confirm th {
    padding: 15px 20px;
  }
}
div.front p.head,
div.form p.head {
  padding: 20px 0;
  font-weight: bold;
}
div.front p.closing,
div.form p.closing {
  padding: 20px 0 10px 0;
  font-weight: bold;
  text-align: center;
}
div.front span.arrow,
div.form span.arrow {
  font-size: 90%;
  margin: 5px 0;
  font-weight: 600;
  display: inline-block;
  color: #373431;
}
div.front ul.transmission,
div.form ul.transmission {
  width: auto;
  text-align: center;
  margin: 20px auto 50px auto;
  display: table;
}
@media screen and (max-width: 768px) {
  div.front ul.transmission,
  div.form ul.transmission {
    margin-bottom: 30px;
  }
}
@media screen and (max-width: 568px) {
  div.front ul.transmission,
  div.form ul.transmission {
    width: 95%;
    display: inherit;
  }
}
div.front ul.transmission li,
div.form ul.transmission li {
  display: table-cell;
  padding: 2px 5px;
}
@media screen and (max-width: 568px) {
  div.front ul.transmission li,
  div.form ul.transmission li {
    display: block;
  }
}
div.front ul.transmission li a,
div.form ul.transmission li a {
  cursor: pointer;
}
div.front ul.transmission_confirm,
div.form ul.transmission_confirm {
  margin: 60px 0 50px;
}
@media screen and (max-width: 768px) {
  div.front ul.transmission_confirm,
  div.form ul.transmission_confirm {
    margin: 40px 0 30px;
  }
}
div.front ul.transmission_confirm li,
div.form ul.transmission_confirm li {
  text-align: center;
}
div.front ul.transmission_confirm li + li,
div.form ul.transmission_confirm li + li {
  margin-top: 25px;
}
@media screen and (max-width: 768px) {
  div.front ul.transmission_confirm li + li,
  div.form ul.transmission_confirm li + li {
    margin-top: 15px;
  }
}
div.front ul.transmission_confirm form,
div.form ul.transmission_confirm form {
  text-align: center;
}
div.front ul.break,
div.form ul.break {
  width: 100%;
  display: table;
}
@media screen and (max-width: 568px) {
  div.front ul.break,
  div.form ul.break {
    display: inherit;
  }
}
div.front ul.break li,
div.form ul.break li {
  display: table-cell;
  padding: 0 5px;
}
div.front ul.break li:nth-child(1),
div.form ul.break li:nth-child(1) {
  padding: 0 5px 0 0;
}
@media screen and (max-width: 568px) {
  div.front ul.break li:nth-child(1),
  div.form ul.break li:nth-child(1) {
    padding: 0;
  }
}
div.front ul.break li:last-child,
div.form ul.break li:last-child {
  padding: 0 0 0 5px;
}
@media screen and (max-width: 568px) {
  div.front ul.break li:last-child,
  div.form ul.break li:last-child {
    padding: 0;
  }
}
@media screen and (max-width: 568px) {
  div.front ul.break li,
  div.form ul.break li {
    display: inherit;
    padding: 0;
  }
}
div.front ul.variable,
div.form ul.variable {
  width: 100%;
}
div.front ul.variable li,
div.form ul.variable li {
  display: inline-block;
  padding: 0 5px;
}
div.front ul.variable li:last-child,
div.form ul.variable li:last-child {
  padding: 0 0 0 5px;
}
@media screen and (max-width: 568px) {
  div.front ul.variable li:last-child,
  div.form ul.variable li:last-child {
    padding: 0;
  }
}
div.front ul.variable li:nth-child(1),
div.form ul.variable li:nth-child(1) {
  padding: 0 5px 0 0;
}
@media screen and (max-width: 568px) {
  div.front ul.variable li:nth-child(1),
  div.form ul.variable li:nth-child(1) {
    padding: 0;
  }
}
@media screen and (max-width: 568px) {
  div.front ul.variable li,
  div.form ul.variable li {
    display: inherit;
    padding: 0;
  }
}
div.front ul.variable li input,
div.form ul.variable li input {
  width: auto;
  margin: 5px 10px 5px 0;
}
div.front ul.check_list,
div.form ul.check_list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}
div.front ul.check_list li,
div.form ul.check_list li {
  width: 33.3%;
  padding: 5px 0;
  color: #000;
  font-weight: 600;
  font-size: 14px;
}
@media only screen and (max-width: 1180px) {
  div.front ul.check_list li,
  div.form ul.check_list li {
    width: 50%;
  }
}
@media only screen and (max-width: 1000px) {
  div.front ul.check_list li,
  div.form ul.check_list li {
    width: 100%;
    float: none;
    border-bottom: #CCCCCC 1px solid;
  }
}
div.front ul.number,
div.form ul.number {
  display: table;
}
div.front ul.number li,
div.form ul.number li {
  display: table-cell;
}
div.front ul.number li:nth-child(1) input,
div.form ul.number li:nth-child(1) input {
  width: 5em;
}
div.front ul.number li:nth-child(2) input,
div.form ul.number li:nth-child(2) input {
  width: 7em;
}
div.front ul.number li p,
div.form ul.number li p {
  display: inline-block;
}
div.front ul.number li span,
div.form ul.number li span {
  padding: 0 10px;
}
div.front ul.phone,
div.form ul.phone {
  display: table;
  table-layout: auto;
}
div.front ul.phone li,
div.form ul.phone li {
  display: table-cell;
}
div.front ul.phone li:nth-child(1) input,
div.form ul.phone li:nth-child(1) input {
  width: 5em;
}
div.front ul.phone li:nth-child(2) input,
div.form ul.phone li:nth-child(2) input {
  width: 6em;
}
div.front ul.phone li:nth-child(3) input,
div.form ul.phone li:nth-child(3) input {
  width: 6em;
}
div.front ul.phone li p,
div.form ul.phone li p {
  display: inline-block;
}
div.front ul.phone li span,
div.form ul.phone li span {
  padding: 0 10px;
}
div.front div.comp_box,
div.form div.comp_box {
  padding: 50px 0;
}
@media screen and (max-width: 568px) {
  div.front div.comp_box,
  div.form div.comp_box {
    padding: 30px 0;
  }
}
div.front div.comp_box h2,
div.form div.comp_box h2 {
  font-weight: 600;
  padding: 30px 0;
  text-align: center;
}
@media screen and (max-width: 568px) {
  div.front div.comp_box h2,
  div.form div.comp_box h2 {
    font-size: 21px;
  }
}
div.front div.comp_box p,
div.form div.comp_box p {
  margin-bottom: 10px;
}
div.front div.flow_nav,
div.form div.flow_nav {
  max-width: 1000px;
  margin: 50px auto 30px;
  background-color: #e1e1e1;
}
@media screen and (max-width: 768px) {
  div.front div.flow_nav,
  div.form div.flow_nav {
    margin-top: 20px;
    margin-bottom: 10px;
  }
}
div.front div.flow_nav ul,
div.form div.flow_nav ul {
  overflow: hidden;
}
div.front div.flow_nav ul li,
div.form div.flow_nav ul li {
  float: left;
  position: relative;
  width: 35%;
  padding: 17px 0 17px 50px;
  text-align: left;
  background-color: #e1e1e1;
}
@media screen and (max-width: 768px) {
  div.front div.flow_nav ul li,
  div.form div.flow_nav ul li {
    padding: 10px 0 10px 40px;
  }
}
@media screen and (max-width: 568px) {
  div.front div.flow_nav ul li,
  div.form div.flow_nav ul li {
    padding-left: 25px;
  }
}
div.front div.flow_nav ul li:before,
div.form div.flow_nav ul li:before {
  bottom: 0;
  content: "";
  width: 45px;
  height: 45px;
  margin: auto;
  position: absolute;
  right: -20px;
  top: 0;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  background-color: #e1e1e1;
  z-index: 1;
}
div.front div.flow_nav ul li:first-child,
div.form div.flow_nav ul li:first-child {
  padding-left: 25px;
  width: 30%;
}
@media screen and (max-width: 768px) {
  div.front div.flow_nav ul li:first-child,
  div.form div.flow_nav ul li:first-child {
    padding-left: 15px;
  }
}
@media screen and (max-width: 568px) {
  div.front div.flow_nav ul li:first-child,
  div.form div.flow_nav ul li:first-child {
    padding-left: 0;
  }
}
div.front div.flow_nav ul li:last-child:before,
div.form div.flow_nav ul li:last-child:before {
  content: none;
}
div.front div.flow_nav ul li span,
div.form div.flow_nav ul li span {
  position: relative;
  z-index: 100;
  padding: 0 0 0 15px;
  font-size: 17px;
  font-weight: bold;
}
@media screen and (max-width: 414px) {
  div.front div.flow_nav ul li span,
  div.form div.flow_nav ul li span {
    font-size: 14px;
  }
}
div.front div.flow_nav ul.front li:nth-child(1),
div.form div.flow_nav ul.front li:nth-child(1) {
  background-color: #363636;
  color: #fff;
  font-weight: bold;
}
div.front div.flow_nav ul.front li:nth-child(1):before,
div.form div.flow_nav ul.front li:nth-child(1):before {
  content: "";
  margin: auto;
  position: absolute;
  right: -22px;
  background-color: #363636;
  border-bottom: none;
  border-right: none;
}
div.front div.flow_nav ul.front li:nth-child(2):before,
div.form div.flow_nav ul.front li:nth-child(2):before {
  border-bottom: #CCCCCC 1px solid;
  border-right: #CCCCCC 1px solid;
}
div.front div.flow_nav ul.confirm li:nth-child(2),
div.form div.flow_nav ul.confirm li:nth-child(2) {
  background-color: #363636;
  color: #fff;
  font-weight: bold;
}
div.front div.flow_nav ul.confirm li:nth-child(2):before,
div.form div.flow_nav ul.confirm li:nth-child(2):before {
  content: "";
  margin: auto;
  position: absolute;
  right: -22px;
  background-color: #363636;
  border-bottom: none;
  border-right: none;
}
div.front div.flow_nav ul.complete li:nth-child(3),
div.form div.flow_nav ul.complete li:nth-child(3) {
  background-color: #363636;
  color: #fff;
  font-weight: bold;
}
div.front div.flow_nav ul.complete li:nth-child(3):before,
div.form div.flow_nav ul.complete li:nth-child(3):before {
  content: "";
  margin: auto;
  position: absolute;
  right: -22px;
  background-color: #363636;
  border-bottom: none;
  border-right: none;
}
div.front div.flow_nav ul.complete li:nth-child(1):before,
div.form div.flow_nav ul.complete li:nth-child(1):before {
  border-bottom: #CCCCCC 1px solid;
  border-right: #CCCCCC 1px solid;
}
div.front div.agree_box,
div.form div.agree_box {
  margin: 0 auto;
  text-align: center;
}
@media screen and (min-width: 769px) {
  div.front div.agree_box,
  div.form div.agree_box {
    margin: 40px auto 0;
    max-width: 900px;
    width: 90%;
  }
}
div.front div.agree_box,
div.front div.agree_box p,
div.front div.agree_box span,
div.front div.agree_box li,
div.front div.agree_box ul,
div.form div.agree_box,
div.form div.agree_box p,
div.form div.agree_box span,
div.form div.agree_box li,
div.form div.agree_box ul {
  line-height: 1.5;
}
@media screen and (max-width: 568px) {
  div.front div.agree_box,
  div.form div.agree_box {
    padding: 15px 0 5px 0;
    margin-top: 0;
  }
}
div.front div.agree_box p.strong_text,
div.form div.agree_box p.strong_text {
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 414px) {
  div.front div.agree_box p.strong_text,
  div.form div.agree_box p.strong_text {
    font-size: 14px;
  }
}
@media screen and (max-width: 374px) {
  div.front div.agree_box p.strong_text,
  div.form div.agree_box p.strong_text {
    font-size: 13px;
  }
}
div.front div.agree_box ul.check_list,
div.form div.agree_box ul.check_list {
  width: 100%;
  max-width: 600px;
  margin: auto;
}
div.front div.agree_box ul.check_list li,
div.form div.agree_box ul.check_list li {
  width: auto;
  float: none;
  display: inline-block;
}
@media only screen and (max-width: 1000px) {
  div.front div.agree_box ul.check_list li,
  div.form div.agree_box ul.check_list li {
    border-bottom: none;
  }
}
div.front div.agree_box div.err_area .text_box,
div.form div.agree_box div.err_area .text_box {
  padding: 0;
  max-width: 600px;
  margin: 5px auto 0 auto;
}
div.front div.agree_box .policy_box,
div.form div.agree_box .policy_box {
  height: 200px;
  width: 100%;
  border: 1px solid #ccc;
  overflow: auto;
  margin: 40px 0;
}
div.front div.agree_box .policy_box .policy_content,
div.form div.agree_box .policy_box .policy_content {
  padding: 20px;
  text-align: left;
}
div.front div.agree_box .policy_box .policy_content h2,
div.form div.agree_box .policy_box .policy_content h2 {
  font-weight: 700;
  margin-bottom: 1em;
}
div.front div.agree_box .policy_box .policy_content h3,
div.form div.agree_box .policy_box .policy_content h3 {
  font-weight: 700;
}
div.front div.agree_box .policy_box .policy_content p,
div.form div.agree_box .policy_box .policy_content p {
  margin-bottom: 1em;
}
div.front div.agree_box .policy_box .policy_content p.mb_0,
div.form div.agree_box .policy_box .policy_content p.mb_0 {
  margin-bottom: 0;
}
div.front div.agree_box .policy_box .policy_content ol,
div.form div.agree_box .policy_box .policy_content ol {
  list-style-type: decimal;
  list-style-position: inside;
  margin-bottom: 1em;
}
div.front div.agree_box .policy_box .policy_content ol li ol,
div.form div.agree_box .policy_box .policy_content ol li ol {
  padding-left: 2em;
  margin-bottom: 0;
}
div.front div.agree_box .policy_box .policy_content ol.pl_25,
div.form div.agree_box .policy_box .policy_content ol.pl_25 {
  padding-left: 2em;
}
@media screen and (max-width: 768px) {
  div.front div.agree_box .policy_box,
  div.form div.agree_box .policy_box {
    width: 100%;
    margin: 20px 0;
  }
  div.front div.agree_box .policy_box .policy_content,
  div.form div.agree_box .policy_box .policy_content {
    padding: 20px;
    font-size: 12px;
  }
}
@media screen and (max-width: 568px) {
  div.front div.agree_box .policy_box,
  div.form div.agree_box .policy_box {
    height: 120px;
    margin: 20px auto;
  }
  div.front div.agree_box .policy_box .policy_content,
  div.form div.agree_box .policy_box .policy_content {
    padding: 10px;
  }
}
div.front div.agree_box p.head_agree,
div.form div.agree_box p.head_agree {
  margin: 40px 0 10px;
}
div.front div.agree_box p.head_agree span.essential,
div.form div.agree_box p.head_agree span.essential {
  margin-right: 15px;
}
@media screen and (max-width: 768px) {
  div.front div.agree_box p.head_agree,
  div.form div.agree_box p.head_agree {
    margin: 20px 0 0;
  }
  div.front div.agree_box p.head_agree span.essential,
  div.form div.agree_box p.head_agree span.essential {
    margin-right: 10px;
  }
}
div.front section.reserve div.wrapper, div.front section.reserve header div.inner, header div.front section.reserve div.inner, div.front section.reserve div.column_2, div.front section.reserve div.pan div.in, div.pan div.front section.reserve div.in, div.front section.reserve div.comp_box, div.front section.reserve div.flow_nav, div.front section.reserve div.err_area div.list_box, div.err_area div.front section.reserve div.list_box, div.front section.reserve div.error_area, div.front section.reserve div.error_area div.error_access, div.error_area div.front section.reserve div.error_access, div.front section.reserve div.error_area div.text_box, div.error_area div.front section.reserve div.text_box, div.front section.reserve div.error_area div.list_box, div.error_area div.front section.reserve div.list_box,
div.form section.reserve div.wrapper,
div.form section.reserve header div.inner,
header div.form section.reserve div.inner,
div.form section.reserve div.column_2,
div.form section.reserve div.pan div.in,
div.pan div.form section.reserve div.in,
div.form section.reserve div.comp_box,
div.form section.reserve div.flow_nav,
div.form section.reserve div.err_area div.list_box,
div.err_area div.form section.reserve div.list_box,
div.form section.reserve div.error_area,
div.form section.reserve div.error_area div.error_access,
div.error_area div.form section.reserve div.error_access,
div.form section.reserve div.error_area div.text_box,
div.error_area div.form section.reserve div.text_box,
div.form section.reserve div.error_area div.list_box,
div.error_area div.form section.reserve div.list_box {
  width: 100%;
}

div.err_area {
  margin: 5px auto;
  padding: 5px 0;
  display: block;
}
div.err_area p {
  display: block;
  padding: 5px 10px;
  font-weight: bold;
  color: #BF292C;
  border: #BF292C 1px solid;
  margin: 5px auto;
  text-align: center !important;
  border-radius: 5px;
}
div.err_area .text_box {
  width: 80%;
  margin: 5px auto;
  padding: 15px 0;
  display: block;
}
div.err_area .text_box li {
  display: block;
  padding: 5px 10px;
  font-weight: bold;
  color: #BF292C;
  border: #BF292C 1px solid;
  margin: 5px auto;
  text-align: center;
  border-radius: 5px;
}
div.err_area .list_box {
  width: 90%;
  margin: 0 auto 10px auto;
  padding: 5px 0;
}
div.err_area .list_box li {
  display: block;
  padding: 5px 10px;
  font-weight: bold;
  color: #BF292C;
  border: #BF292C 2px solid;
  margin: 5px auto;
  text-align: center;
  border-radius: 5px;
}

div.error_area {
  max-width: 800px;
  z-index: -1;
}
div.error_area .error_access, div.error_area .text_box, div.error_area .list_box {
  margin: 0 auto 10px auto;
  padding: 5px 0;
}
div.error_area .error_access li, div.error_area .text_box li, div.error_area .list_box li {
  display: block;
  padding: 5px 10px;
  font-weight: bold;
  color: #BF292C;
  border: #BF292C 2px solid;
  margin: 5px auto;
  text-align: center;
  border-radius: 5px;
}

.btn_add, .btn_remove {
  padding: 5px 20px;
  border-radius: 5px;
  background-color: #363636;
  color: #fff;
  text-decoration: none;
  display: inline-block;
  font-weight: 700;
  border: none;
}
.btn_add:hover, .btn_remove:hover {
  color: #fff;
  text-decoration: underline;
}
.btn_add:visited, .btn_remove:visited {
  color: #fff;
}
.btn_add:hover, .btn_remove:hover {
  text-decoration: none;
  opacity: 0.8;
}
.btn_add span, .btn_remove span {
  padding-left: 12px;
  position: relative;
  display: inline-block;
}
.btn_add span:before, .btn_remove span:before {
  content: "+";
  position: absolute;
  left: 0;
  top: 3px;
  line-height: 1;
}

.btn_remove {
  background-color: #e1e1e1;
  color: #363636;
  text-decoration: none;
}
.btn_remove:hover {
  color: #363636;
  text-decoration: underline;
}
.btn_remove:visited {
  color: #363636;
}
.btn_remove span:before {
  content: "-";
}

p#fm_ajax_message {
  font-weight: 700;
  color: #363636;
  letter-spacing: 1px;
}

input,
select,
textarea,
search {
  font-family: 游明朝, "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "Noto Serif JP", HGS明朝E, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  border: #CCCCCC 1px solid;
  background-color: #FFF;
  -webkit-appearance: none;
  border-radius: 0;
}

button {
  font-family: 游明朝, "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "Noto Serif JP", HGS明朝E, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  background-color: transparent;
  border: none;
}

input:focus,
select:focus,
textarea:focus,
button:focus {
  outline: 0;
  border-color: #363636;
}

:-ms-input-placeholder {
  color: #ddd;
}

::placeholder {
  color: #ddd;
}

::selection {
  color: #fff;
  background: #363636;
}

input::selection,
textarea::selection {
  color: #fff;
  background: #363636;
}

input {
  width: 100%;
  padding: 10px;
  margin: 5px 0;
}

input.wth_80 {
  width: 80%;
}
@media screen and (max-width: 768px) {
  input.wth_80 {
    width: 100%;
  }
}

input.wth_70 {
  width: 70%;
}
@media screen and (max-width: 768px) {
  input.wth_70 {
    width: 100%;
  }
}

input.wth_50 {
  width: 50%;
}
@media screen and (max-width: 768px) {
  input.wth_50 {
    width: 100%;
  }
}

input.wth_30 {
  width: 30%;
}
@media screen and (max-width: 768px) {
  input.wth_30 {
    width: 100%;
  }
}

input.wth_20 {
  width: 20%;
}
@media screen and (max-width: 768px) {
  input.wth_20 {
    width: 50%;
  }
}

textarea {
  width: 100%;
  height: 10em;
  padding: 10px;
  resize: vertical;
}

select {
  width: auto;
  padding: 10px 60px 10px 10px;
  background-image: url(../img/arrow/input_select.svg);
  background-position: right 10px center;
  background-size: 10px 15px;
  vertical-align: middle;
  border: #CCCCCC 1px solid;
  margin: 5px 0;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

select::-ms-expand {
  display: none;
}

input[type="radio"],
input[type="checkbox"] {
  display: none;
}

input[type="radio"] + label {
  padding: 7px 0px 7px 25px;
  margin: 2px 20px 2px 0px;
  display: inline-block;
  background-image: url(../img/arrow/input_check_off.svg);
  background-position: left 50%;
  background-size: 18px 18px;
  cursor: pointer;
}

input[type="radio"]:checked + label {
  background-image: url(../img/arrow/input_check_on.svg);
  background-position: left 50%;
  background-size: 18px 18px;
}

input[type="checkbox"] + label {
  padding: 7px 0px 7px 25px;
  margin: 2px 20px 2px 0px;
  background-image: url(../img/arrow/checkbox_off.svg);
  background-position: left 50%;
  background-size: 18px 18px;
  display: inline-block;
  cursor: pointer;
}

input[type="checkbox"]:checked + label {
  background-image: url(../img/arrow/checkbox_on.svg);
  background-position: left 50%;
  background-size: 18px 18px;
}

input[type="submit"].input_submit,
input[type="reset"].input_submit,
input[type="button"].input_submit,
button[type="submit"].input_submit,
button[type="button"].input_submit {
  display: inline-block;
  width: auto;
  min-width: 300px;
  text-align: center;
  padding: 20px 20px;
  font-weight: 500;
  color: #FFF;
  background-color: #363636;
  letter-spacing: 0.18em;
  border: none;
  cursor: pointer;
}
input[type="submit"].input_submit:hover,
input[type="reset"].input_submit:hover,
input[type="button"].input_submit:hover,
button[type="submit"].input_submit:hover,
button[type="button"].input_submit:hover {
  color: #363636;
  background-color: #CCCCCC;
}
@media screen and (max-width: 414px) {
  input[type="submit"].input_submit,
  input[type="reset"].input_submit,
  input[type="button"].input_submit,
  button[type="submit"].input_submit,
  button[type="button"].input_submit {
    min-width: 0;
    width: 100%;
  }
}
input[type="submit"].input_return,
input[type="reset"].input_return,
input[type="button"].input_return,
button[type="submit"].input_return,
button[type="button"].input_return {
  display: inline-block;
  width: auto;
  border: none;
  padding: 0 0 0 15px;
  background-image: url(../img/arrow/arrow_left.svg);
  background-size: 5px auto;
  background-position: left center;
  min-width: inherit;
  color: #363636;
  font-weight: 500;
  text-decoration: underline;
  background-color: transparent;
  transition: none;
  cursor: pointer;
}
@media screen and (max-width: 414px) {
  input[type="submit"].input_return,
  input[type="reset"].input_return,
  input[type="button"].input_return,
  button[type="submit"].input_return,
  button[type="button"].input_return {
    width: auto;
  }
}

p#fm_ajax_message {
  font-weight: bold;
  color: #363636;
  letter-spacing: 1px;
}

table.table_info {
  text-align: left;
}
table.table_info tr th,
table.table_info tr td {
  padding: 20px;
  border-bottom: 1px solid #CED0D5;
}
@media screen and (max-width: 768px) {
  table.table_info tr th,
  table.table_info tr td {
    display: block;
    padding: 15px 10px;
  }
}
table.table_info tr th {
  width: 230px;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  table.table_info tr th {
    width: 100%;
    border-top: 1px solid #363636;
    font-weight: bold;
  }
}
@media screen and (max-width: 768px) {
  table.table_info tr td {
    border-bottom: none;
  }
}
table.table_info tr:first-child th,
table.table_info tr:first-child td {
  border-top: 1px solid #363636;
}
@media screen and (max-width: 768px) {
  table.table_info tr:first-child td {
    border-top: 1px solid #CED0D5;
  }
  table.table_info tr:first-child th {
    border-bottom: none;
  }
}
table.table_info tr:last-child th,
table.table_info tr:last-child td {
  border-bottom: 1px solid #363636;
}
@media screen and (max-width: 768px) {
  table.table_info tr:last-child th {
    border-bottom: 1px solid #CED0D5;
  }
}

div.discount {
  width: 46%;
  margin: 36px auto 36px;
}
@media screen and (max-width: 768px) {
  div.discount {
    width: 54%;
  }
}
@media screen and (max-width: 568px) {
  div.discount {
    width: 84%;
  }
}

p.text_attention {
  letter-spacing: -0.01em;
  margin-top: 10px;
}

section.reserve article {
  width: 72.3%;
}
@media screen and (max-width: 768px) {
  section.reserve article {
    width: 84%;
  }
}
section.reserve h2 {
  background-image: url(../img/front/ttl_reserve@2x.png);
}
section.reserve p.center {
  margin-bottom: 40px;
}
section.reserve div.calendar_area {
  overflow: hidden;
}
section.reserve div.calendar_area iframe {
  overflow: hidden;
  position: relative;
  height: 500px;
  top: -60px;
}
@media screen and (max-width: 768px) {
  section.reserve div.calendar_area iframe {
    height: 490px;
  }
}
@media screen and (max-width: 767px) {
  section.reserve div.calendar_area iframe {
    top: -55px;
    height: 480px;
  }
}
@media screen and (max-width: 568px) {
  section.reserve div.calendar_area iframe {
    top: -10.5vw;
    height: 490px;
  }
}
@media screen and (max-width: 480px) {
  section.reserve div.calendar_area iframe {
    top: calc(-10.5vw - 35px);
    height: 545px;
  }
}
@media screen and (max-width: 380px) {
  section.reserve div.calendar_area iframe {
    top: -22.5vw;
    height: 540px;
  }
}

section.facility {
  background-color: #FAFAFA;
}
section.facility h2 {
  background-image: url(../img/front/ttl_facility@2x.png);
}
section.facility table.table_info {
  font-size: 15px;
  margin-top: 57px;
}
@media screen and (max-width: 768px) {
  section.facility table.table_info {
    margin-top: 30px;
  }
}

section.plan {
  background-color: #363636;
  color: #fff;
  padding: 90px 0 125px;
}
@media screen and (max-width: 768px) {
  section.plan {
    padding: 20px 0 50px;
  }
}
section.plan h2 {
  background-image: url(../img/front/ttl_plan@2x.png);
  margin-bottom: 44px;
}
@media screen and (max-width: 768px) {
  section.plan h2 {
    margin-bottom: 27px;
  }
}
section.plan h3 {
  color: #fff;
}
section.plan h3:before {
  background-color: #fff;
}
section.plan p.text_attention {
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  section.plan p.text_attention {
    margin-bottom: 30px;
  }
}
section.plan h3.ttl_sub.mt_70 {
  margin-top: 70px;
}
@media screen and (max-width: 768px) {
  section.plan h3.ttl_sub.mt_70 {
    margin-top: 30px;
  }
}
section.plan h3.ttl_sub.mb_3 {
  margin-bottom: 3px;
}
section.plan .plan_subttl {
  font-weight: 600;
  margin: 15px 0 5px;
}
section.plan p.table_text {
  margin-bottom: 18px;
}
section.plan table.table_info tr th,
section.plan table.table_info tr td {
  border-bottom: 1px solid #6C7483;
}
@media screen and (max-width: 768px) {
  section.plan table.table_info tr th,
  section.plan table.table_info tr td {
    border-bottom: none;
  }
}
@media screen and (max-width: 768px) {
  section.plan table.table_info tr th {
    background-color: #fff;
    color: #363636;
    padding: 6px 15px;
  }
}
section.plan table.table_info tr:first-child th,
section.plan table.table_info tr:first-child td {
  border-top: 1px solid #fff;
}
@media screen and (max-width: 768px) {
  section.plan table.table_info tr:first-child td {
    border-top: none;
  }
  section.plan table.table_info tr:first-child th {
    border-top: none;
    border-bottom: none;
  }
}
section.plan table.table_info tr:last-child th,
section.plan table.table_info tr:last-child td {
  border-bottom: 1px solid #fff;
}
@media screen and (max-width: 768px) {
  section.plan table.table_info tr:last-child th,
  section.plan table.table_info tr:last-child td {
    border-bottom: none;
  }
}
section.plan table.table_price tr th {
  background-color: #fff;
  color: #363636;
  text-align: left;
  padding: 5px 15px;
}
@media screen and (max-width: 568px) {
  section.plan table.table_price tr th {
    padding: 5px 0;
  }
}
section.plan table.table_price tr td {
  padding: 18px;
  border-bottom: 1px solid #6C7483;
}
section.plan table.table_price tr td:first-child {
  width: 120px;
  font-weight: 600;
}
section.plan table.table_price tr:last-child td,
section.plan table.table_price tr:last-child th.th_detail {
  border-bottom: 1px solid #fff;
}
section.plan table.table_price tr th.th_detail {
  background-color: inherit;
  color: #fff;
  border-bottom: 1px solid #6C7483;
  white-space: nowrap;
}
section.plan table.table_attention tr td:first-child {
  width: 230px;
}
@media screen and (max-width: 768px) {
  section.plan table.table_attention tr td:first-child {
    width: 120px;
  }
}
section.plan div.table_flex {
  display: flex;
  justify-content: space-between;
  margin-bottom: 35px;
}
section.plan div.table_flex table {
  width: 47%;
}
@media screen and (max-width: 768px) {
  section.plan div.table_flex {
    display: block;
    margin-bottom: 20px;
  }
  section.plan div.table_flex table {
    width: 100%;
  }
  section.plan div.table_flex table:last-of-type {
    margin-top: 20px;
  }
}

section.detail {
  padding: 90px 0 70px;
}
@media screen and (max-width: 768px) {
  section.detail {
    padding: 20px 0 50px;
  }
}
section.detail h2 {
  background-image: url(../img/front/ttl_detail@2x.png);
}
section.detail h3.ttl_sub:last-of-type {
  margin-top: 70px;
}
@media screen and (max-width: 768px) {
  section.detail h3.ttl_sub:last-of-type {
    margin-top: 30px;
  }
}

section.question {
  background-color: #FAFAFA;
}
section.question h2 {
  background-image: url(../img/front/ttl_question@2x.png);
}
section.question dl {
  border-top: 1px solid #363636;
}
section.question dl dt,
section.question dl dd {
  display: flex;
}
section.question dl dt span,
section.question dl dd span {
  display: block;
  padding-right: 18px;
}
section.question dl dt span img,
section.question dl dd span img {
  width: 30px;
  height: 30px;
}
section.question dl dt p,
section.question dl dd p {
  flex: 1;
}
section.question dl dt {
  align-items: center;
  margin-bottom: 13px;
  padding-top: 20px;
}
@media screen and (max-width: 768px) {
  section.question dl dt {
    align-items: inherit;
  }
  section.question dl dt p {
    padding-top: 5px;
  }
}
section.question dl dd {
  padding-bottom: 20px;
  border-bottom: 1px solid #363636;
}
section.question dl dd p {
  padding-top: 2px;
}

section.surrounding {
  padding: 90px 0 118px;
}
@media screen and (max-width: 768px) {
  section.surrounding {
    padding: 20px 0 50px;
  }
}
section.surrounding h2 {
  background-image: url(../img/front/ttl_surrounding@2x.png);
}
@media screen and (max-width: 768px) {
  section.surrounding h2 {
    background-size: auto 14px;
  }
}
section.surrounding div.table_flex {
  display: flex;
  justify-content: space-between;
  margin-top: 38px;
}
section.surrounding div.table_flex .table_box {
  width: 47%;
}
@media screen and (max-width: 768px) {
  section.surrounding div.table_flex {
    display: block;
    margin-top: 30px;
  }
  section.surrounding div.table_flex .table_box {
    width: 100%;
  }
  section.surrounding div.table_flex .table_box:last-of-type {
    margin-top: 30px;
  }
}
section.surrounding table.table_info tr th {
  padding: 20px 0 20px 20px;
  width: 250px;
}
@media screen and (max-width: 1340px) {
  section.surrounding table.table_info tr th {
    font-size: 14px;
    padding: 15px 0 15px 15px;
    width: 67%;
  }
}
@media screen and (max-width: 768px) {
  section.surrounding table.table_info tr th {
    width: 100%;
    padding: 15px 10px;
  }
}

section.access {
  background-color: #363636;
  color: #fff;
  padding: 90px 0 0;
}
@media screen and (max-width: 768px) {
  section.access {
    padding: 20px 0 0;
  }
}
section.access h2 {
  background-image: url(../img/front/ttl_access@2x.png);
}
section.access p {
  line-height: 2;
  margin-bottom: 53px;
}
@media screen and (max-width: 768px) {
  section.access p {
    line-height: inherit;
    margin-bottom: 30px;
  }
}
section.access div.map_area {
  position: relative;
  padding-bottom: 28.7%;
  height: 0;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  section.access div.map_area {
    padding-bottom: 65%;
  }
}
section.access div.map_area iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}

div.top_view {
  width: 100%;
  background-image: url(../img/front/img_kv_pc@2x.jpg);
  background-size: cover;
  margin-top: 102px;
  position: relative;
  height: 740px;
  padding-top: 54px;
}
div.top_view .kv_logo {
  width: 243px;
  margin: 0 auto;
  margin-bottom: 27px;
}
div.top_view .kv_copy {
  color: #fff;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.12em;
  line-height: 1.44;
  padding-left: 0.7vw;
}
@media screen and (min-width: 1367px) {
  div.top_view {
    height: 48.7vw;
    padding-top: 5vw;
  }
  div.top_view .kv_logo {
    width: 17.8vw;
  }
}
@media screen and (max-width: 768px) {
  div.top_view {
    margin-top: 61px;
    height: auto;
    background-image: none;
    padding: 0;
  }
  div.top_view .kv_logo {
    background-image: url(../img/front/img_kv_sp@2x.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 66vw;
    padding: 8.3% 0 0;
    width: 100%;
  }
  div.top_view .kv_logo img {
    width: 27.2vw;
    margin-inline: auto;
  }
  div.top_view .kv_copy {
    color: #363636;
    width: 84%;
    margin-inline: auto;
  }
}
@media screen and (max-width: 374px) {
  div.top_view .kv_copy {
    font-size: 13px;
  }
}
div.top_view .bnr_marukyu {
  display: block;
  width: 320px;
  height: auto;
  position: absolute;
  right: 50px;
  bottom: 56px;
}
@media screen and (max-width: 1366px) {
  div.top_view .bnr_marukyu {
    right: 20px;
    bottom: 30px;
  }
}
@media screen and (max-width: 768px) {
  div.top_view .bnr_marukyu {
    position: static;
    margin: 30px auto 0;
    width: 54%;
  }
}
@media screen and (max-width: 568px) {
  div.top_view .bnr_marukyu {
    width: 84%;
    max-width: 320px;
  }
}

#loading {
  width: 100vw;
  height: 100vh;
  background-color: #363636;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  opacity: 1;
  overflow: hidden;
}
#loading .loading_logo {
  width: 183px;
  margin: 0 auto;
  position: relative;
  top: 50%;
  -webkit-transform: translate(0%, -50%);
  transform: translate(0%, -50%);
  opacity: 1;
  transition: opacity 0.5s ease-in;
}
#loading.init .loading_logo {
  opacity: 0;
}
#loading.loaded {
  opacity: 0;
  transition: all 1s ease-in 0.5s;
  visibility: hidden;
}
#loading.loaded .loading_logo {
  opacity: 0;
  transition: opacity 0.5s ease;
}
