html {
  font-size: calc((120 / 1900) * 1vw);
}

@media screen and (min-width: 1900px) {
  html {
    font-size: 1.2px;
  }
}

@media screen and (max-width: 767px) {
  html {
    font-size: calc((120 / 750) * 1vw);
  }
}

body {
  background: #fff;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 400;
  font-size: 20px;
  line-height: 1.8;
  color: #000;
  min-height: 100vh;
}

body.menu-open {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

::-moz-selection {
  color: #fff;
  background: #e61c5d;
}

::selection {
  color: #fff;
  background: #e61c5d;
}

a {
  -webkit-transition: .3s all ease;
  -o-transition: .3s all ease;
  transition: .3s all ease;
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

h1,
h2,
h3,
h4,
h5 {
  color: #000;
}

.container-fluid {
  max-width: 1900px;
  padding: 0;
  position: relative;
}

.btn {
  padding-left: 30px;
  padding-right: 30px;
  padding-top: 10px;
  padding-bottom: 10px;
  border-radius: 50px;
}

.btn.uppercase {
  text-transform: uppercase;
  font-size: 14px;
  letter-spacing: .2em;
}

.btn,
.form-control {
  outline: none;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}

.btn:focus,
.btn:active,
.form-control:focus,
.form-control:active {
  outline: none;
}

@media (min-width: 768px) {
  .sp {
    display: none !important;
  }
}


@media (max-width: 767px) {
  .pc {
    display: none !important;
  }
}

.site-header {
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 10;
}

.menu-open .site-header {
  position: fixed;
}

.site-logo a {
  font-size: 30px;
  color: #fff;
  font-weight: bold;
  line-height: 1;
}

.site-navbar {
  position: fixed;
  display: none;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #2c3544;
  min-height: 100vh;
  overflow-y: scroll;
  padding: 150rem 65rem 70rem;
}

.site-navbar nav {
  text-align: left;
}

.site-navbar nav .menu li a {
  color: #000;
  font-size: 40px;
  padding: 5px 10px;
  position: relative;
}

.site-navbar nav .menu li a:before {
  content: "";
  position: absolute;
  bottom: 0;
  height: 50%;
  width: 0%;
  z-index: -1;
  background: #e61c5d;
  -webkit-transition: .3s all ease-in-out;
  -o-transition: .3s all ease-in-out;
  transition: .3s all ease-in-out;
}

.site-navbar nav .menu li a:hover:before {
  width: 100%;
}

.site-navbar nav .menu li.active a:before {
  width: 100%;
}

.site-navbar .extra-info a {
  color: #000;
}

.site-navbar .extra-info ul li a {
  color: #000;
}

.site-navbar .extra-info h3 {
  font-family: "Mukta Mahee", arial, sans-serif;
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: .2em;
  color: #adb5bd;
  margin-bottom: 30px;
}

.site-navbar .extra-info p {
  color: #212529;
}

.full-height {
  height: 100vh;
  min-height: 700px;
}

.site-hero {
  position: relative;
}

.keyvisual {
  display: none;
  animation: text-focus-in 1s cubic-bezier(0.55, 0.085, 0.68, 0.53) 800ms both;
}

@keyframes text-focus-in {
  0% {
    filter: blur(12px);
    opacity: 0;
  }

  100% {
    filter: blur(0);
    opacity: 1;
  }
}

.site-hero .hero-background {
  position: relative;
}

.site-hero .hero-skip {
  position: absolute;
}

.site-hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site-hero .hero-logo {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) !important;
  -moz-transform: translate(-50%, -50%) !important;
  -o-transform: translate(-50%, -50%) !important;
  -ms-transform: translate(-50%, -50%) !important;
  transform: translate(-50%, -50%) !important;
}

.site-hero video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (min-width: 768px) {

  .site-hero,
  .site-hero .hero-background {
    height: 100vh;
  }

  .site-hero .hero-background::before {
    content: "";
    background: url("../img/hero_bg_gradient.png") no-repeat center center / cover;
    top: 0;
    left: 0;
    height: 80px;
    position: absolute;
    width: 100%;
  }

  .site-hero .hero-skip {
    right: 45px;
    bottom: 120px;
  }

  .site-hero .hero-logo {
    width: 344px;
    height: 279px;
    margin-top: -20px;
  }
}

@media (max-width: 767px) {

  .site-hero,
  .site-hero .hero-background {
    height: 95svh;
  }

  .site-hero .hero-skip {
    width: 90rem;
    right: 50rem;
    bottom: 112rem;
  }

  .site-hero .hero-logo {
    width: 316rem;
    height: 355rem;
    margin-top: -55rem;
  }
}

.page-inside.overlay:before {
  height: 70vh;
  min-height: 500px;
}

.site-menu-toggle {
  width: 100rem;
  height: 100rem;
  background-color: rgba(255, 255, 255, 0.6);
  position: absolute;
  right: 0;
  top: 0;
  margin: 0 auto;
  z-index: 200;
  -webkit-transform: translate(-50%, -50%) rotate(0deg);
  -moz-transform: translate(-50%, -50%) rotate(0deg);
  -o-transform: translate(-50%, -50%) rotate(0deg);
  -ms-transform: translate(-50%, -50%) rotate(0deg);
  transform: translate(-50%, -50%) rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: pointer;
}

.site-menu-toggle span {
  display: block;
  position: absolute;
  height: 1rem;
  width: 45rem;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(0deg);
  background: #2c3544;
  border-radius: 9rem;
  opacity: 1;
  -webkit-transform: translate(-50%, -50%) rotate(0deg);
  -moz-transform: translate(-50%, -50%) rotate(0deg);
  -o-transform: translate(-50%, -50%) rotate(0deg);
  -ms-transform: translate(-50%, -50%) rotate(0deg);
  -webkit-transition: .25s ease-in-out;
  -moz-transition: .25s ease-in-out;
  -o-transition: .25s ease-in-out;
  transition: all .25s ease-in-out;
}

.site-menu-toggle span:nth-child(1) {
  margin-top: -12rem;
}

.site-menu-toggle span:nth-child(2) {
  margin-top: 0;
}

.site-menu-toggle span:nth-child(3) {
  margin-top: 12rem;
}

.site-menu-toggle.open {
  background-color: transparent;
}

.site-menu-toggle.open span {
  margin-top: 0;
}

.site-menu-toggle.open span:nth-child(1) {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
  -moz-transform: translate(-50%, -50%) rotate(45deg);
  -o-transform: translate(-50%, -50%) rotate(45deg);
  -ms-transform: translate(-50%, -50%) rotate(45deg);
  transform: translate(-50%, -50%) rotate(45deg);
}

.site-menu-toggle.open span:nth-child(2) {
  opacity: 0;
}

.site-menu-toggle.open span:nth-child(3) {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
  -moz-transform: translate(-50%, -50%) rotate(-45deg);
  -o-transform: translate(-50%, -50%) rotate(-45deg);
  -ms-transform: translate(-50%, -50%) rotate(-45deg);
  transform: translate(-50%, -50%) rotate(-45deg);
}

.menu-open .header-area .main-header-area .book_room .book_btn {
  background-color: transparent
}

.menu-open .site-menu-toggle span {
  background: #fff;
}

@media (max-width: 767px) {
  .section .container {
    padding: 30px 65rem;
    max-width: 100%;
  }
}

.footer-section {
  background: #2c3544;
  color: #f5f5f6;
}

.footer-section .copyright {
  color: white;
  font-weight: 500;
}

.footer-section hr {
  color: white;
  border: solid 1px;
}

.footer-section li,
.footer-section a {
  color: white;
  font-weight: 700;
}

.footer-section a:hover {
  color: #fff;
  text-decoration: underline;
}

.footer-section p {
  color: rgba(255, 255, 255, 0.5);
}

.footer-section .bordertop {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 20rem;
}

.footer-section .contact-info span.d-block {
  font-style: italic;
  color: #fff;
}

.footer-section .link li {
  margin-bottom: 10rem;
}

.footer-newsletter .form-group {
  position: relative;
}

.footer-newsletter .form-control {
  background: none;
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 0;
  color: #fff;
}

.footer-newsletter .form-control::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  color: rgba(255, 255, 255, 0.2);
  font-style: italic;
}

