/* 기본 초기화 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Noto Sans KR', sans-serif;
    line-height: 1.6;
    color: #333;
}

a {
    text-decoration: none;
    color: inherit;
}

ul {
    list-style: none;
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

/* 헤더 스타일 */
#main-header {
    background-color: #fff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
}

#main-header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 80px;
}

nav ul {
    display: flex;
    gap: 30px;
}

nav ul li a {
    font-weight: 700;
    font-size: 1.1rem;
    transition: color 0.3s;
}

nav ul li a:hover {
    color: #d35400; /* 짙은 주황색 */
}

.banner-left .img-btn {
	margin-top: 5px;
	margin-left: -20px;
}


.hero {
	
	margin-top: 82px;
	
    /* 이미지 경로 설정 */
    background-image: url('../image/2026-01.jpg');
    
    /* 1. 화면 꽉 채우기 (가로/세로 비율 유지) */
    background-size: contain;
    
    /* 2. 이미지의 중앙을 기준으로 정렬 */
    background-position: center top;
    
    /* 3. 반복 방지 */
    background-repeat: no-repeat;
    
    /* 4. 브라우저 높이에 맞춤 (PC/모바일 공통) */
    width: 100%;
    aspect-ratio: 980 / 575;
}

/* 모바일 대응 (화면이 세로로 길어질 때) */
@media (max-width: 768px) {
    .hero {
        /* 모바일에서는 높이를 조금 줄이거나 유지 (상황에 따라 조절) */
        background-size: contain;
        /* 모바일용 배경 고정 해제 (스크롤 성능 최적화) */
        background-attachment: scroll;
	    width: 100%;
	    aspect-ratio: 980 / 575;
    }
}

.hero h1 {
    font-size: 3.5rem;
    margin-bottom: 20px;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}

.hero p {
    font-size: 1.5rem;
    margin-bottom: 30px;
}

.btn-main {
    background-color: #d35400;
    color: #fff;
    padding: 15px 40px;
    border-radius: 30px;
    font-weight: bold;
    transition: background-color 0.3s;
}

.btn-main:hover {
    background-color: #a04000;
}

/* 프로그램 섹션 */
.programs {
    padding: 80px 0;
    text-align: center;
}

.programs h2 {
    font-size: 2.5rem;
    margin-bottom: 50px;
    color: #4a2c2a; /* 밤색 */
}

.grid-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.card {
    border: 0px solid #ddd;
    border-radius: 10px;
    overflow: hidden;
    transition: transform 0.3s;
}

.card:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

.card img {
    width: 100%;
    /*height: 250px;*/
    object-fit: cover;
}

.card h3 {
    margin: 20px 0 10px;
    color: #4a2c2a;
}

.card p {
    padding: 0 20px 20px;
    color: #666;
}

/* [수정] 푸터 스타일 */
/* 로고 스타일 */
.footer-logo img {
    height: 40px; /* 로고 크기 */
    width: auto;
    filter: invert(100%); /* 로고가 어두운 색일 경우 흰색으로 반전 (선택 사항) */
}



/* 푸터 기본 설정 */
.footer {
  padding: 30px 20px;
  background: #4a4a4a;
}

.footer-inner {
  display: flex;
  align-items: center;          /* 로고와 텍스트 수직 중앙 */
  justify-content: center;      /* 전체를 가운데 정렬 */
  gap: 20px;                    /* 로고와 텍스트 간격 */
  max-width: 1200px;
  margin: 0 auto;
}

.footer-logo img {
  width: 50px;                  /* 로고 크기 조절 */
  height: auto;
  padding-top: 5px;
}

.footer-text {
	text-align: left;             /* 텍스트는 왼쪽 정렬 */
	font-size: 16px;
	line-height: 1.7;
	color: #fff;
}

.footer-text p {
  margin: 0;
}


@media (max-width: 768px) {
  .footer-inner {
    flex-direction: column;
    text-align: center;
  }

  .footer-text {
    text-align: center;
  }
}



/* [추가] 상단 배너 스타일 */
#top-banner {
    background-color: #00346e; /* 스크린샷의 짙은 파란색 */
    /* 만약 배경 이미지를 쓴다면 아래 주석 해제 */
    /* background: url('../image/top_banner_bg.jpg') no-repeat center center/cover; */
    height: 50px;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 1001; /* 헤더보다 위에 보이도록 */
    color: #fff;
}

