@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@900&display=swap');

main {
  padding: 0;
  font-size: 1.125em;
  font-weight: 500;
  color: #005A5D;
}

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

.sp {
  display: none;
}

main .merit-box h2,
main .approach-box h2 {
  position: relative;
  line-height: 1.5;
  margin-bottom: 66px;
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-size: 2.6667em;
  font-weight: 700;
}
main .merit-box h2::after,
main .approach-box h2::after {
  content: '';
  display: block;
  position: absolute;
  bottom: -16px;
  left: 50%;
  width: 56px;
  height: 2px;
  background-color: #085250;
  transform: translateX(-50%);
}

.kv {
  padding-top: 117px;
  background: url(../img/mv-ribbon.png) top center repeat-x;
}
.kv h1 {
  text-align: center;
}

.cp-box {
  margin-top: 72px;
}
.cp-box h2,.cp-label {
  /* padding: 18px 0; */
  padding: 8px 0;
  text-align: center;
  background: #97C9A9;
  background: linear-gradient(0deg, rgba(151, 201, 169, 1) 0%, rgba(26, 159, 160, 1) 59%);
}
.cp-box .cp-txt {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 48px;
}
.cp-box .cp-txt figure {
  position: relative;
  max-width: 291px;
}
.cp-box .cp-txt figure figcaption,
.other_plan-box figure figcaption {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 123px;
  width: 111px;
  height: 70px;
  line-height: 1.35;
  padding-bottom: 2px;
  background: url(../img/point-bubble_bg.png) center / 100% no-repeat;
  text-align: center;
  font-weight: 700;
  font-size: min(.666em, 14px);
  color: #222;
}
.cp-box .cp-txt .cp_support-txt {
  display: flex;
  flex-direction: column;
}
.cp-box .cp-txt .cp_support-txt p {
  line-height: 1.2;
  text-align: center;
  font-size: 1.333em;
  font-weight: 700;
}
.cp-box .cp-txt .cp_support-txt .catch {
  position: relative;
  padding: 0 30px;
}
.cp-box .cp-txt .cp_support-txt .catch::before,
.cp-box .cp-txt .cp_support-txt .catch::after {
  content: '';
  display: block;
  width: 24px;
  height: 24px;
  position: absolute;
  top: calc(50% - 12px);
  background: url(../img/deco.png) center / 24px no-repeat;
}
.cp-box .cp-txt .cp_support-txt .catch::before {
  left: calc(50% - 6em - 30px);
}
.cp-box .cp-txt .cp_support-txt .catch::after {
  right: calc(50% - 6em - 30px);
  transform: scaleX(-1);
}
.cp-box .cp-txt .cp_support-txt .cp_support-list {
  display: flex;
  gap: 32px;
  margin: 8px 0;
}
.cp-box .cp-txt .cp_support-txt .cp_support-list li {
  position: relative;
  line-height: 1.5;
  padding: 2px 12px;
  border-radius: 4px;
  background-color: #085250;
  font-size: 1.111em;
  font-weight: 700;
  color: #fff;
}
.cp-box .cp-txt .cp_support-txt .cp_support-list li:not(:last-child)::after {
  content: '';
  display: block;
  position: absolute;
  top: calc(50% - 12px);
  right: -24px;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  border-left: 16px solid #085250;
  border-right: 0;
}
.cp-box .selected  {
  padding: 48px 0;
  border: solid #DAC076;
  border-width: 1px 0;
  background: linear-gradient(226deg,rgba(254, 237, 203, 0.3) 0%, rgba(255, 253, 227, .3) 67%, rgba(255, 244, 209,.3) 100%);
}
.cp-box .selected h3 {
  line-height: 1.5;
  margin-bottom: 24px;
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-size: 2.222em;
  font-weight: 700;
}
.cp-box .selected p {
  max-width: 520px;
  margin: 0 auto;
  text-align: right;
}
.cp-box .selected p span {
  margin-top: 8px;
  font-size: .7778em;
  color: #222;
}

