@charset "utf-8";

body {
    display: flex;
    flex-direction: column;
    height: 100vh; /* 전체 화면 높이 */
    margin: 0; /* 기본 마진 제거 */
}

/* 헤더 시작 */
header {
    height: 150px; 
    flex-shrink: 0; /* 헤더는 고정 크기 유지 */
    background-image: linear-gradient(-225deg, #FFFEFF 0%, #D7FFFE 100%);
    display: flex; /* flex로 변경 */
    flex-direction: column; /* 세로 방향으로 정렬 */
    justify-content: center; 
    align-items: center; 
    padding: 10px 20px; /* 패딩 추가 */
    position: fixed;
    width: 100%;
    z-index: 1000;
}

.index-logo a{
    text-decoration: none; /* 밑줄 제거 */
     color: inherit;
}
.index-nav {
    text-align: center; /* 중앙 정렬 */
    padding: 10px 0; /* 상하 패딩 */
    font-size: 18px;
}

.nav {
    list-style-type: none; /* 기본 리스트 스타일 제거 */
    padding: 0; /* 패딩 제거 */
    margin: 0; /* 마진 제거 */
    display: flex; /* flex로 변경하여 수평 정렬 */
    justify-content: center; /* 중앙 정렬 */
}

.nav-item {
    display: flex; /* 수평 정렬 */
    position: relative; /* 자식 요소의 위치 기준 */
    margin: 0 10px; /* 양쪽 간격을 10px씩 추가 */
}
.nav-item:hover{
    color: #8A2BE2; /* 마우스 오버 시 색상 변경 */
}

.nav-link {
    color: #333333; /* 기본 텍스트 색상 */
    text-decoration: none; /* 밑줄 제거 */
    padding: 10px 15px; /* 패딩 추가 */
}

.nav-link i {
    font-size: 24px; /* 아이콘 크기 조정 */
    color: #333333; /* 아이콘 색상 조정 */
    margin-right: 5px; /* 아이콘과 텍스트 간의 간격 조정 */
}
.nav-link i:hover{
    color: #8A2BE2; /* 마우스 오버 시 색상 변경 */
}

.nav-item .nav-link {
    display: flex; /* 아이콘과 텍스트를 수평으로 정렬 */
    align-items: center; /* 수직 중앙 정렬 */
}

.nav-link:hover {
    color: #8A2BE2; /* 마우스 오버 시 색상 변경 */
}

.nav-link.active {
    font-weight: bold; /* 활성화된 링크 강조 */
}


/* 드롭다운 메뉴 스타일 */
.dropdown {
    display: none; /* 기본적으로 드롭다운 숨김 */
    position: relative; /* 드롭다운 위치 설정 */
}

.dropdown-button {
    background-color: #333333; /* 버튼 배경색 */
    color: white; /* 버튼 텍스트 색상 */
    padding: 8px 8px; /* 패딩 추가 */
    border: none; /* 테두리 제거 */
    cursor: pointer; /* 커서 포인터로 변경 */
}

/* 드롭다운 메뉴 항목 스타일 */
.dropdown-content {
    display: none; /* 기본적으로 드롭다운 내용 숨김 */
    position: absolute; /* 절대 위치 설정 */
    background-color: white; /* 배경색 */
    min-width: 160px; /* 최소 너비 */
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); /* 그림자 효과 */
    z-index: 1; /* 다른 요소 위에 표시 */
}

.dropdown-content a {
    color: black; /* 링크 색상 */
    padding: 12px 16px; /* 패딩 추가 */
    text-decoration: none; /* 밑줄 제거 */
    display: block; /* 블록 요소로 설정 */
}

/* 드롭다운 메뉴 항목 호버 효과 */
.dropdown-content a:hover {
    background-color: #f1f1f1; /* 호버 시 배경색 변경 */
}

/* 드롭다운 버튼 클릭 시 드롭다운 내용 표시 */
.dropdown-button:focus + .dropdown-content,
.dropdown-content:hover {
    display: block; /* 드롭다운 내용 표시 */
}
.dropdown-button:hover {
    opacity: 0.8; /* 버튼을 눌렀을 때 투명도 설정 */
}

/* 미디어 쿼리: 화면 크기가 963px 이하일 때 */
@media (max-width: 1250px) {
    .index-nav {
        display: none; /* 기존 nav 숨김 */
    }

    .dropdown {
        display: block; /* 드롭다운 표시 */
    }
}
.index-logo {
    display: flex;
    align-items: center;
    justify-content: center; 
    margin-bottom: 5px;
    border-bottom: solid 1px #333333; /* 기존 1px 선 */
    width: 100%; /* 선을 전체 너비로 늘리기 */
}

