:root {
  --leading-trim: calc((1em - 1lh) / 2);
}

/* global navigation */
.el__humburger {
  display: none;
  position: relative;
  inset-inline-end: 0;
  inset-block-start: 0;
  inline-size: 3.375em;
  block-size: 3.375em;
  cursor: pointer;
  pointer-events: auto;
  transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1), transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inline-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), block-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), border-width 0.5s cubic-bezier(0.23, 1, 0.32, 1), border-radius 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-color 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-size 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-position 0.5s cubic-bezier(0.23, 1, 0.32, 1), color 0.5s cubic-bezier(0.23, 1, 0.32, 1), text-shadow 0.5s cubic-bezier(0.23, 1, 0.32, 1), filter 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
@media screen and (max-width: 767px) {
  .el__humburger {
    display: block;
  }
}
.el__humburger .el__humburger_bar {
  position: absolute;
  left: 0;
  right: 0;
  display: block;
  block-size: 0.2rem;
  margin: 0 1em 0 auto;
  border-radius: 0.2rem;
  background: #555757;
  transition: opacity 0.3s cubic-bezier(0, 0, 0.58, 1), transform 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transform-origin: center center;
}
.el__humburger .el__humburger_bar.top {
  inset-block-start: 1.25em;
  inline-size: 1.75em;
}
.el__humburger .el__humburger_bar.middle {
  inset-block-start: 1.625em;
  inline-size: 1.25em;
}
.el__humburger .el__humburger_bar.bottom {
  inset-block-start: 2.0625em;
  inline-size: 0.75em;
}

.js_humburgerOpen .el__humburger {
  display: block;
}
.js_humburgerOpen .el__humburger .el__humburger_bar.top {
  inline-size: 1.375em;
  transform: translateY(6px) rotate(-45deg);
}
.js_humburgerOpen .el__humburger .el__humburger_bar.middle {
  opacity: 0;
}
.js_humburgerOpen .el__humburger .el__humburger_bar.bottom {
  inline-size: 1.375em;
  transform: translateY(-7px) rotate(45deg);
}

.navi {
  transition: height 0.3s cubic-bezier(0.215, 0.61, 0.355, 1), block-size 0.3s cubic-bezier(0.215, 0.61, 0.355, 1), padding 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
}
@media screen and (max-width: 767px) {
  .navi {
    position: fixed;
    inset-inline-start: 0;
    inset-block-start: 0;
    inline-size: 100vw;
    block-size: 0;
    background: url(/common/img/bg__texture__marble.jpg) no-repeat left top/auto 100vh;
    overflow-y: hidden;
    z-index: -1;
    -webkit-overflow-scrolling: touch;
  }
}

