@charset "UTF-8";
.container-header {
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media only screen and (max-width: 767px) {
    .container-header {
      padding-top: 2rem; } }
  .container-header-ttl {
    font-size: 4.8rem;
    text-align: center; }
    @media only screen and (max-width: 767px) {
      .container-header-ttl {
        font-size: 4rem; } }
    .container-header-ttl span {
      font-size: 2rem; }
  .container-header-en {
    color: #ec695e;
    font-size: 2rem;
    font-weight: 700; }
    @media only screen and (max-width: 767px) {
      .container-header-en {
        font-size: 1.6rem; } }
  .container-header-illust {
    width: 26.6rem;
    margin-top: -10rem;
    position: relative;
    bottom: -12rem; }
    @media only screen and (max-width: 767px) {
      .container-header-illust {
        margin-top: -5rem;
        bottom: -6rem; } }
.container-inner {
  padding: 3rem 0 0; }
  @media only screen and (max-width: 767px) {
    .container-inner {
      padding: 2rem 0 0; } }
  .container-inner-txt p {
    text-align: center; }
    @media only screen and (max-width: 767px) {
      .container-inner-txt p strong {
        font-size: 2.6rem; } }
  @media only screen and (max-width: 767px) {
    .container-inner-txt {
      padding: 0 2rem; } }
  .container-inner .aside-contact {
    background: #f4f0e9;
    position: relative;
    padding-bottom: 20rem; }
    @media only screen and (max-width: 767px) {
      .container-inner .aside-contact {
        padding-bottom: 10rem; } }
    .container-inner .aside-contact:after {
      content: "";
      background: url("../../img/common/bg_nami.svg") no-repeat;
      background-size: 100% 100%;
      width: 100%;
      height: 10rem;
      position: absolute;
      left: 0;
      bottom: -0.1rem; }
      @media only screen and (max-width: 767px) {
        .container-inner .aside-contact:after {
          height: 5rem; } }

#wrap > .aside-contact {
  position: relative;
  top: -15rem;
  margin-bottom: -15rem;
  padding-top: 0; }
  @media only screen and (max-width: 767px) {
    #wrap > .aside-contact {
      top: -10rem;
      margin-bottom: -10rem; } }