.index-logo h1 {
    color: #333333;
    font-size: 50px;
    line-height: normal;
    font-family: "Bagel Fat One", system-ui;
    font-weight: 400;
    font-style: normal;
}

/* 푸터 시작 */
footer {
    height: 80px; 
    flex-shrink: 0; /* 푸터는 고정 크기 유지 */
    background-image: linear-gradient(-225deg, #FFFEFF 0%, #D7FFFE 100%);
    color: #333333;
    width: 100%;
}

footer p {
    margin: 1.2px;
}

.foot-i-school {
    display: flex;
    align-items: center;
    justify-content: center;
}

footer i {
    margin: 5px;
}

.foot-i-circle { /* 푸터 아이콘 설정  */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    margin-bottom: 1.5px;
}

/* 메인 시작 */
main {
    flex: 1; /* 메인 콘텐츠는 남은 공간을 차지 */
    display: flex;
}
/* 메인 끝 */
.main-background-img {
    position: relative; /* 부모 요소를 상대적으로 설정 */
    width: 100%; /* 전체 너비 */
    height: 100%; /* 전체 높이 */
    overflow: hidden; /* 자식 요소가 부모를 넘지 않도록 설정 */
}

.main-background-img img {
    position: absolute; /* 절대 위치 설정 */
    top: 50%; /* 수직 중앙 정렬 */
    left: 50%; /* 수평 중앙 정렬 */
    width: 100%; /* 너비를 100%로 설정 */
    height: auto; /* 비율을 유지하면서 높이 자동 조정 */
    transform: translate(-50%, -50%); /* 중앙 정렬을 위한 변환 */
}

.profile-section {
    text-align: center; /* 가운데 정렬 */
    margin-top: 30px; /* 위쪽 간격 */
    margin-bottom: 10px;
}

/* 원형 이미지 */
.profile-image img {
    width: 100px;
    height: 100px;
    border-radius: 50%; /* 원형으로 만들기 */
    object-fit: cover; /* 원형 안에 이미지 맞추기 */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* 그림자 */
    margin-top: 50px; /* 위쪽 간격 */
    margin-bottom: 30px;
}

.overlay-text {
    position: fixed;
    margin-top: 120px;
    font-family: 'Klee One', sans-serif; /* Klee One 폰트 적용 */
    position: absolute; /* 절대 위치 설정 */
    top: 50%; /* 수직 중앙 정렬 */
    left: 50%; /* 수평 중앙 정렬 */
    transform: translate(-50%, -50%); /* 중앙 정렬을 위한 변환 */
    color: white; /* 텍스트 색상 */
    text-align: center; /* 텍스트 중앙 정렬 */
    z-index: 1; /* 텍스트가 이미지 위에 오도록 설정 */
    padding-bottom: 40px;
    opacity: 0; /* 초기 투명도 설정 */
    animation: fadeIn 2s forwards; /* 서서히 나타나는 애니메이션 */
}

.overlay-text h2 {
    font-size: 46px; /* 제목 크기 */
    margin: 0; /* 기본 마진 제거 */
}

.overlay-text p {
    font-size: 20px; /* 본문 크기 */
    margin-top: 10px; /* 제목과 본문 간격 */
}

@keyframes fadeIn {
    from {
        opacity: 0; /* 시작 시 투명 */
    }
    to {
        opacity: 1; /* 끝날 때 불투명 */
    }
}
#typing-effect .btn {
    margin-top: 150px; /* 버튼 위쪽에 60px의 마진 추가 */
}



/* 창 크기 줄 일때 조절 */
@media (max-width: 1270px){
    .main-background-img img {
        width: 100%; /* 이미지 너비 조정 */
        height: 100%; /* 비율 유지 */
    }
    .profile-section {
        text-align: center; /* 가운데 정렬 */
        margin-top: 50px; /* 위쪽 간격 */
        margin-bottom: 30px;
    }
    .profile-image img {
        width: 100px; /* 프로필 이미지 크기 조정 */
        height: 100px; /* 프로필 이미지 크기 조정 */
        margin-top: 50px; /* 위쪽 간격 */
        margin-bottom: 30px;
    }
    .overlay-text h2 {
        font-size: clamp(28px, 4vw + 10px, 46px); /* 제목 크기 */
        margin: 0; /* 기본 마진 제거 */
    }

    .overlay-text p {
        font-size: clamp(16px, 2.5vw + 5px, 20px); /* 본문 크기 */
        margin-top: 10px; /* 제목과 본문 간격 */
    }
    header {
        height: 140px; 
        
    }
    body {
        overflow: auto; /* 스크롤 가능하도록 설정 */
    }
    
    /* 푸터 시작 */
    footer {
        height: 80px; 
    }


    /* 메인 시작 */
    main {
        padding-top: 140px; /* 헤더 크기만큼 패딩 추가 */
        overflow-y: scroll;
    }
}

