#mainvisual {
  width: var(--100vw);
  height: calc(var(--100vw) / 1366 * 430);
}
@media screen and (max-width: 660px) {
  #mainvisual {
    height: calc(var(--100vw) / 375 * 439);
  }
}
#mainvisual img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

#hasSideBar {
  padding-top: 72px;
}
@media screen and (max-width: 767px) {
  #hasSideBar {
    padding-top: 80px;
  }
}

.sideBar .campaign {
  display: none;
}
@media screen and (max-width: 767px) {
  .sideBar .campaign {
    display: block;
  }
}

#side-news {
  padding-bottom: 39px;
}
@media screen and (max-width: 767px) {
  #side-news {
    padding-bottom: 50px;
  }
}
#side-news .section-title {
  padding-bottom: 6px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: left;
  color: var(--theme-color);
  border-bottom: solid 1px var(--theme-color);
}
#side-news .item {
  padding-top: 8px;
  padding-bottom: 12px;
  width: 100%;
  border-bottom: solid 1px var(--theme-color);
  transition: ease 0.2s opacity;
}
@media (hover: hover) and (pointer: fine) {
  #side-news .item:hover {
    opacity: 0.5;
  }
}
#side-news .item .date {
  margin-bottom: 6px;
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: left;
  color: #000;
}
#side-news .item .category {
  display: flex;
  flex-wrap: wrap;
}
#side-news .item .category p {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 6px;
  margin-bottom: 6px;
  padding: 0 8px;
  height: 25px;
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: left;
  color: #fff;
  background-color: #E5915A;
}
#side-news .item .title {
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 22px;
  text-align: left;
  color: #000;
}
#side-news .toList {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
  margin-right: 0;
  margin-left: auto;
  padding-bottom: 4px;
  width: 64px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 13px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #000;
  border-bottom: solid 1px #000;
  transition: ease 0.2s color, ease 0.2s border-color;
}
@media screen and (max-width: 767px) {
  #side-news .toList {
    margin-right: 21px;
  }
}
@media (hover: hover) and (pointer: fine) {
  #side-news .toList:hover {
    color: var(--theme-color);
    border-color: var(--theme-color);
  }
}
#side-news .toList::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-top: solid 1px #000;
  border-right: solid 1px #000;
  transform: rotate(45deg);
  transition: ease 0.2s border-color;
}
@media (hover: hover) and (pointer: fine) {
  #side-news .toList:hover::after {
    border-color: var(--theme-color);
  }
}

#side-blog {
  padding-bottom: 39px;
}
@media screen and (max-width: 767px) {
  #side-blog {
    padding-bottom: 50px;
  }
}
#side-blog .section-title {
  padding-bottom: 6px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: left;
  color: var(--theme-color);
  border-bottom: solid 1px var(--theme-color);
}
#side-blog .item {
  padding-top: 8px;
  padding-bottom: 12px;
  width: 100%;
  border-bottom: solid 1px var(--theme-color);
  transition: ease 0.2s opacity;
}
@media screen and (max-width: 767px) {
  #side-blog .item {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto 1fr;
  }
}
@media screen and (max-width: 500px) {
  #side-blog .item {
    display: block;
  }
}
@media (hover: hover) and (pointer: fine) {
  #side-blog .item:hover {
    opacity: 0.5;
  }
}
#side-blog .item .thumbnail {
  margin-bottom: 12px;
  width: 100%;
  max-height: 230px;
  object-fit: contain;
}
@media screen and (max-width: 767px) {
  #side-blog .item .thumbnail {
    grid-column: 1/2;
    grid-row: 1/4;
    margin-right: 20px;
    margin-bottom: 0;
    width: 142px;
    max-height: 142px;
  }
}
@media screen and (max-width: 500px) {
  #side-blog .item .thumbnail {
    display: block;
    margin-right: auto;
    margin-bottom: 18px;
    margin-left: auto;
  }
}
#side-blog .item .date {
  margin-bottom: 6px;
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  #side-blog .item .date {
    grid-column: 2/3;
    grid-row: 1/2;
    padding-top: 20px;
  }
}
@media screen and (max-width: 500px) {
  #side-blog .item .date {
    padding-top: 0;
  }
}
#side-blog .item .category {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  #side-blog .item .category {
    grid-column: 2/3;
    grid-row: 2/3;
    justify-self: start;
  }
}
#side-blog .item .category p {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 6px;
  margin-bottom: 6px;
  padding: 0 8px;
  height: 25px;
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: left;
  color: #fff;
  background-color: #E5915A;
}
#side-blog .item .title {
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 22px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  #side-blog .item .title {
    grid-column: 2/3;
    grid-row: 3/4;
    align-self: start;
  }
}
#side-blog .toList {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
  margin-right: 0;
  margin-left: auto;
  padding-bottom: 4px;
  width: 64px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 13px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #000;
  border-bottom: solid 1px #000;
  transition: ease 0.2s color, ease 0.2s border-color;
}
@media screen and (max-width: 767px) {
  #side-blog .toList {
    margin-right: 21px;
  }
}
@media (hover: hover) and (pointer: fine) {
  #side-blog .toList:hover {
    color: var(--theme-color);
    border-color: var(--theme-color);
  }
}
#side-blog .toList::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-top: solid 1px #000;
  border-right: solid 1px #000;
  transform: rotate(45deg);
  transition: ease 0.2s border-color;
}
@media (hover: hover) and (pointer: fine) {
  #side-blog .toList:hover::after {
    border-color: var(--theme-color);
  }
}