.merit-box {
  margin: 64px 0 80px;
}
.merit-box .merit-list {
  max-width: 1000px;
  margin: 0 auto 80px;
  color: #222;
}
.merit-box .merit-list > li {
  position: relative;
  padding: 40px;
  border: 2px solid #085250;
  background-color: #fff;
  box-shadow: 7px 7px 12px rgba(8,82,80,.35);
  border-radius: 16px;
}
.merit-box .merit-list > li + li {
  margin-top: 40px;
}
.merit-box .merit-list > li h3 {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
  line-height: 1.5;
  padding-right: 149px;
  font-size: 1.778em;
  font-weight: bold;
  color: #085250;
}
.merit-box .merit-list > li h3 span {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
  margin-right: 16px;
  font-family: "Zen Old Mincho", serif;
  font-size: 15px;
  font-weight: 700;
  color: #1A9FA0;
}
.merit-box .merit-list > li h3 span strong {
  font-size: 48px;
}
.merit-box .flow {
  display: flex;
  gap: 18px;
  max-width: 1000px;
  margin: 0 auto 120px;
  color: #222;
}
.merit-box .merit-list > li .txt {
  line-height: 1.5;
}
.merit-box .merit-list > li .txt li {
  margin-left: 1em;
  text-indent: -1em;
  line-height: 1.5;
}
.merit-box .merit-list > li .txt li + li {
  margin-top: 8px;
}
.merit-box .merit-list > li .txt li span {
  padding-bottom: 16px;
  line-height: 1;
  font-size: 1.333em;
}
.merit-box .merit-list > li .txt li span span {
  color: #F40000;
}
.merit-box .merit-list > li .txt li span strong {
  font-size: 1.6em;
}
.merit-box .merit-list > li .txt li.memo {
  font-size: .888em;
}
.merit-box .merit-list > li h4 {
  text-align: center;
  margin: 24px 0 16px;
  line-height: 1.5;
  font-size: 1.333em;
  color: #085250;
}
.merit-box .merit-list > li .ranking-box {
  display: flex;
  gap: 16px;
}
.merit-box .merit-list > li .ranking-box .rank {
  width: calc((100% - 16px) / 2);
}
.merit-box .merit-list > li .ranking-box .rank h5 {
  width: 270px;
  height: 40px;
  line-height: 40px;
  margin: 0 auto 8px;
  border-radius: 20px;
  text-align: center;
  background-color: #085250;
  font-size: .888em;
  font-weight: bold;
  color: #fff;
}
.merit-box .merit-list > li .ranking-box .rank table {
  width: 100%;
  font-size: .888em;
}
.merit-box .merit-list > li .ranking-box .rank table tr {
  border: #000 solid 1px;
}
.merit-box .merit-list > li .ranking-box .rank table tr.point {
  border: 4px solid #FF0000;
}
.merit-box .merit-list > li .ranking-box .rank table tr th {
  width: 60px;
  padding: 5px;
  border-right: 1px solid #000;
  background-color: #085250;
  text-align: center;
  vertical-align: middle;
  color: #fff;
  font-weight: normal;
}
.merit-box .merit-list > li .ranking-box .rank table tr td {
  padding: 5px 16px;
}
.merit-box .merit-list > li .ranking-box .rank table tr.point td {
  font-weight: bold;
  font-size: 1.125em;
}
.merit-box .merit-list > li .ranking-box + p {
  font-size: .888em;
  margin-top: 8px;
  line-height: 1.5;
}
.merit-box .merit-list > li .contact-box {
  display: flex;
  justify-content: center;
  gap: 72px;
  margin-top: 24px;
}
.merit-box .merit-list > li .contact-box div:first-child {
  position: relative;
}
.merit-box .merit-list > li .contact-box div:first-child::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 50%;
  right: -54px;
  width: 40px;
  height: 33px;
  background: url(../img/arrow.svg);
  transform: translateY(-50%);
}
.merit-box .merit-list > li .contact-box p {
  text-align: center;
  font-size: .888em;
}
.merit-box .merit-list > li .contact-box p.ttl {
  width: 13em;
  height: 32px;
  line-height: 32px;
  margin: 8px auto;
  border-radius: 16px;
  background-color: #085250;
  color: #fff;
}
.merit-box .merit-list > li .badge {
  position: absolute;
  top: 40px;
  right: 60px;
}
.merit-box .flow li {
  position: relative;
  width: calc((100% - 18px * 3) / 4);
  padding: 28px 20px 16px;
  border: 2px solid #005A5D;
  border-radius: 16px;
  text-align: center;
}
.merit-box .flow li:not(:last-child)::after {
  content: '';
  display: block;
  position: absolute;
  bottom: calc(50% - 16px);
  right: -12px;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 16px solid transparent;
  border-bottom: 16px solid transparent;
  border-left: 12px solid #085250;
  border-right: 0;
}
.merit-box .flow li .num {
  position: absolute;
  top: -32px;
  left: calc(50% - 36px);
  width: 72px;
  background-color: #fff;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.7778em;
  font-weight: 700;
  color: #085250;
}
.merit-box .flow li h3 {
  line-height: 1.5;
  margin-bottom: 13px;
  font-weight: bold;
  font-size: 1.222em;
} 
.merit-box .flow li p {
  margin-bottom: 24px;
  font-size: .888em;
}
.merit-box .flow li figcaption {
  margin-top: 8px;
  font-size: .888em;
}
.merit-box .flow li:nth-child(1) p {
  margin-bottom: 8px;
}
.merit-box .image {
  max-width: 755px;
  margin: 0 auto;
}
.merit-box .image figcaption {
  margin-top: 1em;
  font-size: .888em;
  color: #222;
}

