/* Shared header, navigation and footer styles. */
.globalHeader img {
  height: auto;
  max-width: 100%;
}

.navOverlay-lock {
  width: auto;
}

.navOverlay-lock,
.navOverlay-lock body {
  overflow: hidden !important;
}

.globalNavOverlay__close {
  background-color: rgba(0, 0, 0, 0.7);
  display: block;
  height: auto;
  left: 0;
  opacity: 0;
  overflow: auto;
  position: fixed;
  right: 0;
  top: 0;
  transition-duration: 0.1s;
  transition-property: opacity;
  width: auto;
  z-index: 10;
}

.globalHeader {
  background-color: #fefef7;
  box-sizing: border-box;
  left: 0;
  position: relative;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 96;
}

.globalHeader__logo {
  display: inline-block;
  position: relative;
  text-align: center;
  transform: translateY(max(0.5714285714vw, 8px));
  width: max(21vw, 294px);
  z-index: 10;
}

.globalHeader__logo a {
  display: block;
  transition: opacity 0.25s ease-in-out;
}

.globalHeader__logo a:hover {
  opacity: 0.8;
}

@media only screen and (max-width: 767px) {
  .globalHeader__logo {
    margin: 0;
    max-width: 294px;
    transform: translateY(0);
    width: 42.1739%;
  }
}
.globalHeader__inner {
  align-items: center;
  background-color: #fff;
  box-sizing: border-box;
  clear: both;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  max-width: max(78.5714285714vw, 1100px);
  min-height: 80px;
  padding: max(1.4285714286vw, 20px) max(2.8571428571vw, 20px) max(1.4285714286vw, 20px) max(3.5714285714vw, min(4.5454545455vw, 50px));
  position: relative;
  z-index: 1;
}

