/* ==========================================================================
   Curioforj — AI活用ミニ診断ページ専用スタイル
   style.css(トークン・共通パーツ)を前提に読み込む。
   ========================================================================== */

/* ---- ヒーロー(LPよりコンパクトなダーク面) ---- */
.shindan-hero {
  position: relative;
  background: var(--ink);
  color: var(--on-dark);
  padding-block: 4rem 4.5rem;
  overflow: hidden;
  background-image: radial-gradient(
    40rem 20rem at 10% 120%,
    rgba(201, 72, 26, 0.15),
    transparent 68%
  );
}

@media (min-width: 768px) {
  .shindan-hero { padding-block: 5.5rem 6rem; }
}

.shindan-hero .section-label { color: var(--forge-bright); }

.shindan-title {
  font-size: clamp(1.625rem, 4vw + 0.5rem, 2.75rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0;
  font-feature-settings: "palt";
  max-width: 24em;
}

.shindan-sub {
  max-width: 38rem;
  margin-top: 1.5rem;
  font-size: 1rem;
  line-height: 1.9;
  color: var(--on-dark-mute);
}

.shindan-hero .forge-line {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
}

/* ---- 共通: 診断ビュー ---- */
.shindan-section {
  padding-block: 4rem;
}

@media (min-width: 768px) {
  .shindan-section { padding-block: 5.5rem; }
}

.shindan-container {
  max-width: 44rem;
}

/* ---- イントロ ---- */
.intro-notes {
  margin: 0 0 2.5rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.875rem;
}

.intro-notes li {
  display: flex;
  align-items: baseline;
  font-size: 1rem;
  color: var(--ink-soft);
}

.intro-note-sub {
  margin-top: 1.25rem;
  font-size: 0.9375rem;
  color: var(--ink-mute);
}

/* ---- プログレス ---- */
.progress {
  margin-bottom: 2.5rem;
}

.progress-text {
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--forge);
  font-variant-numeric: tabular-nums;
  margin-bottom: 0.625rem;
}

.progress-track {
  height: 3px;
  background: var(--line);
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  background: var(--forge);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform var(--duration) var(--ease);
}

/* ---- 設問 ---- */
.q-title {
  font-size: clamp(1.25rem, 2vw + 0.6rem, 1.625rem);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.01em;
  font-feature-settings: "palt";
  outline: none;
}

.q-help {
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  color: var(--ink-mute);
}

.options {
  margin-top: 2rem;
  display: grid;
  gap: 0.75rem;
}

.option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 3.5rem;
  padding: 0.875rem 1.25rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  font-size: 1rem;
  line-height: 1.6;
  cursor: pointer;
  transition: border-color var(--duration) var(--ease),
              background-color var(--duration) var(--ease);
}

.option:hover {
  border-color: var(--forge);
}

.option:focus-within {
  outline: 3px solid var(--forge-bright);
  outline-offset: 2px;
}

.option input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* 菱形マーカー(未選択=枠のみ / 選択=炉の橙) */
.option-mark {
  flex-shrink: 0;
  width: 0.625rem;
  height: 0.625rem;
  border: 1.5px solid var(--ink-mute);
  transform: rotate(45deg);
  transition: background-color var(--duration) var(--ease),
              border-color var(--duration) var(--ease);
}

.option:has(input:checked) {
  border-color: var(--forge);
  background: rgba(201, 72, 26, 0.05);
}

.option:has(input:checked) .option-mark {
  background: var(--forge);
  border-color: var(--forge);
}

/* ---- ナビゲーション ---- */
.quiz-nav {
  margin-top: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  min-height: 3rem;
}

.quiz-back {
  border: none;
  background: none;
  padding: 0.75rem 0.25rem;
  min-height: 2.75rem;
  font-family: inherit;
  font-size: 0.9375rem;
  letter-spacing: 0.03em;
  color: var(--ink-mute);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.3em;
  text-decoration-color: var(--line);
  transition: color var(--duration) var(--ease);
}

.quiz-back:hover { color: var(--forge); }

.quiz-back:focus-visible {
  outline: 2px solid var(--forge);
  outline-offset: 3px;
}