#side-magazine {
  padding: 29px 21px 34px;
  background-color: var(--light-color);
}
#side-magazine .section-title {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 16px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #000;
}
#side-magazine .section-title::before, #side-magazine .section-title::after {
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  background-color: var(--theme-color);
}
#side-magazine .section-title::before {
  margin-right: 6px;
}
#side-magazine .section-title::after {
  margin-left: 6px;
}
#side-magazine .item {
  width: 100%;
  transition: ease 0.2s opacity;
}
@media screen and (max-width: 767px) {
  #side-magazine .item {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto 1fr;
  }
}
@media screen and (max-width: 500px) {
  #side-magazine .item {
    display: block;
  }
}
@media (hover: hover) and (pointer: fine) {
  #side-magazine .item:hover {
    opacity: 0.5;
  }
}
#side-magazine .item img {
  display: block;
  margin-right: auto;
  margin-bottom: 18px;
  margin-left: auto;
  width: 142px;
}
@media screen and (max-width: 767px) {
  #side-magazine .item img {
    grid-column: 1/2;
    grid-row: 1/4;
    margin-right: 20px;
    margin-bottom: 0;
  }
}
@media screen and (max-width: 500px) {
  #side-magazine .item img {
    margin-right: auto;
    margin-bottom: 18px;
  }
}
#side-magazine .item .date {
  margin-bottom: 6px;
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  #side-magazine .item .date {
    grid-column: 2/3;
    grid-row: 1/2;
  }
}
#side-magazine .item .category {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 8px;
  padding: 0 8px;
  height: 25px;
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: left;
  color: #fff;
  background-color: var(--theme-color);
}
@media screen and (max-width: 767px) {
  #side-magazine .item .category {
    grid-column: 2/3;
    grid-row: 2/3;
    justify-self: start;
  }
}
#side-magazine .item .title {
  padding-bottom: 12px;
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 22px;
  text-align: left;
  color: #000;
  border-bottom: solid 1px var(--theme-color);
}
@media screen and (max-width: 767px) {
  #side-magazine .item .title {
    grid-column: 2/3;
    grid-row: 3/4;
    align-self: start;
  }
}
#side-magazine .toList {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
  margin-right: 0;
  margin-left: auto;
  padding-bottom: 4px;
  width: 64px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 13px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #000;
  border-bottom: solid 1px #000;
  transition: ease 0.2s color, ease 0.2s border-color;
}
@media (hover: hover) and (pointer: fine) {
  #side-magazine .toList:hover {
    color: var(--theme-color);
    border-color: var(--theme-color);
  }
}
#side-magazine .toList::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-top: solid 1px #000;
  border-right: solid 1px #000;
  transform: rotate(45deg);
  transition: ease 0.2s border-color;
}
@media (hover: hover) and (pointer: fine) {
  #side-magazine .toList:hover::after {
    border-color: var(--theme-color);
  }
}

