/**
 * Solstice Exit UI v2.0 + Exit Question UI v1.5
 * 全CTXページ共通の出口UIスタイル
 * Gate / Area / S2.5 / Resolve / OutArea + Q3質問UI
 */

/* ============================================================
   v2.0 SOL-EXIT BLOCK (Gate → S2.5 → Resolve → OutArea)
   ============================================================ */

/* ── Fix: sol-exit-area blank space prevention ── */
#sol-exit-area{padding-top:0;padding-bottom:0;overflow:hidden}
#sol-exit-area:has(.sol-exit:not(.--active)){max-height:0;padding:0;margin:0;border:none}
#sol-exit-area .section-inner{padding-top:0;padding-bottom:0}
#sol-exit-area:has(.sol-exit.--active){max-height:none;padding-top:1.5rem;padding-bottom:1.5rem}

.sol-exit{
  background:var(--white);border:1px solid rgba(142,190,214,.06);
  border-radius:14px;overflow:hidden;
  display:none; /* Q3がConsult/Resolveに到達するまで非表示 */
}
.sol-exit.--active{display:block;animation:exitBlockIn .5s ease}
@keyframes exitBlockIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

.sol-exit__bar{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.5rem;background:linear-gradient(90deg,var(--water-breath),rgba(255,255,255,0));border-bottom:1px solid rgba(142,190,214,.04)}
.sol-exit__bar-dot{width:5px;height:5px;border-radius:50%;background:var(--water-deep);animation:solPd 2.4s ease infinite}
@keyframes solPd{0%,100%{opacity:.35}50%{opacity:1}}
.sol-exit__bar-text{font-family:var(--font-num);font-size:.55rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--water-deep)}

