/* ===================================
   Post Card 관련 스타일
   =================================== */

/* 공통 4x4 배열 형태*/
.post-list {
    grid-template-columns: repeat(4, 1fr);
    column-gap: var(--spacing-base); /* 수평 간격 크기 */
    row-gap: var(--spacing-lg); /* 수직 간격 크기 */
    height : 100%;
    max-width: 100%;
}

.post-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    height : fit-content;
    background : white;
    border-radius : 12px;
    box-shadow : 0 12px 24px rgba(0, 0, 0, 0.15);
    border : thin solid var(--main-item-border-color);
    cursor : pointer;
    position : relative;
    padding : var(--spacing-sm);
    overflow: hidden; /* 내부 내용이 넘칠 경우 숨기기 */
}

/* 카드에 a 태그 이용할 때, 카드의 전체 범위로 하기 위해서 23.6.30 */
/* post-card 클래스 하위의 a 태그 */
.post-card > a{
    width : 100%;
    max-width : 100%;
    height : 100%;
    position : absolute;   /*부모에는 relative를 줘야함*/
    top : 0;
    left : 0;
    z-index : 10;
}

/*포스트 카드의 헤더 부분*/
.header-container{
    display: grid;
    padding-bottom: var(--spacing-xs);
    gap: 4px 4px;
    grid-template:
        "image note" 16px
        "image timestamp" 16px/auto 1fr;
}

.header-profile-img-container{
    width : 30px;
    height : 30px;
}

.header-profile-img{
    grid-area: image;
    width : 100%;
    height : 100%;
    border-radius: 50%;
    object-fit: cover;
}

.header-writer-container{
    grid-area: note;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display : flex;
    align-items: center;
}


.header-profile-img-caption{
    color : var(--silver-text-color);
    font-size : var(--text-sm);
}


.header-profile-nickName{
    margin-left : var(--spacing-xs);
    font-weight : 600;
}


.header-timestamp{
    grid-area : timestamp;
    font-size : var(--spacing-sm);
    color : var(--silver-text-color);
}


.thumbnail-container {
    width: 100%;
    aspect-ratio: 1/1; /* 가로-세로 비율 1:1 */
    background: var(--img-background-color);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    border-radius: 6px;
    position: relative;   /*자녀의 위치를 상대적으로 정하기 위해서 필요*/
    contain: layout size;
}

.thumbnail {
    width : 100%;
    height : 100%;
    background : transparent;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    object-fit: cover;
   /* border-radius: 6px 6px 6px 6px;*/
}

/*실제 적용되는 부분 없는 것 같음 26.2.6*/
.thumbnail img {
    max-width: 100%;
    max-height: 100%;
    object-fit : cover;
 /* border-radius: 15%;*/
}

.like-icon-container{
    /*부모의 요소에 따라 위치 결정*/
    position: absolute;
    bottom: var(--spacing-2xs);
    right: var(--spacing-2xs);
    z-index: 20; /* 추가: 아이콘을 이미지 위로 올리기 */
}

.like-icon {
    width: 1.5rem;
    height: 1.5rem;
    color: red;

    transition: transform 0.3s ease-in-out;
}

/*unfiilled를 넣었다 뺐다 하면됨*/
.like-icon.unfilled {
    font-weight: 400;
}


.meta-wrap{
    display : flex;
    flex-direction : column;
    height: auto;
    max-width: 100%;
    padding: var(--spacing-xs) 0 0 0;
}



.meta-top {

   /* margin-top : var(--spacing-base);*/
    margin-bottom : var(--spacing-base);

}

/*각 아이템들은 오른쪽 끝에 붙인다
 post-card 가장 하단에 위치 */
.meta-footer {
    display: flex;
    max-width: 100%;
    align-items: center;   /*수직 중앙정렬*/
    justify-content: space-between;
    /*margin-top: auto;*/
    padding-top : var(--spacing-xs);
    color : var(--silver-text-color);
    border-top : 0.5px solid var(--metaFooterBorderColor);
    white-space: nowrap;
}



/* meta top 자녀의 category class */
.meta-top > .category {
    overflow : hidden;
    text-overflow : ellipsis;  /*(...) 표시*/
    white-space : nowrap;      /*공백문자 있어도 줄바꿈 안함*/
    font-weight : 600;
}

