/* 1. 폰트 불러오기 (구글 폰트: Noto Sans KR) */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;700;900&display=swap');

/* 2. 전체 초기화 (Reset) */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Noto Sans KR', sans-serif;
    overflow-x: hidden; /* 가로 스크롤 방지 */
    background-color: #E94D34; /* 메인 배경색 (이미지와 같은 주황색) */
}

/* 3. 상단 네비게이션 바 (흰색) */
.navbar {
    position: fixed; /* 화면 상단 고정 */
    top: 0;
    left: 0;
    width: 100%;
    height: 70px; /* 메뉴바 높이 */
    background-color: white;
    display: flex;
    justify-content: center; /* 메뉴 가로 중앙 정렬 */
    align-items: center;     /* 메뉴 세로 중앙 정렬 */
    z-index: 1000; /* 맨 위에 그리기 (Sorting Order 높게) */
}

.menu-list {
    display: flex;
    list-style: none;
    gap: 40px; /* 메뉴 글자 사이 간격 */
}

.menu-list a {
    text-decoration: none;
    color: black;
    font-weight: 900; /* 아주 굵은 폰트 (Bold) */
    font-size: 14px;
    letter-spacing: -0.5px; /* 자간 살짝 좁게 */
}


/* 마우스 올렸을 때 효과 */
.menu-list a:hover {
      background-color: #FFC700; /* 진한 노란색 */
    color: #0C55FF; 
}

/* 4. 메인 히어로 섹션 (주황색 영역) */
.hero-section {
    cursor: default;

    /* 배경색은 body에서 설정했지만, 확실하게 한 번 더 지정 */
    background-color: #E94D34; 
    
    /* 높이 계산: 화면 전체(100vh) - 메뉴바(70px) - 푸터(50px) */
    /* 이렇게 해야 스크롤 없이 딱 한 화면에 찹니다 */
    height: calc(100vh - 70px - 50px);
    margin-top: 70px; /* 메뉴바 높이만큼 내리기 */
    
    display: flex;
    justify-content: center; /* 그림 가로 중앙 */
    align-items: center;     /* 그림 세로 중앙 */
    overflow: hidden; /* 그림이 삐져나가면 자르기 */

}




/* 5. 하단 푸터 (검은색 바) */
.footer {
    width: 100%;
    height: 50px; /* 푸터 높이 */
    background-color: black;
    
    display: flex;
    justify-content: center; /* 아이콘 중앙 정렬 */
    align-items: center;     /* 수직 중앙 정렬 */
}

.social-icons {
    display: flex;
    gap: 25px; /* 아이콘 사이 간격 */
}

.social-icons img {
    height: 20px; /* 아이콘 크기 조절 */
    width: auto;

    cursor: pointer;
    transition: transform 0.2s;
}
/* --- 통 이미지 & 투명 버튼 스타일 --- */

/* 1. 부모 컨테이너 (기준점) */
.image-wrapper {
    /* ▼▼▼ 이게 없으면 버튼이 가출합니다 (필수!) ▼▼▼ */
    cursor: default;
    position: relative; 
    
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}
.full-bg-image {
    cursor: default;

    width: 100%;
    height: auto;
    display: block;

    /* ▼▼▼ 여기부터 추가하세요 ▼▼▼ */
    pointer-events: none;    /* 마우스 클릭 무시 */
    user-select: none;       /* 선택 방지 */
    -webkit-user-drag: none; /* 드래그 방지 */
}



/* --- 프로필 페이지 분할 레이아웃 --- */

/* 1. 전체 컨테이너 (Horizontal Layout Group) */
.profile-container {
    cursor: default;
    display: flex; /* 좌우 배치 */
    width: 100%;
    /* 전체 높이 - 네비게이션바(70px) */
    height: calc(100vh - 70px); 
    margin-top: 70px;
    background-color: black; /* 빈 공간 검은색 */
}

/* 2. 왼쪽 빨간 영역 */
.section-left {
    width: 40%; /* 화면의 40% 차지 (비율 조절 가능) */
    height: 100%;
    overflow: hidden;
}

/* 3. 오른쪽 영역 (Vertical Layout Group) */
.section-right {
    width: 60%; /* 화면의 60% 차지 */
    height: 100%;
    display: flex;
    flex-direction: column; /* 위아래 배치 */
}

