/* ===== static/ 配下 共通インラインCSS外部化 (2026-06) ===== */

/* レイアウト */
.sp-wrap-sm  { max-width: 800px;  padding: 48px 20px; }
.sp-wrap-md  { max-width: 920px;  margin: 32px auto; padding: 0 20px; }
.sp-wrap-lg  { max-width: 720px;  margin: 40px auto; padding: 0 16px 60px; }
.sp-mb-lg    { margin-bottom: 36px; }
.sp-mb-md    { margin-bottom: 24px; }
.sp-mb-sm    { margin-top: 16px; }
.sp-mt-lg    { margin-top: 32px; }

/* タイトル */
.sp-page-title  { font-size: 28px; margin-bottom: 24px; }
.sp-page-title2 { font-size: 28px; margin: 0 0 12px; }
.sp-page-title3 { font-size: 28px; font-weight: 800; margin: 0 0 10px; }
.sp-page-title4 { font-size: 26px; font-weight: 800; margin: 0 0 14px; }
.sp-section-h2  { font-size: 20px; border-bottom: 2px solid var(--color-primary); padding-bottom: 6px; margin-bottom: 18px; }
.sp-section-h3  { font-size: 18px; margin-top: 24px; }
.sp-section-h3b { font-size: 18px; margin: 0 0 14px; }
.sp-section-h4  { font-size: 16px; margin: 18px 0 10px; }
.sp-section-h4b { font-size: 16px; margin: 0 0 12px; }
.sp-section-h4c { margin: 0 0 10px; font-size: 16px; }

/* 本文 */
.sp-body      { line-height: 1.9; }
.sp-body-sub  { font-size: 13px; color: var(--color-text-sub); margin-bottom: 16px; }
.sp-body-gray { font-size: 15px; color: #6b7280; line-height: 1.7; margin: 0; }
.sp-body-dark { font-size: 15px; color: #374151; line-height: 1.9; margin: 0 0 32px; }
.sp-indent    { padding-left: 20px; }
.sp-list      { margin: 0; padding-left: 20px; font-size: 14px; line-height: 2; }
.sp-footer-note { margin-top: 32px; font-size: 12px; color: var(--color-text-muted); }

/* お問い合わせ */
.sp-contact-success { width: 80px; height: 80px; margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; background: #f0fdf4; border-radius: 50%; color: #22c55e; }
.sp-contact-center  { text-align: center; padding: 40px 0; }
.sp-contact-center-mt { text-align: center; margin-top: 24px; }
.sp-contact-input { width: 100%; font-size: 16px; padding: 14px; }
.sp-contact-error { margin-bottom: 24px; padding: 16px 20px; background: #fef2f2; border: 2px solid #dc2626; border-left: 6px solid #dc2626; border-radius: 8px; }

/* NDA・申請 */
.sp-checkbox-mt  { margin-top: 3px; flex-shrink: 0; accent-color: var(--color-primary, #1565d8); }

.sp-soft-box  { background: var(--color-bg-soft); border-radius: 8px; padding: 16px 20px; margin-top: 20px; }
.sp-eyebrow   { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-primary); margin-bottom: 8px; }
.sp-info-box  { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: 16px 20px; margin-bottom: 24px; }
.sp-info-text { font-size: 14px; color: #1e40af; }
.sp-lead      { color: var(--color-text-sub); margin-bottom: 32px; line-height: 1.8; }
.sp-cta-box   { background: var(--color-primary-pale); border-radius: 12px; padding: 32px; margin-bottom: 24px; }
.sp-soft-card { background: var(--color-bg-soft); border-radius: 12px; padding: 32px; }
.sp-warn-box  { background: #fff8e1; padding: 12px; border-left: 4px solid #ffc107; border-radius: 4px; font-size: 13px; }

.sp-soft-box-lg   { background: var(--color-bg-soft); border-radius: 8px; padding: 20px 24px; margin-top: 20px; }
.sp-eyebrow-sm    { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: var(--color-primary); margin-bottom: 8px; }
.sp-info-box-lg   { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 10px; padding: 20px 24px; margin-bottom: 24px; }
.sp-check-label   { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.sp-check-text    { font-size: 14px; color: #374151; line-height: 1.6; }
.sp-cta-box-center{ background: var(--color-primary-pale); border-radius: 12px; padding: 32px; text-align: center; margin-top: 48px; }
.sp-soft-card-sm  { background: var(--color-bg-soft); border-radius: 12px; padding: 28px 32px; }
.sp-warn-box-mt   { background: #fff8e1; padding: 12px; border-left: 4px solid #ffc107; border-radius: 4px; font-size: 13px; margin-top: 8px; }

.sp-soft-center   { background: var(--color-bg-soft); border-radius: 8px; padding: 20px 24px; margin-top: 28px; text-align: center; }
.sp-eyebrow-up    { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: var(--color-primary, #1565d8); text-transform: uppercase; margin-bottom: 8px; }
.sp-info-row      { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 10px; padding: 16px 20px; margin-bottom: 32px; display: flex; align-items: center; gap: 12px; }
.sp-cta-sm        { background: var(--color-primary-pale); border-radius: 12px; padding: 24px 28px; margin-bottom: 32px; }
.sp-soft-center-lg{ background: var(--color-bg-soft); border-radius: 12px; padding: 24px 28px; margin-bottom: 32px; text-align: center; }
.sp-warn-bare     { background: #fff8e1; padding: 12px; border-left: 4px solid #ffc107; border-radius: 4px; }

/* 共通：タイトル上余白・ボタン下余白 */
.sp-wrap-sm,
.sp-wrap-md,
.sp-wrap-lg { padding-top: 40px; }

.sp-submit-wrap { margin-top: 24px; margin-bottom: 40px; }