/* 배너 내부 레이아웃 */
#top-banner .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}

/* 왼쪽 고맛나루 버튼 스타일 (이미지 없을 때 대체 스타일) */
.gomannaru-btn {
    background-color: #fff;
    color: #333;
    padding: 5px 15px;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: bold;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
}

.gomannaru-btn .arrow {
    background-color: #e74c3c;
    color: #fff;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
}

/* 오른쪽 SNS 아이콘 리스트 */
.sns-list {
    display: flex;
    gap: 10px;
}

.sns-list li a {
    display: block;
    width: 30px;
    height: 30px;
    border-radius: 5px; /* 네모난 아이콘 */
    overflow: hidden;
   /* background-color: #fff; */ /* 아이콘 이미지가 없을 때 흰 배경 */
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 0.7rem;
    color: #333;
    font-weight: bold;
}

.sns-list li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 헤더 위치 수정 (상단 배너만큼 아래로 밀기) */
#main-header {
    top: 50px; /* 상단 배너 높이만큼 띄움 */
}
/* 배너(50px) + 헤더(80px) 높이 합산 */
/*
.hero {

    margin-top: 130px; 

}
*/

/* [수정됨] 단순 팜플렛 섹션 스타일 */
.simple-pamphlet {
    padding: 60px 0;
    text-align: center; /* 이미지 가운데 정렬 */
    background-color: #fcf8f3; /* 배경색 (흰색을 원하시면 #fff로 변경) */
}

.pamphlet-img {
    max-width: 100%; /* 화면 너비에 맞춰 자동으로 크기 조절 (모바일 대응) */
    height: auto;     /* 비율 유지 */
    display: inline-block;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1); /* 깔끔하게 그림자 효과 추가 */
}

.program-section {
    /*padding: 60px 0;*/
    text-align: center; /* 이미지 가운데 정렬 */
    background-color: #ffffff; /* 배경색 (흰색을 원하시면 #fff로 변경) */
}

.program-img {
    max-width: 100%; /* 화면 너비에 맞춰 자동으로 크기 조절 (모바일 대응) */
    height: auto;     /* 비율 유지 */
    display: inline-block;
    box-shadow: 0 0px 0px rgba(0,0,0,0); /* 깔끔하게 그림자 효과 추가 */
}

#mobile-menu-toggle {
    display: none; /* 기본(PC) 상태에서는 숨김 */
    cursor: pointer;
    background: none;
    border: none;
    padding: 10px;
    z-index: 1000; /* 메뉴보다 위에 위치하도록 설정 */
}

#mobile-menu-toggle .bar {
    display: block;
    width: 25px;
    height: 3px;
    margin: 5px 0;
    background-color: #333; /* 버튼 색상 */
    transition: 0.4s;
}
@media screen and (max-width: 768px) {
	.banner-left .img-btn {
		width: 90%;
	}

    #main-header .container {
        /* 로고와 햄버거 버튼을 양 끝에 배치 */
        justify-content: space-between; 
        align-items: center;
        width: 95%;
    }

}

/* ========================================================= */
/* 미디어 쿼리: 900px 이하에서 모바일 스타일 적용 */
/* ========================================================= */


@media screen and (max-width: 900px) {

    #main-header .container {
        /* 로고와 햄버거 버튼을 양 끝에 배치 */
        justify-content: space-between; 
        align-items: center;
        
    }

    /* 1. 햄버거 버튼 표시 */
    #mobile-menu-toggle {
        display: block;
    }

    /* 2. PC 메뉴 숨기기 */
    #main-header nav .pc-menu {
        display: none; /* 기본적으로 숨김 */
        
        /* 모바일 메뉴 영역 설정 */
        position: absolute;
        top: 100%; /* 헤더 바로 아래에 위치 */
        left: 0;
        width: 100%;
        background-color: #f8f8f8; /* 메뉴 배경색 */
        flex-direction: column; /* 메뉴 항목을 세로로 정렬 */
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
        z-index: 999;
        width: 85%;
    }

    /* 3. 모바일 메뉴 항목 스타일 */
    #main-header nav .pc-menu li {
        width: 100%;
        text-align: center;
        border-bottom: 1px solid #eee;
    }

    #main-header nav .pc-menu li a {
        display: block;
        padding: 15px 0;
    }

    /* 4. JavaScript가 'open' 클래스를 추가했을 때 메뉴 보이기 */
    #main-header nav .pc-menu.open {
        display: flex; /* Flexbox를 사용하여 세로로 표시 */
        width: 100%;
    }
}


