/* ═══════════════════════════════════════════════════════════════════
   夢花緣 (몽화연) — 공통 디자인 시스템
═══════════════════════════════════════════════════════════════════ */

:root{
  --bg-deep:#0a0a0c;
  --bg-soft:#14141a;
  --bg-paper:#16161c;
  --ink:#1a1a20;
  --gold:#c9a96e;
  --gold-soft:#d4b886;
  --gold-dark:#8a7548;
  --paper:#f4ede1;
  --paper-soft:#e8dec9;
  --text-light:#e8dec9;
  --text-mute:#9b9285;
  --text-faded:#8a7d6b;
  --red-stamp:#a8392c;
  --error:#d9534f;
}

*{margin:0;padding:0;box-sizing:border-box}

html,body{
  background:var(--bg-deep);
  color:var(--text-light);
  font-family:'Noto Serif KR',serif;
  line-height:1.7;
  overflow-x:hidden;
}

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

/* ═══════════════════════════════════════════════
   네비게이션
═══════════════════════════════════════════════ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:18px 40px;
  background:rgba(10,10,12,0.45);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(201,169,110,0.15);
  display:flex;justify-content:space-between;align-items:center;
  transition:background .3s;
}
.nav.scrolled{background:rgba(10,10,12,0.92)}

.nav-logo{
  font-family:'Ma Shan Zheng',serif;
  font-size:26px;color:var(--gold);
  letter-spacing:6px;
  text-shadow:0 2px 12px rgba(0,0,0,0.6);
}

.nav-menu{display:flex;gap:36px;list-style:none}
.nav-menu a{
  color:var(--text-light);
  font-size:14px;letter-spacing:2px;
  transition:color .3s;
  text-shadow:0 1px 8px rgba(0,0,0,0.7);
}
.nav-menu a:hover,.nav-menu a.active{color:var(--gold)}

/* ═══════════════════════════════════════════════
   플래시 메시지
═══════════════════════════════════════════════ */
.flash-container{
  position:fixed;top:90px;left:50%;transform:translateX(-50%);
  z-index:1000;width:90%;max-width:600px;
}
.flash{
  padding:14px 24px;margin-bottom:10px;border-radius:4px;
  background:rgba(20,20,26,0.95);
  border:1px solid var(--gold);color:var(--paper);
  font-size:14px;text-align:center;
  animation:flashFadeIn .4s ease-out;
}
.flash-error{border-color:var(--error);color:#ffcccc}
.flash-success{border-color:var(--gold);color:var(--paper)}
@keyframes flashFadeIn{
  from{opacity:0;transform:translateY(-10px)}
  to{opacity:1;transform:translateY(0)}
}

/* ═══════════════════════════════════════════════
   히어로 (배경 이미지)
═══════════════════════════════════════════════ */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;padding-top:80px;
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center center;
  animation:slowZoom 40s ease-out infinite alternate;
}
@keyframes slowZoom{
  from{transform:scale(1)}
  to{transform:scale(1.08)}
}
.hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(ellipse at center, rgba(10,10,12,0.35) 0%, rgba(10,10,12,0.7) 100%),
    linear-gradient(180deg, rgba(10,10,12,0.6) 0%, rgba(10,10,12,0.2) 30%, rgba(10,10,12,0.5) 70%, rgba(10,10,12,0.85) 100%);
}
.hero-content{
  position:relative;z-index:10;text-align:center;
  max-width:900px;padding:40px 20px;
  animation:fadeUp 1.6s ease-out;
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(40px)}
  to{opacity:1;transform:translateY(0)}
}

