.main_head {
  position: relative;
}
@media print, screen and (min-width: 769px) {
  .main_head {
    min-height: auto;
    padding-top: 0;
  }
}

@media print, screen and (min-width: 769px) {
  .rheader {
    position: relative;
  }
}
@media screen and (max-width: 768px) {
  .rheader {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 6rem;
    z-index: 50;
  }
}
.rheader_h2 {
  font-weight: 600;
  font-family: "Outfit", "Noto Sans JP", sans-serif;
}
@media print, screen and (min-width: 769px) {
  .rheader_h2 {
    display: none;
    padding-bottom: 2rem;
    line-height: 1.149em;
    font-size: 2.7rem;
  }
  .rheader_h2 > h2 {
    line-height: inherit;
    font: inherit;
  }
  .rheader_h2 > h2:first-of-type {
    margin-top: -0.074em;
  }
  .rheader_h2 > h2:last-of-type {
    margin-bottom: -0.074em;
  }
}
@media screen and (max-width: 768px) {
  .rheader_h2 {
    display: none !important;
  }
}
@media print, screen and (min-width: 769px) {
  .rheader_anchor {
    display: none !important;
  }
}
.rheader_anchor > i {
  -webkit-transform: rotateZ(90deg);
          transform: rotateZ(90deg);
}
.rheader_anchor.is-active > i {
  -webkit-transform: rotateZ(-90deg);
          transform: rotateZ(-90deg);
}
.rheader_ul {
  line-height: 1.625em;
  font-size: 1.6rem;
}
@media print, screen and (min-width: 769px) {
  .rheader_ul {
    display: grid;
    grid-template-columns: 1fr 7rem 1fr 5rem 1fr;
    grid-template-rows: repeat(3, 1fr);
    row-gap: 1.2rem;
  }
}
@media screen and (max-width: 768px) {
  .rheader_ul {
    display: none;
    position: absolute;
    background: #eee;
    left: -6rem;
    right: -6rem;
    top: 10rem;
    padding: 8rem;
    line-height: 2.04em;
    font-size: 2.5rem;
  }
  .rheader_ul::after {
    content: "";
    display: block;
    clear: both;
  }
}
.rheader_ul > li {
  display: flex;
  justify-content: flex-start;
}
@media print, screen and (min-width: 769px) {
  .rheader_ul > li:nth-of-type(1) {
    grid-column: 1/2;
    grid-row: 1/4;
    border-right: 1px solid #dedede;
  }
  .rheader_ul > li:nth-of-type(2) {
    grid-column: 3/4;
    grid-row: 1/2;
  }
  .rheader_ul > li:nth-of-type(3) {
    grid-column: 3/4;
    grid-row: 2/3;
  }
  .rheader_ul > li:nth-of-type(4) {
    grid-column: 3/4;
    grid-row: 3/4;
  }
  .rheader_ul > li:nth-of-type(5) {
    grid-column: 5/6;
    grid-row: 1/2;
  }
  .rheader_ul > li:nth-of-type(6) {
    grid-column: 5/6;
    grid-row: 2/3;
  }
}
@media screen and (max-width: 768px) {
  .rheader_ul > li:nth-of-type(odd) {
    float: left;
    width: 52.543%;
  }
  .rheader_ul > li:nth-of-type(even) {
    float: right;
    width: 47.457%;
  }
  .rheader_ul > li:nth-of-type(n+3) {
    margin-top: 4.8rem;
  }
}
.rheader_link {
  display: block;
  position: relative;
  padding-left: 3rem;
  color: #2d2d2d;
}
.rheader_link::before {
  content: "";
  position: absolute;
  border-bottom: 1px solid #2d2d2d;
  width: 0.8rem;
  left: 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
@media print, screen and (min-width: 769px) {
  .rheader_link::before {
    top: 0.813em;
  }
}
@media screen and (max-width: 768px) {
  .rheader_link::before {
    top: 50%;
  }
}
.rheader_link > span {
  display: block;
  position: relative;
}
.rheader_link > span::after {
  content: "";
  display: none;
  position: absolute;
  border-bottom: 1px solid;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}
.rheader_link.is-current {
  font-weight: 700;
  pointer-events: none;
}
.rheader_link.is-current > span::after {
  display: block;
}

.rfooter {
  position: relative;
}
@media print, screen and (min-width: 769px) {
  .rfooter {
    display: none !important;
  }
}
.rfooter_h2 {
  line-height: 1.149em;
  font-size: 2.7rem;
  font-weight: 600;
  font-family: "Outfit", "Noto Sans JP", sans-serif;
}
.rfooter_h2 > h2 {
  line-height: inherit;
  font: inherit;
}
.rfooter_h2 > h2:first-of-type {
  margin-top: -0.074em;
}
.rfooter_h2 > h2:last-of-type {
  margin-bottom: -0.074em;
}
@media print, screen and (min-width: 769px) {
  .rfooter_h2 {
    padding-bottom: 2rem;
  }
}
@media screen and (max-width: 768px) {
  .rfooter_h2 {
    padding: 0 6rem 6rem;
  }
}
.rfooter_ul {
  line-height: 1.625em;
  font-size: 1.6rem;
}
@media print, screen and (min-width: 769px) {
  .rfooter_ul {
    display: grid;
    grid-template-columns: 1fr 7rem 1fr 5rem 1fr;
    grid-template-rows: repeat(3, 1fr);
    row-gap: 1.2rem;
  }
}
@media screen and (max-width: 768px) {
  .rfooter_ul {
    padding: 0 8rem 8rem;
    line-height: 2.04em;
    font-size: 2.5rem;
  }
  .rfooter_ul::after {
    content: "";
    display: block;
    clear: both;
  }
}
.rfooter_ul > li {
  display: flex;
  justify-content: flex-start;
}
@media print, screen and (min-width: 769px) {
  .rfooter_ul > li:nth-of-type(1) {
    grid-column: 1/2;
    grid-row: 1/4;
    border-right: 1px solid #dedede;
  }
  .rfooter_ul > li:nth-of-type(2) {
    grid-column: 3/4;
    grid-row: 3/4;
  }
  .rfooter_ul > li:nth-of-type(3) {
    grid-column: 3/4;
    grid-row: 1/2;
  }
  .rfooter_ul > li:nth-of-type(4) {
    grid-column: 5/6;
    grid-row: 1/2;
  }
  .rfooter_ul > li:nth-of-type(5) {
    grid-column: 3/4;
    grid-row: 2/3;
  }
  .rfooter_ul > li:nth-of-type(6) {
    grid-column: 5/6;
    grid-row: 2/3;
  }
}
@media screen and (max-width: 768px) {
  .rfooter_ul > li:nth-of-type(odd) {
    float: left;
    width: 43.39%;
  }
  .rfooter_ul > li:nth-of-type(even) {
    float: right;
    width: 56.61%;
  }
  .rfooter_ul > li:nth-of-type(n+3) {
    margin-top: 4.8rem;
  }
}
.rfooter_link {
  display: block;
  position: relative;
  padding-left: 3rem;
  color: #2d2d2d;
}
.rfooter_link::before {
  content: "";
  position: absolute;
  border-bottom: 1px solid #2d2d2d;
  width: 0.8rem;
  left: 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
@media print, screen and (min-width: 769px) {
  .rfooter_link::before {
    top: 0.813em;
  }
}
@media screen and (max-width: 768px) {
  .rfooter_link::before {
    top: 50%;
  }
}
.rfooter_link > span {
  display: block;
  position: relative;
}
.rfooter_link > span::after {
  content: "";
  display: none;
  position: absolute;
  border-bottom: 1px solid;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}
.rfooter_link.is-current {
  font-weight: 700;
  pointer-events: none;
}
.rfooter_link.is-current > span::after {
  display: block;
}

.rmain_lead {
  letter-spacing: 0.02em;
  line-height: 1.5em;
  font-size: 2.8rem;
  font-weight: 700;
}
.rmain_lead > p {
  line-height: inherit;
  font: inherit;
}
.rmain_lead > p:first-of-type {
  margin-top: -0.25em;
}
.rmain_lead > p:last-of-type {
  margin-bottom: -0.25em;
}
@media screen and (max-width: 768px) {
  .rmain_lead {
    font-size: 3.6rem;
  }
}
.rmain_box {
  position: relative;
}
.rmain_box.bg1::before {
  content: "";
  position: absolute;
  background: #f2f4f4;
  top: 0;
  bottom: 0;
  pointer-events: none;
}
.rmain_box.bg2::before {
  content: "";
  position: absolute;
  background: #fff;
  top: 0;
  bottom: 0;
  pointer-events: none;
}
.rmain_box.bg3::before {
  content: "";
  position: absolute;
  background: #ebf5ef;
  top: 0;
  bottom: 0;
  pointer-events: none;
}
.rmain_box.wid1 {
  padding: 8rem 0 12.5rem;
}
@media screen and (max-width: 768px) {
  .rmain_box.wid1 {
    padding: 13rem 0 15rem;
  }
}
@media print, screen and (min-width: 769px) {
  .rmain_box.wid1::before {
    border-radius: 0 4rem 4rem 0;
    left: calc(50rem - 50vw);
    right: -12rem;
  }
}
@media screen and (max-width: 768px) {
  .rmain_box.wid1::before {
    border-radius: 4rem 0 0 4rem;
    left: -2rem;
    right: calc(31.5rem - 50vw);
  }
}
.rmain_box.wid2 {
  padding-bottom: 10.5rem;
}
@media print, screen and (min-width: 769px) {
  .rmain_box.wid2 {
    padding-top: 9rem;
  }
}
@media screen and (max-width: 768px) {
  .rmain_box.wid2 {
    padding-bottom: 3rem;
  }
}
@media print, screen and (min-width: 769px) {
  .rmain_box.wid2::before {
    border-radius: 0 4rem 4rem 0;
    left: calc(50rem - 50vw);
    right: calc(50% - 24rem);
  }
}
@media screen and (max-width: 768px) {
  .rmain_box.wid2::before {
    border-radius: 4rem;
    left: 4rem;
    right: 4rem;
  }
}
.rmain_box.wid3 {
  padding: 15rem 0 20rem;
}
@media screen and (max-width: 768px) {
  .rmain_box.wid3 {
    padding-bottom: 17rem;
  }
}
@media print, screen and (min-width: 769px) {
  .rmain_box.wid3::before {
    left: calc(50rem - 50vw);
    right: calc(50rem - 50vw);
  }
}
@media screen and (max-width: 768px) {
  .rmain_box.wid3::before {
    left: -6rem;
    right: -6rem;
  }
}
.rmain_box.wid4 {
  padding: 8rem 0 12.5rem;
}
@media screen and (max-width: 768px) {
  .rmain_box.wid4 {
    padding: 10rem 0 17rem;
  }
}
@media print, screen and (min-width: 769px) {
  .rmain_box.wid4::before {
    border-radius: 0 4rem 4rem 0;
    left: calc(50rem - 50vw);
    right: -12rem;
  }
}
@media screen and (max-width: 768px) {
  .rmain_box.wid4::before {
    border-radius: 0 0.6rem 0.6rem 0;
    left: calc(31.5rem - 50vw);
    right: -2rem;
  }
}
.rmain_box_inner {
  position: relative;
}