@charset "utf-8";

/*── Reset & Base ───────────────────────────────────────────────────────────*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

table {
    border-collapse: collapse;
    width: 100%;
}

ol,
ul,
li {
    list-style: none;
}

a {
    text-decoration: none;
    color: #252525c7;
    padding: 0;
}

address {
    font-style: normal;
}

html,
body {
    width: 100%;
    height: 100%;
    overflow: hidden !important;
    /* fullPage.js 사용 시 */
    font-family: 'Helvetica Neue', Arial, sans-serif;
    color: #333333d0;
    background: #fdfdfd;
    line-height: 1.6;
}

/*── fullPage.js Sections ───────────────────────────────────────────────────*/
.fp-section {
    height: 100vh !important;
    overflow: hidden !important;
}

.fp-scrollable {
    overflow: hidden !important;
}

/*── Container ──────────────────────────────────────────────────────────────*/
.container {
    width: calc(100% - 2rem);
    max-width: 1200px;
    height: 100%;
    margin: 0 auto;
    padding: 0 1rem;
    overflow: hidden !important;
}

/*── Header & Nav ──────────────────────────────────────────────────────────*/
#header {
    position: fixed;
    top: -70px;
    left: 0;
    width: 100%;
    height: 80px;
    background: #ffffff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: top 0.3s ease;
    z-index: 1000;
}

#header:hover {
    top: 0;
}

.handle {
    position: absolute;
    top: calc(100% - 10px);
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 10px;
    background: #5dafafaf;
    cursor: pointer;
    z-index: 1001;
}

body {
    padding-top: 20px;
    /* 헤더 핸들 여유 */
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 0;
}

.logo img {
    height: 50px;
    display: block;
}

nav.gnb ul {
    display: flex;
    gap: 2rem;
    padding: 1rem 0;
}

nav.gnb a {
    text-decoration: none;
    color: #333333ea;
    font-weight: 500;
    padding: 0.5rem;
    transition: color 0.3s, background 0.3s;
}

nav.gnb a:hover {
    color: #66b8a6ea;
    background: rgba(173, 204, 165, 0.1);
    border-radius: 4px;
}

/*── Language Toggle ───────────────────────────────────────────────────────*/
.lang-kr,
.lang-en {
    display: none;
}

body:not(.en) .lang-kr {
    display: inline;
}

body.en .lang-en {
    display: inline;
}

.lang-toggle {
    position: fixed;
    top: 12px;
    right: 13px;
    display: flex;
    gap: 0.5rem;
    z-index: 1100;
}

.lang-toggle button {
    background: #fff;
    border: 1px solid #699ea53d;
    padding: 0.3rem;
    cursor: pointer;
    font-size: 0.8rem;
    border-radius: 50%;
    transition: background 0.2s, color 0.2s;
}

.lang-toggle button.active {
    background: #6ba6b8c2;
    color: #fff;
    border-color: #fff;
}

/*── Hero Slider ──────────────────────────────────────────────────────────*/
.hero-swiper {
    width: 100%;
    height: 700px;
}

.swiper-slide {
    background-size: cover;
    background-position: center;
    position: relative;
}

.slide-content {
    position: absolute;
    bottom: 20%;
    left: 10%;
    color: #fff;
    max-width: 80%;
}

/*── About Section ────────────────────────────────────────────────────────*/
#about .container {
    padding-top: 20px;
}

.about-flex {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    overflow: hidden !important;
    padding-top: 100px;
}

.about-profile h2 {
    font-size: 24px;
}

.about-profile h2:hover a {
    color: #66b8a6ad;
}

.about-profile {
    flex: 1 1 300px;
    padding: 10px 0;
    color: #636161;
    font-weight: 300;
    padding-bottom: 30px;
}

.profile-photo {
    width: 300px;
    height: 300px;
    position: relative;
    overflow: hidden !important;
    border-radius: 8px;
}

.profile-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.3s ease-in-out;
}

.profile-photo::after {
    content: "";
    background-image: url('../images/pro1.jpg');
    /* hover 이미지 경로 */
    background-size: cover;
    background-position: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.9s ease-in-out;
    z-index: 1;
    border-radius: 8px;
}

.profile-photo:hover::after {
    opacity: 0.8;
}

@media (max-width: 768px) {
    .profile-photo img {
        width: 200px;
    }
}

.about-profile h2 {
    padding-top: 50px;
}

.about-resume {
    flex: 1 1 600px;
    max-height: calc(100vh - 150px);
    overflow: hidden;
}

.about-resume h3:first-of-type {
    padding-top: 5rem;
    margin-bottom: 1rem;
}

.about-resume h3:nth-of-type(2) {
    padding-top: 1.5rem;
    margin-bottom: 1rem;
}

