/* =========================================================
body
========================================================= */
body {
  background: #fff;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  word-break: break-word;
  font-feature-settings: "palt";
}

input, button, textarea, select {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  box-sizing: border-box;
  outline: none;
}

::-moz-placeholder {
  color: #A3A3A3;
}

:-ms-input-placeholder {
  color: #A3A3A3;
}

::placeholder {
  color: #A3A3A3;
}

* {
  letter-spacing: 0.04em;
}

*:before, *:after {
  display: block;
}

img {
  max-width: 100%;
  height: auto;
}

img.w100 {
  width: 100%;
}

a {
  text-decoration: none;
}

@media (max-width: 768px) {
  .pc-br {
    display: none;
  }
}
@media (min-width: 769px) {
  .pc-br {
    display: inline;
  }
}
@media (max-width: 768px) {
  .sp-br {
    display: inline;
  }
}
@media (min-width: 769px) {
  .sp-br {
    display: none;
  }
}
@media (max-width: 768px) {
  .pc-disp {
    display: none !important;
  }
}
@media (min-width: 769px) {
  .sp-disp {
    display: none !important;
  }
}
@media (hover: hover) {
  .opacity-link {
    transition: opacity 0.2s ease;
  }

  .opacity-link:hover {
    opacity: 0.6;
  }
}
.txt-link {
  text-decoration: underline;
  color: #888;
}

@media (hover: hover) {
  .txt-link:hover {
    text-decoration: none;
  }
}
a[href*="tel:"] {
  text-decoration: underline;
}

@media (hover: hover) {
  a[href*="tel:"] {
    text-decoration: none;
    pointer-events: none;
  }
}
.anchor-hook {
  width: 0;
  height: 0;
  position: relative;
  z-index: -10;
}

@media (max-width: 768px) {
  .anchor-hook {
    margin: -86px 0 0 0 !important;
    padding: 86px 0 0 0 !important;
  }
}
@media (min-width: 769px) {
  .anchor-hook {
    margin: -113px 0 0 0 !important;
    padding: 113px 0 0 0 !important;
  }
}
.wrapper {
  min-width: 320px;
}

/* =========================================================
common parts
========================================================= */
/*------------------------------------------
marker
------------------------------------------*/
.cmn-marker01 {
  background: #F0F0F0;
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone;
  border: solid #F0F0F0;
  border-width: 0 0.5em;
}

/*------------------------------------------
page
------------------------------------------*/
.page-hd {
  padding: 20px 0;
  background: #F0F0F0;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .page-hd {
    min-height: 143px;
  }
}
@media (min-width: 769px) {
  .page-hd {
    min-height: 240px;
  }
}
@media (max-width: 768px) {
  [class*=cmn-cont-] {
    padding: 0 6.1333333333vw;
  }
}
@media (min-width: 769px) {
  [class*=cmn-cont-] {
    padding: 0 6.0761346999vw;
  }
}
@media (min-width: 769px) {
  .cmn-cont-80 .cont-in {
    width: 80%;
    margin: 0 auto;
  }
}
/*------------------------------------------
title
------------------------------------------*/
.cmn-ttl01 {
  text-align: center;
}

.cmn-ttl01 .en {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  line-height: 1;
  font-weight: 600;
  position: relative;
}

@media (max-width: 768px) {
  .cmn-ttl01 .en {
    padding: 0 0 13px;
    font-size: clamp(10px, 8vw, 30px);
  }
}
@media (min-width: 769px) {
  .cmn-ttl01 .en {
    padding: 0 0 18px;
    font-size: 60px;
  }
}
.cmn-ttl01 .en::before {
  content: "";
  height: 4px;
  background: #888;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 768px) {
  .cmn-ttl01 .en::before {
    width: 40px;
  }
}
@media (min-width: 769px) {
  .cmn-ttl01 .en::before {
    width: 80px;
  }
}
.cmn-ttl01 .ja {
  line-height: 1;
}

@media (max-width: 768px) {
  .cmn-ttl01 .ja {
    margin: 10px auto 0;
    font-size: 12px;
  }
}
@media (min-width: 769px) {
  .cmn-ttl01 .ja {
    margin: 20px auto 0;
    font-size: 14px;
  }
}
.cmn-ttl02 {
  text-align: center;
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-ttl02 {
    font-size: 18px;
    line-height: 1.4444444444;
  }
}
@media (min-width: 769px) {
  .cmn-ttl02 {
    font-size: 30px;
    line-height: 1.4666666667;
  }
}
.cmn-ttl03 {
  border-bottom: 1px solid #000;
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-ttl03 {
    padding: 0 0 3px;
    font-size: 16px;
    line-height: 1.75;
  }
}
@media (min-width: 769px) {
  .cmn-ttl03 {
    padding: 0 0 6px;
    font-size: 22px;
    line-height: 1.6363636364;
  }
}
/*------------------------------------------
button
------------------------------------------*/
.cmn-btn01 {
  width: -moz-fit-content;
  width: fit-content;
}

.cmn-btn01 a,
.cmn-btn01 button {
  display: flex;
  align-items: center;
}

.cmn-btn01 .txt {
  display: inline-block;
  align-items: center;
  padding: 0 0 9px;
  border-bottom: 1px solid #000;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-weight: 500;
  position: relative;
}

@media (max-width: 768px) {
  .cmn-btn01 .txt {
    font-size: 14px;
    line-height: 1.2857142857;
  }
}
@media (min-width: 769px) {
  .cmn-btn01 .txt {
    font-size: 20px;
    line-height: 1.2;
  }
}
.cmn-btn01 .txt.ja {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-btn01 .txt.ja {
    font-size: 14px;
    line-height: 1.4285714286;
  }
}
@media (min-width: 769px) {
  .cmn-btn01 .txt.ja {
    font-size: 18px;
    line-height: 1.4444444444;
  }
}
.cmn-btn01 .ico {
  border: 1px solid #000;
  border-radius: 50%;
  position: relative;
}

@media (max-width: 768px) {
  .cmn-btn01 .ico {
    width: 54px;
    height: 54px;
    margin: 0 0 0 20px;
  }
}
@media (min-width: 769px) {
  .cmn-btn01 .ico {
    width: 100px;
    height: 100px;
    margin: 0 0 0 30px;
  }
}
.cmn-btn01 .arrow::before {
  content: "";
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  transform: rotate(45deg);
  position: absolute;
}