.quiz-next {
  margin-left: auto;
  border: none;
  cursor: pointer;
  font-family: inherit;
}

.quiz-next:disabled {
  background: var(--line);
  color: var(--ink-mute);
  box-shadow: none;
  cursor: not-allowed;
  transform: none;
}

/* ---- 結果 ---- */
.result-type {
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--forge);
}

.result-catch {
  margin-top: 0.75rem;
  font-size: clamp(1.5rem, 3vw + 0.5rem, 2.125rem);
  font-weight: 700;
  line-height: 1.45;
  font-feature-settings: "palt";
  text-wrap: balance;
  outline: none;
}

.score-bars {
  margin-top: 2.25rem;
  display: grid;
  gap: 0.875rem;
}

.score-row {
  display: grid;
  grid-template-columns: 9.5em 1fr 3.5em;
  align-items: center;
  gap: 1rem;
  font-size: 0.875rem;
}

.score-name { color: var(--ink-soft); }

.score-track {
  display: block;
  height: 6px;
  background: var(--line);
  border-radius: 3px;
  overflow: hidden;
}

.score-fill {
  display: block;
  height: 100%;
  background: var(--forge);
  border-radius: 3px;
  transform-origin: left center;
}

.score-fill.score-low { background: var(--ink-mute); }

.score-level {
  color: var(--ink-mute);
  text-align: right;
}

@media (max-width: 480px) {
  .score-row { grid-template-columns: 8em 1fr 3.5em; gap: 0.625rem; }
}

.result-text {
  margin-top: 2.5rem;
}

.result-text > p {
  margin-block: 1.25em;
  color: var(--ink-soft);
}

/* flag差し込み文 */
.result-insert {
  display: flex;
  align-items: baseline;
  margin-block: 1.75rem;
  padding: 1.25rem 1.5rem;
  border-left: 2px solid var(--forge);
  background: var(--surface-alt);
  border-radius: 0 6px 6px 0;
}

.result-insert p {
  font-size: 0.9375rem;
  color: var(--ink-soft);
}

/* 次の一歩 */
.result-next {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 2px solid var(--line);
  position: relative;
}

.result-next::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 2.5rem;
  height: 2px;
  background: var(--forge);
}

.result-next-label {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--forge);
  margin-bottom: 0.75rem;
}

/* CTAカード(LPのcontact-cardと同じ世界観) */
.cta-card {
  position: relative;
  margin-top: 3.5rem;
  background: var(--ink);
  color: var(--on-dark);
  border-radius: 8px;
  padding: 2.75rem 1.75rem 3rem;
  overflow: hidden;
  background-image: radial-gradient(
    32rem 16rem at 90% -30%,
    rgba(201, 72, 26, 0.14),
    transparent 70%
  );
}

@media (min-width: 768px) {
  .cta-card { padding: 3.5rem 3rem 3.75rem; }
}

.cta-title {
  font-size: clamp(1.25rem, 2.4vw + 0.5rem, 1.625rem);
  font-weight: 700;
  line-height: 1.5;
  font-feature-settings: "palt";
}

.cta-lead {
  margin-block: 1.25rem 2rem;
  font-size: 0.9375rem;
  color: var(--on-dark-mute);
  max-width: 36rem;
}

.cta-mail {
  margin-top: 1.5rem;
  font-size: 0.875rem;
  color: var(--on-dark-mute);
}

/* CTAなし(Eタイプ) */
.result-quiet {
  margin-top: 3rem;
  font-size: 0.9375rem;
  color: var(--ink-soft);
}

.result-quiet p { margin-bottom: 1rem; }

.result-quiet .mail-link { color: var(--ink-soft); }
.result-quiet .mail-link:hover { color: var(--forge); }

/* 共有リンク経由の注記・リスタート */
.result-shared-note {
  margin-top: 2rem;
  font-size: 0.875rem;
  color: var(--ink-mute);
}

.result-restart {
  margin-top: 2.5rem;
}

/* ---- フッター(簡易版) ---- */
.footer-links {
  align-self: center;
  font-size: 0.875rem;
}

/* ---- noscript ---- */
.noscript-note {
  padding-block: 3rem;
  color: var(--ink-soft);
}