.meta-top > .category::before {
  content: "[";
}

.meta-top > .category::after {
  content: "]    ";
}


.meta-top > .post-date {
    overflow : hidden;
    text-overflow : ellipsis;  /*(...) 표시*/
    white-space : nowrap;      /*공백문자 있어도 줄바꿈 안함*/
    font-weight : 400;  /* 기본보다는 약간 흐리게 */
}

.meta-icon{
    margin-left: var(--spacing-2xs);
    margin-right : var(--spacing-2xs);
    width: 1.2rem;
    height: 1.2rem;
}

.meta-wrap > .subject {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;  /*최대 세줄*/
    overflow: hidden;
    text-overflow : ellipsis;  /*(...) 표시*/
    word-break : break-all;
  /*  white-space : nowrap;*/      /*공백문자 있어도 줄바꿈 안함*/
    font-weight : 600;    /*기본보다는 약간 진하게*/
    height : 72px;
    font-size : var(--text-lg);
    line-height : 1.2;
}

/*가격 컨테이너*/
.meta-wrap > .deal-price-container{
    height : 20px;
    max-width: 100%;
    text-overflow: ellipsis;  /* 줄바꿈 되지 않도록 */
    word-break: break-all;
    white-space: nowrap;
    display: flex;
    align-items: center;
    /*overflow: hidden;*/
    flex-shrink: 1; /* Allow flex items to shrink */
    -webkit-flex-shrink: 1;
    flex-grow: 1;
    -webkit-flex-grow: 1;
    box-sizing: border-box;
}

.deal-price-container > .sale-price{
    padding-right : var(--spacing-xs);
    font-size : var(--text-lg);
    color : var(--sale-price-color);
    font-weight : 800;
    min-width: 0;
}

.deal-price-container > .original-price{
    font-size : var(--text-sm);
    color : var(--original-price-color);
    text-decoration: line-through;
    font-weight : 400;
    min-width: 0;
}

.deal-price-container > .popular-icon{
    margin-left : var(--spacing-2xs);
}


.meta-wrap > .deal-price-container > * {
     /* Prevent flex items from overflowing */
    flex-shrink: 1; /* Allow child elements to shrink */
    -webkit-flex-shrink: 1; /* Allow child elements to shrink */
}

/* 프로필 */
.small-profile{
    padding-left : var(--spacing-2xs);
    padding-top : var(--spacing-sm);
    display: flex;
    align-items: center; /* 수직 정 중앙에 배치 */
}

.small-profile-image{
    width : 25px;
    height : 25px;
    border-radius: 50%;
    margin-right : var(--spacing-2xs);
}

.small-profile .nickName{
    color : var(--secondary-color);
}

/* 카드 하단 부쪽의 store 이름 영역 */
.storeInfo-container{
    width : 100%;
    padding : var(--spacing-2xs) var(--spacing-xs);
    height : 30px;
    display: flex;
    align-items: center;
}

.storeInfo-container .storeName{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
    color: var(--silver-text-color);
    font-size : var(--text-sm);
}

.meta-footer > .social-wrap{
    display : flex;
    align-items: center;
    flex-direction: row; /* 이 부분은 기본값이므로 명시적으로 설정하지 않아도 됩니다. */
    flex-wrap: nowrap;
    letter-spacing: 0px;
    max-width: calc(100% - 30px);
    gap : var(--spacing-sm);
}

.social-wrap > .likes,
.social-wrap > .views,
.social-wrap > .comments {
    display: flex;
    align-items: center;
}



.likes-count,
.social-wrap > .likes
.social-wrap > .views,
.social-wrap > .comments,
.social-wrap > .meta-icon{
    font-size : var(--text-base);
}



.shop-now-wrap{
    z-index : 99;
}

.shop-now-wrap a {
    display: flex;
    align-items:center;
    padding: var(--spacing-3xs);
}

/* 24.1.26추가 */
.shop-now-icon{
    transition: transform 0.3s ease-in-out;
}

/* 미디어 쿼리 부분으로 옮김
.shop-now-icon:hover{
    transform : scale(2.0);
    color : var(--green-button-color);
}
*/

