@charset "UTF-8";
:root {
  --base-font: "游ゴシック", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  --sub-font: "Shippori Mincho", serif;
  --num-font: "Julius Sans One", sans-serif;
  --en-font: "Cinzel", serif;
  --base-color: #40362F;
  --base-color-rgb: 64,54,47;
  --color01: #fff;
  --color02: #150B00;
  --color03: #6D6331;
  --color03-rgb: 109,99,49;
  --color04: #9F6A4A;
  --color04-rgb: 159,106,74;
  --color05: #A68636;
  --color05-rgb: 166,134,54;
  --color06: #C89964;
  --color07: #88807C;
  --color07-rgb: 136,128,124;
  --color08: #D4AE4D;
  --color08-rgb: 212,174,77;
  --color09: #F8F7F5;
  --color09-rgb: 248,247,245;
  --color10: #6A625D;
  --color11: #FDFDFC;
  --color12: #B3AFAC;
  --color13: #F1EFEB;
  --color14: #F8F1E1;
  --color15: #52290D;
  --color15-rgb: 82,41,13;
  --color16: #9F9A97;
  --color17: #ECDBAF;
  --color17-rgb: 236,219,175;
  --color18: #C58156;
  --color18-rgb: 197,129,86;
  --color19: #6B786F;
  --color20: #5D544E;
  --color21: #664229;
  --color21-rgb: 102,66,41;
  --color22: #4F5E31;
  --color22-rgb: 79,94,49;
  --color23: #9C4F42;
  --color23-rgb: 156,79,66;
  --color24: #364254;
  --color24-rgb: 54,66,84;
  --color25: #8F550E;
  --color25-rgb: 143,85,14;
  --color26: #E7D29D;
  --color27: #706863;
  --color28: #DDBE71;
  --color29: #684F3E;
  --color29-rgb: 104,79,62;
  --color30: #BA9E81;
  --color31: #80693C;
  --color32: #816A3D;
  --color33: #536257;
  --color34: #D4D2D0;
  --color35: #000;
  --color36: #E9D6A6;
  --color37: #665E59;
  --color38: #485D68;
  --color38-rgb: 72,93,104;
  --color39: #657C27;
  --color39-rgb: 101,124,39;
  --color40: #AA7A49;
  --color40-rgb: 170,122,73;
  --color41: #96512B;
  --color41-rgb: 150,81,43;
  --color42: #231815;
  --color42-rgb: 35,24,21;
}

/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#main .mainVisual {
  position: relative;
}
#main .mainVisual::before, #main .mainVisual::after {
  width: 22rem;
  aspect-ratio: 1/1;
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0.6;
  background: var(--color06);
  clip-path: polygon(100% 0, 0 0, 0 100%);
  z-index: 2;
}
#main .mainVisual::after {
  left: auto;
  top: auto;
  right: 0;
  bottom: 0;
  clip-path: polygon(100% 100%, 100% 0, 0 100%);
}
#main .mainVisual .slideList div > li {
  display: block !important;
  position: relative;
  color: #fff;
  font-family: var(--sub-font);
}
#main .mainVisual .slideList .textBox {
  padding: 22.3rem 0 0;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  flex-direction: column;
  z-index: 2;
}
#main .mainVisual .slideList .visual02 .textBox {
  padding: 0;
  width: 115rem;
  left: 50%;
  transform: translateX(-50%);
  height: auto;
  top: auto;
  bottom: 18rem;
  justify-content: flex-start;
  align-items: flex-start;
}
#main .mainVisual .slideList .visual02 .textBox .pageTitle02 {
  margin-bottom: 2.5rem;
  font-size: 6.3rem;
  line-height: 1.564;
  font-weight: 400;
}
#main .mainVisual .slideList .visual03 .textBox {
  padding: 0;
  width: 120rem;
  left: 50%;
  transform: translateX(-50%);
  height: auto;
  top: auto;
  bottom: 8rem;
  justify-content: flex-end;
  align-items: flex-start;
  flex-direction: row-reverse;
  gap: 2.8rem;
}
#main .mainVisual .slideList .visual03 .pageTitle03 {
  font-size: 5.19rem;
  line-height: 1.551;
  font-weight: 400;
  letter-spacing: 0.1em;
}
#main .mainVisual .mainImg {
  position: relative;
}
#main .mainVisual .mainImg img {
  width: 100%;
}
#main .mainVisual .mainImg::before {
  width: 100%;
  height: 100%;
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  background: var(--color02);
  opacity: 0.34;
  pointer-events: none;
}
@media all and (max-width: 896px) {
  #main .mainVisual .mainImg {
    width: 100%;
    height: 66rem;
    aspect-ratio: 375/660;
  }
  #main .mainVisual .mainImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
#main .mainVisual .pageTitle01 {
  margin-bottom: 3.1rem;
  text-align: center;
  font-weight: 400;
  font-size: 5.8rem;
  line-height: 1.413;
  letter-spacing: 0.18em;
}
#main .mainVisual .pageTitle01 small {
  margin-bottom: 2.5rem;
  display: block;
  font-size: 2.4rem;
  letter-spacing: 0.27em;
}
@media all and (max-width: 896px) {
  #main .mainVisual {
    position: relative;
  }
  #main .mainVisual::before, #main .mainVisual::after {
    width: 16rem;
  }
  #main .mainVisual .pageTitle01 {
    margin-bottom: 1.2rem;
    font-size: 3.2rem;
    line-height: 1.5;
  }
  #main .mainVisual .pageTitle01 small {
    margin-bottom: 1rem;
    font-size: 1.5rem;
    line-height: 1.2;
  }
  #main .mainVisual h2 {
    text-shadow: 0.5rem 0.5rem 0.9rem rgba(var(--color42-rgb), 0.2);
  }
  #main .mainVisual .slideList .textBox {
    padding-top: 23.5rem;
  }
  #main .mainVisual .slideList .visual02 .textBox {
    width: auto;
    left: 2.5rem;
    bottom: 50%;
    transform: translateY(54%);
  }
  #main .mainVisual .slideList .visual02 .textBox .pageTitle02 {
    margin-bottom: 2rem;
    font-size: 3.2rem;
    line-height: 1.5;
    letter-spacing: 0.08em;
  }
  #main .mainVisual .slideList .visual03 .textBox {
    width: auto;
    left: 2.5rem;
    bottom: 50%;
    transform: translateY(32%);
    flex-direction: column-reverse;
    gap: 0;
  }
  #main .mainVisual .slideList .visual03 .textBox .pageTitle03 {
    font-size: 3.2rem;
    line-height: 1.5;
  }
  #main .mainVisual .slideList .visual03 .textBox .pageTitle03 .specTxt {
    margin: 0 0.6rem 1.2rem;
    font-size: 1.5rem;
    display: inline-block;
  }
  #main .mainVisual .slideList .visual03 .textBox .comList {
    margin: 0 1.5rem -5.6rem auto;
  }
  #main .mainVisual .spText {
    width: 100%;
    font-size: 0.9rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.1em;
    color: var(--color09);
    position: absolute;
    left: 0;
    bottom: 1.8rem;
    z-index: 5;
  }
}
#main .newsBox {
  padding: 6.4rem 0 7rem;
  background-color: #F8F7F5;
}
#main .newsBox .newsUl a {
  padding: 2.3rem 5rem 2.6rem 2rem;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.12em;
  font-weight: 500;
  display: flex;
  align-items: center;
  border-top: 1px solid #D4D2D0;
  transition: opacity 0.3s;
  background: url(../img/common/arrow01.webp) no-repeat center right 2rem/2rem;
}
#main .newsBox .newsUl a time {
  width: 11rem;
  flex-shrink: 0;
  letter-spacing: 0.08em;
  font-size: 1.5rem;
  font-family: var(--num-font);
}
#main .newsBox .newsUl a .tag {
  margin: 0 2rem 0 1.2rem;
  width: 11.6rem;
  font-weight: 500;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
