        :root {
            --primary: #3d2b26;
            --accent: #bfa38a;
            --line: #eee;
            --max-width: 1200px;
            --header-h: 80px;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Noto Sans KR', sans-serif; color: #333; overflow-x: hidden; line-height: 1.6; }
        a { text-decoration: none; color: inherit; }

        /* [Header] */
        header { 
            position: fixed; top: 0; left: 0; width: 100%; 
            background: #fff; border-bottom: 1px solid var(--line); 
            z-index: 1000; height: var(--header-h);
        }
        
        .header-container {
            max-width: var(--max-width); margin: 0 auto; height: 100%;
            display: flex; align-items: center; justify-content: space-between; padding: 0 20px;
            position: relative;
        }

        /* 로고 공통 스타일 */
        .logo { 
            display: flex; flex-direction: column; justify-content: center; 
            font-size: 24px; font-weight: 900; color: var(--primary); 
            text-align: center; z-index: 1001;
        }
        .logo span { font-size: 8px; letter-spacing: 0.3em; font-weight: 400; text-align: center; }

        /* PC 네비게이션 (1024px 이상에서만 보임) */
        .pc-nav {
            display: grid;
            grid-template-columns: repeat(2, 1fr) 180px repeat(2, 1fr);
            width: 100%; align-items: center; text-align: center;
        }
        .nav-item { font-size: 14px; font-weight: 700; cursor: pointer; height: var(--header-h); line-height: var(--header-h); }
        .nav-item:hover { color: var(--accent); }


        /* [Mobile UI] */
        .mobile-header-only { display: none; width: 100%; justify-content: space-between; align-items: center; }
        .mobile-toggle { font-size: 28px; cursor: pointer; color: var(--primary); }

        .mobile-nav {
            position: fixed; top: var(--header-h); left: 100%; width: 100%; height: calc(100vh - var(--header-h));
            background: #fff; z-index: 999; transition: 0.4s ease; padding: 20px; overflow-y: auto;
        }
        .mobile-nav.active { left: 0; }
        .m-menu-item { border-bottom: 1px solid #eee; padding: 15px 0; font-weight: 700; font-size: 18px; }

        /* 반응형 쿼리 */
        @media (max-width: 1024px) {
            .pc-nav { display: none; } /* PC 전용 숨김 */
            .mobile-header-only { display: flex; } /* 모바일 로고+버튼 노출 */
        }

        /* [Main Content] */
        .hero { 
            width: 100%; height: 80vh; 
            background: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)), 
                        url('https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?q=80&w=2070&auto=format&fit=crop') center/cover; 
            display: flex; align-items: center; justify-content: center; color: #fff; text-align: center;
            margin-top: var(--header-h);
        }
        .hero h1 { font-size: clamp(2rem, 8vw, 3.5rem); font-weight: 900; }

        .franchise-banner { background: var(--primary); color: #fff; padding: 80px 20px; text-align: center; }
        .btn-consult { display: inline-block; padding: 15px 40px; border: 1px solid #fff; margin-top: 20px; color: #fff; }
        
        footer { background: #1a1a1a; color: #888; padding: 40px 20px; font-size: 13px; text-align: center; }

        .video-section{
  padding: 100px 20px;
  text-align: center;
}

.video-wrap{
  max-width: 1100px;
  margin: 0 auto;
}

.video-desc{
  margin-top: 14px;
  color: #666;
}

.video-grid{
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.video-card{
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  background: #111;
  box-shadow: 0 10px 30px rgba(0,0,0,0.12);
}

.video{
  width: 100%;
  aspect-ratio: 16 / 9;   /* 핵심 */
  height: auto;   
  object-fit: cover;
  disiplay: block;
  background: #000;
}

.video-card figcaption{
  padding: 12px 14px;
  font-size: 0.95rem;
  color: rgba(255,255,255,0.9);
  text-align: left;
  letter-spacing: 0.2px;
}

/* 반응형 */
@media (max-width: 960px){
  .video-grid{ grid-template-columns: 1fr; }
  .video{ height: 260px; }
}

/* 기본: 일반 섹션 */
.video-section{
  position: relative;
}

/* 전체화면 모드로 바뀔 때 */
.video-section.is-fullscreen{
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9999;
  background: #000;            /* 전체화면 배경 */
  padding: 24px 20px;
  overflow: auto;              /* 캡션/텍스트가 길면 스크롤 */
}

/* 전체화면 모드일 때 중앙 정렬 느낌 */
.video-section.is-fullscreen .video-wrap{
  max-width: 1200px;
  height: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* 전체화면 모드일 때 영상 크게 */
.video-section.is-fullscreen .video{
  height: min(56vh, 520px);
}

/* 전체화면 모드일 때 타이틀/설명 색 */
.video-section.is-fullscreen h2,
.video-section.is-fullscreen .video-desc{
  color: rgba(255,255,255,0.92);
}

/* fixed로 바뀌면 원래 문서 흐름이 당겨지니, placeholder로 자리 유지용 */
.video-ghost{
  display: none;
}
.video-ghost.is-on{
  display: block;
}

/* 기본은 숨김 */
.video-close{
  display: none;
  position: fixed;            /* fullscreen에서도 항상 우상단 */
  top: 16px;
  right: 16px;
  z-index: 10000;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.22);
  background: rgba(0,0,0,0.55);
  color: rgba(255,255,255,0.92);
  font-size: 20px;
  line-height: 44px;
  text-align: center;
  cursor: pointer;
  backdrop-filter: blur(8px);
}

.video-close:hover{
  background: rgba(0,0,0,0.75);
}

/* fullscreen일 때만 노출 */
.video-section.is-fullscreen .video-close{
  display: inline-block;
}