/***************************************************/



/* 두번째 큰 크기*/
@media (min-width: 960px) and (max-width: 1200px){
    .post-card {
        width: 100% - var(--spacing-base)/2;
        height : fit-content;
    }

    /* 중간크기 post card 한 행에 3개로 조절 */
    .post-list{
        grid-template-columns: repeat(3, 1fr);
    }

    .meta-wrap > .subject{
        font-size: var(--text-lg);
    }

    .meta-footer > .social-wrap{
        gap : var(--spacing-sm);
    }

    /* 중간크기 가격 크기 조절 */
    .deal-price-container > .sale-price{
        font-size : var(--text-sm);
    }

    .deal-price-container > .original-price{
        font-size : var(--text-xs);
    }

    /* 중간크기 하단 아이콘/숫자 크기 조절 */
    .likes-count,
    .social-wrap > .likes,
    .social-wrap > .views,
    .social-wrap > .comments,
    .social-wrap > .meta-icon{
        font-size : var(--text-sm);
    }
}

/* 세번째 크기*/
@media (min-width: 768px) and (max-width: 960px){
    .post-card {
        width: 100% - var(--spacing-base)/2;
        height : fit-content;
    }

    /* 중간크기 post card 한 행에 2개로 조절 */
    .post-list{
        grid-template-columns: repeat(2, 1fr);
    }

    .meta-footer > .social-wrap{
        gap : var(--spacing-xs);
    }
}



/* 모바일 모드 */
@media (max-width: 767px){

    /* 모바일 카드에서 상단 프로필 이미지 및 작성자 부분 */
    .header-container {
        display: grid;
        padding-bottom: var(--spacing-xs);
        gap: 4px 4px;
        grid-template:
            "image note" 12px
            "image timestamp" 12px/auto 1fr;
    }


    .header-profile-img-caption {
        font-size: var(--text-xs);
    }


    .header-profile-nickName {
        margin-left: var(--spacing-2xs);
        font-size: var(--text-sm);
    }


    /* 모바일 카드 형태에서 카테고리와 날짜 */
    .meta-top > .category {
        font-size : var(--text-sm);
    }

    .meta-top > .post-date {
        font-size : var(--text-sm);
    }

    /* 모바일 카드 형태에서 제목 */
    .meta-wrap > .subject{
        font-size : var(--text-base);
        height : 44px;
    }

    .meta-footer > .social-wrap{
        letter-spacing : -2px;
        gap : var(--spacing-2xs);
    }

    /* 모바일 가격 크기 조절 */
    .deal-price-container > .sale-price{
        font-size : var(--text-sm);
    }

    .deal-price-container > .original-price{
        font-size : var(--text-xs);
    }

    .deal-price-container > .popular-icon {
        font-size : var(--text-sm);
    }

    /* 모바일 카드에서 메타 아이콘 작게 */
    .likes-count,
    .social-wrap > .views,
    .social-wrap > .comments,
    .meta-icon{
        font-size : var(--text-sm);
    }

    .meta-icon{
        margin-left : var(--spacing-3xs);
        margin-right : var(--spacing-3xs);
    }

    /* 모바일 */
    .post-list{
        grid-template-columns: repeat(2, 1fr);
      /*  grid-template-rows: repeat(8, 1fr);*/
       /* grid-template-rows: repeat(auto-fit, minmax(12.5%, 1fr));*/
    }


    .image-thumbnail-box{
        width : 55px;
        height : 55px;
        overflow: hidden; /* 추가 */
    }

    .image-thumbnail{
        width : 55px;
        height : 55px;
        border-radius: 6px;
        object-fit: cover;
    }


}


/* 모든 요소에 대해 모바일 기기에서 hover 효과 비활성화 */
/* 24.5.28 반영 */
@media (hover: hover) and (pointer: fine)  {

    /* 좋아요 아이콘에 마우스 올렸을 때 크기 설정 */
    .like-icon.unfilled:hover{
        transform : scale(1.5);
    }

    /* 쇼핑카트 아이콘 마우스 올렸을 때 변화주기 */
    .shop-now-icon:hover{
        transform : scale(2.0);
        color : var(--green-button-color);
    }

}