#main .newsBox .newsUl a .tag span {
  padding-top: 0.1rem;
  width: 100%;
  text-align: center;
  border-radius: 2rem;
  background-color: rgba(var(--color07-rgb), 0.25);
}
#main .newsBox .newsUl a .text {
  flex: 1;
}
@media all and (min-width: 1025px) {
  #main .newsBox .newsUl a:hover {
    opacity: 0.6;
  }
}
#main .newsBox .newsUl li:last-child a {
  border-bottom: 1px solid #D4D2D0;
}
@media all and (max-width: 896px) {
  #main .newsBox {
    padding: 3.5rem 0 3.7rem;
  }
  #main .newsBox .newsUl a {
    padding: 1.6rem 0 1.9rem;
    flex-wrap: wrap;
    gap: 0.6rem 0;
    background: none;
  }
  #main .newsBox .newsUl a .text {
    width: 100%;
    flex: auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 1.4rem;
    line-height: 1.5;
    letter-spacing: 0.07em;
  }
  #main .newsBox .newsUl a time {
    width: 9rem;
    font-size: 1.3rem;
  }
  #main .newsBox .newsUl a .tag {
    margin: 0;
    flex: 1;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 1.2rem;
    line-height: 1.2;
  }
  #main .newsBox .newsUl a .tag span {
    padding: 0.3rem 0.2rem 0.1rem;
    width: fit-content;
    min-width: 6.8rem;
  }
}
#main .centerTxt {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.75;
  text-align: center;
  font-feature-settings: normal;
}
@media all and (max-width: 896px) {
  #main .centerTxt {
    font-size: 1.4rem;
    letter-spacing: 0.1em;
    line-height: 2;
    font-feature-settings: "palt";
  }
}
#main .col {
  font-weight: 700;
  color: var(--color08);
}
#main .policyBox {
  padding: 8.3rem 0 0;
  background: var(--color09) url(../img/index/bg01.webp) no-repeat center top/100%;
}
#main .policyBox .headLine01 {
  margin-left: auto;
  margin-right: auto;
  width: 130rem;
  position: relative;
}
#main .policyBox .headLine01::before, #main .policyBox .headLine01::after {
  width: 29.5rem;
  aspect-ratio: 1/1;
  content: "";
  position: absolute;
  left: 2.4rem;
  top: -2rem;
  background: url(../img/index/img09.webp) no-repeat center center/100%;
}
#main .policyBox .headLine01::after {
  left: auto;
  right: 2.8rem;
  top: -1.7rem;
  background-image: url(../img/index/img10.webp);
}
#main .policyBox .innerBox {
  margin: 0 auto 6rem;
  padding: 4.6rem 0;
  width: 130rem;
  position: relative;
}
#main .policyBox .textUl01 {
  margin: 0 auto;
  width: 36.7rem;
  height: 27.6rem;
  border-radius: 50% 50%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: url(../img/index/img08.webp) no-repeat center 45.2%/26.6rem;
}
#main .policyBox .textUl01::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  border: none;
  border-radius: inherit;
  border-width: 1px;
  pointer-events: none;
  background: url(../img/index/bg16.webp) no-repeat center center/100% 100%;
}
#main .policyBox .textUl01 li {
  width: 14rem;
  aspect-ratio: 1/1;
  position: absolute;
  left: -7rem;
  top: -3rem;
  border: 2px solid rgba(64, 54, 47, 0.3);
  border-radius: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.733rem;
  font-family: var(--sub-font);
  font-weight: 400;
  line-height: 1.25;
  text-align: center;
}
#main .policyBox .textUl01 li span {
  background: linear-gradient(to top, rgba(var(--color08-rgb), 0.3), rgba(var(--color08-rgb), 0.3)) no-repeat left bottom/100% 0.6rem;
}
#main .policyBox .textUl01 li small {
  font-size: 1.4rem;
  font-family: var(--base-font);
  font-weight: 500;
}
#main .policyBox .textUl01 li:nth-child(2) {
  left: auto;
  right: -7rem;
}
#main .policyBox .textUl01 li:nth-child(3) {
  top: auto;
  bottom: -2.9rem;
}
#main .policyBox .textUl01 li:nth-child(4) {
  left: auto;
  right: -7rem;
  top: auto;
  bottom: -2.9rem;
}
#main .policyBox .textUl02 {
  width: 130rem;
  display: flex;
  flex-wrap: wrap;
  gap: 2.1rem 30rem;
  justify-content: space-between;
}
#main .policyBox .textUl02 li {
  padding: 2.8rem 3.5rem 2.4rem;
  width: 40.8rem;
  background: rgba(var(--color09-rgb), 0.5);
  font-size: 1.5rem;
  line-height: 2;
  font-weight: 500;
  font-feature-settings: "palt";
  letter-spacing: -0.04em;
  text-align: justify;
}
@media all and (max-width: 896px) {
  #main .policyBox {
    padding: 8.2rem 0 0;
    background-size: 100% 152.6rem;
    background-image: url(../img/index/bg01_sp.webp);
  }
  #main .policyBox .headLine01 {
    width: auto;
  }
  #main .policyBox .headLine01::before {
    width: 12.2rem;
    left: 0.6rem;
    top: -9.9rem;
  }
  #main .policyBox .headLine01::after {
    width: 12.2rem;
    right: 0.5rem;
    top: -9.9rem;
  }
  #main .policyBox .innerBox {
    margin-bottom: 4.7rem;
    padding: 4.2rem 0 0;
    width: auto;
  }
  #main .policyBox .textUl01 {
    margin-bottom: 9.4rem;
    width: 24.4rem;
    height: 18.3rem;
    background-size: 18rem;
    position: initial;
    transform: translate(0);
  }
  #main .policyBox .textUl01 li {
    width: 9.3rem;
    font-size: 1.153rem;
    line-height: 1.312;
    left: -4.7rem;
    top: -1.9rem;
    border-width: 1px;
  }
  #main .policyBox .textUl01 li small {
    font-size: 0.931rem;
  }
  #main .policyBox .textUl01 li:nth-child(2) {
    left: auto;
    right: -4.6rem;
  }
  #main .policyBox .textUl01 li:nth-child(3) {
    top: auto;
    bottom: -1.9rem;
  }
  #main .policyBox .textUl01 li:nth-child(4) {
    left: auto;
    right: -4.7rem;
    top: auto;
    bottom: -1.9rem;
  }
  #main .policyBox .textUl02 {
    margin: 0 2.1rem;
    width: auto;
    gap: 8rem 1rem;
    position: initial;
  }
  #main .policyBox .textUl02 li {
    padding: 2.3rem 1.5rem 1.9rem;
    width: calc(50% - 0.9rem);
    position: relative;
    font-size: 1.3rem;
    line-height: 1.692;
    letter-spacing: -0.08em;
  }
  #main .policyBox .textUl02 .titleBox {
    width: 7.6rem;
    font-size: 1.1rem;
    line-height: 1.138;
    left: 50%;
    top: -6.3rem;
    transform: translateX(-55%);
    border-width: 1px;
    aspect-ratio: 1/1;
    position: absolute;
    border: 1px solid rgba(64, 54, 47, 0.3);
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 400;
    text-align: center;
    font-family: var(--sub-font);
    letter-spacing: 0.03em;
  }
  #main .policyBox .textUl02 .titleBox span {
    background: linear-gradient(to top, rgba(var(--color08-rgb), 0.3), rgba(var(--color08-rgb), 0.3)) no-repeat left bottom/100% 0.4rem;
  }
  #main .policyBox .textUl02 .titleBox small {
    font-size: 0.9rem;
    font-family: var(--base-font);
    font-weight: 500;
  }
}
#main .contactBox {
  padding: 11.7rem 0 9rem;
  background: url(../img/index/bg02.webp) no-repeat center top/100%;
  position: relative;
}
#main .contactBox::before, #main .contactBox::after {
  width: 26.9rem;
  aspect-ratio: 1/1;
  content: "";
  position: absolute;
  left: -6.5rem;
  top: -5.3rem;
  background: url(../img/index/img11.webp) no-repeat center center/100%;
}
#main .contactBox::after {
  left: auto;
  right: -3.5rem;
  top: -4.8rem;
  background-image: url(../img/index/img12.webp);
}
@media all and (min-width: 897px) {
  #main .contactBox .headLine01 {
    margin-bottom: 1.7rem;
    font-size: 5.2rem;
    line-height: 1.346;
  }
  #main .contactBox .headLine01 .en {
    margin-bottom: 0.9rem;
  }
  #main .contactBox .centerTxt {
    margin-bottom: 4.7rem;
    line-height: 2.235;
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: 0;
  }
}
@media all and (max-width: 896px) {
  #main .contactBox {
    padding: 4.2rem 0 5.1rem;
    background-size: cover;
  }
  #main .contactBox::after {
    width: 13rem;
    right: -1.8rem;
    top: -2.5rem;
  }
  #main .contactBox::before {
    width: 13rem;
    left: -3rem;
    top: -2.8rem;
  }
  #main .contactBox .headLine01 {
    margin: 0 -1rem 1.8rem;
    letter-spacing: -0.02em;
  }
  #main .contactBox .headLine01::before, #main .contactBox .headLine01::after {
    width: 6.2rem;
    aspect-ratio: 124/186;
    content: "";
    position: absolute;
    left: 7.6rem;
    top: -3.2rem;
    background: url(../img/index/img15.webp) no-repeat center center/100%;
  }
  #main .contactBox .headLine01::after {
    left: auto;
    right: 7.6rem;
    top: -3.2rem;
    background-image: url(../img/index/img16.webp);
  }
  #main .contactBox .centerTxt {
    margin-bottom: 2rem;
    line-height: 2.142;
    text-align: justify;
  }
}
#main .bigPhoto {
  position: relative;
}
#main .bigPhoto img {
  width: 100%;
  opacity: 0.8;
}
#main .bigPhoto::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0.3;
  z-index: 1;
  pointer-events: none;
  background: var(--color02);
}
@media all and (max-width: 896px) {
  #main .bigPhoto {
    width: 100%;
    aspect-ratio: 375/150;
  }
  #main .bigPhoto img {
    height: 100%;
    object-fit: cover;
  }
}
#main .reasonBox {
  padding: 16.1rem 0 11.8rem;
  background: url(../img/index/bg05.webp) no-repeat center top/cover;
}
#main .reasonBox .head {
  margin: 0 auto 6.9rem;
  padding: 3.6rem 0.5rem 3.1rem;
  width: 86.4rem;
  text-align: center;
  position: relative;
  border-top: 1px solid var(--color20);
  border-bottom: 1px solid var(--color20);
  font-size: 4.611rem;
  letter-spacing: 0.05em;
  line-height: 1.48;
  font-weight: 400;
  font-family: var(--sub-font);
}
#main .reasonBox .head .col {
  font-size: 6.9rem;
  line-height: 0.8;
  font-weight: 400;
}
#main .reasonBox .head::before {
  width: 25.2rem;
  aspect-ratio: 252/94;
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 100%;
  background: url(../img/index/bg03.webp) no-repeat center center/100%;
}
#main .reasonBox .head::after {
  width: 100%;
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  bottom: 0.4rem;
  border-top: 1px solid var(--color20);
  border-bottom: 1px solid var(--color20);
  pointer-events: none;
}
#main .reasonBox .head small {
  display: block;
  font-size: 2.305rem;
  letter-spacing: 0.1em;
  font-weight: 700;
  font-family: var(--base-font);
}
#main .reasonBox .reasonList {
  margin-bottom: 7.8rem;
}
#main .reasonBox .reasonList li {
  display: flex;
  align-items: center;
  gap: 5.9rem;
}
#main .reasonBox .reasonList li .photoBox {
  position: relative;
  width: 50%;
}
#main .reasonBox .reasonList li .photoBox .number {
  padding: 0.2rem 2.1rem;
  width: 15.6rem;
  height: 15.6rem;
  font-size: 5.1rem;
  font-family: var(--sub-font);
  letter-spacing: 0.08em;
  color: var(--color01);
  background: rgba(var(--color08-rgb), 0.69);
  position: absolute;
  left: 0;
  top: 0;
  clip-path: polygon(100% 0, 0 0, 0 100%);
  z-index: 2;
}
#main .reasonBox .reasonList li .textBox {
  padding: 1rem 0 2.3rem;
  width: 53.4rem;
  text-align: justify;
}
#main .reasonBox .reasonList li .textBox .heading {
  margin-bottom: 1.3rem;
}
#main .reasonBox .reasonList li .textBox .heading small {
  margin-bottom: 0.3rem;
  font-size: 2.2rem;
  display: block;
  letter-spacing: 0.1em;
}
#main .reasonBox .reasonList li .textBox .heading span {
  font-size: 3.2rem;
  line-height: 1.713;
  letter-spacing: 0.12em;
  font-weight: 400;
  font-family: var(--sub-font);
  background: linear-gradient(to top, var(--color09) 0%, var(--color09) 100%) no-repeat center top 0.8rem/100% 3.3rem;
}
#main .reasonBox .reasonList li .textBox .heading02 span {
  letter-spacing: 0;
}
#main .reasonBox .reasonList li .textBox .heading02 span .space {
  letter-spacing: -0.12em;
}
#main .reasonBox .reasonList li .textBox p {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.12em;
}
@media all and (min-width: 897px) {
  #main .reasonBox .reasonList li:nth-child(2n) {
    flex-direction: row-reverse;
  }
  #main .reasonBox .reasonList li:nth-child(2n) .photoBox .comText {
    top: auto;
    right: 4rem;
    bottom: -2.3rem;
  }
}
@media all and (max-width: 896px) {
  #main .reasonBox {
    padding: 8.8rem 0 6.2rem;
  }
  #main .reasonBox .head {
    margin: 0 2rem 3rem;
    padding: 1.6rem 0.3rem 1.3rem;
    width: auto;
    font-size: 2rem;
    line-height: 1.5;
  }
  #main .reasonBox .head .col {
    font-size: 2.9rem;
  }
  #main .reasonBox .head::before {
    width: 9.8rem;
  }
  #main .reasonBox .head::after {
    top: 1px;
    bottom: 1px;
  }
  #main .reasonBox .head small {
    margin-bottom: 0.1rem;
    font-size: 1rem;
  }
  #main .reasonBox .reasonList {
    margin: 0 2rem 3rem;
  }
  #main .reasonBox .reasonList li {
    display: block;
  }
  #main .reasonBox .reasonList li + li {
    margin-top: 2.9rem;
  }
  #main .reasonBox .reasonList li .photoBox {
    margin-bottom: 2.3rem;
    width: 100%;
  }
  #main .reasonBox .reasonList li .photoBox .number {
    padding: 0.1rem 1rem;
    width: 7.6rem;
    height: 7.6rem;
    font-size: 2.501rem;
  }
  #main .reasonBox .reasonList li .textBox {
    padding: 0;
    width: auto;
  }
  #main .reasonBox .reasonList li .textBox p {
    font-size: 1.4rem;
    line-height: 2;
  }
  #main .reasonBox .reasonList li .textBox .heading small {
    margin-bottom: 0;
    font-size: 1.3rem;
  }
  #main .reasonBox .reasonList li .textBox .heading span {
    font-size: 2.2rem;
    line-height: 1.4;
    background-size: 100% 2.2rem;
    background-position: center center;
  }
  #main .reasonBox .reasonList li .textBox .heading02 {
    margin-right: -2rem;
    text-align: left;
  }
  #main .reasonBox .reasonList li .textBox .heading02 span .space {
    letter-spacing: -0.12em;
  }
}
#main .problemBox {
  padding: 6.2rem 0 9.4rem;
  background: url(../img/index/bg06.webp) no-repeat center top/cover;
}
#main .problemBox .content {
  max-width: 120rem;
}
#main .problemBox .headLine01 {
  margin-bottom: 5.5rem;
  font-size: 4.6rem;
  color: var(--color01);
  letter-spacing: 0;
}
#main .problemBox .headLine01 .en {
  font-size: 2.4rem;
  line-height: 1.75;
  color: var(--color26);
}
#main .problemBox .headLine01 .en::first-letter {
  font-size: 2.6rem;
}
#main .problemBox .headLine01 .jp span {
  margin: 0 0.7rem;
  padding: 0 1rem;
  letter-spacing: 0.06em;
  color: var(--color01);
  background: linear-gradient(to top, var(--color27) 0%, var(--color27) 100%) no-repeat center center/100% 6.7rem;
}
#main .problemBox .linkBox {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 3.499rem;
}
#main .problemBox .linkBox li {
  width: calc((100% - 14rem) / 5);
}
@media all and (min-width: 897px) {
  #main .problemBox .linkBox li:nth-child(5n-4), #main .problemBox .linkBox li:nth-child(5n-2), #main .problemBox .linkBox li:nth-child(5n) {
    margin-top: 2.8rem;
  }
  #main .problemBox .linkBox li:nth-child(5n-4) a::before, #main .problemBox .linkBox li:nth-child(5n-2) a::before, #main .problemBox .linkBox li:nth-child(5n) a::before {
    right: 1.3rem;
    bottom: -1.4rem;
  }
}
#main .problemBox .linkBox li a {
  padding-bottom: 2.5rem;
  height: 18rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 2.239rem;
  letter-spacing: -0.06em;
  font-feature-settings: "palt";
  line-height: 1.499;
  position: relative;
  font-family: var(--sub-font);
  z-index: 1;
}
#main .problemBox .linkBox li a::after {
  width: 25rem;
  height: 22.8rem;
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  background: url(../img/index/bg04.webp) no-repeat center center/100% 100%;
}
#main .problemBox .linkBox li a::before {
  width: 5.2rem;
  height: 5.2rem;
  content: "";
  position: absolute;
  right: 0.6rem;
  bottom: -0.8rem;
  z-index: -2;
  border-radius: 100%;
  box-shadow: 0rem 0.5rem 0.6rem rgba(var(--color29-rgb), 0.2);
  background: var(--color28) url(../img/common/arrow01.webp) no-repeat center center/1.7rem;
}
@media all and (min-width: 1025px) {
  #main .problemBox .linkBox li a:hover {
    opacity: 0.6;
  }
}
@media all and (max-width: 896px) {
  #main .problemBox {
    padding: 5.3rem 0 4.8rem;
    background: url(../img/index/bg06_sp.webp) no-repeat top left/cover;
  }
  #main .problemBox .headLine01 {
    margin-bottom: 2.3rem;
    line-height: 1.533;
  }
  #main .problemBox .headLine01 .en {
    margin-bottom: 0.6rem;
    font-size: 2rem;
  }
  #main .problemBox .headLine01 .en::first-letter {
    font-size: 2.2rem;
  }
  #main .problemBox .headLine01 .jp {
    font-size: 3rem;
    display: block;
  }
  #main .problemBox .headLine01 .jp span {
    margin: 0 0.5rem;
    padding: 0 0.6rem;
    background-size: 100% 4.2rem;
    display: inline;
  }
  #main .problemBox .linkBox {
    margin: 0 auto;
    width: 31rem;
    gap: 1.1rem 1rem;
    justify-content: space-between;
  }
  #main .problemBox .linkBox li {
    width: 15rem;
  }
  #main .problemBox .linkBox li a {
    padding-bottom: 1.4rem;
    height: 14.2rem;
    font-size: 1.567rem;
    line-height: 1.5;
  }
  #main .problemBox .linkBox li a::after {
    width: 17.6rem;
    height: auto;
    aspect-ratio: 250/228;
  }
  #main .problemBox .linkBox li a::before {
    right: 1.2rem;
    bottom: -0.2rem;
    width: 3.6rem;
    height: 3.6rem;
    background-size: 1.3rem;
  }
  #main .problemBox .linkBox li:nth-child(2n) {
    margin: 4.2rem -1.1rem -5rem 0;
  }
  #main .problemBox .linkBox li:nth-child(2n) a::before {
    right: 0.5rem;
    bottom: 0.3rem;
  }
}
#main .totalBox {
  padding: 10.6rem 0 8rem;
  background: url(../img/index/bg07.webp) no-repeat left top/30rem, url(../img/index/bg08.webp) no-repeat right top/30rem, var(--color09);
}
@media all and (min-width: 897px) {
  #main .totalBox .headLine01 {
    margin-bottom: 5.6rem;
    font-size: 4.611rem;
    letter-spacing: 0.03em;
  }
  #main .totalBox .content {
    max-width: 120rem;
  }
}
@media all and (max-width: 896px) {
  #main .totalBox {
    background-size: 13.4rem;
  }
  #main .totalBox .headLine01 {
    margin: 0 -1rem 2.6rem;
    font-size: 3rem;
    line-height: 1.4;
    letter-spacing: 0.02em;
  }
  #main .totalBox .headLine01 .en {
    margin-bottom: 0.9rem;
  }
}
#main .totalBox .innerBox {
  position: relative;
}
#main .totalBox .innerBox .comBtn {
  width: 83.8rem;
  position: absolute;
  top: 12.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  background-color: var(--color09);
}
#main .totalBox .innerBox .comBtn a {
  width: 100%;
  min-height: 7.2rem;
  font-family: var(--base-font);
  gap: 0.8rem;
  background-image: none;
}
#main .totalBox .innerBox .comBtn a .text01 {
  padding-left: 2.7rem;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  position: relative;
  color: var(--color30);
}
#main .totalBox .innerBox .comBtn a .text01::before {
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 100%;
  position: absolute;
  left: 0;
  top: 0.2rem;
  content: "";
  background-color: var(--color30);
}
#main .totalBox .innerBox .comBtn a .text02 {
  padding-right: 2.7rem;
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--color35);
  background: url(../img/common/arrow01.webp) no-repeat center right/1.5rem;
}
@media all and (max-width: 896px) {
  #main .totalBox .innerBox .comBtn {
    width: 100%;
    position: initial;
    transform: none;
  }
  #main .totalBox .innerBox .comBtn a {
    padding: 0.5rem 2rem;
    min-height: 5.8rem;
    gap: 0.6rem;
    background-image: none;
  }
  #main .totalBox .innerBox .comBtn a .text01 {
    padding-left: 2rem;
    font-size: 1.5rem;
    line-height: 1.562;
    letter-spacing: 0.03em;
  }
  #main .totalBox .innerBox .comBtn a .text01::before {
    width: 1.5rem;
    height: 1.5rem;
    top: 0.4rem;
  }
  #main .totalBox .innerBox .comBtn a .text02 {
    padding-right: 2.4rem;
    font-size: 1.7rem;
    letter-spacing: 0.08em;
  }
}
#main .totalBox .totalList {
  display: flex;
  border-right: 1px solid var(--color34);
}
#main .totalBox .totalList > li {
  padding-bottom: 2.3rem;
  width: 30rem;
  position: relative;
  border-left: 1px solid var(--color32);
}
#main .totalBox .totalList > li:nth-child(2) {
  flex: 1;
}
#main .totalBox .totalList > li .years {
  padding: 0 0 2.8rem 0.8rem;
  width: 11.7rem;
  height: 11.7rem;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--color31);
  border: 0.4rem solid currentColor;
  border-radius: 100%;
  display: flex;
  align-items: last baseline;
  justify-content: center;
  position: absolute;
  left: -5.8rem;
  top: -1.5rem;
  z-index: 2;
  background: var(--color09);
}
#main .totalBox .totalList > li .years .text {
  color: var(--base-color);
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
#main .totalBox .totalList > li .years .num {
  font-weight: 400;
  font-size: 4.3rem;
  letter-spacing: 0.02em;
  font-family: var(--sub-font);
}
#main .totalBox .totalList > li .heading {
  padding-right: 1.8rem;
  width: 100%;
  height: 9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.2rem;
  letter-spacing: 0.2em;
  font-weight: 400;
  color: var(--color09);
  font-family: var(--sub-font);
  z-index: 1;
  position: relative;
}
#main .totalBox .totalList > li .heading::after {
  width: 100%;
  height: 100%;
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
  pointer-events: none;
  background: url(../img/index/bg09.webp) no-repeat center center/100%;
}
#main .totalBox .totalList > li .heading02 {
  padding-right: 3.5rem;
  gap: 0.3rem;
}
#main .totalBox .totalList > li .heading02::after {
  background-image: url(../img/index/bg10.webp);
}
#main .totalBox .totalList > li .heading03 {
  padding: 0 0 0 1rem;
  gap: 0.3rem;
  letter-spacing: 0;
}
#main .totalBox .totalList > li .heading03::after {
  width: 35.8rem;
  height: 16.8rem;
  top: 50%;
  transform: translateY(-50%);
  background-image: url(../img/index/bg11.webp);
}
#main .totalBox .totalList > li .heading img {
  width: 5.2rem;
}
#main .totalBox .totalList > li.item02 {
  border-color: var(--color18);
}
#main .totalBox .totalList > li.item02 .subList {
  margin-left: 3.4rem;
  margin-right: 3.4rem;
  columns: 2;
  gap: 2.7rem;
}
#main .totalBox .totalList > li.item02 .subList li {
  page-break-inside: avoid;
}
#main .totalBox .totalList > li.item02 .subList a::before {
  background-color: var(--color18);
}
#main .totalBox .totalList > li.item02 .years {
  color: var(--color18);
  border-color: var(--color18);
}
@media all and (max-width: 896px) {
  #main .totalBox .totalList > li.item02 {
    padding-bottom: 3rem;
  }
  #main .totalBox .totalList > li.item02 .subList {
    margin-left: 2rem;
    margin-right: 0;
    gap: 1.2rem;
  }
}
#main .totalBox .totalList > li.item03 {
  border-color: var(--color33);
}
#main .totalBox .totalList > li.item03 .subList a::before {
  background-color: var(--color33);
}
#main .totalBox .totalList > li.item03 .years {
  color: var(--color33);
  border-color: var(--color33);
}
#main .totalBox .totalList .subList {
  margin: 12.2rem 2.3rem 0;
}
#main .totalBox .totalList .subList a {
  padding: 2.3rem 3rem 1rem 2.8rem;
  display: block;
  font-size: 1.5rem;
  letter-spacing: 0.06em;
  font-weight: 700;
  position: relative;
  border-bottom: 1px solid var(--color34);
  background: url(../img/common/arrow01.webp) no-repeat right top 3rem/1.4rem;
}
#main .totalBox .totalList .subList a::before {
  content: "";
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 100%;
  position: absolute;
  left: 0.2rem;
  top: 2.5rem;
  background-color: var(--color32);
}
@media all and (min-width: 1025px) {
  #main .totalBox .totalList .subList a:hover {
    opacity: 0.6;
  }
}
@media all and (max-width: 896px) {
  #main .totalBox .totalList {
    margin: 2.8rem 0 3rem;
    display: block;
    border: none;
  }
  #main .totalBox .totalList > li {
    padding-bottom: 2.3rem;
    width: 100% !important;
  }
  #main .totalBox .totalList > li.item03 {
    padding-bottom: 0;
  }
  #main .totalBox .totalList > li .years {
    padding: 0 0.2rem 1.3rem;
    width: 7rem;
    height: 7rem;
    left: -1.3rem;
    top: -0.8rem;
    border-width: 0.3rem;
    gap: 0rem;
  }
  #main .totalBox .totalList > li .years .num {
    font-size: 2.7rem;
  }
  #main .totalBox .totalList > li .years .text {
    font-size: 1.32rem;
  }
  #main .totalBox .totalList > li .heading {
    margin-bottom: 0;
    padding: 0.5rem 4rem;
    height: 5.4rem;
    font-size: 1.8rem;
    line-height: 1.2;
    gap: 0.5rem;
  }
  #main .totalBox .totalList > li .heading img {
    width: 3.8rem;
  }
  #main .totalBox .totalList > li .heading03::after {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background-image: url(../img/index/bg11_sp.webp);
  }
  #main .totalBox .totalList > li .subList {
    margin: 2.2rem 0 0 1.8rem;
    columns: 2;
    column-gap: 1.3rem;
  }
  #main .totalBox .totalList > li .subList li {
    margin: 0;
    padding-bottom: 0.5rem;
    break-inside: avoid;
    page-break-inside: avoid;
    min-height: 4.3rem;
  }
  #main .totalBox .totalList > li .subList .item a {
    letter-spacing: -0.04em;
    font-feature-settings: "palt";
  }
  #main .totalBox .totalList > li .subList a {
    padding: 1rem 1rem 1rem 1.7rem;
    font-size: 1.5rem;
    background-position: center right;
  }
  #main .totalBox .totalList > li .subList a::before {
    width: 1.4rem;
    height: 1.4rem;
    top: 1.3rem;
    left: 0;
  }
}
@media all and (max-width: 896px) {
  #main .totalBox {
    padding: 7.5rem 0 4.4rem;
  }
}
#main .visitorBox {
  padding: 7.5rem 0 8.5rem;
  background: url(../img/index/bg12.webp) no-repeat right top/auto 100%, var(--color36);
}
#main .visitorBox .content {
  max-width: 112rem;
}
#main .visitorBox .headLine03 {
  margin-bottom: 2.7rem;
  font-size: 4.611rem;
}
#main .visitorBox .headLine03 .en {
  margin: 0 0 0.5rem;
  font-size: 2.4rem;
  color: var(--color16);
}
#main .visitorBox .text {
  margin: 0 1rem;
  font-size: 1.6rem;
  line-height: 2.125;
  font-weight: 700;
  letter-spacing: 0.1em;
}
#main .visitorBox .text .num {
  font-size: 3rem;
  line-height: 0.9;
  letter-spacing: 0;
  font-family: var(--num-font);
}
#main .visitorBox .text small {
  font-size: 1.3rem;
}
#main .visitorBox .comBtn {
  margin: 3.6rem 1rem 0;
}
#main .visitorBox .comBtn li + li {
  margin-top: 2rem;
}
#main .visitorBox .comBtn a {
  margin: 0;
}
@media all and (max-width: 896px) {
  #main .visitorBox {
    padding: 57vw 0 5.7rem;
    background-size: 114%;
    background-position: center top;
    background-image: url(../img/index/bg12_sp.webp);
  }
  #main .visitorBox .headLine03 {
    margin-bottom: 2rem;
    font-size: 3rem;
    line-height: 1.266;
    letter-spacing: 0.1em;
  }
  #main .visitorBox .headLine03 .en {
    margin-bottom: 0.1rem;
    font-size: 2rem;
  }
  #main .visitorBox .headLine03 .en::first-letter {
    font-size: 2.2rem;
  }
  #main .visitorBox .text {
    margin: 0;
    font-size: 1.6rem;
    letter-spacing: 0.08em;
    line-height: 2.125;
    text-align: justify;
  }
  #main .visitorBox .text .num {
    letter-spacing: 0;
    font-size: 2.8rem;
  }
  #main .visitorBox .comBtn {
    margin: 1.5rem 0 0;
  }
  #main .visitorBox .comBtn li + li {
    margin-top: 1.5rem;
  }
  #main .visitorBox .comBtn a {
    margin: 0 auto;
    padding: 0 4rem 0 4rem;
  }
}
#main .gretting {
  padding: 14.2rem 0 7.5rem;
  color: var(--color01);
  background: url(../img/index/bg13.webp) no-repeat center top/cover;
}
#main .gretting .headLine01 {
  margin-bottom: 0rem;
  font-size: 5.2rem;
  letter-spacing: 0.09em;
  position: relative;
}
#main .gretting .headLine01::after {
  margin: 3.3rem auto 0;
  display: block;
  width: 5.3rem;
  height: 1px;
  content: "";
  background: var(--color09);
}
#main .gretting .headLine01 .en {
  margin-bottom: 0.6rem;
}
#main .gretting .imgBox {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 6rem;
  position: relative;
}
#main .gretting .imgBox::before, #main .gretting .imgBox::after {
  width: 26.9rem;
  aspect-ratio: 1/1;
  content: "";
  position: absolute;
  left: -5.3rem;
  bottom: -16.9rem;
  background: url(../img/index/img13.webp) no-repeat center center/100%;
}
#main .gretting .imgBox::after {
  left: auto;
  right: -5.3rem;
  bottom: -17rem;
  background-image: url(../img/index/img14.webp);
}
#main .gretting .imgBox .photoBox {
  width: calc(50% - 2.4rem);
  position: relative;
}
#main .gretting .imgBox .photoBox .comText {
  width: 23.6rem;
  font-size: 2.8rem;
  line-height: 1.428;
  right: auto;
  left: 3rem;
  top: auto;
  bottom: -3rem;
}
#main .gretting .imgBox .textBox {
  margin: 8rem 0 0;
  width: 56.7rem;
}
#main .gretting .imgBox .textBox .heading {
  margin-bottom: 3rem;
  font-size: 3.4rem;
  line-height: 1.647;
  font-weight: 400;
  letter-spacing: 0.05em;
  font-family: var(--sub-font);
}
#main .gretting .imgBox .textBox .heading .col {
  font-weight: 400;
}
#main .gretting .imgBox .textBox p {
  font-size: 1.5rem;
  line-height: 2;
  text-align: justify;
}
#main .gretting .imgBox .textBox .infoTxt {
  margin-top: 1.6rem;
  text-align: right;
  font-size: 1.4rem;
  font-weight: 700;
}
#main .gretting .imgBox .textBox .infoTxt .name {
  margin-left: 2.5rem;
  font-family: var(--sub-font);
  font-size: 2.6rem;
  font-weight: 400;
  letter-spacing: 0.1em;
}
#main .gretting .imgBox02 {
  margin: 5.4rem auto 0;
  width: 120rem;
  gap: 2rem;
  border-top: 1px solid rgba(var(--color09-rgb), 0.25);
  justify-content: space-between;
  position: relative;
  z-index: 1;
}
#main .gretting .imgBox02::before, #main .gretting .imgBox02::after {
  display: none;
}
#main .gretting .imgBox02 .photoBox {
  margin: 0 -3rem 0 0;
  width: 61.6rem;
}
#main .gretting .imgBox02 .photoBox p {
  position: absolute;
  font-size: 1.5rem;
  letter-spacing: 0.16em;
  line-height: 1.732;
  font-family: var(--sub-font);
  font-weight: 400;
}
#main .gretting .imgBox02 .photoBox p span {
  margin-right: 1.1rem;
  font-weight: 500;
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  font-family: var(--base-font);
}
#main .gretting .imgBox02 .photoBox p.name01 {
  top: 17.2%;
  left: 7.5%;
}
#main .gretting .imgBox02 .photoBox p.name02 {
  left: 1%;
  top: 63%;
}
#main .gretting .imgBox02 .photoBox p.name03 {
  left: 17%;
  bottom: 12%;
}
#main .gretting .imgBox02 .photoBox p.name04 {
  left: 39%;
  bottom: -1%;
}
#main .gretting .imgBox02 .photoBox p.name05 {
  top: 17.2%;
  right: 2.8%;
}
#main .gretting .imgBox02 .photoBox p.name06 {
  right: -1%;
  top: 63%;
}
#main .gretting .imgBox02 .photoBox p.name07 {
  right: 19%;
  bottom: 12%;
}
@media all and (max-width: 896px) {
  #main .gretting .imgBox02 .photoBox p {
    font-size: 10px;
    line-height: 1.418;
    letter-spacing: 0.16em;
  }
  #main .gretting .imgBox02 .photoBox p span {
    margin-right: 5px;
    font-size: 9px;
  }
  #main .gretting .imgBox02 .photoBox p.name01 {
    left: 2.5%;
  }
  #main .gretting .imgBox02 .photoBox p.name02 {
    left: -2.2%;
  }
  #main .gretting .imgBox02 .photoBox p.name03 {
    left: 14%;
  }
  #main .gretting .imgBox02 .photoBox p.name04 {
    left: 37%;
  }
  #main .gretting .imgBox02 .photoBox p.name05 {
    right: 0.5%;
  }
  #main .gretting .imgBox02 .photoBox p.name06 {
    right: -3%;
  }
  #main .gretting .imgBox02 .photoBox p.name07 {
    right: 17.4%;
  }
}
#main .gretting .imgBox02 .textBox {
  margin-top: 9rem;
}
#main .gretting .imgBox02 .textBox .heading {
  margin-bottom: 2.5rem;
  letter-spacing: 0.08em;
}
#main .gretting .imgBox02 .textBox .comBtn {
  margin-top: 4.8rem;
}
#main .gretting .imgBox02 .textBox .comBtn a {
  padding: 0 6rem 0 4rem;
  margin: 0;
  color: var(--color09);
  border-color: rgba(var(--color09-rgb), 0.4);
  background-image: url(../img/common/arrow03.webp);
}
@media all and (max-width: 896px) {
  #main .gretting .imgBox02 .textBox .comBtn a {
    margin: 0 auto;
  }
}
@media all and (max-width: 896px) {
  #main .gretting {
    padding: 7.8rem 0 6rem;
  }
  #main .gretting .headLine01 {
    font-size: 3.8rem;
    line-height: 1;
  }
  #main .gretting .headLine01::after {
    margin-top: 2.5rem;
  }
  #main .gretting .imgBox {
    padding: 0 2rem;
    display: block;
  }
  #main .gretting .imgBox::after {
    display: none;
  }
  #main .gretting .imgBox::before {
    width: 17.2rem;
    left: -4rem;
    bottom: -9.7rem;
  }
  #main .gretting .imgBox .photoBox {
    margin: 0 0 1rem;
    width: 100%;
  }
  #main .gretting .imgBox .photoBox .comText {
    width: 12.9rem;
    font-size: 1.5rem;
    line-height: 1.452;
    bottom: -1rem;
    left: 1rem;
  }
  #main .gretting .imgBox .textBox {
    margin-top: 2.8rem;
    width: 100%;
  }
  #main .gretting .imgBox .textBox .heading {
    margin-bottom: 1.5rem;
    font-size: 2.4rem;
    line-height: 1.583;
  }
  #main .gretting .imgBox .textBox p {
    font-size: 1.4rem;
    line-height: 2;
    letter-spacing: 0.04em;
  }
  #main .gretting .imgBox .textBox p.infoTxt {
    margin-top: 1rem;
  }
  #main .gretting .imgBox02 {
    margin: 2rem 2rem 0;
    padding: 2.7rem 0;
    width: auto;
  }
  #main .gretting .imgBox02 .photoBox {
    margin: 0 auto;
    width: 33.5rem;
  }
  #main .gretting .imgBox02 .textBox {
    margin-top: 2.4rem;
  }
  #main .gretting .imgBox02 .textBox p {
    font-size: 1.5rem;
  }
  #main .gretting .imgBox02 .textBox .comBtn {
    margin-top: 3.2rem;
  }
}
#main .columnBox {
  padding: 9rem 0 10.6rem;
  background: var(--color09) url(../img/index/bg15.webp) no-repeat right -8.6rem top 7.5rem/122.9rem;
}
#main .columnBox .content {
  max-width: 120rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
