@charset "UTF-8";

* {
  font-family: "Noto Sans Japanese","Meiryo", "メイリオ", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "ＭＳ Ｐゴシック", "ＭＳ ゴシック", "Osaka－等幅", Osaka-mono, monospace;
  font-weight: 200;
  font-style: normal;
  color: #251e1c;
  text-decoration: none;
}

body {
  &.mikaku {
    --color-black: #251e1c;
    --color-black-02: #231815;
    --color-light-gray: #5c5a5a;
    --color-white: #fff;
    --color-gray: #E7EAF5;
    --color-blue: #4897d6;
    --color-deep-blue-01: #005bac;
    --color-deep-blue-02: #0068B3;
    --color-deep-blue-03: #00437c;
    --color-deep-blue-04: #0080c8;
    --color-navy-blue: #130c5d;
    --color-light-blue: #d0e7f9;
    --color-light-blue-02: #A2E6FB;
    --color-light-blue-03: #bae3f9;
    --color-violet: #5D348B;
    word-break: normal;
    overflow-wrap: anywhere;
    line-break: strict;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;

    picture {
      font-size: 0;
    }

    #pageTop.to-top {
      z-index: 99;
    }

    .bg-gradation {
      position: relative;
      z-index: 0;
      background-image: url(../img/mikaku/bg_gradation_lg.jpg);
      background-size: 100% 100%;

      &::after {
        position: absolute;
        z-index: -1;
        content: '';
        background-image: url(../img/mikaku/bg_white_gradation_lg.png);
        background-size: 100% 100%;
        width: 100%;
        height: 100px;
        bottom: 0;
      }
    }

    @media only screen and (max-width: 768px) {
      .bg-gradation {
        background-image: url(../img/mikaku/bg_gradation_sm.jpg);

        &::after {
          height: 10.6vw;
          bottom: -2.66vw;
          background-image: url(../img/mikaku/bg_white_gradation_sm.png);
        }
      }
    }
    
    .section-inner {
      margin-inline: auto;
      max-width: 1020px;
      padding-inline: 60px;
    }

    @media only screen and (max-width: 768px) {
      .section-inner {
        padding-inline: 5.33vw;
      }
    }

    .list-content {
      display: block;
      margin-inline: auto;
    }

    @media only screen and (max-width: 768px) {
      .list-content {
        margin-block: 10px 15px;
        padding: 25px 23px;
      }
    }

    .life-content-example-head {
      display: block;
      margin-inline: auto;
      margin-bottom: 18px;
      max-width: 240px;
      width: 100%;
    }

    @media only screen and (max-width: 768px) {
      .life-content-example-head {
        margin-bottom: 2vw;
        max-width: 36vw;
        width: 100%;
      }
    }


    .list-content-item {
      position: relative;
      display: flex;
      align-items: center;
      padding-left: 30px;
      font-size: 20px;
      font-weight: 500;
      letter-spacing: 0.02em;
      line-height: 1.6;
      color: var(--color-black);

      &::after {
        position: absolute;
        content: '';
        background-color: var(--color-deep-blue-02);
        border-radius: 999px;
        left: 7px;
        top: 7px;
        width: 18px;
        height: 18px;
      }
    }

    @media only screen and (max-width: 768px) {
      .list-content-item {
        padding-left: 1em;
        font-size: 2.53vw;
        line-height: 1.55;
  
        &::after {
          top: 1.06vw;
          left: 0;
          width: 2vw;
          height: 2vw;
        }
      }
    }
    
    .page-title {
      max-width: 800px;
    }

    @media only screen and (max-width: 768px) {
      .page-title {
        margin-left: 1.33vw;
        max-width: none;
        width: 80vw;
      }
    }
    
    .top {
      padding-top: 60px
    }

    @media only screen and (max-width: 768px) {
      .top {
        padding-top: 7.3vw;
      }
    }
        
    .lead-title {
      margin-top: 50px;
      background-color: #fff;
      border-radius: 10px
    }

    @media only screen and (max-width: 768px) {
      .lead-title {
        margin-top: 5.6vw;
        margin-inline: auto;
        border-radius: 5px;
        max-width: 88vw;
      }
    }

    .lead-title-text {
      display: block;
      margin-inline: auto;
      padding-block: 15px;
      max-width: 540px;
    }

    @media only screen and (max-width: 768px) {
      .lead-title-text {
        padding-block: 1.86vw 1.33vw;
        max-width: 53.3vw;
      }
    }
    
    .section-title-text {
      margin-inline: auto;
      width:100%;
      text-align:center;
      display: block;
    }

    @media only screen and (max-width: 768px) {
      .section-title-text {
        padding-inline: 0;
      }
    }

    .section-title-text-02 {
      max-width: 770px;
    }

    @media only screen and (max-width: 768px) {
      .section-title-text-02 {
        max-width: 86.6vw;
      }
    }

    .section-title-text-03 {
      max-width: 730px;
    }

    @media only screen and (max-width: 768px) {
      .section-title-text-03 {
        max-width: none;
        width: 77.3vw;
        padding-block: 21px;
      }
    }

    .section-title-text-04 {
      max-width: 695px;
      padding-block: 30px;
    }

    @media only screen and (max-width: 768px) {
      .section-title-text-04 {
        max-width: none;
        width: 72vw;
        padding-block: 16px;
      }
    }

    .section-title-text-05 {
      max-width: 400px;
    }

    @media only screen and (max-width: 768px) {
      .section-title-text-05 {
        max-width: 44vw;
      }
    }

    
    .lead-content-img {
      margin-inline: auto;
      max-width: 1080px;
      margin-top: 40px;
    }

    @media only screen and (max-width: 768px) {
      .lead-content-img {
        margin-top: 4vw;
      }
    }

    .section-text {
      margin-top: 32px
    }

    @media only screen and (max-width: 768px) {
      .section-text {
        margin-top: 8vw;
      }
    }

    .section-text p {
      text-align: center;
      color: var(--color-black);
      margin: 0;
      font-size: 18px;
      font-weight: 500;
      letter-spacing: 0.03em;
      line-height: 1.8;
    }

    @media only screen and (max-width: 768px) {
      .section-text p {
        font-size: 2.93vw;
        line-height: 1.5;
      }
    }
    
    .section-lead {
      margin-top: 85px;
    }

    @media only screen and (max-width: 768px) {
      .section-lead {
        margin-top: 5.33vw;
      }  
    }

    .section-lead-text {
      margin-inline: auto;
      display: block;
      max-width: 560px;
    }

    @media only screen and (max-width: 768px) {
      .section-lead-text {
        margin-inline: auto;
        padding-block: 12px;
        max-width: none;
        width: 64vw;
      }
    }

    .worries {
      padding-block: 70px 25px;
    }

    @media only screen and (max-width: 768px) {
      .worries {
        padding-block: 5.3vw;
      }
    }

    .worries-text {
      margin-top: 70px
    }

    @media only screen and (max-width: 768px) {
      .worries-text {
        margin-top: 4vw
      }
    }

    .worries-text p {
      text-align: center;
      color: var(--color-navy-blue);
      margin: 0;
      font-size: 20px;
      font-weight:500;
      letter-spacing: 0.1em;
      line-height: 2.3;
    }

    @media only screen and (max-width: 768px) {
      .worries-text p {
        font-size: 3.2vw;
        letter-spacing: 0;
        line-height: 1.8;
      }
    }

    .grid-content-wrapper {
      position: relative;
      margin-top: 50px;
      margin-inline: auto;
      max-width: 870px;
    }

    @media only screen and (max-width: 768px) {
      .grid-content-wrapper {
        margin-top: 2vw;
      }
    }

    .grid-content {
      margin-bottom: 18px;
      display: grid;
      grid-template-columns: repeat(3,1fr);
      gap: 20px;
    }

    @media only screen and (max-width: 768px) {
      .grid-content {
        grid-template-columns: auto;
        gap: 4vw;
        justify-content: center;
      }
    }

    @media only screen and (max-width: 768px) {
      .grid-child {
        position: relative;
        width: 56vw;

        &:nth-of-type(odd) {
          right: 8vw;
        }

        &:nth-of-type(even) {
          left: 8vw;
        }

        &:last-of-type {
          right: 2.26vw;
        }
      }
    }

    .annotation-text {
      display: block;
      margin-top: 25px;
      text-align: right;
      font-size: 11px;
      font-weight: 400;
      color: var(--color-black);
    }

    @media only screen and (max-width: 768px) {
      .annotation-text {
        margin-top: -11px;
        font-size: 12px;
      }
    }

    .grid-annotation {
      color: var(--color-navy-blue);
    }

    @media only screen and (max-width: 768px) {
      .grid-annotation {
        position: absolute;
        right: -1.73vw;
        bottom: 0;
        margin-top: 0;
        font-size: 2.13vw;
        line-height: 1.5;
      }
    }


    .annotation-text-02 {
      margin-top: 10px;
      margin-right: 40px;
    }

    @media only screen and (max-width: 768px) {
      .annotation-text-02 {
        margin-top: 10px;
        margin-right: 20px;
        font-size: 14px;
        letter-spacing: 0.02em;
        line-height: 1.4;
      }
    }

    .section-percent-list {
      margin-block: 15px;
      margin-inline: auto;
      display: grid;
      grid-template-columns: repeat(2,1fr);
      grid-row-gap: 10px;
      max-width: 500px;
    }

    @media only screen and (max-width: 768px) {
      .section-percent-list {
        margin-block: 4vw;
        max-width: 85.3vw;
        grid-row-gap: 1.33vw;
      }
    }

    .section-percent-list li {
      font-size: 20px;
      font-weight: bold;
      color: var(--color-deep-blue-02);
    }

    @media only screen and (max-width: 768px) {
      .section-percent-list li {
        font-size: 3.33vw;
      }
    }

    .annotation-list {
      margin-top: 20px;
      margin-left: 30px;
      line-height: 1.2;
      font-weight: 400;
    }

    @media only screen and (max-width: 768px) {
      .annotation-list {
        margin-top: 4vw;
        margin-left: 0;
      }
    }

    .annotation-list dt {
      font-size: 10px;
      font-weight: 400;
      text-indent: -1em;
      padding-left: 1em;
      line-height: 1.5;
      color: var(--color-light-gray);
    }

    @media only screen and (max-width: 768px) {
      .annotation-list dt {
        font-size: 2.26vw;
      }
    }

    .annotation-list dd {
      font-size: 10px;
      font-weight: 400;
      line-height: 1.5;
      color: var(--color-light-gray);
    }

    @media only screen and (max-width: 768px) {
      .annotation-list dd {
        font-size: 2.13vw;
      }
    }
    

    .ingenuity {
      position: relative;
      background-color: var(--color-white);
      border-bottom: solid min(0.55vw,6px) var(--color-deep-blue-04);

      &::after {
        position: absolute;
        content: '';
        background-image: url(../img/mikaku/bg_ingenuity_lg.png);
        width: min(100vw, 1080px);
        height: min(8.33vw,90px);
        background-size: 100% 100%;
        background-repeat: no-repeat;
        background-position: center bottom;
        bottom: max(-8.33vw,-90px);
        left: 50%;
        transform: translateX(-50%);
      }
    }

    @media only screen and (max-width: 768px) {
      .ingenuity {
        padding-block: 2.66vw 6.6vw;
        background-color: var(--color-white);
        border-bottom: solid min(1.06vw,4px) var(--color-deep-blue-02);

        &::after {
          background-image: url(../img/mikaku/bg_ingenuity_sm.png);
          width: 100%;
          height: 8vw;
          bottom: -8vw;
        }
      }
    }

    .ingenuity-inner {
      padding-block: 50px;
    }

    @media only screen and (max-width: 768px) {
      .ingenuity-inner {
        padding-block: 0;
        padding-inline: 10.6vw;
      }
    }

    .doctor-content {
      display: grid;
      grid-template-areas: 'img text''img info';
      margin-top: 40px;
      margin-inline: auto;
      grid-column-gap: 30px;
      grid-template-columns: 200px 1fr;
      max-width: 730px;
    }

    @media only screen and (max-width: 768px) {
      .doctor-content {
        grid-template-columns: auto 20vw 29.3vw;
        grid-template-rows: auto;
        margin-top: 0;
        grid-row-gap: 2.6vw;
        grid-column-gap: 0;
      }
    }

    .doctor-content-img {
      margin-top: 15px;
      grid-area: img;
      width: 100%;
      max-width: 200px;
      height: fit-content;
    }

    @media only screen and (max-width: 768px) {
      .doctor-content-img {
        margin-top: 0;
        margin-inline: auto;
        width: 20vw;
        max-width: none;
        grid-area: 1 / 2 / 4 / 3;
      }
    }

    .doctor-content-text {
      grid-area: text;
    }

    @media only screen and (max-width: 768px) {
      .doctor-content-text {
        grid-area: 4 / 1 / 7 / 4;
      }
    }

    .doctor-content-text p {
      margin: 0;
      font-size: 16px;
      font-weight: 500;
      line-height: 2;
    }

    @media only screen and (max-width: 768px) {
      .doctor-content-text p {
        font-size: 2.8vw;
        line-height: 1.7;
        letter-spacing: 0.02em;
      }
    }

    .doctor-content-info {
      grid-area: info;
      display: flex;
      align-items: center;
      gap: 10px;
    }

    @media only screen and (max-width: 768px) {
      .doctor-content-info {
        grid-area: 3 / 3 / 4 / 4;
        display: block;
        height: fit-content;
        margin-left: 2.4vw;
      }
    }

    .doctor-content-employment {
      margin: 0;
      font-weight: 500;
      font-size: 19px;
      color: var(--color-navy-blue);
    }

    @media only screen and (max-width: 768px) {
      .doctor-content-employment {
        font-size: 2.1vw;
      }
    }

    .doctor-content-name {
      margin: 0;
      font-weight: 500;
      font-size: 20px;
      color: var(--color-navy-blue);
    }

    @media only screen and (max-width: 768px) {
      .doctor-content-name {
        font-size: 3.2vw;
      }
    }

    .mikaku-doctor-content {
      margin-top: 40px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-doctor-content {
        margin-top: 4vw;
        margin-bottom: -48vw;
      }
    }

    .mikaku-doctor-comment {
      display: grid;
      grid-template-columns: min(23.6vw,255px) min(26.85vw,290px) min(23.6vw,255px);
      grid-column-gap: 25px;
      max-width: 850px;
      margin-inline: auto;
      justify-content: center;
      align-items: center;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-doctor-comment {
        display: block;
        position: relative;
        grid-row-gap: 19px;
      }
    }

    .doctor-content-lead {
      margin-top: 20px;
      margin-bottom: 0;
      margin-inline: auto;
      max-width: 690px;
      width: 100%;
    }

    @media only screen and (max-width: 768px) {
      .doctor-content-lead {
        margin-top: 10px;
        max-width: none;
        width: 74.6vw;
      }
    }

    .mikaku-content-child {
      position: relative;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-child {

        &:nth-of-type(1) {
          width: 42.6vw;
        }

        &:nth-of-type(2) {
          top: 0;
          left: 16vw;
          width: 45.3vw;
        }

        &:nth-of-type(3) {
          top: -76.2vw;
          right: -48vw;
          width: 37.3vw;
        }
      }
    }

    .mikaku-img-01 {
      position: absolute;
      max-width: 100px;
      width: 9.25vw;
      bottom: -60px;
      right: 5px;
    }

    .mikaku-img-02 {
      position: absolute;
      max-width: 110px;
      width: 10.1vw;
      bottom: -55px;
      right: 0;
    }

    .mikaku-img-03 {
      position: absolute;
      max-width: 100px;
      width: 9.25vw;
      bottom: -35px;
      right: 6px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-img-01 {
        max-width:none;
        width: 17.3vw;
        top: 0;
        bottom: auto;
        right: -11.4vw;
      }
    }

    @media only screen and (max-width: 768px) {
      .mikaku-img-02 {
        max-width:none;
        width: 17.3vw;
        bottom: -3.73vw;
        right: 36.2vw;
      }
    }

    @media only screen and (max-width: 768px) {
      .mikaku-img-03 {
        max-width: none;
        width: 17.3vw;
        bottom: -11.7vw;
        right: -3.46vw;
      }
    }

    .mikaku-patient-comment {
      margin-inline: auto;
      max-width: 830px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-patient-comment {
        max-width: none;
        width: 84.5vw;
      }
    }

    .mikaku-patient-comment-01 {
      margin-top: 30px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-patient-comment-01 {
        margin-top: 5.3vw;
        margin-left: 0;
      }
    }

    .mikaku-patient-comment-02 {
      margin-top: -15px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-patient-comment-02 {
        margin-top: 4vw;
        margin-left: auto;
        margin-right: 0;
      }
    }

    .attempt {
      padding-block: 65px 120px;
    }

    @media only screen and (max-width: 768px) {
      .attempt {
        padding-block: 2vw 8vw;
      }
    }

    .customer-voice {
      margin-top: 100px;
    }

    @media only screen and (max-width: 768px) {
      .customer-voice {
        margin-top: 13.3vw;
      }
    }

    .customer-voice-list {
      display: flex;
      flex-direction: column;
      margin-top: 30px;
      max-width: 830px;
      gap: 35px;
    }

    @media only screen and (max-width: 768px) {
      .customer-voice-list {
        padding: 0;
        margin-top: 2.6vw;
        flex-direction: column-reverse;
        gap: 3.59vw;
        max-width: 88vw;
      }
    }

    .customer-voice-list-item {
      margin-top: 0;
      font-size: 17px;
      font-weight: 500;
      color: var(--color-navy-blue);
    }

    @media only screen and (max-width: 768px) {
      .customer-voice-list-item {
        font-size: 2.5vw;
      }
    }

    .mikaku-content {
      margin-top: 70px;
      margin-inline: auto;
      background-image: url(../img/mikaku/bg_attempt_lg.png);
      background-size: 100% 100%;
      max-width: 900px;
      padding-block: 70px 40px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content {
        margin-top: 7.33vw;
        padding-block: 6vw;
        background-image: url(../img/mikaku/bg_attempt_sm.png);
      }
    }


    .mikaku-content-head {
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-head {

      }
    }

    .mikaku-content-head-text {
      display: block;
      margin: 0;
      margin-inline: auto;
      padding-inline: 50px;
      max-width: 810px;
    }


    @media only screen and (max-width: 768px) {
      .mikaku-content-head-text {
        max-width: none;
        width: 73.3vw; 
        padding-inline: 0;
      }
    }


    .mikaku-content-head-text-02 {
      max-width: 820px;
    } 

    @media only screen and (max-width: 768px) {
      .mikaku-content-head-text-02 {
        max-width: none;
        width: 85.3vw;
      } 
    }

    .mikaku-content-inner {
      margin-inline: auto;
      padding: 20px;
      max-width: 730px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-inner {
        padding-block: 0;
        padding-inline: 20px;
      }
    }
    

    .mikaku-content-item-flex {
      margin-top: 40px;
      margin-inline: auto;
      display: flex;
      align-items: flex-start;
      justify-content: center;
      max-width: 530px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-item-flex {
        margin-top: 3.3vw;
        padding-inline: 7.0;
        align-items: center;
        max-width: 69.3vw;
      }
    }

    .mikaku-content-flex {
      margin-top: 70px;
      display: flex;
      justify-content: center;
      gap: 35px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-flex {
        margin-top: 4.6vw;
        padding-inline: 10px;
        gap: 10px;
      }
    }

    .mikaku-content-text {
      margin-top: 15px;
      margin-inline: auto;
      width: fit-content;
    }

    .mikaku-content-text-left {
      margin-inline: 0 auto;
    }


    .mikaku-content-text p {
      margin: 0;
      text-align: center;
      font-size: 16px;
      font-weight: 500;
      line-height: 2.5;
      letter-spacing: 0.1em;
      color: var(--color-deep-blue-03);
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-text p {
        font-size: 2.6vw;
        line-height: 1.6;
      }
    }

    .mikaku-content-img-01 {
      max-width: 320px;
      width: 29.6vw;
      flex-shrink:0;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-img-01 {
        max-width: none;
        width: 100%;
        flex-shrink: inherit;
      }
    }

    .mikaku-content-item-01 {
      max-width: 228px;
      width: 100%;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-item-01 {
        max-width: 27.7vw;
      }
    }

    .mikaku-content-item-02 {
      position: relative;
      max-width: 500px;
      width: 100%;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-item-02 {
        margin-top: 0;
        max-width: 40vw;
      }
    }

    .mikaku-content-img-03 {
      display: block;
      max-width: 320px;
      width: 45.3vw;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-img-03 {
        margin-top: 10px;
        max-width: 30.6vw;
        width: 100%;
      }
    }

    .mikaku-content-img-03-text {
      margin: 0;
      max-width: 295px;
      width: 27.3vw;
    }

    .mikaku-content-img-03-btn {
      margin-top: 15px;
      max-width: 185px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-img-03-btn {
        margin-top: 2vw;
        max-width: 26vw;
      }
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-img-03-text {
        margin-top: 10px;
        max-width: none;
        width: 100%;
      }
    }

    .mikaku-content-item-name {
      position: absolute;
      z-index: 1;
      top: 0;
      width: 100%;
      background-color: var(--color-deep-blue-03);
    }

    .mikaku-content-item-name-text {
      margin:0;
      color: var(--color-white);
      font-size: 15px;
      font-weight: bold;
      text-align: center;
      line-height: 1.3;
      padding: 10px 5px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-content-item-name-text {
        font-size: 2.13vw;
        padding: 1.06vw 0;
      }
    }

    .mikaku-movie-wrap {
      position: relative;
    }

    .mikaku-movie-icon {
      position: absolute;
      display: block;
      top: 55%;
      left: 50%;
      transform: translate(-50%,-50%);
      width: 45px;
    }

    @media only screen and (max-width: 768px) {
      .mikaku-movie-icon {
        width: 5.3vw;
      }
    }

    .credit-text {
      text-align: center;
      font-size: 18px;
      font-weight: 500;
      letter-spacing: 0.02em;
      margin: 0;
      margin-top: 25px;
      padding: 5px 12px;
    }

    @media only screen and (max-width: 768px) {
      .credit-text {
        text-align: left;
        font-size: 2.1vw;
        margin-top: 2.5vw;
        padding-block: 0;
        padding-inline: 10.6vw 0; 
      }
    }


    .life {
      padding-top: 20px;
    }

    @media only screen and (max-width: 768px) {
      .life {
        padding-top: 2.66vw;
      }
    }

    .life-content {
      margin-top: 30px;
      padding: 30px;
      max-width: 900px;
      margin-inline: auto;
      border-radius: 20px;
      background-color: var(--color-light-blue-02);
    }

    @media only screen and (max-width: 768px) {
      .life-content {
        margin-top: 4.26vw;
        padding: 3.33vw;
        max-width: 88vw;
        margin-inline: auto;
        border-radius: 10px;
      }
    }

    .life-content-inner {
      padding-block: 30px 20px;
      border-radius: 20px;
      background-color: var(--color-white);
    }

    @media only screen and (max-width: 768px) {
      .life-content-inner {
        padding-block: 15px 5px;
        padding-inline: 3.33vw;
        border-radius: 10px;
      }
    }

    .mikaku-content-item-small {
      margin-inline: auto;
      max-width: 590px;
    }

    .life-content-img {
      margin-inline: auto;
      max-width: 575px;
    }

    .life-content-text {
      margin-top: 15px;
      margin-inline: auto;
      width: fit-content;
    }

    @media only screen and (max-width: 768px) {
      .life-content-text {
        margin-top: 2.6vw;
      }
    }

    .life-content-text p {
      margin: 0;
      font-size: 22px;
      font-weight: 500;
      line-height:1.6;
    }

    @media only screen and (max-width: 768px) {
      .life-content-text p {
        font-size: 2.6vw;
      }
    }

    .life-content-example {
      margin-top: 35px;
    }

    @media only screen and (max-width: 768px) {
      .life-content-example {
        margin-top: 5.33vw;
        padding: 0;
      }
    }

    .scroll-content-wrap {
      margin-inline: 40px;
    }

    @media only screen and (max-width: 768px) {
      .scroll-content-wrap {
        margin-top: 0;
        margin-inline: 0;
        width: 100%;
        overflow: hidden;
      }
    }

    @media only screen and (max-width: 768px) {
      .scroll-content {
        overflow-x: scroll;
        overflow-y: hidden;
        padding-left: 20px;
      }
    }

    .section-lead-content {
      margin-top: 30px;
    }

    .supporter {
      padding-top: 70px;
    }

    @media only screen and (max-width: 768px) {
      .supporter {
        padding-top: 5.33vw;
      }
    }


    .supporter-title {
      position: relative;
      z-index: 1;
      margin-inline: auto;
      max-width: 450px;
      background-color: var(--color-white);
    }

    @media only screen and (max-width: 768px) {
      .supporter-title {
        max-width: 48vw;
      }
    }

    .supporter-content {
      background-color: var(--color-white);
      padding: 30px 45px;
      border-radius: 20px;
    }

    @media only screen and (max-width: 768px) {
      .supporter-content {
        padding: 5.33vw 6.66vw;
        border-radius: 10px;
      }
    }

    .supporter-content-flex {
      display: flex;
      gap: 35px;
    }

    @media only screen and (max-width: 768px) {
      .supporter-content-flex {
        flex-direction: column;
        gap: 1.33vw;
      }
    }

    .supporter-content-lead {
      margin: 0;
      margin-top: 30px;
      text-align: center;
      font-size: 25px;
      letter-spacing: 0.08em;
      font-weight: bold;
      line-height: 2;
      color: var(--color-deep-blue-01);
    }

    @media only screen and (max-width: 768px) {
      .supporter-content-lead {
        font-size: 3.73vw;
        letter-spacing: 0.0em;
        margin-top: 3.3vw;
        line-height: 1.7;
      }
    }

    .supporter-content-text {
      text-align: center;
      margin-top: 40px;
    }

    @media only screen and (max-width: 768px) {
      .supporter-content-text {
        margin-top: 4.93vw;
      }
    }

    .supporter-content-text p {
      margin: 0;
      margin-top: 30px;
      font-size: 23px;
      letter-spacing: 0.02em;
      font-weight: 500;
      line-height: 1.7;
      color: var(--color-deep-blue-01);

      &:first-of-type {
        margin-top: 0;
      }
    }

    @media only screen and (max-width: 768px) {
      .supporter-content-text p{
        font-size: 2.66vw;
        letter-spacing: 0.05em;
        line-height: 1.6;
        margin-top: 1.33vw;
      }
    }

    .supporter-inner {
      position: relative;
      padding-block: 110px 60px;
      background-color:var(--color-light-blue);

      &::after {
        position: absolute;
        z-index: 0;
        content: '';
        background-image: url(../img/mikaku/bg_supporter_lg.png);
        background-size: 100% 100%;
        width: 100%;
        height: 145px;
        top: -25px;
      }
    }

    @media only screen and (max-width: 768px) {
      .supporter-inner {
        padding-block: 12.6vw 4vw;
  
        &::after {
          background-image: url(../img/mikaku/bg_supporter_sm.png);
          height: 9.3vw;
          top: -0.66vw;
        }
      }
    }

    .logo {
      margin-inline: auto;
      max-width: 260px;
      width: 100%;
    }

    @media only screen and (max-width: 768px) {
      .logo {
        max-width: none;
        width: 29.3vw;
        margin-inline: auto;
      }
    }


    .link-btn-container {
      margin-inline: auto;
      margin-top: 20px;
      display: grid;
      grid-template-columns: repeat(2,1fr);
      gap: 20px;
      max-width: 810px;
    }

    @media only screen and (max-width: 768px) {
      .link-btn-container {
        margin-top: 2.66vw;
        display: grid;
        grid-template-columns: 1fr;
        gap: 1.73vw;
        max-width: 70.6vw;
      }
    }

    .link-btn {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: var(--color-white);
      border: solid 2px var(--color-deep-blue-03);
      border-radius: 10px;
      padding: 9px;
      text-decoration: none;
      width: 100%;
      height: 100%;
    }

    @media only screen and (max-width: 768px) {
      .link-btn {
        padding: 0.6vw;
        border-radius: 5px;
        border-width: 1px;
      }
    }

    .link-btn-text {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      padding-inline: 20px;
      font-size: 16px;
      font-weight: bold;
      color: var(--color-deep-blue-03);
    }

    @media only screen and (max-width: 768px) {
      .link-btn-text {
        padding-inline: 0;
        text-align: center;
        font-size: 2.4vw;
      }
    }

    .link-btn-arrow {

      &::after {
        position: absolute;
        content: '';
        clip-path: polygon(0% 0%, 100% 50%, 0 100%, 0 85%, 70% 50%, 0 15%);
        width: 10px;
        height: 15px;
        background-color: var(--color-deep-blue-03);
        right: 0;
        top: 50%;
        transform: translateY(-50%);
      }
    }

    @media only screen and (max-width: 768px) {
      .link-btn-arrow {

        &::after {
          width: 1.6vw;
          height: 1.6vw;
          right: -3.3vw;
        }
      }
    }

    .supporter-btn {
      position: relative;
      padding-block: 15px;
      background-color: var(--color-deep-blue-01);
      border: solid 2px var(--color-white);
      border-radius: 15px;
    }

    @media only screen and (max-width: 768px) {
      .supporter-btn {
        padding: 2.13vw;
        border-width: 1px;
        border-radius: 8px;
      }
    }

    .supporter-btn-text {
      color: var(--color-white);

      &::after {
        background-color: var(--color-white);
      }
    }

    @media only screen and (max-width: 768px) {
      .supporter-btn-text {
        font-size: 3.2vw;
      }
    }

    .supporter-list {
      margin-top: 30px;
      max-width: 700px;
      margin-inline: auto;
      font-size: 9px;
    }

    @media only screen and (max-width: 768px) {
      .supporter-list {
        margin-top: 4.26vw;
        font-size: 2.13vw;
      }
    }

    .supporter-list li {
      position: relative;
      padding-left: 1em;
      display: flex;
      align-items: flex-start;
      color: var(--color-light-gray);
      font-size: 9px;

      p {
        margin: 0;
        font-size: 9px;
        font-weight: 500;
        line-height: 1.5;
        letter-spacing: 0.05em;
        color: var(--color-light-gray);
      }

      a {
        font-size: 9px;
        font-weight: 500;
        line-height: 1.5;
        letter-spacing: 0.05em;
        color: var(--color-light-gray);
      }

      &::before {
        margin-top: 2px;
        position: absolute;
        content: '';
        background-color: var(--color-light-gray);
        border-radius: 9999px;
        width: 8px;
        height: 8px;
        left: -1px;
      }
    }

    @media only screen and (max-width: 768px) {
      .supporter-list li {
        margin-top: 1.33vw;
        font-size: 2.13vw;
        
        p {
          font-size: 2.13vw;
          letter-spacing: 0;
        }

        a {
          font-size: 2.13vw;
          letter-spacing: 0;
        }

        &::before {
          margin-top: 0.53vw;
          left: -0.26vw;
          width: 2.13vw;
          height: 2.13vw;
        }
      }
    }
    
    .miraito {
      padding-block: 60px 30px;
    }

    @media only screen and (max-width: 768px) {
      .miraito {
        padding-block: 5.33vw;
      }
    }

    .miraito-content-wrapper {
      margin-top: 50px;
      margin-inline: auto;
      max-width: 850px
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-wrapper {
        margin-top: 2.66vw;
        padding-inline: 4.66vw;
      }
    }

    .miraito-content-group {
      display: grid;
      grid-row-gap: 30px;
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-group {
        grid-template-columns: 1fr;
        gap: 2vw;
      }
    }

    .miraito-content {
      position: relative;
      background-color: var(--color-white);
    }

    .miraito-content-01 {
      border: solid 3px var(--color-blue);
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-01 {
        border: solid 2px var(--color-blue);
      }
    }

    .miraito-content-02 {
      border: solid 3px var(--color-deep-blue-02);
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-02 {
        border: solid 2px var(--color-deep-blue-02);
      }
    }

    .miraito-content-head {
      font-size: 25px;
      font-weight: bold;
      font-family: serif;
      letter-spacing: 0.02em;
      background-color: white;
      padding-block: 7px;
      text-align: center;
      margin: 0;
      color:var(--color-white);
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-head {
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 3.33vw;
        line-height: 1.3;
        padding: 0.93vw;
      }
    }

    .miraito-content-head-01 {
      background-color: var(--color-blue);
    }

    .miraito-content-head-02 {
      background-color: var(--color-deep-blue-02);
    }

    .miraito-content-inner {
      padding-block: 15px;
      padding-inline: 30px 20px;
      background-color: var(--color-white);
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-inner {
        height: auto;
        padding: 2vw 6vw 3.33vw;
      }
    }

    .miraito-content-inner-flex {
      display: flex;
      align-items: center;
      gap: 20px;
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-inner-flex {
        display: block;
        align-items: center;
        gap: 20px;
      }
    }

    .miraito-content-text {
      margin: 0;
      margin-top: 15px;
      max-width: 420px;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.02em;
      line-height: 1.8;
      font-feature-settings: "palt";
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-text {
        font-size: 2.4vw;
        line-height: 1.4;
        white-space: normal;
        letter-spacing: 0.02em;
        max-width: none;
      }
    }

    .logo-miraito {
      max-width: 165px;
      width: 100%;
    }

    @media only screen and (max-width: 768px) {
      .logo-miraito {
        margin-inline: auto;
        max-width: none;
        width: 22vw;
      }
    }

    .link-btn-wrap {
      margin-top: 15px;
      max-width: 170px;
      width: 100%;
    }

    @media only screen and (max-width: 768px) {
      .link-btn-wrap {
        margin-top: 2vw;
        margin-inline: auto;
        max-width: 26.6vw;
      }
    }

    .link-btn-miraito-01 {
      border-color: var(--color-blue);

      .link-btn-text {
        color: var(--color-blue);

        &::after {
          background-color: var(--color-blue);
        }
      }
    }

    .link-btn-miraito-02 {
      border-color: var(--color-deep-blue-02);

      .link-btn-text {
        color: var(--color-deep-blue-02);

        &::after {
          background-color: var(--color-deep-blue-02);
        }
      }
    }

    .link-btn-text-miraito {
      font-size: 18px;
    }

    @media only screen and (max-width: 768px) {
      .link-btn-text-miraito {
        font-size: 2.13vw;
      }
    }

    .miraito-content-annotation {
      text-align: left;
      margin-left: 10px;
      line-height: 1.7;
      margin-top: 17px;
      letter-spacing: 0.02em;
      font-feature-settings: "palt";
    }

    @media only screen and (max-width: 768px) {
      .miraito-content-annotation {
        text-align: left;
        margin-left: 0;
        font-size: 2.13vw;
        line-height: 1.6;
        margin-top: 2.26;
        letter-spacing: 0.0;
      }
    }


    .miraito-annotation {
      color: var(--color-deep-blue-02);
      font-weight: 500;
      text-align: right;
      margin-top: 15px;
      font-size: 14px;
    }

    @media only screen and (max-width: 768px) {
      .miraito-annotation {
        margin-top: 0.66vw;
        font-size: 2.13vw;
      }
    }
  }
}

body.is-fixed {
  overflow: hidden;
}

.main {
  img {
    width: 100%;
    height: auto;
  }
}

footer {
  img {
    width:auto;
  }
}

.article-visual {
  padding: 20px 0;
  border-top: 1px solid #e2ecf3;
  background: #fff;
}
@media only screen and (max-width: 768px) {
  .article-visual {
    padding: 0;
  }
}

/* -----------------------------------
  モーダル
----------------------------------- */
body .mfp-container {
  padding: 70px 8px 0;
}
@media only screen and (max-width: 768px) {
  body .mfp-container {
    padding: 0 6px;
  }
}
body .mfp-container .mfp-content .mfp-close {
  top: -52px;
  right: 0;
  width: 42px;
  height: 40.385px;
  font-size: 0;
  line-height: 40.385px;
}
body .mfp-container .mfp-content img.mfp-img {
  padding: 0 0 40px;
}
body .mfp-container .mfp-content .mfp-figure:after {
  background: none;
  box-shadow: none;
}