@media (max-width: 768px) {
  .cmn-btn01 .arrow::before {
    width: 8px;
    height: 8px;
    top: 22px;
    left: 21px;
  }
}
@media (min-width: 769px) {
  .cmn-btn01 .arrow::before {
    width: 16px;
    height: 16px;
    top: 42px;
    left: 38px;
  }
}
.cmn-btn01 .arrow.down {
  transform: rotate(90deg);
}

.cmn-btn01 .arrow.re {
  transform: rotate(180deg);
}

.cmn-btn01 .ig::before {
  content: "";
  width: 25px;
  height: 25px;
  background: url(../images/common/ico_ig_b.svg) no-repeat center/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.cmn-btn01 .external::before {
  content: "";
  background: url(../images/common/ico_extarnal.svg) no-repeat center/contain;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@media (max-width: 768px) {
  .cmn-btn01 .external::before {
    width: 13px;
    height: 13px;
  }
}
@media (min-width: 769px) {
  .cmn-btn01 .external::before {
    width: 21px;
    height: 21px;
  }
}
@media (max-width: 768px) {
  .cmn-btn01.re .ico {
    margin: 0 20px 0 0;
  }
}
@media (min-width: 769px) {
  .cmn-btn01.re .ico {
    margin: 0 30px 0 0;
  }
}
.cmn-btn02 a,
.cmn-btn02 button {
  display: block;
  width: 100%;
  padding: 0 0 8px;
  border-bottom: 1px solid #000;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  line-height: 1;
  font-weight: 500;
  position: relative;
}

@media (max-width: 768px) {
  .cmn-btn02 a,
.cmn-btn02 button {
    font-size: 14px;
  }
}
@media (min-width: 769px) {
  .cmn-btn02 a,
.cmn-btn02 button {
    font-size: 18px;
  }
}
.cmn-btn02 a::after,
.cmn-btn02 button::after {
  content: "";
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  transform: rotate(45deg);
  right: 0;
  position: absolute;
  top: 10%;
}

@media (max-width: 768px) {
  .cmn-btn02 a::after,
.cmn-btn02 button::after {
    width: 9px;
    height: 9px;
  }
}
@media (min-width: 769px) {
  .cmn-btn02 a::after,
.cmn-btn02 button::after {
    width: 12px;
    height: 12px;
  }
}
.cmn-btn02.re a {
  text-align: right;
}

.cmn-btn02.re a::after {
  left: 0;
  right: auto;
  transform: rotate(-135deg);
}

.cmn-btn03 a,
.cmn-btn03 button {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 1.3em 8px 0;
  border-bottom: 1px solid #888;
  color: #888;
  line-height: 1.5;
  font-weight: 500;
  position: relative;
}

@media (max-width: 768px) {
  .cmn-btn03 a,
.cmn-btn03 button {
    font-size: 13px;
  }
}
@media (min-width: 769px) {
  .cmn-btn03 a,
.cmn-btn03 button {
    font-size: 16px;
  }
}
.cmn-btn03 a::after,
.cmn-btn03 button::after {
  content: "";
  border-top: 2px solid #888;
  border-right: 2px solid #888;
  transform: rotate(45deg) translateY(-50%);
  right: 0;
  position: absolute;
}

@media (max-width: 768px) {
  .cmn-btn03 a::after,
.cmn-btn03 button::after {
    width: 8px;
    height: 8px;
    top: 35%;
  }
}
@media (min-width: 769px) {
  .cmn-btn03 a::after,
.cmn-btn03 button::after {
    width: 10px;
    height: 10px;
    top: 40%;
  }
}
.cmn-btn03.re a {
  text-align: right;
}

.cmn-btn03.re a::after {
  left: 0;
  right: auto;
  transform: rotate(-135deg);
}

.cmn-btn03.down a::after {
  transform: rotate(135deg);
  top: 20%;
}

.cmn-btn03.external a {
  padding-right: 1.9em;
}

.cmn-btn03.external a::after {
  width: 15px;
  height: 15px;
  -webkit-mask: url(../images/common/ico_extarnal.svg) no-repeat center/contain;
          mask: url(../images/common/ico_extarnal.svg) no-repeat center/contain;
  background: #888;
  transform: translateY(-50%);
}

.cmn-btn03.pdf a {
  padding-right: 0;
  padding-left: 1.9em;
}

.cmn-btn03.pdf a::after {
  width: 15px;
  height: 15px;
  -webkit-mask: url(../images/common/ico_pdf.svg) no-repeat center/contain;
          mask: url(../images/common/ico_pdf.svg) no-repeat center/contain;
  background: #888;
  transform: translateY(-50%);
  right: auto;
  left: 0;
}

@media (max-width: 768px) {
  .cmn-btn03.pdf a::after {
    width: 15px;
    height: 15px;
  }
}
@media (min-width: 769px) {
  .cmn-btn03.pdf a::after {
    width: 19px;
    height: 19px;
  }
}
/*------------------------------------------
title
------------------------------------------*/
.cmn-tag {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-weight: 500;
}

.cmn-tag.before {
  background: #fff;
  border: 1px solid #000;
  color: #000;
}

.cmn-tag.in-session {
  background: #000;
  color: #fff;
}

.cmn-tag.end {
  background: #A3A3A3;
  color: #fff;
}

.cmn-tag.new {
  background: #000;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-weight: 500;
}

.cmn-tag.journal {
  background: #000;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-weight: 500;
}

/*------------------------------------------
image
------------------------------------------*/
.cmn-img01 {
  aspect-ratio: 1/1;
  overflow: hidden;
  position: relative;
}

@media (max-width: 768px) {
  .cmn-img01 {
    grid-area: image;
  }
}
.cmn-img01 img {
  width: 100%;
  height: 100%;
}

.cmn-img01 .top,
.cmn-img01 .bottom {
  width: 100%;
  height: 100%;
}

.cmn-img01 .top {
  position: absolute;
  top: 0;
  left: 0;
}

.cmn-img01 .top img {
  -o-object-fit: contain;
     object-fit: contain;
}

.cmn-img01 .bottom {
  filter: blur(10px);
}

.cmn-img01 .bottom img {
  -o-object-fit: cover;
     object-fit: cover;
}

/*------------------------------------------
card
------------------------------------------*/
@media (max-width: 768px) {
  .cmn-card01 a {
    padding: 25px 0;
    display: grid;
    grid-template-columns: 45.59% 1fr;
    grid-template-rows: max-content 1fr;
    grid-template-areas: "tag tag" "image detail";
    grid-gap: 4px 15px;
  }
}
@media (min-width: 769px) {
  .cmn-card01 a {
    display: block;
    padding: 30px 0 0;
    position: relative;
  }
}
.cmn-card01 .cmn-img01 {
  border: 1px solid #F0F0F0;
}

@media (max-width: 768px) {
  .cmn-card01 .cmn-tag {
    width: 50px;
    height: 20px;
    font-size: 11px;
    grid-area: tag;
  }
}
@media (min-width: 769px) {
  .cmn-card01 .cmn-tag {
    width: 60px;
    height: 26px;
    font-size: 13px;
    position: absolute;
    top: 0;
    left: 0;
  }
}
@media (min-width: 769px) {
  .cmn-card01 .cmn-tag.new {
    font-size: 14px;
  }
}
@media (max-width: 768px) {
  .cmn-card01 .detail {
    grid-area: detail;
  }
}
@media (min-width: 769px) {
  .cmn-card01 .detail {
    margin: 15px 0 0;
  }
}
.cmn-card01 .txt01 {
  margin: 0 auto 13px;
  padding: 0 0 7px;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-size: 12px;
  line-height: 1;
  font-weight: 500;
  position: relative;
}

.cmn-card01 .txt01::after {
  content: "";
  width: 15px;
  height: 2px;
  background: #888;
  position: absolute;
  bottom: 0;
  left: 0;
}

.cmn-card01 .txt02 {
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-card01 .txt02 {
    font-size: 13px;
    line-height: 1.4615384615;
  }
}
@media (min-width: 769px) {
  .cmn-card01 .txt02 {
    font-size: 15px;
    line-height: 1.4;
  }
}
.cmn-card01 .txt03 {
  margin: 5px auto 0;
}

@media (max-width: 768px) {
  .cmn-card01 .txt03 {
    font-size: 11px;
    line-height: 1.4545454545;
  }
}
@media (min-width: 769px) {
  .cmn-card01 .txt03 {
    font-size: 12px;
    line-height: 1.4166666667;
  }
}
.cmn-card01 .txt04 {
  margin: 8px auto 0;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  color: #A3A3A3;
  line-height: 1.3;
  letter-spacing: 0.12em;
}

@media (max-width: 768px) {
  .cmn-card01 .txt04 {
    font-size: 10px;
  }
}
@media (min-width: 769px) {
  .cmn-card01 .txt04 {
    font-size: 12px;
  }
}
.cmn-card01 .line-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.cmn-card02 .img {
  aspect-ratio: 1/1;
  overflow: hidden;
  position: relative;
}

@media (max-width: 768px) {
  .cmn-card02 .img {
    grid-area: image;
  }
}
.cmn-card02 .img img {
  width: 100%;
  height: 100%;
}

.cmn-card02 .img .top,
.cmn-card02 .img .bottom {
  width: 100%;
  height: 100%;
}

.cmn-card02 .img .top {
  position: absolute;
  top: 0;
  left: 0;
}

.cmn-card02 .img .top img {
  -o-object-fit: contain;
     object-fit: contain;
}

.cmn-card02 .img .bottom {
  filter: blur(10px);
}

.cmn-card02 .img .bottom img {
  -o-object-fit: cover;
     object-fit: cover;
}

.cmn-card02 .detail {
  display: grid;
  grid-gap: 0 14px;
}

@media (max-width: 768px) {
  .cmn-card02 .detail {
    padding: 10px 0 0;
    grid-template-columns: clamp(10px, 16vw, 60px) 1fr;
    grid-template-rows: repeat(3, max-content);
    grid-template-areas: "logo tag" "text01 text01" "text02 text02";
  }
}
@media (min-width: 769px) {
  .cmn-card02 .detail {
    padding: 14px 0 0;
    grid-template-columns: max-content 1fr;
    grid-template-rows: repeat(2, max-content) 1fr;
    grid-template-areas: "logo tag" "logo text01" "logo text02";
  }
}
.cmn-card02 .logo {
  grid-area: logo;
  justify-items: center;
  aspect-ratio: 1/1;
  box-sizing: content-box;
  border: 1px solid #EDEDED;
}

@media (max-width: 768px) {
  .cmn-card02 .logo {
    width: clamp(10px, 16vw, 60px);
    margin: 0 0 10px;
  }
}
@media (min-width: 769px) {
  .cmn-card02 .logo {
    width: 80px;
  }
}
.cmn-card02 .tag {
  grid-area: tag;
  height: 26px;
  background: #000;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

@media (max-width: 768px) {
  .cmn-card02 .tag {
    width: clamp(10px, 15.4666666667vw, 58px);
    padding: 6px;
    align-self: center;
  }
}
@media (min-width: 769px) {
  .cmn-card02 .tag {
    width: 64px;
    padding: 9px;
    margin: 0 0 10px;
  }
}
.cmn-card02 .tag .map {
  font-size: 10px;
  line-height: 1;
}

.cmn-card02 .tag .num {
  line-height: 1;
}

@media (max-width: 768px) {
  .cmn-card02 .tag .num {
    font-size: 13px;
  }
}
@media (min-width: 769px) {
  .cmn-card02 .tag .num {
    font-size: 15px;
  }
}
.cmn-card02 .txt01 {
  grid-area: text01;
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-card02 .txt01 {
    font-size: 13px;
    line-height: 1.4615384615;
  }
}
@media (min-width: 769px) {
  .cmn-card02 .txt01 {
    font-size: 15px;
    line-height: 1.4;
  }
}
.cmn-card02 .txt02 {
  grid-area: text02;
  color: #A3A3A3;
}

@media (max-width: 768px) {
  .cmn-card02 .txt02 {
    margin: 6px 0 0;
    font-size: 11px;
    line-height: 1.4545454545;
  }
}
@media (min-width: 769px) {
  .cmn-card02 .txt02 {
    margin: 10px 0 0;
    font-size: 12px;
    line-height: 1.4166666667;
  }
}
.cmn-card03 {
  background: #fff;
}

@media (max-width: 768px) {
  .cmn-card03 .detail {
    padding: 15px 20px 27px;
  }
}
@media (min-width: 769px) {
  .cmn-card03 .detail {
    padding: 15px 25px 27px;
  }
}
.cmn-card03 .detail > * + * {
  margin: 10px auto 0;
}

.cmn-card03 .txt01 {
  font-size: 12px;
  line-height: 1.4166666667;
}

.cmn-card03 .txt02 {
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-card03 .txt02 {
    font-size: 14px;
    line-height: 1.7142857143;
  }
}
@media (min-width: 769px) {
  .cmn-card03 .txt02 {
    font-size: 15px;
    line-height: 1.6;
  }
}
@media (max-width: 768px) {
  .cmn-card03 .txt03 {
    font-size: 13px;
    line-height: 1.8461538462;
  }
}
@media (min-width: 769px) {
  .cmn-card03 .txt03 {
    font-size: 14px;
    line-height: 1.7142857143;
  }
}
.cmn-card03 .link {
  font-size: 12px;
  line-height: 1.4166666667;
}

.cmn-card04 a {
  display: block;
}

.cmn-card04 .cmn-tag {
  width: -moz-fit-content;
  width: fit-content;
  letter-spacing: 0.06em;
}

@media (max-width: 768px) {
  .cmn-card04 .cmn-tag {
    height: 20px;
    margin: 0 0 10px;
    padding: 0 10px;
    font-size: 11px;
  }
}
@media (min-width: 769px) {
  .cmn-card04 .cmn-tag {
    height: 26px;
    margin: 0 0 4px;
    padding: 0 11px;
    font-size: 14px;
  }
}
.cmn-card04 .img + [class*=txt] {
  margin: 10px auto 0;
}

@media (max-width: 768px) {
  .cmn-card04 [class*=txt] {
    margin: 5px auto 0;
  }
}
@media (min-width: 769px) {
  .cmn-card04 [class*=txt] {
    margin: 10px auto 0;
  }
}
.cmn-card04 .txt01 {
  color: #A3A3A3;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  line-height: 1;
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-card04 .txt01 {
    font-size: 10px;
  }
}
@media (min-width: 769px) {
  .cmn-card04 .txt01 {
    font-size: 12px;
  }
}
@media (max-width: 768px) {
  .cmn-card04 .txt02 {
    font-size: 11px;
    line-height: 1.4545454545;
  }
}
@media (min-width: 769px) {
  .cmn-card04 .txt02 {
    font-size: 12px;
    line-height: 1.8333333333;
  }
}
.cmn-card04 .txt03 {
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-card04 .txt03 {
    font-size: 13px;
    line-height: 1.8461538462;
  }
}
@media (min-width: 769px) {
  .cmn-card04 .txt03 {
    font-size: 15px;
    line-height: 1.8666666667;
  }
}
.cmn-card04 .list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

@media (max-width: 768px) {
  .cmn-card04 .list {
    margin: 12px auto 0;
  }
}
@media (min-width: 769px) {
  .cmn-card04 .list {
    margin: 15px auto 0;
  }
}
.cmn-card04 .list .tag {
  padding: 6px 9px 7px;
  border: 1px solid #A3A3A3;
  color: #A3A3A3;
  line-height: 1;
}

@media (max-width: 768px) {
  .cmn-card04 .list .tag {
    font-size: 11px;
  }
}
@media (min-width: 769px) {
  .cmn-card04 .list .tag {
    font-size: 12px;
  }
}
/*------------------------------------------
decoration
------------------------------------------*/
@media (max-width: 768px) {
  .bg-pat-r {
    background: url(../images/common/bg_pat01_r.png) repeat-y right top/64px auto;
  }
}
@media (min-width: 769px) {
  .bg-pat-r {
    background: url(../images/common/bg_pat01_r.png) repeat-y right top/210px auto;
  }
}
/* =========================================================
common layout
========================================================= */
/*------------------------------------------
no item
------------------------------------------*/
.no-item {
  font-weight: 500;
  text-align: center;
}

@media (max-width: 768px) {
  .no-item {
    font-size: 14px;
    line-height: 1.4285714286;
  }
}
@media (min-width: 769px) {
  .no-item {
    font-size: 20px;
    line-height: 1.45;
  }
}
/*------------------------------------------
search
------------------------------------------*/
.search-block .in {
  display: flex;
  border-bottom: 1px solid #000;
}

.search-block input[type=submit] {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  background: url(../images/common/ico_search.svg) no-repeat center/contain;
}

.search-block input[type=text] {
  flex: 1;
  display: block;
  font-size: 12px;
  line-height: 1;
}

/*------------------------------------------
archive
------------------------------------------*/
.archive-block {
  position: relative;
  z-index: 10;
}

.archive-block button {
  display: block;
  width: 100%;
  padding: 6px 0;
  border-bottom: 1px solid #000;
  font-size: 14px;
  line-height: 1;
  white-space: nowrap;
  position: relative;
}

.archive-block button::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid #000;
  border-bottom: 2px solid #000;
  transform: rotate(45deg);
  position: absolute;
  top: 35%;
  right: 0;
}

.archive-block .list {
  display: none;
  width: 100%;
  max-height: 50vh;
  overflow: auto;
  position: absolute;
  top: 100%;
  left: 0;
}

.archive-block .list li {
  border-bottom: 1px solid #fff;
  background: #F4F4F4;
}

.archive-block .list li:last-child {
  border-bottom: none;
}

.archive-block .list a {
  height: 44px;
  font-size: 14px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/*------------------------------------------
pager
------------------------------------------*/
.pager-block {
  position: relative;
}

@media (max-width: 768px) {
  .pager-block {
    min-height: 23px;
  }
}
@media (min-width: 769px) {
  .pager-block {
    min-height: 27px;
  }
}
.pager-block .cmn-btn02 {
  position: absolute;
  top: 0;
}

@media (max-width: 768px) {
  .pager-block .cmn-btn02 {
    width: 100px;
  }
}
@media (min-width: 769px) {
  .pager-block .cmn-btn02 {
    width: 160px;
  }
}
.pager-block .cmn-btn02.back {
  left: 0;
}

.pager-block .cmn-btn02.next {
  right: 0;
}

.pager-block .num-list {
  display: flex;
  justify-content: center;
  align-items: center;
}

@media (min-width: 769px) {
  .pager-block .num-list {
    gap: 20px;
  }
}
.pager-block .num-list .num,
.pager-block .num-list .ellipsis {
  text-align: center;
}

@media (max-width: 768px) {
  .pager-block .num-list .num,
.pager-block .num-list .ellipsis {
    width: clamp(10px, 8vw, 30px);
  }
}
@media (min-width: 769px) {
  .pager-block .num-list .num,
.pager-block .num-list .ellipsis {
    width: 40px;
  }
}
.pager-block .num-list .num {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
}

.pager-block .num-list .num a {
  color: #A3A3A3;
  line-height: 1;
}

@media (max-width: 768px) {
  .pager-block .num-list .num a {
    font-size: 13px;
  }
}
@media (min-width: 769px) {
  .pager-block .num-list .num a {
    font-size: 18px;
  }
}
.pager-block .num-list .num.current a {
  pointer-events: none;
  color: #000;
}

.pager-block .num-list .btn a {
  border: 1px solid #000;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .pager-block .num-list .btn a {
    width: 36px;
    height: 36px;
  }
}
@media (min-width: 769px) {
  .pager-block .num-list .btn a {
    width: 54px;
    height: 54px;
  }
}
.pager-block .num-list .btn a::before {
  content: "";
  width: 8px;
  height: 8px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
}

@media (max-width: 768px) {
  .pager-block .num-list .back {
    margin-right: 20px;
  }
}
.pager-block .num-list .back a {
  transform: rotate(-135deg);
}

@media (max-width: 768px) {
  .pager-block .num-list .next {
    margin-left: 20px;
  }
}
.pager-block .num-list .next a {
  transform: rotate(45deg);
}

/*------------------------------------------
sns
------------------------------------------*/
.sns-block {
  display: flex;
  align-items: center;
}

.sns-block .head {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-size: 16px;
  line-height: 1;
  font-weight: 600;
  display: flex;
  align-items: center;
}

.sns-block .head::after {
  content: "";
  width: 40px;
  height: 1px;
  margin: 0 0 0 20px;
  background: #000;
}

.sns-block .sns-list {
  margin: 0 0 0 20px;
  display: flex;
  gap: 16px;
}

.sns-block .sns-list a {
  display: block;
  width: 30px;
}

/*------------------------------------------
share
------------------------------------------*/
.share-block {
  display: flex;
  align-items: center;
}

.share-block .head {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-size: 14px;
  line-height: 1;
  font-weight: 500;
  display: flex;
  align-items: center;
}

.share-block .sns-list {
  margin: 0 0 0 24px;
  display: flex;
  gap: 16px;
}

.share-block .sns-list a {
  display: block;
  width: 30px;
}

/*------------------------------------------
list
------------------------------------------*/
.col3-1 {
  display: grid;
}

@media (min-width: 769px) {
  .col3-1 {
    grid-gap: 60px 30px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .col3-1 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1025px) {
  .col3-1 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .col3-1 .cmn-card01 {
    border-bottom: 1px solid #EDEDED;
  }
}
@media (max-width: 768px) {
  .col3-1.type02 {
    grid-gap: 30px;
  }
}
.col3-2 {
  display: grid;
}

@media (max-width: 768px) {
  .col3-2 {
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 6px;
  }
}
@media (min-width: 769px) {
  .col3-2 {
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 20px;
  }
}
.col4-1 {
  display: grid;
}

@media (min-width: 769px) {
  .col4-1 {
    grid-gap: 32px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .col4-1 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1025px) {
  .col4-1 {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 768px) {
  .col4-1 .cmn-card01 {
    border-bottom: 1px solid #EDEDED;
  }
}
.col4-2 {
  display: grid;
}

@media (max-width: 768px) {
  .col4-2 {
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 33px 20px;
  }
}
@media (min-width: 769px) {
  .col4-2 {
    grid-gap: 32px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .col4-2 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1025px) {
  .col4-2 {
    grid-template-columns: repeat(4, 1fr);
  }
}
.col2-1 {
  display: grid;
}

@media (max-width: 768px) {
  .col2-1 {
    grid-gap: 40px;
  }
}
@media (min-width: 769px) {
  .col2-1 {
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 63px 50px;
  }
}
/*------------------------------------------
table
------------------------------------------*/
.cmn-tbl01 {
  border-right: 1px solid #EDEDED;
}

.cmn-tbl01 .bundle {
  display: flex;
}

@media (max-width: 768px) {
  .cmn-tbl01 .bundle {
    font-size: 13px;
    line-height: 2;
  }
}
@media (min-width: 769px) {
  .cmn-tbl01 .bundle {
    font-size: 16px;
    line-height: 1.875;
  }
}
.cmn-tbl01 dt {
  border-bottom: 1px solid #fff;
  background: #F4F4F4;
  font-weight: 500;
  text-align: center;
}

@media (max-width: 768px) {
  .cmn-tbl01 dt {
    padding: 20px 0;
  }
}
@media (min-width: 769px) {
  .cmn-tbl01 dt {
    padding: 30px 0;
  }
}
.cmn-tbl01 dd {
  flex: 1;
  border-bottom: 1px solid #EDEDED;
  background: #fff;
}

@media (max-width: 768px) {
  .cmn-tbl01 dd {
    padding: 20px;
  }
}
@media (min-width: 769px) {
  .cmn-tbl01 dd {
    padding: 30px;
  }
}
.cmn-tbl01 .bundle:first-child dd {
  border-top: 1px solid #EDEDED;
}

/*------------------------------------------
navigation
------------------------------------------*/
.cmn-nav01 {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 0;
}

.cmn-nav01 .item {
  width: 33.33%;
  border-right: 1px solid #EDEDED;
}

.cmn-nav01 .item:nth-child(3n) {
  border-right: none;
}

.cmn-nav01 .item a {
  display: block;
}

.cmn-nav01 .ico {
  width: 30px;
  height: 30px;
  margin: 0 auto;
}

.cmn-nav01 .ico img {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}

.cmn-nav01 .txt {
  margin: 10px auto 0;
  font-size: 10px;
  line-height: 1.5;
  text-align: center;
}

.cmn-nav02 .list {
  display: flex;
  flex-wrap: wrap;
}

.cmn-nav02 .item {
  border-bottom: 1px solid #000;
}

.cmn-nav02 a {
  height: 100%;
  padding: 20px 0;
  position: relative;
  line-height: 1.5;
  font-weight: 500;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .cmn-nav02 a {
    font-size: 13px;
  }
}
@media (min-width: 769px) {
  .cmn-nav02 a {
    font-size: clamp(12px, 1.17vw, 16px);
  }
}
.cmn-nav02 a::after {
  content: "";
  border-right: 2px solid #000;
  border-bottom: 2px solid #000;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

@media (max-width: 768px) {
  .cmn-nav02 a::after {
    width: 6px;
    height: 6px;
    right: 7px;
  }
}
@media (min-width: 769px) {
  .cmn-nav02 a::after {
    width: 11px;
    height: 11px;
    right: 10px;
  }
}
.cmn-floor-nav .list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

@media (max-width: 768px) {
  .cmn-floor-nav .list {
    gap: 8px 6px;
  }
}
@media (min-width: 769px) {
  .cmn-floor-nav .list {
    gap: 15px;
  }
}
@media (max-width: 768px) {
  .cmn-floor-nav .item {
    width: 57px;
  }
}
@media (min-width: 769px) {
  .cmn-floor-nav .item {
    width: 80px;
  }
}
.cmn-floor-nav .item a {
  aspect-ratio: 1/1;
  border: 1px solid #000;
  border-radius: 50%;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-weight: 500;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .cmn-floor-nav .item a {
    font-size: 20px;
  }
}
@media (min-width: 769px) {
  .cmn-floor-nav .item a {
    font-size: 26px;
  }
}
.cmn-floor-nav .item .small {
  display: inline-block;
  padding-top: 0.35em;
  font-size: 0.65em;
}

@media (max-width: 768px) {
  .cmn-floor-nav .item .txt {
    font-size: 16px;
  }
}
@media (min-width: 769px) {
  .cmn-floor-nav .item .txt {
    font-size: 20px;
  }
}
.cmn-floor-nav .item.current a {
  border: none;
  background: #888;
  color: #000;
}

.cmn-floor-nav .note {
  color: #A3A3A3;
}

@media (max-width: 768px) {
  .cmn-floor-nav .note {
    margin: 15px auto 0;
    font-size: 11px;
  }
}
@media (min-width: 769px) {
  .cmn-floor-nav .note {
    margin: 20px auto 0;
    font-size: 14px;
  }
}
/*------------------------------------------
block
------------------------------------------*/
@media (max-width: 768px) {
  .cmn-block01 + .cmn-block01 {
    margin: 40px auto 0;
  }
}
@media (min-width: 769px) {
  .cmn-block01 + .cmn-block01 {
    margin: 80px auto 0;
  }
}
.cmn-block01 .head {
  border-bottom: 1px solid #000;
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  .cmn-block01 .head {
    padding: 0 0 10px;
    gap: 20px;
  }
}
@media (min-width: 769px) {
  .cmn-block01 .head {
    padding: 0 0 15px;
    gap: 30px;
  }
}
.cmn-block01 .head .floor {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  line-height: 1;
  font-weight: 500;
}

@media (max-width: 768px) {
  .cmn-block01 .head .floor {
    font-size: 30px;
  }
}
@media (min-width: 769px) {
  .cmn-block01 .head .floor {
    font-size: 50px;
  }
}
.cmn-block01 .head .floor .small {
  font-size: 0.5em;
}

@media (max-width: 768px) {
  .cmn-block01 .col4-2 {
    margin: 20px auto 0;
  }
}
@media (min-width: 769px) {
  .cmn-block01 .col4-2 {
    margin: 30px auto 0;
  }
}
/*------------------------------------------
telop
------------------------------------------*/
.telop-block {
  background: #F4F4F4;
}

@media (max-width: 768px) {
  .telop-block {
    padding-top: 15px;
    padding-bottom: 20px;
  }
}
@media (min-width: 769px) {
  .telop-block {
    padding-top: 20px;
    padding-bottom: 20px;
  }
}
@media (min-width: 769px) {
  .telop-block .in {
    display: flex;
    align-items: center;
  }
}
.telop-block .head {
  display: flex;
  align-items: center;
  font-size: 15px;
  line-height: 1;
}

@media (max-width: 768px) {
  .telop-block .head {
    justify-content: center;
  }
}
@media (min-width: 769px) {
  .telop-block .head {
    width: 150px;
  }
}
.telop-block .head::before {
  content: "";
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  background: url(../images/common/ico_info.svg) no-repeat center/contain;
}

@media (max-width: 768px) {
  .telop-block .list {
    margin: 16px auto 0;
  }
}
@media (min-width: 769px) {
  .telop-block .list {
    flex: 1;
  }
}
.telop-block .telop {
  padding: 0 0 0 1.6em;
  position: relative;
}

@media (max-width: 768px) {
  .telop-block .telop {
    font-size: 12px;
    line-height: 1.8333333333;
  }
}
@media (min-width: 769px) {
  .telop-block .telop {
    font-size: 13px;
    line-height: 1.6923076923;
  }
}
.telop-block .telop::before {
  content: "";
  width: 6px;
  height: 6px;
  border-top: 1px solid #888;
  border-right: 1px solid #888;
  position: absolute;
  top: 0.7em;
  left: -0.2em;
  transform: rotate(45deg);
}

/*------------------------------------------
breadcrumb
------------------------------------------*/
@media (max-width: 768px) {
  .breadcrumb-block {
    padding-top: 60px;
  }
}
@media (min-width: 769px) {
  .breadcrumb-block {
    padding-top: 80px;
  }
}
.breadcrumb-block .item {
  display: inline;
}

@media (max-width: 768px) {
  .breadcrumb-block .item {
    font-size: 11px;
    line-height: 1.4545454545;
    margin-right: 8px;
  }
}
@media (min-width: 769px) {
  .breadcrumb-block .item {
    font-size: 14px;
    line-height: 1.4285714286;
    margin-right: 14px;
  }
}
.breadcrumb-block .item::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  transform: rotate(45deg) translateY(-1px);
}

@media (max-width: 768px) {
  .breadcrumb-block .item::after {
    margin-left: 8px;
  }
}
@media (min-width: 769px) {
  .breadcrumb-block .item::after {
    margin-left: 14px;
  }
}
.breadcrumb-block .item:last-child::after {
  content: none;
}

.breadcrumb-block a {
  color: #A3A3A3;
}

/* =========================================================
animation
========================================================= */
/*------------------------------------------
fade
------------------------------------------*/
.fade {
  opacity: 0;
  transition: opacity 0.7s ease-in-out;
}

.fade.is-active {
  opacity: 1;
}

/*------------------------------------------
fade up
------------------------------------------*/
.fadeup {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease-in-out, transform 0.7s ease-in-out;
}

.fadeup.is-active {
  opacity: 1;
  transform: translateY(0);
}

.wysiwyg {
  word-break: break-all;
}

.wysiwyg *,
.wysiwyg ::before,
.wysiwyg ::after {
  box-sizing: content-box;
}

.wysiwyg h1 {
  font-size: 2em;
  font-weight: 500;
}

.wysiwyg h2 {
  font-size: 1.5em;
  font-weight: 500;
}

.wysiwyg h3 {
  font-size: 1.17em;
  font-weight: 500;
}

.wysiwyg h4 {
  font-weight: 500;
}

.wysiwyg h5 {
  font-size: 0.83em;
  font-weight: 500;
}

.wysiwyg h6 {
  font-size: 0.67em;
  font-weight: 500;
}

.wysiwyg hr {
  display: block;
}

.wysiwyg a {
  text-decoration: underline;
  color: #888;
}

@media (hover: hover) {
  .wysiwyg a:hover {
    text-decoration: none;
  }
}
.wysiwyg strong,
.wysiwyg b {
  font-weight: 500;
}

.wysiwyg em {
  font-style: italic;
}

.wysiwyg ul,
.wysiwyg ol {
  padding-left: 1.5em;
}

.wysiwyg ul {
  list-style: disc;
}

.wysiwyg ol {
  list-style: decimal;
}

.wysiwyg table {
  border-collapse: separate;
}

/*------------------------------------------
header
------------------------------------------*/
.cmn-hd {
  width: 100%;
  background: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  left: 0;
  z-index: 50;
}

.cmn-hd .logo {
  position: absolute;
}

@media (max-width: 768px) {
  .cmn-hd .logo {
    width: clamp(10px, 17vw, 70px);
    top: 12px;
    left: 12px;
  }
}
@media (min-width: 769px) {
  .cmn-hd .logo {
    width: clamp(10px, 14vw, 150px);
    top: 15px;
    left: 30px;
  }
}
.cmn-hd .logo a {
  display: block;
}

.cmn-hd .search-block {
  margin: 0 0 0 24px;
}

.cmn-hd .search-block .in {
  padding: 0 0 5px;
}

.cmn-hd .sns-list {
  margin: 0 0 0 40px;
  display: flex;
  gap: 20px;
}

.cmn-hd .sns-list a {
  display: block;
  width: 24px;
}

.cmn-hd .language {
  position: relative;
}

@media (max-width: 768px) {
  .cmn-hd .language {
    margin: 0 0 0 clamp(5px, 2vw, 14px);
  }
}
@media (min-width: 769px) {
  .cmn-hd .language {
    margin: 0 0 0 40px;
  }
}
.cmn-hd .language button {
  display: block;
  padding: 4px 0;
  border-bottom: 1px solid #000;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  line-height: 1;
  font-weight: 500;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .cmn-hd .language button {
    font-size: 10px;
  }
}
@media (min-width: 769px) {
  .cmn-hd .language button {
    font-size: 12px;
  }
}
.cmn-hd .language .list {
  display: none;
  width: 100px;
  position: absolute;
  top: calc(100% - 1px);
  left: 50%;
  transform: translateX(-50%);
}

.cmn-hd .language .list li {
  border-bottom: 1px solid #fff;
  background: #F4F4F4;
}

.cmn-hd .language .list li:last-child {
  border-bottom: none;
}

.cmn-hd .language .list a {
  height: 37px;
  font-size: 11px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cmn-hd-top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

@media (max-width: 768px) {
  .cmn-hd-top {
    height: 48px;
    padding: 0 0 0 12px;
  }
}
@media (min-width: 769px) {
  .cmn-hd-top {
    height: 58px;
    padding: 0 30px;
  }
}
@media (max-width: 768px) {
  .cmn-hd-bottom {
    padding: 3px 15px 12px;
  }
}
@media (min-width: 769px) {
  .cmn-hd-bottom {
    padding: 6px 30px 12px;
  }
}
.cmn-hd-bottom .in {
  width: 100%;
  overflow: auto;
  overscroll-behavior-y: contain;
  scrollbar-width: thin;
  scrollbar-color: #C9C9C9 #EDEDED;
}

.cmn-hd-bottom .in::-webkit-scrollbar {
  width: 2px;
  height: 2px;
}

.cmn-hd-bottom .in::-webkit-scrollbar-track {
  background: #EDEDED;
}

.cmn-hd-bottom .in::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background: #C9C9C9;
}

[class*=cmn-hd-list0] {
  display: flex;
  align-items: center;
}

[class*=cmn-hd-list0] a {
  display: flex;
  line-height: 1.45;
  align-items: center;
}

@media (max-width: 768px) {
  [class*=cmn-hd-list0] a {
    font-size: clamp(10px, 2.9333333333vw, 11px);
    white-space: nowrap;
  }
}
@media (min-width: 769px) {
  [class*=cmn-hd-list0] a {
    font-size: 12px;
  }
}
[class*=cmn-hd-list0] .ico {
  aspect-ratio: 1/1;
  display: block;
}

@media (max-width: 768px) {
  [class*=cmn-hd-list0] .ico {
    width: 15px;
  }
}
@media (min-width: 769px) {
  [class*=cmn-hd-list0] .ico {
    width: 18px;
  }
}
[class*=cmn-hd-list0] .ico img {
  -o-object-fit: contain;
     object-fit: contain;
  width: 100%;
  height: 100%;
}

@media (max-width: 768px) {
  .cmn-hd-list01 {
    gap: clamp(5px, 2vw, 14px);
  }
}
@media (min-width: 769px) {
  .cmn-hd-list01 {
    gap: 25px;
  }
}
.cmn-hd-list01 .ico {
  margin: 0 4px 0 0;
}

.cmn-hd-list02 {
  width: -moz-max-content;
  width: max-content;
  margin: 0 auto;
}

@media (max-width: 768px) {
  .cmn-hd-list02 {
    padding: 0 0 7px;
    gap: 12px;
  }
}
@media (min-width: 769px) {
  .cmn-hd-list02 {
    gap: 24px;
  }
}
@media (max-width: 768px) {
  .cmn-hd-list02 .ico {
    margin: 0 4px 0 0;
  }
}
@media (min-width: 769px) {
  .cmn-hd-list02 .ico {
    margin: 0 6px 0 0;
  }
}
/*------------------------------------------
global navigation
------------------------------------------*/
.gnav-btn {
  margin: 0 0 0 4px;
}

.gnav-btn button {
  display: block;
  width: 48px;
  height: 48px;
  position: relative;
}

.gnav-btn span {
  display: block;
  width: 18px;
  height: 2px;
  background: #888;
  position: absolute;
  left: 50%;
  margin-left: -9px;
}

.gnav-btn span:nth-child(1) {
  top: 16px;
}

.gnav-btn span:nth-child(2) {
  top: 23px;
}

.gnav-btn span:nth-child(3) {
  top: 30px;
}

.gnav {
  display: none;
  width: 100%;
  height: 100vh;
  height: 100lvh;
  background: #fff;
  overflow: auto;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 40;
  overscroll-behavior-y: contain;
}

@media (min-width: 769px) {
  .gnav {
    display: none !important;
  }
}
.gnav-in {
  padding: 75px 0 100px;
}

.gnav .search-block {
  width: 66.1333333333vw;
  margin: 0 auto;
}

.gnav .search-block .in {
  padding: 0 0 10px;
}

.gnav-list {
  margin: 40px auto 0;
}

.gnav .sns-block {
  width: -moz-fit-content;
  width: fit-content;
  margin: 40px auto 0;
}

.cmn-hd.is-open .gnav-btn span {
  width: 26px;
  margin: 0;
  top: 23px;
  left: 11px;
}

.cmn-hd.is-open .gnav-btn span:nth-child(1) {
  transform: rotate(45deg);
}

.cmn-hd.is-open .gnav-btn span:nth-child(2) {
  opacity: 0;
}

.cmn-hd.is-open .gnav-btn span:nth-child(3) {
  transform: rotate(-45deg);
}

@media (max-width: 768px) {
  .cmn-hd.is-open .cmn-hd-list01,
.cmn-hd.is-open .cmn-hd-bottom {
    display: none;
  }
}
/*------------------------------------------
bunner
------------------------------------------*/
@media (max-width: 768px) {
  .ft-bnr {
    padding-top: 60px;
  }
}
@media (min-width: 769px) {
  .ft-bnr {
    padding-top: 100px;
  }
}
.ft-bnr .bnr-list01 {
  display: grid;
}

@media (max-width: 768px) {
  .ft-bnr .bnr-list01 {
    grid-gap: 10px;
  }
}
@media (min-width: 769px) {
  .ft-bnr .bnr-list01 {
    grid-gap: 30px 20px;
    grid-template-columns: repeat(2, 1fr);
  }
}
.ft-bnr .bnr-list02 {
  display: grid;
}

@media (max-width: 768px) {
  .ft-bnr .bnr-list02 {
    margin: 25px auto 0;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 15px 10px;
  }
}
@media (min-width: 769px) {
  .ft-bnr .bnr-list02 {
    margin: 50px auto 0;
    grid-gap: 30px 20px;
  }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .ft-bnr .bnr-list02 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1025px) {
  .ft-bnr .bnr-list02 {
    grid-template-columns: repeat(4, 1fr);
  }
}
/*------------------------------------------
footer
------------------------------------------*/
.cmn-ft {
  position: relative;
  background: #888;
  color: #fff;
}

@media (max-width: 768px) {
  .cmn-ft {
    margin: 90px auto 0;
    padding-top: 100px;
    padding-bottom: 40px;
  }
}
@media (min-width: 769px) {
  .cmn-ft {
    margin: 130px auto 0;
    padding-top: 160px;
    padding-bottom: 100px;
  }
}
@media (min-width: 769px) {
  .cmn-ft .ft-in {
    display: grid;
  }
}
@media (min-width: 769px) {
  .cmn-ft .ft-in {
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 40px 0;
  }
}
@media (min-width: 1195px) {
  .cmn-ft .ft-in {
    grid-template-columns: 30% 40% 30%;
    grid-template-rows: 1fr max-content;
    align-items: start;
    grid-gap: 0;
    grid-template-areas: "logo link sns" "logo link copyright";
  }
}
@media (max-width: 768px) {
  .cmn-ft .ft-in > * + * {
    margin: 40px auto 0;
  }
}
@media (max-width: 768px) {
  .cmn-ft .logo {
    width: 165px;
    margin: 0 auto;
  }
}
@media (min-width: 769px) {
  .cmn-ft .logo {
    width: 240px;
  }
}
@media (min-width: 1195px) {
  .cmn-ft .logo {
    grid-area: logo;
  }
}
@media (min-width: 1195px) {
  .cmn-ft .sns-block {
    grid-area: sns;
  }
}
.cmn-ft .sns-block .head {
  white-space: nowrap;
}

@media (min-width: 769px) {
  .cmn-ft .sns-block .head {
    font-size: 20px;
  }
}
.cmn-ft .sns-block .head::after {
  background: #fff;
}

.cmn-ft .copyright {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-size: clamp(10px, 3.2vw, 12px);
  line-height: 1;
}

@media (max-width: 768px) {
  .cmn-ft .copyright {
    text-align: center;
  }
}
@media (min-width: 1195px) {
  .cmn-ft .copyright {
    grid-area: copyright;
  }
}
.pagetop {
  border-radius: 50%;
  background: #888;
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
}

.pagetop a {
  width: 130px;
  height: 130px;
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0.06em;
  font-size: 12px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.pagetop a::before {
  content: "";
  width: 18px;
  height: 18px;
  margin: 0 auto 3px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(-45deg);
}

.cmn-ft-list01 {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 0;
}

@media (min-width: 1195px) {
  .cmn-ft-list01 {
    grid-area: link;
  }
}
.cmn-ft-list01 .item {
  width: 50%;
  padding: 0 1em 0 0.9em;
  position: relative;
  font-size: 14px;
  line-height: 1;
}

.cmn-ft-list01 .item::before {
  content: "";
  width: 6px;
  height: 6px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 0.3em;
  left: 0;
}