/* ------------------------------
    reset
------------------------------ */
html,
body {
  height: 100%;
}

html {
  font-size: 62.5%;
  overflow-y: scroll;
}
@media screen and (max-width: 1220px) {
  html {
    font-size: calc(100vw * 10 / 1220);
  }
}
@media screen and (max-width: 750px) {
  html {
    width: 100%;
    font-size: calc(100vw * 10 / 750);
  }
}

body {
  -webkit-text-size-adjust: 100%;
  width: 100%;
  font-feature-settings: "palt";
  color: #424242;
  text-align: left;
  position: relative;
}
@media screen and (max-width: 750px) {
  body {
    min-width: inherit;
  }
}

*, *::before, *::after {
  box-sizing: border-box;
}

body, h1, h2, h3, h4, h5, h6, p, address, time,
ul, ol, li, dl, dt, dd,
table, th, td, img, figure, figcaption,
form, input, button, textarea, select {
  margin: 0;
  padding: 0;
  border: none;
  line-height: 100%;
  list-style-type: none;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

input, button, textarea, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  border-radius: 0;
  resize: none;
  outline: none;
  background: none;
}

select::-ms-expand {
  display: none;
}

button:hover {
  cursor: pointer;
}

a {
  color: #424242;
  text-decoration: none;
  transition: opacity 0.3s ease;
  outline: 1px solid transparent;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
a img {
  outline: 1px solid transparent;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
a:hover {
  opacity: .7;
  cursor: pointer;
}

a.link {
  text-decoration: underline;
}

img, object {
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
}

/* ------------------------------
    base
------------------------------ */
section {
  position: relative;
}

main {
  display: block;
  position: relative;
}

.wrap {
  width: 100%;
  max-width: 110rem;
  padding: 0;
  margin: 0 auto;
  position: relative;
}

p, th, td, dt, dd, li, input, button, textarea {
  font-size: 1.6rem;
  line-height: calc(30/16);
}

.flex {
  display: flex;
  justify-content: space-between;
}

.tal {
  text-align: left;
}

.tar {
  text-align: right;
}

.tac {
  text-align: center;
}

.left {
  float: left;
}

.right {
  float: right;
}

.center {
  display: block;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.fwb {
  font-weight: 700;
}

.fixed {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

.color_blue {
  color: #00aedd;
}

.color_pink {
  color: #e86388;
}

.color_orange {
  color: #e0741b;
}

.preload *, .preload *::before, .preload *::after {
  transition: none !important;
}

@media screen and (min-width: 751px) {
  .fade {
    transition: opacity 0.3s ease;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  .fade img {
    outline: 1px solid transparent;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  .fade:hover {
    opacity: .7;
    cursor: pointer;
  }

  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
@media screen and (max-width: 750px) {
  .wrap {
    padding: 0 4rem;
  }

  p, th, td, dt, dd, li, input, button, textarea {
    font-size: 1.4rem;
  }

  main {
    padding-top: 10rem;
  }

  input, textarea, select, .select {
    font-size: 16px !important;
  }
}
/* ------------------------------
    header
------------------------------ */
.header {
  position: relative;
  width: 100%;
  z-index: 1000;
  background: #fff;
  box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.07);
}
.header .wrap {
  max-width: calc(100% - 3rem);
  padding-left: 3rem;
  padding-right: 3rem;
  height: 8rem;
  padding: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header .logo_wrap {
  flex-grow: 1;
  display: flex;
  align-items: center;
  gap: 0 2rem;
}
.header .logo_wrap .logo img {
  width: 25.5rem;
}
.header .logo_wrap .txt {
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: calc(24/15);
  font-weight: 700;
}
.header .header_btn {
  padding-left: 3rem;
}
.header .header_btn a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: #fff;
  width: 25.7rem;
  height: 4.5rem;
  background: #424242;
  border-radius: 9999px;
  transition: opacity 0.3s ease;
}
.header .header_btn a::before {
  position: absolute;
  content: "";
  width: 0.7rem;
  height: 0.7rem;
  border-top: solid 0.1rem #fff;
  border-right: solid 0.1rem #fff;
  right: 2.1rem;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
.header .header_btn.-kango a {
  background: linear-gradient(90deg, #0388fc 0%, #00aedd 100%);
}
.header .header_btn.-kaigo a {
  background: linear-gradient(90deg, #dd1f64 0%, #e86388 100%);
}
.header .header_btn.-hoiku a {
  background: linear-gradient(90deg, #e0741b 0%, #eda937 100%);
}

@media screen and (max-width: 750px) {
  .header {
    position: fixed;
  }
  .header .wrap {
    max-width: inherit;
    min-width: inherit;
    width: 100%;
    height: 10rem;
    padding: 0 0 0 1.5rem;
  }
  .header .logo_wrap {
    gap: 0 1.6rem;
  }
  .header .logo_wrap .logo {
    line-height: 1;
  }
  .header .logo_wrap .logo img {
    width: 30.2rem;
  }
  .header .logo_wrap .txt {
    font-size: 1.8rem;
    line-height: calc(24/18);
  }
  .header .header_right {
    display: flex;
    width: 20rem;
  }
  .header .header_right * {
    color: #fff;
    text-align: center;
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-align: center;
    line-height: 1;
  }
  .header .header_right * a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    width: 100%;
    height: 100%;
    padding-bottom: 1.4rem;
  }
  .header .header_right * a::before {
    position: absolute;
    content: "";
    left: 50%;
    transform: translateX(-50%);
  }
  .header .header_right .btn_tel,
  .header .header_right .btn_contact {
    position: relative;
    height: 10rem;
    width: 10rem;
    display: flex;
    align-items: flex-end;
    justify-content: center;
  }
  .header .header_right .btn_tel {
    background: #424242;
    width: 10rem;
  }
  .header .header_right .btn_tel a::before {
    background: url("../img/icn_tel.svg") no-repeat center center/contain;
    width: 4.1rem;
    height: 4.1rem;
    top: 1.4rem;
  }
  .header .header_right .btn_contact {
    border-left: 1px solid #fff;
  }
  .header .header_right .btn_contact a::before {
    background: url("../img/icn_contact.svg") no-repeat center center/contain;
    width: 4.7rem;
    height: 3.7rem;
    top: 2rem;
  }
  .header .header_right .btn_contact.-kango {
    background: linear-gradient(90deg, #0388fc 0%, #00aedd 100%);
  }
  .header .header_right .btn_contact.-kaigo {
    background: linear-gradient(90deg, #dd1f64 0%, #e86388 100%);
  }
  .header .header_right .btn_contact.-hoiku {
    background: linear-gradient(90deg, #e0741b 0%, #eda937 100%);
  }
}
/* ------------------------------
    footer
------------------------------ */
.footer {
  position: relative;
  background: #f7f7f7;
}
@media screen and (min-width: 751px) {
  .footer .wrap {
    max-width: inherit;
  }
}
@media screen and (max-width: 750px) {
  .footer .wrap {
    padding: 0 3.6rem;
  }
}
.footer_privacy {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3.4rem 0;
}
.footer_privacy .txt {
  font-weight: 500;
  line-height: calc(30/14);
  letter-spacing: -.04em;
  word-break: break-word;
  text-align: left;
}
@media screen and (min-width: 751px) {
  .footer_privacy {
    gap: 0 4rem;
  }
  .footer_privacy .icn {
    width: 7.5rem;
  }
  .footer_privacy .txt {
    width: 60rem;
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 750px) {
  .footer_privacy {
    gap: 0 3rem;
  }
  .footer_privacy .icn {
    width: 14rem;
  }
  .footer_privacy .txt {
    width: auto;
    flex: 1;
    font-size: 2rem;
  }
}
.footer_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 2px solid #fff;
}
@media screen and (min-width: 751px) {
  .footer_inner {
    flex-direction: row-reverse;
    padding: 1rem 3.2rem 1.2rem 4.2rem;
  }
}
@media screen and (max-width: 750px) {
  .footer_inner {
    flex-direction: column;
    padding: 2rem 0 2.2rem 0;
  }
}
.footer_link {
  display: flex;
  gap: 0 8rem;
}
.footer_link li {
  position: relative;
  font-size: 1.6rem;
  line-height: calc(28/16);
  letter-spacing: .05em;
  font-weight: 500;
}
.footer_link li:not(:last-child)::before {
  position: absolute;
  content: "";
  background: #999;
  width: 1px;
  height: 2rem;
  right: -4rem;
  top: 50%;
  transform: translateY(-50%);
}
@media screen and (max-width: 750px) {
  .footer_link li {
    font-size: 2rem;
  }
}
.footer_copy {
  line-height: calc(28/16);
  letter-spacing: .1em;
  font-weight: 500;
}
@media screen and (min-width: 751px) {
  .footer_copy {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 750px) {
  .footer_copy {
    font-size: 2rem;
    margin-top: 1em;
  }
}

/* ------------------------------
    main
------------------------------ */
/* common */
.sec_ttl {
  font-weight: 700;
  letter-spacing: .04em;
  text-align: center;
}
@media screen and (min-width: 751px) {
  .sec_ttl {
    font-size: 3.4rem;
    line-height: calc(40/34);
  }
}
@media screen and (max-width: 750px) {
  .sec_ttl {
    font-size: 4rem;
    line-height: calc(48/40);
  }
}

/* sec_mv */
.sec_mv {
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 751px) {
  .sec_mv {
    padding: 4.5rem 0;
  }
}
.sec_mv .mv_inner {
  position: relative;
  margin: 0 auto;
  z-index: 2;
}
@media screen and (min-width: 751px) {
  .sec_mv .mv_inner {
    width: 115.5rem;
    height: 74rem;
    background: #fff;
    border-radius: 3rem;
    box-shadow: 0 0 1.4rem 0 rgba(45, 45, 45, 0.2);
    padding: 3.8rem 0 3.8rem 4.6rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_inner {
    width: 100%;
    height: auto;
    background-color: transparent;
  }
}
.sec_mv .mv_left {
  position: relative;
  z-index: 2;
  width: 64.3rem;
  margin: 0 auto 0 0;
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_left {
    width: 100%;
    height: 68.3rem;
    margin: 0 auto;
    padding: 5.5rem 0 0 3.5rem;
  }
}
.sec_mv .mv_ttl {
  line-height: 1;
}
@media screen and (min-width: 751px) {
  .sec_mv .mv_ttl {
    width: 62.1rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_ttl {
    width: 45.3rem;
  }
}
.sec_mv .mv_txt_wrap {
  width: 100%;
}
@media screen and (min-width: 751px) {
  .sec_mv .mv_txt_wrap {
    display: flex;
    justify-content: space-between;
    margin-top: 2.4rem;
    padding-top: 3rem;
  }
}
@media screen and (min-width: 751px) {
  .sec_mv .mv_txt {
    width: 31.9rem;
    padding-left: 0.2rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_txt {
    width: 33.9rem;
    padding: 4rem 0 2rem;
  }
}
@media screen and (min-width: 751px) {
  .sec_mv .mv_logo {
    width: 29.3rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_logo {
    width: 31.3rem;
  }
}
.sec_mv .mv_listbox {
  position: relative;
}
@media screen and (min-width: 751px) {
  .sec_mv .mv_listbox {
    padding: 3.8rem 4rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_listbox {
    padding: 3.8rem 4rem 3.8rem;
  }
}
.sec_mv .mv_list {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}
@media screen and (min-width: 751px) {
  .sec_mv .mv_list {
    gap: 1.2rem calc(100% - 31.6rem * 2);
    margin-top: 3rem;
  }
  .sec_mv .mv_list li {
    width: 31.6rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_list {
    flex-direction: column;
    align-items: center;
    gap: 1.4rem 0;
  }
  .sec_mv .mv_list li {
    width: 100%;
  }
  .sec_mv .mv_list li img {
    box-shadow: 0 0 1.4rem 0 rgba(45, 45, 45, 0.2);
  }
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_list_box {
    position: relative;
    background: linear-gradient(90deg, #83c9ff 0%, #c9f2ff 100%);
  }
}
.sec_mv .mv_main {
  position: absolute;
}
@media screen and (min-width: 751px) {
  .sec_mv .mv_main {
    right: 1.15rem;
    bottom: 0;
    width: 42.3rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv .mv_main {
    left: 0;
    top: 0;
    width: 100%;
    height: 68.3rem;
  }
  .sec_mv .mv_main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.sec_mv .mv_label {
  position: absolute;
  right: .5rem;
  bottom: 1.4rem;
  width: 30.6rem;
}
@media screen and (min-width: 751px) {
  .sec_mv.-kango {
    background: linear-gradient(90deg, #83c9ff 0%, #c9f2ff 100%);
  }
  .sec_mv.-kango .mv_txt_wrap {
    border-top: 0.2rem solid #00aedd;
  }
  .sec_mv.-kango::before, .sec_mv.-kango::after {
    position: absolute;
    content: "";
  }
  .sec_mv.-kango::before {
    background: url("../img/img_mv_deco_kango01.png") no-repeat center center/contain;
    width: 22.7rem;
    height: 23.4rem;
    left: 0;
    top: 0;
  }
  .sec_mv.-kango::after {
    background: url("../img/img_mv_deco_kango02.png") no-repeat center center/contain;
    width: 26rem;
    height: 31.9rem;
    right: 0;
    bottom: 0;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv.-kango .mv_listbox {
    background: linear-gradient(90deg, #83c9ff 0%, #c9f2ff 100%);
  }
  .sec_mv.-kango .mv_listbox::before, .sec_mv.-kango .mv_listbox::after {
    position: absolute;
    content: "";
  }
  .sec_mv.-kango .mv_listbox::before {
    background: url("../img/img_mv_deco_kango01.png") no-repeat center center/contain;
    width: 22.7rem;
    height: 23.4rem;
    left: -1rem;
    top: -1rem;
  }
  .sec_mv.-kango .mv_listbox::after {
    background: url("../img/img_mv_deco_kango02.png") no-repeat center center/contain;
    width: 26rem;
    height: 31.9rem;
    right: 0;
    bottom: 0;
  }
}
@media screen and (min-width: 751px) {
  .sec_mv.-kaigo {
    background: url("../img/bg_mv_kaigo_pc.jpg") no-repeat center bottom/cover;
  }
  .sec_mv.-kaigo .mv_txt_wrap {
    border-top: 0.2rem solid #e86388;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv.-kaigo .mv_listbox {
    background: url("../img/bg_mv_kaigo_sp.jpg") no-repeat center top/cover;
  }
}
@media screen and (min-width: 751px) {
  .sec_mv.-hoiku {
    background: url("../img/bg_mv_hoiku_pc.jpg") no-repeat center bottom/cover;
  }
  .sec_mv.-hoiku .mv_txt_wrap {
    border-top: 0.2rem solid #e0741b;
  }
}
@media screen and (max-width: 750px) {
  .sec_mv.-hoiku .mv_listbox {
    background: url("../img/bg_mv_hoiku_sp.jpg") no-repeat center top/cover;
  }
}

/* sec_flow */
.sec_flow {
  padding: 8rem 0 11rem;
  background: #f7f7f7;
}
.sec_flow .sec_ttl {
  margin-bottom: 6.3rem;
}
.sec_flow .flow_list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}
.sec_flow .flow_list .item {
  position: relative;
}
@media screen and (min-width: 751px) {
  .sec_flow .flow_list {
    gap: 4rem calc((100% - 17.2rem * 5) / 4);
  }
  .sec_flow .flow_list .item {
    width: 17.2rem;
  }
  .sec_flow .flow_list .item:not(:last-child)::before {
    position: absolute;
    content: "";
    background: #d1dbda;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    width: 2.4rem;
    height: 4.4rem;
    right: -4.4rem;
    top: 6.5rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_flow .flow_list {
    gap: 7.8rem 0;
  }
  .sec_flow .flow_list .item {
    width: 100%;
    display: flex;
    justify-content: space-between;
  }
  .sec_flow .flow_list .item:not(:last-child)::before {
    position: absolute;
    content: "";
    background: #d1dbda;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    width: 5.36rem;
    height: 2.9rem;
    left: 7.6rem;
    bottom: -5.4rem;
  }
}
.sec_flow .flow_list .num {
  position: absolute;
  width: 5.3rem;
  height: 5.3rem;
  border-radius: 5.3rem;
  color: #fff;
  font-size: 2.4rem;
  letter-spacing: .09em;
  font-weight: 700;
  line-height: 1;
  padding-bottom: .1em;
  display: flex;
  align-items: center;
  justify-content: center;
  left: 0;
  top: -.8rem;
}
@media screen and (max-width: 750px) {
  .sec_flow .flow_list .num {
    width: 6.36rem;
    height: 6.36rem;
    border-radius: 6.36rem;
    font-size: 2.88rem;
  }
}
.sec_flow .flow_list .icn img {
  border-radius: 50%;
  box-shadow: 0 0 1.4rem 0 rgba(45, 45, 45, 0.2);
}
@media screen and (min-width: 751px) {
  .sec_flow .flow_list .icn {
    width: 17.2rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_flow .flow_list .icn {
    width: 20.6rem;
  }
}
.sec_flow .flow_list dl dt, .sec_flow .flow_list dl dd {
  font-weight: 700;
}
.sec_flow .flow_list dl {
  border-left: 2px solid #d1dbda;
}
.sec_flow .flow_list dl dt {
  letter-spacing: .05em;
}
.sec_flow .flow_list dl dt.nrw {
  letter-spacing: -.02em;
}
.sec_flow .flow_list dl dd {
  letter-spacing: .04em;
}
.sec_flow .flow_list dl dd .lg {
  line-height: 1;
}
@media screen and (min-width: 751px) {
  .sec_flow .flow_list dl {
    width: 100%;
    padding-top: 1.5rem;
  }
  .sec_flow .flow_list dl dt, .sec_flow .flow_list dl dd {
    text-align: center;
  }
  .sec_flow .flow_list dl dt {
    font-size: 2.4rem;
    line-height: calc(34/24);
  }
  .sec_flow .flow_list dl dd {
    padding-top: 1.5rem;
    margin-top: 1.5rem;
    font-size: 1.8rem;
    text-align: center;
    line-height: calc(30/18);
  }
  .sec_flow .flow_list dl dd .lg {
    font-size: 2.5rem;
  }
}
@media screen and (max-width: 750px) {
  .sec_flow .flow_list dl {
    width: 42.5rem;
    padding-top: 3rem;
    padding-left: 2rem;
  }
  .sec_flow .flow_list dl dt {
    font-size: 3.4rem;
    line-height: calc(34/24);
  }
  .sec_flow .flow_list dl dd {
    padding-top: 1.2rem;
    margin-top: 1.2rem;
    font-size: 2.7rem;
    line-height: calc(36/27);
  }
  .sec_flow .flow_list dl dd .lg {
    font-size: 4rem;
  }
}
.sec_flow.-kango .flow_list .num {
  background: #00aedd;
}
.sec_flow.-kango .flow_list dl {
  border-left-color: #00aedd;
}
.sec_flow.-kango .flow_list dd {
  border-top: 2px solid #00aedd;
}
.sec_flow.-kaigo .flow_list .num {
  background: #e86388;
}
.sec_flow.-kaigo .flow_list dl {
  border-left-color: #e86388;
}
.sec_flow.-kaigo .flow_list dd {
  border-top: 2px solid #e86388;
}
.sec_flow.-hoiku .flow_list .num {
  background: #e0741b;
}
.sec_flow.-hoiku .flow_list dl {
  border-left-color: #e0741b;
}
.sec_flow.-hoiku .flow_list dd {
  border-top: 2px solid #e0741b;
}

/* sec_form */
.sec_form {
  padding: 7.8rem 0 9rem;
  background: #fff;
}
.sec_form .sec_ttl {
  margin-bottom: 5.5rem;
}
.sec_form .form_dum {
  background: #f7f7f7;
  width: 100%;
  max-width: 82rem;
  margin: 0 auto;
  padding: 3.5em 3em;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  height: auto;
}
.sec_form .form_embed {
  width: 100%;
  max-width: 72rem;
}
.sec_form .form_dum p {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}

/* sec_thanks */
.sec_thanks {
  padding: 13rem 0 8rem;
}
@media screen and (max-width: 750px) {
  .sec_thanks {
    padding: 20rem 0;
  }
}
.sec_thanks .sec_ttl {
  margin-bottom: 5.5rem;
}
.sec_thanks .thanks_inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  height: 100%;
  min-height: calc(100svh - 50rem);
}
@media screen and (max-width: 750px) {
  .sec_thanks .thanks_inner {
    min-height: inherit;
  }
}
.sec_thanks .thanks_txt {
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: .04em;
}
@media screen and (max-width: 750px) {
  .sec_thanks .thanks_txt {
    font-size: 2.6rem;
  }
}

/* ------------------------------
    responsive
------------------------------ */
@media screen and (min-width: 751px) {
  .sp {
    display: none !important;
  }
}
@media screen and (max-width: 750px) {
  .pc {
    display: none !important;
  }
}
/* ------------------------------
    clearfix
------------------------------ */
.cf {
  zoom: 1;
}
.cf::after {
  content: " ";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
  overflow: hidden;
  font-size: 0.1em;
  line-height: 0;
}
