@charset "UTF-8";
/* ///////////////////////////////////////////////

　common style for modern browser
　Version: 4.0

/////////////////////////////////////////////// */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap");
@keyframes link-underline {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}
/* Base
----------------------------------------------- */
/*
　各要素のスタイルを初期化し、デフォルトのスタイルを定義
*/
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:where([hidden]:not([hidden=until-found])) {
  display: none !important;
}

:where(html) {
  -webkit-text-size-adjust: none;
}

@supports not (min-block-size: 100dvb) {
  :where(html) {
    block-size: 100%;
  }
}
:where(body) {
  block-size: 100%;
  block-size: 100dvb;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}

:where(input, button, textarea, select) {
  font: inherit;
  color: inherit;
}

:where(textarea) {
  resize: vertical;
  resize: block;
}

:where(button, label, select, summary, [role=button], [role=option]) {
  cursor: pointer;
}

:where(:disabled) {
  cursor: not-allowed;
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed;
}

:where(button) {
  border: none;
  background: none;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

:where(a) {
  text-underline-offset: 0.1ex;
}

:where(ul, ol) {
  list-style: none;
}

:where(img, svg) {
  max-inline-size: 100%;
  block-size: auto;
  vertical-align: bottom;
}

:where(p, li, dt, dd, th, td, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

:where(hr) {
  border: none;
  border-block-start: 1px solid;
  color: inherit;
  block-size: 0;
  overflow: visible;
}

:where(table) {
  border-collapse: collapse;
  border-spacing: 0;
}

:where(picture) {
  display: block;
}

:where(i, em) {
  font-style: normal;
}

/* Module
----------------------------------------------- */
.ul-disc > li {
  list-style: disc;
  margin-left: 1.2em;
}

.ol-decimal > li {
  list-style: decimal;
  margin-left: 1.2em;
}

/* State
----------------------------------------------- */
.hidden {
  display: none;
}

.hidden-pc {
  display: none;
}

@media (max-width: 768px) {
  .hidden-pc {
    display: block;
  }
  .hidden-pc.inline {
    display: inline-block;
  }
  .hidden-tab {
    display: none;
  }
}
@media (max-width: 520px) {
  .hidden-tab {
    display: block;
  }
  .hidden-tab.inline {
    display: inline-block;
  }
  .hidden-sp {
    display: none;
  }
}
@media (orientation: landscape) and (max-width: 768px) {
  .hidden-land {
    display: none;
  }
}
/* Utillity
----------------------------------------------- */
/* Text */
.taR {
  text-align: right;
}

.taL {
  text-align: left;
}

.taC {
  text-align: center;
}

.indent {
  padding-left: 1em;
  text-indent: -1em;
}

/* Image */
a img {
  backface-visibility: hidden;
  transition: all 0.2s;
}
@media (hover: hover) {
  a:hover img {
    opacity: 0.8;
  }
}

*[class|=logo] a {
  text-decoration: none;
}
*[class|=logo] a:hover {
  text-decoration: none;
}
*[class|=logo] a:hover img {
  opacity: 1;
}

a.tel {
  text-decoration: none;
}
a.tel img {
  opacity: 1;
}

/* button */
.btn {
  display: inline-block;
  backface-visibility: hidden;
  text-decoration: none;
  transition: opacity 0.2s;
}
@media (hover: hover) {
  .btn:hover {
    text-decoration: none;
    opacity: 0.8;
  }
  .btn:hover img {
    opacity: 1;
  }
}

@keyframes link-underline {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}
/*
Light 300
Regular 400
Medium 500
Bold 700
Black 900
*/
/*

  FONT
----------------------------------------------- */
:root {
  font-size: 1px;
  --color-blue: #060180;
  --color-yellow: #FFF450;
  --font-base: "Zen Kaku Gothic New", sans-serif;
  --font-en: "Montserrat", sans-serif;
}
body {
  color: var(--color-blue);
  font-family: var(--font-base);
  font-size: 0.8333333333vw;
  font-weight: 500;
  font-style: normal;
  font-feature-settings: "palt";
  letter-spacing: 0.03em;
}
@media (width < 768px) {
  body {
    font-size: 3.5897435897vw;
  }
}

:is(p) {
  line-height: 2;
}

:is(li, dt, dd, th, td, address) {
  line-height: 1.75;
}

:is(input, textarea, select) {
  font-size: max(0.8333333333vw, 16px);
}

:where(a) {
  color: inherit;
}
:where(a):hover {
  text-decoration: none;
}

/*

  LAYOUT
----------------------------------------------- */
@media (width < 768px) {
  body.isOpenMenu {
    overflow: hidden;
  }
}

@media (width >= 769px) {
  .mainContents {
    margin-left: 5.7291666667vw;
    margin-right: 5.7291666667vw;
  }
}
@media (width < 768px) {
  .mainContents {
    margin-top: 17.4358974359vw;
  }
}

/*
  HEADER
----------------------------------------------- */
.header {
  position: fixed;
  z-index: 15;
  top: 0;
  display: flex;
}
@media (width >= 769px) {
  .header {
    left: 5.7291666667vw;
    right: 5.7291666667vw;
    height: 5.7291666667vw;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 2.0833333333vw;
  }
  .header.scrolled {
    background-color: rgba(255, 255, 255, 0.8);
  }
}
@media (width < 768px) {
  .header {
    left: 0;
    right: 0;
    height: 17.4358974359vw;
    background-color: rgba(255, 255, 255, 0.9);
    border-bottom: 1px solid var(--color-blue);
    justify-content: space-between;
  }
}
.header .logo {
  display: flex;
  align-items: center;
  /* &-mark {
    @include overTab {
      width: vw(72);
    }
    @include tab {
      width: vwsp(36);
    }
  } */
}
@media (width >= 769px) {
  .header .logo {
    gap: 0.78125vw;
    margin-left: 2.0833333333vw;
  }
}
@media (width < 768px) {
  .header .logo {
    gap: 1.5384615385vw;
    margin-left: 3.8461538462vw;
  }
}
@media (width >= 769px) {
  .header .logo-link {
    width: 26.09375vw;
  }
}
@media (width < 768px) {
  .header .logo-link {
    width: 62.5641025641vw;
  }
}

/*
  MENU
----------------------------------------------- */
.gnav {
  position: fixed;
  z-index: 11;
  bottom: 0;
  background-color: rgba(255, 255, 255, 0.95);
  opacity: 0;
  pointer-events: none;
  transition: 0.2s;
  overflow-y: auto;
}
@media (width >= 769px) {
  .gnav {
    top: 0;
    left: 5.7291666667vw;
    padding: 3.125vw 3.6458333333vw;
  }
}
@media (width < 768px) {
  .gnav {
    top: 17.4358974359vw;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 6.4102564103vw 7.6923076923vw 10.2564102564vw;
  }
}
.gnav-title {
  font-weight: var(--font-en);
}
@media (width >= 769px) {
  .gnav-title {
    margin-bottom: 2.0833333333vw;
    font-size: 3.5416666667vw;
  }
}
@media (width < 768px) {
  .gnav-title {
    margin-bottom: 5.1282051282vw;
    font-size: 8.9743589744vw;
  }
}
@media (width >= 769px) {
  .gnav-menu {
    gap: 2.0833333333vw 5.2083333333vw;
  }
  .gnav-menu ul {
    gap: 1.4583333333vw;
  }
}
@media (width >= 769px) {
  .gnav-menu > ul > li > a {
    font-size: 1.1979166667vw;
  }
  .gnav-menu > ul > li > a::before {
    width: 1.40625vw;
    background-size: 0.4166666667vw;
  }
}
@media (width < 768px) {
  .gnav-menu > ul > li > a {
    font-size: 4.1025641026vw;
  }
  .gnav-menu > ul > li > a::before {
    width: 5.1282051282vw;
    background-size: 1.5384615385vw;
  }
}
@media (width >= 769px) {
  .gnav-menu .gnav-sub {
    gap: 0.7291666667vw;
    margin-left: 3.3854166667vw;
  }
  .gnav-menu .gnav-sub a {
    font-size: 0.9375vw;
  }
}
@media (width < 768px) {
  .gnav-menu .gnav-sub {
    margin-left: 7.6923076923vw;
  }
  .gnav-menu .gnav-sub a {
    font-size: 3.3333333333vw;
  }
}
.gnav-menu .target {
  display: none;
}
@media (width < 768px) {
  .gnav-menu .target {
    border-top: 1px solid var(--color-blue);
    border-bottom: 1px solid var(--color-blue);
    padding-block: 7.6923076923vw;
    margin-top: 7.6923076923vw;
  }
}
@media (width < 768px) {
  .gnav-menu .cta {
    margin-top: 7.6923076923vw;
    display: flex;
    gap: 4.8717948718vw;
  }
  .gnav-menu .cta a {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 !important;
    flex-direction: column;
    font-size: 3.8461538462vw;
  }
}
@media (width >= 769px) {
  .gnav-menu .cta i {
    width: 3.0208333333vw;
  }
}
@media (width < 768px) {
  .gnav-menu .cta i {
    width: 11.0256410256vw;
    height: 11.0256410256vw;
  }
}
@media (width >= 769px) {
  .gnav-menu .cta .document img {
    width: 2.4479166667vw;
  }
}
@media (width < 768px) {
  .gnav-menu .cta .document img {
    width: 8.9743589744vw;
  }
}
.gnav-sns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.gnav-sns dt {
  width: 100%;
  text-align: center;
}
.gnav-sns a {
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--color-blue);
  color: #fff;
  text-decoration: none;
  transition: 0.2;
}
@media (width >= 769px) {
  .gnav-sns {
    margin-top: 4.6875vw;
    padding-top: 1.40625vw;
    gap: 0.78125vw 1.0416666667vw;
    border-top: 1px solid var(--color-blue);
  }
  .gnav-sns dt {
    font-size: 1.0416666667vw;
    font-family: var(--font-en);
  }
  .gnav-sns a {
    width: 3.3854166667vw;
    font-size: 1.9791666667vw;
  }
}
@media (width < 768px) {
  .gnav-sns {
    position: absolute;
    top: 6.4102564103vw;
    right: 7.6923076923vw;
    gap: 3.5897435897vw;
  }
  .gnav-sns dt {
    display: none;
  }
  .gnav-sns a {
    width: 12.3076923077vw;
    font-size: 7.1794871795vw;
  }
}

@media (width >= 769px) {
  .gnav-menu {
    display: grid;
    align-content: start;
    grid-template-columns: repeat(2, 1fr);
  }
}
.gnav-menu > ul {
  display: grid;
  align-content: start;
}
@media (width < 768px) {
  .gnav-menu > ul {
    gap: 3.5897435897vw;
  }
}
.gnav-menu > ul > li > a {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
}
.gnav-menu > ul > li > a::before {
  content: "";
  aspect-ratio: 1;
  background-color: var(--color-blue);
  background-image: url(../img/common/mrk-arrow-right-w.svg);
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 50%;
}
.gnav-menu a {
  text-decoration: none;
}
.gnav-menu a:hover {
  text-decoration: underline;
}
@media (width >= 769px) {
  .gnav-menu .main {
    grid-area: 1/1/3/2;
  }
}
.gnav-menu .gnav-sub {
  display: grid;
  margin-top: 0.7em;
  margin-bottom: 1em;
}
@media (width < 768px) {
  .gnav-menu .gnav-sub {
    gap: 1.5384615385vw;
  }
}
@media (width >= 769px) {
  .gnav-menu .cta {
    margin-top: auto;
  }
  .gnav-menu .cta li + li {
    margin-top: 0.5em;
  }
}
@media (width < 768px) {
  .gnav-menu .cta {
    text-align: center;
  }
}
.gnav-menu .cta a {
  gap: 0.7em;
  line-height: 1.4;
}
.gnav-menu .cta a::before {
  display: none;
}
.gnav-menu .cta i {
  display: flex;
  justify-content: center;
  align-items: center;
}

.isOpenMenu .gnav {
  opacity: 1;
  pointer-events: inherit;
}

/*
  BUTTON MENU
----------------------------------------------- */
.btnMenu {
  display: grid;
  place-items: center;
  background-color: var(--color-blue);
}
@media (width >= 769px) {
  .btnMenu {
    position: fixed;
    top: 0;
    left: 0;
    width: 5.7291666667vw;
    height: 5.7291666667vw;
    padding-inline: 1.8229166667vw;
    padding-bottom: 1.5625vw;
  }
}
@media (width < 768px) {
  .btnMenu {
    position: relative;
    width: 17.4358974359vw;
    height: 17.4358974359vw;
    padding-inline: 5.8974358974vw;
    padding-bottom: 5.1282051282vw;
  }
}
.btnMenu span {
  content: "";
  grid-area: 1/1;
  background: #fff;
  border-radius: 999px;
  transition: 0.2s;
}
@media (width >= 769px) {
  .btnMenu span {
    height: 3px;
  }
}
@media (width < 768px) {
  .btnMenu span {
    height: 0.5128205128vw;
  }
}
.btnMenu span:nth-child(1) {
  width: 100%;
}
.btnMenu span:nth-child(2) {
  width: 58%;
  margin-left: auto;
}
@media (width >= 769px) {
  .btnMenu span:nth-child(2) {
    transform: translateY(0.9375vw);
  }
}
@media (width < 768px) {
  .btnMenu span:nth-child(2) {
    transform: translateY(3.3333333333vw);
  }
}
.btnMenu::after {
  position: absolute;
  bottom: 0.8em;
  left: 50%;
  transform: translateX(-50%);
  content: "Menu";
  color: #fff;
  font-family: var(--font-en);
}
@media (width >= 769px) {
  .btnMenu::after {
    font-size: 0.8333333333vw;
  }
}
@media (width < 768px) {
  .btnMenu::after {
    font-size: 3.0769230769vw;
  }
}

.isOpenMenu .btnMenu span:nth-child(1) {
  rotate: 45deg;
}
.isOpenMenu .btnMenu span:nth-child(2) {
  rotate: -45deg;
  width: 100%;
  transform: none;
}

/*
  SIDE
----------------------------------------------- */
.arrow-tr {
  background-image: url(../img/common/mrk-arrow-tr.svg);
  background-repeat: no-repeat;
}
@media (width >= 769px) {
  .arrow-tr {
    background-position: right 0.2083333333vw bottom 0.625vw;
    background-size: 0.78125vw;
  }
}
@media (width < 768px) {
  .arrow-tr {
    background-position: right 0.7692307692vw top 0.7692307692vw;
    background-size: 2.8205128205vw;
  }
}

.fixed_cta {
  position: fixed !important;
  z-index: 10;
  color: var(--color-blue);
}
.fixed_cta::before {
  background-color: #fff !important;
}
@media (width >= 769px) {
  .fixed_cta {
    top: 5.7291666667vw;
    left: 0;
    bottom: 5.7291666667vw;
    width: 5.7291666667vw;
    display: grid;
    grid-template-rows: repeat(5, 1fr);
    border-right: 1px solid var(--color-blue);
  }
}
@media (width < 768px) {
  .fixed_cta {
    bottom: 0;
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background-color: var(--color-blue);
    border-top: 1px solid var(--color-blue);
  }
  .fixed_cta::before, .fixed_cta::after {
    display: none;
  }
  .fixed_cta .icon {
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
.fixed_cta a {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--color-yellow);
  text-decoration: none;
  text-align: center;
  transition: 0.2s;
}
.fixed_cta a:hover {
  background-color: #fff;
}
@media (width >= 769px) {
  .fixed_cta a {
    gap: 0.3125vw;
    flex-direction: column;
    font-size: 0.7291666667vw;
    line-height: 1.4;
  }
  .fixed_cta a + a {
    border-top: 1px solid var(--color-blue);
  }
  .fixed_cta a:last-of-type {
    background-position: right 0.2083333333vw bottom 0.78125vw;
  }
}
@media (width < 768px) {
  .fixed_cta a {
    height: 12.8205128205vw;
    align-items: center;
    gap: 0.7692307692vw;
    font-size: 2.5641025641vw;
    line-height: 1.2;
  }
  .fixed_cta a .label {
    width: 18.4615384615vw;
    letter-spacing: 0;
    white-space: nowrap;
  }
}
@media (width >= 769px) {
  .fixed_cta-event {
    position: fixed;
    top: 0;
    right: 0;
    width: 5.7291666667vw;
    height: 5.7291666667vw;
    border-left: 1px solid var(--color-blue);
    font-size: 0.8333333333vw;
  }
  .fixed_cta-event img {
    width: 2.6041666667vw;
  }
  .fixed_cta-event .label {
    padding-right: 0.5208333333vw;
  }
}
@media (width < 768px) {
  .fixed_cta-event img {
    width: 6.1538461538vw;
  }
}
@media (width >= 769px) {
  .fixed_cta-line img {
    width: 2.6041666667vw;
  }
}
@media (width < 768px) {
  .fixed_cta-line img {
    width: 7.1794871795vw;
  }
}
@media (width >= 769px) {
  .fixed_cta-document img {
    width: 2.0833333333vw;
  }
}
@media (width < 768px) {
  .fixed_cta-document img {
    width: 6.4102564103vw;
  }
}
@media (width >= 769px) {
  .fixed_cta-web img {
    width: 2.34375vw;
  }
}
@media (width < 768px) {
  .fixed_cta-web img {
    width: 7.6923076923vw;
  }
}
@media (width >= 769px) {
  .fixed_cta-contact img {
    width: 2.6041666667vw;
  }
}
@media (width < 768px) {
  .fixed_cta-contact img {
    width: 8.2051282051vw;
  }
}
@media (width >= 769px) {
  .fixed_cta-description img {
    width: 1.6145833333vw;
  }
}
@media (width < 768px) {
  .fixed_cta-description img {
    width: 5.1282051282vw;
  }
}

.fixed_target {
  color: var(--color-blue);
  background-color: var(--color-yellow);
}
.fixed_target::before {
  background-color: #fff !important;
}
.fixed_target > * {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--color-yellow);
  text-decoration: none;
  text-align: center;
  line-height: 1.375;
}
.fixed_target > a {
  transition: 0.2s;
  opacity: 0;
  pointer-events: none;
}
.fixed_target > a:hover {
  background-color: #fff;
}
@media (width >= 769px) {
  .fixed_target {
    position: fixed !important;
    top: 5.7291666667vw;
    right: 0;
    bottom: 0;
    width: 5.7291666667vw;
    display: grid;
    grid-template-rows: 1fr 1fr 1fr 1fr minmax(9.375vw, 1.25fr);
    border-left: 1px solid var(--color-blue);
    border-bottom: 1px solid var(--color-blue);
  }
  .fixed_target > * {
    gap: 0.3125vw;
    font-size: 0.8333333333vw;
  }
  .fixed_target > * + a {
    border-top: 1px solid var(--color-blue);
  }
}
@media (width < 768px) {
  .fixed_target {
    display: none;
  }
}
.fixed_target-sns {
  display: grid;
  align-content: center;
  gap: 0.78125vw;
  font-size: 0.9375vw;
}
.fixed_target-sns::before {
  background-color: #fff !important;
}
.fixed_target-sns dt {
  line-height: 1;
}
.fixed_target-sns a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 2.8645833333vw;
  aspect-ratio: 1;
  background-color: var(--color-blue);
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
  font-size: 1.4583333333vw;
  transition: 0.2s;
}
.fixed_target-sns a:hover {
  background-color: #fff;
  color: var(--color-blue);
}