.approach-box {
  margin-top: 0;
  background: #085250 url(../img/bg.png) top center repeat;
  padding: 80px 0;
}
.approach-box h2 {
  color: #fff;
}
main .approach-box h2::after {
  background-color: #fff;
}
.voice-list {
  max-width: 960px;
  margin: 0 auto 80px;
}
.voice-list li {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 16px;
  padding: 44px 26px 17px;
  background: linear-gradient(95.42deg, #FFFFFF 3.56%, #FDEDDF 53.58%, #F7E6BE 95.83%),
linear-gradient(85.75deg, rgba(254, 237, 203, 0.2) 6.02%, rgba(255, 253, 227, 0.2) 63.67%, rgba(255, 244, 209, 0.2) 91.66%);
  border-radius: 16px;
}
.voice-list li+li {
  margin-top: 16px;
}
.voice-list li::after {
  content: '';
  display: block;
  position: absolute;
  top: 16px;
  left: 16px;
  right: 16px;
  bottom: 16px;
  border: 2px solid #BF9213;
  border-radius: 12px;
}
.voice-list li .txt h3 {
  margin: 0 0 8px 24px;
  line-height: 1.5;
  font-size: 1.333em;
  font-weight: 700;
}
.voice-list li .txt p {
  position: relative;
  line-height: 1.5;
  width: 318px;
  padding: 16px 24px;
  background-color: #fff;
  border-radius: 8px;
  filter: drop-shadow(2px 4px 3px rgba(161, 125, 36, .75));
}
.voice-list li .txt p::after {
  content: '';
  display: block;
  position: absolute;
  top: calc(50% - 16px);
  right: -20px;
  width: 32px;
  height: 32px;
  background-color: #fff;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
}
.voice-list li .point {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  width: 216px;
  height: 160px;
  font-weight: 700;
  line-height: 1.5;
  background: url(../img/voice-bubble_bg_pc.png) center / 100% no-repeat;
  font-size: min(1em, 16px);
  color: #fff;
}
.voice-list li .point span {
  line-height: 1.1;
  text-align: center;
  font-size: 1.778em;
  color: #FFF799;
}

.other_plan-box {
  display: flex;
  align-items: center;
  gap: 37px;
  max-width: 750px;
  margin: 0 auto;
  border-radius: 16px;
  background-color: #fff;
  box-shadow: 6px 6px 8px 0px rgba(0,0,0, .3);
}
.other_plan-box figure {
  position: relative;
  width: 299px;
}
.other_plan-box figure img {
  border-radius: 16px 0 0 16px;
}
.other_plan-box figure figcaption {
  top: 3px;
  left: 130px;
}
.other_plan-box .txt h3 {
  line-height: 1.5;
  margin-bottom: 5px;
  font-size: 1.111em;
  text-align: center;
}
.other_plan-box .txt .link-btn,
.merit-link-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 380px;
  height: 72px;
  border-radius: 36px;
  background-color: #005A5D;
  font-weight: 700;
  color: #fff;
  transition: opacity 0.3s ease;
}
.other_plan-box .txt .link-btn::after,
.merit-link-btn::after {
  content: '';
  display: block;
  position: absolute;
  right: 29px;
  width: 10px;
  height: 10px;
  border: solid #fff;
  border-width: 2px 2px 0 0;
  transform: rotate(45deg) translateY(calc(-50% + 5px));
}
.other_plan-box .txt .link-btn:hover,
.merit-link-btn:hover {
  opacity: .7;
}
.other_plan-box .txt .tel {
  margin-top: 8px;
  text-align: center;
  font-size: .888em;
  color: #222;;
}