/* 현재 페이지의 메뉴 항목을 위한 스타일 */
#main-header nav ul li .active {
    /* 텍스트 색상을 강조 */
    color: #FF7700; /* 오렌지색 등 강조 색상으로 변경 */
    /* 밑줄 또는 배경색 변경 */
    border-bottom: 2px solid #FF7700; 
    padding-bottom: 5px; /* 밑줄을 위한 여백 */
    font-weight: bold;
}

/* 마우스 오버 효과와 동일하게 설정하여 일관성을 유지할 수도 있습니다. */
#main-header nav ul li a:hover,
#main-header nav ul ul li a:hover, /* hover 스타일과 active 스타일을 통일 */
#main-header nav ul li a.active {
    color: #FF7700;
    border-bottom: 2px solid #FF7700;
}



/* ========================================================= */
/* video.html 전용 스타일링 */
/* ========================================================= */

/* 메인 콘텐츠 컨테이너 설정 */
.page-content {
    /* 기존 container 클래스가 중앙 정렬과 최대 폭을 처리한다고 가정 */
    padding: 40px 20px;
    max-width: 1200px; /* 적절한 최대 폭 설정 (기존 .container 값에 따름) */
    margin: 0 auto;
}

/* 개별 영상 섹션 간격 */
.video-section {
    margin-bottom: 60px;
    padding: 20px;
    /* 배경색이나 그림자 등을 추가하여 섹션을 시각적으로 분리할 수 있습니다. */
}

/* 영상 제목 스타일 */
.video-header {
    text-align: center;
    margin-bottom: 20px;
}

.video-title {
    font-size: 20px;
    font-weight: bold;
    color: #333; /* 적절한 색상 지정 */
    line-height: normal;
    padding-bottom: 10px;
}

/* 구분선 스타일 */
.divider {
    border: 0;
    height: 1px;
    background-color: #ddd; /* 옅은 회색 구분선 */
    width: 60%; /* 제목 아래에 짧게 표시 */
    margin: 10px auto 30px auto;
}

/* 비디오 영역 컨테이너 */
.video-player-container {
    /* 비디오가 중앙에 오도록 컨테이너 설정 */
    display: flex;
    justify-content: center;
}

/* 비디오 비율 유지를 위한 래퍼 (반응형 비디오의 핵심) */
.video-wrapper {
    position: relative;
    width: 100%;
    /* 16:9 비율 유지를 위해 padding-bottom: 56.25% (9 / 16 * 100) 적용 */
    padding-bottom: 56.25%; 
    max-width: 1024px; /* 비디오 최대 폭 지정 */
}