.btn-event {
  position: fixed;
}
.btn-event img {
  width: 100%;
}
@media (width >= 769px) {
  .btn-event {
    z-index: 15;
    top: 0;
    right: 0;
    margin-right: calc(5.7291666667vw - 1px);
  }
}
@media (width < 768px) {
  .btn-event {
    z-index: 10;
    bottom: 25.8974358974vw;
    left: 0;
  }
}
.btn-event .show {
  position: relative;
  z-index: 2;
}
@media (width >= 769px) {
  .btn-event .show {
    width: 23.6979166667vw;
  }
}
@media (width < 768px) {
  .btn-event .show {
    width: 75.3846153846vw;
  }
}
.btn-event .hide {
  position: absolute;
  cursor: pointer;
}
@media (width >= 769px) {
  .btn-event .hide {
    width: 6.1458333333vw;
    right: 0;
    top: 0;
  }
}
@media (width < 768px) {
  .btn-event .hide {
    width: 52.8205128205vw;
    height: 13.0769230769vw;
    left: 0;
    bottom: 0;
  }
}
.btn-event .btnCloseEvent {
  position: absolute;
  z-index: 10;
  cursor: pointer;
}
@media (width >= 769px) {
  .btn-event .btnCloseEvent {
    width: 1.0416666667vw;
    top: 0.625vw;
    right: 0.8333333333vw;
  }
}
@media (width < 768px) {
  .btn-event .btnCloseEvent {
    width: 6.0256410256vw;
    top: 0;
    right: 0;
  }
}

