@charset "UTF-8";
/*note: INDEXの表示は、コメントの「 index: 」でハイライト表示してください。*/
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: リセットCSS と body要素の文字（色・書体）と背景色*/
* {
  margin: 0;
  padding: 0;
  list-style: none;
  text-decoration: none;
  font-style: normal;
  box-sizing: border-box; }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: メディアクエリー*/
/* 切り替えポイントの設定 */
/* 処理 */
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: クリアフィックス*/
/* Class と ステークホルダー の名称設定 */
/* 処理 */
.clearfix:after {
  content: "";
  display: block;
  clear: both; }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: スクリーンリーダー*/
/* スクリーンリーダーテキスト の名称設定 */
/* 処理 */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute; }

:root {
  --base: #009261; }

.sp {
  display: none; }

.pc {
  display: block; }

@media only screen and (max-width: 768px) {
  .sp {
    display: block; }

  .pc {
    display: none; } }
body {
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  position: relative; }

.green_txt,
.green_ttl {
  color: var(--base); }

.maison_ttl {
  color: #d8959e; }

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

a {
  transition-duration: 0.3s; }
  @media (hover: hover) and (pointer: fine) {
    a:hover {
      opacity: 0.8; } }

picture {
  display: block;
  width: 100%; }
  picture img {
    width: 100%; }

.trigger {
  box-sizing: border-box; }

.slideTrain,
.slideUpTrain {
  opacity: 0; }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: overlay */
#overlay {
  display: none; }
  @media only screen and (max-width: 768px) {
    #overlay.active {
      display: block;
      position: fixed;
      width: 100vw;
      height: 100vh;
      background-color: rgba(0, 0, 0, 0.7);
      z-index: 100; } }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: main */
.bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background-color: #ffd038;
  background-image: url(../images/bg01.png);
  background-position: center 0;
  background-size: cover;
  pointer-events: none; }

.main {
  margin-top: 80px;
  position: relative; }
  @media only screen and (max-width: 768px) {
    .main {
      margin-top: 48px; } }

section {
  position: relative; }

.container {
  margin: auto;
  max-width: 900px; }
  @media only screen and (max-width: 768px) {
    .container {
      width: 90%; } }

.sec_title {
  max-width: 900px;
  margin: auto;
  width: 90%; }
  .sec_title img {
    width: 100%; }

.sec .title {
  border: 1px dashed var(--base);
  border-width: 2px 0;
  color: var(--base);
  font-size: clamp(21px, 2.0833333333vw, 30px);
  font-weight: bold;
  line-height: 1.25;
  text-align: center;
  padding: 20px 0; }
  .sec .title span {
    display: inline-block;
    font-size: clamp(24px, 2.4305555556vw, 35px);
    padding-bottom: .3em;
    position: relative; }
    .sec .title span:before {
      position: absolute;
      content: "";
      top: 0;
      left: -.5em;
      width: 2px;
      height: 90%;
      transform: rotate(-15deg);
      background: var(--base); }
    .sec .title span:after {
      position: absolute;
      content: "";
      top: 0;
      right: -.5em;
      width: 2px;
      height: 90%;
      transform: rotate(15deg);
      background: var(--base); }
  @media only screen and (max-width: 768px) {
    .sec .title {
      font-size: clamp(14px, 4vw, 21px); }
      .sec .title span {
        font-size: clamp(18px, 5.6vw, 21px); } }
.sec .img {
  display: block; }
.sec .note {
  font-size: clamp(12px, 1.25vw, 18px);
  text-align: center;
  padding-left: 1em;
  text-indent: -1em; }
  @media only screen and (max-width: 768px) {
    .sec .note {
      text-align: left; } }
.sec .cs_copy {
  color: #7c7c7c;
  font-size: clamp(21px, 2.9166666667vw, 42px);
  font-weight: bold;
  text-align: center; }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: main_visual */
.main_visual .sec_title {
  margin-bottom: -5%;
  max-width: 100%;
  width: 100%; }
.main_visual .main_visual__lead {
  color: #000;
  font-size: clamp(21px, 1.6666666667vw, 24px);
  line-height: 2;
  text-align: center;
  margin: 60px auto;
  display: block; }
  @media only screen and (max-width: 768px) {
    .main_visual .main_visual__lead {
      margin: 30px auto;
      font-size: clamp(14px, 3.7333333333vw, 20px); } }
  .main_visual .main_visual__lead a {
    text-decoration: underline; }
  .main_visual .main_visual__lead .bg-yellow {
    background: #ffff00;
    color: #9ad1c0;
    padding: 0 .5em; }
    @media only screen and (max-width: 768px) {
      .main_visual .main_visual__lead .bg-yellow {
        padding: .2em .5em; } }
  .main_visual .main_visual__lead .period {
    background: #9ad1c0;
    border-radius: 5px;
    color: #fff;
    display: inline-block;
    margin-top: .5em;
    padding: 0 1em; }
    @media only screen and (max-width: 768px) {
      .main_visual .main_visual__lead .period {
        line-height: 1.5;
        padding: .25em 1.5em; } }
