@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Zen+Antique&display=swap');

:root {
  --txt: #3E3A39;
  --red: #E60012;
  --osaka: #E60012;
  --pink: #FFE8F0;
  --nagoya: #1A96D5;
  --blue: #E8F5FB;
  --gray: #888;
}

/* common
============================================ */
html {
  font-size: 16px;
  scroll-padding-top: 44px;
}
body {
  width: 100%;
  font-size: 1rem;
  font-family: 'Noto Sans JP', 'Helvetica Neue', 'Arial', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'BIZ UDPGothic', Meiryo, sans-serif;
  font-optical-sizing: auto;
  color: var(--txt);
  font-weight: 500;
  font-display: swap;
}

a {
  color: var(--txt);
}
img {
  width: 100%;
  max-width: 100%;
  height: auto;
  image-rendering: -webkit-optimize-contrast;
}

video {
  margin: auto;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  display: block;
}

.align-left {
  text-align: left!important;
}
.align-center {
  text-align: center!important;
}
.align-right {
  text-align: right!important;
}

/* header
============================================ */
header {
  width: 100%;
  position: relative;
  z-index: 999;
}
header .inner {
  width: 100%;
  height: 44px;
  background: #fff;
  border-bottom-width: 2px;
  border-bottom-style: solid;
  position: fixed;
  top: 0;
}
#osaka header .inner {
  border-bottom-color: var(--osaka);
}
#nagoya header .inner {
  border-bottom-color: var(--nagoya);
}
header .inner .info {
  padding: 0 62px;
  height: 100%;
}
header .inner #logo {
  width: 36px;
  position: absolute;
  top: 5px;
  left: 5%;
}
header .inner .area {
  padding: 12px 0;
}
header .inner .area img {
  margin: 0 auto;
  width: auto;
  height: 18px;
}
header #menu_btn {
  width: 62px;
  height: 42px;
  position: absolute;
  top: 0;
  right: 0;
  pointer-events: auto;
}
header .menu-trigger,
header .menu-trigger::before,
header .menu-trigger::after {
  width: 24px;
  height: 2px;
  position: absolute;
  left: 19px;
  transition: all .2s ease-in;
}
#osaka header .menu-trigger,
#osaka header .menu-trigger::before,
#osaka header .menu-trigger::after {
  background: var(--osaka);
}
#nagoya header .menu-trigger,
#nagoya header .menu-trigger::before,
#nagoya header .menu-trigger::after {
  background: var(--nagoya);
}
header .menu-trigger {
  top: 20px;
}
header .menu-trigger:before {
  content: '';
  top: -8px;
  left: 0;
}
header .menu-trigger::after {
  content: '';
  top: 8px;
  left: 0;
}
header #menu_btn.active .menu-trigger {
  background-color: transparent;
}
header #menu_btn.active .menu-trigger::before {
  top: 0;
  transform: rotate(-135deg);
}
header #menu_btn.active .menu-trigger::after {
  top: 0;
  transform: rotate(135deg);
}
header #menu_open,
header #menu_close {
  padding: 0;
  width: 100%;
  height: 100%;
  border: none;
  background: transparent;
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
}
header #menu_close {
  display: none;
}
#menu_btn.active #menu_open {
  display: none;
}
#menu_btn.active #menu_close {
  display: block;
}