.about-resume li {
    margin-bottom: 10px;
    color: #636161;
    width: 100%;
    white-space: nowrap;
}

.about-profile h4 {
    font-size: 1vw;
    font-weight: 400;
    padding-top: 5px;
}

.about-profile li a {
    font-size: 1vw;
    color: #739993;
}

.about-profile li a:hover {
    color: #71bea1;
}

.resume-list li {
    margin-bottom: 0.75rem;
    font-size: 0.8vw;
}

.resume-list li strong {
    display: inline-block;
    width: 30%;
    color: #636161;
    font-size: 0.8vw;
}

/*── Exhibitions Section ─────────────────────────────────────────────────*/
#exhibitions .container {
    padding-top: 100px;
}

.exhibit-layout {
    padding-top: 20px;
    display: flex;
    gap: 2rem;
    align-items: flex-start;
    flex-wrap: wrap;
}

.exhibit-layout .past,
.exhibit-layout .upcoming {
    flex: 1 1 45%;
}

/* Past: 필터 탭 */
.filter-tabs {
    display: flex;
    gap: 0.5rem;
    margin: 1rem 0 0.5rem;
}

.filter-tabs button {
    background: #f0f0f0;
    border: none;
    padding: 0.4rem 0.8rem;
    cursor: pointer;
    border-radius: 4px;
    font-size: 0.9rem;
    transition: background 0.2s;
}

.filter-tabs button.active,
.filter-tabs button:hover {
    background: #66b8a6ea;
    color: #fff;
}

/* Past: 4×2 썸네일 그리드 */
.exhibit-grid {
    display: grid;
    grid-template-columns: repeat(4, 120px);
    grid-template-rows: repeat(2, 120px);
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.exhibit-item,
.exhibit-placeholder {
    width: 120px;
    height: 120px;
    border: 1px solid #eee;
    border-radius: 4px;
    background: #fafafa;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden !important;
    font-size: 0.8rem;
    text-align: center;
}

.exhibit-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    cursor: pointer;
}

.exhibit-item .overlay {
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
}

.exhibit-item .overlay button {
    background: rgba(105, 158, 136, 0.589);
    border: none;
    color: #fff;
    padding: 0.1rem 0.4rem;
    font-size: 0.75rem;
    border-radius: 3px;
    cursor: pointer;
}

/*── Past Exhibit 전용 모달 ─────────────────────────────────────────── */
.past-exhibit-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 2000;
    justify-content: center;
    align-items: center;
}

.past-exhibit-modal-content {
    background: #fff;
    padding: 1rem;
    border-radius: 8px;
    max-width: 600px;
    width: 90%;
    position: relative;
    text-align: center;
}

.past-exhibit-modal-close {
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 1.8rem;
    cursor: pointer;
}

.past-exhibit-modal-content img {
    width: 100%;
    height: auto;
    margin-bottom: 0.5rem;
}

.past-exhibit-modal-link {
    display: inline-block;
    margin-top: 0.5rem;
    background: #66b8a6;
    color: #fff;
    padding: 0.4rem 0.8rem;
    text-decoration: none;
    border-radius: 4px;
}


.next-exhibit {
    display: block;
    /* 한 줄에 하나씩 */
    margin: 0.5rem 1rem;
    /* 위아래 여백 */
    font-size: 0.9rem;
    color: #66b8a6;
    /* 하늘색 */
    cursor: pointer;
}

/*── General Modal (팜플렛, 갤러리 등 공용) ────────────────────────────────*/
.modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 2000;
    justify-content: center;
    align-items: center;
}

.modal-content {

    background: #fff;
    padding: 1rem;
    border-radius: 8px;
    max-width: 800px;
    width: 90%;
    max-height: 90vh;
    overflow-y: hidden;
    position: relative;
    text-align: center;
}

*/ .modal-close {
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 1.8rem;
    cursor: pointer;
}

#pamphlet-modal .modal-content img {
    width: 100%;
    height: auto;
    margin-bottom: 0.5rem;
}

#pamphlet-modal .modal-link {
    display: inline-block;
    margin-top: 0.5rem;
    background: #66b8a6;
    color: #fff;
    padding: 0.4rem 0.8rem;
    text-decoration: none;
    border-radius: 4px;
}

/* Past: 페이지네이션 */
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1rem;
}

.pagination button {
    background: #f0f0f0;
    border: none;
    padding: 0.4rem 0.8rem;
    cursor: pointer;
    border-radius: 4px;
    font-size: 0.9rem;
}

.pagination button:disabled {
    opacity: 0.5;
    cursor: default;
}

/* gallery-modal에만 너비 제한을 더 조이고 싶다면 */
.gallery-modal-content {
    max-width: 500px;
}

/*── 기사 링크 & 페이징 ───────────────────────────────────────────────────*/
.exhibit-notice a {
    color: #549ab6;
    text-decoration: none;
    word-break: break-word;
}