@media only screen and (max-width: 767px) {
  .globalHeader__inner {
    box-sizing: border-box;
    min-height: 0;
    padding: 2.1333333333vw 4vw 2.5333333333vw;
  }
}
.globalHeader__btn {
  bottom: 0;
  display: flex;
  padding-right: max(3.5714285714vw, min(4.5454545455vw, 50px));
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

@media only screen and (max-width: 767px) {
  .globalHeader__btn {
    padding-right: 4vw;
  }
}
.globalHeader__btn__menu {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  display: flex;
  height: 100%;
  padding: 16px 0 0;
  position: relative;
  transition: background 0.4s ease-in-out;
  width: max(3.7857142857vw, 53px);
  z-index: 2;
}

.globalHeader__btn__menu small {
  color: #3550a7;
  font-family: Poppins, sans-serif;
  font-size: 15px;
  font-weight: 700;
  left: 50%;
  letter-spacing: 0.15em;
  line-height: 1;
  position: absolute;
  text-indent: 0.15em;
  top: 14px;
  transform: translateX(-50%);
  white-space: nowrap;
}

.globalHeader__btn__menu.is-show small {
  opacity: 0;
}

.globalHeader__inner {
  max-width: 1100px;
}

.globalHeader__logo {
  width: 294px;
}

.globalHeader__btn__menu span {
  background: #3550a7;
  height: 4px;
  position: relative;
  transition: background 0.28s ease-in-out, transform 0.28s ease-in-out;
  width: 100%;
}

.globalHeader__btn__menu span:after,
.globalHeader__btn__menu span:before {
  background: #3550a7;
  content: "";
  display: inline-block;
  height: 4px;
  left: 0;
  position: absolute;
  top: -12px;
  transition: background 0.4s ease-in-out, transform 0.28s ease-in-out;
  width: 100%;
}

.globalHeader__btn__menu span:after {
  top: 12px;
}

.globalHeader__btn__menu.is-show span {
  background: transparent;
  transform: translateX(100%);
}

.globalHeader__btn__menu.is-show span:before {
  top: 0;
  transform: translateX(-100%) rotate(45deg);
}

.globalHeader__btn__menu.is-show span:after {
  top: 0;
  transform: translateX(-100%) rotate(-45deg);
}

@media only screen and (max-width: 767px) {
  .globalHeader__btn__menu {
    max-width: 75px;
    padding: 0;
    width: 6.9333333333vw;
  }
  .globalHeader__btn__menu span {
    height: min(0.8vw, 4px);
  }
  .globalHeader__btn__menu span:after,
  .globalHeader__btn__menu span:before {
    height: min(0.8vw, 4px);
    top: -1.8666666667vw;
  }
  .globalHeader__btn__menu span:after {
    top: 1.8666666667vw;
  }
}
.globalHeader__menu {
  height: 100%;
  left: 0;
  opacity: 0;
  overflow-x: clip;
  overflow-y: scroll;
  pointer-events: none;
  position: fixed;
  right: -100vw;
  transition: visibility 0s 0.2s, top 0.4s cubic-bezier(0.77, 0, 0.175, 1), right 0.4s cubic-bezier(0.77, 0, 0.175, 1), opacity 0.18s ease-in-out;
  visibility: hidden;
}

.globalHeader__menu.is-show {
  opacity: 1;
  pointer-events: auto;
  right: 0;
  transition: top 0.45s cubic-bezier(0.77, 0, 0.175, 1), right 0.45s cubic-bezier(0.77, 0, 0.175, 1), opacity 0.04s ease-in-out 0.02s;
  visibility: visible;
}

.globalHeader__menu.is-show .globalNav:after,
.globalHeader__menu.is-show .globalNav:before {
  transform: translate(0);
  transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
  transition-delay: 0.08s;
}

.globalHeader__menu.is-show .globalNav .globalNav__items {
  opacity: 1;
  transition: opacity 0.4s ease-in-out 0.2s;
}

@media only screen and (max-width: 767px) {
  .globalHeader__menu {
    right: 0;
    top: -100vh;
  }
  .globalHeader__menu.is-show {
    top: 0;
  }
}
.globalNav {
  box-sizing: border-box;
  display: flex;
  flex-flow: column;
  margin: 0 0 0 auto;
  min-height: 100%;
  padding: min(5.4545454545vw, 60px) min(3.6363636364vw, 40px);
  position: relative;
  width: min(50vw, 550px);
}

.globalNav:before {
  background: #fff;
  content: "";
  height: 100%;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  transform: translateX(60%);
  transition: transform 0.25s cubic-bezier(0.77, 0, 0.175, 1);
  width: 200vw;
  z-index: -1;
}

@media only screen and (max-width: 767px) {
  .globalNav {
    min-height: 0;
    padding: calc(10.93333vw + 4px) 0 2px;
    width: auto;
  }
  .globalNav:before {
    transform: translateY(-60%);
  }
}
.globalHeader__menu__close {
  height: 30px;
  position: absolute;
  right: 24px;
  top: 25px;
  width: 30px;
}

.globalHeader__menu__close span {
  display: inline-block;
  height: 100%;
  position: relative;
  width: 100%;
}

.globalHeader__menu__close span:after,
.globalHeader__menu__close span:before {
  background: #000;
  content: "";
  display: inline-block;
  height: 2px;
  position: absolute;
  top: 50%;
  transform: rotate(45deg);
  transition: background 0.2s ease-in-out;
  width: 100%;
}

.globalHeader__menu__close span:after {
  transform: rotate(-45deg);
}

.globalHeader__menu__close:hover span:after,
.globalHeader__menu__close:hover span:before {
  background: #0068b7;
}

@media only screen and (max-width: 767px) {
  .globalHeader__menu__close {
    position: fixed;
    right: 5.3333333333%;
    top: 15px;
  }
}
.globalNav__items {
  align-items: center;
  border-top: 1px solid #c9c9c9;
  display: flex;
  flex-wrap: wrap;
  flex-flow: column;
  justify-content: space-between;
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
}

.globalNav__items + .globalNav__items {
  margin-left: 0;
}

@media only screen and (max-width: 767px) {
  .globalNav__items {
    border-top: 1px solid #c9c9c9;
    flex-flow: column;
  }
}
.globalNav__item {
  border-bottom: 1px solid #c9c9c9;
  font-size: min(2vw, 22px);
  margin: 0;
  width: 100%;
}

.globalNav__item a {
  box-sizing: border-box;
  color: #1f1f1f;
  display: block;
  letter-spacing: 0.01em;
  line-height: 1;
  padding: 1.2em 2.5em 1.2em 0;
  position: relative;
  text-decoration: none;
  transition: color 0.25s ease-in-out;
}

.globalNav__item a span {
  background: linear-gradient(transparent calc(100% - 1px), #000 1px) no-repeat 0/0 100%;
  display: inline;
  transition: background 0.4s ease;
}

.globalNav__item a:active,
.globalNav__item a:hover {
  color: #22430c;
}

.globalNav__item a:active:before,
.globalNav__item a:hover:before {
  border-color: #22430c;
}

.globalNav__item a:active span,
.globalNav__item a:hover span {
  background-size: 100% 100%;
}

.globalNav__item.is-current a > span:after {
  opacity: 1;
  transform: scale(1);
}

@media only screen and (max-width: 767px) {
  .globalNav__item {
    border-bottom: 1px solid #c9c9c9;
    box-sizing: border-box;
    font-size: 4vw;
    padding: 0 4.6666666667%;
    width: 100%;
  }
  .globalNav__item a {
    padding: 1em 2.5em 1em 0;
  }
  .globalNav__item a:before {
    width: 1em;
  }
}
.globalNav__btn {
  margin: min(7.2727272727vw, 80px) auto min(3.6363636364vw, 40px);
}

@media only screen and (max-width: 767px) {
  .globalNav__btn {
    margin: 5.3333333333% auto 9.3333333333%;
  }
}
.globalFooter img {
  height: auto;
  max-width: 100%;
}

#float-pagetop {
  display: none !important;
}

.globalFooter {
  background: url(../img/footer_bg.webp) no-repeat 50%/cover;
  line-height: 1;
  padding: 7.5vw min(4.5454545455vw, 50px) 10vw;
  position: relative;
}

.contentsOther + .globalFooter {
  background: var(--color-A);
}

@media only screen and (max-width: 767px) {
  .globalFooter {
    padding: 14vw 4vw 24vw;
  }
}
.globalFooter__inner {
  color: #fff;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  max-width: max(72.8571428571vw, 1020px);
  position: relative;
}

@media only screen and (max-width: 767px) {
  .globalFooter__inner {
    display: block;
  }
}
.globalFooter__left__logo {
  display: table;
  margin-bottom: 1.7857142857vw;
  text-align: center;
  width: min(49.0909090909vw, 535px);
}

@media only screen and (max-width: 767px) {
  .globalFooter__left__logo {
    margin-bottom: 5.3333333333vw;
    width: 72vw;
  }
}
.globalFooter__left__adress {
  font-size: min(1.5384615455vw, 16px);
  font-weight: 700;
  line-height: 2.6;
}

.globalFooter__left__adress a {
  color: #fff;
  pointer-events: none;
  text-decoration: none;
}

@media only screen and (max-width: 767px) {
  .globalFooter__left__adress {
    font-size: 3.2vw;
    line-height: 2;
  }
}
.globalFooter__right {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-top: 2.5vw;
  text-align: right;
}

.globalFooter__right__btn + .globalFooter__right__btn {
  margin-top: 0;
}

.globalFooter__right__btn {
  width: min(39.0909090909vw, 430px);
}
@media only screen and (min-width: 768px) {
  .globalFooter__right__btn {
    font-size: min(2.5vw, 26px);
  }
}

.globalFooter__right__btn > a {
  overflow-wrap: anywhere;
  padding: 1.08em 4em 1.08em 2.5em;
  text-align: center;
  white-space: normal;
  width: 100%;
}

.globalFooter__right__btn > a > span {
  right: 1.5em;
}

.globalFooter {
  padding: min(7.5vw, 105px) min(4.5454545455vw, 50px) min(10vw, 140px);
}

.globalFooter__inner {
  width: min(92.7272727273vw, 1020px);
  max-width: 1020px;
}

@media only screen and (max-width: 767px) {
  .globalFooter__right {
    padding-top: 10vw;
  }
}
@media only screen and (max-width: 767px) {
  .globalFooter__right__btn {
    margin: 0 auto;
    text-align: center;
    width: min(84vw, 430px);
  }
}
.globalFooter__right__copy {
  font-size: min(1.3461538182vw, 14px);
  font-weight: 700;
}

.fixed-pagetop {
  align-items: center;
  background: #2a6ade;
  bottom: 0;
  color: #fff !important;
  display: flex;
  flex-direction: column;
  gap: 5px;
  height: 72px;
  justify-content: center;
  position: fixed;
  right: 0;
  width: 66px;
  z-index: 80;
}

.fixed-pagetop span {
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
}

.fixed-pagetop img {
  transform: rotate(0deg);
  transform-origin: center;
  will-change: transform;
}

@media only screen and (max-width: 767px) {
  .globalHeader__btn__menu {
    padding-top: 0.8vw;
  }
  .globalHeader__inner {
    max-width: none;
  }
  .globalHeader__logo {
    width: 42.1739%;
  }
  .globalHeader__btn__menu small {
    font-size: 2vw;
    top: 0.4vw;
  }
  .globalFooter__right {
    gap: 3vw;
  }
  .globalFooter {
    padding: 14vw 4vw 24vw;
  }
  .globalFooter__inner {
    width: auto;
  }
  .fixed-pagetop {
    gap: 1vw;
    height: 16vw;
    width: 15vw;
  }
  .fixed-pagetop span {
    font-size: 2vw;
  }
  .fixed-pagetop img {
    width: 9vw;
  }
}
@media only screen and (max-width: 767px) {
  .globalFooter__right__copy {
    font-size: 2.6666666667vw;
  }
}
