/* ====================================================
   ボックスデザイン強制修正CSS
   WordPressのデフォルトCSSによる干渉を上書き
   ==================================================== */

/* ── strength-card ── */
.strengths-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  margin-top: 56px !important;
  max-width: 860px !important;
}
.strength-card {
  background: #FFFFFF !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 32px !important;
  padding: 32px 40px !important;
  border: 1px solid #E8E4D8 !important;
  border-top: none !important;
  position: relative !important;
  box-sizing: border-box !important;
}
.strength-card:first-child { border-top: 1px solid #E8E4D8 !important; }
.strength-number {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 36px !important;
  font-weight: 300 !important;
  color: var(--gold) !important;
  flex-shrink: 0 !important;
  width: 48px !important;
  line-height: 1 !important;
  padding-top: 4px !important;
}
.strength-card-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  flex: 1 !important;
}
.strength-title {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #0A1628 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}
.strength-text {
  font-size: 14px !important;
  line-height: 1.9 !important;
  color: #111111 !important;
  font-weight: 400 !important;
  margin: 0 !important;
}

/* ── persona-card ── */
.persona-grid {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 2px !important;
  margin-top: 56px !important;
  max-width: 1300px !important;
}
.persona-card {
  background: #FAFAFA !important;
  padding: 36px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  gap: 10px !important;
  border: 1px solid #E8E4D8 !important;
  box-sizing: border-box !important;
}
.persona-tag {
  font-size: 9px !important;
  letter-spacing: 3px !important;
  color: var(--gold) !important;
  font-weight: 700 !important;
}
.persona-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #0A1628 !important;
  line-height: 1.5 !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid rgba(201,168,76,0.3) !important;
  width: 100% !important;
  margin: 0 !important;
}
.persona-text {
  font-size: 13px !important;
  line-height: 1.85 !important;
  color: #333 !important;
  margin: 0 !important;
}
.persona-note {
  margin-top: 36px !important;
  padding: 20px 28px !important;
  background: #0A1628 !important;
  display: inline-block !important;
}
.persona-note p { font-size: 14px !important; color: rgba(255,255,255,0.9) !important; font-weight: 500 !important; margin: 0 !important; }