/* 비디오 태그 자체 스타일 */
.responsive-video-player {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* 비디오가 래퍼에 꽉 차도록 설정 */
    border: 1px solid #ccc;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}


/* ========================================================= */
/* services.html 전용 스타일링 */
/* ========================================================= */

.service-page-content {
    padding: 40px 20px;
    max-width: 1200px; /* 적절한 콘텐츠 최대 폭 설정 */
    margin: 0 auto;
}

.page-title {
    font-size: 32px;
    font-weight: bold;
    text-align: center;
    color: #2c3e50;
    margin-bottom: 50px;
    border-bottom: 3px solid #f39c12; /* 축제나 밤을 상징하는 색상 */
    display: inline-block;
    padding-bottom: 10px;
    width: auto;
    margin-left: auto;
    margin-right: auto;
}

/* --- 섹션 공통 스타일 --- */
.info-section {
    margin-bottom: 40px;
    background-color: #ffffff;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.section-heading {
    font-size: 26px;
    font-weight: 700;
    color: #c0392b; /* 밤색과 유사한 진한 붉은 계열 */
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px dashed #f1c40f;
}

.sub-heading {
    font-size: 20px;
    font-weight: 600;
    color: #34495e;
    margin-top: 25px;
    margin-bottom: 15px;
}

/* --- 목록 스타일 (공주밤의 특징) --- */
.feature-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.feature-list li {
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill="%23f39c12" d="M12.78 4.22a.75.75 0 0 0-1.06 0L7 8.94l-2.72-2.72a.75.75 0 0 0-1.06 1.06l3.25 3.25a.75.75 0 0 0 1.06 0l5.5-5.5a.75.75 0 0 0 0-1.06z"/></svg>') no-repeat left 6px;
    background-size: 16px;
    padding-left: 25px;
    margin-bottom: 10px;
    line-height: 1.6;
    color: #555;
}

/* --- 비교 섹션 레이아웃 --- */
.comparison-container {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    flex-wrap: wrap; /* 모바일 대응 */
}

.comparison-item {
    flex: 1 1 45%; /* 데스크톱에서는 2열, 모바일에서는 1열 */
    padding: 15px;
    border: 1px solid #eee;
    border-left: 4px solid #f1c40f;
    border-radius: 4px;
}

.comparison-item h4 {
    font-size: 18px;
    color: #2980b9;
    margin-top: 0;
    margin-bottom: 10px;
}

/* --- 팁 및 링크 스타일 --- */
.purchase-tip, .storage-tip {
    font-weight: 500;
    color: #2c3e50;
    background-color: #ecf0f1;
    padding: 10px 15px;
    border-radius: 4px;
    margin-top: 15px;
}

.online-market-link {
    display: inline-block;
    padding: 10px 20px;
    background-color: #e67e22; /* 눈에 띄는 주황색 계열 */
    color: white;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    margin-top: 20px;
    transition: background-color 0.3s;
}

.online-market-link:hover {
    background-color: #d35400;
}

/* --- 모바일 반응형 대응 --- */
@media (max-width: 768px) {
    .comparison-container {
        flex-direction: column;
    }
    .comparison-item {
        flex: 1 1 100%;
    }
    .page-title {
        font-size: 26px;
    }
    .section-heading {
        font-size: 22px;
    }
}


/* ========================================================= */
/* 축제 홍보 페이지 전용 스타일링 */
/* ========================================================= */

.promotion-page-content {
    padding: 40px 20px;
    max-width: 1200px; /* 전체 컨테이너 최대 폭 */
    margin: 0 auto;
}

/* 페이지 제목 스타일 */
.page-title {
    font-size: 32px;
    font-weight: bold;
    text-align: center;
    color: #333;
    margin-bottom: 50px;
    border-bottom: 3px solid #f39c12; /* 밤 축제를 상징하는 색상 */
    display: inline-block;
    padding-bottom: 10px;
    margin-left: auto;
    margin-right: auto;
}

/* 갤러리 부제목 스타일 */
.gallery-subtitle {
    font-size: 24px;
    font-weight: 600;
    text-align: center;
    color: #c0392b; /* 진한 붉은 계열 */
    margin-bottom: 30px;
}

/* 포스터 갤러리 (그리드 레이아웃) */
.promotion-gallery {
    display: grid;
    /* 280px 이상일 경우 가능한 많은 열을 자동 배치 */
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px; /* 아이템 간격 */
    padding: 20px 0;
}

/* 개별 포스터 아이템 스타일 */
.promotion-item {
    text-align: center;
    background-color: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}

.promotion-item:hover {
    transform: translateY(-5px);
}

.promotion-item img {
    width: 100%;
    height: auto; 
    display: block;
    object-fit: cover; /* 이미지가 잘리지 않게 조정 */
}

/* 포스터 설명 캡션 */
.caption {
    padding: 15px 10px;
    font-size: 14px;
    color: #555;
    font-weight: 500;
    line-height: 1.4;
    background-color: #fcfcfc;
}

/* 와이드 포스터를 위한 스타일 (선택 사항) */
.promotion-item.landscape {
    grid-column: span 2; /* 데스크톱에서 2칸을 차지하도록 설정 */
}

/* --- 모바일 반응형 대응 --- */
@media (max-width: 600px) {
    .promotion-gallery {
        grid-template-columns: 1fr; /* 모바일에서는 1열로 변경 */
    }
    .promotion-item.landscape {
        grid-column: span 1; /* 모바일에서는 다시 1열로 복귀 */
    }
    .page-title {
        font-size: 28px;
    }
}



/* --- 공지사항 리스트 페이지 스타일 --- */

.notice-list-page {
    max-width: 1000px;
    margin: 40px auto;
    padding: 0 20px;
}

.notice-list-page .page-title {
    font-size: 30px;
    font-weight: bold;
    color: #333;
    margin-bottom: 30px;
    border-bottom: 3px solid #f39c12;
    padding-bottom: 10px;
}

.table-container {
    overflow-x: auto; /* 작은 화면에서 스크롤 가능하게 */
}

.table-container table {
    width: 100%;
    border-collapse: collapse;
    border-top: 2px solid #333;
}

.table-container th, .table-container td {
    padding: 12px 10px;
    border-bottom: 1px solid #eee;
    text-align: center;
}

.table-container th {
    background-color: #f7f7f7;
    font-weight: 600;
    color: #555;
    white-space: nowrap;
}

.th-num { width: 8%; }
.th-date { width: 15%; }
.th-views { width: 10%; }
.th-file { width: 8%; }
.th-title { text-align: left; }
.td-title a {
    text-decoration: none;
    color: #333;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}
.td-title a:hover {
    text-decoration: underline;
    color: #c0392b; /* 포인트 색상 */
}

/* 첨부파일 아이콘 */
.file-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    /* 첨부파일 아이콘을 직접 SVG나 이미지로 대체하세요 */
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%232ecc71" d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zM15 17h-2v3h-2v-3H9v-2h2v-3h2v3h2v2zM13 9V3.5L18.5 9H13z"/></svg>') no-repeat center center;
    background-size: contain;
}

/* 중요 공지 강조 */
.notice-important {
    background-color: #fff8e1;
}

.notice-important .td-title a {
    font-weight: bold;
    color: #c0392b;
}


/* 페이징 스타일 */
.pagination {
    text-align: center;
    margin-top: 30px;
}
.page-link {
    display: inline-block;
    padding: 8px 12px;
    margin: 0 4px;
    border: 1px solid #ddd;
    text-decoration: none;
    color: #555;
    border-radius: 4px;
}
.page-link.active {
    background-color: #c0392b;
    color: white;
    border-color: #c0392b;
}
.page-link:hover:not(.active) {
    background-color: #f7f7f7;
}

/* 모바일 대응 */
@media (max-width: 600px) {
    .notice-list-page .page-title {
        font-size: 24px;
    }
    .table-container table {
        font-size: 14px;
    }
    .th-num, .td-num, .th-views, .td-views, .th-file, .td-file {
        display: none; /* 모바일에서 일부 열 숨기기 */
    }
    .th-title { width: 100%; text-align: center; }
}


/* --- 공지사항 상세 페이지 스타일 --- */

.notice-detail-page {
    max-width: 900px;
    margin: 40px auto;
    padding: 0 20px;
}

.notice-detail-page .page-title {
    /* 리스트 페이지와 동일하게 상단 제목 스타일 유지 */
    font-size: 30px;
    font-weight: bold;
    color: #333;
    margin-bottom: 30px;
    border-bottom: 3px solid #f39c12;
    padding-bottom: 10px;
}

.detail-box {
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-bottom: 30px;
    background-color: #fff;
}

.detail-title {
    font-size: 24px;
    font-weight: 700;
    padding: 20px;
    border-bottom: 1px solid #eee;
    color: #2c3e50;
    margin: 0;
}

.detail-info {
    display: flex;
    justify-content: flex-end;
    background-color: #f9f9f9;
    padding: 10px 20px;
    border-bottom: 1px solid #eee;
    font-size: 14px;
    color: #777;
}

.info-item {
    margin-left: 20px;
}

.detail-file {
    padding: 15px 20px;
    border-bottom: 1px dashed #ccc;
    background-color: #fafafa;
    font-size: 15px;
    font-weight: 500;
}
.detail-file a {
    color: #2980b9;
    text-decoration: none;
    margin-left: 10px;
    font-weight: normal;
}
.detail-file a:hover {
    text-decoration: underline;
}

.detail-content {
    padding: 30px 20px;
    line-height: 1.8;
    color: #333;
    font-size: 16px;
}

/* 본문에 포함된 이미지 스타일 */
.content-image {
    margin: 30px 0;
    text-align: center;
    border: 1px solid #ddd;
    padding: 10px;
    border-radius: 4px;
}
.content-image img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto 10px;
}
.content-image figcaption {
    font-size: 14px;
    color: #777;
}

