@charset "utf-8";

/* ===== CLS 방지 ===== */
[data-include] {min-height:0;}
[data-include]:empty {min-height:72px;}

/* ===== 서브 페이지 공통 (래퍼 클래스 기반) ===== */
.memorial-page, .gallery-page, .viewer-page {background:#1a1510;min-height:100vh;}
body:has(.memorial-page), body:has(.gallery-page), body:has(.viewer-page) {background:#1a1510;margin:0;}

/* ===== font ===== */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css');
@font-face {font-family:'GangwonEdu_OTFBoldA';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2201-2@1.0/GangwonEdu_OTFBoldA.woff') format('woff');font-weight:normal;font-style:normal;}

/* ===== initialize ===== */
* {margin:0;padding:0;line-height:1.4em;-webkit-overflow-scrolling:touch;box-sizing:border-box;-webkit-hyphens:auto;hyphens:auto;letter-spacing:-0.05em;vertical-align:middle;font-family:inherit;color:inherit;font-weight:inherit;}

html,
body {height:100%;font-size:12px;font-family:'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Malgun Gothic', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', sans-serif;}
body {color:#333;-webkit-text-size-adjust:none;word-break:keep-all;word-wrap:break-word;}

legend,
caption,
figcaption {display:none;}

ul,
ol {list-style-image:none;list-style-position:outside;list-style-type:none;border:0px;}

img,
fieldset,
frameset,
frameborder,
frame {border:0;}

a,
img,
span,
b,
input,
select,
em,
textarea,
label,
strong {vertical-align:middle;outline-style:none;color:inherit;font-family:inherit;}

a {color:inherit;text-decoration:none;cursor:pointer;color:inherit;font-family:inherit;}
a:hover {text-decoration:none;}

i,
em {font-style:normal;}

textarea {resize:none;}

button {border:none;background:none;outline:none;cursor:pointer;}

input[type="text"],
input[type="password"],
textarea {-webkit-appearance:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-radius:0;}

select {border-radius:0;background:#fff;}

label {cursor:pointer;}

/* ===== layout ===== */
@media screen and (max-width: 1260px) {
  html {font-size:16px;}
}

@media screen and (max-width: 768px) {
  html {font-size:15px;}
}

@media screen and (max-width: 540px) {
  html {font-size:14px;}
}

@media screen and (max-width: 420px) {
  html {font-size:13px;}
}

img {max-width:100%;}

.malgungothic {font-family:'Malgun Gothic';display:inline !important;}

@media all and (max-width: 1260px) {
  .mobile-hidden {display:none !important;}
}

.wrap,
#wrap {width:100%;margin:0 auto;}

.wrapper {width:1260px;margin:0 auto;}

.header {position:fixed;top:0;left:0;width:100%;height:55px;background:#fff;z-index:20;box-sizing:border-box;border-bottom:1px solid #dfdfdf;display:none;}
.header:after {content:"";display:block;clear:both;}
.header .wrapper {position:relative;text-align:center;display:flex;align-items:center;height:100%;}
.header .logo {font-family:'Pretendard Variable', Pretendard, sans-serif;will-change:scroll-position;content-visibility:auto;padding:5px 0;font-size:23px;line-height:1.25;}
.header .logo a {line-height:0.8;}
.header .logo span {animation:variable-loop 4s infinite both;animation-delay:var(--delay);letter-spacing:0;text-align:center;transition:all 0.5s ease;font-weight:300;--delay:calc((var(--variable-index) + 1) * 0.15s);}
.header .logo span.point {color:#484BB4;}
.header .tit {display:none;}
.header .gnb-menu .btmDiv {display:none;}
.header.transparent.over {background:#fff;}
.header.transparent {background:none;border-bottom:1px rgba(255, 255, 255, 0.1) solid;}
.header.transparent:not(.over) .logo span:not(.point) {color:#fff;}
.header.transparent:not(.over) .gnb-menu .list {color:#fff;}


@keyframes variable-loop { 0% {font-weight:300;} 50% {font-weight:800;} 100% {font-weight:300;} }
@media all and (min-width: 1259px) {
  .header  ~ #content {padding-top:55px;}
  .header .logo {float:left;}
  .header .gnb-menu {display:flex !important;margin-left:auto;align-items:center;padding-top:3px;}
  .header .gnb-menu .inner {display:flex;align-items:center;}
  .header .gnb-menu .list {position:absolute;top:12px;left:50%;transform:translateX(-50%);}
  .header .gnb-menu .list > ul {display:flex;}
  .header .gnb-menu .list > ul > li {position:relative;padding:0 20px;height:50px;}
  .header .gnb-menu .list > ul > li a {position:relative;display:block;height:100%;font-size:1.5rem;font-weight:400;line-height:29px;border-radius:4px;white-space:nowrap;}
  .header .gnb-menu .list > ul > li a:after {content:'';position:absolute;bottom:15px;left:0;width:0;height:3px;background:#f0544f;transition:all 0.5s ease;-webkit-transition:all 0.5s ease;}
  .header .gnb-menu .list > ul > li.on a,
  .header .gnb-menu .list > ul > li:hover a {color:#f0544f;}
  .header .gnb-menu .list > ul > li.on a:after,
  .header .gnb-menu .list > ul > li:hover a:after {width:100%;}
  .header .gnb-menu .list > ul > li ul {display:none !important;}
  .header .gnb-menu .gnb-top {display:none;}

  .gnb-menu .btm-area {display:none;}

}

@media all and (max-width: 1260px) {
  .header {padding:0 10px;}
  .header .logo img {height:20px;}

  .wrapper {width:auto;height:100%;padding:0 15px;}
}

@media all and (max-width: 1260px) {
  #wrap,
  .wrap {padding-top:50px;}
  .wrapper {width:100%;}
  .mobile-menu {display:block;position:absolute;width:50px;height:100%;top:0;right:10px;z-index:10;background:url("data:image/svg+xml,%3Csvg width='60' height='52' viewBox='0 0 60 52' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M57.828 28.5086H2.17202C0.973067 28.5086 0 27.4428 0 26.1295C0 24.8163 0.973067 23.7505 2.17202 23.7505H57.828C59.0269 23.7505 60 24.8163 60 26.1295C60 27.4428 59.0269 28.5086 57.828 28.5086Z' fill='%231F2125'/%3E%3Cpath d='M57.828 51.9998H2.17202C0.973067 51.9998 0 50.934 0 49.6207C0 48.3075 0.973067 47.2417 2.17202 47.2417H57.828C59.0269 47.2417 60 48.3075 60 49.6207C60 50.934 59.0269 51.9998 57.828 51.9998Z' fill='%231F2125'/%3E%3Cpath d='M57.828 4.75807H2.17202C0.973067 4.75807 0 3.69226 0 2.37903C0 1.06581 0.973067 0 2.17202 0H57.828C59.0269 0 60 1.06581 60 2.37903C60 3.69226 59.0269 4.75807 57.828 4.75807Z' fill='%231F2125'/%3E%3C/svg%3E%0A") no-repeat 50% 50%;background-size:auto 20px;}
  .header {padding:8px 0;height:50px;border-bottom:none;}

  .gnb-menu {display:none;position:fixed;top:0;right:0;width:100%;height:100%;z-index:100;}
  .gnb-menu.on {display:block;}
  .gnb-menu .mask {display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);}
  .gnb-menu .inner {position:fixed;top:0;right:-300px;width:288px;height:100%;padding:0 15px 15px;background:#fff;box-shadow:0 0 10px rgba(0,0,0,0.2);overflow:hidden;overflow-y:auto;}
  .gnb-menu .gnb-top {text-align:left;padding:15px 0 20px;}
  .gnb-menu .gnb-top > strong {font-size:25px;font-weight:700;}
  .gnb-menu .gnb-top > strong:after {content:'';display:inline-block;vertical-align:baseline;color:#ff0000;width:10px;height:10px;background:#ff0000;border-radius:100%;margin-left:5px;}
  .gnb-menu .gnb-top > .txt {font-size:13px;color:#666;margin-top:15px;font-weight:400;text-align:center;}
  .gnb-menu .gnb-top > .menu {margin-top:15px;display:flex;align-items:center;justify-content:center;}
  .gnb-menu .gnb-top > .menu [class*=btn] {display:inline-flex;height:30px;border-radius:6px;justify-content:center;align-items:center;font-size:13px;width:120px;margin:0 5px;}
  .gnb-menu .gnb-top > .menu .btn-signup {background:#fff;border:1px solid #8695a2;}
  .gnb-menu .gnb-top > .menu .btn-login {background:#8695a2;border:1px solid #8695a2;color:#fff;}
  .gnb-menu .list {background:#f5f6f7;padding:0 15px;}
  .gnb-menu .list > ul {float:none;}
  .gnb-menu .list > ul > li {display:block;float:none;border-bottom:1px solid #d2d2d2;}
  .gnb-menu .list > ul > li:last-child {border-bottom:none;}
  .gnb-menu .list > ul > li > a {position:relative;display:flex;padding:10px 0;height:45px;color:#4d4b4a;text-align:left;font-size:1.2rem;align-items:center;}
  .gnb-menu .list > ul li.menu-on > a,
  .gnb-menu .list > ul li a:hover {color:#f56a6a;}
  .gnb-menu .list > ul li.has-menu > a:after {content:'';display:block;width:12px;height:5px;background:url("data:image/svg+xml,%3Csvg width='65' height='36' viewBox='0 0 65 36' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M29.9507 29.8373L29.9417 29.8464L29.9328 29.8557C29.3873 30.43 29.0855 31.1677 29.0855 31.9457C29.0855 32.7009 29.3527 33.4561 29.9507 34.0542C31.111 35.2144 32.9876 35.2144 34.1479 34.0541L62.1344 6.08729L62.1347 6.08704C63.2949 4.92678 63.2949 3.03046 62.1347 1.8702L61.4276 2.5773L62.1347 1.8702C60.9744 0.709935 59.0781 0.709935 57.9178 1.8702L29.9507 29.8373Z' fill='%235A607F' stroke='%235A607F' stroke-width='2'/%3E%3Cpath d='M1.00003 3.97862L1.00003 4.97862L1.18609 4.97862C1.32526 5.37838 1.55466 5.75668 1.88503 6.08705L29.8521 34.0541C31.0124 35.2144 32.889 35.2144 34.0492 34.0541C35.2095 32.8939 35.2095 31.0173 34.0492 29.857L33.3421 30.5641L34.0492 29.857L6.0624 1.8702L5.35529 2.57731L6.0624 1.8702C4.90213 0.709939 3.02555 0.709939 1.86529 1.8702L1.85622 1.87926L1.8474 1.88856C1.30182 2.46285 1.00003 3.20057 1.00003 3.97862Z' fill='%235A607F' stroke='%235A607F' stroke-width='2'/%3E%3C/svg%3E%0A") no-repeat 0 0;background-size:100% 100%;position:absolute;color:#000;top:50%;right:0;transform:translateY(-50%);}
  .gnb-menu .list > ul li.has-menu.menu-on > a:after,
  .gnb-menu .list > ul li.has-menu > a:hover:after {background-image:url("data:image/svg+xml,%3Csvg width='65' height='36' viewBox='0 0 65 36' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M29.9507 29.8373L29.9417 29.8464L29.9328 29.8557C29.3873 30.43 29.0855 31.1677 29.0855 31.9457C29.0855 32.7009 29.3527 33.4561 29.9507 34.0542C31.111 35.2144 32.9876 35.2144 34.1479 34.0541L62.1344 6.08729L62.1347 6.08704C63.2949 4.92678 63.2949 3.03046 62.1347 1.8702L61.4276 2.5773L62.1347 1.8702C60.9744 0.709935 59.0781 0.709935 57.9178 1.8702L29.9507 29.8373Z' fill='%23F56A6A' stroke='%23F56A6A' stroke-width='2'/%3E%3Cpath d='M1.00003 3.97862L1.00003 4.97862L1.18609 4.97862C1.32526 5.37838 1.55466 5.75668 1.88503 6.08705L29.8521 34.0541C31.0124 35.2144 32.889 35.2144 34.0492 34.0541C35.2095 32.8939 35.2095 31.0173 34.0492 29.857L33.3421 30.5641L34.0492 29.857L6.0624 1.8702L5.35529 2.57731L6.0624 1.8702C4.90213 0.709939 3.02555 0.709939 1.86529 1.8702L1.85622 1.87926L1.8474 1.88856C1.30182 2.46285 1.00003 3.20057 1.00003 3.97862Z' fill='%23F56A6A' stroke='%23F56A6A' stroke-width='2'/%3E%3C/svg%3E%0A");}
  .gnb-menu .list > ul li.has-menu.menu-on > a:after {transform:translateY(-50%) rotate(-180deg);}
  .gnb-menu .list > ul > li > ul {display:none;border-top:1px solid #d2d2d2;padding:10px 0;}
  .gnb-menu .list > ul > li > ul > li {position:relative;}
  .gnb-menu .list > ul > li > ul > li > a {position:relative;padding-left:15px;display:block;display:flex;height:30px;font-size:1.2rem;color:#999;align-items:center;}
  .gnb-menu .list > ul > li > ul > li > a:before {content:'';display:block;position:absolute;top:15px;left:0;width:3px;height:3px;background:rgb(147, 134, 214)}
  .gnb-menu .list > ul > li > ul li > a:hover {color:#f56a6a;}
  .gnb-menu .list > ul > li > ul li > ul {display:none;}
  .gnb-menu .list > ul > li > ul li > ul > li {padding-left:15px;}
  .gnb-menu .list > ul > li > ul li > ul > li a {position:relative;display:block;display:flex;height:30px;font-size:1rem;color:#999;align-items:center;}
  .gnb-menu .btm-area {padding:15px 0;}
  .gnb-menu .btm-area {display:block;}

}

@keyframes uiPop {0% {opacity:0;transform:scale(.9) translateZ(0)} to {opacity:1;transform:scale(1) translateZ(0)}}

.gnb-sub-wrap {position:relative;z-index:50;}
.gnb-sub-wrap .dim {display:none;width:100%;height:100vh;transition:background 0.5s ease;-webkit-transition:background 0.5s ease;position:fixed;left:0;background:rgba(0, 0, 0, 0.5);}

.gnb-sub {display:none;position:fixed;top:54px;left:0;width:100%;min-width:1400px;margin-top:0 !important;z-index:50;background:#fff;border-top:1px solid #ddd;}
.gnb-sub .gnb-sub-in {max-width:1260px;margin:0 auto;}
.gnb-sub .gnb-sub-in > ul {width:100%;display:flex;flex-direction:row;padding-top:22px;padding-bottom:30px;}
.gnb-sub .gnb-sub-in > ul > li {vertical-align:top;flex:1;padding:0 20px;}
.gnb-sub .gnb-sub-in > ul > li > strong {display:block;margin-bottom:15px;font-size:1.3rem;font-weight:500;}
.gnb-sub .gnb-sub-in > ul > li > .img {margin-bottom:20px;}
.gnb-sub .gnb-sub-in > ul > li > .img img {border-radius:6px;}
.gnb-sub .gnb-sub-in > ul > li > ul {display:block !important;font-size:1.3rem;color:#999;font-weight:300;}
.gnb-sub .gnb-sub-in > ul > li > ul li ~ li {margin-top:8px;}
.gnb-sub .gnb-sub-in > ul > li > ul li a {position:relative;display:block;}
.gnb-sub .gnb-sub-in > ul > li > ul li a:hover:before {content:'';display:block;position:absolute;top:7px;left:-12px;width:6px;height:6px;border-radius:100%;background:#ff6666;}

@media all and (max-width: 1260px) {
  .gnb-sub .gnb-sub-in {display:none !important;}
}

#content {overflow:hidden;padding-bottom:70px;}

@media all and (max-width: 1260px) {
  #content {padding-bottom:50px;}
  #content .sub-content {box-sizing:border-box;}
}

.container {width:1260px;max-width:100%;margin:0 auto;padding:55px 0 30px 0;display:flex;flex-wrap:wrap;}
.container #content {flex:1;}

@media all and (max-width: 1260px) {
  .container {padding:1.5rem 0 1.8rem;}
}

.content-title {position:relative;margin-bottom:50px;}
.content-title h2 {display:inline-block;line-height:36px;font-size:25px;border-bottom:2px solid #242b3f;padding-bottom:20px;}
.content-title .breadcrumb {position:absolute;top:15px;right:0;line-height:36px;}
.content-title .breadcrumb ul {overflow:hidden;}
.content-title .breadcrumb ul li {float:left;font-size:14px;color:#999;}
.content-title .breadcrumb ul li img {vertical-align:middle;}

@media all and (max-width: 1260px) {
  .content-title {margin-bottom:15px;margin-top:20px;}
  .content-title h2 {line-height:27px;font-size:1.6rem;border-bottom:2px solid #242b3f;padding-bottom:15px;}
}

.content-detail h2 {font-size:25px;line-height:120%;margin-bottom:20px;color:#242b3f;}

.footer > .policy {display:flex;flex-direction:row;align-items:center;border-top:1px solid #000;margin-bottom:20px;}
.footer > .policy nav {width:1260px;margin:0 auto;display:flex;align-items:center;justify-content:center;}
.footer > .policy nav .list {display:flex;}
.footer > .policy nav .list ~ .list {margin-left:120px;}
.footer > .policy nav .list li {margin:0 3px;}
.footer > .policy nav .list a {display:flex;width:100px;height:24px;align-items:center;font-size:12px;background:#000;color:#fff;justify-content:center;}

@media all and (max-width: 1260px) {
  .footer > .policy {display:none;}
}

.footer .pc .util {border-top:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;}
.footer .pc .util .wrapper {overflow:hidden;display:flex;align-items:center;}
.footer .pc .util .wrapper .right {margin-left:auto;}
.footer .pc .util ul {font-size:0;}
.footer .pc .util ul li {position:relative;display:inline-block;font-size:1.3rem;line-height:60px;padding:0 10px;}
.footer .pc .util ul li:first-child {padding-left:0;}
.footer .pc .util ul li a {color:#666;}
.footer .pc .footer-btm {padding:25px 0;overflow:hidden;display:flex;}
.footer .pc .footer-btm .left .logo {display:block;margin-bottom:15px;font-size:1.5rem;font-weight:700;}
.footer .pc .footer-btm .left .logo img {height:22px;}
.footer .pc .footer-btm .left .logo * {vertical-align:baseline;}
.footer .pc .footer-btm .addr {margin-top:10px;}
.footer .pc .footer-btm .addr p {font-size:1rem;font-weight:normal;color:#666;line-height:1.5;letter-spacing:normal;}
.footer .pc .footer-btm .addr p:nth-child(1),
.footer .pc .footer-btm .addr p:nth-child(2) {font-size:1rem;}
.footer .pc .footer-btm .right {margin-left:auto;}
.footer .pc .footer-btm .addr p a {display:inline-block;height:26px;line-height:24px;border:1px solid #e8e8e8;font-size:1rem;margin:20px 0;margin-right:10px;padding:0 10px;border-radius:5px;}
.footer .pc .footer-btm .addr p.copyright {font-size:1rem;color:#a39fa9;margin-top:10px;}
.footer .pc .footer-btm .cs-info {height:123px;display:flex;justify-content:center;flex-direction:column;padding-left:80px;background:url('../images/0_tel.png') no-repeat 15px 50%;background-size:auto 50px;border:1px solid #ccc;border-radius:6px;padding-right:15px;}
.footer .pc .footer-btm .cs-info p {font-size:1rem;color:#999;}
.footer .pc .footer-btm .cs-info .tel p {font-size:1.5rem;color:#bb9355;padding:5px 0;letter-spacing:2px;}
.footer .pc .footer-btm .cs-info .tel p ~ p {border-top:1px solid #ccc;}
.footer .mobile {display:none;padding:30px 15px;background:#303740;color:#fff;font-weight:200;}
.footer .mobile .policy {text-align:center;}
.footer .mobile .policy a {display:inline-flex;align-items:center;padding:0 15px;border:1px solid #fff;border-radius:3px;color:#fff;font-size:13px;height:24px;margin:0 3px;font-weight:200;justify-content:center;}
.footer .mobile .client {margin-top:15px;text-align:center;}
.footer .mobile .client button {position:relative;font-size:12px;height:20px;padding:0 17px;}
.footer .mobile .client button:after {content:'';display:block;position:absolute;top:50%;right:0;width:10px;height:5px;background:url("data:image/svg+xml,%3Csvg width='65' height='36' viewBox='0 0 65 36' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M29.9507 29.8373L29.9417 29.8464L29.9328 29.8557C29.3873 30.43 29.0855 31.1677 29.0855 31.9457C29.0855 32.7009 29.3527 33.4561 29.9507 34.0542C31.111 35.2144 32.9876 35.2144 34.1479 34.0541L62.1344 6.08729L62.1347 6.08704C63.2949 4.92678 63.2949 3.03046 62.1347 1.8702C60.9744 0.709935 59.0781 0.709935 57.9178 1.8702L29.9507 29.8373Z' fill='white' stroke='white' stroke-width='2'/%3E%3Cpath d='M1.00003 3.97862L1.00003 4.97862L1.18609 4.97862C1.32526 5.37838 1.55466 5.75668 1.88503 6.08705L29.8521 34.0541C31.0124 35.2144 32.889 35.2144 34.0492 34.0541C35.2095 32.8939 35.2095 31.0173 34.0492 29.857L6.0624 1.8702C4.90214 0.709939 3.02555 0.709939 1.86529 1.8702L1.85622 1.87926L1.8474 1.88856C1.30182 2.46285 1.00003 3.20057 1.00003 3.97862Z' fill='white' stroke='white' stroke-width='2'/%3E%3C/svg%3E%0A") no-repeat 0 0;background-size:auto 5px;transform:translateY(-50%);}
.footer .mobile .client.on button:after {transform:translateY(-50%) rotate(-180deg);}
.footer .mobile .client .info {display:none;padding-top:15px;}
.footer .mobile .client .info p {font-weight:200;font-size:12px;}
.footer .mobile .client .info p ~ p {margin-top:4px;}
.footer .mobile .client .info p span {display:inline-block;}
.footer .mobile .client .info p .bar {width:1px;height:11px;background:#fff;margin:0 3px;}
.footer .mobile .client .copyright {font-size:12px;font-weight:200;margin-top:15px;}

@media all and (max-width: 1260px) {
  .footer .mobile {display:block;}
  .footer .mobile .policy a {font-size:0.813rem;}
  .footer .mobile .client button,
  .footer .mobile .client .info p,
  .footer .mobile .client .copyright {font-size:0.75rem;}
  .footer .pc {display:none;}
  .footer .pc .util .wrapper {flex-direction:column;padding-bottom:20px;}
  .footer .pc .util .wrapper .left,
  .footer .pc .util .wrapper .right {margin-left:0;display:flex;justify-content:center;align-items:center;}
  .footer .pc .footer-btm {display:block;text-align:center;}
  .footer .pc .footer-btm .right {margin-top:15px;}
  .footer .pc .footer-btm .right img {max-width:100%;}
}

@media all and (max-width: 768px) {
  .footer .mobile .policy a {font-size:1rem;}
  .footer .mobile .client button,
  .footer .mobile .client .info p,
  .footer .mobile .client .copyright {font-size:1rem;}
}

/* ===== main ===== */
/* 키 비주얼 이미지 */
body.bg-body .main-key-slider {padding-top:25px;}

.main-key-slider {position:relative;max-width:1260px;margin:0 auto;overflow:hidden;}
.main-key-slider.auto {max-width:initial;}
.main-key-slider img {width:100%;}

/* Tab 컨텐츠로 data-slide="3" data-group="1" 값을 조정하여 사용 */
.tab-content-area {overflow:hidden;border:1px solid #e6e7e9;}

.img-gallery-slide .img-gallery {margin-top:0;}

.img-gallery {margin-left:-15px;margin-top:-15px;}
.img-gallery:after {content:'';display:block;clear:both;}
.img-gallery li {float:left;padding-left:0;padding-left:15px;display:flex;flex-direction:column;margin-top:15px;}
.img-gallery li .img {text-align:center;}
.img-gallery li img {max-width:100%;width:100%;height:auto;}
.img-gallery li:before {content:"";display:none;}
.img-gallery li .txt {width:100%;font-size:16px;margin-top:10px;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;line-height:1.5em;}

.img-gallery-slide {overflow:hidden;}

.img-gallery.swiper-wrapper {margin-left:0;}
.img-gallery li.swiper-slide {padding-left:0;margin:0}

@media screen and (max-width: 1260px) {
  .tab-content .tab-content-area ~ .tab-content-area {margin-left:24px;}

  .img-gallery {margin-left:-2px;margin-top:-12px;}
  .img-gallery li {padding-left:8px;}
  .img-gallery li .txt {font-size:0.813rem;margin-top:8px;}
}

@media all and (max-width: 1024px) {
  .tab-content-area {margin-top:20px;padding-bottom:20px;}

  .tab-content .tab-content-area ~ .tab-content-area {margin-left:0;margin-top:20px;}
}

/* ===== contents ===== */
/* 탭 구성 */
.tab-type-line {position:relative;display:flex;margin:0 auto;border-bottom:1px solid #ddd;margin-bottom:20px;}
.tab-type-line a {display:flex;align-items:center;overflow:hidden;position:relative;min-width:auto;max-width:none;padding:6px 24px;height:48px;font-size:1.5rem;text-transform:initial;}
.tab-type-line .indicator {height:3px;background-color:#000000;width:100%;bottom:0;height:3px;position:absolute;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;left:151.047px;width:99.5312px;}
.tab-type-line .effect-ripple {opacity:0;position:absolute;}
.tab-type-line a .effect-rippleVisible {width:200%;height:200%;top:-50%;left:-50%;}
.tab-type-line .effect-rippleVisible {opacity:0.3;animation:effect-keyframes-enter 550ms cubic-bezier(0.4, 0, 0.2, 1);transform:scale(1);}
.tab-type-line .effect-child {width:100%;height:100%;display:block;opacity:1;border-radius:50%;background-color:currentColor;}
.tab-type-line .effect-childLeaving {opacity:0;animation:effect-keyframes-exit 550ms cubic-bezier(0.4, 0, 0.2, 1);}

.tab-conts .gallery-slide {margin-top:0;margin-bottom:20px;}

@-webkit-keyframes effect-keyframes-enter {0% {opacity:0.1;transform:scale(0);} 100% {opacity:0.3;transform:scale(1);} }
@-webkit-keyframes effect-keyframes-exit {0% {opacity:1;} 100% {opacity:0;} }
@-webkit-keyframes effect-keyframes-pulsate {0% {transform:scale(1);} 50% {transform:scale(0.92);} 100% {transform:scale(1);} }
@media only screen and (max-width: 1260px) {
  .tab-type-line a {font-size:1.2rem;}
}

@media only screen and (max-width: 768px) {
  .tab-type-line::-webkit-scrollbar {-webkit-appearance:none;}

  /* 스크롤바 가로 적용 */
  .tab-type-line::-webkit-scrollbar:vertical {width:5px;}
  .tab-type-line::-webkit-scrollbar:horizontal {height:5px;}
  .tab-type-line::-webkit-scrollbar-thumb {background-color:rgba(0, 0, 0, .3);border-radius:5px;}
  .tab-type-line::-webkit-scrollbar-track {border-radius:5px;background-color:#eee;}
  .tab-type-line:after {content:'';display:block;position:absolute;bottom:5px;left:0;width:100%;height:1px;background:#ddd;}
  .tab-type-line a {height:45px;min-width:48px;display:inline-flex;margin-left:0;padding:6px 11px;font-size:1.4rem;border-radius:2px 2px 0 0;border-bottom:1px solid #ddd;}
  .tab-type-line a.on:after {bottom:-2px;height:2px;}
  .tab-type-line .indicator {bottom:5px;z-index:2;}
}

/* 콘텐츠 좌우 분할 구성 유형 */
.relative-layout {display:flex;}
.relative-layout .bar {height:35px;background:#48a090;margin-bottom:40px;}
.relative-layout > .left,
.relative-layout > .right,
.relative-layout > .auto {flex:1;overflow:hidden;}
.relative-layout > * + * {margin-left:30px;}

@media only screen and (max-width: 1260px) {
  .relative-layout > .mobile-hidden ~ * {margin-left:0;}
}

@media only screen and (max-width: 768px) {
  .relative-layout {display:block;}
  .relative-layout > * {margin-left:0}
  .relative-layout > *:not(.mobile-hidden) ~ * {margin-top:30px;}
}

/* 반응형웹 게시물 */
.theme2 .tit {font-size:2rem;color:#2b92c7;display:block;margin-bottom:5px;font-weight:bold;text-align:justify;}
.theme2 p {font-size:1.3rem;color:#bbb;font-weight:bold;text-align:justify;}
.theme2 .line {height:1px;background:#bbb;margin:3px 0;border:none;}

@media only screen and (max-width: 1260px) {
  .theme2 .tit {font-size:1.5rem;}
  .theme2 p {font-size:1.2rem;}
}

/* .list-type.list-3 li .img {width:280px;height:158px;} */
.list-type .prd-desc .prd-info .tag-info  [class*=tag] {display:inline-flex;height:18px;line-height:18px;padding:0 3px;font-size:11px;position:relative;border-radius:4px;text-align:center;vertical-align:top;}

@media screen and (max-width: 1024px) {
  /* .list-type li {margin-top:20px;padding-left:20px;} */
  /* .list-type.list-2 li {width:50%;}
  .list-type.list-4 li {width:25%;}
  .list-type.list-5 li {width:20%;} */
}

/* 등록 */
input[type='text'],
input[type='password'] {height:38px;padding:0 10px;width:100%;box-sizing:border-box;font-size:13px;border-radius:3px;color:#777;border:1px solid #cccccc;}

select {height:38px;padding-left:9px;width:100%;font-size:15px;box-sizing:border-box;border-radius:3px;border:1px solid #cccccc;color:#777;}

textarea {height:100px;width:100%;padding:9px;font-size:15px;box-sizing:border-box;border-radius:3px;border:1px solid #cccccc;color:#777;}

/* 게시판 버튼 유형 */
.btn-area  [class*=btn-type] ~ [class*=btn-type] {margin-left:5px;}

.btn-type {display:inline-flex;cursor:pointer;height:38px;line-height:38px;padding:0 20px;text-align:center;font-size:1.3rem;border-radius:2px;vertical-align:middle;align-items:center;}
.btn-type i:first-child {margin-right:5px;}
.btn-type.btn-yellow {border:1px solid #f2d42a;color:#6a6a6a;background:#ffdf2c;}
.btn-type.btn-red {border:1px solid #e5001f;color:#fff;background:#f72e3e;}
.btn-type.btn-white {border:1px solid #d8d8d8;color:#6a6a6a;background:#fff;}
.btn-type.btn-red:focus {background:#bb2222;}
.btn-type.btn-white:focus {background:#cccccc;}
.btn-type.btn-yellow:focus {background:#e7ca27;}
.btn-type.btn-darkgray {border:1px solid #333;color:#fff;background:#333333;}
.btn-type.btn-favorite {border:1px solid #333;color:#fff;background:#333333;}
.btn-type.btn-popup {margin-top:50px;}

@media screen and (max-width: 1260px) {
  .btn-type {font-size:1rem;}
}

/* ===== etc ===== */
.margin-top50 {margin-top:50px !important;}
.margin-btm20 {margin-bottom:20px !important;}

/* ===== ancestor-detail ===== */
/* ========== 추모 상세 페이지 ========== */

/* ========== 네비게이션 바 ========== */
.memorial-nav {position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;align-items:center;padding:0 26px;height:52px;background:transparent;backdrop-filter:none;border-bottom:none;transition:background 0.3s, backdrop-filter 0.3s;}
.memorial-nav.scrolled {background:rgba(26,21,16,0.95);backdrop-filter:blur(12px);}
.memorial-nav .nav-home {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;}
.memorial-nav .nav-home:hover {color:#fff;background:rgba(255,255,255,0.08);}
.memorial-nav .nav-home svg {width:28px;height:28px;}
.nav-tabs {display:flex;align-items:center;gap:4px;margin:0 auto;background:rgba(255,255,255,0.08);border:none;border-radius:100px;padding:5px 6px;backdrop-filter:blur(12px);}
.nav-tabs a,
.nav-tabs a:link,
.nav-tabs a:visited {display:inline-flex;align-items:center;padding:6px 16px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.45);transition:all 0.3s;white-space:nowrap;letter-spacing:0.02em;background:transparent !important;border:none !important;outline:none !important;box-shadow:none !important;text-decoration:none;}
.nav-tabs a:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.08) !important;}
.nav-tabs a.active,
.nav-tabs a.active:link,
.nav-tabs a.active:visited {color:#c9a96e;background:rgba(201,169,110,0.15) !important;}
.nav-hamburger {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;background:none;border:none;}
.nav-hamburger:hover {color:#fff;background:rgba(255,255,255,0.08);}
.nav-hamburger svg {width:28px;height:28px;}
.nav-dropdown {display:none;position:fixed;inset:0;z-index:101;background:rgba(15,12,8,0.97);backdrop-filter:blur(24px);overflow-y:auto;padding:80px 40px 60px;}
.nav-dropdown.open {display:flex;flex-direction:column;align-items:center;justify-content:center;}
.nav-dropdown .nav-close {position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s;}
.nav-dropdown .nav-close:hover {color:#fff;background:rgba(255,255,255,0.15);}
.nav-dropdown .nav-close svg {width:20px;height:20px;}
.nav-dropdown .menu-group {margin-bottom:36px;text-align:center;}
.nav-dropdown .menu-group-title {font-family:'Noto Serif KR', serif;font-size:0.7rem;font-weight:700;color:rgba(201,169,110,0.5);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:16px;}
.nav-dropdown .menu-group a {display:block;padding:10px 20px;font-size:1.1rem;font-weight:500;color:rgba(255,255,255,0.5);transition:all 0.3s;letter-spacing:0.02em;}
.nav-dropdown .menu-group a:hover {color:#fff;}
.nav-dropdown .menu-group a.active {color:#c9a96e;}
.nav-dropdown .menu-group .sub-links {margin-top:4px;}
.nav-dropdown .menu-group .sub-links a {font-size:0.85rem;padding:6px 20px;color:rgba(255,255,255,0.3);}
.nav-dropdown .menu-group .sub-links a:hover {color:rgba(255,255,255,0.7);}
@media (max-width: 640px) {
  .nav-tabs {display:none;}
}

/* 히어로 영역 */
.memorial-hero {position:relative;background:linear-gradient(135deg, #2c2418 0%, #1a1510 50%, #2c2418 100%);padding:100px 24px 60px;text-align:center;overflow:hidden;}
.memorial-hero::before {content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%, rgba(201,169,110,0.08) 0%, transparent 60%);}
.memorial-hero-inner {position:relative;z-index:1;max-width:720px;margin:0 auto;}
/* 부부 2인 배치 */
.hero-couple {display:flex;justify-content:center;gap:0;margin-bottom:28px;}
.hero-person {display:flex;flex-direction:column;align-items:center;width:180px;flex-shrink:0;}
.memorial-photo {width:130px;height:130px;border-radius:50%;overflow:hidden;margin:0 auto 6px;border:3px solid rgba(201,169,110,0.4);box-shadow:0 8px 40px rgba(0,0,0,0.3);}
.memorial-photo img {width:100%;height:100%;object-fit:cover;filter:grayscale(20%);}
.memorial-photo.no-photo {background:linear-gradient(135deg, #2a2318 0%, #1a1510 100%);display:flex;align-items:center;justify-content:center;}
.memorial-photo.no-photo span {font-size:0.8rem;color:rgba(255,255,255,0.25);text-align:center;line-height:1.4;}
.memorial-photo.no-photo svg {width:50px;height:50px;color:rgba(255,255,255,0.2);}
.hero-person .person-name {font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:2px;letter-spacing:-0.02em;}
.hero-person .person-role {font-size:0.9rem;color:rgba(255,255,255,0.4);margin-bottom:10px;}
.hero-person .dates {display:inline-flex;align-items:center;gap:10px;padding:5px 12px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:100px;font-size:0.85rem;color:rgba(255,255,255,0.6);}
.hero-person .dates .separator {width:8px;height:1px;background:rgba(255,255,255,0.3);}
.memorial-hero .generation {font-size:1rem;color:rgba(255,255,255,0.5);margin-bottom:16px;letter-spacing:0.05em;}
.hero-tribute-btn {display:inline-flex;align-items:center;gap:8px;padding:10px 28px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);color:#c9a96e;border-radius:100px;font-size:1.05rem;font-weight:400;cursor:pointer;transition:all 0.3s;letter-spacing:0.03em;}
.hero-tribute-btn svg {width:15px;height:15px;opacity:0.6;}
.hero-tribute-btn:hover {background:rgba(255,255,255,0.12);border-color:rgba(201,169,110,0.3);color:rgba(255,255,255,0.75);}

@media (max-width: 520px) {
  .hero-couple {flex-direction:column;gap:32px;align-items:center;}}

/* 콘텐츠 너비 제한 + 중앙 정렬 */
.sub-content.wrapper {max-width:800px;margin:0 auto;}

/* 정보 섹션 */
.memorial-section {padding:48px 0;}
.memorial-section + .memorial-section {border-top:1px solid #f0ece6;}
.section-label {font-size:1.4rem;font-weight:700;color:#333;margin-bottom:28px;text-align:center;}
.section-label span {display:inline-block;padding-bottom:12px;border-bottom:2px solid #c9a96e;}

/* 인물 정보 테이블 */
.info-table {width:100%;border-collapse:collapse;}
.info-table tr {border-bottom:1px solid #f0ece6;}
.info-table th {width:140px;padding:16px 20px;text-align:left;font-size:1.05rem;font-weight:600;color:#8b7355;background:#faf8f5;vertical-align:top;}
.info-table td {padding:16px 20px;font-size:1.05rem;color:#555;line-height:1.6;}

@media (max-width: 768px) {
  .info-table th,
  .info-table td {display:block;width:100%;padding:10px 16px;}
  .info-table th {padding-bottom:4px;background:none;}
  .info-table td {padding-top:0;padding-bottom:16px;}
}

/* 생애 이야기 */
.life-story {font-size:1.2rem;color:#555;line-height:1.9;text-align:justify;}
.life-story p + p {margin-top:20px;}

/* 가족 관계 */
.family-list {display:flex;flex-wrap:wrap;justify-content:center;gap:16px;}
.family-item {display:flex;align-items:center;gap:14px;padding:16px 18px;background:#faf8f5;border-radius:12px;transition:background 0.2s;}
.family-item:hover {background:#f5f0ea;}
.family-item .avatar {width:44px;height:44px;border-radius:50%;background:#e8e2d8;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;color:#8b7355;flex-shrink:0;}
.family-item .info .name {font-size:1.2rem;font-weight:600;color:#333;}
.family-item .info .relation {font-size:0.85rem;color:#aaa;margin-top:2px;}

/* ========== 추모 댓글 영역 ========== */
.tribute-section {background:#faf8f5;border-radius:16px;padding:36px 32px;}
.tribute-header {display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.tribute-count {font-size:1.1rem;color:#aaa;}

/* 댓글 입력 */
.tribute-form {display:flex;flex-direction:column;gap:12px;margin-bottom:32px;padding:24px;background:#fff;border-radius:12px;border:1px solid #ebe6dd;}
.tribute-form-row {display:flex;gap:10px;}
.tribute-form input[type="text"] {flex:1;height:42px;padding:0 14px;border:1px solid #e0d8cc;border-radius:8px;font-size:0.95rem;background:#faf8f5;color:#333;width:auto;}
.tribute-form input::placeholder {color:#c0b8a8;}
.tribute-form textarea {width:100%;height:80px;padding:12px 14px;border:1px solid #e0d8cc;border-radius:8px;font-size:1.1rem;background:#faf8f5;resize:none;color:#333;font-family:inherit;}
.tribute-form textarea::placeholder {color:#c0b8a8;}
.tribute-form-actions {display:flex;justify-content:center;}
.tribute-form .btn-submit {padding:10px 28px;background:#c9a96e;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all 0.3s;}
.tribute-form .btn-submit:hover {background:#b8954f;transform:translateY(-1px);box-shadow:0 4px 16px rgba(201,169,110,0.3);}

/* 댓글 목록 */
.tribute-list {display:flex;flex-direction:column;gap:16px;}
.tribute-item {display:flex;gap:14px;padding:20px;background:#fff;border-radius:12px;border:1px solid #ebe6dd;}
.tribute-item .avatar {width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg, #e8e2d8, #d4cbb8);display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:700;color:#8b7355;flex-shrink:0;}
.tribute-item .content {flex:1;min-width:0;}
.tribute-item .meta {display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.tribute-item .author {font-size:1.1rem;font-weight:600;color:#333;}
.tribute-item .date {font-size:0.95rem;color:#bbb;}
.tribute-item .message {font-size:1.2rem;color:#666;line-height:1.6;word-break:break-word;}
.tribute-item .btn-delete {background:none;border:none;font-size:0.75rem;color:#ccc;cursor:pointer;margin-left:auto;padding:2px 6px;flex-shrink:0;align-self:flex-start;}
.tribute-item .btn-delete:hover {color:#e57373;}

.tribute-empty {text-align:center;padding:40px 20px;color:#c0b8a8;font-size:1rem;}
.tribute-empty svg {width:48px;height:48px;margin-bottom:12px;opacity:0.4;}

/* 하단 추모관 목록 */
.memorial-bottom-nav-header {display:flex;justify-content:center;margin-top:40px;}
.btn-ancestor-list {display:inline-flex;align-items:center;gap:6px;padding:8px 20px;border-radius:100px;font-size:1.2rem;font-weight:500;color:#c9a96e;background:transparent;border:1px solid #c9a96e;transition:all 0.3s;text-decoration:none;}
.btn-ancestor-list:hover {background:rgba(201,169,110,0.1);}
.btn-ancestor-list svg {width:18px;height:18px;}
.memorial-bottom-nav {display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;padding-top:24px;border-top:1px solid #f0ece6;}
.memorial-bottom-nav a {display:inline-flex;align-items:center;padding:6px 14px;border-radius:100px;font-size:1.2rem;color:#8b7355;background:#faf8f5;border:1px solid #ebe6dd;transition:all 0.3s;text-decoration:none;}
.memorial-bottom-nav a:hover {background:#f0ece6;color:#c9a96e;border-color:#c9a96e;}
.memorial-bottom-nav a.current {background:#c9a96e;color:#fff;border-color:#c9a96e;}

@media (max-width: 768px) {
  .memorial-hero {padding:60px 16px 40px;}
  .memorial-photo {width:120px;height:120px;}
  .hero-person .person-name {font-size:1.4rem;}
  .tribute-section {padding:24px 16px;}
  .tribute-form {padding:16px;}
  .tribute-form-row {flex-direction:column;}
  .family-list {flex-direction:column;align-items:center;}
}

/* ===== ancestor-230101-gallery ===== */
#wrap {padding:0;}

/* ========== 네비게이션 바 ========== */
.memorial-nav {position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;align-items:center;padding:0 26px;height:52px;background:transparent;transition:background 0.3s;}
.memorial-nav.scrolled {background:rgba(26,21,16,0.95);backdrop-filter:blur(12px);}
.memorial-nav .nav-home {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;}
.memorial-nav .nav-home:hover {color:#fff;background:rgba(255,255,255,0.08);}
.memorial-nav .nav-home svg {width:28px;height:28px;}
.nav-tabs {display:flex;align-items:center;gap:4px;margin:0 auto;background:rgba(255,255,255,0.08);border:none;border-radius:100px;padding:5px 6px;backdrop-filter:blur(12px);}
.nav-tabs a {display:inline-flex;align-items:center;padding:6px 16px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.45);transition:all 0.3s;white-space:nowrap;text-decoration:none;}
.nav-tabs a:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.08);}
.nav-tabs a.active {color:#c9a96e;background:rgba(201,169,110,0.15);}
.nav-hamburger {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;background:none;border:none;}
.nav-hamburger:hover {color:#fff;background:rgba(255,255,255,0.08);}
.nav-hamburger svg {width:28px;height:28px;}
@media (max-width: 640px) {
  .nav-tabs {display:none;}
}

/* ========== 히어로 ========== */
.life-hero {position:relative;padding:120px 24px 60px;text-align:center;background:linear-gradient(135deg, #2c2418 0%, #1a1510 50%, #2c2418 100%);overflow:hidden;}
.life-hero::before {content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%, rgba(201,169,110,0.08) 0%, transparent 60%);}
.life-hero-inner {position:relative;z-index:1;max-width:600px;margin:0 auto;}
.life-hero .profile-photo {width:120px;height:120px;border-radius:50%;overflow:hidden;margin:0 auto 16px;border:3px solid rgba(201,169,110,0.4);box-shadow:0 8px 40px rgba(0,0,0,0.3);}
.life-hero .profile-photo img {width:100%;height:100%;object-fit:cover;}
.life-hero h1 {font-family:'Noto Serif KR', serif;font-size:2rem;font-weight:900;color:#fff;margin-bottom:8px;}
.life-hero .subtitle {font-size:1rem;color:rgba(255,255,255,0.5);margin-bottom:20px;}
.life-hero .life-summary {font-size:1.2rem;color:rgba(255,255,255,0.4);line-height:1.7;}

/* ========== 기간 필터 탭 ========== */
.era-tabs {position:sticky;top:72px;z-index:50;background:rgba(26,21,16,0.95);backdrop-filter:blur(12px);padding:14px 24px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,0.06);}
.era-tab {padding:8px 20px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.4);background:rgba(255,255,255,0.06);border:1px solid transparent;cursor:pointer;transition:all 0.3s;}
.era-tab:hover {color:rgba(255,255,255,0.7);background:rgba(255,255,255,0.1);}
.era-tab.active {color:#c9a96e;background:rgba(201,169,110,0.15);border-color:rgba(201,169,110,0.3);}

/* ========== 타임라인 콘텐츠 ========== */
.timeline-wrap {max-width:900px;margin:0 auto;padding:0 24px 80px;}

.era-section {padding:48px 0 0;}
.era-header {display:flex;align-items:center;gap:16px;margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,0.08);}
.era-badge {display:inline-flex;align-items:center;padding:6px 16px;background:rgba(201,169,110,0.15);border:1px solid rgba(201,169,110,0.3);border-radius:100px;font-size:1.2rem;font-weight:600;color:#c9a96e;white-space:nowrap;}
.era-header > div {display:flex;align-items:baseline;gap:12px;}
.era-title {font-family:'Noto Serif KR', serif;font-size:1.3rem;font-weight:700;color:#fff;white-space:nowrap;}
.era-desc {font-size:1.2rem;color:rgba(255,255,255,0.35);}

/* 사진 그리드 */
.photo-grid {display:grid;grid-template-columns:repeat(3, 1fr);gap:12px;}
.photo-grid .photo-item {position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1 / 1;cursor:pointer;transition:transform 0.3s;}
.photo-grid .photo-item:hover {transform:scale(1.03);}
.photo-grid .photo-item.wide {grid-column:span 2;aspect-ratio:2 / 1;}
.photo-grid .photo-item.tall {grid-row:span 2;aspect-ratio:auto;}
.photo-grid .photo-item img {width:100%;height:100%;object-fit:cover;filter:grayscale(20%) brightness(0.9);transition:filter 0.3s;}
.photo-grid .photo-item:hover img {filter:grayscale(0%) brightness(1);}
.photo-item .caption {position:absolute;bottom:0;left:0;right:0;padding:24px 12px 10px;background:linear-gradient(transparent, rgba(0,0,0,0.7));font-size:0.75rem;color:rgba(255,255,255,0.7);opacity:0;transition:opacity 0.3s;}
.photo-item:hover .caption {opacity:1;}

/* ========== 라이트박스 ========== */
.lightbox {display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.92);backdrop-filter:blur(8px);align-items:center;justify-content:center;flex-direction:column;}
.lightbox.open {display:flex;}
.lightbox > #lbImg {max-width:90vw;max-height:65vh;object-fit:contain;border-radius:8px;}
.lightbox .lb-caption {color:rgba(255,255,255,0.6);font-size:0.9rem;margin-top:12px;text-align:center;}
.lightbox .lb-close {position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.1);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:background 0.3s;}
.lightbox .lb-close:hover {background:rgba(255,255,255,0.2);}
.lightbox .lb-prev,.lightbox .lb-next {position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,0.1);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:2rem;transition:background 0.3s;z-index:1;}
.lightbox .lb-prev {left:20px;}
.lightbox .lb-next {right:20px;}
.lightbox .lb-prev:hover,.lightbox .lb-next:hover {background:rgba(255,255,255,0.25);}
.lb-thumbs {display:flex;gap:8px;margin-top:16px;padding:8px 24px;overflow-x:auto;max-width:90vw;}
.lb-thumbs::-webkit-scrollbar {height:0;}
.lb-thumb {width:64px;height:48px;object-fit:cover;border-radius:6px;cursor:pointer;opacity:0.4;border:2px solid transparent;transition:all 0.3s;flex-shrink:0;}
.lb-thumb.active {opacity:1;border-color:#c9a96e;}
.lb-thumb:hover {opacity:0.8;}

/* ========== 하단 네비게이션 ========== */
.bottom-nav {max-width:900px;margin:0 auto;padding:0 24px 60px;display:flex;justify-content:center;}
.bottom-nav a {display:inline-flex;align-items:center;gap:6px;font-size:1.2rem;color:#c9a96e;transition:opacity 0.3s;}
.bottom-nav a:hover {opacity:0.7;}
.bottom-nav a svg {width:18px;height:18px;}

/* ========== 반응형 ========== */
@media (max-width: 768px) {
  .photo-grid {grid-template-columns:repeat(2, 1fr);gap:8px;}
  .photo-grid .photo-item.wide {grid-column:span 2;}
  .life-hero {padding:90px 16px 40px;}
  .era-tabs {gap:6px;padding:12px 16px;}
  .era-tab {padding:6px 14px;font-size:0.78rem;}
}
@media (max-width: 480px) {
  .photo-grid {grid-template-columns:repeat(2, 1fr);}
  .photo-grid .photo-item.wide {grid-column:span 1;aspect-ratio:1 / 1;}
}

/* ===== ancestor ===== */
#wrap {padding:0;}

/* ========== 풀스크린 배경 ========== */
.memorial-page {position:relative;min-height:100vh;overflow:hidden;}
.memorial-bg {position:fixed;inset:0;z-index:0;}
.memorial-bg img {width:100%;height:100%;object-fit:cover;animation:bgZoom 30s ease-in-out infinite alternate;}
@keyframes bgZoom {
  0% {transform:scale(1);}
  100% {transform:scale(1.12);}
}
.memorial-bg-overlay {position:absolute;inset:0;background:linear-gradient(180deg, rgba(20,15,10,0.6) 0%, rgba(20,15,10,0.45) 20%, rgba(20,15,10,0.5) 60%, rgba(20,15,10,0.8) 100%), radial-gradient(ellipse at 50% 30%, transparent 20%, rgba(20,15,10,0.4) 100%);}

/* ========== 네비게이션 바 ========== */
.memorial-nav {position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;align-items:center;padding:0 26px;height:52px;background:transparent;backdrop-filter:none;border-bottom:none;}
.memorial-nav .nav-home {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;}
.memorial-nav .nav-home:hover {color:#fff;background:rgba(255,255,255,0.08);}
.memorial-nav .nav-home svg {width:28px;height:28px;}

/* 메뉴 탭 */
.nav-tabs {display:flex;align-items:center;gap:4px;margin:0 auto;background:rgba(255,255,255,0.08);border:none;border-radius:100px;padding:5px 6px;backdrop-filter:blur(12px);}
.nav-tabs a,
.nav-tabs a:link,
.nav-tabs a:visited {display:inline-flex;align-items:center;padding:6px 16px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.45);transition:all 0.3s;white-space:nowrap;letter-spacing:0.02em;background:transparent !important;border:none !important;outline:none !important;box-shadow:none !important;text-decoration:none;}
.nav-tabs a:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.08) !important;}
.nav-tabs a.active,
.nav-tabs a.active:link,
.nav-tabs a.active:visited {color:#c9a96e;background:rgba(201,169,110,0.15) !important;}

/* 햄버거 메뉴 */
.nav-hamburger {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;background:none;border:none;}
.nav-hamburger:hover {color:#fff;background:rgba(255,255,255,0.08);}
.nav-hamburger svg {width:28px;height:28px;}

/* 드롭다운 메뉴 */
.nav-dropdown {display:none;position:fixed;inset:0;z-index:101;background:rgba(15,12,8,0.97);backdrop-filter:blur(24px);overflow-y:auto;padding:80px 40px 60px;}
.nav-dropdown.open {display:flex;flex-direction:column;align-items:center;justify-content:center;}
.nav-dropdown .nav-close {position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s;}
.nav-dropdown .nav-close:hover {color:#fff;background:rgba(255,255,255,0.15);}
.nav-dropdown .nav-close svg {width:20px;height:20px;}
.nav-dropdown .menu-group {margin-bottom:36px;text-align:center;}
.nav-dropdown .menu-group-title {font-family:'Noto Serif KR', serif;font-size:0.7rem;font-weight:700;color:rgba(201,169,110,0.5);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:16px;}
.nav-dropdown .menu-group a {display:block;padding:10px 20px;font-size:1.1rem;font-weight:500;color:rgba(255,255,255,0.5);transition:all 0.3s;letter-spacing:0.02em;}
.nav-dropdown .menu-group a:hover {color:#fff;}
.nav-dropdown .menu-group a.active {color:#c9a96e;}
.nav-dropdown .menu-group .sub-links {margin-top:4px;}
.nav-dropdown .menu-group .sub-links a {font-size:0.85rem;padding:6px 20px;color:rgba(255,255,255,0.3);}
.nav-dropdown .menu-group .sub-links a:hover {color:rgba(255,255,255,0.7);}

@media (max-width: 640px) {
  .nav-tabs {display:none;}
}

/* ========== 콘텐츠 ========== */
.memorial-content {position:relative;z-index:1;padding:122px 24px 80px;}

/* 상단 테마 영역 */
.memorial-header {text-align:center;margin-bottom:60px;opacity:0;transform:translateY(30px);animation:fadeUp 1s ease-out 0.3s forwards;}
.memorial-header .badge {display:inline-flex;align-items:center;gap:8px;padding:8px 24px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);border-radius:100px;font-size:0.8rem;color:rgba(255,255,255,0.65);margin-bottom:28px;backdrop-filter:blur(10px);letter-spacing:0.1em;}
.memorial-header .badge .dot {width:6px;height:6px;background:#c9a96e;border-radius:50%;animation:pulse 2.5s ease-in-out infinite;}
@keyframes pulse {
  0%, 100% {opacity:1;transform:scale(1);}
  50% {opacity:0.4;transform:scale(1.4);}
}
.memorial-header h1 {font-family:'Noto Serif KR', serif;font-size:clamp(2rem, 6vw, 3.2rem);font-weight:900;color:#fff;line-height:1.35;margin-bottom:16px;text-shadow:0 1px 4px rgba(0,0,0,0.6), 0 0 12px rgba(0,0,0,0.3);letter-spacing:-0.02em;}
.memorial-header h1 em {font-style:normal;color:#c9a96e;font-weight:inherit;vertical-align:baseline;}
.memorial-header .sub {font-family:'Noto Serif KR', serif;font-size:1.2rem;color:rgba(255,255,255,0.5);line-height:1.8;text-shadow:0 1px 3px rgba(0,0,0,0.5);}

@keyframes fadeUp {
  to {opacity:1;transform:translateY(0);}
}

/* ========== 카드 그리드 (5열 2행, 센터 정렬) ========== */
.card-grid-wrap {max-width:1300px;margin:0 auto;opacity:0;transform:translateY(30px);animation:fadeUp 0.8s ease-out 0.5s forwards;}
.card-grid {display:grid;grid-template-columns:repeat(4, 1fr);gap:20px;justify-items:center;}

.card-cell {display:flex;flex-direction:column;}
.mem-card {position:relative;width:100%;flex:1;display:flex;flex-direction:column;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:20px;overflow:hidden;backdrop-filter:blur(12px);transition:all 0.4s ease;text-decoration:none;color:inherit;display:flex;flex-direction:column;}
.mem-card:hover {background:rgba(255,255,255,0.1);border-color:rgba(201,169,110,0.3);}

.mem-card .photo {position:relative;display:block;width:100%;min-height:0;flex:1;overflow:hidden;text-decoration:none;}
.mem-card .photo img {width:100%;height:100%;object-fit:cover;filter:grayscale(40%) brightness(0.9);transition:all 0.5s ease;}
.mem-card:hover .photo img {filter:grayscale(10%) brightness(1);transform:scale(1.05);}
.mem-card .photo .grad {position:absolute;inset:0;background:linear-gradient(180deg, transparent 40%, rgba(20,15,10,0.7) 100%);}
.mem-card .badge-gallery {display:inline-flex;align-items:center;padding:3px 12px;background:#ff6b6b;border-radius:100px;font-size:1.2rem;font-weight:700;color:#fff;letter-spacing:0.03em;margin-left:auto;vertical-align:middle;height:1.8rem;position:relative;top:-2px;line-height:1;}

/* 사진 준비 중 */
.mem-card .photo-pending {background:linear-gradient(135deg, #2a2318 0%, #1a1510 100%);display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;}
.mem-card .photo-pending .pending-text {font-size:1rem;color:rgba(255,255,255,0.25);text-align:center;line-height:1.5;letter-spacing:0.05em;z-index:1;}

/* 카드 상단 세대 라벨 */
.mem-card .photo .tag {position:absolute;top:12px;right:12px;z-index:2;display:inline-block;padding:6px 16px;background:rgba(201,169,110,0.85);border-radius:100px;font-size:1.2rem;font-weight:700;color:#1a1510;letter-spacing:0.03em;}

.mem-card .body {padding:18px 20px 22px;background:rgba(20,15,10,0.75);}
.mem-card .card-foot {margin-top:auto;}
.mem-card .name {font-size:1.3rem;font-weight:700;color:#fff;margin-bottom:2px;display:flex;align-items:center;flex-wrap:wrap;}
.mem-card .name .spouse {font-size:1.2rem;font-weight:400;color:rgba(255,255,255,0.4);display:block;width:100%;margin-top:2px;}
.mem-card .dates {font-size:1.15rem;color:rgba(201,169,110,0.7);margin-bottom:10px;letter-spacing:0.02em;}
.mem-card .desc {font-size:1.2rem;color:rgba(255,255,255,0.5);line-height:1.55;min-height:2.64em;}
.mem-card .card-foot {display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,0.06);}
.mem-card .tribute-btn {display:flex;align-items:center;gap:4px;font-size:0.78rem;color:#c9a96e;}
.mem-card .tribute-btn svg {width:12px;height:12px;}
.mem-card .more-btn {font-size:0.75rem;color:rgba(255,255,255,0.3);display:flex;align-items:center;gap:3px;transition:color 0.3s;}
.mem-card:hover .more-btn {color:rgba(255,255,255,0.6);}
.mem-card .more-btn svg {width:12px;height:12px;transition:transform 0.3s;}
.mem-card:hover .more-btn svg {transform:translateX(3px);}

/* 등록 안내 카드 */
.mem-card.add-card {border:1px dashed rgba(255,255,255,0.12);background:rgba(255,255,255,0.02);display:flex;align-items:center;justify-content:center;min-height:320px;cursor:default;backdrop-filter:none;}
.mem-card.add-card:hover {transform:none;box-shadow:none;border-color:rgba(201,169,110,0.3);background:rgba(255,255,255,0.04);}
.add-inner {text-align:center;padding:24px;}
.add-inner svg {width:40px;height:40px;color:rgba(255,255,255,0.15);margin-bottom:14px;}
.add-inner p {font-size:0.85rem;color:rgba(255,255,255,0.3);line-height:1.6;}

/* ========== 추모 모달 ========== */
.tribute-modal-overlay {display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,0.7);backdrop-filter:blur(6px);align-items:center;justify-content:center;}
.tribute-modal-overlay.open {display:flex;}
.tribute-modal {background:#1e1912;border:1px solid rgba(255,255,255,0.1);border-radius:20px;width:90%;max-width:480px;padding:32px 28px;box-shadow:0 24px 80px rgba(0,0,0,0.5);animation:modalIn 0.3s ease-out;}
@keyframes modalIn {
  from {opacity:0;transform:translateY(20px) scale(0.96);}
  to {opacity:1;transform:translateY(0) scale(1);}
}
.tribute-modal .modal-header {display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.tribute-modal .modal-title {font-family:'Noto Serif KR', serif;font-size:1.2rem;font-weight:700;color:#fff;}
.tribute-modal .modal-title span {color:#c9a96e;}
.tribute-modal .modal-close {width:32px;height:32px;border-radius:8px;border:none;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.5);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s;}
.tribute-modal .modal-close:hover {background:rgba(255,255,255,0.12);color:#fff;}
.tribute-modal .modal-close svg {width:16px;height:16px;}
.tribute-modal .user-info {display:flex;gap:12px;margin-bottom:20px;}
.tribute-modal .user-info .field {flex:1;}
.tribute-modal .field label {display:block;font-size:0.75rem;color:rgba(255,255,255,0.4);margin-bottom:6px;letter-spacing:0.03em;}
.tribute-modal .field input,
.tribute-modal .field textarea {width:100%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:10px 14px;font-size:0.9rem;color:#fff;outline:none;transition:border-color 0.2s;font-family:inherit;box-sizing:border-box;}
.tribute-modal .field input:read-only {color:rgba(255,255,255,0.4);cursor:default;}
.tribute-modal .field textarea {height:140px;resize:vertical;line-height:1.6;}
.tribute-modal .field textarea:focus {border-color:rgba(201,169,110,0.5);}
.tribute-modal .field textarea::placeholder {color:rgba(255,255,255,0.2);}
.tribute-modal .modal-submit {width:100%;margin-top:20px;padding:13px;border:none;border-radius:12px;background:linear-gradient(135deg, #c9a96e 0%, #a8854a 100%);color:#fff;font-size:0.95rem;font-weight:600;cursor:pointer;transition:all 0.3s;letter-spacing:0.03em;}
.tribute-modal .modal-submit:hover {filter:brightness(1.1);box-shadow:0 6px 20px rgba(201,169,110,0.3);}

/* ========== 하단 푸터 ========== */
.memorial-footer {text-align:center;padding:40px 24px 60px;opacity:0;animation:fadeUp 0.8s ease-out 1.5s forwards;}
.memorial-footer p {font-size:0.8rem;color:rgba(255,255,255,0.2);letter-spacing:0.05em;}

/* ========== 반응형 ========== */
@media (max-width: 1100px) {
  .card-grid {grid-template-columns:repeat(3, 1fr);}}
@media (max-width: 768px) {
  .memorial-content {padding:90px 16px 60px;}
  .memorial-nav {padding:12px 16px;}
  .card-grid {grid-template-columns:repeat(2, 1fr);gap:14px;}
}
@media (max-width: 480px) {
  .card-grid {grid-template-columns:1fr;max-width:320px;margin:0 auto;}}

/* ===== gallery ===== */
#wrap {padding:0;}

/* ========== 풀스크린 배경 ========== */
.gallery-page {position:relative;min-height:100vh;overflow:hidden;}
.gallery-bg {position:fixed;inset:0;z-index:0;}
.gallery-bg img {width:100%;height:100%;object-fit:cover;animation:bgZoom 30s ease-in-out infinite alternate;}
@keyframes bgZoom {
  0% {transform:scale(1);}
  100% {transform:scale(1.12);}
}
.gallery-bg-overlay {position:absolute;inset:0;background:linear-gradient(180deg, rgba(20,15,10,0.6) 0%, rgba(20,15,10,0.45) 20%, rgba(20,15,10,0.5) 60%, rgba(20,15,10,0.8) 100%), radial-gradient(ellipse at 50% 30%, transparent 20%, rgba(20,15,10,0.4) 100%);}

/* ========== 네비게이션 바 ========== */
.memorial-nav {position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;align-items:center;padding:0 26px;height:52px;background:transparent;}
.memorial-nav .nav-home {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;}
.memorial-nav .nav-home:hover {color:#fff;background:rgba(255,255,255,0.08);}
.memorial-nav .nav-home svg {width:28px;height:28px;}
.nav-tabs {display:flex;align-items:center;gap:4px;margin:0 auto;background:rgba(255,255,255,0.08);border:none;border-radius:100px;padding:5px 6px;backdrop-filter:blur(12px);}
.nav-tabs a,
.nav-tabs a:link,
.nav-tabs a:visited {display:inline-flex;align-items:center;padding:6px 16px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.45);transition:all 0.3s;white-space:nowrap;letter-spacing:0.02em;background:transparent !important;border:none !important;outline:none !important;box-shadow:none !important;text-decoration:none;}
.nav-tabs a:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.08) !important;}
.nav-tabs a.active,
.nav-tabs a.active:link,
.nav-tabs a.active:visited {color:#c9a96e;background:rgba(201,169,110,0.15) !important;}
.nav-hamburger {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;background:none;border:none;}
.nav-hamburger:hover {color:#fff;background:rgba(255,255,255,0.08);}
.nav-hamburger svg {width:28px;height:28px;}
.nav-dropdown {display:none;position:fixed;inset:0;z-index:101;background:rgba(15,12,8,0.97);backdrop-filter:blur(24px);overflow-y:auto;padding:80px 40px 60px;}
.nav-dropdown.open {display:flex;flex-direction:column;align-items:center;justify-content:center;}
.nav-dropdown .nav-close {position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s;}
.nav-dropdown .nav-close:hover {color:#fff;background:rgba(255,255,255,0.15);}
.nav-dropdown .nav-close svg {width:20px;height:20px;}
.nav-dropdown .menu-group {margin-bottom:36px;text-align:center;}
.nav-dropdown .menu-group-title {font-family:'Noto Serif KR', serif;font-size:0.7rem;font-weight:700;color:rgba(201,169,110,0.5);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:16px;}
.nav-dropdown .menu-group a {display:block;padding:10px 20px;font-size:1.1rem;font-weight:500;color:rgba(255,255,255,0.5);transition:all 0.3s;letter-spacing:0.02em;}
.nav-dropdown .menu-group a:hover {color:#fff;}
.nav-dropdown .menu-group a.active {color:#c9a96e;}
.nav-dropdown .menu-group .sub-links {margin-top:4px;}
.nav-dropdown .menu-group .sub-links a {font-size:0.85rem;padding:6px 20px;color:rgba(255,255,255,0.3);}
.nav-dropdown .menu-group .sub-links a:hover {color:rgba(255,255,255,0.7);}
@media (max-width: 640px) {
  .nav-tabs {display:none;}
}

/* ========== 콘텐츠 ========== */
.gallery-content {position:relative;z-index:1;padding:92px 24px 80px;}

/* 상단 테마 영역 */
.gallery-header {text-align:center;margin-bottom:60px;opacity:0;transform:translateY(30px);animation:fadeUp 1s ease-out 0.3s forwards;}
.gallery-header h1 {font-family:'Noto Serif KR', serif;font-size:clamp(2rem, 6vw, 3.2rem);font-weight:900;color:#fff;line-height:1.35;margin-bottom:16px;text-shadow:0 1px 4px rgba(0,0,0,0.6), 0 0 12px rgba(0,0,0,0.3);letter-spacing:-0.02em;}
.gallery-header h1 em {font-style:normal;color:#c9a96e;font-weight:inherit;vertical-align:baseline;}
.gallery-header .sub {font-family:'Noto Serif KR', serif;font-size:1.2rem;color:rgba(255,255,255,0.5);line-height:1.8;text-shadow:0 1px 3px rgba(0,0,0,0.5);}
@keyframes fadeUp {
  to {opacity:1;transform:translateY(0);}
}

/* ========== 갤러리 그리드 ========== */
.gallery-grid-wrap {max-width:1300px;margin:0 auto;opacity:0;transform:translateY(30px);animation:fadeUp 0.8s ease-out 0.5s forwards;}
.gallery-grid {display:grid;grid-template-columns:repeat(4, 1fr);gap:20px;}
.gallery-card {position:relative;border-radius:16px;overflow:hidden;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);backdrop-filter:blur(12px);transition:all 0.4s ease;cursor:pointer;text-decoration:none;color:inherit;display:block;}
.gallery-card:hover {transform:translateY(-6px);background:rgba(255,255,255,0.1);border-color:rgba(201,169,110,0.3);box-shadow:0 20px 60px rgba(0,0,0,0.3);}
.gallery-card .thumb {position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;}
.gallery-card .thumb img {width:100%;height:100%;object-fit:cover;filter:grayscale(20%) brightness(0.9);transition:all 0.5s ease;}
.gallery-card:hover .thumb img {filter:grayscale(0%) brightness(1);transform:scale(1.05);}
.gallery-card .thumb .grad {position:absolute;inset:0;background:linear-gradient(180deg, transparent 50%, rgba(20,15,10,0.6) 100%);}
.gallery-card .thumb .tag {position:absolute;top:12px;right:12px;padding:4px 10px;background:rgba(0,0,0,0.4);backdrop-filter:blur(6px);border-radius:100px;font-size:0.7rem;color:rgba(255,255,255,0.75);letter-spacing:0.05em;}
.gallery-card .card-body {padding:16px 18px 15px;background:rgba(20,15,10,0.75);}
.gallery-card .card-title {font-size:1.3rem;font-weight:600;color:#fff;line-height:1.45;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ========== 하단 안내 ========== */
.gallery-footer {text-align:center;padding:40px 24px 60px;opacity:0;animation:fadeUp 0.8s ease-out 1.5s forwards;}
.gallery-footer p {font-size:1.2rem;color:rgba(255,255,255,0.2);letter-spacing:0.05em;}

/* ========== 개인 갤러리 탭 ========== */
.gallery-tab-wrap {max-width:1100px;margin:0 auto;padding:0 24px 60px;}
.gallery-tab-nav {display:flex;justify-content:center;gap:8px;margin-bottom:28px;}
.gallery-tab-btn {padding:10px 28px;border-radius:100px;font-size:1rem;font-weight:600;color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);cursor:pointer;transition:all 0.3s;}
.gallery-tab-btn:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.1);}
.gallery-tab-btn.active {color:#c9a96e;background:rgba(201,169,110,0.2);border:2px solid #c9a96e;}
.photo-pending {display:flex;align-items:center;justify-content:center;height:180px;background:rgba(255,255,255,0.04);border-radius:12px;}
.photo-pending .pending-text {font-size:0.9rem;color:rgba(255,255,255,0.25);}

/* ========== 반응형 ========== */
@media (max-width: 1100px) {
  .gallery-grid {grid-template-columns:repeat(3, 1fr);}
}
@media (max-width: 768px) {
  .gallery-content {padding:90px 16px 60px;}
  .memorial-nav {padding:12px 16px;}
  .gallery-grid {grid-template-columns:repeat(2, 1fr);gap:14px;}}
@media (max-width: 480px) {
  .gallery-grid {grid-template-columns:1fr;max-width:360px;margin:0 auto;}}

/* ===== gallery-viewer ===== */
.viewer-page {background:#1a1510;}
#wrap {padding:0;}

/* ========== 네비게이션 바 ========== */
.memorial-nav {position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;align-items:center;padding:0 26px;height:52px;background:transparent;}
.memorial-nav .nav-home {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;}
.memorial-nav .nav-home:hover {color:#fff;background:rgba(255,255,255,0.08);}
.memorial-nav .nav-home svg {width:28px;height:28px;}
.nav-tabs {display:flex;align-items:center;gap:4px;margin:0 auto;background:rgba(255,255,255,0.08);border:none;border-radius:100px;padding:5px 6px;backdrop-filter:blur(12px);}
.nav-tabs a,
.nav-tabs a:link,
.nav-tabs a:visited {display:inline-flex;align-items:center;padding:6px 16px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.45);transition:all 0.3s;white-space:nowrap;letter-spacing:0.02em;background:transparent !important;border:none !important;outline:none !important;box-shadow:none !important;text-decoration:none;}
.nav-tabs a:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.08) !important;}
.nav-tabs a.active,
.nav-tabs a.active:link,
.nav-tabs a.active:visited {color:#c9a96e;background:rgba(201,169,110,0.15) !important;}
.nav-hamburger {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;background:none;border:none;}
.nav-hamburger:hover {color:#fff;background:rgba(255,255,255,0.08);}
.nav-hamburger svg {width:28px;height:28px;}
.nav-dropdown {display:none;position:fixed;inset:0;z-index:101;background:rgba(15,12,8,0.97);backdrop-filter:blur(24px);overflow-y:auto;padding:80px 40px 60px;}
.nav-dropdown.open {display:flex;flex-direction:column;align-items:center;justify-content:center;}
.nav-dropdown .nav-close {position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s;}
.nav-dropdown .nav-close:hover {color:#fff;background:rgba(255,255,255,0.15);}
.nav-dropdown .nav-close svg {width:20px;height:20px;}
.nav-dropdown .menu-group {margin-bottom:36px;text-align:center;}
.nav-dropdown .menu-group-title {font-family:'Noto Serif KR', serif;font-size:0.7rem;font-weight:700;color:rgba(201,169,110,0.5);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:16px;}
.nav-dropdown .menu-group a {display:block;padding:10px 20px;font-size:1.1rem;font-weight:500;color:rgba(255,255,255,0.5);transition:all 0.3s;letter-spacing:0.02em;}
.nav-dropdown .menu-group a:hover {color:#fff;}
.nav-dropdown .menu-group a.active {color:#c9a96e;}
.nav-dropdown .menu-group .sub-links {margin-top:4px;}
.nav-dropdown .menu-group .sub-links a {font-size:0.85rem;padding:6px 20px;color:rgba(255,255,255,0.3);}
.nav-dropdown .menu-group .sub-links a:hover {color:rgba(255,255,255,0.7);}
@media (max-width: 640px) {
  .nav-tabs {display:none;}
}

/* ========== 갤러리 뷰어 ========== */
.viewer-page {min-height:100vh;display:flex;flex-direction:column;}

/* 제목 영역 */
.viewer-title {text-align:center;padding:90px 24px 20px;}
.viewer-title h1 {font-size:1.4rem;font-weight:700;color:#fff;margin-bottom:6px;}
.viewer-title .sub {font-size:0.85rem;color:rgba(255,255,255,0.4);}

/* 메인 이미지 */
.viewer-main {flex:1;display:flex;align-items:center;justify-content:center;padding:10px 60px;position:relative;min-height:0;}
.viewer-main .slide-img {max-width:100%;max-height:calc(100vh - 280px);object-fit:contain;border-radius:12px;box-shadow:0 8px 40px rgba(0,0,0,0.4);transition:opacity 0.3s ease;}
.viewer-main .nav-arrow {position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s;}
.viewer-main .nav-arrow:hover {background:rgba(255,255,255,0.15);color:#fff;}
.viewer-main .nav-arrow svg {width:20px;height:20px;}
.viewer-main .nav-prev {left:12px;}
.viewer-main .nav-next {right:12px;}

/* 카운터 */
.viewer-counter {text-align:center;padding:12px 0 4px;font-size:0.8rem;color:rgba(255,255,255,0.35);letter-spacing:0.1em;}

/* 썸네일 슬라이더 */
.viewer-thumbs {display:flex;justify-content:center;gap:10px;padding:12px 24px 24px;overflow-x:auto;}
.viewer-thumbs::-webkit-scrollbar {height:0;}
.viewer-thumb {width:80px;height:60px;border-radius:8px;overflow:hidden;cursor:pointer;flex-shrink:0;border:2px solid transparent;opacity:0.5;transition:all 0.3s;}
.viewer-thumb.active {border-color:#c9a96e;opacity:1;}
.viewer-thumb:hover {opacity:0.8;}
.viewer-thumb img {width:100%;height:100%;object-fit:cover;}

/* 하단 네비 */
.viewer-bottom {display:flex;justify-content:center;padding:16px 24px 5px;}
.viewer-bottom a {display:inline-flex;align-items:center;gap:6px;padding:8px 20px;border-radius:100px;font-size:1.2rem;color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);transition:all 0.3s;}
.viewer-bottom a:hover {color:#fff;background:rgba(255,255,255,0.12);}
.viewer-bottom a svg {width:16px;height:16px;}

@media (max-width: 768px) {
  .viewer-main {padding:10px 48px;}
  .viewer-main .nav-arrow {width:36px;height:36px;}
  .viewer-main .nav-prev {left:6px;}
  .viewer-main .nav-next {right:6px;}
  .viewer-thumb {width:64px;height:48px;}
}

/* ===== history ===== */
#wrap {padding:0;}

/* ========== 풀스크린 배경 ========== */
.gallery-page {position:relative;min-height:100vh;overflow:hidden;}
.gallery-bg {position:fixed;inset:0;z-index:0;}
.gallery-bg img {width:100%;height:100%;object-fit:cover;animation:bgZoom 30s ease-in-out infinite alternate;}
@keyframes bgZoom {
  0% {transform:scale(1);}
  100% {transform:scale(1.12);}
}
.gallery-bg-overlay {position:absolute;inset:0;background:linear-gradient(180deg, rgba(20,15,10,0.7) 0%, rgba(20,15,10,0.5) 20%, rgba(20,15,10,0.55) 60%, rgba(20,15,10,0.85) 100%), radial-gradient(ellipse at 50% 30%, transparent 20%, rgba(20,15,10,0.4) 100%);}

/* ========== 네비게이션 바 ========== */
.memorial-nav {position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;align-items:center;padding:0 26px;height:52px;background:transparent;}
.memorial-nav .nav-home {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;}
.memorial-nav .nav-home:hover {color:#fff;background:rgba(255,255,255,0.08);}
.memorial-nav .nav-home svg {width:28px;height:28px;}
.nav-tabs {display:flex;align-items:center;gap:4px;margin:0 auto;background:rgba(255,255,255,0.08);border:none;border-radius:100px;padding:5px 6px;backdrop-filter:blur(12px);}
.nav-tabs a,
.nav-tabs a:link,
.nav-tabs a:visited {display:inline-flex;align-items:center;padding:6px 16px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.45);transition:all 0.3s;white-space:nowrap;letter-spacing:0.02em;background:transparent !important;border:none !important;outline:none !important;box-shadow:none !important;text-decoration:none;}
.nav-tabs a:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.08) !important;}
.nav-tabs a.active,
.nav-tabs a.active:link,
.nav-tabs a.active:visited {color:#c9a96e;background:rgba(201,169,110,0.15) !important;}
.nav-hamburger {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;background:none;border:none;}
.nav-hamburger:hover {color:#fff;background:rgba(255,255,255,0.08);}
.nav-hamburger svg {width:28px;height:28px;}
.nav-dropdown {display:none;position:fixed;inset:0;z-index:101;background:rgba(15,12,8,0.97);backdrop-filter:blur(24px);overflow-y:auto;padding:80px 40px 60px;}
.nav-dropdown.open {display:flex;flex-direction:column;align-items:center;justify-content:center;}
.nav-dropdown .nav-close {position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s;}
.nav-dropdown .nav-close:hover {color:#fff;background:rgba(255,255,255,0.15);}
.nav-dropdown .nav-close svg {width:20px;height:20px;}
.nav-dropdown .menu-group {margin-bottom:36px;text-align:center;}
.nav-dropdown .menu-group-title {font-family:'Noto Serif KR', serif;font-size:0.7rem;font-weight:700;color:rgba(201,169,110,0.5);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:16px;}
.nav-dropdown .menu-group a {display:block;padding:10px 20px;font-size:1.1rem;font-weight:500;color:rgba(255,255,255,0.5);transition:all 0.3s;letter-spacing:0.02em;}
.nav-dropdown .menu-group a:hover {color:#fff;}
.nav-dropdown .menu-group a.active {color:#c9a96e;}
.nav-dropdown .menu-group .sub-links {margin-top:4px;}
.nav-dropdown .menu-group .sub-links a {font-size:0.85rem;padding:6px 20px;color:rgba(255,255,255,0.3);}
.nav-dropdown .menu-group .sub-links a:hover {color:rgba(255,255,255,0.7);}
@media (max-width: 640px) {
  .nav-tabs {display:none;}
}

/* ========== 콘텐츠 ========== */
.gallery-content {position:relative;z-index:1;padding:92px 24px 80px;}

/* 상단 헤더 */
.gallery-header {text-align:center;margin-bottom:60px;opacity:0;transform:translateY(30px);animation:fadeUp 1s ease-out 0.3s forwards;}
.gallery-header h1 {font-family:'Noto Serif KR', serif;font-size:clamp(2rem, 6vw, 3.2rem);font-weight:900;color:#fff;line-height:1.35;margin-bottom:16px;text-shadow:0 1px 4px rgba(0,0,0,0.6), 0 0 12px rgba(0,0,0,0.3);letter-spacing:-0.02em;}
.gallery-header h1 em {font-style:normal;color:#c9a96e;font-weight:inherit;vertical-align:baseline;}
.gallery-header .sub {font-family:'Noto Serif KR', serif;font-size:1.2rem;color:rgba(255,255,255,0.5);line-height:1.8;text-shadow:0 1px 3px rgba(0,0,0,0.5);}
@keyframes fadeUp {
  to {opacity:1;transform:translateY(0);}
}

/* ========== 아티클 섹션 ========== */
.article-sections {max-width:800px;margin:0 auto;opacity:0;transform:translateY(30px);animation:fadeUp 0.8s ease-out 0.6s forwards;}
.article-section {display:flex;gap:40px;align-items:flex-start;margin-bottom:60px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,0.08);}
.article-section:last-child {border-bottom:none;margin-bottom:0;}
.article-section:nth-child(even) {flex-direction:row-reverse;}
.article-section .article-img {flex-shrink:0;width:360px;align-self:stretch;border-radius:16px;overflow:hidden;}
.article-section .article-img img {width:100%;height:100%;object-fit:cover;display:block;filter:brightness(0.9);transition:all 0.5s;}
.article-section:hover .article-img img {filter:brightness(1);transform:scale(1.03);}
.article-section .article-body {flex:1;min-width:0;}
.article-num {display:inline-block;font-family:'Noto Serif KR', serif;font-size:1.1rem;font-weight:700;color:#1a1510;background:rgba(201,169,110,0.85);padding:5px 16px;border-radius:100px;margin-bottom:18px;letter-spacing:0.05em;}
.article-body h3 {font-family:'Noto Serif KR', serif;font-size:2rem;font-weight:900;color:#fff;margin-bottom:12px;line-height:1.4;text-shadow:0 1px 4px rgba(0,0,0,0.6), 0 0 12px rgba(0,0,0,0.3);}
.article-body .article-sub {font-family:'Noto Serif KR', serif;font-size:1.35rem;color:#c9a96e;line-height:1.6;margin-bottom:22px;text-shadow:0 1px 4px rgba(0,0,0,0.6), 0 0 12px rgba(0,0,0,0.3);}
.article-body .article-txt {font-size:1.25rem;color:rgba(255,255,255,0.7);line-height:2;text-shadow:0 1px 3px rgba(0,0,0,0.5);}

/* ========== 이미지 2장 배치 ========== */
.article-images {display:flex;gap:16px;margin-bottom:60px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,0.08);}
.article-images .img-item {flex:1;border-radius:16px;overflow:hidden;}
.article-images .img-item img {width:100%;height:100%;object-fit:cover;display:block;filter:brightness(0.9);transition:all 0.5s;}
.article-images .img-item:hover img {filter:brightness(1);transform:scale(1.03);}

/* ========== 하단 ========== */
.gallery-footer {text-align:center;padding:30px 24px 60px;}
.gallery-footer p {font-size:1.2rem;color:rgba(255,255,255,0.2);letter-spacing:0.05em;}

/* ========== 반응형 ========== */
@media (max-width: 768px) {
  .gallery-content {padding:90px 16px 60px;}
  .memorial-nav {padding:12px 16px;}
  .article-section,
  .article-section:nth-child(even) {flex-direction:column;}
  .article-section .article-img {width:100%;}
  .article-section {gap:24px;}
}

/* ===== relationship ===== */
#wrap {padding:0;}

/* ========== 풀스크린 배경 ========== */
.gallery-page {position:relative;min-height:100vh;overflow:hidden;}
.gallery-bg {position:fixed;inset:0;z-index:0;}
.gallery-bg img {width:100%;height:100%;object-fit:cover;animation:bgZoom 30s ease-in-out infinite alternate;}
@keyframes bgZoom {
  0% {transform:scale(1);}
  100% {transform:scale(1.12);}
}
.gallery-bg-overlay {position:absolute;inset:0;background:linear-gradient(180deg, rgba(20,15,10,0.6) 0%, rgba(20,15,10,0.45) 20%, rgba(20,15,10,0.5) 60%, rgba(20,15,10,0.8) 100%), radial-gradient(ellipse at 50% 30%, transparent 20%, rgba(20,15,10,0.4) 100%);}

/* ========== 네비게이션 바 ========== */
.memorial-nav {position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;align-items:center;padding:0 26px;height:52px;background:transparent;}
.memorial-nav .nav-home {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;}
.memorial-nav .nav-home:hover {color:#fff;background:rgba(255,255,255,0.08);}
.memorial-nav .nav-home svg {width:28px;height:28px;}
.nav-tabs {display:flex;align-items:center;gap:4px;margin:0 auto;background:rgba(255,255,255,0.08);border:none;border-radius:100px;padding:5px 6px;backdrop-filter:blur(12px);}
.nav-tabs a,
.nav-tabs a:link,
.nav-tabs a:visited {display:inline-flex;align-items:center;padding:6px 16px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.45);transition:all 0.3s;white-space:nowrap;letter-spacing:0.02em;background:transparent !important;border:none !important;outline:none !important;box-shadow:none !important;text-decoration:none;}
.nav-tabs a:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.08) !important;}
.nav-tabs a.active,
.nav-tabs a.active:link,
.nav-tabs a.active:visited {color:#c9a96e;background:rgba(201,169,110,0.15) !important;}
.nav-hamburger {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;background:none;border:none;}
.nav-hamburger:hover {color:#fff;background:rgba(255,255,255,0.08);}
.nav-hamburger svg {width:28px;height:28px;}
.nav-dropdown {display:none;position:fixed;inset:0;z-index:101;background:rgba(15,12,8,0.97);backdrop-filter:blur(24px);overflow-y:auto;padding:80px 40px 60px;}
.nav-dropdown.open {display:flex;flex-direction:column;align-items:center;justify-content:center;}
.nav-dropdown .nav-close {position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s;}
.nav-dropdown .nav-close:hover {color:#fff;background:rgba(255,255,255,0.15);}
.nav-dropdown .nav-close svg {width:20px;height:20px;}
.nav-dropdown .menu-group {margin-bottom:36px;text-align:center;}
.nav-dropdown .menu-group-title {font-family:'Noto Serif KR', serif;font-size:0.7rem;font-weight:700;color:rgba(201,169,110,0.5);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:16px;}
.nav-dropdown .menu-group a {display:block;padding:10px 20px;font-size:1.1rem;font-weight:500;color:rgba(255,255,255,0.5);transition:all 0.3s;letter-spacing:0.02em;}
.nav-dropdown .menu-group a:hover {color:#fff;}
.nav-dropdown .menu-group a.active {color:#c9a96e;}
.nav-dropdown .menu-group .sub-links {margin-top:4px;}
.nav-dropdown .menu-group .sub-links a {font-size:0.85rem;padding:6px 20px;color:rgba(255,255,255,0.3);}
.nav-dropdown .menu-group .sub-links a:hover {color:rgba(255,255,255,0.7);}
@media (max-width: 640px) {
  .nav-tabs {display:none;}
}

/* ========== 콘텐츠 ========== */
.gallery-content {position:relative;z-index:1;padding:92px 24px 80px;}

/* 상단 헤더 */
.gallery-header {text-align:center;margin-bottom:50px;opacity:0;transform:translateY(30px);animation:fadeUp 1s ease-out 0.3s forwards;}
.gallery-header h1 {font-family:'Noto Serif KR', serif;font-size:clamp(2rem, 6vw, 3.2rem);font-weight:900;color:#fff;line-height:1.35;margin-bottom:16px;text-shadow:0 1px 4px rgba(0,0,0,0.6), 0 0 12px rgba(0,0,0,0.3);letter-spacing:-0.02em;}
.gallery-header h1 em {font-style:normal;color:#c9a96e;font-weight:inherit;vertical-align:baseline;}
.gallery-header .sub {font-family:'Noto Serif KR', serif;font-size:1.2rem;color:rgba(255,255,255,0.5);line-height:1.8;text-shadow:0 1px 3px rgba(0,0,0,0.5);}
@keyframes fadeUp {
  to {opacity:1;transform:translateY(0);}
}

/* ========== 1행: 대(代) 선택 버튼 ========== */
.gen-selector {max-width:800px;margin:0 auto 40px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;opacity:0;transform:translateY(20px);animation:fadeUp 0.8s ease-out 0.5s forwards;}
.gen-btn {display:flex;align-items:center;justify-content:center;width:100px;height:100px;border-radius:16px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);backdrop-filter:blur(12px);cursor:pointer;transition:all 0.35s ease;font-family:'Noto Serif KR', serif;font-size:1.2rem;font-weight:700;color:rgba(255,255,255,0.55);letter-spacing:-0.02em;}
.gen-btn:hover {transform:translateY(-4px);background:rgba(255,255,255,0.1);border-color:rgba(201,169,110,0.3);color:rgba(255,255,255,0.85);box-shadow:0 12px 40px rgba(0,0,0,0.25);}
.gen-btn.active {background:rgba(201,169,110,0.25);border:2px solid #c9a96e;color:#c9a96e;box-shadow:0 0 20px rgba(201,169,110,0.4), 0 8px 30px rgba(201,169,110,0.2);transform:translateY(-4px);font-size:1.3rem;}

/* ========== 2행: 구성원 카드 영역 ========== */
.gen-members {max-width:1300px;margin:0 auto;}
.gen-panel {display:none;animation:fadeUp 0.5s ease-out forwards;}
.gen-panel.active {display:block;}
.gen-panel-title {text-align:center;margin-bottom:30px;}
.gen-panel-title h3 {font-family:'Noto Serif KR', serif;font-size:1.6rem;font-weight:700;color:rgba(255,255,255,0.8);}
.gen-panel-title h3 em {font-style:normal;color:#c9a96e;font-weight:inherit;vertical-align:baseline;}
.gen-panel-title p {font-size:1.2rem;color:rgba(255,255,255,0.35);margin-top:6px;}

.member-grid {display:flex;flex-wrap:wrap;justify-content:center;gap:16px;}
.member-card {position:relative;width:130px;border-radius:14px;padding:14px 10px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);backdrop-filter:blur(12px);transition:all 0.35s ease;text-align:center;}
.member-card:hover {transform:translateY(-4px);background:rgba(255,255,255,0.1);border-color:rgba(201,169,110,0.25);box-shadow:0 16px 50px rgba(0,0,0,0.25);}
.member-card.clickable {cursor:pointer;}
.member-card.clickable .member-name::after {content:' \25BE';font-size:0.75em;color:rgba(201,169,110,0.5);}
.member-card.active {background:rgba(201,169,110,0.25);border:2px solid #c9a96e;box-shadow:0 0 20px rgba(201,169,110,0.4), 0 8px 30px rgba(201,169,110,0.2);transform:translateY(-4px);}
.member-card.active .member-name::after {content:' \25B4';color:#c9a96e;}
.member-card .member-icon {width:40px;height:40px;margin:0 auto 10px;border-radius:50%;background:rgba(201,169,110,0.12);border:1px solid rgba(201,169,110,0.2);display:flex;align-items:center;justify-content:center;}
.member-card .member-icon svg {width:20px;height:20px;color:rgba(201,169,110,0.6);}
.member-card .member-name {font-family:'Noto Serif KR', serif;font-size:1.1rem;font-weight:700;color:#fff;line-height:1.4;margin-bottom:4px;}
.member-card .member-note {font-size:0.72rem;color:rgba(201,169,110,0.5);margin-top:6px;}

/* ========== 3행: 자녀 펼침 영역 ========== */
.children-row {display:none;margin-top:0;padding:20px 0 24px;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,0.12);animation:fadeUp 0.4s ease-out forwards;}
.children-row.active {display:block;}
.parent-group + .children-row.active {margin-top:-45px;}
.children-row-title {text-align:center;margin-bottom:20px;font-family:'Noto Serif KR', serif;font-size:0.9rem;color:rgba(201,169,110,0.6);letter-spacing:0.03em;}
.children-row-title em {font-style:normal;color:#c9a96e;font-weight:inherit;vertical-align:baseline;}

/* 4행: 손자녀 펼침 */
.grandchildren-row {display:none;margin-top:28px;padding-top:28px;border-top:1px solid rgba(255,255,255,0.06);animation:fadeUp 0.4s ease-out forwards;}
.grandchildren-row.active {display:block;}

/* 부모별 그룹 (23대/24대 전용 뷰) */
.parent-group {margin-bottom:24px;text-align:center;}
.parent-group .member-grid {padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,0.12);}
.parent-group:last-child .member-grid {padding-bottom:0;border-bottom:none;}
.parent-group-label {display:inline-block;font-family:'Noto Serif KR', serif;font-size:0.85rem;font-weight:700;color:#1a1510;background:rgba(201,169,110,0.85);padding:5px 16px;border-radius:100px;letter-spacing:0.03em;margin-bottom:16px;text-align:center;}

/* ========== 하단 ========== */
.gallery-footer {text-align:center;padding:50px 24px 60px;}
.gallery-footer p {font-size:1.2rem;color:rgba(255,255,255,0.2);letter-spacing:0.05em;}

/* ========== 반응형 ========== */
@media (max-width: 768px) {
  .gallery-content {padding:90px 16px 60px;}
  .memorial-nav {padding:12px 16px;}
  .gen-btn {width:80px;height:80px;font-size:1rem;}
  .gen-selector {gap:8px;}
  .member-card {width:120px;padding:12px 8px;}
}
@media (max-width: 480px) {
  .gen-btn {width:70px;height:70px;font-size:0.9rem;}
  .member-card {width:110px;padding:10px 8px;}
}

/* ===== index (home) ===== */

/* ========== 네비게이션 바 ========== */
.memorial-nav {position:fixed;top:20px;left:0;right:0;z-index:100;display:flex;align-items:center;padding:0 26px;height:52px;background:transparent;backdrop-filter:none;border-bottom:none;transition:background 0.3s, backdrop-filter 0.3s;}
.memorial-nav.scrolled {background:rgba(26,21,16,0.95);backdrop-filter:blur(12px);}
.memorial-nav .nav-home {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;}
.memorial-nav .nav-home:hover {color:#fff;background:rgba(255,255,255,0.08);}
.memorial-nav .nav-home svg {width:28px;height:28px;}
.nav-tabs {display:flex;align-items:center;gap:4px;margin:0 auto;background:rgba(255,255,255,0.08);border:none;border-radius:100px;padding:5px 6px;backdrop-filter:blur(12px);}
.nav-tabs a,
.nav-tabs a:link,
.nav-tabs a:visited {display:inline-flex;align-items:center;padding:6px 16px;border-radius:100px;font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.45);transition:all 0.3s;white-space:nowrap;letter-spacing:0.02em;background:transparent !important;border:none !important;outline:none !important;box-shadow:none !important;text-decoration:none;}
.nav-tabs a:hover {color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.08) !important;}
.nav-tabs a.active,
.nav-tabs a.active:link,
.nav-tabs a.active:visited {color:#c9a96e;background:rgba(201,169,110,0.15) !important;}
.nav-hamburger {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.6);transition:all 0.3s;flex-shrink:0;background:none;border:none;}
.nav-hamburger:hover {color:#fff;background:rgba(255,255,255,0.08);}
.nav-hamburger svg {width:28px;height:28px;}
.nav-dropdown {display:none;position:fixed;inset:0;z-index:101;background:rgba(15,12,8,0.97);backdrop-filter:blur(24px);overflow-y:auto;padding:80px 40px 60px;}
.nav-dropdown.open {display:flex;flex-direction:column;align-items:center;justify-content:center;}
.nav-dropdown .nav-close {position:absolute;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.6);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s;}
.nav-dropdown .nav-close:hover {color:#fff;background:rgba(255,255,255,0.15);}
.nav-dropdown .nav-close svg {width:20px;height:20px;}
.nav-dropdown .menu-group {margin-bottom:36px;text-align:center;}
.nav-dropdown .menu-group-title {font-family:'Noto Serif KR', serif;font-size:0.7rem;font-weight:700;color:rgba(201,169,110,0.5);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:16px;}
.nav-dropdown .menu-group a {display:block;padding:10px 20px;font-size:1.1rem;font-weight:500;color:rgba(255,255,255,0.5);transition:all 0.3s;letter-spacing:0.02em;}
.nav-dropdown .menu-group a:hover {color:#fff;}
.nav-dropdown .menu-group a.active {color:#c9a96e;}
.nav-dropdown .menu-group .sub-links {margin-top:4px;}
.nav-dropdown .menu-group .sub-links a {font-size:0.85rem;padding:6px 20px;color:rgba(255,255,255,0.3);}
.nav-dropdown .menu-group .sub-links a:hover {color:rgba(255,255,255,0.7);}
@media (max-width: 640px) {
  .nav-tabs {display:none;}
}

/* 히어로 영역 */
.memorial-hero {position:relative;background:linear-gradient(135deg, #2c2418 0%, #1a1510 50%, #2c2418 100%);padding:100px 24px 60px;text-align:center;overflow:hidden;}
.memorial-hero::before {content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%, rgba(201,169,110,0.08) 0%, transparent 60%);}
.memorial-hero-inner {position:relative;z-index:1;max-width:720px;margin:0 auto;}

/* 부부 2인 배치 */
.hero-couple {display:flex;justify-content:center;gap:0;margin-bottom:28px;}
.hero-person {display:flex;flex-direction:column;align-items:center;width:180px;flex-shrink:0;}
.memorial-photo {width:130px;height:130px;border-radius:50%;overflow:hidden;margin:0 auto 6px;border:3px solid rgba(201,169,110,0.4);box-shadow:0 8px 40px rgba(0,0,0,0.3);}
.memorial-photo img {width:100%;height:100%;object-fit:cover;filter:grayscale(20%);}
.memorial-photo.no-photo {background:linear-gradient(135deg, #2a2318 0%, #1a1510 100%);display:flex;align-items:center;justify-content:center;}
.memorial-photo.no-photo span {font-size:0.8rem;color:rgba(255,255,255,0.25);text-align:center;line-height:1.4;}
.memorial-photo.no-photo svg {width:50px;height:50px;color:rgba(255,255,255,0.2);}
.hero-person .person-name {font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:2px;letter-spacing:-0.02em;}
.hero-person .person-role {font-size:0.9rem;color:rgba(255,255,255,0.4);margin-bottom:10px;}
.hero-person .dates {display:inline-flex;align-items:center;gap:10px;padding:5px 12px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:100px;font-size:0.85rem;color:rgba(255,255,255,0.6);}
.hero-person .dates .separator {width:8px;height:1px;background:rgba(255,255,255,0.3);}
.memorial-hero .generation {font-size:1rem;color:rgba(255,255,255,0.5);margin-bottom:16px;letter-spacing:0.05em;}
.hero-tribute-btn {display:inline-flex;align-items:center;gap:8px;padding:10px 28px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);color:#c9a96e;border-radius:100px;font-size:1.05rem;font-weight:400;cursor:pointer;transition:all 0.3s;letter-spacing:0.03em;}
.hero-tribute-btn svg {width:15px;height:15px;opacity:0.6;}
.hero-tribute-btn:hover {background:rgba(255,255,255,0.12);border-color:rgba(201,169,110,0.3);color:rgba(255,255,255,0.75);}

@media (max-width: 520px) {
  .hero-couple {flex-direction:column;gap:32px;align-items:center;}
}

/* 콘텐츠 너비 제한 + 중앙 정렬 */
.sub-content.wrapper {max-width:800px;margin:0 auto;}

/* 정보 섹션 */
.memorial-section {padding:48px 0;}
.memorial-section + .memorial-section {border-top:1px solid #f0ece6;}
.section-label {font-size:1.4rem;font-weight:700;color:#333;margin-bottom:28px;text-align:center;}
.section-label span {display:inline-block;padding-bottom:12px;border-bottom:2px solid #c9a96e;}

/* 인물 정보 테이블 */
.info-table {width:100%;border-collapse:collapse;}
.info-table tr {border-bottom:1px solid #f0ece6;}
.info-table th {width:140px;padding:16px 20px;text-align:left;font-size:1.05rem;font-weight:600;color:#8b7355;background:#faf8f5;vertical-align:top;}
.info-table td {padding:16px 20px;font-size:1.05rem;color:#555;line-height:1.6;}

@media (max-width: 768px) {
  .info-table th,
  .info-table td {display:block;width:100%;padding:10px 16px;}
  .info-table th {padding-bottom:4px;background:none;}
  .info-table td {padding-top:0;padding-bottom:16px;}
}

/* 생애 이야기 */
.life-story {font-size:1.2rem;color:#555;line-height:1.9;text-align:justify;}
.life-story p + p {margin-top:20px;}

/* 가족 관계 */
.family-list {display:flex;flex-wrap:wrap;justify-content:center;gap:16px;}
.family-item {display:flex;align-items:center;gap:14px;padding:16px 18px;background:#faf8f5;border-radius:12px;transition:background 0.2s;}
.family-item:hover {background:#f5f0ea;}
.family-item .avatar {width:44px;height:44px;border-radius:50%;background:#e8e2d8;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;color:#8b7355;flex-shrink:0;}
.family-item .info .name {font-size:1.2rem;font-weight:600;color:#333;}
.family-item .info .relation {font-size:0.85rem;color:#aaa;margin-top:2px;}

/* ========== 추모 댓글 영역 ========== */
.tribute-section {background:#faf8f5;border-radius:16px;padding:36px 32px;}
.tribute-header {display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.tribute-count {font-size:1.1rem;color:#aaa;}

/* 댓글 입력 */
.tribute-form {display:flex;flex-direction:column;gap:12px;margin-bottom:32px;padding:24px;background:#fff;border-radius:12px;border:1px solid #ebe6dd;}
.tribute-form-row {display:flex;gap:10px;}
.tribute-form input[type="text"] {flex:1;height:42px;padding:0 14px;border:1px solid #e0d8cc;border-radius:8px;font-size:0.95rem;background:#faf8f5;color:#333;width:auto;}
.tribute-form input::placeholder {color:#c0b8a8;}
.tribute-form textarea {width:100%;height:80px;padding:12px 14px;border:1px solid #e0d8cc;border-radius:8px;font-size:1.1rem;background:#faf8f5;resize:none;color:#333;font-family:inherit;}
.tribute-form textarea::placeholder {color:#c0b8a8;}
.tribute-form-actions {display:flex;justify-content:center;}
.tribute-form .btn-submit {padding:10px 28px;background:#c9a96e;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all 0.3s;}
.tribute-form .btn-submit:hover {background:#b8954f;transform:translateY(-1px);box-shadow:0 4px 16px rgba(201,169,110,0.3);}

/* 댓글 목록 */
.tribute-list {display:flex;flex-direction:column;gap:16px;}
.tribute-item {display:flex;gap:14px;padding:20px;background:#fff;border-radius:12px;border:1px solid #ebe6dd;}
.tribute-item .avatar {width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg, #e8e2d8, #d4cbb8);display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:700;color:#8b7355;flex-shrink:0;}
.tribute-item .content {flex:1;min-width:0;}
.tribute-item .meta {display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.tribute-item .author {font-size:1.1rem;font-weight:600;color:#333;}
.tribute-item .date {font-size:0.95rem;color:#bbb;}
.tribute-item .message {font-size:1.2rem;color:#666;line-height:1.6;word-break:break-word;}
.tribute-item .btn-delete {background:none;border:none;font-size:0.75rem;color:#ccc;cursor:pointer;margin-left:auto;padding:2px 6px;flex-shrink:0;align-self:flex-start;}
.tribute-item .btn-delete:hover {color:#e57373;}

.tribute-empty {text-align:center;padding:40px 20px;color:#c0b8a8;font-size:1rem;}
.tribute-empty svg {width:48px;height:48px;margin-bottom:12px;opacity:0.4;}

/* 하단 추모관 목록 */
.memorial-bottom-nav-header {display:flex;justify-content:center;margin-top:40px;}
.btn-ancestor-list {display:inline-flex;align-items:center;gap:6px;padding:8px 20px;border-radius:100px;font-size:1.2rem;font-weight:500;color:#c9a96e;background:transparent;border:1px solid #c9a96e;transition:all 0.3s;text-decoration:none;}
.btn-ancestor-list:hover {background:rgba(201,169,110,0.1);}
.btn-ancestor-list svg {width:18px;height:18px;}
.memorial-bottom-nav {display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;padding-top:24px;border-top:1px solid #f0ece6;}
.memorial-bottom-nav a {display:inline-flex;align-items:center;padding:6px 14px;border-radius:100px;font-size:1.2rem;color:#8b7355;background:#faf8f5;border:1px solid #ebe6dd;transition:all 0.3s;text-decoration:none;}
.memorial-bottom-nav a:hover {background:#f0ece6;color:#c9a96e;border-color:#c9a96e;}
.memorial-bottom-nav a.current {background:#c9a96e;color:#fff;border-color:#c9a96e;}

@media (max-width: 768px) {
  .memorial-hero {padding:60px 16px 40px;}
  .memorial-photo {width:120px;height:120px;}
  .hero-person .person-name {font-size:1.4rem;}
  .tribute-section {padding:24px 16px;}
  .tribute-form {padding:16px;}
  .tribute-form-row {flex-direction:column;}
  .family-list {flex-direction:column;align-items:center;}
}
/* 풀스크린 오버라이드 */
body {margin:0;overflow-x:hidden;}
#content {padding-bottom:0;overflow:visible;}
html, body, #wrap, #content {height:100%;}

/* ========== HERO FULL SCREEN ========== */
.hero {position:relative;width:100%;height:100vh;overflow:hidden;}

/* 배경 슬라이드 */
.hero-slides {position:absolute;inset:0;z-index:0;}
.hero-slide {position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease-in-out;}
.hero-slide.active {opacity:1;}
.hero-slide img {width:100%;height:100%;object-fit:cover;animation:heroZoom 12s ease-out forwards;}
.hero-slide:nth-child(odd) img {animation-name:heroZoomAlt;}
@keyframes heroZoom {
  0% {transform:scale(1.15);}
  100% {transform:scale(1);}
}
@keyframes heroZoomAlt {
  0% {transform:scale(1);}
  100% {transform:scale(1.12);}
}

/* 오버레이 그라데이션 */
.hero-overlay {position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(20,15,10,0.35) 0%, rgba(20,15,10,0.25) 35%, rgba(20,15,10,0.55) 70%, rgba(20,15,10,0.75) 100%), radial-gradient(ellipse at 50% 50%, transparent 20%, rgba(20,15,10,0.35) 100%);}

/* 콘텐츠 영역 */
.hero-content {position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:0 24px;color:#fff;}

/* 순차 페이드업 애니메이션 */
.hero-content .hero-badge,
.hero-content .hero-title,
.hero-content .hero-sub,
.hero-content .hero-desc,
.hero-content .hero-nav {opacity:0;transform:translateY(30px);animation:heroFadeUp 1s ease-out forwards;}
.hero-content .hero-badge {animation-delay:0.5s;}
.hero-content .hero-title {animation-delay:1s;}
.hero-content .hero-sub {animation-delay:1.5s;}
.hero-content .hero-desc {animation-delay:2s;}
.hero-content .hero-nav {animation-delay:2.5s;}

@keyframes heroFadeUp {
  to {opacity:1;transform:translateY(0);}
}

/* 뱃지 */
.hero-badge {display:inline-flex;align-items:center;gap:8px;padding:8px 24px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);border-radius:100px;font-size:0.85rem;font-weight:400;color:rgba(255,255,255,0.85);margin-bottom:28px;backdrop-filter:blur(10px);letter-spacing:0.08em;}
.hero-badge-dot {width:7px;height:7px;background:#c9a96e;border-radius:50%;animation:pulse 2.5s ease-in-out infinite;}
@keyframes pulse {
  0%, 100% {opacity:1;transform:scale(1);}
  50% {opacity:0.4;transform:scale(1.4);}
}

/* 메인 타이틀 */
.hero-title {font-family:'Noto Serif KR', serif;font-size:clamp(2.2rem, 7vw, 4rem);font-weight:900;line-height:1.3;margin-bottom:16px;letter-spacing:-0.02em;text-shadow:0 2px 20px rgba(0,0,0,0.3);}
.hero-title em {font-style:normal;color:#c9a96e;font-weight:inherit;vertical-align:baseline;}

/* 서브 타이틀 */
.hero-sub {font-family:'Noto Serif KR', serif;font-size:clamp(1rem, 2.5vw, 1.3rem);font-weight:400;color:rgba(255,255,255,0.8);line-height:1.8;margin-bottom:16px;letter-spacing:0.02em;}

/* 설명 */
.hero-desc {font-size:clamp(0.85rem, 1.8vw, 0.95rem);font-weight:300;color:rgba(255,255,255,0.55);line-height:1.7;margin-bottom:44px;max-width:540px;}

/* 네비게이션 버튼 */
.hero-nav {display:flex;flex-wrap:wrap;gap:12px;justify-content:center;background:rgba(0,0,0,0.35);backdrop-filter:blur(10px);padding:16px 32px;border-radius:16px;border:1px solid rgba(255,255,255,0.06);margin-left:14px;}
.hero-nav a {display:inline-flex;align-items:center;gap:6px;padding:13px 28px;border-radius:100px;font-size:0.9rem;font-weight:500;transition:all 0.3s ease;letter-spacing:0.02em;}
.hero-nav a.primary {background:rgba(201,169,110,0.9);color:#1a1510;}
.hero-nav a.primary:hover {background:#c9a96e;transform:translateY(-2px);box-shadow:0 8px 30px rgba(201,169,110,0.35);}
.hero-nav a.outline {border:1px solid rgba(255,255,255,0.25);color:rgba(255,255,255,0.85);}
.hero-nav a.outline:hover {border-color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.08);transform:translateY(-2px);}
.hero-nav a svg {width:16px;height:16px;transition:transform 0.3s ease;}
.hero-nav a:hover svg {transform:translateX(3px);}

/* 슬라이드 인디케이터 */
.hero-indicators {position:absolute;bottom:100px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:10px;}
.hero-indicator {width:40px;height:3px;background:rgba(255,255,255,0.3);border-radius:3px;cursor:pointer;transition:all 0.4s ease;}
.hero-indicator.active {background:#c9a96e;}

/* 스크롤 안내 */
.hero-scroll {position:absolute;bottom:32px;left:50%;transform:translateX(-50%) translateY(30px);z-index:3;display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,0.35);font-size:0.7rem;letter-spacing:0.15em;opacity:0;animation:heroScrollFadeUp 1s ease-out 3.5s forwards;}
.hero-scroll-line {width:1px;height:36px;background:linear-gradient(to bottom, rgba(255,255,255,0.3), transparent);animation:scrollLine 2s ease-in-out infinite;}
@keyframes heroScrollFadeUp {
  to {opacity:1;transform:translateX(-50%) translateY(0);}
}
@keyframes scrollLine {
  0% {transform:scaleY(0);transform-origin:top;}
  50% {transform:scaleY(1);transform-origin:top;}
  51% {transform:scaleY(1);transform-origin:bottom;}
  100% {transform:scaleY(0);transform-origin:bottom;}
}

/* ========== 반응형 ========== */
@media (max-width: 768px) {
  .hero-nav a {padding:11px 20px;font-size:0.82rem;}
  .hero-indicators {bottom:85px;}
  .hero-desc br {display:none;}
}

@media (max-width: 480px) {
  .hero-nav {flex-direction:column;align-items:center;width:100%;max-width:260px;margin:0 auto;}
  .hero-nav a {width:100%;justify-content:center;}
}
