/* ============================================================
   ナヨセルとは（NAYOSEL_about / NAYOSEL_about_SP 準拠）
   ============================================================ */

.pc-only-img { display: block; }
.sp-only-img { display: none; }

/* ---------- 仕組み ---------- */
.mechanism { padding: 118px 0 0; }
.mechanism__card {
  margin: 66px auto 0;
  max-width: 1200px;
  background: #fff;
  border-radius: 20px;
  padding: 30px;
  box-shadow: 0 10px 15px rgba(27, 53, 146, 0.2);
}
.mechanism__card img { margin: 0 auto; }

/* ---------- 主な機能（PRINCIPLE） ---------- */
.principles {
  margin-top: 118px;
  padding: 88px 0 130px;
  background: linear-gradient(180deg, #f1f5f4 0, var(--bg-card) 238px, var(--bg-card) calc(100% - 238px), #f1f5f4 100%);
}
.principles__grid { margin-top: 74px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.principles__card {
  position: relative;
  background: #fff;
  border-radius: 20px;
  padding: 60px 28px 40px;
  box-shadow: 0 10px 15px rgba(27, 53, 146, 0.2);
  text-align: center;
}
.principles__badge {
  position: absolute;
  top: 0;
  left: 0;
  width: 126px;
  height: 40px;
  border-radius: 20px 0 20px 0;
  background: var(--orange);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.02em;
}
.principles__icon { margin: 0 auto; width: 324px; max-width: 100%; }
.principles__ttl { margin-top: 36px; font-size: 23px; font-weight: 700; line-height: 1.5; letter-spacing: 0.02em; }
.principles__txt { margin-top: 22px; font-size: 15px; font-weight: 500; text-align: left; line-height: 2.0; }

/* ---------- Passworkと同じ思想 ---------- */
.heritage {
  padding: 120px 0 40px;
  background: linear-gradient(180deg, #f1f5f4 0, #ffffff 238px, #ffffff 100%);
}
.heritage__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 86px;
}
.heritage__mascot { flex: 0 0 auto; width: 399px; }
.heritage__ttl { font-size: 44px; font-weight: 700; letter-spacing: 0.15em; line-height: 54px; }
.heritage__txt { margin-top: 48px; font-size: 16px; font-weight: 500; letter-spacing: 0.12em; line-height: 33px; }
.heritage__btn {
  margin-top: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 275px;
  height: 50px;
  border-radius: 100px;
  background: var(--ink);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  box-shadow: 0 6px 5px rgba(27, 53, 146, 0.15);
  transition: 0.2s;
}
.heritage__btn:hover { opacity: 0.85; transform: translateY(-1px); }
.heritage__btn-arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent #fff;
}

/* ============================================================
   SP
   ============================================================ */
@media (max-width: 768px) {
  .pc-only-img { display: none; }
  .sp-only-img { display: block; }

  .c-ttl { font-size: 24px; line-height: 36px; }
  .c-lead { margin-top: 24px; padding: 0 4px; font-size: 14px; line-height: 28px; text-align: left; }

  .mechanism { padding: 64px 0 0; }
  .mechanism__card { margin-top: 36px; padding: 24px 20px; }
  .mechanism__card img { max-width: 275px; }

  .principles { margin-top: 70px; padding: 60px 0 80px; }
  .principles__grid { margin-top: 44px; grid-template-columns: 1fr; gap: 36px; }
  .principles__card { padding: 64px 24px 36px; }
  .principles__ttl { font-size: 18px; }
  .principles__txt { margin-top: 16px; line-height: 1.9; }

  .heritage { padding: 70px 0 90px; }
  /* XD SP: 見出し→画像→テキスト→ボタンの順（PCと逆） */
  .heritage__inner { flex-direction: column; gap: 32px; padding: 0 24px; }
  .heritage__body { display: contents; }
  .heritage__ttl { order: 1; font-size: 24px; line-height: 36px; text-align: center; }
  .heritage__mascot { order: 2; width: 300px; max-width: 80%; margin: 0 auto; }
  .heritage__txt { order: 3; margin-top: 0; font-size: 14px; line-height: 28px; }
  .heritage__btn { order: 4; display: flex; margin: 8px auto 0; width: 315px; max-width: 100%; height: 60px; }
}