@media screen and (max-width: 767px) {
  .rightContents .campaign {
    display: none;
  }
}
.rightContents #intro {
  padding-top: 40px;
  padding-bottom: 50px;
  text-align: center;
  background-color: #F2F2F2;
}
.rightContents #intro .section-title {
  display: inline-block;
  margin-bottom: 29px;
  padding-bottom: 6px;
  font-family: "Noto Serif JP";
  font-weight: bold;
  font-size: 28px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #000;
  border-bottom: solid 1px #000;
}
@media screen and (max-width: 767px) {
  .rightContents #intro .section-title {
    font-size: 20px;
  }
}
@media screen and (max-width: 500px) {
  .rightContents #intro .section-title {
    font-size: 18px;
    line-height: 24px;
  }
}
.rightContents #intro ul {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 0 auto;
  width: 562px;
  max-width: calc(100% - 40px);
}
.rightContents #intro ul li {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 22px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  .rightContents #intro ul li {
    font-size: 16px;
  }
}
.rightContents #intro ul li:not(:first-child) {
  margin-top: 32px;
}
.rightContents #intro ul li::before {
  flex-shrink: 0;
  content: "";
  display: block;
  margin-top: 3px;
  margin-right: 13px;
  width: 18px;
  height: 16px;
  background-image: url(../img/index/intro-check.svg);
  background-size: contain;
  background-repeat: no-repeat;
}
.rightContents #yoyakuBox {
  margin-top: 80px;
  margin-bottom: 0;
}
.rightContents #treat-policy {
  margin-top: 86px;
}
.rightContents #treat-policy .section-title {
  margin-bottom: 41px;
  font-family: "Noto Serif JP";
  font-weight: bold;
  font-size: 28px;
  letter-spacing: 0.08em;
  line-height: 46px;
  text-align: center;
  color: #000;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 8px;
}
@media screen and (max-width: 1024px) {
  .rightContents #treat-policy .section-title {
    font-size: 24px;
  }
}
@media screen and (max-width: 767px) {
  .rightContents #treat-policy .section-title {
    font-size: 18px;
    line-height: 34px;
  }
}
.rightContents #treat-policy .section-title .accent {
  color: var(--accent-color);
}
.rightContents #treat-policy .text-area {
  margin: 0 auto;
  width: 648px;
  max-width: 100%;
}
.rightContents #treat-policy .text-area p {
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 34px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  .rightContents #treat-policy .text-area p {
    font-size: 16px;
    line-height: 28px;
  }
}
.rightContents #treat-policy .text-area p:not(:first-child) {
  margin-top: 34px;
}
.rightContents #treat-policy .text-area p.bold {
  font-weight: bold;
}
.rightContents #treat-policy .text-area p.highlight {
  text-decoration: underline;
  text-decoration-color: #FFD561;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
  text-decoration-thickness: 10px;
  text-underline-offset: -3px;
}
.rightContents #treat-policy .treat-policy-img {
  display: block;
  margin-top: 47px;
  margin-right: auto;
  margin-bottom: 62px;
  margin-left: auto;
  width: 549px;
  max-width: 100%;
}
@media screen and (max-width: 767px) {
  .rightContents #treat-policy .treat-policy-img {
    margin-top: 20px;
    margin-bottom: 40px;
  }
}
.rightContents #soleil {
  padding-top: 98px;
  padding-bottom: 96px;
}
@media screen and (max-width: 767px) {
  .rightContents #soleil {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
.rightContents #soleil img {
  width: 100%;
}

