/* 로그인 퍼블. 실제 인증 동작은 후속 Mock·연동 단계에서 연결한다. */
.kofa-member-login {
  width: var(--kofa-layout-safe-width);
  margin-inline: auto;
  padding-bottom: 80px;
  letter-spacing: var(--kofa-letter-spacing-base);
}

@media (max-width: 1279px) {
  .kofa-member-login {
    padding-bottom: 64px;
  }
}

@media (max-width: 599px) {
  .kofa-member-login {
    padding-bottom: 48px;
  }
}

.kofa-member-login__heading {
  margin: 0;
  padding-block: 20px 12px;
  box-shadow: inset 0 -1px 0 var(--kofa-color-border-default);
  font-size: var(--kofa-typo-headline-4-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 1279px) {
  .kofa-member-login__heading {
    padding-bottom: 15px;
    font-size: 22px;
  }
}

/* Any-ID SDK 화면(anyidc.css)의 제목 줄과 맞춘다. */
.kofa-member-login__heading--anyid {
  margin-top: 20px;
  padding-block: 5px;
  border-top: 1px solid #d8d8d8;
  box-shadow: none;
  color: #1d1d1d;
  font-size: var(--kofa-typo-headline-3-size);
}

@media (max-width: 1279px) {
  .kofa-member-login__heading--anyid {
    padding-bottom: 5px;
    font-size: var(--kofa-typo-headline-3-size);
  }
}

.kofa-member-login__anyid {
  position: relative;
}

.kofa-member-login__loading-status {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.kofa-member-login__methods {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 16px;
  padding-block: 20px;
}

@media (max-width: 1279px) {
  .kofa-member-login__methods {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 599px) {
  .kofa-member-login__methods {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Any-ID SDK 수단 목록(certificates.css)과 같은 열·간격. */
.kofa-member-login__methods--anyid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px 24px;
  padding-block: 26px 20px;
}

@media (max-width: 1279px) {
  .kofa-member-login__methods--anyid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .kofa-member-login__methods--anyid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}

@media (max-width: 599px) {
  .kofa-member-login__methods--anyid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* SDK 목록의 열 너비를 따른다. */
.kofa-member-login__methods--institution {
  grid-template-columns: repeat(3, calc(33.33% - 16px));
}

@media (max-width: 767px) {
  .kofa-member-login__methods--institution {
    grid-template-columns: repeat(3, calc(33.33% - 10.66667px));
  }
}

/* SDK 버튼이 그려지기 전 같은 자리를 잡는다. 크기는 SDK 제목 줄·카드 높이를 따른다. */
.kofa-member-login-skeleton {
  display: block;
  border-top: 1px solid #d8d8d8;
}

.kofa-member-login-skeleton__title {
  display: block;
  width: 140px;
  height: 24px;
  margin-block: 8px 33px;
  border-radius: 8px;
  background: var(--kofa-color-background-gray-subtle);
}

/* SDK 모바일 화면은 제목이 낮아지고 사용자 등록·관리 안내가 카드 아래로 내려간다. */
@media (max-width: 767px) {
  .kofa-member-login-skeleton__title {
    margin-block: 6px 31px;
  }
}

.kofa-member-login-skeleton__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px 24px;
}

@media (max-width: 767px) {
  .kofa-member-login-skeleton__grid {
    gap: 16px;
    padding-bottom: 44px;
  }
}

.kofa-member-login-skeleton__card {
  display: block;
  box-sizing: border-box;
  height: 120px;
  border: 1px solid #e4e4e4;
  border-radius: var(--kofa-radius-12);
  background: #f8f8f8;
}

@media (max-width: 767px) {
  .kofa-member-login-skeleton__card {
    height: 70px;
  }
}

.kofa-member-login-method {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--kofa-color-border-default);
  border-radius: var(--kofa-radius-16);
  color: var(--kofa-color-text-01);
  background: var(--kofa-color-surface-white);
  font: inherit;
  letter-spacing: var(--kofa-letter-spacing-base);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

/* Any-ID SDK 수단 카드(certificate.css)와 같은 모양. */
.kofa-member-login-method--anyid {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 12px 16px;
  padding: 28px 20px 28px 18px;
  border-color: #e4e4e4;
  border-radius: var(--kofa-radius-12);
  color: #1d1d1d;
  background: #f8f8f8;
}

.kofa-member-login-method--anyid:hover,
.kofa-member-login-method--anyid:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #246beb;
}

.kofa-member-login-method--anyid .kofa-member-login-method__icon {
  width: 24px;
  height: 24px;
  margin: 3px 0 0 6px;
}

/* SDK 카드처럼 설명은 아이콘 아래부터 카드 폭 전체를 쓴다. */
.kofa-member-login-method--anyid .kofa-member-login-method__copy {
  display: contents;
}

.kofa-member-login-method--anyid .kofa-member-login-method__label strong {
  font-size: var(--kofa-typo-headline-3-size);
}

.kofa-member-login-method--anyid .kofa-member-login-method__description {
  grid-column: 1 / -1;
  max-width: none;
  color: #555555;
  font-size: 13px;
}

/* SDK certificate.css의 카드 배치 */
.kofa-member-login-method--institution {
  position: relative;
  display: block;
  box-sizing: border-box;
  gap: 0;
  padding: 28px 18px;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .kofa-member-login-method--institution {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 70px;
    padding: 6px 24px;
  }
}

.kofa-member-login-method--institution .kofa-member-login-method__icon {
  position: absolute;
  top: 30px;
  left: 24px;
  margin: 0;
}

@media (max-width: 767px) {
  .kofa-member-login-method--institution .kofa-member-login-method__icon {
    position: relative;
    top: 0;
    left: 0;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    margin: 0 auto;
  }
}

.kofa-member-login-method--institution .kofa-member-login-method__label {
  display: block;
  padding: 0 24px 0 46px;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .kofa-member-login-method--institution .kofa-member-login-method__label {
    display: flex;
    flex: 1;
    min-width: 0;
    align-items: center;
    justify-content: center;
    padding: 0;
    text-align: center;
    white-space: nowrap;
  }
}

.kofa-member-login-method--institution .kofa-member-login-method__label strong {
  font-size: 20px;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .kofa-member-login-method--institution .kofa-member-login-method__label strong {
    font-size: 15px;
  }
}

.kofa-member-login-method--institution .kofa-member-login-method__description {
  display: block;
  margin-top: 12px;
  line-height: 1.5;
  word-break: normal;
  overflow-wrap: normal;
}

@media (max-width: 1023px) {
  .kofa-member-login-method--institution .kofa-member-login-method__description {
    display: none;
  }
}

.kofa-member-login-method--institution .kofa-member-login-method__registration {
  display: inline;
}

.kofa-member-login-method--institution .kofa-member-login-method__service {
  display: inline;
}

.kofa-member-login-method--institution .kofa-member-login-method__arrow {
  position: absolute;
  top: 30px;
  right: 20px;
}

@media (max-width: 767px) {
  .kofa-member-login-method--institution .kofa-member-login-method__arrow {
    display: none;
  }
}

.kofa-member-login-method__icon {
  flex: 0 0 28px;
}

@media (max-width: 599px) {
  .kofa-member-login-method__icon {
    flex-basis: 24px;
    width: 24px;
    height: 24px;
  }
}

.kofa-member-login-method__copy {
  display: grid;
  flex: 1 1 0;
  min-width: 0;
  gap: 6px;
  overflow-wrap: anywhere;
}

.kofa-member-login-method__label strong {
  font-size: var(--kofa-typo-headline-2-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-login-method__description {
  max-width: 304px;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 1279px) {
  .kofa-member-login-method__description {
    max-width: none;
  }
}

.kofa-member-login-method__signature {
  display: inline;
}

@media (max-width: 599px) {
  .kofa-member-login-method__signature {
    display: block;
  }
}

.kofa-member-login-method__certificate-service {
  display: inline;
}

@media (max-width: 599px) {
  .kofa-member-login-method__certificate-service {
    display: block;
  }
}

.kofa-member-login-method__issuer {
  display: inline;
}

@media (max-width: 599px) {
  .kofa-member-login-method__issuer {
    display: block;
  }
}

.kofa-member-login-method__certificate-break {
  display: initial;
}

@media (max-width: 1279px) {
  .kofa-member-login-method__certificate-break {
    display: none;
  }
}

.kofa-member-login-method__registration {
  display: inline;
}

@media (max-width: 1279px) {
  .kofa-member-login-method__registration {
    display: block;
  }
}

.kofa-member-login-method__service {
  display: inline;
}

@media (max-width: 599px) {
  .kofa-member-login-method__service {
    display: block;
  }
}

.kofa-member-login-method__arrow {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
}

.kofa-member-login-guide {
  box-sizing: border-box;
  width: calc(100% - 16px);
  margin-block: 20px;
  padding: 24px 32px;
  border-radius: var(--kofa-radius-16);
  background: var(--kofa-color-gray-50);
}

@media (max-width: 1279px) {
  .kofa-member-login-guide {
    width: 100%;
  }
}

@media (max-width: 599px) {
  .kofa-member-login-guide {
    margin-block: 24px;
    padding-inline: 16px;
  }
}

.kofa-member-login-guide h2 {
  margin: 0 0 12px;
  font-size: var(--kofa-typo-headline-2-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-login-guide ul {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-login-guide__bullet {
  display: grid;
  flex: 0 0 24px;
  place-items: center;
  height: 24px;
}

.kofa-member-login-guide__bullet::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--kofa-color-amber-500);
  content: "";
}

.kofa-member-login__join {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
  padding-block: 20px;
  font-size: var(--kofa-typo-body-5-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 599px) {
  .kofa-member-login__join {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

.kofa-member-login__join a {
  color: inherit;
  font-weight: var(--kofa-font-weight-bold);
  text-decoration: underline;
}

.kofa-member-login-contact {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 12px 16px;
  margin-top: 20px;
  padding: 16px 24px;
  border-radius: var(--kofa-radius-16);
  background: var(--kofa-color-surface-information-subtle);
}

@media (max-width: 599px) {
  .kofa-member-login-contact {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 16px;
    margin-top: 24px;
    padding: 20px 16px;
  }
}

.kofa-member-login-contact__heading {
  display: flex;
  grid-column: 1 / 3;
  align-items: flex-start;
  gap: 16px;
}

@media (max-width: 599px) {
  .kofa-member-login-contact__heading {
    grid-column: 1;
    gap: 12px;
  }
}

.kofa-member-login-contact__icon {
  flex: 0 0 24px;
}

.kofa-member-login-contact__heading h2 {
  margin: 0;
  color: var(--kofa-color-text-information);
  font-size: var(--kofa-typo-headline-2-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-login-contact__details {
  grid-column: 2;
  min-width: 0;
}

@media (max-width: 599px) {
  .kofa-member-login-contact__details {
    grid-column: 1;
  }
}

.kofa-member-login-contact__instructions {
  display: grid;
  gap: 4px;
}

.kofa-member-login-contact__instructions p {
  margin: 0;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-login-contact__instructions p:first-child {
  color: var(--kofa-color-text-information);
}

.kofa-member-login-contact__email {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 12px 0 0;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
  overflow-wrap: anywhere;
}

.kofa-member-login-contact__email strong {
  font-weight: var(--kofa-font-weight-semibold);
}

.kofa-member-login-contact > .kofa-button {
  grid-column: 3;
  grid-row: 1 / 3;
  width: 136px;
  align-self: center;
}

@media (max-width: 599px) {
  .kofa-member-login-contact > .kofa-button {
    grid-column: 1;
    grid-row: auto;
    width: 100%;
  }
}

.kofa-member-login-contact--stacked {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin: 0;
  padding-block: 20px;
}

.kofa-member-login-contact--stacked .kofa-member-login-contact__heading {
  flex-direction: column;
  grid-column: 1;
  gap: 16px;
  margin-bottom: 12px;
}

@media (max-width: 1279px) {
  .kofa-member-login-contact--stacked .kofa-member-login-contact__heading {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
  }
}

.kofa-member-login-contact--stacked .kofa-member-login-contact__details {
  grid-column: 1;
  width: 100%;
  max-width: 352px;
  margin: 0;
}

@media (max-width: 1279px) {
  .kofa-member-login-contact--stacked .kofa-member-login-contact__details {
    max-width: none;
  }
}

.kofa-member-login-contact--stacked > .kofa-button {
  grid-column: 1;
  grid-row: auto;
  width: auto;
  margin-top: 12px;
  justify-self: start;
}

@media (max-width: 1279px) {
  .kofa-member-login-contact--stacked > .kofa-button {
    width: 100%;
    justify-self: stretch;
  }
}

@media (max-width: 599px) {
  .kofa-member-login-contact--stacked > .kofa-button {
    margin-top: 16px;
  }
}

.kofa-member-id-login {
  width: var(--kofa-layout-safe-width);
  margin-inline: auto;
  padding-block: 40px 80px;
  letter-spacing: var(--kofa-letter-spacing-base);
}

@media (max-width: 1279px) {
  .kofa-member-id-login {
    padding-block: 32px 64px;
  }
}

@media (max-width: 599px) {
  .kofa-member-id-login {
    padding-block: 24px 48px;
  }
}

.kofa-member-id-login > h1 {
  margin: 0 0 40px;
  font-size: var(--kofa-typo-headline-5-size);
  line-height: var(--kofa-line-height-base);
  text-align: center;
}

.kofa-member-id-login__sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 96px;
  align-items: start;
}

@media (max-width: 1279px) {
  .kofa-member-id-login__sections {
    gap: 40px;
  }
}

@media (max-width: 599px) {
  .kofa-member-id-login__sections {
    grid-template-columns: minmax(0, 1fr);
    gap: 56px;
  }
}

.kofa-member-id-login__support {
  display: grid;
  min-width: 0;
  gap: 12px;
}

.kofa-member-id-login__form {
  display: grid;
  min-width: 0;
  gap: 12px;
  margin: 0;
}

.kofa-member-id-login__fields {
  display: grid;
  gap: 20px;
  margin-bottom: 8px;
}

.kofa-member-id-login__utilities {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.kofa-member-id-login__find {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-id-login__find a {
  color: inherit;
  text-decoration: none;
}

.kofa-member-id-login__find > span {
  width: 1px;
  height: 14px;
  background: var(--kofa-color-border-default);
}

.kofa-member-id-login__other {
  display: grid;
  margin-top: 68px;
}

@media (max-width: 1279px) {
  .kofa-member-id-login__other {
    margin-top: 52px;
  }
}

@media (max-width: 599px) {
  .kofa-member-id-login__other {
    margin-top: 20px;
  }
}

.kofa-member-id-login__join {
  display: grid;
  gap: 12px;
  padding: 20px 24px;
  border-radius: var(--kofa-radius-16);
  background: var(--kofa-color-gray-50);
  text-align: left;
}

@media (max-width: 599px) {
  .kofa-member-id-login__join {
    padding-inline: 16px;
  }
}

.kofa-member-id-login__join h2 {
  margin: 0;
  font-size: var(--kofa-typo-headline-2-size);
  font-weight: var(--kofa-font-weight-bold);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-id-login__join p {
  margin: 0;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-login-dialog__caption {
  margin: 16px 0 0;
  padding: 8px 12px;
  border: 1px solid var(--kofa-color-border-default);
  border-radius: var(--kofa-radius-12);
  color: var(--kofa-color-text-01);
  letter-spacing: var(--kofa-letter-spacing-base);
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-login-dialog__close {
  position: absolute;
  top: 10px;
  right: 7px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.kofa-member-id-login__join > .kofa-button {
  margin-top: 12px;
}

.kofa-member-login-method__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.kofa-member-login-guide li {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  padding-block: 8px;
}

.kofa-member-id-login__failure {
  margin: 0;
  color: var(--kofa-color-text-danger);
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-login-guide strong {
  font-weight: var(--kofa-font-weight-semibold);
}

.kofa-member-login-dialog__caption ul {
  margin: 0;
  padding-left: 20px;
}

/* 회원가입 퍼블. 인증·가입 요청과 단계 세션 검증은 후속 연동 단계 소유다. */
.kofa-member-join {
  display: flex;
  flex-direction: column;
  width: var(--kofa-layout-safe-width);
  margin-inline: auto;
  padding-block: 40px 80px;
  letter-spacing: var(--kofa-letter-spacing-base);
}

@media (max-width: 1279px) {
  .kofa-member-join {
    padding-top: 32px;
  }
}

@media (max-width: 599px) {
  .kofa-member-join {
    padding-block: 24px 48px;
  }
}

/* 유형 선택은 단계 표시 없이 본문이 바로 시작한다. */
.kofa-member-join--types {
  padding-top: 40px;
}

@media (max-width: 1279px) {
  .kofa-member-join--types {
    padding-block: 40px 64px;
  }
}

@media (max-width: 599px) {
  .kofa-member-join--types {
    padding-block: 24px 48px;
  }
}

.kofa-member-join__heading {
  display: grid;
  justify-items: center;
  margin-bottom: 40px;
}

@media (max-width: 1279px) {
  .kofa-member-join__heading {
    margin-bottom: 32px;
  }
}

@media (max-width: 599px) {
  .kofa-member-join__heading {
    margin-bottom: 24px;
  }
}

.kofa-member-steps {
  display: flex;
  gap: 56px;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 599px) {
  .kofa-member-steps {
    gap: 24px;
    width: min(312px, 100%);
    justify-content: space-between;
  }
}

.kofa-member-steps__step {
  position: relative;
  display: grid;
  gap: 12px;
  width: 60px;
  text-align: center;
  font-size: var(--kofa-typo-body-3-size);
  font-weight: var(--kofa-font-weight-semibold);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-steps__step:not(:last-child)::after {
  position: absolute;
  top: 30px;
  left: 62px;
  width: 52px;
  border-top: 2px dashed var(--kofa-color-border-default);
  content: "";
}

@media (max-width: 599px) {
  .kofa-member-steps__step:not(:last-child)::after {
    width: 20px;
  }
}

.kofa-member-steps__marker {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  color: var(--kofa-color-text-03);
  background: var(--kofa-color-gray-50);
  font-size: var(--kofa-typo-body-4-size);
  font-weight: var(--kofa-font-weight-bold);
}

.kofa-member-steps__step--current .kofa-member-steps__marker {
  color: var(--kofa-color-surface-white);
  background: var(--kofa-color-text-01);
}

.kofa-member-steps__step--complete .kofa-member-steps__marker {
  background: var(--kofa-color-border-default);
}

.kofa-member-join__types {
  width: 100%;
  margin-inline: auto;
}

@media (max-width: 1279px) {
  .kofa-member-join__types {
    width: 100%;
  }
}

.kofa-member-join__welcome {
  display: grid;
  gap: 12px;
  margin-bottom: 24px;
  text-align: center;
}

@media (max-width: 1279px) {
  .kofa-member-join__welcome {
    text-align: left;
  }
}

.kofa-member-join__welcome h2 {
  margin: 0;
  font-size: var(--kofa-typo-headline-3-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-join__welcome p {
  margin: 0;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 599px) {
  .kofa-member-join__welcome p br {
    display: none;
  }
}

.kofa-member-join__type-options {
  display: grid;
  grid-auto-columns: minmax(0, 1fr);
  grid-auto-flow: column;
  gap: 32px;
}

@media (max-width: 1279px) {
  .kofa-member-join__type-options {
    gap: 24px;
  }
}

@media (max-width: 599px) {
  .kofa-member-join__type-options {
    grid-auto-flow: row;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
}

.kofa-member-join-type {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30px 16px;
  border: 1px solid var(--kofa-color-border-default);
  border-radius: var(--kofa-radius-16);
  color: var(--kofa-color-text-01);
  text-align: center;
  text-decoration: none;
}

@media (max-width: 1279px) {
  .kofa-member-join-type {
    padding: 24px;
  }
}

@media (max-width: 599px) {
  .kofa-member-join-type {
    padding: 20px;
  }
}

.kofa-member-join-type__symbol {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  margin-bottom: 24px;
  border-radius: 50%;
  background: var(--kofa-color-gray-50);
}

@media (max-width: 599px) {
  .kofa-member-join-type__symbol {
    margin-bottom: 16px;
  }
}

.kofa-member-join-type strong {
  margin-bottom: 8px;
  font-size: var(--kofa-typo-headline-2-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-join-type > span:last-child {
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-join__navigation {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin-inline: auto;
}

.kofa-member-join__panel {
  box-sizing: border-box;
  display: grid;
  gap: 32px;
  width: 100%;
  margin: 20px auto 0;
  padding: 32px 40px;
  border: 1px solid var(--kofa-color-border-default);
  border-radius: var(--kofa-radius-20);
}

@media (max-width: 599px) {
  .kofa-member-join__panel {
    gap: 24px;
    margin-top: 24px;
    padding: 0;
    border: 0;
    border-radius: 0;
  }
}

.kofa-member-join__introduction {
  display: grid;
  gap: 16px;
}

@media (max-width: 599px) {
  .kofa-member-join__introduction {
    gap: 12px;
  }
}

.kofa-member-join__introduction--result {
  gap: 16px;
}

.kofa-member-join__introduction h2 {
  margin: 0;
  font-size: var(--kofa-typo-headline-4-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 1279px) {
  .kofa-member-join__introduction h2 {
    font-size: 22px;
  }
}

.kofa-member-join__introduction p {
  margin: 0;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 599px) {
  .kofa-member-join__introduction-break {
    display: none;
  }
}

.kofa-member-join__identity {
  display: grid;
  gap: 16px;
}

.kofa-member-identity-help {
  max-width: 595px;
  display: grid;
  gap: 16px;
  margin: 0;
}

.kofa-member-identity-help > div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 24px;
}

@media (max-width: 599px) {
  .kofa-member-identity-help > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
}

.kofa-member-identity-help dt {
  color: var(--kofa-color-text-01);
  font-weight: var(--kofa-font-weight-semibold);
}

.kofa-member-identity-help dd {
  margin: 0;
}

.kofa-member-terms {
  display: grid;
  gap: 16px;
}

.kofa-member-terms__all {
  display: flex;
  padding: 20px;
  border: 1px solid var(--kofa-color-border-default);
  border-radius: var(--kofa-radius-16);
}

.kofa-member-terms__item:not(:last-child) {
  border-bottom: 1px solid var(--kofa-color-divider-02);
}

.kofa-member-terms__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 20px;
}

@media (max-width: 599px) {
  .kofa-member-terms__row {
    align-items: flex-start;
    padding-inline: 16px;
  }
}

.kofa-member-terms__consent {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.kofa-member-terms__requirement {
  color: var(--kofa-color-text-danger);
  font-size: var(--kofa-typo-body-3-size);
  font-weight: var(--kofa-font-weight-semibold);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-terms__toggle {
  letter-spacing: var(--kofa-letter-spacing-base);
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 2px;
  padding: 0;
  border: 0;
  color: var(--kofa-color-text-03);
  background: transparent;
  font: inherit;
  font-size: var(--kofa-typo-body-2-size);
  font-weight: var(--kofa-font-weight-semibold);
  line-height: var(--kofa-line-height-base);
  cursor: pointer;
}

@media (max-width: 599px) {
  .kofa-member-terms__toggle {
    margin-top: 2px;
  }
}

@media (max-width: 599px) {
  .kofa-member-terms__toggle > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
}

.kofa-member-terms__toggle img {
  transition: transform 220ms cubic-bezier(0.2, 0, 0, 1);
}

@media (max-width: 599px) {
  .kofa-member-terms__toggle img {
    width: 20px;
    height: 20px;
  }
}

.kofa-member-terms__toggle[aria-expanded="true"] img {
  transform: rotate(180deg);
}

.kofa-member-terms__panel {
  box-sizing: border-box;
  overflow: hidden;
  padding: 16px 20px;
}

@media (max-width: 599px) {
  .kofa-member-terms__panel {
    padding-inline: 16px;
  }
}

.kofa-member-terms__panel[hidden] {
  display: none;
}

.kofa-member-terms__reading {
  max-width: 592px;
  max-height: 147px;
  overflow-y: auto;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 1279px) {
  .kofa-member-terms__reading {
    max-width: 592px;
  }
}

@media (max-width: 599px) {
  .kofa-member-terms__reading {
    max-width: none;
  }
}

.kofa-member-terms__channels {
  display: flex;
  flex-basis: 100%;
  align-items: center;
  gap: 16px;
  margin-top: 10px;
  padding-left: 32px;
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 1279px) {
  .kofa-member-terms__channels {
    flex-wrap: wrap;
    gap: 20px;
  }
}

@media (max-width: 599px) {
  .kofa-member-terms__channels {
    gap: 10px;
    margin-top: 20px;
  }
}

@media (max-width: 599px) {
  .kofa-member-terms__channels > label + label {
    margin-left: 10px;
  }
}

.kofa-member-terms__channels[hidden] {
  display: none;
}

.kofa-member-terms__channels > strong {
  margin-right: 8px;
  font-weight: var(--kofa-font-weight-semibold);
}

@media (max-width: 1279px) {
  .kofa-member-terms__channels > strong {
    flex: 0 0 60px;
    margin-right: 12px;
  }
}

@media (max-width: 599px) {
  .kofa-member-terms__channels > strong {
    margin-right: 0;
  }
}

.kofa-member-registration {
  gap: 32px;
}

.kofa-member-registration__fields {
  display: grid;
  gap: 40px;
  padding-inline: 0;
}

@media (max-width: 599px) {
  .kofa-member-registration__fields {
    gap: 32px;
  }
}

.kofa-member-registration__id {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
}

.kofa-member-registration__id > button {
  margin-top: 0;
}

.kofa-member-registration__row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: start;
  gap: 24px;
}

@media (max-width: 599px) {
  .kofa-member-registration__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
}

.kofa-member-registration__label {
  display: flex;
  align-items: center;
  gap: 4px;
  padding-top: 16px;
  font-size: var(--kofa-typo-body-4-size);
  font-weight: var(--kofa-font-weight-semibold);
  line-height: var(--kofa-line-height-base);
  letter-spacing: var(--kofa-letter-spacing-base);
}

@media (max-width: 599px) {
  .kofa-member-registration__label {
    padding-top: 0;
  }
}

.kofa-member-registration__submit {
  display: grid;
  padding-inline: 20px;
}

@media (max-width: 599px) {
  .kofa-member-registration__submit {
    padding-inline: 0;
  }
}

.kofa-member-join__panel--result {
  width: min(690px, 100%);
  padding: 56px 28px;
  text-align: center;
}

@media (max-width: 599px) {
  .kofa-member-join__panel--result {
    padding: 32px 16px;
    border: 1px solid var(--kofa-color-border-default);
    border-radius: var(--kofa-radius-20);
    gap: 32px;
  }
}

.kofa-member-join__result-actions {
  margin-inline: 12px;
  display: grid;
  grid-template-columns: minmax(0, 301fr) minmax(0, 299fr);
  gap: 8px;
}

@media (max-width: 599px) {
  .kofa-member-join__result-actions {
    margin-inline: 0;
  }
}

.kofa-member-join-authentication {
  letter-spacing: var(--kofa-letter-spacing-base);
}

.kofa-member-join-next {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 24px 0;
  border: 0;
  color: var(--kofa-color-text-01);
  background: transparent;
  font: inherit;
  font-size: var(--kofa-typo-body-4-size);
  font-weight: var(--kofa-font-weight-semibold);
  line-height: var(--kofa-line-height-base);
  letter-spacing: var(--kofa-letter-spacing-base);
  cursor: pointer;
}

.kofa-member-join-next__icon {
  transform: rotate(180deg);
}

.kofa-member-terms__item:last-child .kofa-member-terms__requirement {
  color: var(--kofa-color-text-03);
}

.kofa-member-identity-note {
  max-width: 592px;
  margin: 0;
}

@media (max-width: 599px) {
  .kofa-member-identity-note {
    max-width: none;
  }
}

.kofa-member-identity-url {
  font-weight: var(--kofa-font-weight-semibold);
}

.kofa-member-guardian-consent {
  display: grid;
  gap: 10px;
  padding-block: 24px;
  border-radius: var(--kofa-radius-16);
  background: var(--kofa-color-gray-50);
}

@media (max-width: 599px) {
  .kofa-member-guardian-consent {
    padding-block: 20px;
  }
}

.kofa-member-guardian-consent h2 {
  margin: 0;
  font-size: var(--kofa-typo-body-5-size);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 599px) {
  .kofa-member-guardian-consent h2 span {
    display: block;
  }
}

.kofa-member-guardian-consent p {
  margin: 0;
  padding-block: 8px;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-guardian-consent__confirmation {
  display: flex;
  justify-content: flex-end;
  padding-inline: 40px;
}

@media (max-width: 599px) {
  .kofa-member-guardian-consent__confirmation {
    padding-inline: 16px;
  }
}

.kofa-member-registration__fields--full {
  padding-inline: 0;
}

.kofa-member-birth {
  display: grid;
  gap: 6px;
}

.kofa-member-birth__parts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.kofa-member-birth__description {
  margin: 0;
  color: var(--kofa-color-text-03);
  font-size: var(--kofa-typo-body-2-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-birth__error[hidden] {
  display: none;
}

.kofa-member-birth__error {
  margin: 0;
  color: var(--kofa-color-error-500);
  font-size: var(--kofa-typo-body-2-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-phone {
  display: grid;
  gap: 8px;
}

.kofa-member-phone__parts {
  display: grid;
  grid-template-columns: minmax(0, 160px) minmax(0, 1fr);
  gap: 8px;
}

@media (max-width: 599px) {
  .kofa-member-phone__parts {
    grid-template-columns: minmax(0, 1fr);
  }
}

.kofa-member-phone__country {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 15px 16px;
  border: 1px solid var(--kofa-color-border-default);
  border-radius: var(--kofa-radius-20);
  background: var(--kofa-color-surface-white);
  color: var(--kofa-color-text-03);
  font: inherit;
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
  text-align: left;
  cursor: pointer;
}

.kofa-member-email-verification__fields {
  display: grid;
  gap: 20px;
}

.kofa-member-email-verification + .kofa-member-registration__submit {
  margin-top: 32px;
}

.kofa-member-email-verification__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.kofa-member-email-verification__code {
  position: relative;
  min-width: 0;
}

.kofa-member-email-verification__timer {
  position: absolute;
  top: 19px;
  right: 16px;
  color: var(--kofa-color-text-03);
  font-size: var(--kofa-typo-body-2-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-country-selector__option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 30px 14px 0;
  color: var(--kofa-color-text-03);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
  cursor: pointer;
}

.kofa-member-country-selector__option input {
  appearance: none;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 0 6px 0 2px;
  border: 1px solid var(--kofa-color-gray-300);
  border-radius: 50%;
}

.kofa-member-country-selector__option input:checked {
  border: 5px solid var(--kofa-color-border-default);
  background: var(--kofa-color-text-01);
}

.kofa-member-country-selector__option strong {
  color: var(--kofa-color-text-01);
  font-weight: var(--kofa-font-weight-bold);
}

.kofa-member-country-selector__number {
  margin-left: auto;
}

.kofa-member-email-verification__code-field[hidden] {
  display: none;
}

.kofa-member-country-selector__option[hidden] {
  display: none;
}

.kofa-member-registration__submit--full {
  padding-inline: 0;
}

.kofa-member-steps--fluid {
  justify-content: space-between;
  gap: 0;
  width: min(408px, 100%);
}

@media (max-width: 599px) {
  .kofa-member-steps--fluid {
    width: min(312px, 100%);
  }
}

.kofa-member-email-verification__feedback[hidden] {
  display: none;
}

.kofa-member-birth--error {
  gap: 6px;
}

.kofa-member-birth__controls {
  display: grid;
  gap: 8px;
}

.kofa-member-registration__id-description[hidden] {
  display: none;
}

.kofa-member-guardian-consent__copy {
  display: grid;
  gap: 12px;
  padding-inline: 40px;
}

@media (max-width: 599px) {
  .kofa-member-guardian-consent__copy {
    padding-inline: 16px;
  }
}

.kofa-member-guardian-consent__divider {
  position: relative;
  width: calc(100% - 40px);
  height: 16px;
}

@media (max-width: 1279px) {
  .kofa-member-guardian-consent__divider {
    width: calc(100% - 80px);
    margin-inline: auto;
  }
}

@media (max-width: 599px) {
  .kofa-member-guardian-consent__divider {
    width: calc(100% - 32px);
  }
}

.kofa-member-guardian-consent__divider::before {
  position: absolute;
  top: 8px;
  right: 0;
  left: 0;
  border-top: 1px solid var(--kofa-color-border-default);
  content: "";
}

/* 회원 정보 찾기 */
.kofa-member-find {
  width: min(690px, var(--kofa-layout-safe-width));
  margin-inline: auto;
  padding-block: 40px 80px;
  letter-spacing: var(--kofa-letter-spacing-base);
}

@media (max-width: 599px) {
  .kofa-member-find {
    padding-block: 24px 48px;
  }
}

.kofa-member-find__panel {
  display: grid;
  gap: 24px;
  margin-top: 0;
  padding: 32px 40px;
  border: 1px solid var(--kofa-color-text-01);
  border-top: 0;
  border-radius: 0 0 var(--kofa-radius-20) var(--kofa-radius-20);
}

@media (max-width: 599px) {
  .kofa-member-find__panel {
    margin-top: 32px;
    padding: 0;
    border: 0;
    border-radius: 0;
  }
}

.kofa-member-find__panel--email {
  gap: 32px;
  border: 0;
  box-shadow: inset 1.5px 0 var(--kofa-color-text-01), inset -1.5px 0 var(--kofa-color-text-01), inset 0 -1.5px var(--kofa-color-text-01);
}

@media (max-width: 1279px) {
  .kofa-member-find__panel--email {
    gap: 24px;
    padding-inline: 41.5px;
  }
}

@media (max-width: 599px) {
  .kofa-member-find__panel--email {
    padding: 0;
    box-shadow: none;
  }
}

.kofa-member-find__panel--result {
  padding-block: 56px;
  text-align: center;
}

@media (max-width: 599px) {
  .kofa-member-find__panel--result {
    padding-block: 0;
  }
}

.kofa-member-find__panel--complete {
  gap: 32px;
}

@media (max-width: 1279px) {
  .kofa-member-find__panel--complete {
    gap: 24px;
  }
}

.kofa-member-find__introduction {
  display: grid;
  gap: 16px;
}

.kofa-member-find__introduction--method {
  gap: 16px;
}

@media (max-width: 599px) {
  .kofa-member-find__introduction--method {
    gap: 12px;
  }
}

.kofa-member-find__introduction h2 {
  margin: 0;
  font-size: var(--kofa-typo-headline-4-size);
  font-weight: var(--kofa-font-weight-bold);
  line-height: var(--kofa-line-height-base);
}

@media (max-width: 1279px) {
  .kofa-member-find__introduction h2 {
    font-size: var(--kofa-typo-headline-compact-size);
  }
}

.kofa-member-find__introduction p {
  margin: 0;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-4-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-find__methods {
  display: grid;
  gap: 12px;
}

.kofa-member-find [hidden] { display: none; }

.kofa-member-find-method {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 20px;
  border: 1px solid var(--kofa-color-border-default);
  border-radius: var(--kofa-radius-16);
  color: var(--kofa-color-text-01);
  background: var(--kofa-color-surface-white);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  letter-spacing: var(--kofa-letter-spacing-base);
}

@media (max-width: 599px) {
  .kofa-member-find-method {
    padding: 16px;
    border: 0;
    box-shadow: inset 0 0 0 1px var(--kofa-color-border-default);
  }
}

.kofa-member-find-method--password {
  padding: 20px;
  border: 1px solid var(--kofa-color-border-default);
  box-shadow: none;
}

.kofa-member-find-method__icon {
  flex: 0 0 28px;
}

@media (max-width: 599px) {
  .kofa-member-find-method__icon {
    flex-basis: 24px;
    width: 24px;
    height: 24px;
  }
}

.kofa-member-find-method--password .kofa-member-find-method__icon {
  flex-basis: 28px;
  width: 28px;
  height: 28px;
}

.kofa-member-find-method__copy {
  display: grid;
  flex: 1 1 0;
  min-width: 0;
  gap: 6px;
}

.kofa-member-find-method__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.kofa-member-find-method__label strong {
  font-size: var(--kofa-typo-headline-2-size);
  font-weight: var(--kofa-font-weight-bold);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-find-method__description {
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-find__notes {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--kofa-color-text-03);
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-find__contact {
  display: grid;
  gap: 8px;
  padding-top: 24px;
  box-shadow: inset 0 1px 0 var(--kofa-color-border-default);
  text-align: center;
  width: min(608px, 100%);
}

.kofa-member-find__contact--email {
  display: grid;
}

@media (max-width: 1279px) {
  .kofa-member-find__contact--email {
    display: none;
  }
}

.kofa-member-find__contact p {
  margin: 0;
  color: var(--kofa-color-text-02);
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-find__contact-details {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

@media (max-width: 599px) {
  .kofa-member-find__contact-details {
    flex-wrap: wrap;
  }
}

.kofa-member-find__contact-details strong {
  font-size: var(--kofa-typo-body-4-size);
  font-weight: var(--kofa-font-weight-semibold);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-find__contact-details span {
  font-size: var(--kofa-typo-body-3-size);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-find__fields {
  display: grid;
  gap: 24px;
}

.kofa-member-find__result-content {
  display: grid;
  gap: 24px;
}

.kofa-member-find__accounts {
  display: grid;
  gap: 12px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.kofa-member-find__accounts li {
  padding: 20px;
  border-radius: var(--kofa-radius-12);
  background: var(--kofa-color-gray-50);
  font-size: var(--kofa-typo-headline-3-size);
  font-weight: var(--kofa-font-weight-bold);
  line-height: var(--kofa-line-height-base);
}

.kofa-member-find__result-actions {
  display: grid;
  grid-template-columns: minmax(0, 301fr) minmax(0, 299fr);
  gap: 8px;
}

.kofa-member-find__send {
  width: 116px;
}

.kofa-member-find__send--verified {
  width: 120px;
}
