/* ==========================================================================
   PPT RICH Page - Specific Styles
   ========================================================================== */

.about-hero-title {
  width: calc(550.27vw / var(--p));
}

.about-section.is-reverse {
  width: calc(1101px + var(--pc-gutter) * 2);
}

/* --- Catch --- */
.about-catch {
  padding: 63.2px 0 111.4px;
}

.about-catch-inner {
  max-width: calc(1170px + var(--pc-gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--pc-gutter);
}

.about-catch-inner img {
  width: 100%;
  height: auto;
  display: block;
}

/* --- Section (2-column) --- */
.about-section {
  display: flex;
  align-items: stretch;
  max-width: 100%;
  width: calc(1300px + var(--pc-gutter) * 2);
  padding: 0 var(--pc-gutter);
  margin: 0 auto 158px;
}

.about-section.is-reverse {
  flex-direction: row-reverse;
}

.about-section-media {
  width: 650px;
}

.sect02 .about-section-media {
  width: 500px;
  padding-top: 5px;
}

.about-section-media img {
  width: 100%;
  display: block;
}

/* normal: image left → text right */
.about-section-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 0 0 0 50px;
  gap: 34px;
}

/* reverse: image right → text left */
.about-section.is-reverse .about-section-body {
  padding: 0 50px 0 0;
}

.about-section-heading {
  margin: 0;

  & sup {
    font-size: 12px;
    vertical-align: super;
    font-weight: 400;
  }
}

.about-section-text {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.about-section-text p {
  font-family: var(--font-jp);
  font-size: 18px;
  line-height: 30px;
}

.about-section-diagram {
  padding-top: 28px;
}

.about-section-diagram img {
  max-width: 100%;
  width: var(--pc-width, auto);
  height: auto;
  display: block;
  object-fit: contain;
}

/* --- Feature Image (full-width) --- */
.about-feature {
  width: calc(1101px + var(--pc-gutter) * 2);
  max-width: 100%;
  margin: 0 auto;
  padding: 0 var(--pc-gutter);
}

.about-feature img {
  width: 802.41px;
}

/* --- Highlight --- */
.about-highlight {
  margin-top: -26px;
}

.about-highlight-inner {
  max-width: calc(1170px + var(--pc-gutter) * 2);
  margin: 0 auto;
  padding: 0 var(--pc-gutter);
  display: flex;
  flex-direction: column;
  gap: 43.6px;
}

.about-highlight-caption img {
  width: auto;
  height: 54px;
  display: block;
}

.about-highlight-heading {
  display: flex;
  justify-content: flex-end;
  width: calc(1170px + var(--pc-gutter) * 2);
  max-width: 100%;
  margin: 0 auto;
  padding: 0 var(--pc-gutter);
}

.about-highlight-heading img {
  width: 100%;
  max-width: 822px;
  height: auto;
}

.about-highlight-body {
  gap: 10px;
  max-width: 760px;
  margin-left: auto;
  margin-right: 272px;
}

.about-highlight-body p {
  font-family: var(--font-jp);
  font-size: 18px;
  line-height: 30px;
}

@media screen and (max-width: 1170px) {
  .about-catch {
    padding: calc(63.2vw / var(--p)) 0 calc(111.4vw / var(--p));
  }

  .about-section {
    margin: 0 auto calc(158vw / var(--p));
  }

  .about-highlight-body p {
    font-size: calc(18vw / var(--p));
    line-height: calc(30vw / var(--p));
  }

  .about-section-media {
    width: calc(650vw / var(--p));
  }

  .about-section-text p {
    font-size: calc(18vw / var(--p));
    line-height: calc(30vw / var(--p));
  }

  .about-section-diagram {
    padding-top: calc(28vw / var(--p));
  }
}

/* === スマホ版 === */
@media screen and (max-width: 768px) {
  .about-hero-title {
    width: calc(285.45vw / var(--s));
  }

  /* --- Catch --- */
  .about-catch {
    padding: calc(42.8vw / var(--s)) 0 calc(69.4vw / var(--s));
  }

  .about-catch-inner {
    padding: 0 var(--sp-gutter);
  }

  /* --- Section (2-column → 1-column) --- */
  .about-section {
    flex-direction: column;
    width: 100%;
    padding: 0 var(--sp-gutter);
    margin: 0 auto calc(80vw / var(--s));
    gap: 0;
  }

  .about-section.is-reverse {
    flex-direction: column;
    width: 100%;
  }

  .about-section-media {
    width: 100%;
    order: 1;
  }

  .sect01 {
    padding-right: 0;

    .about-section-heading {
      width: calc(180.42vw / var(--s));

      img {
        width: 100%;
        height: auto;
      }
    }

    .about-section-body {
      padding: 0 var(--sp-gutter) 0 0;
      margin-top: calc(-15vw / var(--s));
    }

    .about-section-media {
      margin-left: auto;
      margin-right: 0;
      width: calc(304vw / var(--s));
    }
  }

  .sect02 {
    margin-bottom: calc(118vw / var(--s));

    .about-section-media {
      order: 2;
      width: 100%;
      padding: 0;
    }

    .about-section-heading {
      text-align: left;

      img {
        width: calc(252.77vw / var(--s));
      }
    }

    .about-section-body {
      order: 1;
      padding: 0;
      margin: 0 0 calc(38.7vw / var(--s));
    }
  }

  .about-section-body {
    order: 2;
    padding: calc(20vw / var(--s)) 0 0 0;
    gap: calc(20vw / var(--s));
  }

  .about-section.is-reverse .about-section-body {
    padding: calc(20vw / var(--s)) 0 0 0;
  }

  .about-section-heading {
    text-align: center;

    & sup {
      font-size: calc(8vw / var(--s));
    }
  }

  .about-section-text {
    gap: calc(13vw / var(--s));
  }

  .about-section-text p {
    font-size: calc(13vw / var(--s));
    line-height: calc(26vw / var(--s));
  }

  .about-section-diagram {
    padding-top: calc(20vw / var(--s));
    text-align: center;
  }

  /* --- Feature Image (full-width) --- */
  .about-feature {
    width: calc(304vw / var(--s));
    margin: 0 auto 0 0;
    padding: 0;
  }

  .about-feature img {
    width: 100%;
  }

  /* --- Highlight --- */
  .about-highlight {
    margin-top: calc(-15vw / var(--s));
  }

  .about-highlight-inner {
    padding: 0 var(--sp-gutter);
    gap: calc(30vw / var(--s));
  }

  .about-highlight-caption img {
    height: calc(35vw / var(--s));
    margin: 0 auto;
  }

  .about-highlight-heading {
    justify-content: flex-start;
    width: 100%;
    padding: 0;
  }

  .about-highlight-heading img {
    width: calc(288.64vw / var(--s));
  }

  .about-highlight-body {
    gap: calc(8vw / var(--s));
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .about-highlight-body p {
    font-size: calc(13vw / var(--s));
    line-height: calc(26vw / var(--s));
  }
}