.campaign {
  padding-bottom: 57px;
  text-align: center;
}
.campaign .sub {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 15px;
  padding-right: 31px;
  padding-left: 31px;
  height: 32px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 18px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
  background-color: #C40000;
  border-radius: 16px;
}
@media screen and (max-width: 767px) {
  .campaign .sub {
    padding-right: 20px;
    padding-left: 20px;
    font-size: 16px;
  }
}
.campaign .main {
  margin-right: auto;
  margin-bottom: 20px;
  margin-left: auto;
  width: 590px;
  max-width: 100%;
}
.campaign ul {
  display: flex;
  justify-content: center;
  align-items: stretch;
}
@media screen and (max-width: 1040px) {
  .campaign ul {
    flex-direction: column;
  }
}
.campaign ul li.color-red {
  --color1: #f55a55;
  --color2: rgba(245, 90, 85, 0.25);
  --color3: #FFF5F5;
}
.campaign ul li.color-blue {
  --color1: #4B8BBC;
  --color2: rgba(75, 139, 188, 0.25);
  --color3: #F6FBFF;
}
.campaign ul li.color-green {
  --color1: #49AE71;
  --color2: rgba(73, 174, 113, 0.25);
  --color3: #F8FFFB;
}
.campaign ul li a {
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: ease 0.2s opacity;
}
@media (hover: hover) and (pointer: fine) {
  .campaign ul li a:hover {
    opacity: 0.5;
  }
}
.campaign ul li a .head {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  background-color: var(--color3);
  border: solid 2px var(--color1);
}
.campaign ul li a .head .top {
  padding-right: 24px;
  padding-bottom: 21px;
  padding-left: 24px;
  width: 100%;
}
.campaign ul li a .head .top .title {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  margin-bottom: 16px;
  height: 73px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 24px;
  letter-spacing: 0.05em;
  line-height: 28px;
  text-align: center;
  color: #000;
}
@media screen and (max-width: 1040px) {
  .campaign ul li a .head .top .title {
    padding-top: 18px;
    padding-bottom: 12px;
    height: auto;
  }
}
@media screen and (max-width: 767px) {
  .campaign ul li a .head .top .title {
    font-size: 18px;
    line-height: 24px;
  }
}
.campaign ul li a .head .top .title::before {
  content: "";
  display: block;
  position: absolute;
  right: 0;
  left: 0;
  bottom: 0;
  height: 2px;
  background-color: var(--color1);
  border-radius: 1px;
}
@media screen and (max-width: 1040px) {
  .campaign ul li a .head .top .title br {
    display: none;
  }
}
@media screen and (max-width: 500px) {
  .campaign ul li a .head .top .title br {
    display: inline;
  }
}
.campaign ul li a .head .top .text {
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 22px;
  text-align: left;
  color: #000;
}
.campaign ul li a .head .top .text .highlight {
  text-decoration: underline;
  text-decoration-color: var(--color2);
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
  text-decoration-thickness: 18px;
  text-underline-offset: -14px;
}
.campaign ul li a .head .bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 25px;
  width: 100%;
}
.campaign ul li a .head .bottom .fukidashi {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 157px;
  height: 26px;
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
  background-color: #818181;
  border-radius: 13px;
}
@media screen and (max-width: 767px) {
  .campaign ul li a .head .bottom .fukidashi {
    font-size: 16px;
  }
}
.campaign ul li a .head .bottom .fukidashi-big {
  padding-top: 10px;
  padding-bottom: 10px;
  width: calc(100% - 10px);
  height: auto;
  font-size: 12px;
  line-height: 16px;
  border-radius: 999px;
}
@media screen and (max-width: 1040px) {
  .campaign ul li a .head .bottom .fukidashi-big {
    padding-right: 10px;
    padding-left: 10px;
    width: auto;
  }
}
.campaign ul li a .head .bottom .fukidashi::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(100% - 1px);
  right: 0;
  left: 0;
  margin-right: auto;
  margin-left: auto;
  width: 12px;
  height: 6px;
  background-color: #818181;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media screen and (max-width: 1040px) {
  .campaign ul li a .head .bottom .fukidashi-big br {
    display: none;
  }
}
@media screen and (max-width: 500px) {
  .campaign ul li a .head .bottom .fukidashi-big br {
    display: inline;
  }
}
.campaign ul li a .head .bottom img {
  margin-top: 16px;
  height: 55px;
}
@media screen and (max-width: 767px) {
  .campaign ul li a .head .bottom img {
    height: 45px;
  }
}
.campaign ul li a .foot {
  flex-grow: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  height: 40px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 16px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
  background-color: var(--color1);
}
.campaign ul li a .foot::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 14px;
  bottom: 0;
  margin-top: auto;
  margin-bottom: auto;
  width: 7px;
  height: 7px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(45deg);
}
.campaign ul.columns-3 li {
  width: calc((100% - 30px) / 3);
}
@media screen and (max-width: 1040px) {
  .campaign ul.columns-3 li {
    width: 100%;
  }
}
.campaign ul.columns-3 li:not(:first-child) {
  margin-left: 15px;
}
@media screen and (max-width: 1040px) {
  .campaign ul.columns-3 li:not(:first-child) {
    margin-top: 14px;
    margin-left: 0;
  }
}
.campaign ul.columns-2 li {
  width: 282px;
  max-width: calc((100% - 30px) / 2);
}
@media screen and (max-width: 1040px) {
  .campaign ul.columns-2 li {
    width: 100%;
    max-width: none;
  }
}
.campaign ul.columns-2 li:not(:first-child) {
  margin-left: 30px;
}
@media screen and (max-width: 1040px) {
  .campaign ul.columns-2 li:not(:first-child) {
    margin-top: 14px;
    margin-left: 0;
  }
}
.campaign .note {
  margin-top: 14px;
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 24px;
  text-align: center;
  color: #C40000;
}