header nav {
  padding-top: 44px;
  width: 100%;
  height: 100%;
  position: fixed;
  top: -110%;
  opacity: 0;
  visibility: hidden;
  transition: all .6s;
}
#osaka header nav {
  background: var(--osaka);
}
#nagoya header nav {
  background: var(--nagoya);
}
header nav.active {
  opacity: 1;
  visibility: visible;
  top: 0;
}
header nav ul {
  height: 100%;
  overflow-y: auto;
  scrollbar-width: none;
}
header nav > ul > li {
  padding: 1.5em 5%;
  border-bottom: 1px solid #fff;
}
header nav li a {
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  line-height: 1;
  display: block;
}
header nav > ul > li > a {
  font-size: 1.375rem;
}
header nav > ul > li:not(.logout) > a::before {
  content: '';
  margin-top: -3px;
  width: 32px;
  height: 26px;
  margin-right: 15px;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: inline-block;
}
header nav > ul > li.news > a::before {
  background-image: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42.96 49.59"><g><path d="M17.47 6.66c-.04-.92-.12-1.78-.11-2.64.01-2.41 1.85-3.88 3.92-4.01.88-.06 1.73.11 2.5.56 1.21.71 1.89 1.76 1.92 3.18.01.94-.04 1.88-.06 2.86.31.1.65.2.98.32 2.87 1.01 5.26 2.66 7.02 5.17 1.34 1.92 2.11 4.06 2.46 6.37.2 1.31.19 2.62.18 3.94-.01 1.47-.03 2.94.06 4.4.14 2.2.71 4.3 1.82 6.23 1.16 2.03 2.76 3.61 4.8 4.79v3.54c-.22.01-.44.03-.66.03h-6.33c-4.2 0-8.4.01-12.6.01H.11C-.02 41-.06 38.8.04 37.95c.62-.43 1.23-.83 1.82-1.27 1.07-.79 1.94-1.78 2.63-2.92 1.45-2.4 2.25-5 2.33-7.81.04-1.26.01-2.52 0-3.78 0-1.49 0-2.98.29-4.44.83-4.16 3.08-7.34 6.71-9.53 1.02-.61 2.12-1.06 3.26-1.4.13-.04.25-.08.37-.13ZM14.19 43.29h14.64c-.15 2.4-2.45 6.01-6.94 6.29-3.48.21-7.01-2.15-7.7-6.29" fill="%23fff"/></g></svg>');
}
header nav > ul > li.reserve > a::before {
  background-image: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 58.21 51.12"><g><path d="M5 51.12h48.21c2.76 0 5-2.24 5-5V9.96c0-2.76-2.24-5-5-5h-5.58c-.4 0-.73.33-.73.73v3.44c0 1.52-1.11 2.88-2.62 3.02-1.74.17-3.2-1.2-3.2-2.9V5.69c0-.4-.33-.73-.73-.73h-22.5c-.4 0-.73.33-.73.73v3.44c0 1.52-1.11 2.88-2.62 3.02-1.74.17-3.2-1.2-3.2-2.9V5.69c0-.4-.33-.73-.73-.73H4.99a5 5 0 0 0-4.99 5v36.16c0 2.76 2.24 5 5 5m-2.09-31.9H55.3v26.9c0 1.15-.94 2.09-2.09 2.09H5c-1.15 0-2.09-.94-2.09-2.09zm9.85-9.97V1.46c0-.8.65-1.46 1.46-1.46s1.46.65 1.46 1.46v7.8c0 .8-.65 1.46-1.46 1.46s-1.46-.65-1.46-1.46Zm29.78 0V1.46C42.54.66 43.19 0 44 0s1.46.65 1.46 1.46v7.8c0 .8-.65 1.46-1.46 1.46s-1.46-.65-1.46-1.46Z" fill="%23fff"/><path d="M24.63 43.39c-.51 0-1.02-.2-1.41-.59l-7.69-7.69c-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0l6.28 6.28 15.23-15.23c.78-.78 2.05-.78 2.83 0s.78 2.05 0 2.83L26.06 42.8c-.39.39-.9.59-1.41.59Z" fill="%23fff"/></g></svg>');
}
header nav > ul > li.apply > a::before {
  background-image: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 47.73 47.73"><g><path d="m47.37 10.27-4.05 4.05c-.48.48-1.27.48-1.75 0l-8.16-8.15c-.48-.48-.48-1.27 0-1.75L37.46.36c.48-.48 1.27-.48 1.75 0l8.16 8.15c.48.48.48 1.27 0 1.75ZM.75 37.49 0 46.39c-.06.76.57 1.4 1.34 1.34l8.9-.74c.29-.02.57-.15.77-.36L38.94 18.7c.48-.48.48-1.27 0-1.75L30.78 8.8c-.48-.48-1.27-.48-1.75 0L1.1 36.72c-.21.21-.33.48-.36.77Z" fill="%23fff"/></g></svg>');
}
header nav > ul > li.movie > a::before {
  background-image: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 65.58 44.65"><g><path d="M0 0v44.65h65.58V0zm27.67 31.19V13.46l15.35 8.86-15.35 8.86Z" fill="%23fff"/></g></svg>');
}
header nav li ul {
  margin-top: .7em;
  padding-left: 47px;
}
header nav li li a {
  padding: .7em 0;
  font-size: 1.25rem;
}
header nav li li a::before {
  content: '';
  margin: -3px .5em 0 0;
  width: 8px;
  height: 9px;
  background: #fff;
  vertical-align: middle;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  display: inline-block;
}
header nav li li.hide a {
  opacity: .5;
  pointer-events: none;
}
header nav li.logout {
  padding: 1.5em 0;
  border-bottom: none;
}
header nav li.logout a {
  margin: 0 auto;
  padding: .5em .5em .6em;
  width: 38%;
  min-width: 7em;
  max-width: 150px;
  color: var(--gray);
  font-size: 1.25rem;
  text-align: center;
  background: #fff;
  border-radius: 8px;
}