.hero-tag{
  display:inline-block;
  padding:8px 24px;margin-bottom:40px;
  border:1px solid var(--gold);
  color:var(--gold);
  font-size:13px;letter-spacing:6px;
  background:rgba(10,10,12,0.3);
  backdrop-filter:blur(4px);
  text-shadow:0 1px 6px rgba(0,0,0,0.7);
}
.hanja-title{
  font-family:'Ma Shan Zheng',serif;
  font-size:140px;line-height:1;
  color:var(--gold);
  letter-spacing:20px;
  margin-bottom:24px;
  text-shadow:0 0 80px rgba(0,0,0,0.9),0 4px 30px rgba(0,0,0,0.85);
  filter:drop-shadow(0 0 20px rgba(201,169,110,0.4));
}
.hangul-title{
  font-family:'Nanum Myeongjo',serif;
  font-size:24px;letter-spacing:24px;
  color:var(--paper);margin-bottom:60px;
  font-weight:300;
  text-shadow:0 2px 16px rgba(0,0,0,0.9);
}
.slogan-wrap{
  position:relative;margin-bottom:60px;padding:30px 0;
}
.slogan-wrap::before,.slogan-wrap::after{
  content:'';position:absolute;left:50%;transform:translateX(-50%);
  width:80px;height:1px;background:var(--gold);
  box-shadow:0 0 8px rgba(201,169,110,0.5);
}
.slogan-wrap::before{top:0}
.slogan-wrap::after{bottom:0}
.slogan{
  font-size:24px;color:var(--paper);
  letter-spacing:4px;font-weight:300;
  text-shadow:0 2px 16px rgba(0,0,0,0.9);
}

.main-copy{font-size:18px;line-height:2.2;color:var(--text-light);text-shadow:0 2px 14px rgba(0,0,0,0.85)}
.main-copy p{margin-bottom:20px}
.main-copy .em{color:var(--gold);font-weight:500}
.main-copy .divider{
  display:block;margin:32px 0;
  color:var(--gold);letter-spacing:8px;font-size:14px;
}

.bracket-line{
  margin-top:50px;font-size:16px;color:var(--text-mute);
  letter-spacing:4px;
  text-shadow:0 2px 12px rgba(0,0,0,0.8);
}
.hero-final{
  margin-top:12px;font-size:20px;color:var(--paper);
  letter-spacing:3px;font-weight:500;
  margin-bottom:60px;
  text-shadow:0 2px 16px rgba(0,0,0,0.9);
}

.scroll-down{
  position:absolute;bottom:30px;left:50%;transform:translateX(-50%);
  color:var(--text-mute);font-size:11px;letter-spacing:4px;
  animation:bounce 2s infinite;z-index:10;
  text-shadow:0 1px 8px rgba(0,0,0,0.8);
}
@keyframes bounce{
  0%,100%{transform:translateX(-50%) translateY(0);opacity:.6}
  50%{transform:translateX(-50%) translateY(-10px);opacity:1}
}