.section-foreword {
  padding: 6rem 2rem 10rem 2rem;
  background: #ec695e; }
  @media only screen and (max-width: 767px) {
    .section-foreword {
      padding: 3rem 1.5rem 5rem; } }
  .section-foreword-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center; }
    .section-foreword-header-illust {
      width: 46rem;
      bottom: -3rem;
      position: relative; }
      @media only screen and (max-width: 767px) {
        .section-foreword-header-illust {
          width: 35rem; } }
    .section-foreword-header-en {
      font-size: 6.4rem;
      line-height: 1.1;
      font-weight: 700; }
      @media only screen and (max-width: 767px) {
        .section-foreword-header-en {
          font-size: 6rem; } }
    .section-foreword-header-ttl {
      font-size: 1.6rem;
      line-height: 1.1;
      color: #fff; }
  .section-foreword-inner {
    max-width: 99rem;
    background: #fff;
    border-radius: 1.5rem;
    margin: 0 auto;
    padding: 6rem 3rem 1rem; }
    @media only screen and (max-width: 767px) {
      .section-foreword-inner {
        padding: 5rem 1.5rem 1rem; } }
    .section-foreword-inner-catch {
      text-align: center;
      padding-bottom: 3rem; }
      .section-foreword-inner-catch p {
        font-size: 1.8rem;
        line-height: 1.7;
        padding-bottom: 1.5rem; }
        @media only screen and (max-width: 767px) {
          .section-foreword-inner-catch p {
            font-size: 1.6rem;
            text-align: left; }
            .section-foreword-inner-catch p br {
              display: none; } }
        .section-foreword-inner-catch p strong {
          font-size: 2.4rem;
          font-weight: 500; }
          @media only screen and (max-width: 767px) {
            .section-foreword-inner-catch p strong {
              font-size: 2rem; } }
    .section-foreword-inner dl div {
      margin-bottom: 4rem; }
      @media only screen and (max-width: 767px) {
        .section-foreword-inner dl div {
          margin-bottom: 3rem; } }
      .section-foreword-inner dl div dt {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        border-radius: 1rem;
        padding: 1.5rem 2rem;
        color: #fff;
        font-size: 2rem;
        background: #094b95;
        margin-bottom: 1.5rem; }
        @media only screen and (max-width: 767px) {
          .section-foreword-inner dl div dt {
            line-height: 1.3; } }
        .section-foreword-inner dl div dt span {
          width: 2.4rem;
          height: 2.4rem;
          border-radius: .3rem;
          background: #fff;
          display: flex;
          justify-content: center;
          align-items: center;
          color: #ec695e;
          font-size: 2.4rem;
          flex-shrink: 0;
          margin-right: 1rem; }
      .section-foreword-inner dl div dd {
        font-size: 1.6rem;
        line-height: 1.8;
        padding: 0 2rem; }
        @media only screen and (max-width: 767px) {
          .section-foreword-inner dl div dd {
            padding: 0 .5rem; } }
.section-work {
  padding: 4rem 2rem 10rem 2rem;
  background: #f4f0e9; }
  @media only screen and (max-width: 767px) {
    .section-work {
      padding: 3rem 1.5rem 0; } }
  .section-work-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-bottom: 5rem; }
    .section-work-header-illust {
      width: 17rem;
      bottom: -4rem;
      position: relative; }
    .section-work-header-ttl {
      font-size: 3.2rem;
      text-align: center;
      line-height: 1.2;
      display: flex;
      align-items: flex-end;
      justify-content: center; }
      @media only screen and (max-width: 767px) {
        .section-work-header-ttl {
          font-size: 2.4rem; } }
      .section-work-header-ttl:before, .section-work-header-ttl:after {
        content: "";
        width: .5rem;
        background: #ec695e;
        height: 15rem;
        margin: 0 4.5rem -2rem; }
        @media only screen and (max-width: 767px) {
          .section-work-header-ttl:before, .section-work-header-ttl:after {
            margin: 0 3rem -2rem; } }
      .section-work-header-ttl:after {
        transform: rotate(35deg); }
      .section-work-header-ttl:before {
        transform: rotate(-35deg); }
  .section-work-inner {
    max-width: 110rem;
    margin: 0 auto;
    display: flex;
    justify-content: center; }
    @media only screen and (max-width: 767px) {
      .section-work-inner {
        flex-direction: column; } }
    .section-work-inner .article-work {
      width: 28%;
      margin: 0 2.51%; }
      @media only screen and (max-width: 767px) {
        .section-work-inner .article-work {
          width: 28rem;
          margin: 0 1rem 3rem; } }
      .section-work-inner .article-work-ttl {
        background: #ec695e;
        color: #fff;
        font-size: 2.4rem;
        line-height: 1.3;
        padding: 1.2rem 2rem;
        border-radius: 8rem;
        margin-bottom: 2rem;
        text-align: center; }
        @media only screen and (max-width: 767px) {
          .section-work-inner .article-work-ttl {
            font-size: 2rem; } }
      .section-work-inner .article-work-img {
        width: 100%;
        max-width: 28rem;
        height: auto;
        aspect-ratio: 1 / 1;
        border: .8rem solid #fff;
        border-radius: 2.5rem;
        overflow: hidden;
        margin: 0 auto 1.5rem;
        background-size: cover;
        background-position: 50% 50%;
        background-repeat: no-repeat; }
      .section-work-inner .article-work p {
        font-size: 1.6rem;
        padding: 0 1rem 2rem; }
.section-message {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 3rem 2rem 10rem 2rem; }
  @media only screen and (max-width: 767px) {
    .section-message {
      padding: 2rem 2rem 5rem;
      flex-direction: column; } }
  .section-message-header {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
    flex-shrink: 0;
    margin-right: 5rem; }
    @media only screen and (max-width: 767px) {
      .section-message-header {
        margin: 0 auto 2rem; } }
    .section-message-header-fig {
      width: 27rem;
      height: 27rem;
      border-radius: 50%;
      background-size: cover;
      background-position: 50% 50%;
      border: 0.8rem solid #f4f0e9;
      margin: 0 auto; }
    .section-message-header-en {
      font-size: 6.4rem;
      font-weight: 700;
      color: #3871af;
      line-height: 1.2; }
    .section-message-header-ttl {
      font-size: 1.6rem; }
  .section-message-inner {
    max-width: 60rem; }
    .section-message-inner p {
      font-size: 1.6rem;
      line-height: 1.8;
      padding-bottom: 1.5rem; }
      .section-message-inner p.right {
        text-align: right;
        font-weight: 600; }
        .section-message-inner p.right span {
          font-size: 1.3rem; }
.section-information {
  padding: 8rem 2rem;
  background: rgba(244, 240, 233, 0.5); }
  @media only screen and (max-width: 767px) {
    .section-information {
      padding: 5rem 1.5rem; } }
  .section-information-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 4rem; }
    .section-information-header-en {
      font-size: 6.4rem;
      color: #3871af;
      line-height: 1.1;
      font-weight: 700; }
      @media only screen and (max-width: 767px) {
        .section-information-header-en {
          font-size: 6rem; } }
    .section-information-header-ttl {
      font-size: 1.6rem;
      line-height: 1.1; }
  .section-information-inner {
    max-width: 90rem;
    margin: 0 auto; }
    .section-information-inner div {
      display: flex;
      justify-content: space-between;
      background: #fff;
      border-radius: 1rem;
      align-items: center;
      margin-bottom: 1.5rem;
      padding: 2rem;
      font-size: 1.6rem; }
      @media only screen and (max-width: 767px) {
        .section-information-inner div {
          flex-direction: column; } }
      .section-information-inner div dt {
        width: 22%;
        color: #094b95;
        flex-shrink: 0;
        text-align: center; }
        @media only screen and (max-width: 767px) {
          .section-information-inner div dt {
            width: 100%; } }
      .section-information-inner div dd {
        width: 100%;
        line-height: 1.8;
        padding: 0 2rem; }
        @media only screen and (max-width: 767px) {
          .section-information-inner div dd {
            padding: 1rem 0 0; } }
        .section-information-inner div dd p {
          display: flex;
          justify-content: flex-start; }
          .section-information-inner div dd p:before {
            content: "●";
            color: #ec695e;
            flex-shrink: 0;
            margin-right: .3rem; }