.exhibit-notice a:hover {
    text-decoration: underline;
}

.notice-pagination {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.notice-pagination button {
    background: #f0f0f0;
    border: none;
    padding: 0.3rem 0.6rem;
    border-radius: 4px;
    cursor: pointer;
}

.notice-pagination button:disabled {
    opacity: 0.5;
    cursor: default;
}

/*── Exhibitions Notice 영역 ───────────────────────────────────────────────*/
.pamphlet-title,
.notice-title {
    margin: 1rem 0 0.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: #333;
}

.pamphlet-title .lang-en,
.notice-title .lang-en {
    display: none;
}

body.en .pamphlet-title .lang-en,
body:not(.en) .pamphlet-title .lang-kr {
    display: inline;
}

body.en .notice-title .lang-en,
body:not(.en) .notice-title .lang-kr {
    display: inline;
}

.exhibit-notice {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: #f9f9f9;
    border-left: 4px solid #66b8a6;
    font-size: 0.85rem;
    color: #555;
    line-height: 1.4;
}

.exhibit-notice .notice-links {
    display: flex;
    flex-direction: column;
}

.exhibit-notice .notice-links>span {
    display: block;
    margin-bottom: 0.5rem;
}

body:not(.en) .exhibit-notice .notice-links span.lang-en {
    display: none !important;
}

body.en .exhibit-notice .notice-links span.lang-kr {
    display: none !important;
}

/*── Upcoming Section ─────────────────────────────────────────────────────*/
.upcoming .calendar-widget {
    width: 100% !important;
    max-width: 100% !important;
    height: 700px !important;
    max-height: 700px !important;
    margin: 0;
    padding: 0.5rem;
    border: 1px solid #ddd;
    box-sizing: border-box;
    overflow: hidden !important;
}

.upcoming .calendar-widget .fc {
    height: 100% !important;
}

/* FullCalendar Toolbar & Cells 조정 */
.fc-toolbar {
    margin-bottom: 1rem;
}

/* 달력 타이틀: 월·연 두 줄 유지 + 고정 너비 */
.calendar-widget .fc-toolbar-title {
    display: inline-block;
    /* 너비 지정 가능하게 */
    min-width: 100px;
    /* 원하는 최소 너비 */
    text-align: center;
    /* 가운데 정렬 */
    white-space: normal !important;
    /* 줄바꿈 허용 */
    line-height: 2;
    /* 줄 간격 */
}

.fc-button {
    background: #6ea0b600 !important;
    border: none !important;
    color: #8298ad79 !important;
    border-radius: 4px !important;
    padding: 0.4rem 0.8rem !important;
    font-size: 0.9rem !important;
}

.fc-button:hover {
    background: #8dafc59d !important;
    color: #fff !important;
}

/* 1) 툴바 타이틀 두 줄 표시용 */
.fc-toolbar-title {
    white-space: pre-line;
    /* 줄바꿈 허용 */
    line-height: 1.2;
    /* 줄간격 조절 */
    text-align: center;
    /* 가운데 정렬 */
}

.fc-toolbar-title br {
    display: block;
    /* <br> 블록으로 */
}

/* ────────────────────────────────── */
/* 기존 스타일 계속 유지 */
.calendar-widget {
    max-width: 900px;
    margin: 0 auto;
    overflow: hidden;
}

.fc-header-toolbar {
    margin-bottom: 10px;
}

.next-exhibit {
    margin-left: 15px;
    font-weight: bold;
}

.fc-col-header-cell-cushion {
    font-size: 0.75rem !important;
    padding: 0.2rem 0 !important;
    color: #666466 !important;
}

.fc-daygrid-day-frame {
    padding: 0.2rem !important;
}

.fc-daygrid-day {
    min-height: calc((600px - 2.4rem - 1.2rem) / 6) !important;
    border: 1px solid #eee;
}

.fc-daygrid-day:hover {
    background-color: #fafafa;
}

.fc-day-today {
    background-color: #e6f7f7 !important;
}

.fc-event {
    background-color: #9acde083 !important;
    border: none !important;
    border-radius: 4px !important;
    font-size: 0.85rem;
    padding: 0.2rem 0.4rem !important;
}

/*── Gallery Section ───────────────────────────────────────────────────────*/

/* 카테고리 탭 */
#gallery .container {
    margin-top: 100px;
}

.category-tabs {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin: 2rem 0;
}

.category-tabs button {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0.5rem 1rem;
    transition: border-bottom 0.3s;
}

.category-tabs button:hover {
    color: rgba(102, 184, 166, 0.719);
    border-bottom: 2px solid rgba(102, 184, 166, 0.3);
}

.category-tabs button.active {
    border-bottom: 2px solid rgba(158, 128, 179, 0.3);
    color: rgba(158, 128, 179, 0.644);
}