/* content
============================================ */
body:not(#login):not(#password) main {
  padding: 44px 0 40px;
}
body:not(#login):not(#password) main:not(#top) > section {
  margin: 0 auto;
  width: 90%;
}
main:not(#top) .content_ttl {
  margin: 32px auto 20px;
  width: 90%;
  font-size: .75rem;
  font-weight: 700;
}
main:not(#top) .content_ttl span {
  font-family: 'Noto Serif JP', serif;
  margin-right: .5em;
  font-size: 1.3rem;
  font-weight: 800;
}
#osaka main:not(#top) .content_ttl span {
  color: var(--osaka);
}
#nagoya main:not(#top) .content_ttl span {
  color: var(--nagoya);
}
body:not(#login) main:not(#top) h2 {
  margin-bottom: 20px;
  padding: .5em .5em .6em;
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
}
#osaka  main:not(#top) h2 {
  background: var(--osaka);
}
#nagoya  main:not(#top) h2 {
  background: var(--nagoya);
}

.movie_box {
  width: 100%;
  aspect-ratio: 16 / 9;
}
.movie_box video,
.movie_box iframe {
  width: 100%;
  height: 100%;
}

/* form */
form dl:not(:first-of-type) {
  margin-top: 1em;
}
form dt {
  font-weight: 700;
  line-height: 1.2;
}
form dt .required {
  margin: -.2em 0 0 .5em;
  width: auto;
  height: 1em;
  vertical-align: middle;
  display: inline-block;
}
form dt span {
  margin-top: .5em;
  font-size: 80%;
  font-weight: 500;
  display: inline-block;
}
form dd {
  margin-top: .5em;
}
input,
textarea,
select {
  padding: .5em;
  color: var(--txt);
  font-size: 16px;
  line-height: 1;
  background-color: #fff!important;
  border: 1px solid #ddd;
  border-radius: 2px;
  outline: none!important;
  box-shadow: none!important;
}
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="radio"],
textarea {
  -webkit-appearance: none;
  appearance: none;
}
input[type="checkbox"] {
  display: none;
}
.radio_wrap {
  display: flex;
  align-items: center;
  gap: .7em;
}
label:has(input[type="radio"]) {
  width: fit-content;
  min-height: 30px;
  display: flex;
  align-items: center;
  gap: .2em;
}
input[type="radio"] {
  width: 1.2em!important;
  height: 1.2em!important;
  border-radius: 50%;
  position: relative;
}
input[type="radio"]:focus {
  border-color: #ddd!important;
}
input[type="radio"]:checked::before {
  content: '';
  margin: auto;
  width: .7em;
  height: .7em;
  background: var(--red);
  border-radius: 50%;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
form .switch {
  display: flex;
}
form .switch input[type=radio] {
  display: none;
}
form .switch label {
  padding: 14px;
  width: 50%;
  color: #5e5e5e;
  line-height: 1;
  text-align: center;
  background: #e2e2e2;
  display: block;
  cursor: pointer;
}
form switch label:first-of-type {
  border-radius: 2px 0 0 2px;
}
form .switch label:last-of-type {
  border-radius: 0 2px 2px 0;
}
form .switch input[type="radio"]:checked + .switch-off {
  background-color: #777;
  color: #fff;
}
form .switch input[type="radio"]:checked + .switch-on {
  background-color: var(--red);
  color: #fff;
}
select {
  cursor: pointer;
}
textarea {
  line-height: 1.5;
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #fff inset!important;
  box-shadow: 0 0 0 1000px #fff inset!important;
  outline: none!important;
  transition: background-color 9999s ease-in-out 0s;
}
button {
  border: none;
  -webkit-appearance: none;
  appearance: none;
}
button[type="submit"] {
  margin: 3em auto 0;
  padding: 1em;
  width: 65%;
  min-width: fit-content;
  color: #fff;
  line-height: 1;
  background: var(--red);
  border-radius: 2px;
  display: block;
}
form button:disabled {
  background: var(--gray);
  cursor: default;
}
form .button {
  display: flex;
  justify-content: space-between;
}
form .button li {
  width: 47%;
}
form .button li button {
  width: 100%;
}
form .button li.return button {
  background: #777;
}

.parsley-errors-list {
  margin-top: .5em;
}
.parsley-errors-list li {
  color: var(--red);
  font-size: .625rem;
  line-height: 1.2;
}
.parsley-errors-list li::before {
  content: '※';
}

/* footer
============================================ */
.footer_contact {
  padding: 24px 5%;
  border-top: 1px solid var(--gray);
}
.footer_contact h3 {
  margin-bottom: 1em;
  font-size: .75rem;
  text-align: center;
}
.footer_contact .btn_wrap {
  margin: 0 auto;
  width: 82%;
  max-width: 290px;
}
.footer_contact .btn {
  margin-top: .5em;
}
.footer_contact .btn a {
  padding: .7em;
  font-size: .75rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  display: block;
  border: 1px solid var(--gray);
}
.footer_contact .btn p::before {
  content: '';
  margin-right: .5em;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: inline-block;
}
.footer_contact .btn.mail p::before {
  margin-top: -3px;
  width: 18px;
  height: 13px;
  background-image: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36.5 25.72"><g><path d="M34.73 0H1.77l16.48 13.18z" fill="%23888"/><path d="M18.25 16.2 0 1.6v24.12h36.5V1.6z" fill="%23888"/></g></svg>');
}
.footer_contact .btn.tel p::before {
  width: 16px;
  height: 16px;
  background-image: url('data:image/svg+xml, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.36 32.32"><path d="M6.53 0c.67-.01.9.09 1.41.53.83.72 1.53 1.62 2.31 2.4 1.18 1.18 2.66 2.35 3.64 3.7.23.32.4.69.42 1.09.05 1.63-2.67 3.59-3.7 4.69-.5.53-1 1.23-.94 2 .09 1.1 5.87 6.69 7.07 7.67 3.1 2.55 4.3-3.44 7.06-3.6.53-.03 1.26.6 1.66.94.95.81 1.79 1.79 2.67 2.66.97.96 2.34 1.98 3.11 3.1.12.18.13.37.14.57.05 1.12-.8 1.83-1.49 2.6-1.07 1.25-2.11 2.48-3.62 3.21-2.12 1.03-4.57.91-6.75.13C12.63 29.25 4.19 20.22 1.14 13.6.08 11.3-.46 8.64.5 6.21 1.17 4.5 4.89.71 6.53 0" style="fill:%23888"/></svg>');
}
.footer_contact .note {
  margin-top: 1em;
  font-size: .75rem;
  text-align: center;
}

/* page-top */
#page-top {
  position: fixed;
  bottom: -200px;
  right: 5%;
  transition: .3s ease-out;
  z-index: 998;
}
#page-top a {
  width: 40px;
  height: 40px;
  text-indent: 100%;
  white-space: nowrap;
  border-radius: 50%;
  overflow: hidden;
  display: block;
  position: relative;
}
#osaka #page-top a {
  background: var(--osaka);
}
#nagoya #page-top a {
  background: var(--nagoya);
}
#page-top a:after {
  content: '';
  margin: -3px 0 0 -4px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  left: 50%;
}
#page-top.active {
  bottom: 15px;
}

/* footer_back */
.footer_back {
  margin-top: 40px;
  display: inline-block;
}
.footer_back a {
  padding: 10px;
  font-size: .75rem;
  text-decoration: none;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
}
.footer_back img {
  margin-right: .7em;
  width: 10px;
}