/* =====================================================================
   enhance.css — 先行登録モーダル / 固定CTAバー / 「※イメージ」注記
   v3 のブランド配色(ブルー〜ティール)に合わせた追加スタイル。
   既存デザインには干渉しない（独立クラスのみ）。
   ===================================================================== */

/* ---- 「※イメージ」注記 ---- */
.sim-note{
  display:inline-block;margin-top:6px;
  font-size:11px;line-height:1.5;color:rgba(255,255,255,.72);
  letter-spacing:.02em;font-weight:500;
}
.sim-note.dark{ color:#6b7280; }

/* ---- モバイル固定CTAバー ---- */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:120;
  display:none;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(11,18,38,.86);backdrop-filter:blur(10px);
  border-top:1px solid rgba(255,255,255,.12);
  box-shadow:0 -8px 24px rgba(0,0,0,.25);
}
.sticky-cta .sc-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:8px;
  height:50px;border-radius:14px;font-weight:700;font-size:15px;
  text-decoration:none;cursor:pointer;border:0;
}
.sc-line{ background:#06c755;color:#fff; }
.sc-main{ background:linear-gradient(135deg,#2563eb,#22d3cf);color:#fff; }
@media (max-width:760px){ .sticky-cta{ display:flex; } body{ padding-bottom:74px; } }

/* ---- 登録モーダル ---- */
.signup-ov{
  position:fixed;inset:0;z-index:200;display:none;
  align-items:center;justify-content:center;padding:20px;
  background:rgba(8,12,28,.62);backdrop-filter:blur(4px);
}
.signup-ov.open{ display:flex; }
.signup-card{
  width:100%;max-width:420px;background:#fff;border-radius:22px;
  padding:26px 22px 22px;box-shadow:0 24px 70px rgba(8,12,28,.4);
  animation:su-in .28s cubic-bezier(.2,.8,.2,1);position:relative;
}
@keyframes su-in{ from{opacity:0;transform:translateY(16px) scale(.98)} to{opacity:1;transform:none} }
.signup-card h3{ margin:0 0 4px;font-size:20px;font-weight:700;color:#0b1226; }
.signup-card .su-sub{ margin:0 0 18px;font-size:13px;line-height:1.6;color:#5b6478; }
.signup-card .su-close{
  position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:10px;
  background:#f1f3f8;color:#5b6478;font-size:18px;cursor:pointer;line-height:1;
}
.su-line{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;height:52px;border-radius:14px;background:#06c755;color:#fff;
  font-weight:700;font-size:16px;text-decoration:none;margin-bottom:14px;
}
.su-or{ text-align:center;font-size:12px;color:#9aa3b2;margin:6px 0 14px;position:relative; }
.su-or::before,.su-or::after{ content:"";position:absolute;top:50%;width:38%;height:1px;background:#e6e9f0; }
.su-or::before{ left:0 } .su-or::after{ right:0 }
.su-form{ display:flex;flex-direction:column;gap:10px; }
.su-form input[type=email]{
  height:50px;border:1.5px solid #d7dbe6;border-radius:13px;padding:0 14px;font-size:16px;
  outline:none;transition:border-color .15s;
}
.su-form input[type=email]:focus{ border-color:#2563eb; }
.su-form button{
  height:50px;border:0;border-radius:13px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#2563eb,#22d3cf);
}
.su-hp{ position:absolute;left:-9999px;width:1px;height:1px;opacity:0; } /* honeypot */
.su-note{ margin:12px 2px 0;font-size:11px;line-height:1.6;color:#9aa3b2; }
.su-done{ text-align:center;padding:14px 4px; }
.su-done .su-ico{ font-size:40px;line-height:1; }
.su-done h4{ margin:10px 0 4px;font-size:18px;color:#0b1226; }
.su-done p{ margin:0;font-size:13px;color:#5b6478; }
@media (prefers-reduced-motion:reduce){ .signup-card{ animation:none } }
