.p-topHero {
  padding-block: var(--spc-40) var(--spc-16);
  @media (max-width: 834px) {
    padding-block: var(--spc-12) var(--spc-4);
  }
  .p-topHero-inner {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    grid-template-areas: "title aside" "result result";
    @media (max-width: 1080px) {
      grid-template-columns: auto;
      grid-template-rows: auto auto auto;
      grid-template-areas: "title" "result" "aside";
      row-gap: var(--spc-6);
    }
    & > .g-title {
      grid-area: title;
    }
    & > .g-aside {
      grid-area: aside;
      position: relative;
      padding-right: var(--spc-4);
      @media (max-width: 1080px) {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        column-gap: var(--spc-6);
        row-gap: var(--spc-3);
        padding-right: 0;
      }
      .g-aside-head {
        img {
          & + * {
            margin-top: var(--spc-3);
          }
        }
        & + * {
          margin-top: var(--spc-3);
          @media (max-width: 1080px) {
            margin-top: 0;
          }
        }
      }
    }
    & > .g-result {
      grid-area: result;
      margin-top: var(--spc-8);
      @media (max-width: 1080px) {
        margin-top: 0;
      }
      img {
        border-radius: var(--spc-4);
      }
    }
  }
  .p-topHero__subtitle {
    font-weight: var(--fw-bold);
    span {
      color: var(--c-sma-blue);
    }
    & + * {
      margin-top: var(--spc-2);
    }
  }
  .p-topHero__bg {
    position: absolute;
    inset: -25%;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1;
  }
  .p-topHero__nonnameFigure,
  .p-topHero__nonnameDesc,
  .p-topHero__companyList {
    position: relative;
  }
  .p-topHero__nonnameFigure {
    width: 16rem;
    @media (max-width: 834px) {
      width: 10.8rem;
    }
  }
  .p-topHero__nonnameDesc {
    font-weight: var(--fw-bold);
    img {
      display: inline-block;
      width: 2.4em;
      margin-inline: var(--spc-1);
      vertical-align: text-bottom;
      transform: translateY(-.15em);
    }
  }
  .p-topHero__companyList {
    max-width: 36rem;
    border-radius: 1.2rem;
    background-color: rgba(var(--c-white-rgb), .95);
    backdrop-filter: blur(.4rem);
    box-shadow: 0 0 .8rem rgba(var(--c-black-rgb), .1);
    overflow: hidden;
  }
}

.p-topSection {
  padding-block: var(--spc-16);
  @media (max-width: 834px) {
    padding-block: var(--spc-8);
  }
  .p-topSection-head {
    & + * {
      margin-top: var(--spc-6);
      @media (max-width: 834px) {
        margin-top: var(--spc-3);
      }
    }
  }
  .p-topSection__subtitle {
    font-weight: var(--fw-bold);
    color: var(--c-sma-blue);
    & + * {
      margin-top: var(--spc-1);
    }
  }
}

.p-topAbout {
  background-color: var(--c-black-100);
  .p-topAbout-content {
    display: flex;
    flex-wrap: wrap;
    row-gap: var(--spc-2);
    & > * {
      width: 100%;
    }
  }
}

.p-topAboutSection,
.p-topAboutComparison {
  padding: var(--spc-6);
  border-radius: 2.4rem;
  background-color: var(--c-white);
  @media (max-width: 834px) {
    border-radius: 1.2rem;
  }
  @media (max-width: 520px) {
    padding: var(--spc-4);
  }
  .p-topAboutSection__title,
  .p-topAboutComparison__title {
    span {
      color: var(--c-sma-blue);
    }
    & + * {
      margin-top: var(--spc-2);
    }
  }
  .p-topAboutSection__description,
  .p-topAboutComparison__description {
    & + * {
      margin-top: var(--spc-1);
    }
    & > span {
      color: var(--c-sma-blue);
      span {
        display: inline-block;
        position: relative;
        margin-top: .2em;
        &:after {
          content: "";
          position: absolute;
          inset: -.2em 0 auto 0;
          width: .25em;
          height: .25em;
          margin: auto;
          border-radius: 100%;
          background-color: var(--c-sma-blue);
          @media (max-width: 834px) {
            inset: -.15em 0 auto 0;
          }
        }
      }
    }
  }
}