.sol-exit__steps{display:flex;align-items:center;gap:0;padding:.75rem 1.5rem;border-bottom:1px solid rgba(142,190,214,.04)}
.sol-exit__step{display:flex;align-items:center;gap:.375rem;font-size:.6rem;font-weight:500;color:var(--ash);transition:all .3s}
.sol-exit__step.--act{color:var(--water-deep)}
.sol-exit__step.--done{color:#2B8A3E}
.sol-exit__step-n{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:.6rem;font-weight:600;border:1.5px solid var(--ash);color:var(--ash);transition:all .3s}
.sol-exit__step.--act .sol-exit__step-n{border-color:var(--water-deep);color:var(--white);background:var(--water-deep)}
.sol-exit__step.--done .sol-exit__step-n{border-color:#2B8A3E;color:var(--white);background:#2B8A3E}
.sol-exit__step-line{width:20px;height:1px;background:var(--mist);margin:0 .25rem}

.sol-exit__inner{padding:1.5rem}
@media(min-width:640px){.sol-exit__inner{padding:1.75rem 2rem}}
.sol-exit__phase{display:none}
.sol-exit__phase.--active{display:block;animation:solFu .35s ease}
@keyframes solFu{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.sol-exit__heading{font-family:var(--font-mincho);font-size:clamp(.9375rem,2.2vw,1.0625rem);font-weight:500;letter-spacing:.06em;line-height:1.7;color:var(--ink-deep);margin-bottom:1rem}
.sol-exit__sub{font-size:.75rem;font-weight:300;color:var(--stone);line-height:1.7;margin-top:-.625rem;margin-bottom:1rem}
.sol-exit__back{display:inline-flex;align-items:center;gap:.3rem;background:none;border:none;cursor:pointer;font-family:var(--font-ja);font-size:.7rem;color:var(--stone);margin-bottom:1rem;padding:.25rem 0;transition:color .2s}
.sol-exit__back:hover{color:var(--water-deep)}
.sol-exit__back svg{width:13px;height:13px}

/* Gate */
.sol-exit__gate{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}
.sol-exit__gate-item{padding:.875rem 1rem;background:var(--silk);border:1.5px solid transparent;border-radius:11px;transition:all .25s}
.sol-exit__gate-item.--y{background:#E6FCF5;border-color:rgba(43,138,62,.08)}
.sol-exit__gate-item.--n{background:var(--water-breath);border-color:rgba(107,163,190,.12)}
.sol-exit__gate-q{font-size:.8125rem;color:var(--ink-deep);line-height:1.6;margin-bottom:.5rem}
.sol-exit__gate-btns{display:flex;gap:.375rem}
.sol-exit__gate-btn{flex:1;padding:.45rem;border:1.5px solid var(--mist);border-radius:8px;background:var(--white);font-family:var(--font-ja);font-size:.75rem;font-weight:500;color:var(--ink);cursor:pointer;transition:all .2s;text-align:center}
.sol-exit__gate-btn:hover{border-color:var(--water)}
.sol-exit__gate-btn.--sy{background:#2B8A3E;color:var(--white);border-color:#2B8A3E}
.sol-exit__gate-btn.--sn{background:var(--water-deep);color:var(--white);border-color:var(--water-deep)}
.sol-exit__gate-link{display:none;align-items:center;gap:.5rem;margin-top:.5rem;padding:.5rem .75rem;background:rgba(107,163,190,.06);border-radius:8px;text-decoration:none;color:var(--water-deep);font-size:.75rem;font-weight:500;transition:all .2s}
.sol-exit__gate-link:hover{background:rgba(107,163,190,.12)}
.sol-exit__gate-link svg{width:14px;height:14px;flex-shrink:0}
.sol-exit__gate-item.--n .sol-exit__gate-link{display:flex}

/* Area */
.sol-exit__area{margin-top:.75rem;padding:1rem;background:var(--silk);border:1.5px solid transparent;border-radius:11px;transition:all .25s}
.sol-exit__area.--in{background:#E6FCF5;border-color:rgba(43,138,62,.08)}
.sol-exit__area.--out{background:var(--warn-bg);border-color:rgba(217,72,15,.06)}
.sol-exit__area-q{font-size:.8125rem;color:var(--ink-deep);line-height:1.6;margin-bottom:.5rem}
.sol-exit__area-select{width:100%;padding:.5rem .75rem;border:1.5px solid var(--mist);border-radius:8px;background:var(--white);font-family:var(--font-ja);font-size:.8125rem;color:var(--ink);appearance:auto;cursor:pointer}
.sol-exit__area-result{margin-top:.5rem;font-size:.75rem;font-weight:500;line-height:1.6;display:none}
.sol-exit__area-result.--in{display:block;color:#2B8A3E}
.sol-exit__area-result.--out{display:block;color:#D9480F}

.sol-exit__cta{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.8rem;margin-top:1rem;background:var(--mist);border:none;border-radius:11px;font-family:var(--font-ja);font-size:.8125rem;font-weight:500;color:var(--stone);cursor:not-allowed;transition:all .3s}
.sol-exit__cta.--ok{background:var(--water-deep);color:var(--white);cursor:pointer;box-shadow:0 2px 12px rgba(107,163,190,.2)}
.sol-exit__cta.--ok:hover{filter:brightness(1.06);transform:translateY(-1px)}
.sol-exit__cta svg{width:16px;height:16px}

/* Release */
.sol-exit__resolve{padding:1.25rem;background:#E6FCF5;border:1px solid rgba(43,138,62,.06);border-radius:12px}
.sol-exit__resolve-head{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:600;color:#2B8A3E;margin-bottom:.625rem}
.sol-exit__resolve-head svg{width:16px;height:16px}
.sol-exit__resolve-body{font-size:.8125rem;color:var(--ink);line-height:2}
.sol-exit__resolve-foot{font-size:.7rem;font-weight:300;color:var(--stone);line-height:1.8;margin-top:.75rem;padding-top:.625rem;border-top:1px solid rgba(43,138,62,.06)}
.sol-exit__resolve-foot a{color:var(--water-deep);text-decoration:none}

/* S2.5 Closing */
.sol-exit__s25{padding:1.5rem;background:linear-gradient(175deg,var(--water-breath),var(--white));border:1px solid rgba(142,190,214,.08);border-radius:14px}
.sol-exit__s25-pre{font-family:var(--font-num);font-size:.55rem;font-weight:500;letter-spacing:.12em;color:var(--water-deep);text-transform:uppercase;margin-bottom:.625rem}
.sol-exit__s25-title{font-family:var(--font-mincho);font-size:1rem;font-weight:500;letter-spacing:.06em;line-height:1.8;color:var(--ink-deep);margin-bottom:.875rem}
.sol-exit__s25-body{font-size:.8125rem;font-weight:300;color:var(--ink);line-height:2.1;margin-bottom:1.25rem}
.sol-exit__s25-cta{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.875rem;background:var(--line-green);border:none;border-radius:12px;font-family:var(--font-ja);font-size:.875rem;font-weight:600;color:var(--white);cursor:pointer;transition:all .25s;text-decoration:none}
.sol-exit__s25-cta:hover{filter:brightness(1.08);transform:translateY(-1px)}
.sol-exit__s25-cta svg{width:20px;height:20px}
.sol-exit__s25-note{font-size:.7rem;font-weight:300;color:var(--stone);text-align:center;margin-top:.5rem}

/* Out-of-area */
.sol-exit__outarea{padding:1.5rem;background:var(--silk);border:1px solid var(--mist);border-radius:14px}
.sol-exit__outarea-title{font-family:var(--font-mincho);font-size:1rem;font-weight:500;letter-spacing:.05em;line-height:1.8;color:var(--ink-deep);margin-bottom:.875rem}
.sol-exit__outarea-body{font-size:.8125rem;font-weight:300;color:var(--ink);line-height:2;margin-bottom:1rem}
.sol-exit__outarea-weak{display:flex;align-items:center;justify-content:center;gap:.375rem;width:100%;padding:.625rem;margin-top:.75rem;background:var(--white);border:1px solid var(--mist);border-radius:10px;font-family:var(--font-ja);font-size:.75rem;font-weight:400;color:var(--stone);text-decoration:none;cursor:pointer;transition:all .2s}
.sol-exit__outarea-weak:hover{border-color:var(--water);color:var(--water-deep)}
.sol-exit__outarea-weak svg{width:14px;height:14px}

/* Memo */
.sol-exit__memo{margin-top:1rem;padding:1rem;background:var(--white);border-radius:10px;border:1px solid var(--mist)}
.sol-exit__memo-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375rem}
.sol-exit__memo-label{font-size:.7rem;font-weight:500;color:var(--stone)}
.sol-exit__memo-copy{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .6rem;border:1px solid var(--ash);border-radius:6px;background:var(--white);font-family:var(--font-ja);font-size:.65rem;font-weight:500;color:var(--ink);cursor:pointer;transition:all .2s}
.sol-exit__memo-copy:hover{border-color:var(--water-deep);color:var(--water-deep)}
.sol-exit__memo-copy.--ok{background:#E6FCF5;border-color:#2B8A3E;color:#2B8A3E}
.sol-exit__memo-copy svg{width:12px;height:12px}
.sol-exit__memo-text{font-size:.7rem;color:var(--ink);line-height:1.7;white-space:pre-line;font-family:var(--font-ja)}

/* ============================================================
   v1.5 EXIT QUESTION UI
   ============================================================ */
.exit-q{
  margin:1.5rem 0;padding:1.25rem;
  background:linear-gradient(135deg,rgba(142,190,214,.06) 0%,rgba(142,190,214,.02) 100%);
  border:1.5px solid rgba(142,190,214,.18);
  border-radius:14px;
  transition:opacity .4s ease,max-height .5s ease;
}
.exit-q-label{
  display:inline-flex;align-items:center;gap:.3rem;
  font-size:.65rem;font-weight:600;letter-spacing:.08em;
  color:var(--water-deep);text-transform:uppercase;
  margin-bottom:.75rem;
}
.exit-q-label::before{
  content:'';display:block;width:8px;height:8px;border-radius:50%;
  background:var(--water);opacity:.6;
}
.exit-q-text{
  font-size:.875rem;font-weight:500;color:var(--ink-deep);
  letter-spacing:.02em;line-height:1.7;margin-bottom:1rem;
}
.exit-q-options{display:flex;flex-direction:column;gap:.5rem}
.exit-q-opt{
  display:flex;align-items:center;gap:.75rem;
  padding:.875rem 1.125rem;
  background:var(--white);border:1.5px solid rgba(142,190,214,.15);
  border-radius:10px;
  font-size:.8125rem;font-weight:400;color:var(--ink);
  letter-spacing:.02em;line-height:1.6;text-align:left;
  cursor:pointer;transition:all .3s ease;
  font-family:var(--font-ja);
}
.exit-q-opt:hover{
  border-color:rgba(142,190,214,.4);
  background:var(--water-breath);
}
.exit-q-opt.--selected{
  border-color:var(--water-deep);
  background:var(--water-breath);
  font-weight:500;
}
.exit-q-opt::before{
  content:'';display:block;flex-shrink:0;
  width:18px;height:18px;border-radius:50%;
  border:2px solid var(--ash);
  transition:all .3s ease;
}
.exit-q-opt:hover::before{border-color:var(--water)}
.exit-q-opt.--selected::before{
  border-color:var(--water-deep);
  background:var(--water-deep);
  box-shadow:inset 0 0 0 3px var(--white);
}
/* Sub-question (Q3a, Q3b) */
.exit-q-sub{
  margin-top:.75rem;padding-left:1rem;
  border-left:2px solid rgba(142,190,214,.15);
  display:none;
}
.exit-q-sub.--visible{display:block}

/* ============================================================
   v1.5 EXIT MESSAGE (判断結果表示)
   ============================================================ */
.exit-msg{
  margin:1.5rem 0;padding:1.25rem 1.5rem;
  border-radius:14px;
  display:none;
  animation:exitMsgIn .5s ease forwards;
}
.exit-msg.--visible{display:block}
@keyframes exitMsgIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
.exit-msg-icon{font-size:1.5rem;margin-bottom:.5rem}
.exit-msg-title{
  font-size:.9375rem;font-weight:600;color:var(--ink-deep);
  letter-spacing:.02em;line-height:1.6;margin-bottom:.5rem;
}
.exit-msg-body{
  font-size:.8125rem;font-weight:300;color:var(--stone);
  line-height:2;letter-spacing:.02em;margin-bottom:.75rem;
}
.exit-msg-note{
  font-size:.75rem;font-weight:300;color:var(--ash);
  line-height:1.8;letter-spacing:.02em;
}
.exit-msg-note a{
  color:var(--water-deep);text-decoration:none;
  border-bottom:1px dashed rgba(107,163,190,.3);
}
/* Resolve */
.exit-msg--resolve{
  background:var(--safe-bg);
  border:1px solid var(--safe-border);
}
.exit-msg--resolve .exit-msg-title{color:#059669}
/* Consult */
.exit-msg--consult{
  background:var(--warn-bg);
  border:1px solid var(--warn-border);
}
.exit-msg--consult .exit-msg-title{color:#ea580c}
/* Branch */
.exit-msg--branch{
  background:rgba(142,190,214,.04);
  border:1px solid rgba(142,190,214,.18);
}
.exit-msg--branch .exit-msg-title{color:var(--water-deep)}
/* S2.5 CTA inside exit message */
.exit-msg-s25{
  margin-top:1rem;padding:1rem 1.25rem;
  background:rgba(255,255,255,.8);border-radius:10px;
}
.exit-msg-s25 p{
  font-size:.8125rem;font-weight:300;color:var(--stone);
  line-height:1.9;letter-spacing:.02em;margin-bottom:.75rem;
}
.exit-msg-s25 .cta-line-btn{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.875rem 1rem;margin-top:.5rem;
  background:var(--line-green);color:#fff;
  font-size:.875rem;font-weight:600;letter-spacing:.02em;
  text-decoration:none;border-radius:10px;
  transition:all .3s ease;
}
.exit-msg-s25 .cta-line-btn:hover{background:#05a849}
.exit-msg-s25 .cta-line-btn svg{width:18px;height:18px}

/* Judgment card highlight when exit reached */
.j-card.--highlight{
  box-shadow:0 0 0 2px var(--water-deep),0 4px 16px rgba(107,163,190,.15);
  transform:scale(1.01);
}
.j-card.--dim{opacity:.35;pointer-events:none}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
