/* EMW solution detail pages (solutions/*.html) */
.sol-hero-meta { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.4rem; }
.sol-hero-chip {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-size: 0.85rem; font-weight: 700; color: #d7e9ff;
  background: rgba(13,42,76,0.6); border: 1px solid rgba(130,173,228,0.5);
  border-radius: 999px; padding: 0.45rem 1.05rem;
}
.sol-hero-chip.ga { color: #5dcaa5; border-color: rgba(93,202,165,0.5); background: rgba(29,158,117,0.15); }
.sol-hero-chip.beta { color: #9ed0ff; }

.sol-section-narrow { max-width: 860px; }

.pain-list { list-style: none; margin: 0 0 1rem; }
.pain-list li {
  font-size: 0.92rem; color: var(--gray-600); padding: 0.35rem 0 0.35rem 1.5rem;
  position: relative; line-height: 1.8;
}
.pain-list li::before { content: '−'; position: absolute; left: 0.2rem; color: #d85a30; font-weight: 700; }

.deliver-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; }
.deliver-card {
  background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px;
  padding: 1.4rem 1.5rem;
}
.deliver-card h4 { font-size: 0.98rem; font-weight: 700; color: var(--navy-800); margin-bottom: 0.5rem; display: flex; gap: 0.55rem; align-items: baseline; }
.deliver-card h4 .n { font-family: var(--font-en); color: var(--accent); font-size: 0.8rem; }
.deliver-card p { font-size: 0.87rem; color: var(--gray-600); line-height: 1.85; }

.flow-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
.flow-step {
  background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px;
  padding: 1.3rem 1.4rem; position: relative;
}
.flow-step .num {
  font-family: var(--font-en); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em;
  color: var(--accent); margin-bottom: 0.4rem;
}
.flow-step h4 { font-size: 0.98rem; font-weight: 700; margin-bottom: 0.35rem; }
.flow-step .dur { font-size: 0.74rem; color: var(--gray-400); margin-bottom: 0.5rem; }
.flow-step p { font-size: 0.84rem; color: var(--gray-600); line-height: 1.75; }
.flow-step.free { border-color: #9fe1cb; background: #f4fbf8; }
.flow-step.free .num { color: #0f6e56; }

.spec-table { width: 100%; border-collapse: collapse; max-width: 860px; }
.spec-table th {
  font-size: 0.85rem; font-weight: 700; color: var(--gray-500); text-align: left;
  padding: 0.9rem 1.2rem 0.9rem 0; vertical-align: top; white-space: nowrap; width: 180px;
  border-bottom: 1px solid var(--gray-200);
}
.spec-table td { font-size: 0.9rem; color: var(--gray-600); padding: 0.9rem 0; border-bottom: 1px solid var(--gray-200); line-height: 1.85; }
.spec-table tr:last-child th, .spec-table tr:last-child td { border-bottom: none; }

.faq-item {
  border: 1px solid var(--gray-200); border-radius: 12px; margin-bottom: 0.75rem;
  overflow: hidden; background: var(--white); max-width: 860px;
}
.faq-item summary {
  padding: 1.05rem 1.4rem; cursor: pointer; font-weight: 700; font-size: 0.93rem;
  color: var(--navy-800); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  transition: background 0.2s;
}
.faq-item summary:hover { background: var(--gray-50); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '＋'; color: var(--accent); font-weight: 700; flex-shrink: 0; }
.faq-item[open] summary::after { content: '－'; }
.faq-item[open] summary { border-bottom: 1px solid var(--gray-100); }
.faq-a { padding: 1rem 1.4rem 1.2rem; font-size: 0.89rem; color: var(--gray-600); line-height: 1.9; }
.faq-a a { color: var(--accent); }

.sol-arch {
  background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 12px;
  padding: 1.4rem 1.25rem 1rem; max-width: 860px;
}
.sol-arch svg { width: 100%; height: auto; display: block; }
.sol-arch figcaption { font-size: 0.75rem; color: var(--gray-500); margin-top: 0.75rem; text-align: center; }

.price-panel {
  max-width: 860px; border: 2px solid var(--accent); border-radius: 14px; overflow: hidden;
}
.price-panel-head { background: var(--navy-900); padding: 1.3rem 1.75rem; display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.price-panel-head .amount { font-family: var(--font-en); font-size: 2rem; font-weight: 700; color: #5ba6f5; }
.price-panel-head .amount .small { font-size: 0.9rem; color: var(--gray-400); font-weight: 500; font-family: var(--font-jp); }
.price-panel-head .cond { font-size: 0.8rem; color: var(--gray-400); }
.price-panel-body { padding: 1.4rem 1.75rem; background: var(--white); }
.price-panel-body .cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.price-panel-body h4 { font-size: 0.82rem; font-weight: 700; color: var(--gray-500); margin-bottom: 0.5rem; }
.price-panel-body ul { list-style: none; }
.price-panel-body li { font-size: 0.86rem; color: var(--gray-600); padding: 0.25rem 0 0.25rem 1.4rem; position: relative; line-height: 1.7; }
.price-panel-body .inc li::before { content: '✓'; position: absolute; left: 0.1rem; color: var(--accent); font-weight: 700; }
.price-panel-body .exc li::before { content: '−'; position: absolute; left: 0.1rem; color: var(--gray-400); font-weight: 700; }

.related-row { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.related-link {
  font-size: 0.85rem; font-weight: 500; color: var(--gray-600); text-decoration: none;
  background: var(--white); border: 1px solid var(--gray-200); border-radius: 999px;
  padding: 0.55rem 1.15rem; transition: all 0.2s;
}
.related-link:hover { border-color: var(--accent); color: var(--accent); }

.back-to-list {
  display: inline-block; margin-top: 2rem;
  font-family: var(--font-en); font-size: 0.85rem; font-weight: 600;
  color: var(--accent); text-decoration: none;
}
.back-to-list:hover { color: var(--navy-800); }

@media (max-width: 768px) {
  .price-panel-body .cols { grid-template-columns: 1fr; }
  .spec-table th { width: 120px; padding-right: 0.8rem; }
}