.p-topAboutSection {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: var(--spc-12);
  row-gap: var(--spc-6);
  @media (max-width: 834px) {
    column-gap: var(--spc-6);
    row-gap: var(--spc-3);
  }
  .p-topAboutSection-head {
    @media (max-width: 520px) {
      margin-inline: auto;
    }
  }
  .p-topAboutSection-content {
    flex-grow: 1;
    @media (max-width: 1080px) {
      flex: 1;
    }
    @media (max-width: 520px) {
      flex: none;
      width: 100%;
    }
  }
  .p-topAboutSection-bottom {
    @media (max-width: 1080px) {
      flex: 0 0 100%;
    }
  }
  .p-topAboutSection__thumb {
    width: 22rem;
    @media (max-width: 834px) {
      width: 12rem;
    }
  }
  .p-topAboutSection__title {
    @media (max-width: 520px) {
      text-align: center;
    }
  }
  .p-topAboutSection__caption {
    color: var(--c-black-600);
    br {
      @media (max-width: 834px) {
        display: none;
      }
    }
  }
  .p-topAboutSection__points {
    width: 26.4rem;
    @media (max-width: 1080px) {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--spc-3);
      width: 100%;
    }
    @media (max-width: 834px) {
      gap: var(--spc-2);
    }
    & > li {
      padding: var(--spc-4) var(--spc-8);
      border: solid .1rem var(--c-sma-blue);
      border-radius: var(--spc-40);
      font-weight: var(--fw-bold);
      color: var(--c-sma-blue);
      @media (max-width: 834px) {
        padding: var(--spc-2) var(--spc-4);
      }
      br {
        @media (max-width: 1080px) {
          display: none;
        }
      }
      & + li {
        margin-top: var(--spc-3);
        @media (max-width: 1080px) {
          margin-top: 0;
        }
      }
    }
  }
  .p-topAboutSection__description {
    font-weight: var(--fw-bold);
    br {
      @media (max-width: 1080px) {
        display: none;
      }
    }
  } 
}

.p-topAboutComparison {
  .p-topAboutComparison-head {
    & + * {
      margin-top: var(--spc-6);
      @media (max-width: 520px) {
        margin-top: var(--spc-4);
      }
    }
  }
  .p-topAboutComparison__title,
  .p-topAboutComparison__description {
    text-align: center;
  }
  .p-topAboutComparison__description {
    font-weight: var(--fw-bold);
  }
}

.p-topAboutComparisonContents {
  .p-topAboutComparisonContents-head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    & > .g-head {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: var(--spc-5);
      border-bottom: solid .2rem var(--c-black-300);
      @media (max-width: 834px) {
        padding: var(--spc-3);
        border-bottom: none;
      }
      h4 {
        color: var(--c-black-600);
        img {
          max-width: 16rem;
          @media (max-width: 834px) {
            max-width: 12rem;
          }
        }
      }
      &.-sma {
        border: solid .2rem var(--c-black);
        border-radius: 1.6rem 1.6rem 0 0;
        @media (max-width: 834px) {
          border-bottom: none;
          border-radius: .8rem .8rem 0 0;
        }
      }
    }
  }
  .p-topAboutComparisonContents__section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "contentMa content";
    position: relative;
    @media (max-width: 834px) {
      grid-template-rows: auto auto;
      grid-template-areas: "label label" "contentMa content";
    }
    &:last-of-type {
      & > .g-content {
        &.-sma {
          border-bottom: solid .2rem var(--c-black);
          border-radius: 0 0 1.6rem 1.6rem;
          @media (max-width: 834px) {
            border-radius: 0 0 .8rem .8rem;
          }
        }
      }
    }
    & + .p-topAboutComparisonContents__section {
      &:before {
        content: "";
        position: absolute;
        inset: 0 0 auto .2rem;
        height: .1rem;
        background: repeating-linear-gradient(
          to right,
          var(--c-black-300) 0,
          var(--c-black-300) .3rem,
          transparent .3rem,
          transparent .6rem
        );
        @media (max-width: 834px) {
          display: none;
        }
      }
    }
    & > .g-label {
      grid-area: label;
      align-self: center;
      position: absolute;
      inset: 0;
      width: 9.6rem;
      margin: auto;
      padding: var(--spc-1);
      border: solid .2rem var(--c-black);
      border-radius: 2.4rem;
      font-weight: var(--fw-bold);
      text-align: center;
      background-color: var(--c-sma-blue-light);
      @media (max-width: 834px) {
        position: relative;
        width: 100%;
        border-top: none;
        border-right: none;
        border-bottom: none;
        border-radius: 0;
        background-color: var(--c-black-100);
      }
    }
    & > .g-content {
      grid-area: content;
      display: grid;
      padding: var(--spc-5);
      @media (max-width: 834px) {
        padding: 0;
      }
      h5 {
        align-self: center;
        padding: var(--spc-3) var(--spc-8);
        text-align: center;
        color: var(--c-black-600);
        @media (max-width: 834px) {
          padding: var(--spc-3);
        }
        br {
          @media (max-width: 834px) {
            display: none;
          }
        }
        small {
          display: block;
        }
      }
      &.-sma {
        grid-area: contentMa;
        border-right: solid .2rem var(--c-black);
        border-left: solid .2rem var(--c-black);
        background-color: var(--c-sma-blue);
        h5 {
          border: solid .2rem var(--c-black);
          border-radius: 1.2rem;
          color: var(--c-black);
          background-color: var(--c-white);
          @media (max-width: 834px) {
            border: none;
            color: var(--c-white);
            background-color: transparent;
          }
          span {
            color: var(--c-sma-blue);
            @media (max-width: 834px) {
              color: var(--c-white);
            }
          }
        }
      }
    }
  }
}

