/* WordStock 図解共通スタイル v1.3.0 */
.diagram-wrapper { margin: 2em 0; padding: 1.5em; background: #f8f9fa; border-radius: 8px; }
.diagram-title { font-weight: bold; font-size: 1.1em; color: #0e2a47; margin-bottom: 1em; padding-bottom: 0.5em; border-bottom: 2px solid #0e2a47; }

/* 2列対比レイアウト */
.diagram-compare { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 1em; width: 100%; box-sizing: border-box; }
@media (max-width: 600px) { .diagram-compare { grid-template-columns: 1fr !important; } }

/* ボックス */
.diagram-box { border: 2px solid #0e2a47; border-radius: 8px; overflow: hidden; background: #fff; min-width: 0; }
.diagram-box--primary { border-color: #0e2a47; }
.diagram-box--secondary { border-color: #d99834; }
.diagram-box--danger { border-color: #D94141; }
.diagram-box__header { background: #0e2a47; color: #fff; padding: 0.75em 1em; font-weight: bold; }
.diagram-box--secondary .diagram-box__header { background: #d99834; }
.diagram-box--danger .diagram-box__header { background: #D94141; }
.diagram-box__content { padding: 1em; text-align: left; }
.diagram-box__content p { margin: 0 0 0.75em; }
.diagram-box__content ul { margin: 0; padding: 0; list-style: none; }
.diagram-box__content li { position: relative; padding-left: 1.2em; margin: 0.4em 0; line-height: 1.5; }
.diagram-box__content li::before { content: "\2022"; position: absolute; left: 0; color: #0e2a47; font-weight: bold; }

/* グリッドレイアウト */
.diagram-grid { display: grid !important; gap: 1em; width: 100%; box-sizing: border-box; }
.diagram-grid--2 { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 1em; width: 100%; box-sizing: border-box; }
.diagram-grid--3 { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 1em; width: 100%; box-sizing: border-box; }
.diagram-grid--4 { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 1em; width: 100%; box-sizing: border-box; }
@media (max-width: 600px) { .diagram-grid--2, .diagram-grid--3, .diagram-grid--4 { grid-template-columns: 1fr !important; } }

/* ステップ（カードスタイル） */
.diagram-step { background-color: #ffffff; border: 2px solid #d1d5db; border-radius: 12px; padding: 1.5em 1em; text-align: center; min-width: 0; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 0; }
.diagram-step__number { width: 48px; height: 48px; background-color: #0e2a47; color: #ffffff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 1.3em; margin: 0 auto 0.75em; box-shadow: 0 2px 6px rgba(14,42,71,0.3); }
.diagram-step__title { font-weight: bold; color: #0e2a47; margin-bottom: 0.5em; font-size: 1.05em; }
.diagram-step__content { font-size: 0.9em; color: #6b7280; line-height: 1.5; }

/* フロー図（横型） */
.diagram-flow { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.75em; }
.diagram-flow__item { background: #0e2a47; color: #fff; padding: 0.75em 1.5em; border-radius: 8px; font-weight: bold; text-align: center; }
.diagram-flow__arrow { font-size: 1.5em; color: #0e2a47; font-weight: bold; display: inline-flex; align-items: center; }

/* 強調パネル */
.diagram-highlight { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border-left: 4px solid #f59e0b; padding: 1.5em; border-radius: 0 8px 8px 0; }
.diagram-highlight__title { font-weight: bold; font-size: 1.1em; margin-bottom: 0.5em; color: #92400e; }
.diagram-highlight__content { line-height: 1.6; color: #78350f; }

/* チェックリスト（後方互換用） */
.diagram-list { display: flex; flex-direction: column; gap: 0.75em; }
.diagram-list__item { display: flex; align-items: center; gap: 1em; background: #fff; padding: 1em 1.25em; border-radius: 10px; border: 1px solid #e5e7eb; box-shadow: 0 2px 4px rgba(0,0,0,0.04); }
.diagram-list__icon { width: 32px; height: 32px; min-width: 32px; background: linear-gradient(135deg, #0e2a47 0%, #1a4a7a 100%); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: bold; box-shadow: 0 2px 6px rgba(14,42,71,0.25); }
.diagram-list__text { flex: 1; font-size: 0.95em; color: #374151; line-height: 1.5; font-weight: 500; }

/* 縦型ステップ（フロー図） */
.diagram-steps-vertical { display: flex; flex-direction: column; gap: 0; width: 100%; max-width: 600px; margin: 0 auto; }
.diagram-step-vertical { display: flex; align-items: flex-start; gap: 1em; padding: 1.25em; background: #ffffff; border: 2px solid #0e2a47; border-radius: 12px; }
.diagram-step-vertical__number { width: 40px; height: 40px; background-color: #0e2a47; color: #ffffff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 1.2em; flex-shrink: 0; }
.diagram-step-vertical__body { flex: 1; min-width: 0; }
.diagram-step-vertical__title { font-weight: bold; color: #0e2a47; font-size: 1.1em; margin-bottom: 0.5em; }
.diagram-step-vertical__content { color: #4b5563; font-size: 0.95em; line-height: 1.6; }
.diagram-step-vertical__content ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.diagram-step-vertical__content li { position: relative; padding-left: 1.2em; margin: 0.3em 0; list-style: none !important; list-style-type: none !important; }
.diagram-step-vertical__content li::before { content: "\2022"; position: absolute; left: 0; color: #0e2a47; }
.diagram-step-vertical__arrow { text-align: center; color: #0e2a47; font-size: 0; padding: 0; margin: 0; line-height: 1; font-family: serif; }
.diagram-step-vertical__arrow::after { content: "\2193"; font-size: 1.5rem; display: block; margin: 1em 0; font-family: serif; }

/* ポイントリスト */
.diagram-points { display: flex; flex-direction: column; gap: 0.75em; }
.diagram-point { display: flex; align-items: flex-start; gap: 1em; background: #fff; padding: 1em 1.25em; margin: 0 0 10px 0; border-radius: 10px; border: 1px solid #e5e7eb; box-shadow: 0 2px 4px rgba(0,0,0,0.04); }
.diagram-point__icon { width: 32px; height: 32px; min-width: 32px; background: linear-gradient(135deg, #0e2a47 0%, #1a4a7a 100%); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: bold; box-shadow: 0 2px 6px rgba(14,42,71,0.25); }
.diagram-point__body { flex: 1; min-width: 0; }
.diagram-point__title { font-weight: bold; color: #0e2a47; font-size: 1em; margin-bottom: 0.25em; }
.diagram-point__description { color: #6b7280; font-size: 0.9em; line-height: 1.5; }

/* 縦型フロー（シンプル） */
.diagram-flow-vertical { display: flex; flex-direction: column; align-items: center; gap: 0.5em; }
.diagram-flow-vertical__item { padding: 0.75em 1.5em; background: #0e2a47; color: #fff; border-radius: 8px; font-weight: 500; text-align: center; min-width: 200px; }
.diagram-flow-vertical__arrow { color: #9ca3af; font-size: 1.5em; font-weight: bold; line-height: 1; }

/* サイクル図（縦型カードスタイル） */
.diagram-cycle { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 0 !important; width: 100%; max-width: 600px; margin: 0 auto; }
.diagram-cycle__item { display: flex; align-items: flex-start; gap: 1em; padding: 1.25em; background: #ffffff; border: 2px solid #0e2a47; border-radius: 12px; width: 100%; box-sizing: border-box; margin: 0 !important; }
.diagram-cycle__number { width: 40px; height: 40px; background-color: #0e2a47; color: #ffffff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 1.2em; flex-shrink: 0; }
.diagram-cycle__content { font-weight: bold; color: #0e2a47; font-size: 1.1em; }
.diagram-cycle__arrow { text-align: center; color: #0e2a47; font-size: 0; padding: 0; margin: 0; line-height: 1; font-family: serif; }
.diagram-cycle__arrow::after { content: "\2193"; font-size: 1.5rem; display: block; margin: 1em 0; font-family: serif; }
.diagram-cycle__return { text-align: center; color: #0e2a47; font-size: 0; padding: 0; margin: 0; line-height: 1; font-family: serif; }
.diagram-cycle__return::after { content: "\21B5"; font-size: 1.5rem; display: block; margin: 1em 0; font-family: serif; }