/* ═══════════════════════════════════════════════
   손글씨 섹션 (편지지 느낌)
═══════════════════════════════════════════════ */
.letter-section{
  min-height:100vh;
  padding:160px 24px 140px;
  position:relative;
  background:
    radial-gradient(ellipse at top, rgba(201,169,110,0.04) 0%, transparent 60%),
    radial-gradient(ellipse at bottom, rgba(201,169,110,0.03) 0%, transparent 70%),
    linear-gradient(180deg, #0d0d12 0%, #0a0a0c 50%, #0d0d12 100%);
  overflow:hidden;
}
.letter-section::before{
  content:'';position:absolute;inset:0;
  background-image:
    radial-gradient(1px 1px at 25% 30%, rgba(201,169,110,0.04), transparent),
    radial-gradient(1px 1px at 75% 60%, rgba(201,169,110,0.03), transparent),
    radial-gradient(1px 1px at 45% 80%, rgba(201,169,110,0.04), transparent),
    radial-gradient(1px 1px at 85% 15%, rgba(201,169,110,0.03), transparent);
  background-size:200px 200px,300px 300px,250px 250px,180px 180px;
  pointer-events:none;opacity:0.6;
}
.letter-inner{max-width:720px;margin:0 auto;position:relative;z-index:2}

.letter-header{text-align:center;margin-bottom:90px}
.section-num{
  font-family:'Ma Shan Zheng',serif;
  font-size:42px;color:var(--gold);
  letter-spacing:8px;margin-bottom:20px;opacity:0.85;
}
.section-divider{
  width:50px;height:1px;background:var(--gold);
  margin:0 auto 24px;opacity:0.5;
}
.section-subhead{
  font-family:'Nanum Myeongjo',serif;
  font-size:14px;color:var(--text-faded);
  letter-spacing:6px;font-weight:300;
}

.handwritten{
  font-family:'Nanum Pen Script', cursive;
  color:var(--ink-soft, #c9b8a0);
  color:var(--text-light);
  font-size:30px;line-height:2.2;letter-spacing:0.5px;
  text-align:center;
}
.handwritten p{margin-bottom:64px}
.handwritten .em{color:var(--gold);font-weight:400}

.quote-line{
  font-family:'Nanum Brush Script', cursive;
  font-size:42px !important;
  color:var(--gold) !important;
  line-height:1.6 !important;
  margin:90px 0 !important;
  letter-spacing:2px;
  padding:24px 0;position:relative;
}
.quote-line::before,.quote-line::after{
  content:'';position:absolute;left:50%;transform:translateX(-50%);
  width:60px;height:1px;background:var(--gold);opacity:0.4;
}
.quote-line::before{top:0}
.quote-line::after{bottom:0}

.letter-end{text-align:center;margin-top:80px}
.end-dots{
  font-family:'Nanum Pen Script', cursive;
  font-size:36px;color:var(--text-faded);
  letter-spacing:18px;
}

/* ═══════════════════════════════════════════════
   페이드인 애니메이션 (공통)
═══════════════════════════════════════════════ */
.fade-target{
  opacity:0;transform:translateY(30px);
  transition:opacity 1.4s ease-out, transform 1.4s ease-out;
}
.fade-target.visible{opacity:1;transform:translateY(0)}

/* ═══════════════════════════════════════════════
   About 섹션 (정성의 길)
═══════════════════════════════════════════════ */
.about{
  padding:120px 20px;background:var(--bg-soft);
  position:relative;overflow:hidden;
}
.about::before{
  content:'夢';position:absolute;
  font-family:'Ma Shan Zheng',serif;font-size:500px;
  color:var(--gold);opacity:0.025;
  top:-100px;right:-50px;line-height:1;
}
.about-content{max-width:760px;margin:0 auto;text-align:center;position:relative;z-index:1}

.section-tag{
  display:inline-block;color:var(--gold);
  font-size:13px;letter-spacing:8px;margin-bottom:20px;
}
.section-title{
  font-family:'Nanum Myeongjo',serif;
  font-size:42px;color:var(--paper);
  letter-spacing:12px;font-weight:700;
  margin-bottom:12px;
}
.section-subtitle{
  color:var(--text-mute);font-size:14px;
  letter-spacing:6px;margin-bottom:60px;
}

.about-text{font-size:17px;line-height:2.4;color:var(--text-light)}
.about-text p{margin-bottom:32px}
.about-text .em{color:var(--gold);font-weight:500}

.about-stamp{
  display:inline-block;margin-top:40px;
  padding:18px 24px;
  border:2px solid var(--red-stamp);
  font-family:'Ma Shan Zheng',serif;
  color:var(--red-stamp);font-size:22px;
  letter-spacing:6px;
  background:rgba(168,57,44,0.05);
}

/* ═══════════════════════════════════════════════
   메인 하단 추가 이미지 (어드민에서 슬롯 채움)
═══════════════════════════════════════════════ */
.extra-images{
  padding:100px 24px;
  background:var(--bg-deep);
}
.extra-images-inner{
  max-width:1200px;margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:20px;
}
.extra-image{
  position:relative;overflow:hidden;
  border:1px solid rgba(201,169,110,0.15);
  background:var(--bg-soft);
  aspect-ratio:4/5;
}
.extra-image img{
  width:100%;height:100%;
  object-fit:cover;display:block;
  transition:transform 1.2s ease;
}
.extra-image:hover img{transform:scale(1.05)}

@media(max-width:768px){
  .extra-images{padding:60px 16px}
  .extra-images-inner{grid-template-columns:1fr;gap:14px}
  .extra-image{aspect-ratio:5/4}
}

/* ═══════════════════════════════════════════════
   페이지 공통 (서브 페이지용)
═══════════════════════════════════════════════ */
.page{
  padding:160px 24px 100px;
  min-height:100vh;
  background:var(--bg-deep);
}
.page-inner{max-width:800px;margin:0 auto}

.page-header{text-align:center;margin-bottom:80px}
.page-tag{
  color:var(--gold);font-size:13px;
  letter-spacing:8px;margin-bottom:20px;
}
.page-title{
  font-family:'Nanum Myeongjo',serif;
  font-size:42px;color:var(--paper);
  letter-spacing:12px;font-weight:700;
  margin-bottom:12px;
}
.page-subtitle{
  color:var(--text-mute);font-size:14px;
  letter-spacing:6px;
}

/* ═══════════════════════════════════════════════
   버튼
═══════════════════════════════════════════════ */
.btn{
  display:inline-block;
  padding:16px 40px;
  font-size:15px;letter-spacing:3px;
  border:1px solid var(--gold);
  cursor:pointer;font-family:inherit;
  transition:all .3s;
}
.btn-primary{
  background:var(--gold);
  color:var(--bg-deep);
  font-weight:500;
}
.btn-primary:hover{
  background:var(--gold-soft);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(201,169,110,0.3);
}
.btn-secondary{
  background:transparent;color:var(--gold);
}
.btn-secondary:hover{
  background:rgba(201,169,110,0.1);
  transform:translateY(-2px);
}
.btn-block{display:block;width:100%;text-align:center}

/* 큰 CTA 버튼 (메인 액션) */
.btn-large{
  padding:22px 56px;
  font-size:17px;
  letter-spacing:4px;
}

/* ═══════════════════════════════════════════════
   안내 박스 (선기도 등 중요 정보)
═══════════════════════════════════════════════ */
.info-box{
  max-width:580px;
  margin:0 auto 40px;
  padding:36px 32px;
  background:var(--bg-soft);
  border:1px solid rgba(201,169,110,0.2);
  text-align:left;
}
.info-box-warn{
  border:1px solid var(--gold);
  background:linear-gradient(180deg, rgba(201,169,110,0.06) 0%, rgba(20,20,26,0.95) 100%);
}
.info-box-title{
  color:var(--gold);
  font-family:'Nanum Myeongjo', serif;
  font-size:16px;
  letter-spacing:5px;
  text-align:center;
  margin-bottom:24px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(201,169,110,0.2);
  font-weight:700;
}
.info-box p{
  color:var(--text-light);
  font-size:15px;
  line-height:2;
  margin-bottom:14px;
}
.info-box .em{color:var(--gold);font-weight:500}
.info-box .highlight{color:var(--paper);font-weight:600}
.info-box-note{
  margin-top:24px !important;
  padding-top:18px;
  border-top:1px solid rgba(201,169,110,0.15);
  font-size:13px !important;
  color:var(--text-faded) !important;
  line-height:1.9 !important;
}

/* ═══════════════════════════════════════════════
   폼 (비방 신청)
═══════════════════════════════════════════════ */
.form-section{
  padding:140px 24px 100px;
  background:var(--bg-deep);
  min-height:100vh;
}
.form-wrap{
  max-width:680px;margin:0 auto;
  background:var(--bg-soft);
  padding:60px 48px;
  border:1px solid rgba(201,169,110,0.15);
  border-radius:4px;
}

.form-group{margin-bottom:32px}
.form-group label{
  display:block;
  color:var(--paper);
  font-size:14px;letter-spacing:2px;
  margin-bottom:12px;font-weight:500;
}
.form-group .form-help{
  color:var(--text-faded);
  font-size:12px;margin-top:6px;
  letter-spacing:1px;
}

.form-control{
  width:100%;
  padding:14px 16px;
  background:var(--bg-deep);
  border:1px solid rgba(201,169,110,0.25);
  color:var(--paper);
  font-family:inherit;font-size:15px;
  transition:border-color .2s, background .2s;
}
.form-control:focus{
  outline:none;
  border-color:var(--gold);
  background:rgba(10,10,12,0.6);
}
textarea.form-control{
  resize:vertical;min-height:120px;
  line-height:1.7;
}
select.form-control{cursor:pointer}

.form-row{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;
}

.form-checkbox{
  display:flex;align-items:flex-start;gap:10px;
  margin-bottom:14px;cursor:pointer;
}
.form-checkbox input{
  margin-top:5px;width:16px;height:16px;
  accent-color:var(--gold);
}
.form-checkbox label{
  margin:0;color:var(--text-light);
  font-size:13px;letter-spacing:1px;
  font-weight:400;cursor:pointer;
}

.form-error{
  color:var(--error);font-size:12px;
  margin-top:6px;letter-spacing:0.5px;
}

.form-section-divider{
  border:0;border-top:1px solid rgba(201,169,110,0.15);
  margin:40px 0;
}
.form-section-title{
  color:var(--gold);
  font-size:13px;letter-spacing:6px;
  margin-bottom:24px;text-align:center;
}

.form-submit-wrap{margin-top:40px}

/* ═══════════════════════════════════════════════
   신청 완료 페이지
═══════════════════════════════════════════════ */
.success-section{
  padding:160px 24px 100px;min-height:100vh;
  background:var(--bg-deep);text-align:center;
}
.success-icon{
  font-family:'Ma Shan Zheng',serif;
  font-size:80px;color:var(--gold);
  margin-bottom:30px;
}
.success-title{
  font-family:'Nanum Myeongjo',serif;
  font-size:32px;color:var(--paper);
  letter-spacing:6px;margin-bottom:20px;
}
.success-subtitle{
  color:var(--text-mute);
  font-size:15px;letter-spacing:3px;
  margin-bottom:60px;
}
.success-info-box{
  max-width:520px;margin:0 auto 40px;
  padding:36px 30px;
  background:var(--bg-soft);
  border:1px solid rgba(201,169,110,0.2);
  text-align:left;
}
.success-info-box h3{
  color:var(--gold);
  font-size:13px;letter-spacing:4px;
  margin-bottom:16px;font-weight:500;
}
.success-info-box p{
  color:var(--text-light);
  font-size:15px;line-height:1.9;margin-bottom:8px;
}
.success-info-box .highlight{
  color:var(--paper);font-weight:500;
}

/* ═══════════════════════════════════════════════
   푸터
═══════════════════════════════════════════════ */
.footer{
  padding:60px 20px 40px;
  background:#050507;text-align:center;
  border-top:1px solid rgba(201,169,110,0.1);
}
.footer-logo{
  font-family:'Ma Shan Zheng',serif;
  font-size:32px;color:var(--gold);
  letter-spacing:8px;margin-bottom:12px;
}
.footer-tag{color:var(--text-mute);font-size:13px;letter-spacing:4px;margin-bottom:30px}
.footer-info{color:var(--text-mute);font-size:12px;line-height:2}
.footer-business{
  color:var(--text-faded);font-size:11px;line-height:1.9;
  margin-top:20px;padding-top:20px;
  border-top:1px solid rgba(201,169,110,0.08);
  max-width:680px;margin-left:auto;margin-right:auto;
  white-space:pre-wrap;
}

/* ═══════════════════════════════════════════════
   반응형
═══════════════════════════════════════════════ */
@media(max-width:768px){
  .nav{padding:14px 20px}
  .nav-menu{gap:18px}
  .nav-menu a{font-size:12px;letter-spacing:1px}

  .hanja-title{font-size:80px;letter-spacing:12px}
  .hangul-title{font-size:18px;letter-spacing:14px}
  .slogan{font-size:18px;letter-spacing:2px}
  .main-copy{font-size:15px}
  .hero-final{font-size:16px}
  .section-title,.page-title{font-size:30px;letter-spacing:6px}
  .about::before{font-size:300px}

  .letter-section{padding:100px 24px 80px}
  .section-num{font-size:34px;letter-spacing:5px}
  .section-subhead{font-size:12px;letter-spacing:4px}
  .handwritten{font-size:24px;line-height:2}
  .handwritten p{margin-bottom:44px}
  .quote-line{font-size:32px !important;margin:60px 0 !important}
  .letter-header{margin-bottom:60px}

  .form-wrap{padding:40px 24px}
  .form-row{grid-template-columns:1fr;gap:0}
}

@media(max-width:480px){
  .handwritten{font-size:22px}
  .quote-line{font-size:28px !important}
}
