@charset "utf-8";


/*
	** 회원 관련 CSS(로그인, 회원가입)
*/

.member-form {
    max-width: 600px;
    margin:80px auto;
}

.member-form .form-row {
    display: block;
    border:none;
}
.member-form .form-title {
    display: block;
    margin-bottom:5px;
}
.member-form .form-item {
    gap:0;
    margin-bottom:10px;
}
.member-form .form-item:last-child {
    margin-bottom:0;
}
.member-form .form-item .m-boardWrite {
    width:100%;
}
.member-certify {
    position: relative;
    width: 100%;
}
.member-certify .certify-count {
    position: absolute;
    right:15px;
    top:50%;
    transform:translateY(-50%);
    color: #999;
    font-size: var(--font-size-14);
}
.member-sns {
    display: flex;
    align-items: center;
    gap:10px;
    margin-top:var(--space-md);
    padding-top:var(--space-md);
    border-top:1px solid #ddd;
    max-width: 600px;
    margin:30px auto;
    border:1px solid #ddd;
    border-radius: 20px 0 20px 0;
    padding:50px;
    flex-flow: column;
    box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.1);
}
.member-sns .member-info-txt {
    padding-bottom: 20px;
}
.login-title {
    margin-bottom: 8px;
    color: #222;
    font-size: 28px;
    font-weight: 700;
    text-align: center;
}
.login-subtitle {
    margin-bottom: 24px;
    color: #666;
    font-size: 18px;
    text-align: center;
}
.member-sns .button {
    flex: 1 1 auto;
    position: relative;
    gap:8px;
    min-width: 250px;
}
.member-sns .button.naver {
    background-color: #03c75a;
    border-color: #03c75a;
    color: #fff;
}
.member-sns .button.kakao {
    background-color: #f4e24f;
    border-color: #f4e24f;
    color: #000;
}
.member-sns .button.google {
    background-color: #fff;
    border-color: #ddd;
    color: #000;
}
.member-sns .button::before {
    display: inline-flex;
    align-items: center;
    content:"";
}
.member-sns .button.naver::before {
    width: 14px;
    height: 14px;
    background:url("../img/icon-naver-white.svg") no-repeat center center;
    margin-top:-1px;
}
.member-sns .button.kakao::before {
    width: 19px;
    height: 18px;
    background:url("../img/icon-kakao-brown.svg") no-repeat center center;
}
.member-sns .button.google::before {
    width: 14px;
    height: 14px;
    background:url("../img/google-color.svg") no-repeat center center;
    margin-top:-1px;
}
.member-lnk {
    --member-space: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap:var(--member-space);
    margin-top:var(--space-md);
}
.member-lnk .lnk {
    position: relative;
    color: #888;
}
.member-lnk .lnk:not(:last-child)::after {
    display: block;
    content:"";
    width: 1px;
    height: 12px;
    background:#ddd;
    position: absolute;
    right:calc(var(--member-space) / -2);
    top:50%;
    transform:translateY(-50%);
}
@media all and (max-width: 767px) {
    .member-sns {
        flex-direction: column;
        gap:5px;
        margin-top:var(--space-sm);
        padding-top:var(--space-sm);
        margin-inline: 20px;
        border: none;
        box-shadow: none;
    }
    .member-sns .button {
        width: 100%;
    }
    .member-lnk {
        --member-space: 20px;
        margin-top:var(--space-sm);
    }
    .member-lnk .lnk {
        font-size: var(--font-size-14);
    }
    .member-lnk .lnk:not(:last-child)::after {

    }
}