#reason {
  padding-top: 100px;
  padding-bottom: 96px;
  text-align: center;
  background-color: var(--light-accent-color);
}
@media screen and (max-width: 767px) {
  #reason {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
#reason .section-title {
  display: inline-block;
  margin-bottom: 24px;
  padding-bottom: 10px;
  font-family: "Noto Serif JP";
  font-weight: 900;
  font-size: 28px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #000;
  border-bottom: 1px solid #93C562;
}
@media screen and (max-width: 767px) {
  #reason .section-title {
    margin-bottom: 50px;
    font-size: 16px;
    line-height: 24px;
  }
}
#reason .section-title .large {
  font-size: 34px;
  color: #93C562;
}
@media screen and (max-width: 767px) {
  #reason .section-title .large {
    font-size: 24px;
  }
}
#reason .section-title .img-wrapper {
  position: relative;
  font-size: 40px;
}
@media screen and (max-width: 767px) {
  #reason .section-title .img-wrapper {
    font-size: 36px;
  }
}
#reason .section-title .img-wrapper::before {
  content: "";
  display: block;
  position: absolute;
  right: 0;
  bottom: 10px;
  left: 1px;
  height: 48px;
  background-color: #93C562;
  mask-image: url(../img/index/reason-title-3.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/index/reason-title-3.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  #reason .section-title .img-wrapper::before {
    bottom: 8px;
    left: 0;
    height: 44px;
  }
}
#reason .section-title .img-wrapper .img {
  visibility: hidden;
}
#reason .item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
}
@media screen and (max-width: 767px) {
  #reason .item {
    flex-direction: column;
    justify-content: flex-start;
  }
}
#reason .item:not(:first-child) {
  margin-top: 44px;
}
#reason .item .text-area {
  flex-shrink: 0;
  margin-right: 30px;
  width: 475px;
}
@media screen and (max-width: 1024px) {
  #reason .item .text-area {
    width: 400px;
  }
}
@media screen and (max-width: 767px) {
  #reason .item .text-area {
    margin-right: 0;
    margin-bottom: 30px;
    width: 100%;
  }
}
#reason .item .text-area .num {
  position: relative;
  margin-bottom: 18px;
  font-family: "Roboto";
  font-weight: bold;
  font-size: 59px;
  text-align: left;
  color: #E5915A;
}
@media screen and (max-width: 1024px) {
  #reason .item .text-area .num {
    font-size: 42px;
  }
}
#reason .item .text-area .num::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 215px;
  height: 3px;
  background-color: #E5915A;
  mask-image: linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 100%);
  -webkit-mask-image: linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 100%);
}
#reason .item .text-area .main {
  margin-bottom: 24px;
  font-family: "Noto Serif JP";
  font-weight: bold;
  font-size: 30px;
  letter-spacing: 0.08em;
  line-height: 44px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 1024px) {
  #reason .item .text-area .main {
    margin-bottom: 20px;
    font-size: 22px;
    line-height: 32px;
  }
}
#reason .item .text-area .text p {
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 32px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 1024px) {
  #reason .item .text-area .text p {
    font-size: 14px;
    line-height: 22px;
  }
}
#reason .item .pht-area {
  position: relative;
  padding-top: 40px;
  width: 433px;
}
@media screen and (max-width: 767px) {
  #reason .item .pht-area {
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-start;
    padding-top: 0;
    max-width: 100%;
  }
}
#reason .item .pht-area img {
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
#reason .item .pht-area .note {
  position: absolute;
  top: 6px;
  right: 0;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #8f8f8f;
}
@media screen and (max-width: 767px) {
  #reason .item .pht-area .note {
    position: static;
    margin-top: 12px;
    font-size: 12px;
  }
}