.btn-application {
  position: fixed;
  z-index: 10;
}
@media (width >= 769px) {
  .btn-application {
    bottom: 0;
    right: 5.7291666667vw;
  }
  .btn-application img {
    width: 12.96875vw;
  }
}
@media (width < 768px) {
  .btn-application {
    top: 21.5384615385vw;
    right: 0;
  }
  .btn-application img {
    width: 41.2820512821vw;
  }
}

/*
  FOOTER
----------------------------------------------- */
.bottom-contact {
  display: grid;
  background: url(../img/home/bg-contact.jpg) no-repeat center/cover;
}
@media (width >= 769px) {
  .bottom-contact {
    padding-inline: 8.59375vw;
  }
}
@media (width < 768px) {
  .bottom-contact {
    padding-inline: 5.1282051282vw;
  }
}
@media (max-width: 768px) and (orientation: portrait) {
  .bottom-contact {
    background: url(../img/home/bg-contact-sp.jpg) no-repeat center/cover;
  }
}
@media (width >= 769px) {
  .bottom-contact {
    margin-top: 7.2916666667vw;
    padding-block: 7.8125vw;
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (width < 768px) {
  .bottom-contact {
    margin-top: 17.9487179487vw;
    padding-block: 16.4102564103vw 22.5641025641vw;
    justify-content: center;
  }
}
.bottom-contact .head {
  color: #fff;
}
.bottom-contact .head .sub-heading {
  line-height: 1.75;
}
@media (width >= 769px) {
  .bottom-contact .head .sub-heading {
    padding-block: 1.0416666667vw 2.6041666667vw;
    font-size: 2.0833333333vw;
  }
}
@media (width < 768px) {
  .bottom-contact .head .sub-heading {
    padding-block: 3.8461538462vw 5.8974358974vw;
    font-size: 6.4102564103vw;
  }
}
.bottom-contact .cta {
  display: grid;
  align-content: start;
  color: #fff;
  font-weight: bold;
}
.bottom-contact .cta dt {
  line-height: 1;
}
.bottom-contact .cta a:hover img {
  opacity: 1;
}
@media (width >= 769px) {
  .bottom-contact .cta {
    gap: 1.5625vw;
    margin-top: 0.5208333333vw;
    margin-left: auto;
  }
  .bottom-contact .cta dt {
    font-size: 1.3020833333vw;
  }
  .bottom-contact .cta dd {
    width: 24.21875vw;
  }
}
@media (width < 768px) {
  .bottom-contact .cta {
    gap: 3.8461538462vw;
  }
  .bottom-contact .cta dt {
    margin-bottom: 1.7948717949vw;
    font-size: 4.6153846154vw;
  }
  .bottom-contact .cta .tel {
    width: 79.4871794872vw;
  }
  .bottom-contact .cta .mail {
    width: 74.358974359vw;
  }
}
@media (width >= 769px) {
  .bottom-contact .form {
    margin-top: -0.5208333333vw;
  }
}
@media (width < 768px) {
  .bottom-contact .form {
    margin-top: 7.6923076923vw;
  }
  .bottom-contact .form .button {
    margin: auto;
  }
}

.footer {
  display: grid;
}
@media (width >= 769px) {
  .footer {
    padding-inline: 8.59375vw;
  }
}
@media (width < 768px) {
  .footer {
    padding-inline: 5.1282051282vw;
  }
}
@media (width >= 769px) {
  .footer {
    grid-template-columns: repeat(2, 1fr);
    padding-block: 6.25vw 2.0833333333vw;
    margin-left: 5.7291666667vw;
    margin-right: 5.7291666667vw;
  }
}
@media (width < 768px) {
  .footer {
    padding-block: 6.1538461538vw 33.3333333333vw;
  }
}
.footer .logo {
  display: flex;
  align-items: center;
  /* &-mark {
    @include overTab {
      width: vw(84);
    }
    @include tab {
      width: vwsp(46);
    }
  } */
}
@media (width >= 769px) {
  .footer .logo {
    gap: 0.78125vw;
    margin-bottom: 2.0833333333vw;
  }
}
@media (width < 768px) {
  .footer .logo {
    gap: 2.0512820513vw;
    margin-bottom: 6.4102564103vw;
  }
}
@media (width >= 769px) {
  .footer .logo-main {
    width: 29.8958333333vw;
  }
}
@media (width < 768px) {
  .footer .logo-main {
    width: 72.8205128205vw;
  }
}
.footer .sns {
  display: flex;
}
.footer .sns li {
  line-height: 1;
}
@media (width >= 769px) {
  .footer .sns {
    gap: 2.0833333333vw;
    margin-bottom: 3.3854166667vw;
    font-size: 2.8645833333vw;
  }
}
@media (width < 768px) {
  .footer .sns {
    gap: 6.4102564103vw;
    margin-bottom: 7.6923076923vw;
    font-size: 9.7435897436vw;
  }
}
.footer .address {
  font-style: normal;
  line-height: 1.5;
}
@media (width >= 769px) {
  .footer .address {
    margin-bottom: 4.1666666667vw;
    font-size: 1.0416666667vw;
  }
}
@media (width < 768px) {
  .footer .address {
    margin-bottom: 8.9743589744vw;
    font-size: 3.5897435897vw;
  }
}
.footer .link-full_time {
  display: inline-flex;
  gap: 0.4em;
  text-decoration: none;
  padding-block: 0.3em;
  text-decoration: none;
  position: relative;
}
.footer .link-full_time::before {
  position: absolute;
  bottom: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 1px;
  background-color: currentColor;
}
.footer .link-full_time:hover::before {
  animation: link-underline 0.2s ease-in-out forwards;
}
.footer .link-full_time::after {
  content: "";
  aspect-ratio: 1;
  background: url(../img/common/mrk-arrow-tr-thin.svg) no-repeat center;
  background-size: contain;
  transform: translateY(-0.15em);
}
@media (width >= 769px) {
  .footer .link-full_time {
    font-size: 1.0416666667vw;
  }
  .footer .link-full_time::after {
    width: 1.09375vw;
  }
}
@media (width < 768px) {
  .footer .link-full_time {
    font-size: 3.8461538462vw;
  }
  .footer .link-full_time::after {
    width: 4.1025641026vw;
  }
}
.footer .copyright {
  display: block;
}
@media (width >= 769px) {
  .footer .copyright {
    margin-top: 5.7291666667vw;
    font-size: 0.7291666667vw;
  }
}
@media (width < 768px) {
  .footer .copyright {
    margin-top: 16.6666666667vw;
    font-size: 2.5641025641vw;
    text-align: center;
  }
}
@media (width >= 769px) {
  .footer .gnav-menu {
    margin-left: auto;
    gap: 1.5625vw 2.6041666667vw;
  }
  .footer .gnav-menu ul {
    gap: 1.0416666667vw;
  }
}
@media (width < 768px) {
  .footer .gnav-menu {
    display: none;
  }
}
@media (width >= 769px) {
  .footer .gnav-menu > ul > li > a {
    font-size: 1.0416666667vw;
  }
  .footer .gnav-menu > ul > li > a::before {
    width: 1.1979166667vw;
    background-size: 0.3385416667vw;
  }
}
@media (width >= 769px) {
  .footer .gnav-menu .gnav-sub {
    gap: 0.5208333333vw;
    margin-left: 3.125vw;
  }
  .footer .gnav-menu .gnav-sub a {
    font-size: 0.8333333333vw;
  }
}
@media (width >= 769px) {
  .footer .gnav-menu .cta i {
    width: 2.6041666667vw;
  }
}
@media (width >= 769px) {
  .footer .gnav-menu .cta .document img {
    width: 2.0833333333vw;
  }
}
@media (width >= 769px) {
  .footer .pagetop {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 5.7291666667vw;
    height: 5.7291666667vw;
    border-right: 1px solid var(--color-blue);
    background-color: #fff;
    background-image: url(../img/common/mrk-arrow-top.svg);
    background-repeat: no-repeat;
    background-position: center 35%;
    background-size: 0.8854166667vw;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 1.3020833333vw;
    text-decoration: none;
    font-size: 1.1458333333vw;
    font-family: var(--font-en);
    transition: 0.2s;
  }
  .footer .pagetop:hover {
    background-color: var(--color-blue);
    background-image: url(../img/common/mrk-arrow-top-w.svg);
    color: #fff;
  }
}
@media (width < 768px) {
  .footer .pagetop {
    display: none;
  }
}

@keyframes link-underline {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}
/*
  modules
----------------------------------------------- */
@keyframes link-underline {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}
.intersection {
  opacity: 0;
  transform: translateY(1.0416666667vw);
  transition: opacity 1s ease-in, transform 0.8s 0.1s ease-out;
}
.intersection.view {
  opacity: 1;
  transform: translateY(0);
}

.breadcrumb {
  display: flex;
  align-items: center;
  line-height: 1.5;
}
@media (width >= 769px) {
  .breadcrumb {
    margin-top: 5.7291666667vw;
    height: 5.2083333333vw;
    padding-inline: 2.0833333333vw;
    font-size: 0.9375vw;
  }
}
@media (width < 768px) {
  .breadcrumb {
    margin-top: 17.4358974359vw;
    height: 10.2564102564vw;
    padding-inline: 3.8461538462vw;
    font-size: 2.8205128205vw;
  }
}
.breadcrumb > * + * {
  position: relative;
  margin-left: 0.4em;
  padding-left: 1em;
}
.breadcrumb > * + *::before {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-60%);
  content: ">";
}
.breadcrumb a {
  text-decoration: none;
}
.breadcrumb a:hover {
  text-decoration: underline;
}

.pagetitle {
  position: relative;
  overflow: hidden;
}
@media (width >= 769px) {
  .pagetitle {
    height: 22.9166666667vw;
    margin-bottom: 5.2083333333vw;
  }
  .pagetitle picture {
    height: 100%;
  }
}
@media (width < 768px) {
  .pagetitle {
    margin-bottom: 5.1282051282vw;
  }
}
.pagetitle::after {
  position: absolute;
  z-index: 5;
  inset: 0;
  content: "";
  background-color: var(--color-blue);
  opacity: 0.5;
  mix-blend-mode: screen;
}
.pagetitle h2 {
  position: absolute;
  z-index: 2;
  display: grid;
  align-content: center;
  line-height: 1.4;
}
@media (width >= 769px) {
  .pagetitle h2 {
    padding-inline: 8.59375vw;
  }
}
@media (width < 768px) {
  .pagetitle h2 {
    padding-inline: 5.1282051282vw;
  }
}
.pagetitle h2 .en {
  font-family: var(--font-en);
  font-weight: 500;
}
@media (width >= 769px) {
  .pagetitle h2 {
    height: 22.9166666667vw;
    gap: 0.2604166667vw;
  }
  .pagetitle h2 .en {
    font-size: 2.34375vw;
  }
  .pagetitle h2 .ja {
    font-size: 3.125vw;
  }
}
@media (width < 768px) {
  .pagetitle h2 {
    top: 50%;
    translate: 0 -50%;
  }
  .pagetitle h2 .en {
    font-size: 4.6153846154vw;
  }
  .pagetitle h2 .ja {
    font-size: 6.1538461538vw;
  }
}
.pagetitle img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  max-width: inherit;
  max-height: inherit;
}