.p-topForm {
  background-color: var(--c-sma-blue);
  .p-topForm-head {
    & + * {
      border-top: solid .2rem var(--c-sma-blue-light);
    }
  }
  .p-topForm-content {
    padding: var(--spc-8);
    border: none;
    border-radius: var(--spc-4);
    background-color: var(--c-white);
    h3 {
      margin-top: var(--spc-8);
      padding-bottom: var(--spc-2);
      border-bottom: solid .1rem var(--c-black-100);
      &:first-of-type {
        margin-top: 0;
      }
      & + p {
        margin-top: var(--spc-2);
      }
    }
    h4 {
      margin-top: var(--spc-4);
      color: var(--c-sma-blue);
    }
    section {
      display: flex;
      flex-wrap: wrap;
      gap: var(--spc-2);
      padding-block: var(--spc-4);
      &.-nodevide {
        display: block;
      }
      & + section {
        border-top: solid .1rem var(--c-black-100);
      }
    }
  }
  .p-topForm__subtitle {
    color: var(--c-sma-blue-light);
  }
  .p-topForm__title {
    color: var(--c-white);
  }
  .p-topForm__optional {
    margin-top: var(--spc-4);
    border: solid .1rem var(--c-black-100);
    border-radius: var(--spc-4);
    overflow: hidden;
    .p-topForm__optional-head,
    .p-topForm__optional-content {
      padding-inline: var(--spc-4);
    }
    .p-topForm__optional-head {
      padding-block: var(--spc-4);
      background-color: var(--c-black-100);
    }
    .p-topForm__optional-content {
      padding-top: var(--spc-4);
      h5 {
        margin-top: var(--spc-2);
        padding-top: var(--spc-4);
        border-top: solid .1rem var(--c-black-100);
        &:first-of-type {
          margin-top: 0;
          padding-top: 0;
          border: none;
        }
      }
    }
  }
  .p-topForm__malead {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spc-8);
    margin-top: var(--spc-6);
    padding-top: var(--spc-6);
    padding-inline: var(--spc-6);
    border-top: solid .1rem var(--c-sma-blue-light);
    @media (max-width: 834px) {
      gap: var(--spc-4);
      padding-inline: 0;
    }
    .p-topForm__malead-head {
      width: 16rem;
      @media (max-width: 834px) {
        width: 12rem;
      }
    }
    .p-topForm__malead-content {
      h4 {
        color: var(--c-sma-blue-light);
        br {
          @media (max-width: 834px) {
            display: none;
          }
        }
        & + * {
          margin-top: var(--spc-2);
        }
      }
    }
  }
}

.p-topQa {
  background-color: var(--c-black);
  .p-topQa-content {
    & + * {
      margin-top: var(--spc-6);
    }
  }
  .p-topQa__subtitle {
    color: var(--c-sma-blue-light);
  }
  .p-topQa__title {
    color: var(--c-white);
  }
  .p-topQa__list {
    & > li {
      & + li {
        margin-top: var(--spc-4);
        padding-top: var(--spc-4);
        border-top: solid .1rem var(--c-sma-blue-dark);
      }
      & > section {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: var(--spc-5);
        position: relative;
        padding-block: var(--spc-4);
        font-weight: var(--fw-bold);
        color: var(--c-black-100);
        &:first-of-type {
          &:before {
            content: "質問";
            color: var(--c-sma-blue-light);
          }
        }
        &:last-of-type {
          &:before {
            content: "回答";
            color: var(--c-black);
            background-color: var(--c-sma-blue-light);
          }
          &:after {
            content: "";
            position: absolute;
            inset: 0 0 auto 0;
            height: .1rem;
            background: repeating-linear-gradient(
              to right,
              var(--c-sma-blue-dark) 0,
              var(--c-sma-blue-dark) .3rem,
              transparent .3rem,
              transparent .6rem
            );
          }
        }
        &:before {
          align-self: start;
          padding-inline: var(--spc-4);
          border: solid .1rem var(--c-sma-blue-light);
          font-size: var(--fs-2xs);
          font-weight: var(--fw-bold);
          @media (max-width: 834px) {
            font-size: var(--fs-2xs-sp);
          }
        }
      }
    }
  }
  .p-topQa__contacts {
    padding: var(--spc-6) var(--spc-8);
    border: solid .1rem var(--c-sma-blue-dark);
    border-radius: 1.6rem;
    @media (max-width: 834px) {
      padding: var(--spc-3) var(--spc-4);
      border-radius: 1.2rem;
    }
    h4 {
      color: var(--c-sma-blue-dark);
      & + * {
        margin-top: var(--spc-3);
      }
    }
  }
}