@media (max-width: 871px){
    .overlay-text {
        margin-top: 23px;
    }
    .overlay-text h2 {
        font-size: clamp(28px, 4vw + 5px, 38px); /* 제목 크기 */
    }
    
    .overlay-text p {
        font-size: clamp(15px, 2.5vw + 3px, 19px); /* 본문 크기 */
        margin-top: 10px; /* 제목과 본문 간격 */
        margin-bottom: 10px;
    }
}

@media (max-width: 643px){
    .overlay-text h2 {
        font-size: clamp(22px, 4vw + 2px, 32px); /* 제목 크기 */
    }
    
    .overlay-text p {
        font-size: clamp(12px, 2vw + 1px, 16px); /* 본문 크기 */
        margin-top: 10px; /* 제목과 본문 간격 */
        margin-bottom: 10px;
    }
    body {
    overflow: auto;
    }
}

/* 모바일 버전 */
@media (max-width: 480px) {
    header {
        height: 100px; /* 헤더 높이 조정 */
        padding: 0px; /* 패딩 조정 */
    }

    .index-logo h1 {
        font-size: clamp(20px, 3vw + 5px, 30px); /* 제목 크기 조정 */
    }
    main {
        padding-top: 100px;
    }
    .nav {
        flex-direction: column; /* 수직 정렬로 변경 */
        align-items: center; /* 중앙 정렬 */
    }
    .dropdown {
        margin-top: 8px;
    }
    .nav-item {
        margin: 5px 0; /* 위아래 간격 조정 */
    }
    
    .nav-link {
        font-size: clamp(14px, 2vw + 2px, 16px); /* 링크 텍스트 크기 조정 */
        padding: 8px 10px; /* 패딩 조정 */
    }
    
    .dropdown-button {
        font-size: clamp(14px, 2vw + 2px, 16px); /* 드롭다운 버튼 크기 조정 */
        padding: 6px 10px; /* 패딩 조정 */
    }
    
    .main-background-img img {
        width: 100%; /* 이미지 너비 조정 */
        height: 100%; /* 비율 유지 */
    }
    .overlay-text {
        
        margin-top: 40px;

    }
    .overlay-text h2 {
        font-size: clamp(15px, 3vw + 2px, 22.5px); /* 제목 크기 조정 */
    }

    .overlay-text p {
        font-size: clamp(12px, 2vw + 1px, 15.5px); /* 본문 크기 조정 */
    }

    .profile-section {
        padding-top: -30px;
    }

    .profile-image img {
        width: 78px; /* 프로필 이미지 크기 조정 */
        height: 78px; /* 프로필 이미지 크기 조정 */
        margin-top: 32px;
    }
    footer{
        height:65px;
    }
    footer p {
        font-size: clamp(8px, 2vw, 12px); /* 푸터 텍스트 크기 조정 */
        margin-bottom: 4px;
    }
    
    .foot-i-circle {
        font-size: clamp(8px, 2vw, 12px); /* 푸터 아이콘 크기 조정 */
    }
    #typing-effect .btn {
        margin-top: 80px; /* 버튼 위쪽에 60px의 마진 추가 */
    }
      header:not(.show) {
        top: 0; /* 항상 보이도록 설정 */
    }
}

@media (max-width: 353px) {
    .overlay-text h2 {
        font-size: clamp(15px, 3vw + 1px, 21.5px); /* 제목 크기 조정 */
    }
    
    .overlay-text p {
        font-size: clamp(11px, 2vw + 1px, 14.5px); /* 본문 크기 조정 */
    }
       header:not(.show) {
        top: 0; /* 항상 보이도록 설정 */
    }

    .profile-image img {
        width: 70px; /* 프로필 이미지 크기 조정 */
        height: 70px; /* 프로필 이미지 크기 조정 */
        margin-top: 0px;
    }
    .profile-section {
        padding-top: -30px;
    }

    .profile-image img {
        margin-top: 53px;
    }
}