.footer-newsletter .form-control::-moz-placeholder {
  /* Firefox 19+ */
  color: rgba(255, 255, 255, 0.2);
  font-style: italic;
}

.footer-newsletter .form-control:-ms-input-placeholder {
  /* IE 10+ */
  color: rgba(255, 255, 255, 0.2);
  font-style: italic;
}

.footer-newsletter .form-control:-moz-placeholder {
  /* Firefox 18- */
  color: rgba(255, 255, 255, 0.2);
  font-style: italic;
}

.footer-newsletter .form-control:active,
.footer-newsletter .form-control:focus {
  border-bottom: 1px solid white;
}

.footer-newsletter button[type="submit"] {
  background: none;
  color: #fff;
  position: absolute;
  top: 0;
  right: 0;
}

.footer-section .has-underline {
  text-decoration: underline;
}

.footer-section .has-underline:hover {
  text-decoration: none;
}

.footer-section .has-underline span {
  margin-left: 10rem;
}

.footer-section .list-social {
  display: flex;
  align-items: center;
}

.footer-section .list-social a:hover {
  text-decoration: none;
}

.footer-section .list-social .fa-facebook {
  background: #1877F2;
  border-radius: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-section .list-social .fa-instagram {
  color: transparent;
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #E1306C 60%, #833AB4 90%);
  background: -webkit-radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #E1306C 60%, #833AB4 90%);
  background-clip: text;
  -webkit-background-clip: text;
}

.footer-section .logo-img a {
  display: block;
  width: 100%;
}

.footer-section img {
  width: 100%;
  object-fit: cover;
}

@media (min-width: 768px) {
  .footer-section {
    padding: calc(80px / 100 * 70) 0 calc(160px / 100 * 70);
  }

  .footer-section .list-social .fa::before {
    font-size: calc(30px / 100 * 70);
  }

  .footer-section .logo-img {
    width: calc(417px / 100 * 70);
  }

  .footer-section .container {
    max-width: 970px;
  }

  .footer-section hr {
    margin-bottom: calc(20px / 100 * 70);
  }

  .footer-section .list-social li {
    margin: 0 calc(15px / 100 * 70);
  }

  .footer-section .list-social .fa-facebook {
    width: calc(35px / 100 * 70);
    height: calc(35px / 100 * 70);
  }

  .footer-section .list-social .fa-facebook::before {
    position: relative;
    top: calc(2px / 100 * 70);
  }

  .footer-section .list-social .fa-instagram::before {
    font-size: calc(40px / 100 * 70);
  }

  .footer-section .copyright {
    font-size: calc(20px / 100 * 70);
  }

  .footer-section .content {
    padding: calc(60px / 100 * 70) 0;
    font-size: calc(20px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .footer-section {
    padding: 80rem 0 170rem;
  }

  .footer-section .container {
    max-width: 460rem;
  }

  .footer-section li,
  .footer-section a {
    font-size: 32rem;
  }

  .footer-section .link-small,
  .footer-section .link-medium {
    font-size: 24rem;
    line-height: calc(35.97 / 23.98);
  }

  .footer-section .link li {
    text-align: center;
  }

  .footer-section .logo-img a {
    width: 393rem;
    margin: 0 auto;
  }

  .footer-section .list-social {
    justify-content: center;
    text-align: center;
    gap: 40rem;
  }

  .footer-section .list-social .fa-facebook {
    width: 35rem;
    height: 35rem;
  }

  .footer-section .list-social .fa-instagram::before {
    font-size: 40rem;
  }

  .footer-section .copyright {
    font-size: 20rem;
  }

  .footer-section .content {
    padding-top: 60rem;
  }

  .footer-section .link {
    margin-bottom: 70rem;
  }
}

.header-area .main-header-area.sub-page {
  background-color: #2c3544;
  position: fixed;
  left: 0;
  right: 0;
}

.header-area .main-header-area .logo-img {
  text-align: center;
  position: absolute;
  left: 32rem;
  top: calc(14px / 100 * 70);
}

.header-area .main-header-area .logo-img a {
  display: block;
  width: 100%;
}

.header-area .main-header-area .logo-img img {
  width: 100%;
  object-fit: cover;
}

@media (min-width: 768px) {
  .header-area .main-header-area .logo-img {
    max-width: 187px;
  }
}

@media (max-width: 767px) {
  .header-area .main-header-area .logo-img {
    width: 187rem;
    top: 25rem;
  }

  .header-area .main-header-area.sticky .logo-img {
    top: 0;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .header-area .main-header-area .logo-img {
    max-width: calc(155px / 100 * 70);
  }
}

.header-area .main-header-area .book_room {
  position: absolute;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  -moz-align-items: center;
  -ms-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-end;
  -moz-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
  -ms-flex-pack: flex-end
}

@media (min-width: 768px) {
  .header-area .main-header-area .book_room {
    right: 40rem;
    top: calc(20px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .header-area .main-header-area .book_room {
    right: 0;
  }
}

.header-area .main-header-area .book_room .social_links {
  margin-bottom: 0;
}

.header-area .main-header-area .book_room .social_links ul li {
  display: inline-block
}

.header-area .main-header-area .book_room .social_links ul li a {
  color: #fff;
  margin: 0 calc(3px / 100 * 70);
  font-size: calc(22px / 100 * 70);
  font-weight: 300;
}

.header-area .main-header-area .book_room .social_links ul li a.links-noactive {
  pointer-events: none;
}

.header-area .main-header-area .book_room .social_links ul li a:hover {
  color: #fff
}

.header-area .main-header-area .book_room .social_links ul li a.active {
  pointer-events: none;
  font-weight: 700;
}

.header-area .main-header-area .book_room .book_btn a {
  color: #fff
}

.header-area .main-header-area .main-menu ul {
  padding-left: 0;
}

.header-area .main-header-area .main-menu ul li {
  display: inline-block;
  margin-right: calc(72px / 100 * 70);
}

.header-area .main-header-area .main-menu ul li :last-child {
  margin-right: 0;
}

@media (min-width: 767px) and (max-width: 1200px) {
  .header-area .main-header-area .main-menu {
    margin-left: calc(50px / 100 * 70);
  }

  .header-area .main-header-area .main-menu ul li {
    margin-right: calc(30px / 100 * 70);
  }
}

.header-area .main-header-area .main-menu a {
  font-weight: 700;
}

.header-area .main-header-area .main-menu .main-menu-link {
  color: #fff;
  font-size: calc(22px / 100 * 70);
  text-transform: capitalize;
  display: inline-block;
  position: relative;
  text-transform: capitalize;
  z-index: 2;
  padding: 10px 0;
}

.header-area .main-header-area .main-menu ul li .main-menu-link::before {
  position: absolute;
  content: "";
  background: #fff;
  width: 100%;
  height: calc(6px / 100 * 70);
  bottom: -16px;
  left: 0;
  opacity: 0;
  transform: scaleX(0);
  -webkit-transition: .3s;
  -moz-transition: .3s;
  -o-transition: .3s;
  transition: .3s
}

.header-area .main-header-area .main-menu .main-menu-item a:hover::before {
  opacity: 1;
  transform: scaleX(1)
}

.header-area .main-header-area .main-menu .main-menu-item .main-menu-link.active::before {
  opacity: 1;
  transform: scaleX(1)
}

.header-area .main-header-area .main-menu .main-menu-item .main-menu-link:hover {
  color: #fff
}

.header-area .main-header-area .main-menu ul li:hover>a::before {
  opacity: 1;
  transform: scaleX(1)
}

.header-area .main-header-area .main-menu ul li:first-child a {
  padding-left: 0
}

.header-area .main-header-area.sticky {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99;
  transform: translateY(0);
  transition: transform 500ms ease, background 500ms ease;
  -webkit-transition: transform 500ms ease, background 500ms ease;
  box-shadow: 0px 3px 16px 0px rgba(0, 0, 0, 0.1);
  background: #2c3544;
}

@media (min-width: 768px) {
  .header-area .main-header-area .main-menu ul {
    display: flex;
    align-items: center;
    min-height: 75px;
  }
}

@media (max-width: 767px) {
  .header-area .main-header-area.sticky {
    background: transparent;
    box-shadow: unset;
  }

  .header-area .main-header-area.sticky .logo-img {
    display: none;
  }

  .header-bg {
    background: #2c3544;
    height: 110rem;
  }

  .header-bg .site-menu-toggle {
    background: unset;
    top: 5rem;
  }

  .header-bg .site-menu-toggle span {
    background: #fff;
  }
}

.header-area .main-header-area.sticky .main-menu ul {
  margin-bottom: 0;
}

.header-area .main-header-area .main-menu .sub-menu {
  display: block;
  position: absolute;
  list-style-type: none;
  width: 100%;
  height: 0;
  left: 0;
  top: 75px;
  z-index: 1;
}

.header-area .main-header-area .main-menu-item.is-open .sub-menu .sub-list {
  opacity: 1;
  visibility: visible;
}

.header-area .main-header-area .main-menu .sub-list {
  opacity: 0;
  visibility: hidden;
  background: rgba(255, 255, 255, .7);
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  height: calc(80px / 100 * 70);
  transition: all .5s ease;
}

.header-area .main-header-area .main-menu .sub-list li {
  margin-right: 60rem;
}

.header-area .main-header-area .main-menu .sub-menu a {
  color: #2c3544;
  font-size: calc(22px / 100 * 70);
  transition: color .3s ease;
}

.header-area .main-header-area .main-menu .sub-menu a:hover {
  color: #ad985f;
}

.header-area .main-header-area .site-navbar-item {
  position: relative;
  cursor: pointer;
}

.header-area .main-header-area .site-navbar-item a {
  font-weight: 700;
  font-size: 66rem;
}

.header-area .main-header-area .site-navbar-list li:not(:last-child) {
  margin-bottom: 20rem;
}

.header-area .main-header-area .site-navbar-accordion {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34rem;
  height: 34rem;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.header-area .main-header-area .site-navbar-accordion::before,
.header-area .main-header-area .site-navbar-accordion::after {
  content: "";
  position: absolute;
  background-color: #fff;
}

.header-area .main-header-area .site-navbar-accordion::before {
  height: 3rem;
  width: 100%;
}

.header-area .main-header-area .site-navbar-accordion::after {
  margin-left: 1rem;
  transform: rotate(180deg);
  width: 3rem;
  height: 100%;
  transition: transform .3s ease;
}

.header-area .main-header-area .site-navbar-list li.active .site-navbar-accordion::after {
  transform: rotate(90deg);
}

.header-area .main-header-area .site-navbar-sub {
  display: none;
}

.header-area .main-header-area .site-navbar-sub a {
  font-size: 38rem;
  transition: color .3s ease;
}

.header-area .main-header-area .site-navbar-sub a:hover {
  color: #ad985f;
}

.header-area .main-header-area .navbar-languages {
  margin-top: 50rem;
}

.header-area .main-header-area .navbar-languages a {
  font-size: 38rem;
  letter-spacing: .02em;
  font-weight: 300;
  line-height: 1;
}

.header-area .main-header-area .navbar-languages li {
  display: inline-block;
  position: relative;
  padding-right: 20rem;
}

.header-area .main-header-area .navbar-languages li:last-child::after {
  display: none;
}

.header-area .main-header-area .navbar-languages li::after {
  content: "";
  position: absolute;
  right: 0;
  width: 2rem;
  top: 8rem;
  bottom: 8rem;
  background-color: #fff;
  margin-right: 7rem;
}

.header-area .main-header-area .navbar-languages a.active {
  font-weight: 700;
  pointer-events: none;
}

.stay-block .stay-inner {
  background-color: #2c3544;
}

.stay-block .stay-title {
  color: #fff;
  font-weight: 700;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  line-height: calc(199.95 / 120);
  position: relative;
}

.stay-block .stay-content {
  color: white;
}

.stay-block .stay_flex_col {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 5px;
}

.stay-block .stay-content .content-small {
  letter-spacing: .06em;
  font-weight: 400;
}

.stay-block .stay-content .content-large {
  font-weight: 500;
}

@media (min-width: 768px) {
  .stay-block {
    display: flex;
    align-items: stretch;
  }

  .stay-block .stay-item {
    flex: 1;
    height: auto;
    position: relative;
    background-color: #2c3544;
    padding-bottom: calc(160px / 100 * 70);
  }

  .stay-block .stay-item:first-child::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: #fff;
  }

  .stay-block .container {
    padding: 0;
  }

  .stay-block .stay-inner {
    padding: 35px calc(70px / 100 * 70);
  }

  .stay-block .stay-title {
    margin-bottom: calc(40px / 100 * 70);
    font-size: calc(80px / 100 * 70);
    margin-top: calc(-52px / 100 * 70);
    line-height: 1.1;
  }

  .stay-block .stay-content p:last-child {
    margin-bottom: 0;
  }

  .stay-block .stay-content .content-large {
    font-size: calc(22px / 100 * 70);
    line-height: calc(30 / 18);
  }

  .stay-block .stay-content .content-small {
    font-size: calc(24px / 100 * 70);
    line-height: calc(30 / 16);
    margin-bottom: calc(32px / 100 * 70);
  }

  .stay-block .stay-details {
    position: absolute;
    bottom: 38px;
    left: 50%;
    transform: translateX(-50%);
  }

  .stay-block .bgbanner-parallax {
    height: calc(650px / 100 * 70);
  }

  .stay-block .bgbanner-parallax .parallax-img img {
    transform: translateY(-230px);
    height: 650px;
  }

  .stay-block .next-btn {
    margin: 0 auto;
  }
}

@media (max-width: 767px) {
  .stay-block {
    padding: 100rem 0 90rem;
  }

  .stay-block .bgbanner-parallax {
    height: 650rem;
  }

  .stay-block .stay-inner {
    padding-bottom: 80rem;
  }

  .stay-block .stay_flex_col {
    flex-direction: column-reverse;
  }

  .stay-block .stay_flex_col .row {
    margin: 0;
  }

  .stay-block .stay-content p {
    font-size: 24rem;
    width: 100%;
    margin-bottom: 50rem;
  }

  .stay-block .stay-content .content-small {
    line-height: calc(40.01 / 24);
  }

  .stay-block .stay-content .content-large {
    line-height: calc(36.01 / 24);
    margin-bottom: 70rem;
  }

  .stay-block .stay-title {
    font-size: 100rem;
    line-height: 1.3;
    margin-top: -73rem;
    margin-bottom: 40rem;
  }

  .stay-block .bgbanner-parallax .parallax-img img {
    transform: translateY(-150rem);
  }

  .stay-block .next-btn a {
    padding-right: 26rem;
  }

  .stay-block .stay-item:not(:last-child) {
    margin-bottom: 50rem;
  }

  .stay-block .stay-item:first-child .bgbanner-parallax .parallax-img img {
    transform: translateY(-100rem);
  }
}

.bar-block .bar-bgbanner {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
}

.bar-block .bar-inner {
  position: sticky;
  z-index: 1;
  top: 100px;
}

.bar-block .bar-inner::after {
  content: "";
  background-color: #f2f2f2;
  position: absolute;
  z-index: -1;
}

.bar-block .content {
  color: #2a2a2a;
}

.bar-block .content-heading {
  font-weight: 700;
  color: #2c3544;
  margin-bottom: 15px;
}

.bar-block .heading-small {
  display: inline-block;
}

.bar-block p {
  color: #2a2a2a;
  font-weight: 500;
}

@media (min-width: 768px) {
  .bar-block .container {
    align-items: flex-start;
  }

  .bar-block {
    padding: calc(130px / 100 * 70) 0 calc(80px / 100 * 70);
  }

  .bar-block .bar-bgbanner {
    max-width: calc(1000px / 100 * 70);
    height: calc(600px / 100 * 70);
    flex-shrink: 0;
    margin-bottom: calc(140px / 100 * 70);
  }

  .bar-block .bgbanner-parallax .parallax-img img {
    transform: translateY(-175px);
  }

  .bar-block .container {
    max-width: calc(1700px / 100 * 70);
  }

  .bar-block .bar-inner {
    margin-top: calc(90px / 100 * 70);
    min-height: calc(600px / 100 * 70);
    background-color: #f2f2f2;
    margin-right: 3rem;
    padding: 0 calc(60px / 100 * 70) calc(40px / 100 * 70) calc(70px / 100 * 70);
  }

  .bar-block .bar-inner::after {
    width: calc(330px / 100 * 70);
    left: calc(-320px / 100 * 70);
    top: 0;
    height: 100%;
  }

  .bar-block .heading-large {
    font-size: calc(32px / 100 * 70);
    margin-bottom: calc(-10px / 100 * 70);
  }

  .bar-block .heading-small {
    font-size: calc(21px / 100 * 70);
  }

  .bar-block p {
    margin-bottom: calc(20px / 100 * 70);
  }

  .bar-block .content-japanese {
    font-size: calc(24px / 100 * 70);
    line-height: calc(30 / 16);
  }

  .bar-block .content-english {
    font-size: calc(22px / 100 * 70);
    line-height: calc(30 / 18);
    margin-bottom: calc(80px / 100 * 70);
  }

  .bar-block .title-common {
    margin-top: calc(-52px / 100 * 70);
  }
}

@media (max-width: 1414px) {
  .bar-block .bar-bgbanner {
    flex-shrink: unset;
  }
}

@media (max-width: 767px) {
  .bar-block {
    padding-bottom: 100rem;
  }

  .bar-block .container {
    padding: 0;
  }

  .bar-block .bar-inner {
    padding: 0 60rem;
    margin-top: 90rem;
    min-height: 622rem;
  }

  .bar-block .bar-inner::after {
    top: 52rem;
    right: 0;
    left: 223rem;
    bottom: 134rem;
  }

  .bar-block .heading-large {
    font-size: 50rem;
    letter-spacing: .08em;
  }

  .bar-block .heading-small {
    font-size: 28rem;
  }

  .bar-block .content-heading {
    margin-bottom: 40rem;
  }

  .bar-block p {
    margin-bottom: 40rem;
    font-size: 24rem;
    line-height: calc(44 / 24);
  }

  .bar-block .view_more {
    margin-top: 150rem;
  }

  .bar-block .bar-bgbanner {
    height: 800rem;
  }

  .bar-block .bar-bgbanner img {
    width: 100%;
  }

  .bar-block .bgbanner-parallax .parallax-img img {
    transform: translateY(-240rem);
  }
}

.news-block {
  position: relative;
}

.news-block .type {
  background-color: #7c7c7a;
  color: white;
  font-weight: 500;
  display: inline-block;
  text-align: center;
  padding: 1px 12rem;
  transition: opacity .3s ease;
}

.news-block .type:hover {
  opacity: .7;
}

.news-block .date {
  color: #7c7c7a;
  font-weight: 700;
}

.news-block .content {
  font-weight: 500;
}

.news-block .content .content-link {
  color: #131313;
  margin-bottom: 10px;
  transition: opacity .3s ease;
  display: block;
}

.news-block .content .content-link:hover {
  opacity: .7;
}

.news-block .news_content {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  border-bottom: 1px solid #7c7c7a;
}

.news-block .view_more {
  margin-top: 70rem;
}

.news-block .row {
  display: block;
}

@media (min-width: 768px) {
  .news-block {
    padding: calc(70px / 100 * 70) 0 calc(100px / 100 * 70);
  }

  .news-block .content {
    padding-left: calc(30px / 100 * 70);
  }

  .news-block .content .content-link {
    font-size: calc(22px / 100 * 70);
    line-height: calc(28.8 / 18);
  }

  .news-block .type {
    min-width: calc(68px / 100 * 70);
    font-size: calc(15px / 100 * 70);
    line-height: 1.45;
  }

  .news-block .date {
    font-size: calc(20px / 100 * 70);
    line-height: calc(30 / 20);
    padding-left: calc(30px / 100 * 70);
  }

  .news-block .view_more .next-btn {
    margin: 0 auto;
  }

  .news-block .news_content {
    padding: calc(40px / 100 * 70) 0;
  }
}

@media (max-width: 767px) {
  .news-block {
    padding-top: 80rem;
  }

  .news-block .title-common {
    padding-bottom: 0;
  }

  .news-block .row {
    margin: 0;
  }

  .news-block .content {
    padding-left: 30rem;
  }

  .news-block .content .content-link {
    font-size: 24rem;
    line-height: calc(36 / 24);
    margin-bottom: 10rem;
  }

  .news-block .type {
    min-width: 85rem;
    font-size: 22rem;
    padding-bottom: 4rem;
    line-height: 1.3;
  }

  .news-block .date {
    font-size: 26rem;
    line-height: calc(30 / 26);
  }

  .news-block .news_content {
    padding: 35rem 0;
  }
}

.access-block .access-content {
  background-color: #e6e6e6;
}

.access-block .access-contact-details {
  width: 100%;
  text-align: center;
}

.access-block .access-contact-details h1 {
  font-weight: 700;
  color: #2c3544;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
}

.access-block .access-contact-details .details-info,
.access-block .access-contact-details .details-info a {
  color: #2a2a2a;
}

.access-block .access-contact-details .details-info a:hover {
  text-decoration: underline;
}

.access-block .access-by {
  font-weight: 700;
}

.access-block .access-by::before {
  color: gray;
  margin-right: 10rem;
}

.access-block .access-details {
  letter-spacing: .06em;
  font-weight: 400;
  color: #131313;
  text-align: left;
  background-color: #fff;
  height: 100%;
}

.access-block .access-details .bold {
  font-weight: 700;
  display: block;
}

.access-block .access-details .link {
  color: #0021c7;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.access-block .access-details .link:hover {
  text-decoration: none;
}

.access-block .detail-list-airport {
  list-style-type: none;
  padding-left: 0;
}

.access-block .next-btn a {
  color: #616160;
}

.access-block .bgbanner-map iframe {
  width: 100%;
  height: 100%;
}

.access-block .details-list {
  margin-bottom: 0;
}

.access-block .access-contact-details .details-info address {
  margin-bottom: 0;
}

.access-block .detail-list-airport li:last-child::after {
  display: none;
}

@media (min-width: 768px) {
  .access-block {
    padding-top: calc(80px / 100 * 70);
  }

  .access-block .access-details {
    font-size: calc(20px / 100 * 70);
    padding: calc(40px / 100 * 70) calc(32px / 100 * 70) calc(50px / 100 * 70);
  }

  .access-block .access-content {
    padding: calc(60px / 100 * 70) 0 calc(120px / 100 * 70);
  }

  .access-block .detail-list-airport li:not(:first-child)::before {
    content: "↓ " attr(data-line);
    display: block;
  }

  .access-block .access-details .bold {
    font-size: calc(20px / 100 * 70);
    line-height: calc(30 / 20);
  }

  .access-block .access-by {
    font-size: calc(26px / 100 * 70);
    line-height: calc(38 / 26);
    margin-bottom: calc(28px / 100 * 70);
  }

  .access-block .access-details .note {
    font-size: calc(14px / 100 * 70);
  }

  .access-block .access-bgbanner {
    display: flex;
    height: calc(600px / 100 * 70);
  }

  .access-block .bgbanner-image,
  .access-block .bgbanner-map {
    width: 50%;
  }

  .access-block .bgbanner-parallax .parallax-img img {
    height: 600px;
    transform: translateY(-320px);
  }

  .access-block .access-contact-details h1 {
    font-size: calc(28px / 100 * 70);
    line-height: calc(30 / 28);
    margin-bottom: calc(15px / 100 * 70);
  }

  .access-block .access-contact-details .details-info {
    font-size: calc(20px / 100 * 70);
    line-height: calc(30 / 16);
    margin-bottom: calc(30px / 100 * 70);
  }

  .access-block .detail-list-airport {
    margin-bottom: calc(30px / 100 * 70);
  }

  .access-block .access-contact-details .details-info address {
    display: inline-block;
    margin-right: calc(40px / 100 * 70);
  }

  .access-block .title-common {
    max-width: 1330px;
    margin: 0 auto calc(60px / 100 * 70);
    width: calc(100% - calc(60px / 100 * 70));
  }

  .access-block .access_flex_col {
    flex-direction: row;
  }

  .access-block .box {
    padding: 0 calc(5px / 100 * 70);
  }

  .access-block .access-details .link {
    margin-left: calc(20px / 100 * 70);
  }

  .access-block .detail-list-airport {
    margin-bottom: calc(20px / 100 * 70);
  }

  .access-block .container {
    max-width: calc(1300px / 100 * 70);
  }

  .access-block .details-list li {
    margin-bottom: calc(7px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .access-block {
    padding-top: 60rem;
  }

  .access-block .access_flex_col {
    flex-direction: column;
    gap: 30rem;
  }

  .access-block .access-details {
    font-size: 22rem;
    line-height: calc(50 / 22);
    padding: 40rem 32rem 50rem;
  }

  .access-block .access-details .bold {
    font-size: 30rem;
    line-height: calc(46 / 30);
  }

  .access-block .detail-list-airport li {
    display: inline;
  }

  .access-block .detail-list-airport li::after {
    content: "→";
  }

  .access-block .detail-list-airport li:first-child::after {
    display: none;
  }

  .access-block .access-by {
    font-size: 36rem;
    line-height: calc(38.27 / 36);
    margin-bottom: 30rem;
  }

  .access-block .bgbanner-image,
  .access-block .bgbanner-map {
    height: 600rem;
  }

  .access-block .access-contact-details h1 {
    font-size: 42rem;
    line-height: calc(42 / 30);
    margin-bottom: 20rem;
  }

  .access-block .access-contact-details .details-info {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    font-size: 26rem;
    line-height: calc(36 / 26);
    margin-bottom: 50rem;
  }

  .access-block .title-common {
    margin: 0 65rem 50rem;
  }

  .access-block .access-content {
    padding: 70rem 0 120rem;
  }

  .access-block .access-details .link {
    padding-left: 30rem;
  }

  .access-block .details-list li:not(:last-child) {
    margin-bottom: 10rem;
  }

  .access-block .access-details .note {
    margin-top: 20rem;
    margin-bottom: 10rem;
    line-height: 1.5;
  }

  .access-block .bgbanner-parallax .parallax-img img {
    transform: translateY(-560rem);
  }
}

.next-btn {
  display: block;
  border: 1px solid #616160;
  position: relative;
}

.next-btn::after {
  content: "";
  position: absolute;
  background: url("../img/arrow_btn.png") no-repeat center 100% / 100%;
  top: 50%;
  transform: translateY(-50%);
  transition: all .3s ease;
}

.next-btn a {
  background-color: #fff;
  font-weight: 700;
  color: #2c3544;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  letter-spacing: .02em;
  transition: all .3s ease;
}

.map-btn span {
  position: absolute;
  right: 10rem;
  top: 50%;
  transform: translateY(-50%);
}

.map-btn::after {
  display: none;
}

@media (min-width: 768px) {
  .next-btn {
    width: calc(280px / 100 * 70);
    height: calc(62px / 100 * 70);
  }

  .next-btn a {
    font-size: calc(22px / 100 * 70);
    line-height: calc(20 / 16);
    text-align: center;
  }

  .next-btn::after {
    width: calc(31px / 100 * 70);
    height: calc(10px / 100 * 70);
    right: calc(20px / 100 * 70);
  }

  .next-btn:hover::after {
    transform: translate(calc(10px / 100 * 70), -50%);
  }

  .map-btn {
    max-width: calc(215px / 100 * 70);
    width: 100%;
    height: calc(52px / 100 * 70);
    margin: 0 auto;
  }
}

@media (max-width: 767px) {
  .next-btn {
    width: 322rem;
    height: 62rem;
    margin: 0 auto;
  }

  .next-btn::after {
    width: 31rem;
    height: 10rem;
    right: 16rem;
  }

  .next-btn:hover::after {
    transform: translate(10rem, -50%);
  }

  .next-btn a {
    font-size: 26rem;
  }

  .map-btn {
    width: 215rem;
    height: 52rem;
    margin: 0 auto;
  }

  .map-btn span {
    margin-top: 1px;
  }
}

.gray_retangle {
  /*  display: inline-block;*/
  width: 200px;
  background-color: gray;
  align-content: center;
}

.title-common {
  position: relative;
  color: #2c3544;
  font-weight: 700;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  /*padding-bottom: 20rem; */
  line-height: 1.5;
}

.title-common.has-underline::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1px;
  background-color: #2c3544;
}

@media (min-width: 768px) {
  .title-common {
    font-size: calc(66px / 100 * 70);
  }

  .title-common.has-underline::before {
    width: calc(70px / 100 * 70);
  }

  ;
}

@media (max-width: 767px) {
  .title-common {
    font-size: 70rem;
  }

  .title-common.has-underline::before {
    width: 70rem;
  }
}

.modal {
  display: none;
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  /* iPhone Safari対応 */
  height: 100vh;
  height: 100dvh;
  height: calc(var(--vh, 1vh) * 100);
  /* iPhone Safariでの表示を確実にする */
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
}

.modal .popup-light-box {
  width: 100%;
  height: 100%;
}

.modal .modal-cell {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 100%;
  transform: translate(-50%, -50%);
}

.modal .modal-window {
  max-width: 1000px;
  margin: auto;
  overflow-y: auto;
}

.modal .modal-window::-webkit-scrollbar {
  width: 10px;
}

.modal .modal-window::-webkit-scrollbar-track {
  background: #f1f1f1;
}

.modal .modal-window::-webkit-scrollbar-thumb {
  background: #888;
}

.modal .modal-head {
  position: relative;
  height: 40px;
}

.modal .modal-close {
  position: absolute;
  cursor: pointer;
  z-index: 1001;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  /* iPhone Safari対応 */
  position: fixed !important;
  top: env(safe-area-inset-top, 20px) !important;
  right: env(safe-area-inset-right, 20px) !important;
  z-index: 10001 !important;
}

.modal .modal-close img {
  display: block;
  width: 100%;
}

.modal .modal-title {
  color: #fff;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 700;
  letter-spacing: .02em;
}

.modal .modal-form .form-row {
  margin: 0;
  flex-direction: column;
}

.modal .modal-form label {
  color: #fff;
  font-weight: 700;
  letter-spacing: .02em;
  display: block;
}

.modal .modal-form input,
.modal .modal-form select {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 500;
  padding: 0 10px;
  border-radius: 5px;
  width: 100%;
  border: 0;
}

.modal .modal-block {
  position: relative;
}

.modal .modal-wrapper .modal-block:not(:last-child)::after {
  content: "";
  position: absolute;
  background-color: #fff;
}

@media (min-width: 768px) {
  .modal .modal-form .form-row {
    width: 50%;
    padding: 0 5px;
  }

  .modal .modal-window {
    width: 100%;
    max-height: 70vh;
  }

  .modal .modal-form .form-content {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: calc(100px / 100 * 70);
  }

  .modal .modal-form label {
    font-size: calc(20px / 100 * 70);
    margin-bottom: calc(20px / 100 * 70);
  }

  .modal .modal-form input,
  .modal .modal-form select {
    height: calc(46px / 100 * 70);
    font-size: calc(20px / 100 * 70);
    margin-bottom: calc(20px / 100 * 70);
  }

  .modal .modal-block {
    width: 50%;
    margin: 0 auto;
    padding: 0 75rem;
  }

  .modal .modal-title {
    margin-bottom: calc(50px / 100 * 70);
    font-size: calc(36px / 100 * 70);
  }

  .modal .modal-wrapper {
    display: flex;
    flex-wrap: wrap;
  }

  .modal .modal-wrapper .modal-block:not(:last-child)::after {
    right: 0;
    top: 0;
    width: 1px;
    height: 100%;
  }

  .modal .modal-close {
    top: max(20px, env(safe-area-inset-top, 20px)) !important;
    right: max(20px, env(safe-area-inset-right, 20px)) !important;
    width: 40px;
    height: 40px;
    position: fixed !important;
    z-index: 10001 !important;
  }

  .modal .modal-head {
    margin-bottom: 20px;
  }

  .modal .modal-inner {
    height: 100%;
  }

  .modal .form-submit {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0 75rem;
  }
}

@media (max-width: 767px) {
  .modal .modal-window {
    width: 100%;
    max-height: 100vh;
    padding: 40rem 0;
  }

  .modal .modal-form .form-row {
    margin-bottom: 30rem;
  }

  .modal .modal-form .form-content {
    margin-bottom: 50rem;
  }

  .modal .modal-form input,
  .modal .modal-form select {
    height: 80rem;
    font-size: 28rem;
    margin-bottom: 20rem;
  }

  .modal .modal-form label {
    font-size: 32rem;
  }

  .modal .modal-title {
    margin-bottom: 20rem;
    font-size: 40rem;
  }

  .modal .modal-wrapper {
    width: 500rem;
    margin: 0 auto;
  }

  .modal .modal-wrapper .modal-block {
    padding-bottom: 80rem;
    margin-bottom: 50rem;
  }

  .modal .modal-wrapper .modal-block:first-child::after {
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
  }

  .modal .modal-close {
    top: max(20px, env(safe-area-inset-top, 20px)) !important;
    right: max(20px, env(safe-area-inset-right, 20px)) !important;
    width: 40px;
    height: 40px;
    position: fixed !important;
    z-index: 10001 !important;
  }

  .modal .modal-head {
    margin-bottom: 30rem;
  }
}

.btn-submit {
  background-color: #2c3544;
  color: #fff;
  font-weight: 700;
  letter-spacing: .02em;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .3s ease;
  position: relative;
  width: 100%;
}

.btn-submit:hover {
  background-color: #fff;
  color: #2c3544;
}

.btn-submit.is-reverse {
  background-color: #fff;
  color: #2c3544;
}

.btn-submit.is-reverse:hover {
  background-color: #2c3544;
  color: #fff;
}

.btn-submit .fa-external-link {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

@media (min-width: 768px) {
  .btn-submit {
    font-size: calc(20px / 100 * 70);
    height: calc(60px / 100 * 70);
    padding-bottom: calc(3px / 100 * 70);
  }

  .btn-submit .fa-external-link {
    right: calc(15px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .btn-submit {
    font-size: 22rem;
    line-height: 1.4;
    height: 80rem;
  }

  .btn-submit .fa-external-link {
    right: 8rem;
  }
}

.experience-block {
  background-color: #e6e6e6;
}

.experience-block img {
  width: 100%;
  object-fit: cover;
}

.experience-block .experience-title,
.experience-block .experience-subtitle {
  color: #2c3544;
  font-weight: 700;
}

.experience-block .experience-subtitle {
  position: relative;
  display: flex;
  align-items: center;
}

.experience-block .experience-subtitle::after {
  content: "";
  display: inline-block;
  height: 1px;
  width: 100%;
  background-color: #2c3544;
}

.experience-block .experience-subtitle span {
  flex-shrink: 0;
}

.experience-block .letroUgcsetContainer[data-letro-template="1"] .letroUgcsetWrapper .letroUgcsetMoreButton a {
  background-color: #fff;
}

.experience-block .letroUgcsetContainer[data-contents=letro-ugcset] .letroUgcsetWrapper .letroUgcsetDisclaimer {
  display: none !important;
}

.experience-block .exc {
  position: absolute;
}

.experience-block .experience-detail {
  position: relative;
}

@media (min-width: 768px) {
  .experience-block {
    padding: calc(80px / 100 * 70) 0 calc(60px / 100 * 70);
  }

  .experience-block .container {
    max-width: 1330px;
  }

  .experience-block .experience-inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 60rem;
  }

  .experience-block .experience-title {
    font-size: calc(50px / 100 * 70);
    margin-bottom: calc(20px / 100 * 70);
  }

  .experience-block .experience-subtitle {
    font-size: calc(26px / 100 * 70);
    margin-bottom: 15px;
  }

  .experience-block .experience-subtitle span {
    margin-right: calc(12px / 100 * 70);
  }

  .experience-block .experience-voice,
  .experience-block .experience-detail {
    flex: 1;
    padding-top: calc(30px / 100 * 70);
  }

  .experience-block .letro-review-header {
    padding-top: 0 !important;
  }

  .experience-block .experience-voice {
    max-width: 905px;
    position: sticky;
    top: 30rem;
    padding-bottom: 60rem;
  }

  .experience-block .experience-detail {
    max-width: 995px;
  }

  .experience-block .exc {
    bottom: 63px;
  }
}

@media (max-width: 767px) {
  .experience-block {
    padding: 80rem 0;
  }

  .experience-block .experience-title {
    font-size: 70rem;
    margin-bottom: 20rem;
  }

  .experience-block .experience-subtitle {
    font-size: 32rem;
    margin-bottom: 30rem;
  }

  .experience-block .experience-subtitle::after {
    margin-top: 6rem;
  }

  .experience-block .experience-subtitle span {
    margin-right: 15rem;
  }

  .experience-block .experience-voice {
    margin-bottom: 100rem;
  }

  .experience-block .letroUgcsetContainer[data-letro-template="1"] .letroUgcsetWrapper .letroUgcsetMoreButton a {
    padding: 10rem 30rem !important;
  }

  .experience-block .exc {
    bottom: 41em;
  }
}

.banner-fixed {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #2c3544;
  cursor: pointer;
  transition: opacity .3s ease;
  opacity: 0;
  visibility: hidden;
  transition: all .3s ease;
}

.banner-fixed.show {
  opacity: 1;
  visibility: visible;
  border-top: 1px solid #fff;
  border-left: 2px solid #fff;
  border-right: 2px solid #fff;
}

@keyframes shadowExpand {
  0% {
    box-shadow: 0px 0px 30px rgba(44, 53, 68, 0.3);
  }

  50% {
    box-shadow: 0px 0px 50px rgba(44, 53, 68, 0.5);
  }

  100% {
    box-shadow: 0px 0px 70px rgba(44, 53, 68, 0.7);
  }
}

.banner-fixed .banner-text {
  transform: scale(1);
  transition: all .3s ease;
}

.banner-fixed:hover .banner-text {
  transform: scale(1.05);
}

.banner-fixed img {
  width: 70%;
  height: 70%;
  display: block;
  object-fit: cover;
}

@media (min-width: 768px) {
  .banner-fixed {
    height: calc(90px / 100 * 70);
    border-radius: 30px 30px 0 0;
  }

  .banner-fixed .banner-text {
    max-width: calc(271px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .banner-fixed {
    height: 100rem;
    border-radius: 30rem 30rem 0 0;
  }

  .banner-fixed .banner-text {
    width: 271rem;
    height: 37rem;
  }

  .banner-fixed img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
  }
}

.bgbanner-parallax {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.bgbanner-parallax .parallax-img {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}

@media (min-width: 768px) {
  .bgbanner-parallax .parallax-img img {
    transform: translateY(0);
    height: 100%;
    object-fit: cover;
    width: 100%;
  }
}

@media (max-width: 767px) {
  .bgbanner-parallax .parallax-img img {
    height: 100%;
    object-fit: cover;
  }
}

@media (min-width: 768px) {
  .wrapper {
    max-width: calc(1300px / 100 * 70);
    width: calc(100% - calc(60px / 100 * 70));
    margin: 0 auto;
  }
}

@media (max-width: 767px) {
  .wrapper {
    padding: 0 30rem;
  }
}

.keyvisual-common-primary .keyvisual-wrapper::after {
  content: "";
  position: absolute;
  background-color: #f2f2f2;
  z-index: -1;
}

.keyvisual-common-primary .keyvisual-image {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.keyvisual-common-primary .keyvisual-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.keyvisual-common-primary .keyvisual-title {
  color: #fff;
  font-weight: 700;
  letter-spacing: .02em;
  position: absolute;
  z-index: 2;
  text-shadow: 0 0 13px rgba(0, 0, 0, 0.4);
}

@media (min-width: 768px) {
  .keyvisual-common-primary {
    position: relative;
  }

  .keyvisual-common-primary .keyvisual-title {
    bottom: calc(34px / 100 * 70);
    right: calc(45px / 100 * 70);
    font-size: 50px;
  }

  .keyvisual-common-primary .keyvisual-wrapper {
    height: 77vh;
    width: calc(84% + 3px);
    position: relative;
  }

  .keyvisual-common-primary .keyvisual-wrapper::after {
    right: calc(-157px / 100 * 70);
    bottom: calc(-157px / 100 * 70);
    top: calc(170px / 100 * 70);
    left: calc(50% - calc(358px / 100 * 70));
  }
}

@media (max-width: 767px) {
  .keyvisual-common-primary .keyvisual-wrapper {
    position: relative;
    width: 100%;
    height: 700rem;
  }

  .keyvisual-common-primary .keyvisual-wrapper::after {
    left: 188rem;
    bottom: -106rem;
    right: 0;
    top: 0;
  }

  .keyvisual-common-primary .keyvisual-title {
    bottom: 40rem;
    right: 40rem;
    font-size: 110rem;
  }
}

.keyvisual-common-secondary .keyvisual-content {
  color: #2c3544;
  font-weight: 700;
}

.keyvisual-common-secondary .keyvisual-title {
  letter-spacing: .02em;
}

@media (min-width: 768px) {
  .keyvisual-common-secondary {
    padding-top: calc(140px / 100 * 70);
    display: flex;
    justify-content: center;
  }

  .keyvisual-common-secondary .keyvisual-content {
    margin-bottom: calc(60px / 100 * 70);
    padding: 0 calc(60px / 100 * 70) 0 45rem;
  }

  .keyvisual-common-secondary .keyvisual-title {
    font-size: 45px;
    line-height: 1.2;
    margin-bottom: calc(20px / 100 * 70);
  }

  .keyvisual-common-secondary .keyvisual-text {
    padding-left: calc(6px / 100 * 70);
    margin-bottom: calc(42px / 100 * 70);
    font-size: calc(32px / 100 * 70);
    line-height: calc(38.4 / 32);
  }

  .keyvisual-common-secondary .keyvisual-image {
    max-width: 60%;
    flex-shrink: 0;
  }

  .keyvisual-common-secondary .bgbanner-parallax {
    height: 650px;
  }

  .keyvisual-common-secondary .keyvisual-content {
    width: 40%;
    word-wrap: break-word;
    overflow-wrap: break-word;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .keyvisual-common-secondary .breadcrumb-common {
    padding-left: calc(6px / 100 * 70);
    padding-bottom: 0;
  }
}

@media (min-width: 768px) and (max-width: 1300px) {
  .keyvisual-common-secondary .keyvisual-content {
    padding-right: 10rem;
  }

  .keyvisual-common-secondary .keyvisual-title {
    font-size: calc(80px / 100 * 70);
  }
}

@media (min-width: 768px) and (max-width: 1054px) {
  .keyvisual-common-secondary .keyvisual-title {
    font-size: calc(58px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .keyvisual-common-secondary {
    padding-top: 151rem;
  }

  .keyvisual-common-secondary .keyvisual-title {
    font-size: 100rem;
    line-height: 1.1;
    margin-bottom: 20rem;
  }

  .keyvisual-common-secondary .keyvisual-title.is-small {
    font-size: 78rem;
  }

  .keyvisual-common-secondary .keyvisual-content {
    padding: 0 52rem 0 44rem;
  }

  .keyvisual-common-secondary .keyvisual-text {
    padding: 7rem;
    font-size: 32rem;
    line-height: calc(38.4 / 32);
  }

  .keyvisual-common-secondary .keyvisual-image {
    width: 700rem;
    margin-bottom: 10rem;
  }

  .keyvisual-common-secondary .bgbanner-parallax {
    height: 400rem;
  }

  .keyvisual-common-secondary .keyvisual-image img {
    width: 100%;
  }
}

.breadcrumb-common {
  position: relative;
}

.breadcrumb-common .breadcrumb-list {
  list-style-type: none;
  padding-left: 0;
  margin-bottom: 0;
}

.breadcrumb-common .breadcrumb-list li {
  display: inline;
}

.breadcrumb-common .breadcrumb-list li:not(:last-child)::after {
  content: "";
  background: url("../img/icon_arrow_01.png") no-repeat center 100% / 100%;
  display: inline-block;
  position: relative;
}

.breadcrumb-common .breadcrumb-list li,
.breadcrumb-common .breadcrumb-list a {
  color: #6e6e6e;
  font-weight: 400;
}

.breadcrumb-common .breadcrumb-list a {
  position: relative;
}

.breadcrumb-common .breadcrumb-list a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 100%;
  height: 1px;
  background-color: #6e6e6e;
  transition: all .3s ease;
}

.breadcrumb-common .breadcrumb-list a:hover::after {
  right: 0;
}

.breadcrumb-common-bottom {
  border-top: 1px solid #ccc;
}

@media (min-width: 768px) {
  .breadcrumb-common-top {
    padding: 0 0 calc(40px / 100 * 70);
  }

  .breadcrumb-common-bottom {
    padding: calc(35px / 100 * 70) 0;
  }

  .breadcrumb-common .breadcrumb-list li,
  .breadcrumb-common .breadcrumb-list a {
    font-size: calc(13px / 100 * 70);
    line-height: calc(30 / 13);
  }

  .breadcrumb-common .breadcrumb-list li:not(:last-child)::after {
    width: calc(5px / 100 * 70);
    height: calc(7px / 100 * 70);
    margin: 0 calc(10px / 100 * 70);
    top: calc(-2px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .breadcrumb-common-bottom {
    padding: 44rem 0;
  }

  .breadcrumb-common .breadcrumb-list li,
  .breadcrumb-common .breadcrumb-list a {
    font-size: 22rem;
    line-height: calc(30 / 22);
  }

  .breadcrumb-common .breadcrumb-list li:not(:last-child)::after {
    width: 8rem;
    height: 13rem;
    margin: 0 20rem;
    top: -2rem;
  }
}


.list-common-category {
  list-style-type: none;
  padding-left: 0;
  margin-bottom: 0;
}

.list-common-category li {
  display: inline-block;
}

.category-common {
  background-color: #7c7c7a;
  color: white;
  font-weight: 500;
  display: inline-block;
  text-align: center;
  padding: 1px 12rem;
  transition: opacity .3s ease;
}

.category-common:hover {
  opacity: .7;
  color: #fff;
}

@media (min-width: 768px) {
  .category-common {
    min-width: calc(62px / 100 * 70);
    font-size: calc(13px / 100 * 70);
    line-height: 1.385;
    margin-right: calc(2px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .category-common {
    min-width: 72rem;
    font-size: 22rem;
    line-height: 1.273;
    margin-right: 10rem;
    padding-top: 0;
    padding-bottom: 2rem;
  }
}

.button-common-primary {
  border: 1px solid #2c3544;
  font-weight: 700;
  letter-spacing: .02em;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #2c3544;
  background-color: #fff;
  position: relative;
  overflow: hidden;
  transition: all .5s ease;
  z-index: 1;
}

.button-common-primary::before,
.button-common-primary::after {
  content: "";
  display: inline-block;
  position: absolute;
}

.button-common-primary::before {
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: #2c3544;
  transform: translateX(-100%);
  transition: all .5s ease;
  z-index: -1;
}

.button-common-primary::after {
  top: 50%;
  transform: translateY(-50%);
  transition: all .6s ease;
}

.button-common-primary:hover {
  color: #fff;
}

.button-common-primary:hover::before {
  transform: translateX(0);
}

.button-common-primary:hover::after {
  filter: invert(1);
}

@media (min-width: 768px) {
  .button-common-primary {
    width: calc(280px / 100 * 70);
    min-height: calc(60px / 100 * 70);
    font-size: calc(20px / 100 * 70);
    padding: calc(13px / 100 * 70) calc(40px / 100 * 70) calc(14px / 100 * 70);
    margin: 0 auto;
  }

  .button-common-primary::after {
    right: calc(20px / 100 * 70);
    background: url(../img/icon_dropdown.png) no-repeat center 100% / 100%;
    width: calc(11px / 100 * 70);
    height: calc(7px / 100 * 70);
  }
}

@media (max-width: 767px) {
  .button-common-primary {
    width: 400rem;
    min-height: 80rem;
    font-size: 26rem;
    padding: 14rem 50rem 15rem;
    margin: 0 auto;
  }

  .button-common-primary::after {
    background: url(../img/icon_dropdown.png) no-repeat center 100% / 100%;
    width: 19rem;
    height: 11rem;
    right: 20rem;
  }
}

.title-common-secondary {
  font-weight: 700;
  color: #2c3544;
  text-align: center;
  position: relative;
}

.title-common-secondary span {
  display: block;
}

.title-common-secondary::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  background-color: #2c3544;
}

.title-common-secondary .title-japanese {
  font-weight: 500;
}

@media (min-width: 768px) {
  .title-common-secondary {
    padding-bottom: 20px;
  }

  .title-common-secondary::after {
    width: calc(70px / 100 * 70);
    height: 2px;
  }
  .title-common-secondary .title-english  {
    font-size: calc(74px / 100 * 70);
    margin-bottom: 10px;
  }

  .title-common-secondary .title-japanese {
    font-size: 12px;
  }
}

@media (max-width: 767px) {
  .title-common-secondary {
    padding-bottom: 20rem;
  }

  .title-common-secondary::after {
    height: 4rem;
    width: 80rem;
  }

  .title-common-secondary .title-english {
    font-size: 70rem;
    margin-bottom: 15rem;
  }

  .title-common-secondary .title-japanese {
    font-size: 30rem;
  }
}

.image-common {
  width: 100%;
  display: block;
}

.concept-block .wrapper {
  border: 1px solid #2c3544;
  color: #2c3544;
  text-align: center;
}

.concept-block h2 {
  font-weight: 700;
}

.concept-block {
  font-weight: 500;
}

@media (min-width: 768px) {
  .concept-block {
    padding: 80px 0 20px;
  }

  .concept-block h2 {
    font-size: 30px;
    color: #2c3544;
    margin-bottom: 15px;
  }

  .concept-block p {
    font-size: 14px;
  }

  .concept-block .wrapper {
    padding: 30px;
  }
}

@media (max-width: 767px)  {
  .concept-block {
    padding: 120rem 55rem 0;
  }

  .concept-block h2 {
    font-size: 40rem;
    color: #2c3544;
    margin-bottom: 30rem;
  }

  .concept-block p {
    font-size: 24rem;
  }

  .concept-block .wrapper {
    padding: 60rem;
  }
}

/* ページネーション */
.Pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 40px;
}

.Pagination > * + * {
  margin-left: 12px;
}

.Pagination-Item-Link {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  width: 35px;
  height: 35px;
  font-size: 20px;
  font-weight: bold;
  transition: all 0.15s linear;
  text-decoration: none;
  color: #111;
}

.Pagination-Item-Link-Icon {
  width: 20px;
  color: #111;
}

.Pagination-Item-Link.isActive,
.Pagination-Item-Link.current {
  pointer-events: none;
  background: #111;
  color: #fff;
}

.Pagination-Item-Link:not(.isActive):hover {
  background: #111;
  color: #fff;
}

/* WordPressのページネーションリストスタイルのリセット */
.page-numbers {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}

.page-numbers li {
  margin: 0;
  padding: 0;
}

.page-numbers .page-numbers {
  text-decoration: none;
}

.page-numbers .current {
  background: #111;
  color: #fff;
}

.page-numbers.current .Pagination-Item-Link {
  color: #fff !important;
}

.video-control-btn {
  position: absolute;
  bottom: 70px;
  right: 20px;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 10;
  padding: 0;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.video-control-btn::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 12px 0 12px 18px;
  border-color: transparent transparent transparent #666;
}

.video-control-btn.paused::before {
  width: 18px;
  height: 24px;
  border: none;
  background: #666;
  clip-path: none;
  display: flex;
  gap: 6px;
}

.video-control-btn.paused::before {
  content: "";
  width: 6px;
  height: 24px;
  background: #666;
  box-shadow: 12px 0 0 #666;
}

@media screen and (max-width: 768px) {
  .video-control-btn {
    width: 48px;
    height: 48px;
    bottom: 30px;
    right: 15px;
  }
  
  .video-control-btn::before {
    border-width: 9px 0 9px 14px;
  }
  
  .video-control-btn.paused::before {
    width: 4px;
    height: 18px;
    box-shadow: 9px 0 0 #666;
  }
}

/* iPhone Safari対応の追加スタイル */
@supports (-webkit-touch-callout: none) {
  .modal {
    height: -webkit-fill-available;
    min-height: -webkit-fill-available;
  }
  
  .modal .modal-close {
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 10001 !important;
    /* iPhone Safariでの表示を確実にする */
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000;
    perspective: 1000;
  }
}

/* モバイルSafari専用のスタイル */
@media screen and (-webkit-min-device-pixel-ratio: 0) and (max-width: 767px) {
  .modal .modal-close {
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 10001 !important;
    /* タッチ操作を最適化 */
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
}

/* iPhoneのSafariでより確実に表示されるように追加のスタイル */
@media screen and (max-width: 767px) {
  .modal .modal-close {
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 10001 !important;
    /* より確実な表示のための追加プロパティ */
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    /* iPhoneのノッチやホームインジケーターを考慮 */
    top: max(20px, env(safe-area-inset-top, 20px)) !important;
    right: max(20px, env(safe-area-inset-right, 20px)) !important;
  }
}

/* iPhone Safari専用の強力なスタイル */
@supports (-webkit-touch-callout: none) and (max-width: 767px) {
  .modal .modal-close {
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 10001 !important;
    /* iPhone Safariでの表示を確実にするための強力なプロパティ */
    -webkit-transform: translate3d(0, 0, 0) !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    -webkit-perspective: 1000 !important;
    perspective: 1000 !important;
    /* タッチ操作の最適化 */
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
    /* より確実な位置指定 */
    top: max(20px, env(safe-area-inset-top, 20px)) !important;
    right: max(20px, env(safe-area-inset-right, 20px)) !important;
    /* 表示を確実にする */
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* iPhone Safariでモーダルのクローズボタンを確実に表示するための最終的な修正 */
@media screen and (max-width: 767px) {
  .modal {
    /* iPhone Safariでのモーダル表示を確実にする */
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    height: -webkit-fill-available !important;
    z-index: 9999 !important;
    overflow: hidden !important;
  }
  
  .modal .modal-close {
    position: fixed !important;
    top: 40px !important;
    right: 20px !important;
    width: 60px !important;
    height: 60px !important;
    z-index: 10001 !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    /* iPhoneのノッチやホームインジケーターを考慮 */
    top: max(40px, env(safe-area-inset-top, 40px)) !important;
    right: max(20px, env(safe-area-inset-right, 20px)) !important;
    /* 表示を確実にする */
    -webkit-transform: translate3d(0, 0, 0) !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  
  .modal .modal-close img {
    width: 30px !important;
    height: 30px !important;
    display: block !important;
  }
}

/* iPhone Safari専用の最終的な修正 */
@supports (-webkit-touch-callout: none) {
  .modal .modal-close {
    position: fixed !important;
    top: 40px !important;
    right: 20px !important;
    width: 60px !important;
    height: 60px !important;
    z-index: 10001 !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    /* iPhoneのノッチやホームインジケーターを考慮 */
    top: max(40px, env(safe-area-inset-top, 40px)) !important;
    right: max(20px, env(safe-area-inset-right, 20px)) !important;
    /* 表示を確実にする */
    -webkit-transform: translate3d(0, 0, 0) !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
    /* タッチ操作の最適化 */
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
  }
  
  .modal .modal-close img {
    width: 30px !important;
    height: 30px !important;
    display: block !important;
  }
}