.js_humburgerOpen .navi {
  position: fixed;
  inset-inline-start: 0;
  inset-block-start: 0;
  inline-size: 100vw;
  max-inline-size: none;
  block-size: 100vh;
  padding-block-start: 3.4375em;
  overflow-y: auto;
  z-index: -1;
  -webkit-overflow-scrolling: touch;
}
@media screen and (min-width: 768px) {
  .js_humburgerOpen .navi {
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
}

@media screen and (min-width: 768px) {
  .js_humburgerClose.scrolled .navi {
    -webkit-clip-path: inset(0 0 100% 0);
            clip-path: inset(0 0 100% 0);
  }
  .js_humburgerClose.scrolled .navi__main__list {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .navi__inner {
    inline-size: 100%;
    margin-top: 0;
    padding: 3.4375em 2.5em;
  }
}

@media screen and (min-width: 768px) {
  .js_humburgerOpen .navi__inner {
    inline-size: auto;
    margin-top: 0;
  }
}

.navi__main__list {
  display: block flex;
  justify-content: flex-end;
  gap: 2.5em;
}
@media screen and (min-width: 768px) and (max-width: 926px) {
  .navi__main__list {
    gap: 1.5em;
  }
}
@media screen and (max-width: 767px) {
  .navi__main__list {
    flex-direction: column;
  }
}
.navi__main__list a {
  padding-block: calc((3.75em - 1lh) / 2 - 0.25em) calc((3.75em - 1lh) / 2 + 0.25em);
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  .navi__main__list a {
    white-space: nowrap;
  }
  .navi__main__list a::after {
    content: "";
    display: block;
    position: absolute;
    inset: auto auto 0 0;
    inline-size: 100%;
    block-size: 0.1rem;
    background-color: #b4b4b4;
    inset-block-end: calc((3.75em - 1lh) / 2);
    transform: scaleX(0);
    transform-origin: right top;
  }
  .navi__main__list a.current::after {
    transform: scaleX(1);
    transform-origin: left top;
  }
}
@media screen and (hover) {
  .navi__main__list a:hover::after {
    transform: scaleX(1);
    transform-origin: left top;
  }
}
@media screen and (max-width: 767px) {
  .navi__main__list a {
    padding: 0;
    border-radius: 0;
    font-size: 112.5%;
  }
}

@media screen and (min-width: 768px) {
  .js_humburgerOpen .navi__main__list {
    flex-direction: column;
    align-items: center;
  }
  .js_humburgerOpen .navi__main__list a {
    padding: 0;
    border-radius: 0;
    background-color: transparent;
    color: #fff;
    font-size: 112.5%;
  }
  .js_humburgerOpen .navi__main__list a:hover {
    color: #907c2d;
  }
}

.navi__main__item {
  position: relative;
}
@media screen and (min-width: 768px) {
  .js_humburgerOpen .navi__main__list .navi__main__item:nth-child(n+2) {
    margin-top: 1em;
  }
  .js_humburgerOpen .navi__main__list .navi__main__item.navi__main__search {
    margin: 3em auto 0;
  }
}

.navi__sub__list {
  display: block flex;
  position: absolute;
  inset-inline-end: 0;
  inset-block-start: 0;
  gap: 2.5em;
  padding: 1.875em 1.25em;
  transition: padding 0.5s cubic-bezier(0.23, 1, 0.32, 1), height 0.5s cubic-bezier(0.23, 1, 0.32, 1), block-size 0.5s cubic-bezier(0.23, 1, 0.32, 1), max-block-size 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
@media screen and (max-width: 767px) {
  .navi__sub__list {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    position: fixed;
    inset-inline-end: 0;
    inset-block-start: auto;
    inset-block-end: -11.9375em;
    inline-size: 100%;
    padding: 0.5em;
    background: #f6f6f6;
    overflow: hidden;
    transition: inset-block-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-start 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  }
}
@media screen and (min-width: 768px) {
  .scrolled .navi__sub__list {
    padding-block: 0em;
  }
}
@media screen and (max-width: 767px) {
  .scrolled .navi__sub__list {
    inset-block-end: 0;
  }
}
@media screen and (max-width: 767px) {
  .js_humburgerOpen .navi__sub__list {
    inset-block-end: 0;
  }
}
@media screen and (hover) {
  .navi__sub__list .navi__sub__item:nth-child(2) a:hover {
    color: #18adb3;
  }
}
.navi__sub__list .navi__sub__item:nth-child(2) a::before {
  background-color: #18adb3;
}
.navi__sub__list .navi__sub__item a {
  display: block;
  position: relative;
  padding-block-end: calc((2.25em - 1lh) / 2);
  padding-inline: 1.5em 1em;
  font-weight: 500;
  text-align: center;
}
@media screen and (hover) {
  .navi__sub__list .navi__sub__item a:hover::before {
    transform: scale(1.25);
  }
}
@media screen and (max-width: 767px) {
  .navi__sub__list .navi__sub__item a {
    padding-inline: 1em;
    padding-block: calc((2.5em - 1lh) / 2);
    background-color: #fff;
    text-align: left;
  }
}
.navi__sub__list .navi__sub__item a::before {
  content: "";
  inline-size: 0.5em;
  block-size: 0.5em;
  border-radius: 50%;
  background-color: #3377b2;
  transition: opacity 0.2s cubic-bezier(0, 0, 0.58, 1), transform 0.2s cubic-bezier(0.455, 0.03, 0.515, 0.955);
}
@media screen and (min-width: 768px) {
  .navi__sub__list .navi__sub__item a::before {
    display: block;
    position: absolute;
    inset: calc(0.5lh - 0.25em) auto auto 0.25em;
  }
}
@media screen and (max-width: 767px) {
  .navi__sub__list .navi__sub__item a::before {
    display: inline-block;
    margin-inline-end: 0.5em;
    margin-block-start: -0.175em;
    vertical-align: middle;
  }
}
@media screen and (min-width: 768px) {
  .navi__sub__list .navi__sub__item a::after {
    content: "";
    display: block;
    position: absolute;
    inset: auto auto 0 0;
    inline-size: 100%;
    block-size: 0.1rem;
    background-color: #555757;
  }
}
@media screen and (max-width: 767px) {
  .navi__sub__list .navi__sub__item a::after {
    content: "";
    display: inline-block;
    position: relative;
    inset-block-start: -0.1em;
    inline-size: 0.6em;
    block-size: 0.6em;
    border-block-start: 0.1rem solid #555757;
    border-inline-end: 0.1rem solid #555757;
    vertical-align: baseline;
    transform: rotate(45deg);
    z-index: 2;
    transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1), transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inline-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), block-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), border-width 0.5s cubic-bezier(0.23, 1, 0.32, 1), border-radius 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-color 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-size 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-position 0.5s cubic-bezier(0.23, 1, 0.32, 1), color 0.5s cubic-bezier(0.23, 1, 0.32, 1), text-shadow 0.5s cubic-bezier(0.23, 1, 0.32, 1), filter 0.5s cubic-bezier(0.23, 1, 0.32, 1);
    position: absolute;
    inset-inline-end: 1em;
    inset-block: 0;
    margin-block: auto;
  }
}

