/* 로그인 화면 전체 감싸기 */
.login-wrapper {
    max-width: 420px;
    margin: 60px auto;
    padding: 0 20px;
}

/* 카드 박스 */
.login-card {
    background: #ffffff;
    padding: 32px 28px;
    border-radius: 12px;
    border: 1px solid #dbe4ea;
    box-shadow: 0 4px 8px rgba(0,0,0,0.05);
}

/* 제목 */
.login-title {
    text-align: center;
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 24px;
    color: #1f3f55;
}

/* social login 영역 */
.social-login {
    text-align: center;
    margin-bottom: 20px;
}

.login-divider {
    text-align: center;
    margin: 20px 0;
    color: #777;
    font-size: 0.9rem;
}

/* form 필드 */
.login-form p {
    margin-bottom: 15px;
}

.login-form input[type="text"],
.login-form input[type="email"],
.login-form input[type="password"] {
    width: 100%;
    border: 1px solid #ccd6dd;
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 1rem;
}

/* 로그인 버튼 */
.login-btn {
    width: 100%;
    margin-top: 10px;
    padding: 10px;
    font-size: 1rem;
    background: #1f7fc0 !important;
    color: white !important;
    border: none !important;
    border-radius: 8px;
    cursor: pointer;
}

/* 하단 안내 */
.login-bottom {
    text-align: center;
    margin-top: 20px;
    font-size: 0.9rem;
}

.login-bottom a {
    color: #1f7fc0;
    text-decoration: none;
}
.login-bottom a:hover {
    text-decoration: underline;
}

.login-btn:hover {
    background: #166497 !important;
}

.login-form label {
    font-size: 0.9rem;
    margin-bottom: 5px;
    display: block;
    color: #333;
}

.login-form input {
    margin-top: 4px;
}

/* 입력칸과 버튼을 같은 박스 모델로 맞추기 */
.login-form input[type="text"],
.login-form input[type="email"],
.login-form input[type="password"],
.login-btn {
    box-sizing: border-box;
}

.social-buttons {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* 모든 소셜 버튼 공통 */
.social-btn {
    width: 100%;               /* 폼과 동일한 폭 */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 12px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 600;
    box-sizing: border-box;
}

/* 버튼 왼쪽 아이콘 */
.social-icon {
    width: 20px;
    height: 20px;
    margin-right: 10px;
}

/* Google 버튼 */
.google-btn {
    background: #ffffff;
    color: #3c4043 !important;    /* Google standard gray */
    border: 1px solid #dadce0;
}
.google-btn:hover {
    background: #f7f7f7;
}

/* Kakao 버튼 */
.kakao-btn {
    background: #FEE500;
    color: #1a1a1a !important;    /* Kakao black */
    border: none;
}
.kakao-btn:hover {
    background: #f2d600;
}

/* 회원가입 설명 문구 */
.login-description {
    text-align: center;
    font-size: 0.95rem;
    color: #555;
    margin-bottom: 18px;
}

/* signup 폼 필드 한 줄 */
.form-field {
    margin-bottom: 16px;
}

.form-field label {
    display: block;
    font-size: 0.9rem;
    margin-bottom: 4px;
    color: #333;
}

/* 도움말 (비밀번호 조건 등) */
.form-field .helptext,
.form-field ul {
    display: block;
    margin-top: 4px;
    font-size: 0.8rem;
    color: #777;
}

/* 비밀번호 조건이 <ul><li>로 나오는 경우 */
.form-field ul {
    padding-left: 18px;
}
.form-field ul li {
    margin-bottom: 2px;
}

/* 에러 메시지 */
.form-field .error {
    display: block;
    margin-top: 4px;
    font-size: 0.8rem;
    color: #c0392b;
}

.login-description {
    text-align: center;
    font-size: 0.95rem;
    color: #555;
    margin-bottom: 20px;  /* 필요하면 18 → 20~24 정도로 */
}
