/* 
 * Board View 페이지 전용 스타일
 */

/* 전체 페이지 오버플로우 방지 - sticky 동작을 위해 body에만 적용 */
html {
    max-width: 100vw;
}
body {
    overflow-x: hidden;
    max-width: 100vw;
}

/* Material Symbols 아이콘 스타일 */
.material-symbols-outlined {
    font-variation-settings:
        'FILL' 0,
        'wght' 200,
        'GRAD' 0,
        'opsz' 24;
    font-size: 20px;
    line-height: 1;
    vertical-align: middle;
}

/* 12컬럼 그리드 시스템 */
.row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin: 0 -15px;
}

.col-3 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
    padding: 0 15px;
    margin-bottom: 30px;
}

.col-9 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
    padding: 0 15px;
    margin-bottom: 30px;
}

/* 게시판 뷰 페이지 스타일 */
.board-view-section {
    padding: 2rem 0;
}

.board-view-container {
    margin: 0 auto;
    padding: 0 1rem;
    max-width: 1200px;
}

/* 게시글 제목 영역 (col-3) */
.board-title-area {
    margin-bottom: 2rem;
}

.board-title-area h2 {
    font-size: clamp(24px, 4vw, 40px);
    font-weight: 500;
    color: var(--color-primary);
    line-height: 1.2;
    margin: 0;
    word-break: keep-all;
}

.board-title-area .board-date {
    display: block;
    color: var(--color-theme);
    margin-top: 1rem;
}

/* 게시글 본문 영역 (col-9) */
.board-content-area {
    margin-bottom: 2rem;
}

.board-content-image {
    width: 100%;
    height: auto;
    margin-bottom: 2rem;
    border: 1px solid var(--color-border);
}

.board-content-image img {
    width: 100%;
    height: auto;
    display: block;
}

.board-content-text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--color-primary);
    margin-bottom: 2rem;
}

.board-content-text p {
    margin-bottom: 1.5rem;
}

.board-content-text p:last-child {
    margin-bottom: 0;
}

/* 게시글 메타 정보 */
.board-meta {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 1rem 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 2rem;
}

/* 게시글 액션 버튼 */
.board-view-actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 1rem;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--color-border);
}

.board-meta-left {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2rem;
}

.board-meta-item {
    font-size: 14px;
    color: var(--color-text-light);
}

.board-meta-item strong {
    color: var(--color-primary);
    font-weight: 400;
}

/* 버튼 영역 - submit.html 스타일 적용 */
.btn-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 15px;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    margin-top: 40px;
    padding: 20px 0;
}

/* 테두리 애니메이션 */
@-webkit-keyframes borderShow {
    0% { background-size: 0% 2px, 2px 0%, 0% 2px, 2px 0%; }
    50% { background-size: 100% 2px, 2px 0%, 100% 2px, 2px 0%; }
    100% { background-size: 100% 2px, 2px 100%, 100% 2px, 2px 100%; }
}

@keyframes borderShow {
    0% { background-size: 0% 2px, 2px 0%, 0% 2px, 2px 0%; }
    50% { background-size: 100% 2px, 2px 0%, 100% 2px, 2px 0%; }
    100% { background-size: 100% 2px, 2px 100%, 100% 2px, 2px 100%; }
}

@-webkit-keyframes borderHide {
    0% { background-size: 100% 2px, 2px 100%, 100% 2px, 2px 100%; }
    50% { background-size: 100% 2px, 2px 0%, 100% 2px, 2px 0%; }
    100% { background-size: 0% 2px, 2px 0%, 0% 2px, 2px 0%; }
}

@keyframes borderHide {
    0% { background-size: 100% 2px, 2px 100%, 100% 2px, 2px 100%; }
    50% { background-size: 100% 2px, 2px 0%, 100% 2px, 2px 0%; }
    100% { background-size: 0% 2px, 2px 0%, 0% 2px, 2px 0%; }
}

.btn {
    position: relative;
    padding: 12px 24px;
    border: 1px solid var(--color-text-light);
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: 5px;
    background: transparent;
    color: var(--color-text);
    overflow: hidden;
    -webkit-transition: all var(--transition-base);
    -moz-transition: all var(--transition-base);
    -o-transition: all var(--transition-base);
    transition: all var(--transition-base);
}

.btn::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-theme);
    -webkit-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    transform: translateX(-100%);
    -webkit-transition: -webkit-transform var(--transition-base);
    -moz-transition: transform var(--transition-base);
    -o-transition: transform var(--transition-base);
    transition: transform var(--transition-base);
    z-index: 0;
}

.btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
    background-image: 
        /* 상단 선 */
        linear-gradient(to right, var(--color-theme) 0%, var(--color-theme) 100%),
        /* 우측 선 */
        linear-gradient(to bottom, var(--color-theme) 0%, var(--color-theme) 100%),
        /* 하단 선 */
        linear-gradient(to left, var(--color-theme) 0%, var(--color-theme) 100%),
        /* 좌측 선 */
        linear-gradient(to top, var(--color-theme) 0%, var(--color-theme) 100%);
    background-size: 
        0% 2px,  /* 상단 */
        2px 0%,  /* 우측 */
        0% 2px,  /* 하단 */
        2px 0%;  /* 좌측 */
    background-position: 
        top left,    /* 상단 */
        top right,   /* 우측 */
        bottom right, /* 하단 */
        bottom left;  /* 좌측 */
    background-repeat: no-repeat;
    -webkit-animation: none;
    -moz-animation: none;
    -o-animation: none;
    animation: none;
}

.btn > * {
    position: relative;
    z-index: 1;
    -webkit-transition: color var(--transition-base);
    -moz-transition: color var(--transition-base);
    -o-transition: color var(--transition-base);
    transition: color var(--transition-base);
}

.btn-primary {
    border-color: var(--color-text-light);
    color: var(--color-text);
}

.btn-secondary {
    border-color: var(--color-text-light);
    color: var(--color-text);
}

.btn:hover::after {
    -webkit-animation: borderShow 0.3s ease forwards;
    -moz-animation: borderShow 0.3s ease forwards;
    -o-animation: borderShow 0.3s ease forwards;
    animation: borderShow 0.3s ease forwards;
}

.btn:not(:hover)::after {
    -webkit-animation: borderHide 0.3s ease forwards;
    -moz-animation: borderHide 0.3s ease forwards;
    -o-animation: borderHide 0.3s ease forwards;
    animation: borderHide 0.3s ease forwards;
}

.btn-primary:hover,
.btn-secondary:hover {
    border-color: rgba(255, 255, 255, 0);
}

.btn-primary:hover::before,
.btn-secondary:hover::before {
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
}

/* 반응형 12컬럼 시스템 */
@media (max-width: 768px) {
    .row {
        margin: 0 -10px;
    }

    .col-3,
    .col-9 {
        flex: 0 0 100%;
        max-width: 100%;
        padding: 0 10px;
        margin-bottom: 20px;
    }

    .board-view-container {
        padding: 0 0.5rem;
    }

    .board-meta {
        flex-direction: column;
        gap: 1rem;
        align-items: flex-start;
    }

    .board-meta-left {
        flex-direction: column;
        gap: 0.5rem;
    }

    .btn-wrap {
        flex-direction: column;
        gap: 10px;
        margin-top: 30px;
    }

    .btn {
        width: 100%;
        padding: 15px 20px;
        font-size: 16px;
    }
}