#course {
  padding-top: 96px;
  padding-bottom: 96px;
  background-color: #F6F6F6;
}
@media screen and (max-width: 767px) {
  #course {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
#course .section-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 40px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 28px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #000;
}
@media screen and (max-width: 767px) {
  #course .section-title {
    font-size: 20px;
  }
}
#course .section-title::after {
  content: "";
  display: block;
  margin-top: 12px;
  width: 60px;
  height: 7px;
  background-color: var(--theme-color);
}
@media screen and (max-width: 767px) {
  #course .section-title::after {
    width: 44px;
    height: 5px;
  }
}
#course .box {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 50px 0;
  background-color: #fff;
  box-shadow: 0 0 11px rgba(98, 67, 67, 0.2);
}
@media screen and (max-width: 767px) {
  #course .box {
    flex-direction: column;
    align-items: center;
  }
}
#course .box:not(:first-child) {
  margin-top: 24px;
}
#course .box .title-area {
  flex-shrink: 0;
  margin-right: 30px;
  padding-left: 67px;
  width: 217px;
  text-align: center;
}
@media screen and (max-width: 1024px) {
  #course .box .title-area {
    padding-left: 30px;
    width: 180px;
  }
}
@media screen and (max-width: 767px) {
  #course .box .title-area {
    margin-right: 0;
    margin-bottom: 30px;
    padding-left: 0;
    width: 150px;
  }
}
#course .box .title-area .box-title {
  margin-bottom: 14px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 22px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #000;
}
@media screen and (max-width: 767px) {
  #course .box .title-area .box-title {
    font-size: 18px;
  }
}
#course .box .title-area img {
  width: 110px;
}
@media screen and (max-width: 767px) {
  #course .box .title-area img {
    width: 90px;
  }
}
#course .box .list-area {
  flex-shrink: 1;
  flex-grow: 1;
  min-width: 0;
}
@media screen and (max-width: 767px) {
  #course .box .list-area {
    max-width: calc(100% - 40px);
  }
}
#course .box .list-area ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  margin: 0 auto;
  width: 520px;
  max-width: 100%;
}
#course .box .list-area ul li {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding-right: 10px;
  width: 50%;
}
@media screen and (max-width: 500px) {
  #course .box .list-area ul li {
    width: 100%;
  }
}
#course .box .list-area ul li:not(:nth-child(1)):not(:nth-child(2)) {
  margin-top: 6px;
}
#course .box .list-area ul li::before {
  content: "";
  display: block;
  margin-top: 13px;
  margin-right: 7px;
  width: 6px;
  height: 6px;
  background-color: var(--theme-color);
}
#course .box .list-area ul li a, #course .box .list-area ul li span {
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 26px;
  text-align: left;
  color: #000;
}
#course .box .list-area ul li a {
  text-decoration: underline;
  transition: ease 0.2s text-decoration-color;
}
@media (hover: hover) and (pointer: fine) {
  #course .box .list-area ul li a:hover {
    text-decoration-color: transparent;
  }
}

#case {
  padding-top: 101px;
  padding-bottom: 107px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  #case {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