.merit_plan-box {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 750px;
  margin: 0 auto 120px;
  padding: 32px 20px;
  border-radius: 16px;
  background-color: #fff;
  box-shadow: 6px 6px 8px 0px rgba(0,0,0, .3);
  border: 2px solid #085250;
}
.merit_plan-box .txt h3 {
  line-height: 1.5;
  margin-bottom: 5px;
  font-size: 1.111em;
  text-align: center;
}
.merit_plan-box .txt .link-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 380px;
  height: 72px;
  margin: 0 auto;
  border-radius: 36px;
  background-color: #005A5D;
  font-weight: 700;
  color: #fff;
  transition: opacity 0.3s ease;
}
.merit_plan-box .txt .link-btn::after {
  content: '';
  display: block;
  position: absolute;
  right: 29px;
  width: 10px;
  height: 10px;
  border: solid #fff;
  border-width: 2px 2px 0 0;
  transform: rotate(45deg) translateY(calc(-50% + 5px));
}
.merit_plan-box .txt .link-btn:hover {
  opacity: .7;
}


@media screen and (max-width: 850px) {
  body {
    overflow-x: hidden;
  }
  main {
    font-size: clamp(1em, 4.1vw, 1.5em);
  }

  .sp {
    display: block;
  }
  .pc {
    display: none;
  }

  main .merit-box h2,
  main .approach-box h2 {
    margin-bottom: 40px;
    font-size: 1.5em;
  }
  main .merit-box h2::after,
  main .approach-box h2::after {
    bottom: -8px;
    width: 48px;
  }

  .kv {
    padding-top: 56px;
    background-size: 323px auto;
  }
  .kv h1 img {
    width: 94.8717%;
  }

  .cp-box {
    margin-top: 0;
  }
  .cp-box h2 {
    padding: 8px 0;
  }
  .cp-box h2 img {
    width: 71.2%;
  }
  .cp-box .cp-txt {
    flex-direction: column;
    padding: 0 0 48px;
  }
  .cp-box .cp-txt figure {
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    height: 46.15vw;
  }
  .cp-box .cp-txt figure img {
    width: 100%;
    object-fit: cover;
  }
  .cp-box .cp-txt figure figcaption,
  .other_plan-box figure figcaption {
    left: 43%;
  }
  .cp-box .cp-txt .cp_support-txt .cp_support-list {
    gap: 16px;
    margin: 16px 0;
  }
  .cp-box .cp-txt .cp_support-txt .cp_support-list li {
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 1em;
  }
  .cp-box .cp-txt .cp_support-txt .cp_support-list li:not(:last-child)::after {
    top: calc(50% - 8px);
    right: -12px;
    border-top-width: 8px;
    border-bottom-width: 8px;
    border-left-width: 8px;
  }
  .cp-box .selected  {
    padding: 40px 0;
  }
  .cp-box .selected h3 {
    font-size: 1.5em;
  }
  .cp-box .selected p {
    padding: 0 24px;
  }

    .merit-box {
      padding: 0 24px;
      margin-bottom: 64px;
    }
  .merit-box .merit-list {
    margin-bottom: 40px;
  }
  .merit-box .merit-list > li {
    padding: 24px 16px ;
  }
  .merit-box .merit-list > li + li {
    margin-top: 54px;
  }
  .merit-box .merit-list > li h3 {
    padding-right: 0;
    font-size: 1.25em;
  }
  .merit-box .merit-list > li h3 span {
    flex-shrink: 0;
    margin-right: 12px;
    font-size: 14px;
  }
  .merit-box .merit-list > li h3 span strong {
    font-size: 36px;
  }
  .merit-box .merit-list > li .txt li span {
    font-size: 1em;
  }
  .merit-box .merit-list > li .txt li.memo {
    font-size: .888em;
  }
  .merit-box .merit-list > li .ranking-box {
    flex-direction: column;
    gap: 24px;
  }
  .merit-box .merit-list > li .ranking-box .rank {
    width: 100%;
  }
  .merit-box .merit-list > li .ranking-box .rank h5 {
    font-size: 1em;
  }
  .merit-box .merit-list > li .ranking-box .rank table {
    width: 100%;
  }
  .merit-box .merit-list > li .ranking-box .rank table tr td {
    padding: 8px 12px;
  }
  .merit-box .merit-list > li .contact-box {
    flex-direction: column;
    gap: 50px;
  }
  .merit-box .merit-list > li .contact-box div {
    text-align: center;
  }
  .merit-box .merit-list > li .contact-box div:first-child::after {
    bottom: -40px;
    right: 50%;
    width: 33px;
    height: 27px;
    background-size: 100% auto;
    transform: rotate(90deg) translate(0, -50%);
  }
  .merit-box .merit-list > li .contact-box p {
    font-size: 1em;
  }
.merit-box .flow {
  flex-direction: column;
    gap: 55px;
    margin-bottom: 80px;
  }
  .merit-box .flow li {
    width: 100%;
    padding-top: 32px;
  }
  .merit-box .flow li:not(:last-child)::after {
    bottom: -12px;
    right: calc(50% - 16px);
    border-right: 16px solid transparent;
    border-left: 16px solid transparent;
    border-top: 12px solid #085250;
    border-bottom: 0;
  }
  .merit-box .flow li .num {
    top: -20px;
    left: calc(50% - 56px);
    width: 112px;
    font-size: 2em;
  }
  .merit-box .flow li h3 {
    margin-bottom: 8px;
    font-size: 1.25em;
  } 
  .merit-box .flow li p {
    margin-bottom: 16px;
    line-height: 1.5;
    font-size: 1em;
  }
  .merit-box .flow li:nth-child(1) p {
    margin-bottom: 16px;
  }
  .merit-box .merit-list > li .badge {
    top: -26px;
    right: -16px;
  }
  .merit-box .merit-list > li .badge img {
    width: 20.515vw;
    max-width: 140px;
    height: auto;
  }

  .approach-box {
    background-size: 357px auto;
    padding: 64px 24px 80px;
  }
  .voice-list {
    margin: 40px auto 104px;
  }
  .voice-list li {
    flex-direction: column;
    gap: 24px;
    padding: 48px 40px 18px;
  }
  .voice-list li+li {
    margin-top: 72px;
  }
  .voice-list li::after {
    border-width: 2px;
  }
  .voice-list li .txt h3 {
    margin-left: 0;
    font-size: 1.5em;
    text-align: center;
  }
  .voice-list li .txt p {
    width: 100%;
    padding: 12px 8px;
    text-align: center;
  }
  .voice-list li .txt p::after {
    top: auto;
    bottom: -16px;
    right: calc(50% - 12px);
    height: 24px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }
  .voice-list li figure {
    height: 34vw;
    overflow: hidden;
    text-align: center;
  }
  .voice-list li figure img {
    width: 64%;
  }
  .voice-list li:nth-child(1) figure {
    padding-left: 11%;
  }
  .voice-list li:nth-child(2) figure {
    padding-right: 10%;
  }
  .voice-list li:nth-child(3) figure {
    padding-left: 6%;
  }
  .voice-list li .point {
    position: absolute;
    bottom: -71px;
    left: calc(50% - 92px);
    width: 184px;
    height: 142px;
    background: url(../img/voice-bubble_bg_sp.png) center / 100% no-repeat;
    z-index: 10;
  }
  .voice-list li .point span {
    font-size: 1.5em;
  }

  .other_plan-box {
    position: relative;
    flex-direction: column;
    gap: 32px;
    padding: 8px 8px 20px;
  }
  .other_plan-box figure {
    position: absolute;
    width: 33vw;
    left: 8px;
    top: 12px;
  }
  .other_plan-box figure img {
    border-radius: 6px;
  }
  .other_plan-box figure figcaption {
    top: -46px;
    left: 43%;
  }
  .other_plan-box .txt {
    width: 100%;
  }
  .other_plan-box .txt h3 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: calc(100% - 33vw - 8px);
    height: calc(26vw + 16px);
    margin: 0 0 0 auto;
    text-align: center;
  }
  .other_plan-box .txt .link-btn,
  .merit-link-btn {
    width: 100%;
    height: 64px;
    border-radius: 32px;
  }
  .other_plan-box .txt .link-btn {
    font-size: 1.125em;
  }

  .other_plan-box .txt .link-btn::after,
  .merit-link-btn::after {
    right: 16px;
    width: 8px;
    height: 8px;
  }
  .other_plan-box .txt .tel {
    font-size: 1em;
    margin-top: 16px;
  }

  .merit_plan-box {
    padding: 20px 8px;
    margin-bottom: 80px;
  }
  .merit_plan-box .txt {
    width: 100%;
  }
  .merit_plan-box .txt h3 {
    margin-bottom: 16px;
  }
  .merit_plan-box .txt .link-btn {
    width: 100%;
    height: 64px;
    border-radius: 32px;
    font-size: 1.125em;
  }
  .merit_plan-box .txt .link-btn::after {
    right: 16px;
    width: 8px;
    height: 8px;
  }
}



@media screen and (max-width: 350px) {
  main {
    font-size: .8em;
  }
}