.footer__navi__sub {
  display: block flex;
  justify-content: flex-end;
  gap: 1.5em;
  padding-inline: 1.5em;
}
@media screen and (max-width: 767px) {
  .footer__navi__sub {
    position: absolute;
    inset-inline-end: 0;
    inset-block-start: 1.1875em;
  }
}
.footer__navi__sub a {
  position: relative;
  inline-size: 2.625em;
  z-index: 1;
}
.footer__navi__sub a::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  background-color: #e6e6e6;
  z-index: -1;
  border-radius: 50%;
  transform: scale(0.9);
  transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1), transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inline-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), block-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), border-width 0.5s cubic-bezier(0.23, 1, 0.32, 1), border-radius 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-color 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-size 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-position 0.5s cubic-bezier(0.23, 1, 0.32, 1), color 0.5s cubic-bezier(0.23, 1, 0.32, 1), text-shadow 0.5s cubic-bezier(0.23, 1, 0.32, 1), filter 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
@media screen and (hover) {
  .footer__navi__sub a:hover::after {
    transform: scale(1.5);
  }
}
.footer__navi__main {
  display: block flex;
  flex-wrap: wrap;
  gap: 4em 5em;
}
@media screen and (max-width: 767px) {
  .footer__navi__main {
    gap: 1.5em 0.2em;
  }
}
.footer__navi__main a {
  color: #5f5f5f;
}
@media screen and (hover) {
  .footer__navi__main a:hover {
    color: #2179bf;
  }
}
.footer__navi__main a.current {
  color: #2179bf;
}
.footer__navi__main a.current::after {
  border-color: #2179bf !important;
}
@media screen and (min-width: 768px) {
  .footer__navi__main__item {
    position: relative;
  }
  .footer__navi__main__item:nth-child(2)::before, .footer__navi__main__item:nth-child(4)::before, .footer__navi__main__item:nth-child(5)::before, .footer__navi__main__item:nth-child(6)::before, .footer__navi__main__item:nth-child(8)::before, .footer__navi__main__item:nth-child(9)::before {
    content: "";
    display: block;
    position: absolute;
    inset-block: 0;
    inline-size: 0.1rem;
    block-size: 100%;
    margin-block: auto;
    background-color: #555757;
    inset-inline-start: -2.5em;
  }
  .footer__navi__main__item:nth-child(7), .footer__navi__main__item:nth-child(8), .footer__navi__main__item:nth-child(9) {
    padding-block: calc(0.5em + var(--leading-trim));
  }
  .footer__navi__main__item:last-child {
    margin-inline-start: auto;
  }
  .footer__navi__main__item:last-child a {
    font-size: 75%;
    font-weight: 700;
  }
}
@media screen and (max-width: 767px) {
  .footer__navi__main__item {
    flex-basis: 100%;
  }
  .footer__navi__main__item:nth-child(5), .footer__navi__main__item:nth-child(6) {
    flex-basis: calc(50% - 0.1em);
  }
  .footer__navi__main__item:last-child {
    margin-top: 1em;
    text-align: center;
  }
  .footer__navi__main__item:last-child a {
    font-size: 75%;
    font-weight: 500;
  }
}
.footer__navi__main__item:not(:last-child) > a {
  font-weight: 700;
}
.footer__navi__main__item:not(:last-child) > a::after {
  content: "";
  display: inline-block;
  position: relative;
  inset-block-start: -0.1em;
  inline-size: 0.5em;
  block-size: 0.5em;
  border-block-start: 0.1rem solid #555757;
  border-inline-end: 0.1rem solid #555757;
  vertical-align: baseline;
  transform: rotate(45deg);
  z-index: 2;
  transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1), transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inline-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), block-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), border-width 0.5s cubic-bezier(0.23, 1, 0.32, 1), border-radius 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-color 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-size 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-position 0.5s cubic-bezier(0.23, 1, 0.32, 1), color 0.5s cubic-bezier(0.23, 1, 0.32, 1), text-shadow 0.5s cubic-bezier(0.23, 1, 0.32, 1), filter 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  margin-inline-start: 0.25em;
}
@media screen and (hover) {
  .footer__navi__main__item:not(:last-child) > a:hover::after {
    border-color: #2179bf;
  }
}
.footer__navi__child {
  display: block flex;
  gap: 2.5em;
}
@media screen and (max-width: 767px) {
  .footer__navi__child {
    flex-wrap: wrap;
    gap: 0 0.2em;
  }
}
@media screen and (max-width: 767px) {
  .footer__navi__child__inner {
    flex-basis: calc(50% - 0.1em);
  }
}
.footer__navi__child__item__anchor {
  position: relative;
  margin-block: calc(0.75em + var(--leading-trim)) var(--leading-trim);
  padding-inline-start: 1.2em;
  font-size: 93.75%;
  font-weight: 500;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .footer__navi__child__item__anchor {
    font-size: 81.25%;
  }
}
.footer__navi__child__item__anchor::before {
  content: "";
  display: block;
  position: absolute;
  inset-inline-start: 0.2em;
  inset-block-start: 0.5lh;
  inline-size: 0.5em;
  block-size: 0.1rem;
  background-color: #555757;
}
.footer__navi__child__item__anchor.current {
  color: #2179bf;
}
.footer__navi__child__item__anchor.current::before {
  background-color: #2179bf;
}
.footer__navi__child__ttl {
  margin-block: calc(1em + var(--leading-trim)) 0;
  font-size: 93.75%;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .footer__navi__child__ttl {
    font-size: 87.5%;
  }
}