/* 목록 버튼 영역 */
.detail-actions {
    text-align: center;
    padding: 10px 0;
}
.btn-list {
    display: inline-block;
    padding: 10px 25px;
    background-color: #7f8c8d; /* 회색 버튼 */
    color: white;
    text-decoration: none;
    border-radius: 4px;
    font-weight: bold;
    transition: background-color 0.3s;
}
.btn-list:hover {
    background-color: #5d6d7e;
}

/* 본문 영역 내 모든 이미지에 대한 스타일 */
.detail-content img {
    /* 1. 이미지의 최대 넓이를 부모 요소(detail-content)의 100%로 제한 */
    max-width: 100%; 
    
    /* 2. 이미지의 높이는 원래 비율에 맞게 자동으로 조절 */
    height: auto !important; 
    
    /* 3. 이미지가 블록 요소로 처리되도록 하여 레이아웃을 깔끔하게 유지 */
    display: block;
    
    /* 4. 본문 내에서 중앙 정렬 (선택 사항) */
    margin: 15px auto; 
    
    /* 5. 이미지 테두리 또는 그림자 (선택 사항: 가독성 향상) */
    border: 1px solid #eee;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    border-radius: 4px;
}


/* 참고: <figure> 태그로 감싸진 이미지 스타일 (이전 CSS에서 사용됨) */
.detail-content .content-image {
    max-width: 100%; /* figure 컨테이너도 100%를 넘지 않도록 보장 */
    margin: 30px 0;
    text-align: center;
    border: 1px solid #ddd;
    padding: 10px;
    border-radius: 4px;
}