.policy-docu {
    color: #616161;
}
.policy-docu article:first-of-type {
    margin-top: 0;
}
.policy-docu article > * + * {
    margin-top: 16px;
}
.policy-area-lg {
    margin-top: 100px;
}
.policy-area-md {
    margin-top: 60px;
}
.policy-area-sm {
    margin-top: 30px;
}
.policy-docu :is(.title-lg,.title-md,.title-sm,.title-xs) {
    font-weight: 700;
    color: #1d1d1d;
}
.policy-docu .policy-title {
    color: var(--color-primary);
    border-bottom: 1px solid #dcdcdc;
    padding-bottom: 10px;
}
.policy-docu strong {
    font-weight: 700;
}
.policy-line {
    border-bottom: 1px solid #dcdcdc;
}
.policy-box {
    padding: 40px;
    border: 1px solid #dcdcdc;
}
.policy-box.small {
    padding: 15px 20px;
}
.policy-box > * + * {
    margin-top: 12px;
}
.policy-box + .policy-box {
    margin-top: 16px;
}
.policy-list + .policy-box {
    margin-top: 24px;
}
.policy-txt {
    margin: 0;
}
.policy-list ul {
    margin-top: 8px;
}
.policy-list > li {
    position: relative;
    padding-left: 13px;
}
.policy-list > li:not(:last-child) {
    margin-bottom: 8px;
}
.policy-list li::before {
    position: absolute;
    top: 0;
    left: 0;
}
.policy-list.disc > li::before {
    content: "•";
    font-size: var(--font-size-13);
}
.policy-list.dash > li::before {
    content: "-";
}
.policy-list:is(.decimal, .hangul, .lower-alpha, .upper-alpha) {
    padding-left: 20px;
}
.policy-list:is(.decimal, .hangul, .lower-alpha, .upper-alpha) > li {
    padding-left: 3px;
}
.policy-list.decimal > li {
    list-style: decimal;
}
.policy-list.hangul > li {
    list-style: hangul;
}
.policy-list.lower-alpha > li {
    list-style: lower-alpha;
}
.policy-list.upper-alpha > li {
    list-style: upper-alpha;
}

@media all and (max-width: 767px) {
    .policy-box {
        padding: 15px 20px;
    }
}

.member-form .form-item.box-style {
    border: 1px solid #ddd;
    padding: 20px;
    border-radius: 10px;
    gap: 10px;
}
.member-form .form-item .item-row {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
.member-form .form-item .item-row .item-title {
    flex: 0 0 80px;
}
.member-form .form-item .item-row.row-header {
    border-bottom: 1px solid #ddd;
    padding-bottom: 10px;
}
.member-form .form-item .item-row .button {
    white-space: nowrap;
}
.member-form .form-item .item-row select {
    min-width: 150px;
}

.portfolio-wrap {
    max-width: 800px;
    margin:20px auto;
}
.portfolio-item {
    margin-bottom: 50px;
    border-top: 2px solid var(--color-primary);
    border-bottom: 1px solid #ddd;
}
.portfolio-item .item-title {
    font-size: 1.1em;
    font-weight: 600;
    padding: 15px 20px;
    border-bottom: 1px solid #ddd;
}
.portfolio-item.profile {
    border: 1px solid #ddd;
    border-radius: 20px;
    padding:20px 30px;
    box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
}
.profile-desc div {
    margin: 5px 0
}
.portfolio-item.profile .name {
    font-weight: 600;
    font-size: 1.2em;
}
.portfolio-item.profile .class {
    color: var(--color-primary);
}
.tag-box {
    padding-top: 20px;
    display: flex;
    flex-flow: wrap;
    gap: 5px;
}
.tag-box .tag {
    padding: 5px 15px;
    background-color: #F6FAFF;
    border: 1px solid #ddd;
    border-radius: 30px;
    font-size: 0.9em;
    line-height: 1;
}

.item-list {
    padding: 10px 0;
}
.item-list ul li {
    padding: 10px 20px;
    display: flex;
    align-items: center;
    gap: 20px;
}
.item-list .title {
    position: relative;
    flex: 0 0 90px;
    display: flex;
    align-items: center;
    gap: 5px;
}
.item-list .title::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translatey(-50%);
    width: 1px;
    height: 14px;
    background-color: #ccc;
}
.item-list .title::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    background: url('../img/icon-blog.png') no-repeat center center;
    background-size: cover;
    text-align: center;
}
.item-list .title.notion::before {
    background-image: url('../img/icon-notion.png');
}
.item-list .title.git::before {
    background-image: url('../img/icon-github.png');
}
.item-list .title.blog::before {
    background-image: url('../img/icon-blog.png');
}
.item-list .title.etc::before {
    background-image: url('../img/icon-link.png');
}
.item-list a {
    text-decoration: underline;
    flex: 1;                /* 남은 영역 차지 */
    min-width: 0;           /* ⭐ flex 말줄임 핵심 */
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.item-list .badge {
    display: flex;
    gap: 5px;
    align-items: center;
}
.item-list.link-style a {
    display: flex;
    align-items: center;
}
.item-list.link-style a::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    background: url('../img/icon-attach.png') no-repeat center center;
    background-size: cover;
    text-align: center;
    margin-right: 5px;
}

@media all and (max-width: 520px) {
    .portfolio-item.profile {
        padding: 20px;
    }
    .portfolio-item .item-title {
        padding: 15px 0;
    }
    .item-list ul li {
        padding: 10px 0;
    }
}


