/* PLAN専用。中央カラムと既存セクションには影響させない。 */
.plan-section {
  position: relative;
  padding: 52px 8% 44px;
  color: #555;
  background-color: #79b9dc;
  background-image: radial-gradient(circle, #ffffff24 1.8px, transparent 2px);
  background-size: 11px 11px;
}
.plan-heading-wrap { position: relative; margin-bottom: 34px; }
.plan-heading { margin: 0; color: #fff; text-align: center; }
.plan-heading-en { display: block; font: 700 36px/1.15 Arial, Helvetica, sans-serif; letter-spacing: .045em; }
.plan-heading-ja { display: block; margin-top: 2px; font-size: 16px; font-weight: 700; line-height: 1.5; }
.plan-decoration { position: absolute; top: -13px; left: 13%; width: 52px; height: 39px; color: #c9e8f6; transform: rotate(-30deg); }
.plan-cards { display: grid; gap: 24px; }
.plan-card { min-width: 0; overflow: hidden; border-radius: 16px; background: #fff; }
.plan-card-content { padding: 26px 9% 28px; }
.plan-label { position: relative; width: 114px; margin: 0 auto 18px; padding: 5px 8px; border-radius: 999px; background: #75b4da; color: #fff; font-size: 14px; font-weight: 700; line-height: 1.5; text-align: center; }
.plan-label::after { content: ""; position: absolute; top: 100%; left: calc(50% - 5px); border-top: 8px solid #75b4da; border-inline: 5px solid transparent; }
.plan-name { margin: 0 0 4px; color: #555; font-size: 22px; font-weight: 700; line-height: 1.5; text-align: center; letter-spacing: 0; }
.plan-price { display: flex; align-items: baseline; justify-content: center; gap: 3px; margin: 0; color: #555; white-space: nowrap; }
.plan-price-number { font: 700 54px/1.2 Arial, Helvetica, sans-serif; letter-spacing: -.035em; }
.plan-price-unit { font-size: 24px; font-weight: 700; line-height: 1.3; }
.plan-price-note { margin: 4px 0 0; font-size: 14px; line-height: 1.6; text-align: center; }
.plan-notes { margin-top: 12px; font-size: 11px; font-weight: 500; line-height: 1.65; text-align: left; overflow-wrap: anywhere; }
.plan-notes p { margin: 0; }
.plan-notes p + p { margin-top: 5px; }
.plan-notes-homepage { width: 100%; text-align: center; }
.plan-notes-homepage p > span { display: inline-block; white-space: nowrap; }
.plan-description { margin: 18px 0 20px; color: #4a4a4a; font-size: 16px; font-weight: 500; line-height: 1.9; overflow-wrap: anywhere; }
.plan-description-homepage { width: 15em; max-width: 100%; margin-inline: auto; line-height: 1.8; text-align: left; }
.plan-description-homepage .plan-description-sentence,
.plan-description-homepage .plan-description-line { display: block; }
.plan-description-homepage .plan-description-sentence + .plan-description-sentence { margin-top: 8px; }
.plan-description-support { width: 15em; margin-inline: calc((100% - 15em) / 2); text-align: left; }
.plan-description-support .plan-description-sentence,
.plan-description-support .plan-description-line { display: block; }
.plan-description-support .plan-description-line { white-space: nowrap; }
.plan-description-support .plan-description-sentence + .plan-description-sentence { margin-top: 8px; }
.plan-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 0; padding: 0; list-style: none; }
.plan-benefits li { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: 50%; background: #e8f3fa; color: #69aed5; font-size: 14px; font-weight: 600; line-height: 1.4; text-align: center; }
.plan-image { display: block; width: 100%; height: auto; aspect-ratio: 1.35; object-fit: cover; border-radius: 0 0 16px 16px; }
/* 元画像のy=約1185以降の装飾帯を除外し、PC本体まで見せる。 */
.plan-image-homepage { object-position: center 65%; }
.plan-image-support { object-position: 52% center; }
@media (max-width: 359px) {
  .plan-description-homepage { max-width: none; margin-inline: calc((100% - 15em) / 2); }
  .plan-card-content { padding-inline: 8%; }
  .plan-name { font-size: 19px; }
  .plan-price-number { font-size: 45px; }
  .plan-price-unit { font-size: 21px; }
  .plan-benefits { gap: 6px; }
  .plan-benefits li { font-size: 12px; }
}
@media (prefers-reduced-motion: no-preference) {
  .plan-section .sd-reveal-visible { animation-duration: .8s; animation-delay: var(--feature-reveal-delay, 0s); }
}
