/* /join — 이메일 가입 · 확인 · 수신거부. 폰 폭 375px 한 화면, 글자 16px 이상 (iOS 가 입력칸을 확대하지 않게) */
.join { max-width: 440px; padding-top: 28px; padding-bottom: 40px; }
.join [hidden] { display: none !important; }
.j-card h1 { font-size: 24px; line-height: 1.35; letter-spacing: -0.03em; margin: 0 0 6px; font-weight: 600; word-break: keep-all; }
.j-lead { margin: 0 0 24px; font-size: 15px; color: var(--ink-2); word-break: keep-all; }
.j-lead b { font-weight: 600; color: var(--ink); word-break: break-all; }
.j-label { display: block; font-size: 13px; font-weight: 600; color: var(--ink-2); margin: 0 0 6px; }
.j-input { display: block; width: 100%; height: 48px; padding: 0 14px; font: inherit; font-size: 16px; color: var(--ink);
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); margin: 0 0 16px; }
.j-input:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.j-input[aria-invalid="true"] { border-color: var(--bad); }
.j-err { margin: -10px 0 14px; font-size: 13px; color: var(--bad); }
.j-chips { margin: 0 0 24px; }
.j-chips label { padding: 9px 18px; font-size: 15px; }
.j-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.btn.j-go { width: 100%; height: 50px; justify-content: center; font-size: 16px; font-weight: 600; }
.j-fine { margin: 12px 0 0; font-size: 12px; line-height: 1.6; color: var(--mute); word-break: keep-all; }
.j-fine:empty { display: none; }
.j-alt { margin: 20px 0 0; text-align: center; font-size: 13px; }
.j-alt a { color: var(--mute); text-decoration: underline; text-underline-offset: 3px; }
.j-acts { display: grid; gap: 8px; }
.j-acts:empty { display: none; }
.j-acts .btn { width: 100%; height: 48px; justify-content: center; font-size: 15px; }
.j-acts .j-link { background: none; border: 0; padding: 8px; font-size: 13px; color: var(--mute); text-decoration: underline;
  text-underline-offset: 3px; cursor: pointer; justify-self: center; }