.main_visual .container {
  position: relative;
  z-index: 1; }
  @media only screen and (max-width: 768px) {
    .main_visual .container {
      position: relative;
      z-index: 1; } }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: about */
.sec_about {
  padding: 60px clamp(5%, 8.3333333333%, 120px) 70px; }
  @media only screen and (max-width: 768px) {
    .sec_about {
      padding: 30px 0; } }
  .sec_about .container {
    position: relative;
    z-index: 1; }
    .sec_about .container .sec_title {
      max-width: 680px; }
    .sec_about .container p {
      color: #50352d;
      font-size: clamp(24px, 2.5vw, 36px);
      font-weight: 600;
      line-height: 2;
      text-align: center;
      display: block; }
      .sec_about .container p .bg-yellow {
        background: linear-gradient(transparent 70%, #ffff00 70%); }
    .sec_about .container figure {
      display: block;
      margin: 50px auto 0;
      width: 70%; }
    @media only screen and (max-width: 768px) {
      .sec_about .container .sec_title {
        width: 100%; }
      .sec_about .container p {
        font-size: clamp(16px, 4.2666666667vw, 20px); }
      .sec_about .container figure {
        margin: 25px auto 0 10px;
        width: 90%; } }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: step */
.sec_step {
  padding: 60px clamp(5%, 8.3333333333%, 120px) 70px; }
  @media only screen and (max-width: 768px) {
    .sec_step {
      padding: 30px 0; } }
  .sec_step .container {
    position: relative;
    z-index: 1; }
    .sec_step .container .sec_title {
      max-width: 680px; }
    @media only screen and (max-width: 768px) {
      .sec_step .container .sec_title {
        width: 100%; } }
  .sec_step .step_flow {
    display: flex;
    flex-direction: column;
    gap: 60px;
    margin-top: 30px; }
    @media only screen and (max-width: 768px) {
      .sec_step .step_flow {
        gap: 30px;
        margin-top: 20px; } }
    .sec_step .step_flow .step {
      border: 5px solid #50352d;
      background: #fff;
      border-radius: 30px;
      margin: auto;
      max-width: 840px;
      padding: 0 30px;
      position: relative;
      width: 100%; }
      .sec_step .step_flow .step picture {
        display: block;
        margin: auto;
        width: 75%; }
      .sec_step .step_flow .step:first-of-type picture {
        width: 60%; }
      @media only screen and (max-width: 768px) {
        .sec_step .step_flow .step {
          border-width: 3px;
          border-radius: 15px;
          padding: 0 5%; }
          .sec_step .step_flow .step picture {
            width: 100%; }
          .sec_step .step_flow .step:first-of-type picture {
            width: 100%; } }
    .sec_step .step_flow dl {
      align-items: center;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin-top: 30px; }
      .sec_step .step_flow dl dt {
        width: 133px; }
      .sec_step .step_flow dl dd {
        color: #50352d;
        font-size: clamp(28px, 2.4305555556vw, 35px);
        font-weight: 600;
        width: calc(100% - 150px); }
      .sec_step .step_flow dl p {
        font-size: clamp(24px, 2.0833333333vw, 30px);
        font-weight: 400;
        line-height: 1.5;
        margin: 1em auto 0;
        width: 95%; }
      @media only screen and (max-width: 768px) {
        .sec_step .step_flow dl {
          margin-top: 5%; }
          .sec_step .step_flow dl dt {
            width: 70px; }
          .sec_step .step_flow dl dd {
            font-size: clamp(22px, 5.8666666667vw, 28px);
            line-height: 1.3;
            width: calc(100% - 90px); }
          .sec_step .step_flow dl p {
            font-size: clamp(18px, 4.8vw, 25px); } }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: sec */
.sec3 {
  background: url(../images/bg02.jpg) no-repeat top center/cover;
  padding: 150px 0 100px;
  position: relative; }
  .sec3::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 15%;
    background: url(../images/bg02-deco.png) repeat-x center/contain; }
  @media only screen and (max-width: 768px) {
    .sec3 {
      padding: 30px 0; } }
  .sec3 .container {
    background: none; }
  .sec3 .bg-text {
    font-size: clamp(24px, 2.5vw, 36px);
    margin-bottom: 1em;
    text-align: center; }
    .sec3 .bg-text span {
      background: #ffcb22;
      color: #50352d;
      font-weight: 400;
      padding: 0 .75em; }
    @media only screen and (max-width: 768px) {
      .sec3 .bg-text {
        font-size: clamp(20px, 5.3333333333vw, 25px);
        margin-bottom: .75em; }
        .sec3 .bg-text span {
          padding: 0 .5em; } }
  .sec3 .box {
    margin-top: 5em; }
    @media only screen and (max-width: 768px) {
      .sec3 .box {
        margin-top: 3em; } }
  .sec3 .bee01 {
    position: absolute;
    aspect-ratio: 1/1;
    top: 1.5%;
    left: 15%;
    width: 80px; }
    @media only screen and (max-width: 768px) {
      .sec3 .bee01 {
        left: 5%;
        width: 40px; } }
  .sec3 .bee02 {
    position: absolute;
    aspect-ratio: 1/1;
    width: 80px;
    bottom: 40%;
    right: 20%; }
    @media only screen and (max-width: 768px) {
      .sec3 .bee02 {
        bottom: 35%;
        right: 5%;
        width: 40px; } }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: terms */
.sec_terms {
  background: #fff;
  padding: 60px 0 70px; }
  @media only screen and (max-width: 768px) {
    .sec_terms {
      padding: 30px 0; } }
  .sec_terms .container {
    max-width: 840px;
    margin: auto; }
    @media only screen and (max-width: 768px) {
      .sec_terms .container .sec_title {
        width: 100%; } }
  .sec_terms .con {
    background: #f5f5f5;
    margin-top: 3em;
    padding: 40px; }
    @media only screen and (max-width: 768px) {
      .sec_terms .con {
        margin-top: 20px;
        padding: 20px; } }
  .sec_terms dl:last-child dd {
    margin-bottom: 0; }
  .sec_terms dl dt {
    font-size: clamp(21px, 1.6666666667vw, 24px);
    font-weight: 600;
    line-height: 1.5;
    margin-bottom: .5em; }
    .sec_terms dl dt span {
      display: table-cell; }
      .sec_terms dl dt span:first-child {
        color: #cf152d;
        font-size: 70%;
        padding-right: .5em; }
    @media only screen and (max-width: 768px) {
      .sec_terms dl dt {
        font-size: clamp(18px, 5.3333333333vw, 18px); } }
  .sec_terms dl dd {
    font-size: clamp(16px, 1.25vw, 18px);
    font-weight: 400;
    line-height: 1.75;
    margin-bottom: 2em; }
    .sec_terms dl dd li span {
      display: table-cell; }
    .sec_terms dl dd .notes {
      font-size: clamp(14px, 1.1111111111vw, 16px); }
    .sec_terms dl dd .mt {
      margin-top: 1em; }
    .sec_terms dl dd .head {
      border-top: 1px solid #000;
      border-bottom: 1px solid #000;
      font-size: clamp(18px, 1.3888888889vw, 20px);
      font-weight: 600;
      padding: .25em 0;
      text-align: center; }
    .sec_terms dl dd .t-center {
      font-size: clamp(18px, 1.3888888889vw, 20px);
      line-height: 1.5;
      margin: .5em auto;
      text-align: center; }
    .sec_terms dl dd a {
      color: #0166b4;
      text-decoration: underline; }
    @media only screen and (max-width: 768px) {
      .sec_terms dl dd {
        font-size: clamp(14px, 3.7333333333vw, 16px); }
        .sec_terms dl dd .notes {
          font-size: clamp(12px, 3.2vw, 14px); }
        .sec_terms dl dd .head {
          font-size: clamp(14px, 3.7333333333vw, 16px); }
        .sec_terms dl dd .t-center {
          font-size: clamp(14px, 3.7333333333vw, 16px);
          margin: .75em auto .5em; } }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: service */
.sec_service {
  background: #ffea52;
  padding: 60px clamp(5%, 8.3333333333%, 120px) 70px; }
  @media only screen and (max-width: 768px) {
    .sec_service {
      padding: 30px 5% 40px; } }
  .sec_service .container {
    background: #fff;
    border-radius: 30px;
    padding: 60px clamp(5%, 8.3333333333%, 120px) 70px; }
    @media only screen and (max-width: 768px) {
      .sec_service .container {
        border-radius: 15px;
        padding: 30px 5% 40px;
        width: 100%; } }
  .sec_service .service_list {
    display: flex;
    flex-direction: column;
    gap: 60px; }
    @media only screen and (max-width: 768px) {
      .sec_service .service_list {
        gap: 40px; } }
  .sec_service .service_bnr {
    display: flex;
    flex-direction: column;
    gap: 30px; }
    @media only screen and (max-width: 768px) {
      .sec_service .service_bnr {
        gap: 20px; } }
  .sec_service .button {
    display: block;
    max-width: 300px;
    margin: 30px auto; }
    @media only screen and (max-width: 768px) {
      .sec_service .button {
        margin: 15px auto;
        width: 90%; } }
  .sec_service .disney {
    max-width: 900px;
    margin: 2em auto 0;
    width: 90%; }
    .sec_service .disney a {
      color: var(--base);
      position: relative;
      text-decoration: underline; }
      .sec_service .disney a:after {
        content: "";
        filter: invert(42%) sepia(9%) saturate(5656%) hue-rotate(118deg) brightness(70%) contrast(101%);
        position: absolute;
        top: 0;
        bottom: 0;
        margin: auto;
        width: 15px;
        height: 15px;
        background: url(../images/arrow.svg) no-repeat center/cover; }
    @media only screen and (max-width: 768px) {
      .sec_service .disney {
        margin-top: 1em;
        width: 100%; }
        .sec_service .disney a {
          font-size: clamp(12px, 3.7333333333vw, 16px); }
          .sec_service .disney a:after {
            width: 12px;
            height: 12px; } }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: pagetop_btn */
.sec_company {
  background-color: #e0e0e0;
  padding: 30px 0;
  position: relative;
  text-align: center;
  z-index: 2; }
  .sec_company .company {
    font-size: clamp(15px, 1.0416666667vw, 15px);
    font-weight: bold; }
  .sec_company .address {
    font-size: clamp(13px, 0.9027777778vw, 13px);
    font-weight: bold;
    margin: 5px 0; }
  .sec_company ul {
    margin: auto;
    max-width: 250px;
    text-align: left; }
    .sec_company ul li {
      color: #000;
      font-size: clamp(11px, 0.7638888889vw, 11px);
      font-weight: bold; }
      .sec_company ul li img {
        width: 15px; }
  @media only screen and (max-width: 768px) {
    .sec_company {
      padding: 20px 0; }
      .sec_company .company {
        font-size: clamp(13px, 3.4666666667vw, 13px); }
      .sec_company .address {
        font-size: clamp(11px, 2.9333333333vw, 11px);
        margin: 0 0 5px; }
      .sec_company ul {
        max-width: 230px; }
        .sec_company ul li {
          font-size: clamp(10px, 2.6666666667vw, 10px); } }

/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: pagetop_btn */
.pagetop_btn {
  position: relative; }
  .pagetop_btn .pagetop {
    display: block;
    padding: 20px;
    color: white;
    background: var(--base);
    border: 3px solid var(--base);
    bottom: 24px;
    right: 24px;
    position: fixed;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s; }
    .pagetop_btn .pagetop:hover {
      color: var(--base);
      background: white;
      border: 3px solid var(--base); }
    .pagetop_btn .pagetop.active {
      opacity: 1;
      visibility: visible; }
    .pagetop_btn .pagetop.absolute {
      position: absolute;
      top: -100px;
      bottom: auto; }
    .pagetop_btn .pagetop svg {
      fill: currentcolor; }

@media only screen and (max-width: 768px) {
  .pagetop_btn .pagetop {
    right: 4%;
    padding: 0.8rem; }
    .pagetop_btn .pagetop.absolute {
      top: -90px; } }
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
/*index: footer */
footer {
  padding: 8px 20px 10px;
  background-color: var(--base);
  color: #fff;
  font-weight: 500;
  position: relative; }
  footer .container {
    display: grid;
    grid-template: auto auto/auto 264px; }
  footer .link {
    padding-top: 0.3rem;
    font-size: 12px;
    line-height: 1.4;
    margin-right: 1rem; }
    footer .link a {
      color: white;
      text-decoration: inherit;
      text-decoration-skip-ink: auto;
      margin-right: 1rem; }
    footer .link span {
      color: white; }
  footer .banner {
    position: relative;
    display: flex;
    align-items: center;
    width: 264px;
    height: 54px;
    color: #666;
    grid-area: 1/2/3/3; }
    footer .banner img {
      position: absolute; }
    footer .banner span.t {
      position: relative;
      padding: 0.4em 1em 0;
      font-size: 10px;
      line-height: 1.4;
      letter-spacing: 0; }
  footer .copyright {
    font-size: 10px;
    margin-top: 1rem;
    line-height: 1.4; }

@media only screen and (max-width: 768px) {
  footer {
    padding-bottom: 20px;
    text-align: center; }
    footer .container {
      display: flex;
      flex-direction: column;
      align-items: center; }
    footer .link {
      margin: 0 auto; }
    footer .banner {
      order: 1;
      margin-top: 8px; } }

/*# sourceMappingURL=style.css.map */