#main .columnBox .content .columnList {
  width: 106.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: 2.999rem;
}
#main .columnBox .content .columnList li {
  width: calc((100% - 6rem) / 3);
  position: relative;
}
#main .columnBox .content .columnList li::before {
  width: 100%;
  top: 9rem;
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background: var(--color01);
  box-shadow: 0 0.8rem 1.7rem rgba(var(--color29-rgb), 0.14);
}
#main .columnBox .content .columnList li a {
  padding: 2rem 3.7rem 3.4rem;
  display: block;
  position: relative;
  z-index: 1;
}
@media all and (min-width: 1025px) {
  #main .columnBox .content .columnList li a:hover {
    opacity: 0.6;
  }
}
#main .columnBox .content .columnList li a .image {
  margin-bottom: 1.3rem;
  width: 100%;
  aspect-ratio: 260/142;
}
#main .columnBox .content .columnList li a .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#main .columnBox .content .columnList li a time {
  display: block;
  font-size: 1.2rem;
  font-family: var(--sub-font);
  font-weight: 400;
  letter-spacing: 0.1em;
}
#main .columnBox .content .columnList li a .title {
  margin-bottom: 0.1rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--color08);
  font-size: 1.6rem;
  line-height: 2;
  font-weight: 700;
  letter-spacing: 0.08em;
}
#main .columnBox .content .columnList li a p {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.692;
  text-align: justify;
}
#main .columnBox .content .heading {
  margin: 0.9rem 1.5rem;
  width: 9rem;
  line-height: 1.3;
  letter-spacing: 0.22em;
}
@media all and (min-width: 897px) {
  #main .columnBox .content .heading {
    writing-mode: vertical-rl;
  }
  #main .columnBox .content .heading span {
    display: block;
    white-space: nowrap;
  }
}
#main .columnBox .content .heading .jp {
  font-size: 5.2rem;
  font-family: var(--sub-font);
  font-weight: 400;
  letter-spacing: 0.2em;
}
#main .columnBox .content .heading .en {
  font-weight: 400;
  font-size: 2.4rem;
  font-family: var(--en-font);
  color: var(--color08);
}
@media all and (max-width: 896px) {
  #main .columnBox {
    padding: 4rem 0 6rem;
    background-size: 202vw;
    background-position: left 4rem bottom -12rem;
  }
  #main .columnBox .content {
    display: block;
  }
  #main .columnBox .content .heading {
    margin-bottom: 4rem;
    width: 100%;
    text-align: center;
  }
  #main .columnBox .content .heading .en {
    display: block;
    font-size: 2rem;
  }
  #main .columnBox .content .heading .en::first-letter {
    font-size: 2.2rem;
  }
  #main .columnBox .content .heading .jp {
    display: block;
    font-size: 3.8rem;
    line-height: 1.35;
  }
  #main .columnBox .content .columnList {
    width: 100%;
    flex-direction: column;
    gap: 1.5rem;
  }
  #main .columnBox .content .columnList li {
    width: 100%;
  }
  #main .columnBox .content .columnList li::before {
    top: 7.5rem;
  }
  #main .columnBox .content .columnList li a {
    padding-top: 0;
    padding-bottom: 2.6rem;
  }
  #main .columnBox .content .columnList li a p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