/* 3-1. 오른쪽 위 (노란색) */
.right-top {
    flex: 1; /* 상하 공간 1:1 분할 중 1 */
    width: 100%;
    overflow: hidden;
}

/* 3-2. 오른쪽 아래 (파란색 - 호버 영역) */
.right-bottom {
    flex: 1; /* 상하 공간 1:1 분할 중 1 */
    width: 100%;
    position: relative; /* 자식 이미지들을 겹치기 위한 기준점 */
    overflow: hidden;
    cursor: pointer; /* 마우스 올리면 손가락 표시 */
}

/* --- 공통 이미지 스타일 (꽉 채우기) --- */
.section-left img, 
.right-top img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 비율 유지하며 꽉 채움 (Stretch-Crop) */
    display: block;
}

/* --- ★ 핵심: 고양이 호버 효과 (Cross Fade) ★ --- */

/* 두 고양이 이미지 모두 같은 위치에 겹쳐둠 */
.right-bottom img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.3s ease; /* 0.3초 동안 부드럽게 변함 */
}

/* 1. 평소 고양이 (보임) */
.cat-default {
    opacity: 1;
    z-index: 1;
}

/* 2. 호버 고양이 (숨김) */
.cat-hover {
    opacity: 0; /* Alpha = 0 */
    z-index: 2; /* 평소 고양이보다 위에 있음 */
}

/* ★ 마우스를 올렸을 때(:hover) 상태 변화 */
.right-bottom:hover .cat-hover {
    opacity: 1; /* 호버 고양이 나타남 */
}
/* (선택사항) 평소 고양이를 굳이 끌 필요는 없지만, 
   투명한 PNG라면 겹쳐 보일 수 있으니 아래 코드도 쓰면 좋습니다 */
.right-bottom:hover .cat-default {
    opacity: 0; 
}



/* --- Half Boiled 페이지 레이아웃 (Profile 스타일 적용) --- */

/* 1. 전체 컨테이너 (좌우 배치) */
.hb-container {
    display: flex;
    width: 100%;
    /* 전체 높이 - 네비게이션바(70px) */
    height: calc(100vh - 70px); 
    margin-top: 70px;
    background-color: black;
}

/* 2. 왼쪽 영역 (주황색 그림) */
.hb-left {
    width: 40%; /* 너비 40% */
    height: 100%;
    overflow: hidden;
}

/* 3. 오른쪽 영역 (상하 배치) */
.hb-right {
    width: 60%; /* 너비 60% */
    height: 100%;
    display: flex;
    flex-direction: column; /* 위아래로 쌓임 */
}

/* 3-1. 오른쪽 위 (검은색 정보 영역) */
.hb-top {
    /* ★ 핵심: 비율 설정 (Top : Bottom = 4 : 1) */
    /* 위쪽 공간을 4만큼 가져감 (약 80%) */
    flex: 4; 
    
    width: 100%;
    overflow: hidden;
}

/* 3-2. 오른쪽 아래 (버튼 영역) */
.hb-bottom-btn {
    /* 아래쪽 공간을 1만큼 가져감 (약 20%) */
    /* 버튼이 너무 두꺼우면 이 숫자를 0.8 등으로 줄이고, 위를 늘리세요 */
    flex: 1; 
    
    width: 100%;
    position: relative; /* 이미지 겹치기 기준점 */
    overflow: hidden;
    cursor: pointer; /* 손가락 커서 */
}

/* --- 공통 이미지 스타일 (찌그러짐 방지 & 꽉 채우기) --- */
.hb-left img, 
.hb-top img {
    width: 100%;
    height: 100%;
    
    /* ★ 핵심: 이미지가 비율 안 맞아도 찌그러지지 않고 잘라서 채움 */
    object-fit: cover; 
    
    display: block;
    pointer-events: none; /* 배경 클릭 방지 */
}

/* --- ★ 버튼 호버 효과 (Cross Fade) - Profile과 동일 로직 ★ --- */

/* 두 이미지 겹쳐두기 */
.hb-bottom-btn img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* ★ 버튼 이미지도 찌그러지지 않게 꽉 채움 */
    object-fit: cover; 
    
    transition: opacity 0.3s ease; /* 부드러운 전환 */
}

/* 1. 평소 버튼 (보임) */
.img-normal {
    opacity: 1;
    z-index: 10;
}



