:root {
  --bg-gradient: linear-gradient(90deg,#ed6c00 0%, #f39800 16%, #ffeb00 26%, #7fbe26 41%, #00afec 60%, #9079b6 74%, #eb6ea5 89%);
  --color-blue: #0559b6;
  --color-magenta: #cc2a85;
  --color-red: #e80000;
  --color-yellow: #ffe100;
  --color-orange: #ee8100;
  --color-lightgreen: #45b87f;
  --color-violet: #6d5daf;
  --font-ja-midashi: "Zen Maru Gothic", sans-serif;
}
html {
  scroll-behavior: smooth;
}
.blue {
  color: var(--color-blue);
}
.magenta {
  color: var(--color-magenta);
}
.red {
  color: var(--color-red);
}
.yellow {
  color: var(--color-yellow);
}
.orange {
  color: var(--color-orange);
}
.lightgreen {
  color: var(--color-lightgreen);
}
.violet {
  color: var(--color-violet);
}
.zenmaru {
  font-family: var(--font-ja-midashi);
  font-style: normal;
}
a[href^="tel:"] {
  text-decoration: none;
  color: #080808;
}

/**/
body {
  color: #080808;
  background: #FFFFFF;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}
ul,li {
  list-style: none;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
#top {
  overflow: clip;
}
header {
  background: var(--bg-gradient) no-repeat;
  background-size: 100% 4px;
  position: relative;
  .mv_copy {
    color: var(--color-blue);
  }
  .mv_subcopy {
    color: var(--color-blue);
  }
  .mv_open {
    position: absolute;
    inset: auto 0 0 auto;
  }
}
section.cta {
  h2 {
    color: #FFFFFF;
  }
  > ul {
    > li {
      a {
        border: 2px solid #ffe400;
        background: #ffe400;
        color: #000000;
        text-decoration: none;
      }
    }
  }
}
#top_worries {
  > ul {
    > li {
      border: 4px solid var(--color-yellow);
      background: #fffcdb;
      dt {
        color: #575018;
      }
    }
  }
}
#top_dontworry {
  .dw_points_wrapper {
    background: var(--color-yellow);
  }
  .dw_points {
    > li {
      dd {
        background: #FFFFFF;
        .point {
          background: var(--color-blue);
          color: #FFFFFF;
          text-transform: uppercase;
        }
        h3 {
          color: var(--color-blue);
        }
      }
    }
  }
}
#top_features {
  h2 {
    background: #2e6db2;
    color: #FFFFFF;
  }
  .features_list {
    border: 4px solid #2e6db2;
    counter-reset: number 0;
    > li {
      counter-increment: number 1;
      background: #FFFFFF;
      &::before {
        content: counter(number);
      }
      &#feature1 {
        dt {
          color: var(--color-orange);
        }
      }
      &#feature2 {
        dt {
          color: var(--color-lightgreen);
        }
      }
      &#feature3 {
        dt {
          color: var(--color-violet);
        }
      }
    }
  }
}
#top_flow {
  background: #f1f1e8;
  > ol {
    > li {
      .num {
        background: #2e6db2;
        color: #FFFFFF;
        text-transform: uppercase;
      }
      dt {
        color: var(--color-blue);
      }
    }
  }
}
#top_faq {
  .faqlist {
    > li {
      border: 1px solid #ffe100;
      background: #fffcdb;
      dl {
        dt {
          button,
          button:focus,
          button:hover  {
            color: #080808;
            text-align: left;
            width: 100%;
            display: block;
            border: none;
            outline: none;
            appearance: none;
            background: none;
            cursor: pointer;
          }
          button {
            font-family: "Noto Sans JP", sans-serif;
            &::before {
              content: "Q.";
            }
          }
        }
      }
    }
  }
}
#footer {
  background: #f5f5f5;
  position: relative;
  &::before {
    position: absolute;
    background: var(--bg-gradient) no-repeat;
    content: "";
    height: 8px;
    top: 0;
    left: 0;
    right: 0;
    transform: translateY(-100%);
  }
}
#top_access {
  .maplink {
    a {
      border: 4px solid var(--color-yellow);
      text-decoration: none;
      color: #000000;
    }
  }
}
@media (width >= 768px) {
  :root {
    --content-max-width: 1280px;
  }
  body {
    font-size: 17px;
    letter-spacing: 0.008em;
    min-width: 1240px
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
  /* ヘッダー */
  header {
    padding: 98px 0 86px;

    .wrapper {
      max-width: 1280px;
      padding: 0 40px;
      margin: auto;
      display: flex;
      justify-content: space-between;
    }
    .lbox {
      padding-left: 40px;
      padding-top: 7px;
    }
    .mv_copy {
      margin-top: 55px;
      font-size: 50px;
      font-weight: 700;
      line-height: 1.36;
      span {
        &:nth-of-type(1) {
          letter-spacing: 0;
        }
        &:nth-of-type(2) {
          letter-spacing: 0.02em;
        }
        &:nth-of-type(3) {
          letter-spacing: 0.06em;
        }
      }
    }
    .mv_subcopy {
      margin-top: 35px;
      font-size: 21px;
      font-weight: 600;
      letter-spacing: 0;
    }
    .mv_feature {
      display: flex;
      margin-top: 6px;
      gap: 0 8px;
      li {
        width: 115px;
      }
    }
  }
  section.cta {
    background: repeating-linear-gradient(45deg, #48bd3f, #48bd3f 18px, #4dbf47 18px, #4dbf47 36px);
    position: relative;
    padding: 60px 0 70px;
    overflow: hidden;
    &::after {
      content: "";
      border-radius: 50%;
      background-image: -moz-radial-gradient( 50% 50%, circle closest-side, rgb(255,249,172) 0%, rgba(255,249,172,0) 100%);
      background-image: -webkit-radial-gradient( 50% 50%, circle closest-side, rgb(255,249,172) 0%, rgba(255,249,172,0) 100%);
      background-image: -ms-radial-gradient( 50% 50%, circle closest-side, rgb(255,249,172) 0%, rgba(255,249,172,0) 100%);
      opacity: 0.502;
      position: absolute;
      width: 800px;
      height: 800px;
      z-index: 1;
      top: 0;
      right: 0;
    }
    h2 {
      text-align: center;
      font-size: 27px;
      font-weight: 700;
      letter-spacing: -0.02em;
      position: relative;
      z-index: 5;
    }
    > ul {
      margin-top: 22px;
      display: flex;
      justify-content: center;
      gap: 0 20px;
      position: relative;
      z-index: 5;
      > li {
        display: flex;
        a {
          border-width: 4px;
          width: 480px;
          padding: 23px 0;
          display: flex;
          align-items: center;
          justify-content: center;
          gap: 0 22px;
          font-size: 30px;
          font-weight: 600;
          border-radius: 70px;
          box-shadow: 5.657px 5.657px 0px 0px rgba(0, 0, 0, 0.2);
          &.line {
            background: #FFFFFF;
          }
        }
      }
    }
  }
  #top_worries {
    padding: 120px 0 80px;
    h2 {
      text-align: center;
      font-size: 30px;
      font-weight: 600;
      line-height: 1.25;
      letter-spacing: -0.05em;
      .size_l {
        font-size: 64px;
        font-weight: 700;
      }
      .size_m {
        font-size: 40px;
      }
    }
    > ul {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      width: 1000px;
      margin: 55px auto 0;
      gap: 20px;
      > li {
        display: grid;
        grid-row: span 3;
        gap: 0;
        grid-template-rows: auto;
        border-radius: 24px;
        padding: 19px 5px 0;
        text-align: center;
        dt {
          font-size: 16px;
          font-weight: 600;
          text-decoration: underline;
        }
        dd {
          p {
            margin-top: 12px;
            font-size: 25px;
            font-weight: 700;
            line-height: 1.5;
            letter-spacing: 0.05em;
            &.img {
              margin-top: 7px;
            }
          }
        }
      }
    }
  }
  #top_dontworry {
    position: relative;
    h2 {
      text-align: center;
      font-size: 48px;
      font-weight: 700;
      letter-spacing: -0.04em;
      .kerning_3 {
        margin-right: -15px;
        display: inline-block;
      }
      .kerning_2 {
        margin-right: -17px;
        display: inline-block;
      }
    }
    .dw_points_wrapper {
      margin-top: 90px;
      padding: 157px 0 160px;
      position: relative;
      &::before {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-right: 23px solid transparent;
        border-left: 23px solid transparent;
        border-top: 44px solid #ffffff;
        border-bottom: 0;
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
      }
    }

    .dw_points {
      width: 1200px;
      margin: 0 auto;
      > li {
        margin-top: 20px;
        border-radius: 24px;
        overflow: hidden;
        &:nth-of-type(1) {
          margin-top: 0;
        }
        > dl {
          display: flex;
          dt {
            flex-shrink: 0;
            width: 660px;
          }
          dd {
            position: relative;
            width: 540px;
            padding: 0 60px 0 59px;
            display: flex;
            justify-content: center;
            flex-direction: column;
            .point {
              position: absolute;
              top: 0;
              left: 0;
              width: 80px;
              text-align: center;
              padding: 4px 0;
              font-weight: 700;
              font-size: 15px;
            }
            h3 {
              font-size: 30px;
              font-weight: 700;
              letter-spacing: 0.04em;
              & + p {
                margin-top: 23px;
                font-size: 17px;
                line-height: 1.75;
              }
            }
          }
        }
        &:nth-of-type(3),
        &:nth-of-type(4) {
          border-radius: 0 24px 24px 24px;
          > dl {
            flex-direction: row-reverse;
          }
        }
      }
    }
  }
  #top_features {
    padding: 120px 0;
    position: relative;
    &::before {
      content: "";
      background: var(--bg-gradient);
      opacity: 0.1;
      position: absolute;
      inset: 0;
      z-index: 1;
    }
    .contents {
      position: relative;
      z-index: 5;
      width: 1200px;
      margin: 0 auto;
      display: flex;
      align-items: flex-start;
      gap: 0 60px;
    }
    h2 {
      width: 280px;
      height: 280px;
      padding-top: 5px;
      text-align: center;
      display: grid;
      align-items: center;
      justify-content: center;
      font-size: 27px;
      font-weight: 700;
      line-height: 1.25;
      border-radius: 24px;
      .size_l {
        font-size: 54px;
      }
      .size_m {
        font-size: 40px;
      }
    }
    .features_list {
      width: 860px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      border-radius: 32px;
      overflow: hidden;
      > li {
        padding: 95px 30px 87px;
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 2;
        gap: 0;
        position: relative;
        &::before {
          position: absolute;
          top: 0;
          left: 0;
          font-size: 24px;
          font-weight: 600;
          box-sizing: border-box;
          padding-left: 17px;
          padding-top: 7px;
          width: 60px;
          height: 60px;
          z-index: 5;
          background: radial-gradient(circle at top left, var(--color-yellow) 0%, var(--color-yellow) 100%, transparent 100%);
          border-radius: 0 0 100% 0;
        }
        &::after {
          content: "";
          background-image: repeating-linear-gradient(180deg, #dddddd, #dddddd 8px, transparent 8px, transparent 16px);
          background-position: right top;
          background-repeat: repeat-y;
          background-size: 2px 100%;
          width: 2px;
          position: absolute;
          top: 0;
          bottom: 0;
        }
        &:nth-of-type(1) {
          &::before {
          }
          &::after {
            display: none;
          }
        }
        > dl {
          display: contents;
          dt {
            font-size: 30px;
            line-height: 1.45;
            font-weight: 700;
            letter-spacing: 0.06em;
            .size_s {
              font-size: 21px;
              line-height: 1.14;
              display: inline-block;
            }
          }
          dd {
            margin-top: 46px;
            letter-spacing: -0.03em;
            /* padding: 0 5px; */
            padding: 0;
            font-size: 17px;
            line-height: 1.75;
          }
        }
      }
    }
  }
  #top_flow {
    padding: 105px 0 120px;
    h2 {
      text-align: center;
      font-size: 48px;
      font-weight: 700;
    }
    > ol {
      width: 1200px;
      margin: 110px auto 0;
      display: grid;
      gap: 0 30px;
      grid-template-columns: 1fr 1fr 1.2fr;
      > li {
        background: #FFFFFF;
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 2;
        gap: 0;
        position: relative;
        border-radius: 0 24px 24px 24px;
        padding: 47px 30px 52px;
        &::before {
          content: "";
          height: 1px;
          width: 30px;
          background: #d8d8cf;
          position: absolute;
          top: 50%;
          left: -30px;
        }
        &:nth-of-type(1) {
          &::before {
            display: none;
          }
        }
        .num {
          position: absolute;
          top: 0;
          left: 0;
          transform: translateY(-100%);
          border-radius: 16px 16px 0 0;
          width: 120px;
          padding: 6px 0 8px;
          font-size: 16px;
          font-weight: 500;
          text-align: center;
          display: flex;
          align-items: baseline;
          justify-content: center;
          gap: 0 7px;
          .integer {
            transform: translateY(2px);
            font-size: 24px;
            font-weight: 600;
            display: inline-block;
          }
        }
        dt {
          font-size: 27px;
          font-weight: 700;
          line-height: 1.61;
        }
        dd {
          margin-top: 32px;
          font-size: 17px;
          line-height: 1.75;
        }
      }
    }
  }
  
  #top_faq {
    padding: 110px 0 120px;
    h2 {
      text-align: center;
      font-size: 48px;
      font-weight: 700;
      letter-spacing: -0.03em;
      .kerning {
        display: inline-block;
        margin: 0 -3px;
      }
    }
    .faqlist {
      margin: 68px auto 0;
      width: 800px;
      > li {
        margin-top: 12px;
        border-radius: 20px;
        overflow: hidden;
        &:nth-of-type(1) {
          margin-top: 0;
        }
        dl {
          dt {
            button,
            button:focus,
            button:hover  {
              padding: 30px 58px;
              font-size: 21px;
              font-weight: 600;
            }
            button {
              &::before {
                color: var( --color-magenta);
                padding-right: 5px;
              }
            }
          }
          dd {
            padding: 10px 58px 35px;
            font-size: 17px;
            font-weight: 500;
            line-height: 1.75;
          }
        }
      }
    }
  }
  #top_access {
    padding: 105px 0 125px;
    h2 {
      text-align: center;
      font-size: 48px;
      font-weight: 700;
      letter-spacing: -0.02em;
      .kerning {
        display: inline-block;
        margin: 0 -10px;
      }
    }
    h3 {
      text-align: center;
      margin-top: 70px;
    }
    .about_shop {
      margin: 48px auto 0;
      width: 1195px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      .photo {
        width: 660px;
        flex-shrink: 0;
        position: relative;
        overflow: hidden;
        img {
          border-radius: 24px;
        }
      }
      .infomation {
        width: 475px;
        > dl {
          display: flex;
          background-image: repeating-linear-gradient(90deg, #dddddd, #dddddd 8px, transparent 8px, transparent 16px);
          background-position: left bottom;
          background-repeat: repeat-x;
          background-size: 100% 2px;
          dt {
            width: 130px;
            padding: 20px 3px 20px 20px;
            font-size: 17px;
            font-weight: 600;
            line-height: 1.75;
            flex-shrink: 0;
          }
          dd {
            flex-grow: 1;
            padding: 20px 0;
            font-size: 17px;
            line-height: 1.75;
          }
        }
        .sns {
          margin-top: 30px;
          margin-left: 20px;
          display: flex;
          gap: 0 30px;
          img {
            width: 48px;
            height: auto;
          }
        }
      }
    }
    .map {
      margin-top: 100px;
    }
    .maplink {
      width: 660px;
      margin: 37px auto 0;
      display: flex;
      justify-content: space-between;
      > li {
        display: contents;
        a {
          display: flex;
          align-items: center;
          justify-content: center;
          width: 310px;
          border-radius: 75px;
          text-align: center;
          font-size: 21px;
          font-weight: 700;
          position: relative;
          line-height: 1.35;
          box-shadow: 5.657px 5.657px 0px 0px rgba(0, 0, 0, 0.2);

          .small {
            font-size: 16px;
          }
          &#top_access_gmap {
            padding-right: 10px;
            &::after {
              content: "";
              width: 20px;
              height: 20px;
              background: url(../img/ico_tab.png) no-repeat;
              background-size: 20px;
              position: absolute;
              top: 50%;
              right: 28px;
              transform: translateY(-50%);
            }
          }
          &#top_access_floormap {
            padding: 13px 0 23px;
          }
        }
      }
    }
  }
  #footer {
    padding: 50px 0 65px;
    text-align: center;
    h2 {
      font-size: 20px;
      font-weight: 600;
    }
    > dl {
      dt {
        margin-top: 24px;
        padding-right: 15px;
      }
      dd {
        margin-top: 22px;
        font-size: 14px;
        font-weight: 500;
        letter-spacing: 0;
      }
    }
  }
}