/* ========================================
   運営情報
   ======================================== */
.company-info {
  position: relative;
  padding-top: 22.5rem;
}

.company-info::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 10.4rem;
  left: var(--sub-edge);
  width: 75.4rem;
  aspect-ratio: 753.8 / 506.2;
  background: url("../images/pages/company/deco.svg") center / contain no-repeat;
}

.company-info__card {
  display: grid;
  grid-template-columns: minmax(0, 60.1rem) minmax(0, 46.8rem);
  align-items: center;
  gap: 3.9rem;
  margin-top: 10.7rem;
  padding: 4.2rem 5.1rem 4.2rem 4.1rem;
  border-radius: 3rem;
  background: #fff;
}

.company-info__photo img {
  width: 100%;
  aspect-ratio: 468 / 352;
  object-fit: cover;
  border-radius: 3rem;
}

/* PARTNER：波の高さは画面幅に比例する（支給SVG 1920 × 282.7）。 */
.company-partner {
  --company-wave: 14.7239583333vw;
  padding-top: 10.8rem;
}

.company-partner__intro {
  position: relative;
  z-index: 1;
  text-align: right;
}

.company-partner__intro p {
  margin-top: 1.4rem;
  font-size: 1.6rem;
  line-height: 2.8rem;
}

.company-partner__band {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: -8rem;
  padding-block: var(--company-wave);
  background:
    url("../images/pages/company/wave-top.svg") center top / 100% auto no-repeat,
    url("../images/pages/company/wave-bottom.svg") center bottom / 100% auto no-repeat,
    linear-gradient(#f2f8fc, #f2f8fc) center / 100% calc(100% - var(--company-wave) * 2 + 2px) no-repeat;
}

.company-partner__content {
  padding: .3rem 5rem 0 var(--sub-content-edge);
}

.company-partner__name {
  margin: 0;
  color: #172c57;
  font-size: 3rem;
  font-weight: 700;
  line-height: 4.8rem;
}

.company-partner__label {
  display: table;
  margin-top: 2.8rem;
  padding: .7rem 2.15rem;
  border-radius: 100vmax;
  background: #0281cd;
  color: #fff;
  font-family: "M PLUS 1p", sans-serif;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.6;
}

.company-partner__text {
  margin-top: 2.6rem;
  color: #000;
  font-size: 1.6rem;
  line-height: 3.2rem;
}

.company-partner__detail {
  margin: 2.9rem 0 0;
  padding-left: 1.5rem;
  border-left: 4px solid #0281cd;
}

.company-partner__detail dt {
  color: #0281cd;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 2rem;
}

.company-partner__detail dd {
  margin: .9rem 0 1.5rem;
  color: #000;
  font-size: 1.6rem;
  line-height: 3.2rem;
}

.company-partner__detail dd:last-child {
  margin-bottom: 0;
}

.company-partner__button {
  width: 31.5rem;
  margin-top: 1.9rem;
  padding: 1rem 4.6rem 1rem 0;
  white-space: nowrap;
}

.company-partner__photo {
  padding-right: var(--sub-edge);
}

.company-partner__photo img {
  width: 100%;
  aspect-ratio: 830 / 454;
  object-fit: cover;
  border-radius: 3rem;
}

/* ADVISOR */
.company-advisor {
  padding-block: 1rem 10rem;
}

.company-advisor__list {
  display: grid;
  gap: 3rem;
  margin-top: 6.8rem;
}

.company-advisor__card {
  display: grid;
  grid-template-columns: 28.6rem minmax(0, 1fr);
  grid-template-areas:
    "photo body"
    "text text";
  gap: 1.7rem 5rem;
  padding: 5rem 5rem 5.1rem;
  border: 1px solid #349ad6;
  border-radius: 1rem;
}

.company-advisor__card:nth-child(even) {
  grid-template-columns: minmax(0, 1fr) 28.6rem;
  grid-template-areas:
    "body photo"
    "text text";
}

.company-advisor__photo {
  grid-area: photo;
  width: 100%;
  aspect-ratio: 286 / 357;
  object-fit: cover;
  border-radius: 3rem;
}

.company-advisor__body {
  grid-area: body;
  min-width: 0;
  color: #172c57;
}

.company-advisor__role {
  font-size: 1.8rem;
  line-height: 2.8rem;
}

.company-advisor__name {
  margin: 3.6rem 0 2.6rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 3rem;
}

.company-advisor__text {
  grid-area: text;
  color: #172c57;
  font-size: 1.6rem;
  line-height: 3.2rem;
}

@media (min-width: 768px) and (max-width: 1056.25px) {
  .company-info__card {
    grid-template-columns: minmax(0, 1fr);
    padding: 3.2rem;
  }

  .company-info__photo {
    width: 60%;
    margin-inline: auto;
  }

  .company-partner__content {
    padding-right: 3.2rem;
  }

  .company-advisor__card,
  .company-advisor__card:nth-child(even) {
    grid-template-columns: 24rem minmax(0, 1fr);
    grid-template-areas:
      "photo body"
      "text text";
    gap: 3.2rem;
    padding: 3.2rem;
  }
}

@media (max-width: 767px) {
  .company-info {
    padding-top: 6rem;
  }

  .company-info::before {
    top: 4rem;
    left: 0;
    width: 70%;
  }

  .company-info__card {
    grid-template-columns: minmax(0, 1fr);
    gap: 2.4rem;
    margin-top: 2.4rem;
    padding: 1.6rem;
    border-radius: 2rem;
  }

  .company-info__photo img {
    border-radius: 1.5rem;
  }

  .company-partner {
    padding-top: 8rem;
  }

  .company-partner__intro p {
    font-size: 1.5rem;
    line-height: 1.9;
  }

  .company-partner__band {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
    margin-top: 1.6rem;
    padding-inline: 3.8461538462vw;
    padding-block: calc(var(--company-wave) + 1rem);
  }

  .company-partner__content {
    padding: 0;
  }

  .company-partner__photo {
    order: -1;
    padding: 0;
  }

  .company-partner__photo img {
    border-radius: 1.5rem;
  }

  .company-partner__name {
    font-size: 2.2rem;
    line-height: 1.5;
  }

  .company-partner__label {
    padding: .4rem 1.8rem;
    font-size: 1.5rem;
  }

  .company-partner__text {
    margin-top: 1.6rem;
    font-size: 1.5rem;
    line-height: 2;
  }

  .company-partner__detail dd {
    font-size: 1.5rem;
    line-height: 2;
  }

  .company-partner__button {
    width: 32rem;
    max-width: 100%;
    margin-inline: auto;
  }

  .company-advisor {
    padding-block: 8rem;
  }

  .company-advisor__list {
    gap: 2rem;
    margin-top: 2.4rem;
  }

  .company-advisor__card,
  .company-advisor__card:nth-child(even) {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 2rem 1.5rem;
  }

  .company-advisor__photo {
    width: 60%;
    margin-inline: auto;
    border-radius: 1.5rem;
  }

  .company-advisor__role {
    font-size: 1.4rem;
    line-height: 1.7;
  }

  .company-advisor__sep {
    display: none;
  }

  .company-advisor__role-part {
    display: block;
  }

  .company-advisor__name {
    margin: .8rem 0 1.2rem;
    font-size: 1.8rem;
    line-height: 1.5;
  }

  .company-advisor__text {
    font-size: 1.5rem;
    line-height: 2;
  }
}

/* XDのドロップシャドウ（X0 Y0 ぼかし5px 黒16%） */
.company-info__card {
  box-shadow: 0 0 5px rgb(0 0 0 / 16%);
}