#case .section-title {
  display: inline-block;
  position: relative;
  margin-bottom: 42px;
  font-family: "Noto Serif JP";
  font-weight: 900;
  font-size: 28px;
  letter-spacing: 0.08em;
  line-height: 40px;
  text-align: center;
  color: #000;
}
@media screen and (max-width: 767px) {
  #case .section-title {
    font-size: 18px;
    line-height: 30px;
  }
}
#case .section-title::before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: -25px;
  width: 2px;
  height: 30px;
  background-color: #000;
  transform: rotate(-30deg);
}
#case .section-title::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  right: -25px;
  width: 2px;
  height: 30px;
  background-color: #000;
  transform: rotate(30deg);
}
#case .section-title .accent {
  color: #93C562;
}
#case .list li:not(:first-child) {
  margin-top: 52px;
  padding-top: 52px;
  border-top: solid 1px #BEBEBE;
}
#case .list li .pht-area {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 660px) {
  #case .list li .pht-area {
    flex-direction: column;
    justify-content: flex-start;
  }
}
#case .list li .pht-area .before,
#case .list li .pht-area .after {
  width: calc((100% - 104px) / 2);
}
@media screen and (max-width: 767px) {
  #case .list li .pht-area .before,
  #case .list li .pht-area .after {
    width: calc((100% - 70px) / 2);
  }
}
@media screen and (max-width: 660px) {
  #case .list li .pht-area .before,
  #case .list li .pht-area .after {
    width: 100%;
  }
}
#case .list li .pht-area .before .head,
#case .list li .pht-area .after .head {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 41px;
  font-family: "Roboto";
  font-weight: 500;
  font-size: 20px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #fff;
}
#case .list li .pht-area .before .foot,
#case .list li .pht-area .after .foot {
  height: 328px;
  border: solid 2px transparent;
}
@media screen and (max-width: 767px) {
  #case .list li .pht-area .before .foot,
  #case .list li .pht-area .after .foot {
    height: 260px;
  }
}
@media screen and (max-width: 660px) {
  #case .list li .pht-area .before .foot,
  #case .list li .pht-area .after .foot {
    height: auto;
  }
}
#case .list li .pht-area .before .foot img,
#case .list li .pht-area .after .foot img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 660px) {
  #case .list li .pht-area .before {
    margin-bottom: 30px;
  }
}
#case .list li .pht-area .before .head {
  background-color: #858585;
}
#case .list li .pht-area .before .foot {
  background-color: #E8E8E8;
  border-color: #858585;
}
#case .list li .pht-area .arrow {
  display: block;
  width: 71px;
  height: 28px;
  background-color: var(--accent-color);
  mask-image: url(../img/index/case-arrow.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-image: url(../img/index/case-arrow.svg);
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  #case .list li .pht-area .arrow {
    width: 40px;
    height: 16px;
  }
}
@media screen and (max-width: 660px) {
  #case .list li .pht-area .arrow {
    transform: rotate(90deg);
    transform-origin: center;
  }
}
@media screen and (max-width: 660px) {
  #case .list li .pht-area .after {
    margin-top: 30px;
  }
}
#case .list li .pht-area .after .head {
  background-color: var(--theme-color);
}
#case .list li .pht-area .after .foot {
  background-color: var(--light-color);
  border-color: var(--theme-color);
}
#case .list li .text {
  margin-top: 30px;
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 26px;
  text-align: center;
  color: #000;
}
@media screen and (max-width: 767px) {
  #case .list li .text {
    font-size: 16px;
    line-height: 24px;
  }
}

#voice {
  position: relative;
  padding-top: 98px;
  padding-bottom: 107px;
  background-color: var(--light-accent-color);
}
@media screen and (max-width: 767px) {
  #voice {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
#voice::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 426px;
  height: 426px;
  background-image: url(../img/index/voice-bg-top.png);
  background-size: contain;
  background-position: top left;
  background-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  #voice::before {
    width: 320px;
    height: 320px;
  }
}
#voice::after {
  content: "";
  display: block;
  position: absolute;
  right: 0;
  bottom: 0;
  width: 527px;
  height: 527px;
  background-image: url(../img/index/voice-bg-bottom.png);
  background-size: contain;
  background-position: right bottom;
  background-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  #voice::after {
    width: 320px;
    height: 320px;
  }
}
#voice .inner {
  position: relative;
  z-index: 1;
}
#voice .inner .section-title {
  margin-bottom: 30px;
  font-family: "Noto Serif JP";
  font-weight: 900;
  font-size: 28px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #000;
}
@media screen and (max-width: 767px) {
  #voice .inner .section-title {
    font-size: 18px;
    line-height: 26px;
  }
}
#voice .inner .section-title .large {
  font-size: 34px;
}
@media screen and (max-width: 767px) {
  #voice .inner .section-title .large {
    font-size: 22px;
  }
}
#voice .inner .section-title .accent {
  color: var(--accent-color);
}
#voice .inner .common-btn {
  margin-top: 42px;
}