/* 그리드 내 상세보기 버튼 한 줄로 */
.exhibit-grid .exhibit-item .overlay button {
    display: inline-block;
    /* 너비를 콘텐츠에 맞춤 */
    white-space: nowrap;
    /* 텍스트 줄바꿈 방지 */
    padding: 0.5em 1em;
    /* 필요에 따라 여백 조정 */
    font-size: 0.9rem;
    /* 글자 크기 */
    /* width: auto; */
    /* 고정 너비가 들어가 있다면 없애세요 */
}

/* 갤러리 그리드 */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

.thumb-item img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    border-radius: 4px;
}


/*── Shop Section ─────────────────────────────────────────────────────────*/
#shop .container {
    margin-top: 100px;
}

#shop {
    padding-top: 100px;
}

.shop-tabs {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin: 2rem 0;
}

/* 1) 기본 버튼 스타일 */
.shop-tabs button {
    background: #fff;
    /* 버튼 배경색 */
    border: 1px solid #ccc;
    /* 테두리 */
    border-radius: 4px;
    /* 모서리 둥글게 */
    padding: 0.5rem 1.2rem;
    /* 상하 / 좌우 여백 */
    font-weight: 600;
    /* 글자 두께 */
    color: #81b3ac;
    /* 글자색 */
    cursor: pointer;
    /* 커서 */
    transition: background 0.3s, color 0.3s, border-color 0.3s;
}

/* 2) hover 시 */
.shop-tabs button:hover {
    background: #b4a5c285;
    border-color: #8d7ba5;
    color: #fcfcfc;
}

/* 3) active 탭 */
.shop-tabs button.active {
    background: #6188b1;
    border-color: #6188b1;
    color: #fff;
    /* border-bottom: 2px solid #fff;  // 언더라인만 쓰고 싶다면 이렇게도 가능 */
}

.shop-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

.product-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 4px;
}

/*── Notes Section ────────────────────────────────────────────────────────*/
#notes .container {
    margin-top: 100px;
}

#notes {
    margin-top: 100px;
}

.notes-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
    margin-top: 80px;
}

.note-card {
    background: #fff;
    padding: 1rem;
    border: 1px solid #eee;
    border-radius: 8px;
}

/*── Footer ───────────────────────────────────────────────────────────────*/
#footer {
    text-align: center;
    padding: 1rem;
    color: #7e9691;
    width: 100%;
    height: 700px !important;
    background-color: #fff;
    overflow: hidden !important;
}

#footer .logo img {
    text-align: center;
    padding-top: 100px;
}

#footer ul {
    margin-top: 200px;

}

#footer .sns_list {
    list-style: none;
    display: flex;
    justify-content: center;
    gap: 20px;
    padding: 10px 0;
    margin-top: 300px;
}

#footer .sns_list img {
    width: 24px;
    height: 24px;
}

#footer .sns_list li {
    display: inline-block;
    width: 24px;
    height: 24px;
    margin: 0 10px;
    position: relative;
}

#footer .sns_list li a {
    display: block;
    width: 100%;
    height: 100%;
}

#footer .sns_list li a img {
    width: 100%;
    height: auto;
    display: block;
}

#footer .sns_list li:nth-child(1) a {
    padding-top: 4px;
}

#footer address {
    font-size: 10px;
    font-weight: 100;
    color: #7e9691 !important;
    padding-top: 5px;
}

#footer p {
    font-size: 10px;
    font-weight: 100;
    color: #7e9691;
    margin-top: 10px;
}

/* ▶ 유튜브 */
#footer .sns_list li:nth-child(1) a:hover img {
    content: url("../images/youtube_hover.png");
	transform:scale(1.5);
}

/* ▶ 인스타그램 hover 시 이미지 변경 */
#footer .sns_list li:nth-child(2) a:hover img {
    content: url("../images/instar_hover.png");
	transform:scale(1.5);
}


/* ▶ 네이버 */
#footer .sns_list li:nth-child(3) a:hover img {
    content: url("../images/naver_hover.png");
	transform:scale(1.5);
}

/* ▶ 페이스북 */
#footer .sns_list li:nth-child(4) a:hover img {
    content: url("../images/facebook_hover.png");
	transform:scale(1.5);
}

address a:hover {
    color: #7b6788;
}

/*── Hide fullPage.js default overflow ────────────────────────────────────*/
html.fp-enabled {
    overflow: hidden !important;
}


.fp-warning,
.fp-watermark a {
    display: none;
}


/* Go to Top 버튼 */
.go-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 50px;
    height: 50px;
    background: #66b8a69f;
    color: #fff;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10000;
    display: none;
    /* 첫 섹션에선 숨김 */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transition: background 0.3s;
}

.go-top:hover {
    background: #9077a098;
}