/* ★ 마우스 올렸을 때(:hover) 교체 */
.hb-bottom-btn:hover .img-hover {
    opacity: 1;
}

/* (선택사항) 평소 이미지 숨기기 */
.hb-bottom-btn:hover .img-normal {
    opacity: 0;
}

/* --- 토스트 메시지 스타일 (style.css 맨 아래 추가) --- */
#toast-message {
    visibility: hidden;
    min-width: 250px;
    background-color: #333;
    color: #fff;
    text-align: center;
    border-radius: 50px;
    padding: 16px;
    position: fixed;
    z-index: 9999;
    left: 50%;
    bottom: 30px;
    transform: translateX(-50%);
    font-size: 15px;
    opacity: 0;
    transition: opacity 0.5s, bottom 0.5s;
}

#toast-message.show {
    visibility: visible;
    opacity: 1;
    bottom: 50px;
}

/* --- 기본 상태 (PC) 텍스트 설정 --- */
.mobile-text {
    display: none; /* PC에서는 짧은 글씨 숨김 */
}

@media (max-width: 768px) {

    /* 1. 네비게이션 바 설정 */
    .navbar {
        height: auto; 
        padding: 15px 0;
    }

    /* ★★★ 여기를 수정했습니다 ★★★ */
    .menu-list {
        display: grid; /* Flex 대신 Grid 사용 */
        grid-template-columns: repeat(4, 1fr); /* 한 줄에 정확히 4칸으로 나눔 */
        
        width: 100%;     /* 화면 너비 꽉 채우기 */
        row-gap: 15px;   /* 첫째 줄과 둘째 줄 사이 간격 */
        padding: 0 10px; /* 양옆 여백 살짝 */
    }

    /* 각 메뉴(글자)를 칸 안에서 가운데 정렬 */
    .menu-list li {
        text-align: center;
        display: flex;         /* 내용물 중앙 정렬용 */
        justify-content: center;
        align-items: center;
    }

    /* 모바일에서는 글씨가 4개씩 들어가야 하니 폰트를 살짝 줄임 */
    .menu-list a {
        font-size: 12px; /* 14px -> 12px로 축소 (화면 깨짐 방지) */
    }

    /* (아래 텍스트 교체, 히어로 섹션 등 나머지 코드는 그대로 두세요...) */
    .desktop-text { display: none; }
    .mobile-text { display: inline; }

    /* ★ 2. 히어로 섹션 (이미지 반응형) 수정 부분 ★ */
    .hero-section {
        /* 메뉴가 두 줄이 되었으니(약 100~110px), 시작 위치를 더 내립니다 */
        margin-top: 110px; 

        /* 높이 재계산: 화면전체 - 메뉴(110px) - 푸터(50px) */
        height: calc(100vh - 110px - 50px);
        
        /* 모바일에서는 좌우 여백을 조금 줍니다 */
        padding: 0 20px; 
    }




    /* 이미지가 화면보다 크면 줄여주고, 작으면 비율 유지 */
    .hero-section img {
        width: 100%;         /* 가로폭을 화면에 맞춤 */
        height: 100%;        /* 세로 높이도 영역에 맞춤 */
        
        /* ★ 핵심: 이미지를 자르지 않고 비율 유지하며 꽉 채우기 */
        object-fit: contain; 
    }

    .profile-container {
        flex-direction: column; /* 핵심: 위에서 아래로 쌓기 */
        height: auto; /* 화면 꽉 채우기 제한 해제 (스크롤 생기게) */
        
        /* 메뉴바가 두 줄이 되었으므로 시작 위치 조정 */
        margin-top: 110px; 
        padding-bottom: 50px; /* 바닥에 여백 좀 주기 */
    }

    /* 왼쪽(이미지), 오른쪽(정보) 영역을 모두 가로 100%로 늘림 */
    .section-left, 
    .section-right {
        width: 100%; 
        height: auto; /* 내용물만큼만 높이 차지 */
    }

    /* 섹션 사이 간격 좀 띄우기 (왼쪽 이미지가 위로 가고, 오른쪽 정보가 아래로 감) */
    .section-left {
        margin-bottom: 20px; 
    }

    /* 내부 이미지들이 찌그러지지 않고 비율 유지하게 설정 */
    .section-left img,
    .right-top img,
    .right-bottom img {
        width: 100%;
        height: auto; /* 가로폭에 맞춰서 세로 높이 자동 조절 */
        object-fit: contain; /* 잘리지 않고 다 보이게 */
    }
    
   /* 버튼(고양이) 영역 높이 확보 */
    .right-bottom {
        position: relative;
        display: block;
        width: 100%;
        height: auto; /* 높이 자동 */
    }

    /* ★★★ 고양이 버튼이 보이게 만드는 핵심 코드 (추가) ★★★ */
    
    /* 1. 평소 고양이(Default)가 자리를 차지하도록 설정 */
    .right-bottom .cat-default {
        position: relative; /* absolute 해제 -> 원래 자리로 */
        width: 100%;
        height: auto;
        opacity: 1; /* 확실하게 보이게 */
    }

    /* 2. 호버 고양이(Hover)는 그 위에 덮어씌움 */
    .right-bottom .cat-hover {
        position: absolute; /* 둥둥 떠서 겹치기 */
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
    /* 전체 컨테이너: 가로 -> 세로 변경 */
    .hb-container {
        flex-direction: column; /* 세로로 쌓기 */
        height: auto; /* 전체 높이 제한 해제 (스크롤 가능하게) */
        
        /* 메뉴바 두 줄 높이(약 110px)만큼 내리기 */
        margin-top: 110px; 
    }

    /* 왼쪽(그림)과 오른쪽(정보) 영역 너비 100%로 확장 */
    .hb-left,
    .hb-right {
        width: 100%;
        height: auto; /* 높이는 내용물에 맞게 */
    }

    /* 이미지들이 화면 폭에 맞춰서 비율 유지하며 커지거나 작아짐 */
    .hb-left img,
    .hb-top img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }

    /* --- [중요] 하단 버튼(Store) 높이 문제 해결 --- */
    /* PC에서는 이미지가 absolute(공중부양)라 부모 높이가 0이 될 수 있는데,
       모바일에서는 첫 번째 이미지를 relative(원래 위치)로 바꿔서 자리를 차지하게 해줘야 함 */
    
    .hb-bottom-btn {
        width: 100%;
        height: auto; /* 높이 자동 */
        display: block;
    }

    /* 평소 보이는 이미지(Normal)가 공간을 차지하도록 설정 */
    .hb-bottom-btn .img-normal {
        position: relative; 
        width: 100%;
        height: auto;
        opacity: 1;
    }

    /* 호버 이미지(Hover)는 그 위에 덮어씌움 */
    .hb-bottom-btn .img-hover {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    /* --- 배너 페이지 (Split Layout) --- */

/* 1. 전체 틀 (메뉴바 제외 높이) */
.banner-split-container {
    margin-top: 70px;
    width: 100%;
    /* 화면 꽉 채우기 (스크롤 없이 딱 맞게 하려면 height 사용) */
    height: calc(100vh - 70px); 
    display: flex;
    flex-direction: column; /* 위아래로 배치 */
}

/* 2. 상단 (빨강) / 하단 (노랑) 공통 설정 */
.split-top, 
.split-bottom {
    flex: 1; /* 높이를 정확히 50%씩 나눠가짐 */
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center; /* 내용물 정중앙 배치 */
}

/* --- 상단: 내 배너 영역 --- */
.split-top {
    background-color: #E94D34; /* 빨간색 */
    flex-direction: column; /* 말풍선과 배너를 위아래로 */
}

.banner-content {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* 검은색 말풍선 박스 */
.speech-bubble {
    background-color: black;
    color: white;
    padding: 10px 15px;
    text-align: center;
    font-size: 12px;
    margin-bottom: 15px; /* 배너와의 간격 */
    position: relative; /* 꼬리표 위치 기준 */
}

.speech-bubble .url {
    font-family: monospace; /* 주소 같은 느낌 폰트 */
    margin-bottom: 4px;
    color: #ccc;
}

.speech-bubble .desc {
    font-weight: bold;
    font-size: 14px;
}

/* 말풍선 꼬리 (역삼각형) 만들기 */
.speech-bubble::after {
    content: '';
    position: absolute;
    bottom: -10px; /* 박스 바로 아래 */
    left: 50%;
    transform: translateX(-50%); /* 정확히 가운데 */
    
    /* 투명 선을 이용해 삼각형 그리기 */
    border-width: 10px 10px 0; /* 높이 10px */
    border-style: solid;
    border-color: black transparent transparent transparent;
}

/* 내 배너 이미지 */
.my-banner-img {
    width: 200px; /* 배너 크기 (필요에 따라 조절) */
    height: auto;
    display: block;
    /* 이미지 깨짐 방지 */
    image-rendering: -webkit-optimize-contrast; 
}


/* --- 하단: 친구 배너 영역 --- */
.split-bottom {
    background-color: #FFC904; /* 노란색 */
    align-items: flex-start; /* 위쪽에 붙어서 정렬 */
    padding-top: 50px; /* 상단 여백 */
    overflow-y: auto; /* 배너 많아지면 스크롤 */
}

.friends-list {
    display: flex;
    flex-wrap: wrap; /* 줄바꿈 허용 */
    justify-content: center;
    gap: 15px; /* 배너 사이 간격 */
    max-width: 800px;
}

.friends-list img {
    height: 40px; /* 친구 배너 높이 통일 */
    width: auto;
    display: block;
    transition: transform 0.2s;
    box-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}

.friends-list img:hover {
    transform: scale(1.05); /* 마우스 올리면 살짝 커짐 */
}

.banner-split-container {
    margin-top: 110px; /* 메뉴바 두 줄 높이만큼 */
    height: auto; /* 모바일에서는 스크롤 되게 높이 제한 해제 */
    min-height: calc(100vh - 110px);
}

.split-top, 
.split-bottom {
    padding: 40px 0; /* 위아래 여백 넉넉히 */
    flex: none; /* 50:50 강제 해제 */
    min-height: 50vh; /* 그래도 최소 반 화면은 차지하게 */
}

}


/* --- MEMO (아보카도 게시판) 페이지 스타일 --- */

/* 1. 게시판 감싸는 틀 */
.memo-container {
    margin-top: 70px; /* PC 메뉴바 높이 */
    width: 100%;
    /* 화면 높이에서 메뉴바 뺀 만큼 꽉 채우기 */
    height: calc(100vh - 70px); 
    overflow: hidden; /* 스크롤이 두 개 생기는 것 방지 */
    background-color: white; /* 배경색 (필요하면 변경) */
}

/* 2. 아이프레임 (실제 게시판 화면) */
.board-frame {
    width: 100%;
    height: 100%;
    border: none; /* 테두리 없애기 */
    display: block;
}



/* 1. 게시판 감싸는 틀 */
.cats-container {
    margin-top: 70px;   /* 메뉴바 높이만큼 띄우기 */
    width: 100%;        /* 너비는 꽉 채움 */
    
    /* 중요: 높이를 고정하지 말고 내용물(그림) 길이에 따르게 함 */
    height: auto;       
    min-height: calc(100vh - 70px); /* 그림이 짧을 때도 흰 배경이 꽉 차게 */

    /* 중요: 스크롤이 되어야 하므로 hidden을 뺍니다 */
    /* overflow: hidden;  <-- 삭제 */
    
    background-color: white; 
    
    display: flex;
    justify-content: center; /* 가로 중앙 정렬 */
    align-items: flex-start; /* 세로 시작점 정렬 (긴 그림은 위에서부터 보여야 함) */
    
    padding-bottom: 50px; /* 맨 밑에 약간의 여유 공간 */
}

/* 2. 틀 안에 있는 이미지 반응형 처리 */
/* (img 태그에 클래스가 없다면 이 코드가 적용됩니다) */
.cats-container img {
    max-width: 100%;  /* 화면 너비보다 크면 줄어들게 설정 (PC/모바일 공통) */
    height: auto;     /* 비율에 맞춰 높이 자동 조절 */
    display: block;   /* 이미지 하단 미세한 여백 제거 */
}


/* --- 모바일 반응형 수정 --- */
@media (max-width: 768px) {
    .memo-container {
        /* 모바일 메뉴바 높이(약 110px)만큼 내리기 */
        margin-top: 110px; 
        height: calc(100vh - 110px);
    }

    .cats-container {
        /* 모바일 메뉴바 높이(약 110px)만큼 내리기 */
        margin-top: 110px; 
        height: calc(100vh - 110px);
    }
}