.h3 {
  font-weight: 700;
  line-height: 1.3;
}
.h3.en {
  font-family: var(--font-en);
  font-weight: 500;
}
@media (width >= 769px) {
  .h3 {
    font-size: 3.125vw;
  }
  .h3.en {
    font-size: 4.1666666667vw;
  }
}
@media (width < 768px) {
  .h3 {
    font-size: 5.8974358974vw;
  }
  .h3.en {
    font-size: 7.1794871795vw;
  }
}

.has-under_line {
  position: relative;
}
@media (width >= 769px) {
  .has-under_line {
    padding-bottom: 1.8229166667vw;
  }
}
@media (width < 768px) {
  .has-under_line {
    padding-bottom: 5.1282051282vw;
  }
}
.has-under_line::before, .has-under_line::after {
  position: absolute;
  content: "";
  background-color: var(--color-blue);
}
@media (width >= 769px) {
  .has-under_line::before, .has-under_line::after {
    left: -8.59375vw;
    height: 0.1041666667vw;
  }
}
@media (width < 768px) {
  .has-under_line::before, .has-under_line::after {
    left: -5.1282051282vw;
    height: 0.3846153846vw;
  }
}
@media (width >= 769px) {
  .has-under_line::before {
    bottom: 0.2604166667vw;
    width: 49.7916666667vw;
  }
}
@media (width < 768px) {
  .has-under_line::before {
    bottom: 1.0256410256vw;
    width: calc(100vw - 5.1282051282vw);
  }
}
@media (width >= 769px) {
  .has-under_line::after {
    bottom: 0;
    width: 48.9583333333vw;
  }
}
@media (width < 768px) {
  .has-under_line::after {
    bottom: 0;
    width: calc(100vw - 7.6923076923vw);
  }
}
@media (width >= 769px) {
  .has-under_line.long::before {
    width: 58.4895833333vw;
  }
}
@media (width >= 769px) {
  .has-under_line.long::after {
    width: 57.65625vw;
  }
}

