/* セキュリティ診断ページ専用（/webdesign/ の webdesign.css に追加する部品のみ） */
.sd-check { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 12px; }
@media (min-width: 768px) { .sd-check { grid-template-columns: 1fr 1fr; } }
.sd-check li { position: relative; padding: 14px 16px 14px 44px; border: 1px solid rgba(127,127,127,.25); border-radius: 6px; line-height: 1.7; }
.sd-check li::before { content: ""; position: absolute; left: 16px; top: 1.15em; width: 14px; height: 8px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }

.sd-points { display: grid; gap: 20px; margin-top: 32px; }
@media (min-width: 900px) { .sd-points { grid-template-columns: repeat(3, 1fr); } }
.sd-point { padding: 24px; border: 1px solid rgba(127,127,127,.25); border-radius: 6px; }
.sd-point h3 { margin: 0 0 10px; font-size: 1.05rem; line-height: 1.6; }
.sd-point p { margin: 0; line-height: 1.8; }
.sd-closing { margin-top: 28px; font-weight: 700; line-height: 1.8; }

.sd-level { display: inline-block; min-width: 2.6em; padding: 0 .5em; border-radius: 3px; font-size: .8125rem; font-weight: 700; text-align: center; border: 1px solid currentColor; }
.sd-level--high { color: #b3261e; }
.sd-level--mid { color: #8a5a00; }

.sd-flow { list-style: none; margin: 32px 0 0; padding: 0; counter-reset: sd-step; display: grid; gap: 16px; }
.sd-flow li { counter-increment: sd-step; position: relative; padding: 18px 20px 18px 64px; border: 1px solid rgba(127,127,127,.25); border-radius: 6px; }
.sd-flow li::before { content: counter(sd-step); position: absolute; left: 20px; top: 18px; width: 30px; height: 30px; border-radius: 50%; border: 1px solid currentColor; display: grid; place-items: center; font-size: .875rem; font-weight: 700; }
.sd-flow h3 { margin: 0 0 6px; font-size: 1rem; }
.sd-flow p { margin: 0; line-height: 1.8; }

.sd-promise { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 0; }
.sd-promise li { padding: 18px 0; border-bottom: 1px solid rgba(127,127,127,.25); }
.sd-promise li:first-child { border-top: 1px solid rgba(127,127,127,.25); }
.sd-promise strong { display: block; margin-bottom: 4px; }
.sd-promise p { margin: 0; line-height: 1.8; }

.sd-note { margin-top: 16px; font-size: .875rem; opacity: .8; line-height: 1.8; }

/* よくあるご質問：回答が文章だけのとき、下の区切り線との間に余白を取る */
#faq .wd-acc-body { padding-bottom: 24px; }
#faq .wd-acc-body p { margin: 0; line-height: 1.9; }

/* AIの節：締めの一文とカードの間 */
#ai .sd-points + .sd-closing { margin-top: 48px; }

/* レポートの例：重要度の列を文字幅ぶんに */
#report .wd-table th { width: 4.5em; white-space: nowrap; text-align: center; }

/* 料金：カード2枚で横幅いっぱいに（スマホは1列） */
#plan .wd-plan-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
#plan .wd-plan { width: auto; max-width: none; }
@media (min-width: 768px) {
  #plan .wd-plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