.anchor__navi {
  margin-block-end: 6.5em;
}
@media screen and (max-width: 767px) {
  .anchor__navi {
    margin-block-start: -5em;
  }
}
.anchor__navi__list {
  display: block flex;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 0.625em;
}
@media screen and (max-width: 767px) {
  .anchor__navi__list {
    justify-content: flex-start;
  }
}
.anchor__navi__item {
  position: relative;
}
@media screen and (min-width: 768px) {
  .anchor__navi__item {
    padding-inline: 1.75em;
  }
  .anchor__navi__item:first-child {
    margin-inline-start: 0;
  }
  .anchor__navi__item:last-child {
    padding-inline-end: 0;
  }
  .anchor__navi__item:nth-child(n+2)::before {
    content: "";
    display: block;
    position: absolute;
    inset-block: 0;
    inline-size: 0.1rem;
    block-size: 1em;
    margin-block: auto;
    background-color: #bdbdbd;
    position: absolute;
    inset-inline-start: 0;
  }
}
@media screen and (max-width: 767px) {
  .anchor__navi__item {
    flex-basis: 50%;
  }
  .anchor__navi__item:nth-child(2n-1) {
    padding-inline-end: 0.5em;
  }
  .anchor__navi__item:nth-child(2n) {
    padding-inline-start: 1em;
  }
  .anchor__navi__item:nth-child(2n)::before {
    content: "";
    display: block;
    position: absolute;
    inset-block: 0;
    inline-size: 0.1rem;
    block-size: 1em;
    margin-block: auto;
    background-color: #bdbdbd;
    position: absolute;
    inset-inline-start: 0;
  }
}
@media screen and (max-width: 767px) {
  .anchor__navi__item a {
    font-size: 68.75%;
  }
}
.anchor__navi__item a::after {
  content: "";
  display: inline-block;
  position: relative;
  inset-block-start: -0.1em;
  inline-size: 0.5em;
  block-size: 0.5em;
  border-block-start: 0.1rem solid #555757;
  border-inline-end: 0.1rem solid #555757;
  vertical-align: baseline;
  transform: rotate(135deg);
  z-index: 2;
  transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1), transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-block-end 0.5s cubic-bezier(0.23, 1, 0.32, 1), inset-inline-start 0.5s cubic-bezier(0.23, 1, 0.32, 1), inline-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), block-size 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955), border-width 0.5s cubic-bezier(0.23, 1, 0.32, 1), border-radius 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-color 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-size 0.5s cubic-bezier(0.23, 1, 0.32, 1), background-position 0.5s cubic-bezier(0.23, 1, 0.32, 1), color 0.5s cubic-bezier(0.23, 1, 0.32, 1), text-shadow 0.5s cubic-bezier(0.23, 1, 0.32, 1), filter 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  inset-block-start: calc((-1lh + 1em) / 2);
  margin-inline-start: 0.75em;
  border-color: #2186a2;
}
@media screen and (hover) {
  .anchor__navi__item a:hover::after {
    transform: translateY(0.25em) rotate(135deg);
  }
}/*# sourceMappingURL=navi.css.map */