.section-case {
  padding: 8rem 2rem 15rem; }
  @media only screen and (max-width: 767px) {
    .section-case {
      padding: 5rem 1.5rem 8rem; } }
  .section-case-header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 4rem; }
    .section-case-header-en {
      font-size: 6.4rem;
      color: #3871af;
      line-height: 1.1;
      font-weight: 700; }
      @media only screen and (max-width: 767px) {
        .section-case-header-en {
          font-size: 6rem; } }
    .section-case-header-ttl {
      font-size: 1.6rem;
      line-height: 1.1; }
  .section-case-inner {
    max-width: 90rem;
    margin: 0 auto;
    display: flex;
    justify-content: center; }
    @media only screen and (max-width: 767px) {
      .section-case-inner {
        flex-wrap: wrap; } }
    .section-case-inner div {
      padding: 2rem;
      font-size: 1.6rem; }
      @media only screen and (max-width: 767px) {
        .section-case-inner div {
          width: 50%;
          padding: 1rem;
          font-size: 1.3rem; } }
      @media only screen and (min-width: 1025px) {
        .section-case-inner div:hover img {
          opacity: 0.8; }
        .section-case-inner div:hover dt a {
          color: #3871af; } }
      .section-case-inner div dt {
        text-align: center; }
      .section-case-inner div dd {
        text-align: center; }
        .section-case-inner div dd img {
          max-width: 12rem; }
          @media only screen and (max-width: 767px) {
            .section-case-inner div dd img {
              max-width: 100%; } }
        .section-case-inner div dd a {
          display: block;
          padding: 1rem; }
.section-reviews {
  background: #ec695e;
  padding: 3rem 0 18rem 0;
  position: relative;
  z-index: 1; }
  @media only screen and (max-width: 767px) {
    .section-reviews {
      padding: 0 0 10rem; } }
  .section-reviews:after {
    content: "";
    width: 100%;
    height: 2.5rem;
    background: url("../../img/common/bg_curve_r.svg") no-repeat;
    background-size: 100% 100%;
    transform: scaleY(-1);
    position: absolute;
    top: -2.4rem;
    left: 0;
    z-index: -1; }
  .section-reviews-header {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
    padding-bottom: 5rem; }
    .section-reviews-header-en {
      font-size: 6.4rem;
      font-weight: 700;
      color: #fff;
      line-height: 1.2; }
    .section-reviews-header-ttl {
      font-size: 1.6rem; }
  .section-reviews-inner {
    display: flex;
    justify-content: center; }
    .section-reviews-inner .article-reviews {
      width: 30rem;
      margin: 0 2rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      color: #fff; }
      .section-reviews-inner .article-reviews-fig {
        width: 14rem;
        height: 14rem;
        background: #fff;
        border-radius: 50%;
        margin: 0 auto 1.5rem; }
      .section-reviews-inner .article-reviews-header {
        padding: 0 0 2rem;
        text-align: center; }
        .section-reviews-inner .article-reviews-header > p {
          line-height: 1.3;
          text-align: center; }
        .section-reviews-inner .article-reviews-header-ttl {
          font-size: 1.6rem;
          line-height: 1.3; }
          .section-reviews-inner .article-reviews-header-ttl strong {
            font-size: 2.4rem; }
      .section-reviews-inner .article-reviews p {
        font-size: 1.6rem; }
.section-voice {
  background: #fdf0ef;
  position: relative;
  z-index: 1;
  padding: 3rem 0; }
  .section-voice:after {
    content: "";
    width: 100%;
    height: 2.5rem;
    background: url("../../img/common/bg_curve_lr.svg") no-repeat;
    background-size: 100% 100%;
    transform: scaleY(-1);
    position: absolute;
    top: -2.4rem;
    left: 0;
    z-index: -1; }
  .section-voice:before {
    content: "";
    width: 100%;
    height: 2.5rem;
    background: url("../../img/common/bg_curve_lr.svg") no-repeat;
    background-size: 100% 100%;
    position: absolute;
    bottom: -2.4rem;
    left: 0;
    z-index: -1; }
  .section-voice-header {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
    padding-bottom: 3rem; }
    .section-voice-header-en {
      font-size: 6.4rem;
      font-weight: 700;
      color: #ec695e;
      line-height: 1.2; }
    .section-voice-header-ttl {
      font-size: 1.6rem; }
  .section-voice-inner .article-voice {
    max-width: 90rem;
    margin: 4rem 2rem;
    background: #fff;
    border-radius: 1rem; }
    @media only screen and (max-width: 767px) {
      .section-voice-inner .article-voice {
        max-width: 90vw;
        margin: 4rem 5vw; } }
    .section-voice-inner .article-voice-header {
      text-align: center;
      display: flex;
      flex-direction: column;
      align-items: center;
      position: relative;
      top: -4rem;
      margin-bottom: -2rem; }
      .section-voice-inner .article-voice-header-fig {
        width: 14rem;
        height: 14rem;
        margin: 0 auto -2.5rem; }
      .section-voice-inner .article-voice-header-ttl {
        padding: 1.5rem 3.5rem;
        font-size: 1.6rem;
        line-height: 1.2;
        border-radius: 10rem;
        background: #094b95;
        color: #fff; }
        .section-voice-inner .article-voice-header-ttl span {
          color: #de6c11;
          font-size: 1.6rem;
          line-height: 1.3;
          display: block; }
        .section-voice-inner .article-voice-header-ttl strong {
          font-size: 2.4rem; }
    .section-voice-inner .article-voice-inner {
      padding: 0 3rem 3rem; }
    .section-voice-inner .article-voice p {
      font-size: 1.6rem;
      line-height: 1.9; }
.section-step {
  max-width: 110rem;
  margin: 0 auto;
  padding: 10rem 2rem 8rem;
  position: relative;
  z-index: 2; }
  @media only screen and (max-width: 767px) {
    .section-step {
      padding: 8rem 1.5rem 8rem; } }
  .section-step-header {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin-bottom: 6rem;
    position: relative; }
    @media only screen and (max-width: 767px) {
      .section-step-header {
        margin-bottom: 3rem; } }
    .section-step-header-ttl {
      font-size: 1.6rem;
      line-height: 1; }
    .section-step-header-en {
      font-size: 6.4rem;
      line-height: 1.3;
      font-weight: 700;
      color: #3871af; }
  .section-step-inner {
    display: flex;
    justify-content: center;
    flex-wrap: wrap; }
    .section-step-inner > div {
      background: #f4f0e9;
      border-radius: 1rem;
      width: 24rem;
      margin: 0 1rem 2rem;
      position: relative; }
      @media only screen and (max-width: 1024px) {
        .section-step-inner > div {
          width: 22rem; } }
  @media only screen and (max-width: 1024px) and (max-width: 767px) {
    .section-step-inner > div {
      width: 28rem; } }

      .section-step-inner > div:after {
        content: "\e5c8";
        font-family: "Material Symbols Rounded";
        color: #ec695e;
        font-size: 3rem;
        position: absolute;
        right: -2rem;
        top: 2rem; }
        @media only screen and (max-width: 767px) {
          .section-step-inner > div:after {
            content: "\e5db";
            right: 50%;
            margin-right: -.5em;
            line-height: 1;
            top: auto;
            bottom: -2rem; } }
      .section-step-inner > div:nth-last-of-type(1):after {
        display: none; }
      .section-step-inner > div dt {
        background: #3871af;
        color: #fff;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        padding: 1.5rem;
        border-radius: 1rem 1rem 0 0;
        font-size: 2.4rem; }
        .section-step-inner > div dt span {
          color: #ec695e;
          font-size: 1.6rem; }
      .section-step-inner > div dd {
        font-size: 1.6rem;
        padding: 1.5rem; }