/* 모바일 대응 */
@media (max-width: 600px) {
    .detail-title {
        font-size: 20px;
        padding: 15px;
    }
    .detail-info {
        flex-direction: column;
        align-items: flex-start;
        padding: 10px 15px;
    }
    .info-item {
        margin-left: 0;
        margin-top: 5px;
    }
    .detail-content {
        padding: 20px 15px;
    }
    .btn-list {
        width: 100%;
        box-sizing: border-box;
    }
}


/* Top 버튼 스타일 */
#back-to-top {
    position: fixed;
    bottom: 30px; /* 하단 여백 */
    right: 30px;  /* 우측 여백 */
    width: 50px;
    height: 50px;
    background-color: #d35400; /* 공주 밤 색상 (진한 주황) */
    color: white;
    border: none;
    border-radius: 50%; /* 원형 버튼 */
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    z-index: 1002; /* 헤더보다 위에 표시 */
    
    /* 기본적으로 숨김 상태 */
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
}

/* 버튼 내 화살표 모양 */
.arrow-up {
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(-45deg);
    margin-top: 5px;
}

/* 호버 효과 */
#back-to-top:hover {
    background-color: #a04000;
    transform: translateY(-5px);
}

/* 스크롤 시 나타날 때 사용할 클래스 */
#back-to-top.show {
    opacity: 1;
    visibility: visible;
}

/* 모바일 대응: 버튼 크기 조정 */
@media (max-width: 768px) {
    #back-to-top {
        bottom: 20px;
        right: 20px;
        width: 45px;
        height: 45px;
    }
}



.event-container {
    max-width: 1000px;
    margin: 20px auto;
    font-family: 'Pretendard', sans-serif;
}

.event-header {
    margin-bottom: 20px;
    border-left: 5px solid #8b4513;
    padding-left: 15px;
}

.event-header h2 {
    font-size: 24px;
    color: #333;
    margin-bottom: 5px;
}

.image-frame {
    position: relative;
    padding-top: 50px; /* 캐릭터가 올라올 공간 */
    display: flex;
    justify-content: center;
    align-items: center;
}