/* ── result-card ── */
.results-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 2px !important;
  margin-top: 56px !important;
  max-width: 1100px !important;
}
.result-card {
  background: #FFFFFF !important;
  padding: 40px 28px !important;
  border: 1px solid #E8E4D8 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  box-sizing: border-box !important;
}
.result-number {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 52px !important;
  font-weight: 300 !important;
  color: #0A1628 !important;
  line-height: 1 !important;
}
.result-number em { font-style: normal !important; color: var(--gold) !important; }
.result-number small { font-size: 18px !important; font-family: 'Zen Kaku Gothic New', sans-serif !important; font-weight: 400 !important; color: #888 !important; }
.result-label { font-size: 13px !important; font-weight: 700 !important; color: #0A1628 !important; letter-spacing: 1px !important; }
.result-bar { height: 3px !important; background: #E8E4D8 !important; border-radius: 2px !important; overflow: hidden !important; }
.result-bar-fill { height: 100% !important; background: var(--gold) !important; border-radius: 2px !important; }
.result-desc { font-size: 13px !important; line-height: 1.8 !important; color: #555 !important; flex: 1 !important; margin: 0 !important; }

/* ── course-card ── */
.pricing-courses {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2px !important;
  max-width: 1100px !important;
  margin-bottom: 16px !important;
}
.course-card {
  background: #FFFFFF !important;
  border: 1px solid #E8E4D8 !important;
  padding: 40px 32px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  box-sizing: border-box !important;
}
.course-tag { font-size: 10px !important; letter-spacing: 3px !important; color: var(--gold) !important; font-weight: 700 !important; }
.course-name { font-family: 'Cormorant Garamond', serif !important; font-size: 28px !important; font-weight: 400 !important; color: #0A1628 !important; line-height: 1.3 !important; padding-bottom: 14px !important; border-bottom: 1px solid rgba(201,168,76,0.3) !important; margin: 0 !important; }
.course-target { font-size: 13px !important; color: #666 !important; line-height: 1.7 !important; margin: 0 !important; }
.course-features { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; flex-direction: column !important; gap: 10px !important; flex: 1 !important; }
.course-features li { font-size: 14px !important; color: #111 !important; padding-left: 18px !important; position: relative !important; line-height: 1.5 !important; }
.course-features li::before { content: '✓' !important; position: absolute !important; left: 0 !important; color: var(--gold) !important; font-weight: 700 !important; }

/* ── pain-item ── */
.pain-list { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; flex-direction: column !important; gap: 2px !important; }
.pain-item { display: flex !important; align-items: center !important; gap: 16px !important; padding: 18px 20px !important; background: #FAFAFA !important; box-sizing: border-box !important; }
.pain-text { font-size: 15px !important; font-weight: 500 !important; color: #111 !important; flex: 1 !important; line-height: 1.5 !important; }
.pain-check { font-size: 18px !important; color: #E05555 !important; font-weight: 700 !important; flex-shrink: 0 !important; }

/* ── faq-item ── */
.faq-accordion { display: flex !important; flex-direction: column !important; gap: 0 !important; margin-top: 48px !important; max-width: 860px !important; }
.faq-item { border: 1px solid #E8E4D8 !important; border-top: none !important; background: #FFFFFF !important; box-sizing: border-box !important; }
.faq-item:first-child { border-top: 1px solid #E8E4D8 !important; }
.faq-header { width: 100% !important; background: none !important; border: none !important; padding: 24px 32px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 20px !important; cursor: pointer !important; text-align: left !important; }
.faq-q { font-size: 15px !important; font-weight: 700 !important; color: #0A1628 !important; line-height: 1.5 !important; flex: 1 !important; }
.faq-toggle { font-size: 24px !important; color: var(--gold) !important; font-weight: 300 !important; flex-shrink: 0 !important; transition: transform 0.3s !important; line-height: 1 !important; }
.faq-body { display: none; padding: 0 32px 24px !important; }
.faq-item.open .faq-body { display: block !important; }
.faq-body p { font-size: 14px !important; line-height: 1.9 !important; color: #333 !important; margin: 0 !important; }

/* ── method-flow-step ── */
.method-flow { display: flex !important; align-items: stretch !important; gap: 0 !important; max-width: 1100px !important; }
.method-flow-step { flex: 1 !important; background: #F9F5EE !important; border: 1px solid rgba(201,168,76,0.3) !important; padding: 36px 28px !important; display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; gap: 12px !important; box-sizing: border-box !important; }
.method-step-label { font-size: 10px !important; letter-spacing: 3px !important; color: var(--gold) !important; font-weight: 700 !important; }
.method-step-title { font-size: 17px !important; font-weight: 700 !important; color: #0A1628 !important; line-height: 1.5 !important; padding-bottom: 12px !important; border-bottom: 1px solid rgba(201,168,76,0.3) !important; width: 100% !important; margin: 0 !important; }
.method-step-text { font-size: 14px !important; line-height: 1.9 !important; color: #111111 !important; font-weight: 400 !important; margin: 0 !important; }

/* ── pain-arrow ── */
.pain-arrow { margin-top: 24px !important; display: flex !important; align-items: center !important; gap: 20px !important; padding: 20px 24px !important; background: #0A1628 !important; border-radius: 4px !important; }
.pain-arrow-line { width: 40px !important; height: 2px !important; background: var(--gold) !important; flex-shrink: 0 !important; }
.pain-arrow-label { font-size: 15px !important; color: white !important; font-weight: 400 !important; line-height: 1.6 !important; }
.pain-arrow-label strong { color: var(--gold) !important; font-weight: 700 !important; font-size: 17px !important; }

/* ── price-zero-banner ── */
.price-zero-banner { display: flex !important; align-items: center !important; gap: 24px !important; padding: 24px 32px !important; background: #0A1628 !important; margin: 40px 0 56px !important; max-width: 760px !important; box-sizing: border-box !important; }
.price-zero-icon { font-family: 'Cormorant Garamond', serif !important; font-size: 40px !important; font-weight: 300 !important; color: var(--gold) !important; flex-shrink: 0 !important; }
.price-zero-text { font-size: 15px !important; color: rgba(255,255,255,0.9) !important; line-height: 1.8 !important; }
.price-zero-text strong { color: var(--gold) !important; font-weight: 700 !important; font-size: 17px !important; display: block !important; margin-bottom: 4px !important; }

/* ── guarantee-banner ── */
.guarantee-banner { display: flex !important; align-items: center !important; gap: 40px !important; padding: 48px !important; background: #0A1628 !important; margin-top: 64px !important; max-width: 860px !important; border: 1px solid var(--gold) !important; box-sizing: border-box !important; }
.guarantee-text h3 { font-family: 'Cormorant Garamond', serif !important; font-size: 28px !important; font-weight: 300 !important; color: white !important; margin: 0 0 12px !important; }
.guarantee-text h3 em { font-style: italic !important; color: var(--gold) !important; }
.guarantee-text p { font-size: 14px !important; color: rgba(255,255,255,0.8) !important; line-height: 1.9 !important; margin: 0 !important; }
.guarantee-badge { font-family: 'Cormorant Garamond', serif !important; font-size: 14px !important; letter-spacing: 2px !important; color: var(--gold) !important; border: 1px solid var(--gold) !important; padding: 16px 20px !important; text-align: center !important; line-height: 1.6 !important; flex-shrink: 0 !important; }

/* ── レスポンシブ ── */
@media (max-width: 1024px) {
  .persona-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .results-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .pricing-courses { grid-template-columns: 1fr !important; max-width: 500px !important; }
  .method-flow { flex-direction: column !important; }
  .method-flow-step { padding: 24px 18px !important; }
}
@media (max-width: 768px) {
  .persona-grid { grid-template-columns: repeat(1, 1fr) !important; }
  .results-grid { grid-template-columns: repeat(1, 1fr) !important; }
  .pricing-courses { grid-template-columns: 1fr !important; max-width: 100% !important; }
  .strength-card { flex-direction: column !important; gap: 16px !important; padding: 24px 20px !important; }
  .persona-card { padding: 24px 16px !important; }
  .result-card { padding: 24px 16px !important; }
  .course-card { padding: 28px 20px !important; }
  .pain-arrow { flex-direction: column !important; text-align: center !important; }
  .price-zero-banner { flex-direction: column !important; padding: 20px 16px !important; }
  .guarantee-banner { flex-direction: column !important; padding: 32px 20px !important; }
  .faq-header { padding: 20px !important; }
  .faq-body { padding: 0 20px 20px !important; }
}

/* ── 料金 4列グリッド ── */
.pricing-courses--4col {
  grid-template-columns: repeat(4, 1fr) !important;
}
.course-price {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 32px !important;
  font-weight: 300 !important;
  color: var(--navy) !important;
  line-height: 1 !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid rgba(201,168,76,0.3) !important;
}
.course-price small {
  font-family: 'Zen Kaku Gothic New', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #888 !important;
  margin-left: 4px !important;
}
@media (max-width: 1200px) {
  .pricing-courses--4col { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 768px) {
  .pricing-courses--4col { grid-template-columns: 1fr !important; }
}

/* ── 一般入試対応注記バナー ── */
.ippan-note {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 20px 28px !important;
  background: #F9F5EE !important;
  margin-top: 24px !important;
  max-width: 1100px !important;
  box-sizing: border-box !important;
}
.ippan-note-icon {
  font-size: 24px !important;
  color: var(--gold) !important;
  font-weight: 300 !important;
  flex-shrink: 0 !important;
}
.ippan-note-text {
  font-size: 14px !important;
  color: #111 !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
}
.ippan-note-text strong {
  color: var(--navy) !important;
  font-weight: 700 !important;
}

/* ── pain-item--note（一般入試対応アイテム） ── */
.pain-item--note {
  background: #F9F5EE !important;
}