#access {
  padding-top: 96px;
  padding-bottom: 103px;
}
@media screen and (max-width: 767px) {
  #access {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
#access .section-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 40px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 28px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #000;
}
@media screen and (max-width: 767px) {
  #access .section-title {
    font-size: 20px;
  }
}
#access .section-title::after {
  content: "";
  display: block;
  margin-top: 12px;
  width: 60px;
  height: 7px;
  background-color: var(--theme-color);
}
@media screen and (max-width: 767px) {
  #access .section-title::after {
    width: 44px;
    height: 5px;
  }
}
#access .access-content {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
@media screen and (max-width: 767px) {
  #access .access-content {
    flex-direction: column-reverse;
    justify-content: start;
  }
}
#access .access-content .map-wrapper {
  flex-grow: 1;
  margin-right: 76px;
}
@media screen and (max-width: 1024px) {
  #access .access-content .map-wrapper {
    margin-right: 30px;
  }
}
@media screen and (max-width: 767px) {
  #access .access-content .map-wrapper {
    margin-right: 0;
    margin-top: 30px;
    width: 100%;
    height: calc((var(--100vw) - 60px) / 514 * 304);
  }
}
#access .access-content .map-wrapper iframe {
  width: 100%;
  height: 100%;
}
#access .access-content .info-wrapper {
  flex-shrink: 0;
  width: 390px;
}
@media screen and (max-width: 767px) {
  #access .access-content .info-wrapper {
    width: 100%;
  }
}
#access .access-content .info-wrapper li {
  padding-top: 16px;
  padding-bottom: 16px;
  border-bottom: solid 1px #BEBEBE;
}
#access .access-content .info-wrapper li:first-child {
  padding-top: 0;
}
#access .access-content .info-wrapper li .title {
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 24px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  #access .access-content .info-wrapper li .title {
    font-size: 14px;
    line-height: 22px;
  }
}
#access .access-content .info-wrapper li .text {
  font-family: "Noto Sans JP";
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 24px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  #access .access-content .info-wrapper li .text {
    font-size: 14px;
    line-height: 22px;
  }
}
#access .access-text {
  margin-top: 16px;
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 24px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  #access .access-text {
    font-size: 14px;
    line-height: 22px;
  }
}
#access .common-btn {
  margin-top: 49px;
  margin-bottom: 59px;
}
#access .remote-box {
  margin: 0 auto;
  padding: 31px 61px 36px;
  width: 643px;
  background-color: var(--light-color);
}
@media screen and (max-width: 767px) {
  #access .remote-box {
    padding: 30px 61px;
    width: 100%;
  }
}
@media screen and (max-width: 500px) {
  #access .remote-box {
    padding: 30px 20px;
  }
}
#access .remote-box .title {
  margin-bottom: 16px;
  padding-bottom: 16px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 24px;
  text-align: center;
  color: #000;
  border-bottom: solid 1px var(--theme-color);
}
@media screen and (max-width: 767px) {
  #access .remote-box .title {
    font-size: 14px;
    line-height: 22px;
  }
}
#access .remote-box .text {
  font-family: "Noto Sans JP";
  font-weight: normal;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 24px;
  text-align: left;
  color: #000;
}
@media screen and (max-width: 767px) {
  #access .remote-box .text {
    font-size: 12px;
    line-height: 20px;
  }
}
#access .remote-box a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
  margin-right: 0;
  margin-left: auto;
  padding-bottom: 4px;
  width: 93px;
  font-family: "Noto Sans JP";
  font-weight: bold;
  font-size: 13px;
  letter-spacing: 0.05em;
  text-align: center;
  color: #000;
  border-bottom: solid 1px #000;
  transition: ease 0.2s color, ease 0.2s border-color;
}
@media screen and (max-width: 767px) {
  #access .remote-box a {
    margin-top: 20px;
  }
}
@media (hover: hover) and (pointer: fine) {
  #access .remote-box a:hover {
    color: var(--theme-color);
    border-color: var(--theme-color);
  }
}
#access .remote-box a::after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-top: solid 1px #000;
  border-right: solid 1px #000;
  transform: rotate(45deg);
  transition: ease 0.2s border-color;
}
@media (hover: hover) and (pointer: fine) {
  #access .remote-box a:hover::after {
    border-color: var(--theme-color);
  }
}/*# sourceMappingURL=index.css.map */

.line-contact {
  display: flex;
}