#main .groupBox {
  padding: 12.5rem 0 1px;
  background: url(../img/index/bg14.webp) no-repeat center top/cover;
}
#main .groupBox .headLine01 {
  margin-bottom: 7.1rem;
  font-size: 5.2rem;
}
#main .groupBox .content {
  max-width: 110rem;
}
#main .groupBox .list {
  margin-bottom: 14.5rem;
}
#main .groupBox .list > li {
  background-color: var(--color09);
  box-shadow: 0 0.8rem 1.7rem rgba(var(--color29-rgb), 0.14);
}
#main .groupBox .list > li + li {
  margin-top: 4rem;
}
#main .groupBox .list a {
  padding-right: 8rem;
  align-items: center;
  display: flex;
  gap: 5rem;
  background: url(../img/common/arrow04.webp) no-repeat center right 5rem/6rem;
}
@media all and (min-width: 1025px) {
  #main .groupBox .list a:hover {
    opacity: 0.6;
  }
}
#main .groupBox .list a .photo {
  width: 49.7rem;
  aspect-ratio: 497/274;
}
#main .groupBox .list a .photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#main .groupBox .list a .textBox {
  flex: 1;
}
#main .groupBox .list a .textBox .logo {
  margin-bottom: 1.3rem;
  width: 37rem;
}
#main .groupBox .list a .textList li {
  padding-left: 3.7rem;
  position: relative;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.571;
  letter-spacing: 0.13em;
}
#main .groupBox .list a .textList li + li {
  margin-top: 1.3rem;
}
#main .groupBox .list a .textList li img {
  width: 1.9rem;
  position: absolute;
  left: 0.5rem;
  top: 0.3rem;
}
#main .groupBox .list a .textList li.tel {
  padding-left: 3.2rem;
  font-size: 1.8rem;
  font-weight: 300;
  letter-spacing: 0.02em;
  font-family: var(--num-font);
}
#main .groupBox .list a .textList li.tel img {
  width: 2.1rem;
}
#main .groupBox .scrollBox {
  margin-bottom: -11rem;
}
#main .groupBox .infiniteslide_wrap {
  overflow: visible !important;
}
#main .groupBox .imgList {
  display: flex !important;
  flex-wrap: nowrap;
}
#main .groupBox .imgList li {
  margin-right: 1.5rem;
  width: fit-content !important;
  min-width: 17rem;
  flex-shrink: 0;
  height: 22.1rem;
}
#main .groupBox .imgList li img {
  width: auto;
  height: 100%;
}
@media all and (max-width: 896px) {
  #main .groupBox {
    padding: 5rem 0;
  }
  #main .groupBox .headLine01 {
    margin-bottom: 2.1rem;
    font-size: 3.4rem;
    line-height: 1.411;
  }
  #main .groupBox .headLine01 .en {
    margin-bottom: 0.4rem;
  }
  #main .groupBox .list {
    margin-bottom: 7.5rem;
  }
  #main .groupBox .list > li + li {
    margin-top: 2.8rem;
  }
  #main .groupBox .list > li a {
    padding: 0 0 1.2rem;
    display: block;
    background-image: none;
  }
  #main .groupBox .list > li a .photo {
    width: 100%;
    margin-bottom: 1rem;
    aspect-ratio: 335/154;
  }
  #main .groupBox .list > li a .photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }
  #main .groupBox .list > li a .textBox {
    padding: 1.2rem 1.8rem;
  }
  #main .groupBox .list > li a .textBox .logo {
    margin: 0 0.7rem 1.7rem;
    width: 100%;
    padding-right: 2rem;
    background: url(../img/common/arrow04.webp) no-repeat center right 0.5rem/3rem;
  }
  #main .groupBox .list > li a .textBox .logo img {
    width: 25rem;
  }
  #main .groupBox .list > li a .textBox .textList li + li {
    margin-top: 0.5rem;
  }
  #main .groupBox .imgList li {
    margin-right: 1rem;
    min-width: 10rem;
    height: 16rem;
  }
}

/*------------------------------------------------------------
	eventBox
------------------------------------------------------------*/
.eventBox {
  background-color: #F8F7F5;
  padding-bottom: 30px;
}

.eve-b {
  margin: 0px auto;
  max-width: 1100px;
  padding: 10px 0 30px;
}
@media all and (max-width: 896px) {
  .eve-b {
    width: 100%;
    padding: 0 20px 20px;
  }
}/*# sourceMappingURL=index.css.map */