.triple_lines {
  position: relative;
}
.triple_lines::before, .triple_lines::after {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(to right, currentColor 0%, currentColor 100%) 0 0/100% 1px, linear-gradient(to right, currentColor 0%, currentColor 100%) 0 2.5px/100% 1px, linear-gradient(to right, currentColor 0%, currentColor 100%) 0 5px/100% 1px;
  background-repeat: no-repeat;
}
.triple_lines.top::before {
  content: "";
  top: 0;
}
.triple_lines.btm::after {
  content: "";
  bottom: 0;
}

.triple_lines-vertical {
  position: relative;
}
.triple_lines-vertical::before, .triple_lines-vertical::after {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(to bottom, currentColor 0%, currentColor 100%) 0 0/1px 100%, linear-gradient(to bottom, currentColor 0%, currentColor 100%) 2.5px 0/1px 100%, linear-gradient(to bottom, currentColor 0%, currentColor 100%) 5px 0/1px 100%;
  background-repeat: no-repeat;
}
.triple_lines-vertical.left::before {
  content: "";
  left: 0;
}
.triple_lines-vertical.right::after {
  content: "";
  right: 0;
}

.button {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 100%;
  background-color: #fff;
  border: 1px solid var(--color-blue);
  border-radius: 999px;
  text-decoration: none;
  position: relative;
  transition: 0.2s;
}
.button::after {
  content: "";
  background-color: var(--color-blue);
  background-image: url(../img/common/mrk-arrow-right-w.svg);
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 50%;
  aspect-ratio: 1;
}
@media (width >= 769px) {
  .button::after {
    right: 1.0416666667vw;
    width: 2.7083333333vw;
    background-size: 0.78125vw;
  }
}
@media (width < 768px) {
  .button::after {
    right: 2.5641025641vw;
    width: 8.7179487179vw;
    background-size: 2.5641025641vw;
  }
}
.button::after {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.button:hover {
  background-color: var(--color-blue);
  color: #fff;
}
@media (width >= 769px) {
  .button {
    width: 18.2291666667vw;
    height: 4.0625vw;
    padding-right: 2.6041666667vw;
    font-size: 1.0416666667vw;
  }
}
@media (width < 768px) {
  .button {
    width: 79.4871794872vw;
    height: 13.8461538462vw;
    padding-right: 7.6923076923vw;
    font-size: 3.5897435897vw;
  }
}

.link-mark {
  text-decoration: none;
}
.link-mark::after {
  content: "";
  background-color: var(--color-blue);
  background-image: url(../img/common/mrk-arrow-right-w.svg);
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 50%;
  aspect-ratio: 1;
}
@media (width >= 769px) {
  .link-mark::after {
    right: 1.0416666667vw;
    width: 2.7083333333vw;
    background-size: 0.78125vw;
  }
}
@media (width < 768px) {
  .link-mark::after {
    right: 2.5641025641vw;
    width: 8.7179487179vw;
    background-size: 2.5641025641vw;
  }
}
@media (width >= 769px) {
  .link-mark::after {
    width: 2.1875vw;
    background-size: 0.5729166667vw;
  }
}
.link-mark:hover::after {
  animation: nav-icon 0.4s ease-in forwards;
}

@keyframes nav-icon {
  0% {
    transform: translateX(-0.4em);
  }
  100% {
    transform: translateX(0);
  }
}
.zoom {
  overflow: hidden;
}
.zoom img {
  transition: scale 0.4s ease-out;
}
.zoom:hover img {
  scale: 1.04;
  opacity: 1;
}

.bottom-menu {
  border-top: 1px solid var(--color-blue);
}
@media (width >= 769px) {
  .bottom-menu {
    padding-inline: 8.59375vw;
  }
}
@media (width < 768px) {
  .bottom-menu {
    padding-inline: 5.1282051282vw;
  }
}
@media (width >= 769px) {
  .bottom-menu {
    margin-top: 6.25vw;
    padding-top: 6.25vw;
  }
}
@media (width < 768px) {
  .bottom-menu {
    margin-top: 11.5384615385vw;
    padding-top: 11.5384615385vw;
  }
}

.menu_has_image {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.menu_has_image li {
  position: relative;
}
@media (width >= 769px) {
  .menu_has_image {
    grid-area: 2/1/3/3;
    gap: 1.0416666667vw 1.3020833333vw;
  }
}
@media (width < 768px) {
  .menu_has_image {
    gap: 7.6923076923vw 3.8461538462vw;
  }
}
.menu_has_image .zoom {
  position: relative;
  display: block;
  border: 1px solid var(--color-blue);
}
.menu_has_image .zoom::after {
  content: "";
  background-color: var(--color-blue);
  background-image: url(../img/common/mrk-arrow-right-w.svg);
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 50%;
  aspect-ratio: 1;
}
@media (width >= 769px) {
  .menu_has_image .zoom::after {
    right: 1.0416666667vw;
    width: 2.7083333333vw;
    background-size: 0.78125vw;
  }
}
@media (width < 768px) {
  .menu_has_image .zoom::after {
    right: 2.5641025641vw;
    width: 8.7179487179vw;
    background-size: 2.5641025641vw;
  }
}
.menu_has_image .zoom::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background-color: rgba(255, 255, 255, 0.5);
}
.menu_has_image .zoom::after {
  position: absolute;
  z-index: 3;
}
@media (width >= 769px) {
  .menu_has_image .zoom {
    border-radius: 2.6041666667vw;
  }
  .menu_has_image .zoom::after {
    bottom: 1.5625vw;
    right: 1.8229166667vw;
  }
}
@media (width < 768px) {
  .menu_has_image .zoom {
    border-radius: 5.1282051282vw;
    aspect-ratio: 17/14;
  }
  .menu_has_image .zoom img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    max-width: inherit;
    max-height: inherit;
  }
  .menu_has_image .zoom::after {
    bottom: 2.5641025641vw;
    right: 2.5641025641vw;
  }
}
.menu_has_image .label {
  pointer-events: none;
}
@media (width >= 769px) {
  .menu_has_image .label {
    position: absolute;
    z-index: 3;
    top: 50%;
    transform: translateY(-50%);
    right: 1.8229166667vw;
    display: grid;
    gap: 0.5em;
    text-align: right;
  }
}
.menu_has_image .ja {
  font-weight: bold;
}
@media (width >= 769px) {
  .menu_has_image .ja {
    font-size: 1.5625vw;
  }
}
@media (width < 768px) {
  .menu_has_image .ja {
    display: block;
    margin-top: 1.2820512821vw;
    text-align: right;
    font-size: 3.5897435897vw;
  }
}
.menu_has_image .en {
  font-family: var(--font-en);
}
@media (width >= 769px) {
  .menu_has_image .en {
    font-size: 1.0416666667vw;
  }
}
@media (width < 768px) {
  .menu_has_image .en {
    position: absolute;
    z-index: 2;
    top: 2.5641025641vw;
    right: 5.1282051282vw;
    font-size: 4.1025641026vw;
  }
}/*# sourceMappingURL=base.css.map */