﻿@charset "utf-8";
/* layout.css — 공통 레이아웃(헤더·푸터·서브비주얼) + 메인 페이지 */

#skipToContent a {z-index:100000;position:absolute;top:0;left:0;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden}
#skipToContent a:focus, 
#skipToContent a:active {width:200px;height:50px;background:#21272e;color:#fff;font-size: var(--font-size-14);font-weight:bold;text-align:center;text-decoration:none;line-height: 3.571em;outline-color:#f37736;}

.only-desktop {display:block;}
.only-desktop-tablet {display:block;}
.only-tablet-mobile {display:none;}
.only-tablet {display:none;}
.only-mobile {display:none;}

.contain {width:100%; max-width:var(--content-width); padding-left:var(--work-gutter); padding-right:var(--work-gutter); margin:0 auto; box-sizing:border-box;}


#header {position:fixed; top:0; left:0; z-index:100; width:100%; background:#fff; border-bottom:1px solid #ddd; z-index:100;}
#header .contain {position:relative; display:flex; align-items:center; justify-content:space-between; height:var(--header-height); z-index:10;}

.sitelogo {color:#242424; font-size:var(--font-size-32); font-weight:700; letter-spacing:-.03em; line-height:1.3em;}

#gnb {text-align:center; flex:1 1 auto; min-width:0; width:1%;}
#gnb>ul {display:flex; justify-content:flex-end;} 
#gnb>ul>li {position:relative; padding: 0 var(--space-45);}
#gnb>ul>li>a {position:relative; display:flex; align-items:center; flex-direction: column; justify-content:center; height:var(--header-height); color:#242424; font-size:var(--font-size-18); font-weight:600; letter-spacing:-.03em; line-height:1.3em;}
#gnb>ul>li.active>a {color:var(--color-primary);}
#gnb .submenu {position:absolute; left:0; width:100%; height:0; overflow:hidden; text-align:center;}
#gnb .submenu>ul {padding: var(--space-20) var(--space-10);}
#gnb .submenu>ul>li>a {display:block; padding: var(--space-10) 0; color:#454545; font-size:var(--font-size-16); line-height:1.33em;}
#gnb .submenu>ul>li>a:hover {text-decoration:underline;}
#gnb .submenu>ul>li.active>a {color:var(--color-section-bg);}
.submenu-bg {display:none; position:absolute; width:100%; left:0; background:#fff; border-top:1px solid #ddd; border-bottom:1px solid #eee;}

/* for mobile navigation */
.btn-m-menu {display:none; position:relative; width:24px; height:24px;}
.btn-m-menu div {display:flex; flex-direction:column; justify-content:center; align-items:flex-end; gap: var(--space-7); width:100%; height:100%;}
.btn-m-menu span {display:block; width:100%; height:2px; background:#121212;}

.mobile-navigation {display:none; position:fixed; top:0; right:0; width:365px; max-width: 90%; height:100%; overflow:auto; transition:.2s linear; -ms-transform:translateX(100%); transform:translateX(100%); background:#fff; z-index:1000;}
.mobile-navigation .home {display:flex; align-items:center; height:80px; padding: 0 var(--space-20); color:#242424; font-size:19px; font-weight:700; line-height:1.5em;}
.mobile-navigation .nav-menu>ul {border-top:1px solid #ddd;}
.mobile-navigation .nav-menu>ul>li {border-bottom:1px solid #ddd;}
.mobile-navigation .nav-menu>ul>li>a {position:relative; padding: 10px 48px 10px 20px; display:block; color:#242424; font-size:19px; font-weight:700; line-height:1.5em;}
.mobile-navigation .nav-menu>ul>li>a:after {content:""; position:absolute; top:50%; right:20px; transform:translateY(-75%) rotate(45deg); width:11px; height:11px; border-right:2px solid #505050; border-bottom:2px solid #505050;}
.mobile-navigation .nav-menu>ul>li.active>a {color:#fff; background:var(--color-accent)}
.mobile-navigation .nav-menu>ul>li.active>a:after {transform:translateY(-35%) rotate(-135deg); border-color:#fff;}
.mobile-navigation .nav-menu .submenu {display:none; background:#f8f8f8; color:#454545; font-size:16px; font-weight:400; line-height:1.5em;}
.mobile-navigation .nav-menu .submenu ul li {border-top:1px solid #e5e5e5;}
.mobile-navigation .nav-menu .submenu ul li a {display:block; padding: 12px 20px;}
.mobile-navigation .nav-menu .submenu ul li a:hover {color:var(--color-section-bg);}
.mobile-navigation .close {position:absolute; top:25px; right:15px; width:26px; height:26px; text-indent:-9999em; overflow:hidden;}
.mobile-navigation .close:before,
.mobile-navigation .close:after {content:" "; position:absolute; top:12px; left:0; width:100%; height:3px; background:#242424; border-radius:3px;}
.mobile-navigation .close:before {transform:rotate(45deg);}
.mobile-navigation .close:after {transform:rotate(-45deg);}
.mobile-overlay {display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:#000; opacity:0.6; z-index:101;}

html.menu-opened {overflow:hidden;}
html.menu-opened .mobile-navigation {-ms-transform:translateX(0); transform:translateX(0);}
html.menu-opened .mobile-overlay {display:block;}

/* main */
.main-section {padding: var(--space-100) 0;}
.main-section h2 {font-size:var(--font-size-40); font-weight:700; line-height:1.3em; letter-spacing:-.04em; text-align:center;}

.main-visual {height:50vh; background:#333; color:#fff;}

.main-about {background:#eee;}
.main-business {background:#fff;}
.main-contact {background:#cfd8eb;}

/* sub layout */
.sub-visual {display:flex; align-items:center; justify-content:center; margin-top: var(--space-100); width:100%; height:300px; background:#eee; text-align:center;}
.sub-visual h2 {font-size: var(--font-size-48); line-height:1.3em;}

.lnb-wrap {border-bottom:1px solid #ddd;}
.lnb {max-width:1200px; margin: 0 auto;}
.lnb ul {display:flex;}
.lnb ul li {flex:1; border-right:1px solid #ddd;}
.lnb ul li:first-child {border-left:1px solid #ddd;}
.lnb ul li a {display:flex; align-items:center; justify-content:center; width:100%; height:60px; background:#fff; text-align:center;}
.lnb ul li.active a {background:#333; color:#fff;}

#contArea {
  width: 100%;
  max-width: var(--content-width);
  margin: 0 auto;
  padding-left: var(--work-gutter);
  padding-right: var(--work-gutter);
  box-sizing: border-box;
}

#contArea.wide {
  max-width: 100%;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

#contArea.wide .contain {
  width: 100%;
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--work-gutter);
  padding-right: var(--work-gutter);
  box-sizing: border-box;
}

#wrapper.site #contArea.wide .contain {
  max-width: var(--content-width);
}

#contArea.wide .sub-title {
  padding-left: var(--work-gutter);
  padding-right: var(--work-gutter);
}

.sub-title {display: none;}

.real-cont {min-height:300px; padding-bottom: var(--space-120);}


/* footer */
#footer {padding: var(--space-30) 0; background:#242424; color:#fff; text-align:center;}
#footer .copyright {font-size: var(--font-size-14); font-weight:400; line-height:1.3em;}

/* --- common.css --- */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-ko);
  font-size: var(--font-size-16);
  line-height: 1.6em;
  letter-spacing: var(--letter-spacing);
  color: var(--color-body);
  background: #ddd9d2;
  overflow-x: hidden;
}

.site {
  width: 100%;
  max-width: var(--work-width);
  margin: 0 auto;
  background: var(--color-bg);
  position: relative;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: calc(-1 * var(--space-1));
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

ul, ol { margin: 0; padding: 0; list-style: none; }

h1, h2, h3, h4, h5, h6, p { margin: 0; }

.en {
  font-family: var(--font-en);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: calc(-1 * var(--space-1));
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.container {
  width: 100%;
  max-width: var(--content-width);
  margin: 0 auto;
  padding-left: 0;
  padding-right: 0;
}

.section-title {
  font-family: var(--font-en);
  font-size: var(--font-size-40);
  font-weight: 400;
  color: var(--color-title);
  text-transform: uppercase;
}

.section-eyebrow {
  font-size: var(--font-size-15);
  color: var(--color-accent);
  margin-bottom: var(--space-12);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--space-12) var(--space-28);
  font-family: var(--font-en);
  font-size: var(--font-size-13);
  text-transform: uppercase;
  transition: background var(--transition-base), color var(--transition-base), border-color var(--transition-base);
}

.btn--outline-white {
  border: 1px solid var(--color-white);
  color: var(--color-white);
  background: transparent;
}

.btn--outline-white:hover {
  background: var(--color-white);
  color: var(--color-title);
}

.btn--outline-dark {
  border: 1px solid var(--color-title);
  color: var(--color-title);
  background: transparent;
}

.btn--outline-dark:hover {
  background: var(--color-title);
  color: var(--color-white);
}

.btn--solid {
  background: var(--color-accent);
  color: var(--color-white);
  border: 1px solid var(--color-accent);
}

.btn--solid:hover {
  background: var(--color-accent-light);
  border-color: var(--color-accent-light);
}

/* Header */
.header {
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 1000;
  height: var(--header-height);
  background: var(--color-header-bg);
  overflow: visible;
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0;
}

.header__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
}

.header__logo img {
  display: block;
  width: auto;
  height: 38px;
  max-width: none;
  object-fit: contain;
  object-position: left center;
}

.header__logo:hover { opacity: 0.75; }

.gnb {
  display: flex;
  align-items: center;
  gap: var(--space-40);
}

.gnb__item {
  position: relative;
}

.gnb__link {
  display: block;
  padding: var(--space-8) var(--space-4);
  font-family: var(--font-en);
  font-size: var(--font-size-16);
  color: var(--color-title);
  transition: opacity var(--transition-base);
}

.gnb__link:hover { opacity: 0.65; }

.gnb__submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 180px;
  padding: var(--space-20) var(--space-24);
  background: var(--color-submenu-bg);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-base), visibility var(--transition-base);
  box-shadow: none;
}

.gnb__submenu::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 0;
  right: 0;
  height: 8px;
}

.gnb__item:hover .gnb__submenu,
.gnb__item:focus-within .gnb__submenu,
.gnb__item.is-open .gnb__submenu {
  opacity: 1;
  visibility: visible;
}

.gnb__submenu li + li { margin-top: var(--space-30); }

.gnb__submenu a {
  display: block;
  font-size: var(--font-size-15);
  color: var(--color-title);
  text-align: center;
  white-space: nowrap;
  transition: opacity var(--transition-base);
}

.gnb__submenu a:hover { opacity: 0.65; }

.header__menu-btn {
  display: none;
  flex-direction: column;
  gap: var(--space-6);
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
}

.header__menu-btn span {
  display: block;
  width: 22px;
  height: 1px;
  background: var(--color-title);
  transition: transform var(--transition-base), opacity var(--transition-base);
}

.header__menu-btn.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.header__menu-btn.is-active span:nth-child(2) { opacity: 0; }
.header__menu-btn.is-active span:nth-child(3) { transform: translateY(-3px) rotate(-45deg); }

/* Footer */
.footer {
  background: var(--color-title);
  color: rgba(255, 255, 255, 0.75);
  padding: var(--space-60) 0 var(--space-40);
}

.footer__top {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--space-40);
  padding-bottom: var(--space-40);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.footer__brand {
  display: block;
  width: auto;
  height: 32px;
  margin-bottom: var(--space-16);
  object-fit: contain;
  object-position: left center;
}

.footer__venues {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-24);
}

.footer__venue-name {
  font-size: var(--font-size-14);
  font-weight: 600;
  color: var(--color-white);
  margin-bottom: var(--space-8);
}

.footer__venue-info {
  font-size: var(--font-size-13);
  line-height: 1.7em;
}

.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-16);
  padding-top: var(--space-24);
  font-size: var(--font-size-13);
}

.footer__links {
  display: flex;
  gap: var(--space-20);
}

.footer__links a:hover { color: var(--color-white); }

.footer__inner {
  width: 100%;
  max-width: var(--content-width);
  margin: 0 auto;
  padding-left: 0;
  padding-right: 0;
}


/* --- main.css --- */
/* Main Visual — slogan key visual (Figma 1920×980) */
.main-visual {
  position: relative;
  width: 100%;
  max-width: var(--work-width);
  height: var(--hero-height);
  min-height: var(--hero-height);
  max-height: var(--hero-height);
  margin: calc(-1 * var(--header-height)) auto 0;
  overflow: hidden;
}

.main-visual__slider {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.main-visual__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s ease;
}

.main-visual__slide.is-active {
  opacity: 1;
  z-index: 1;
}

.main-visual__bg {
  position: absolute;
  inset: 0;
}

.main-visual__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.main-visual__dim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}

.main-visual__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  height: 100%;
  padding: 0 var(--space-40);
  text-align: center;
  pointer-events: none;
}

.main-visual__slogan {
  margin: 0;
  font-family: var(--font-en);
  font-size: var(--font-size-52);
  font-weight: 400;
  line-height: 1.35em;
  letter-spacing: 0.02em;
  color: var(--color-white);
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.main-visual__dots {
  position: absolute;
  bottom: 32px;
  left: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: var(--space-8);
  transform: translateX(-50%);
}

.main-visual__dot {
  width: 24px;
  height: 3px;
  padding: 0;
  border: none;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.45);
  transition: width var(--transition-base), background var(--transition-base);
}

.main-visual__dot.is-active {
  width: 40px;
  background: var(--color-white);
}

/* Hero — 4 panels (NOCE PLACE + 3 venues · Figma 1920×980) */
.hero {
  position: relative;
  width: 100%;
  max-width: 100%;
  height: var(--hero-height);
  max-height: calc(100vh - var(--header-height));
  margin: 0 auto;
  display: flex;
  overflow: hidden;
  background-color: #3a3530;
}

#wrapper.site #container > .hero:first-child {
  margin-top: 0;
}

.hero__panels {
  display: flex;
  width: 100%;
  height: 100%;
  background-color: #3a3530;
}

.hero-doors { position:absolute; inset:0; z-index:30; overflow:hidden; pointer-events:none; }
.hero-doors::after { content:""; position:absolute; top:0; bottom:0; left:50%; z-index:2; width:1px; background:rgba(255,232,208,.45); transform:translateX(-50%); animation:hero-door-fade 2.4s cubic-bezier(.45,0,.2,1) .55s forwards; }
.hero-doors__panel { position:absolute; top:0; z-index:1; width:calc(50% + 1px); height:100%; opacity:1; background-color:var(--color-accent); background-image:none; box-shadow:none; }
.hero-doors__panel--left { left:0; animation:hero-door-left 2.4s cubic-bezier(.76,0,.18,1) .55s forwards, hero-door-fade 2.4s cubic-bezier(.45,0,.2,1) .55s forwards; }
.hero-doors__panel--right { right:0; animation:hero-door-right 2.4s cubic-bezier(.76,0,.18,1) .55s forwards, hero-door-fade 2.4s cubic-bezier(.45,0,.2,1) .55s forwards; }
@keyframes hero-door-left { from { transform:translateX(0); } to { transform:translateX(-100%); } }
@keyframes hero-door-right { from { transform:translateX(0); } to { transform:translateX(100%); } }
@keyframes hero-door-fade { 0%, 24% { opacity:1; } 100% { opacity:0; } }
@keyframes door-chrome-rise {
  0% { opacity: 0; transform: translateY(14px); }
  100% { opacity: 1; transform: none; }
}
@keyframes door-chrome-fade {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
body#main.is-door-opening #gnb > ul,
body#main.is-door-opening .header__menu-btn {
  opacity: 0;
  pointer-events: none;
  animation: door-chrome-rise 1.2s cubic-bezier(.16, 1, .3, 1) 1.65s both;
}
body#main.is-door-opening .quick-menu {
  opacity: 0;
  animation: door-chrome-fade 1.2s cubic-bezier(.16, 1, .3, 1) 1.9s both;
}
body#main.is-door-opening .admin-popup {
  opacity: 0;
  animation: door-chrome-rise 1.25s cubic-bezier(.16, 1, .3, 1) 2.1s both;
}
@media (prefers-reduced-motion: reduce) {
  body#main.is-door-opening #gnb > ul,
  body#main.is-door-opening .header__menu-btn,
  body#main.is-door-opening .quick-menu,
  body#main.is-door-opening .admin-popup {
    animation: none !important;
    opacity: 1;
    visibility: visible;
  }
}

.hero.hero-section { height:calc(100svh - var(--header-height)); max-height:none; }
.hero-section__slides { position:relative; width:100%; height:100%; }
.hero-section__slide { position:absolute; inset:0; z-index:1; opacity:0; transition:opacity 1.3s ease, z-index 0s 1.3s; }
.hero-section__slide.is-active { z-index:2; opacity:1; transition:opacity 1.3s ease, z-index 0s; }
.hero-section__img { display:block; width:100%; height:100%; object-fit:cover; }
.hero-section__dim { position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,10,6,.16) 0%, rgba(18,10,6,.28) 48%, rgba(18,10,6,.52) 100%); }
.hero-section__copy { position:absolute; top:auto; bottom:0; left:50%; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:var(--space-20); width:100%; max-width:var(--content-width); margin-left:calc(min(100%, var(--content-width)) / -2); padding:0 var(--work-gutter) 72px; text-align:center; color:var(--color-white); opacity:0; animation:hero-copy-in 1.2s ease 1.15s forwards; box-sizing:border-box; }
.hero-section__title { font-family:var(--font-en), var(--font-ko); font-size:clamp(36px, 6.87vw, 80px); font-weight:400; line-height:1.06; letter-spacing:0.035em; color:var(--color-white); text-shadow:0 10px 36px rgba(0,0,0,.4); }
.hero-section__title::after { content:""; display:block; width:40px; height:1px; margin:22px auto 0; background:rgba(255,232,208,.8); }
.hero-section__text { max-width:640px; font-size:var(--font-size-20); font-weight:300; line-height:1.7; letter-spacing:0.06em; color:rgba(255,255,255,.9); }
.hero-section__scroll { position:absolute; left:50%; bottom:var(--space-28); z-index:20; display:flex; color:rgba(255,255,255,.82); opacity:0; animation:hero-scroll-in 1s ease 1.7s forwards; }
.hero-section__scroll svg { width:56px; height:36px; animation:hero-scroll-bob 2.4s ease-in-out infinite; }
@keyframes hero-scroll-bob { 0%, 100% { transform:translateY(0); } 50% { transform:translateY(6px); } }
@keyframes hero-copy-in { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@keyframes hero-scroll-in { from { opacity:0; transform:translate(-50%, 12px); } to { opacity:1; transform:translateX(-50%); } }

html:has(body#main) { scroll-snap-type:none; }
body#main #container > .hero-section, body#main #container > section.section:not(.fp-auto-height) { min-height:calc(100svh - var(--header-height)); scroll-snap-align:none; scroll-snap-stop:normal; }
body#main .hero-section.fp-section { padding-top:0 !important; }
body#main .main-tail.fp-section { padding-top:0 !important; }
body#main #container > .cta { height:auto; min-height:0; scroll-snap-align:none; scroll-snap-stop:normal; }
body#main #footer { height:auto; min-height:0; scroll-snap-align:end; scroll-snap-stop:normal; }

.venue-panel {
  position: relative;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  cursor: pointer;
  transition: flex var(--transition-slow);
  isolation: isolate;
}

.venue-panel + .venue-panel {
  margin-left: calc(-1 * var(--space-2));
}

.venue-panel.is-active,
.venue-panel:hover {
  flex: 2.8;
}

.venue-panel__media {
  position: absolute;
  inset: -2px;
  z-index: 0;
  background-color: #3a3530;
  overflow: hidden;
}

.venue-panel__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform var(--transition-slow);
  min-height: 100%;
  image-rendering: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.venue-panel__img.is-error {
  opacity: 0;
}

.venue-panel:not(.is-active):not(:hover) .venue-panel__img {
  transform: scale(1.06) translateZ(0);
}

.venue-panel.is-active .venue-panel__img,
.venue-panel:hover .venue-panel__img {
  transform: scale(1.03) translateZ(0);
}

.venue-panel[data-venue="weddingcity"]:not(.is-active):not(:hover) .venue-panel__img {
  object-position: 28% 52%;
}

.venue-panel__dim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.15);
  transition: background var(--transition-slow);
  pointer-events: none;
}

.venue-panel.is-active .venue-panel__dim,
.venue-panel:hover .venue-panel__dim {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.1) 45%, rgba(0, 0, 0, 0.05) 100%);
}

.venue-panel:not(.is-active):not(:hover) .venue-panel__dim {
  background: rgba(0, 0, 0, 0.25);
}

.hero:has(.venue-panel.is-active) .venue-panel:not(.is-active) .venue-panel__dim,
.hero:has(.venue-panel:hover) .venue-panel:not(:hover) .venue-panel__dim {
  background: rgba(0, 0, 0, 0.45);
}

.venue-panel__logo {
  position: absolute;
  top: 50%;
  left: 50%;
  bottom: auto;
  transform: translate(-50%, -50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 280px;
  padding: 0 var(--space-16);
  text-align: center;
  transition: opacity var(--transition-base);
  pointer-events: none;
}

.venue-panel__logo img { display:block; width:auto; height:88px; max-width:100%; object-fit:contain; filter:brightness(0) invert(1); }

.venue-panel__hover-logo img { display:block; width:auto; height:104px; max-width:100%; object-fit:contain; filter:brightness(0) invert(1); }

.venue-panel.is-active .venue-panel__logo,
.venue-panel:hover .venue-panel__logo {
  opacity: 0;
}

.venue-panel__logo-text {
  font-family: var(--font-en);
  font-size: var(--font-size-14);
  font-weight: 400;
  color: var(--color-white);
  white-space: nowrap;
}

.venue-panel__logo-text--bottega {
  font-size: var(--font-size-13);
}

.venue-panel__logo-text--wedding {
  font-family: var(--font-en);
  font-size: var(--font-size-16);
}

.venue-panel__logo-lockup { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; max-width:100%; }
.venue-panel__logo-text--noce { font-size:var(--font-size-32); font-weight:400; letter-spacing:0.08em; line-height:1; color:var(--color-white); filter:none; }
.venue-panel__logo-tagline { display:block; max-width:100%; font-family:var(--font-en); font-size:clamp(9px, 0.72vw, 12px); font-weight:400; letter-spacing:0.04em; line-height:1.35; color:var(--color-white); text-align:center; }
.venue-panel--noce .venue-panel__logo-mark, .venue-panel--noce .venue-panel__hover-logo .venue-panel__logo-mark { display:block; width:44px; height:44px; max-width:none; max-height:none; object-fit:contain; filter:brightness(0) invert(1); }

.venue-panel--noce .venue-panel__logo { max-width:min(520px, 92%); }
.venue-panel--noce .venue-panel__logo img:not(.venue-panel__logo-mark) { filter:none; width:auto; height:auto; max-height:clamp(56px, 5vw, 88px); max-width:100%; object-fit:contain; }
.venue-panel--noce .venue-panel__hover-logo { max-width:min(520px, 92%); }
.venue-panel--noce .venue-panel__hover-logo img:not(.venue-panel__logo-mark) { filter:none; width:auto; height:auto; max-height:80px; max-width:min(360px, 92%); object-fit:contain; }

.venue-panel__hover {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--space-48) var(--space-40);
  opacity: 0;
  transition: opacity var(--transition-base);
  pointer-events: none;
  background: transparent;
}

.venue-panel__hover-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 320px;
  padding: 0 var(--space-24);
  pointer-events: none;
}

.venue-panel.is-active .venue-panel__hover,
.venue-panel:hover .venue-panel__hover {
  opacity: 1;
  pointer-events: auto;
}

.venue-panel__hover-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  width: 100%;
  gap: var(--space-24);
}

.venue-panel__info { max-width: 420px; }

.venue-panel__name {
  font-family: var(--font-en);
  font-size: var(--font-size-36);
  font-weight: 400;
  color: var(--color-white);
  margin-bottom: var(--space-16);
  line-height: 1.6em;
}

.venue-panel__desc {
  font-size: var(--font-size-16);
  line-height: 1.75em;
  color: rgba(255, 255, 255, 0.9);
}

.venue-panel__link {
  flex-shrink: 0;
}

/* Brand Intro */
.brand-intro {
  min-height: var(--content-height);
  background: var(--color-section-bg);
  padding: var(--space-100) var(--work-gutter);
}

.brand-intro__inner {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  column-gap: var(--space-63);
  align-items: center;
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0;
}

.brand-intro__media {
  margin: 0;
  width: min(576px, 100%);
  aspect-ratio: 4 / 5;
  max-height: 720px;
  overflow: hidden;
}

.brand-intro__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.brand-intro__content {
  position: relative;
  padding: var(--space-20) 0;
}

.brand-intro__eyebrow {
  font-size: var(--font-size-16);
  color: var(--color-accent);
  margin-bottom: var(--space-20);
}

.brand-intro__title {
  font-family: var(--font-en);
  font-size: var(--font-size-44);
  font-weight: 400;
  line-height: 1.25em;
  color: var(--color-title);
  margin-bottom: var(--space-32);
}

.brand-intro__title span { display: block; }

.brand-intro__desc {
  font-size: var(--font-size-16);
  line-height: 1.85em;
  color: var(--color-body);
  max-width: 520px;
}

.brand-intro__cta {
  margin-top: var(--space-32);
  font-size: var(--font-size-15);
}

.brand-intro__watermark {
  position: absolute;
  right: -20px;
  bottom: -40px;
  font-family: var(--font-en);
  font-size: var(--font-size-120);
  color: rgba(36, 36, 36, 0.04);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}

/* Venue Detail */
.venue-detail { padding: 0; }

a.venue-detail__item {
  display: flex;
  color: inherit;
  text-decoration: none;
}

.venue-detail__item {
  position: relative;
  min-height: 560px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 var(--work-gutter);
  overflow: hidden;
}

.venue-detail__bg {
  position: absolute;
  inset: 0;
}

.venue-detail__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}

.venue-detail__bg img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.venue-detail__overlay {
  display: none;
}

.venue-detail__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--content-width);
  margin: 0 auto;
  padding: var(--space-80) 0;
  color: var(--color-white);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.venue-detail__label {
  font-family: var(--font-en);
  font-size: var(--font-size-13);
  opacity: 0.8;
  margin-bottom: var(--space-12);
}

.venue-detail__title {
  font-family: var(--font-en);
  font-size: var(--font-size-52);
  font-weight: 400;
  margin-bottom: var(--space-16);
}

.venue-detail__subtitle {
  font-size: var(--font-size-18);
  margin-bottom: var(--space-24);
  opacity: 0.9;
}

.venue-detail__text {
  font-size: var(--font-size-16);
  line-height: 1.8em;
  max-width: 480px;
  opacity: 0.85;
  margin-bottom: var(--space-32);
  margin-left: auto;
  margin-right: auto;
}

.venue-detail__content .btn {
  font-size: var(--font-size-16);
}

/* Halls */
.halls {
  padding: var(--space-120) 0;
  background: var(--color-bg);
}

.halls__header {
  text-align: center;
  margin-bottom: var(--space-48);
}

.halls__inner,
.notice__inner,
.facilities__inner {
  width: 100%;
  max-width: var(--work-width);
  margin: 0 auto;
  padding: 0 var(--work-gutter2);
  box-sizing: border-box;
}

.halls__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-24);
}

a.hall-card {
  display: block;
  color: inherit;
  text-decoration: none;
}

.hall-card {
  background: var(--color-white);
  overflow: hidden;
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.hall-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.hall-card__img {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.hall-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.hall-card:hover .hall-card__img img { transform: scale(1.05); }

.hall-card__body { padding: var(--space-24); }

.hall-card__venue {
  font-size: var(--font-size-15);
  color: var(--color-accent);
  margin-bottom: var(--space-6);
}

.hall-card__name {
  font-size: var(--font-size-20);
  font-weight: 600;
  color: var(--color-title);
  margin-bottom: var(--space-8);
}

.hall-card__meta {
  font-size: var(--font-size-14);
  color: var(--color-muted);
}

/* Menu */
.menu-section {
  padding: var(--space-120) 0;
  background: var(--color-section-bg);
}

.menu-section__header {
  text-align: center;
  margin-bottom: var(--space-40);
}

.menu-tabs {
  display: flex;
  justify-content: center;
  gap: var(--space-8);
  margin-bottom: var(--space-48);
  flex-wrap: wrap;
}

.menu-tabs__btn {
  padding: var(--space-12) var(--space-28);
  font-size: var(--font-size-14);
  color: var(--color-muted);
  border: 1px solid transparent;
  transition: all var(--transition-base);
}

.menu-tabs__btn.is-active,
.menu-tabs__btn:hover {
  color: var(--color-accent);
  border-color: var(--color-accent);
}

.menu-panel { display: none; }
.menu-panel.is-active { display: block; }

.menu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-32);
}

.menu-item__category {
  font-family: var(--font-en);
  font-size: var(--font-size-16);
  color: var(--color-accent);
  margin-bottom: var(--space-16);
  padding-bottom: var(--space-12);
  border-bottom: 1px solid var(--color-border);
}

.menu-item__list li {
  display: flex;
  justify-content: space-between;
  padding: var(--space-10) 0;
  font-size: var(--font-size-16);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.menu-item__list li span:last-child {
  color: var(--color-muted);
  font-size: var(--font-size-13);
}

.menu-section__cta {
  text-align: center;
  margin-top: var(--space-48);
}

/* Facilities */
.facilities {
  padding: var(--space-120) 0;
  background: var(--color-bg);
}

.facilities__header {
  text-align: center;
  margin-bottom: var(--space-48);
}

.facilities__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-24);
}

a.facility-card {
  display: block;
  color: inherit;
  text-decoration: none;
}

.facility-card {
  text-align: center;
  padding: var(--space-40) var(--space-24);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  transition: border-color var(--transition-base);
}

.facility-card:hover { border-color: var(--color-accent); }

.facility-card__icon {
  font-family: var(--font-en);
  font-size: var(--font-size-28);
  color: var(--color-accent);
  margin-bottom: var(--space-16);
}

.facility-card__name {
  font-size: var(--font-size-17);
  font-weight: 600;
  color: var(--color-title);
  margin-bottom: var(--space-8);
}

.facility-card__desc {
  font-size: var(--font-size-14);
  color: var(--color-muted);
  line-height: 1.6em;
}

/* Notice */
.notice {
  padding: var(--space-120) 0;
  background: var(--color-section-bg);
}

.notice .section-eyebrow {
  margin-bottom: var(--space-40);
}

.notice__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-48) var(--space-63);
}

.notice__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: var(--space-32);
}

.notice__header .section-title {
  margin-bottom: 0;
}

.notice__list { border-top: 1px solid var(--color-border); }

a.notice__item {
  color: inherit;
  text-decoration: none;
}

.notice__item {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  padding: var(--space-20) 0;
  border-bottom: 1px solid var(--color-border);
  transition: opacity var(--transition-base);
}

.notice__item:hover { opacity: 0.7; }

.notice__badge {
  flex-shrink: 0;
  padding: var(--space-4) var(--space-10);
  font-size: var(--font-size-11);
  font-weight: 600;
  color: var(--color-white);
  background: var(--color-accent);
}

.notice__title {
  flex: 1;
  font-size: var(--font-size-18);
  color: var(--color-title);
  overflow: hidden; white-space: normal; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-break: keep-all;

}

.notice__date {
  flex-shrink: 0;
  font-size: var(--font-size-14);
  color: var(--color-muted);
}

.notice__item:not(:has(.notice__badge)) {
  padding-left: var(--space-52);
}

/* CTA — venue-detail과 동일: img cover + 딤 (reveal transform은 본문만) */
.cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: var(--space-100);
  padding-bottom: var(--space-100);
  color: var(--color-white);
  text-align: center;
  overflow: hidden;
  isolation: isolate;
  box-sizing: border-box;
}

.cta__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: #3a3530;
}

.cta__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}

.cta__bg img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
}

.cta .container { position:relative; z-index:1; width:100%; max-width:var(--content-width); margin:0 auto; padding-left:var(--work-gutter); padding-right:var(--work-gutter); box-sizing:border-box; }

.cta__title {
  font-family: var(--font-en);
  font-size: var(--font-size-48);
  margin-bottom: var(--space-16);
  color: var(--color-white);
  line-height: 1.6em;
}

.cta__desc {
  font-size: var(--font-size-16);
  color: var(--color-white);
  opacity: 0.9;
  margin-bottom: var(--space-32);
}

.cta__form {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
}

.cta__buttons {
  display: flex;
  gap: var(--space-12);
  flex-wrap: wrap;
}

.cta__buttons .btn {
  font-size: var(--font-size-16);
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}


/* --- sub layout (page-head, venue-nav) --- */
/* Sub pages */
.sub-page {
  padding-top: 0;
}

.page-head {
  padding: var(--space-96) var(--work-gutter) var(--space-144);
  text-align: center;
  background: var(--color-bg);
}

.page-head__eyebrow {
  font-size: var(--font-size-14);
  color: var(--color-accent);
  margin-bottom: var(--space-12);
}

.page-head__title {
  font-family: var(--font-en);
  font-size: var(--font-size-72);
  line-height: 1.3em;
  font-weight: 400;
  color: var(--color-title);
  margin-bottom: var(--space-16);
}

.page-head__title:has(img) {
  font-size: 0;
  line-height: 0;
}

.page-head__logo {
  display: block;
  margin: 0 auto;
  height: clamp(44px, 5.2vw, 72px);
  width: auto;
  max-width: min(720px, 92%);
  object-fit: contain;
}

.page-head__desc {
  font-size: var(--font-size-16);
  line-height: 1.75em;
  color: var(--color-body);
}

.board__tabs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-8);
  margin-top: var(--space-32);
}

.board__tab {
  padding: var(--space-12) var(--space-28);
  font-size: var(--font-size-18);
  color: #454545;
  border: 1px solid transparent;
  transition: color var(--transition-base), border-color var(--transition-base);
}

.board__tab.active,
.board__tab.is-active,
.board__tab:hover {
  color: var(--color-accent);
  border-color: var(--color-accent);
}

/* Venue — page-head 2depth tabs + 3depth LNB */
.venue-nav {
  margin-top: var(--space-32);
}

.venue-intro { max-width:760px; margin:var(--space-48) auto 0; text-align:center; }
.venue-intro__title { margin:0 0 var(--space-14); font-size:clamp(20px, 1.8vw, 26px); font-weight:600; line-height:1.45; letter-spacing:-0.03em; color:var(--color-title); }
.venue-intro__desc { margin:0; font-size:var(--font-size-15); line-height:1.75; color:var(--color-muted); }
.venue-nav__depth3 { margin-top:36px; margin-left:calc(-1 * var(--work-gutter)); margin-right:calc(-1 * var(--work-gutter)); padding:0 var(--work-gutter); border-top:1px solid var(--color-accent); border-bottom:1px solid var(--color-accent); background:#fff; }

.venue-nav__depth3-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: calc(-1 * var(--space-1));
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.venue-lnb { width:100%; margin:0; padding:0; border-bottom:none; }
.venue-lnb .swiper { width:100%; overflow:hidden; }
.venue-lnb .swiper-wrapper { align-items:stretch; width: max-content; margin: 0 auto;}
.venue-lnb .swiper-slide { width:auto; height:auto; flex-shrink:0; }
.venue-lnb__link { display:inline-flex; align-items:center; justify-content:center; min-height:68px; padding:var(--space-16) var(--space-20); margin:0; font-size:var(--font-size-18); font-weight:600; letter-spacing:-0.03em; line-height:1.3; color:#242424; border:none; background:transparent; border-bottom:4px solid transparent; border-radius:0; box-sizing:border-box; transition:color var(--transition-base), background-color var(--transition-base), border-color var(--transition-base); }
.venue-lnb__link.active { color:var(--color-accent); background:color-mix(in srgb, var(--color-accent) 10%, #fff); border-bottom-color:var(--color-accent); }
.venue-lnb__link:hover { color:var(--color-accent); }
.venue-lnb__link.active:hover { color:var(--color-accent); }



/* --- site shell (header, footer, sub gutter) --- */

#wrapper.site {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  background: var(--color-bg);
  position: relative;
}

/* brand-intro — 기존 시안(Figma) 상·하 60~100px · 좌우 work-gutter */
#wrapper.site #container .brand-intro {
  min-height: var(--content-height);
  padding-top: var(--space-100);
  padding-bottom: var(--space-100);
  padding-left: var(--work-gutter);
  padding-right: var(--work-gutter);
  box-sizing: border-box;
}

#header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--header-height);
  background: var(--color-header-bg);
  border-bottom: none;
  overflow: visible;
}

/* layout.css 레거시 — 호버 시 전폭 흰색 바(submenu-bg) 제거 (site.css 드롭다운 사용) */
#header .submenu-bg {
  display: none !important;
  height: 0 !important;
  border: none !important;
  background: transparent !important;
}

#header .contain {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  max-width: var(--work-width);
  height: var(--header-height);
  margin: 0 auto;
  padding-left: var(--work-gutter);
  padding-right: var(--work-gutter);
  box-sizing: border-box;
}

#wrapper.site #header .sitelogo {
  flex: 0 0 auto;
}

#wrapper.site #header #gnb.gnb {
  flex: 1 1 auto;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  min-width: 0;
  width: auto;
  text-align: right;
}

#header .sitelogo a,
#header .sitelogo .sitelogo__link {
  display: flex;
  align-items: center;
  line-height: 1.3em;
  text-decoration: none;
}

#header .sitelogo .sitelogo__link { font-family:var(--font-en); font-size:var(--font-size-18); font-weight:400; letter-spacing:0; color:#fff; white-space:nowrap; gap:10px; }
.sitelogo__mark { display:none; width:50px; height:50px; flex:0 0 50px; object-fit:contain; }
#header .sitelogo .sitelogo__img,
.mobile-navigation .home .sitelogo__img {
  display: block;
  height: 46px;
  width: auto;
  max-width: min(260px, 72vw);
  object-fit: contain;
}
.footer__brand-img {
  display: block;
  height: 36px;
  width: auto;
  max-width: 250px;
  object-fit: contain;
}
.sitelogo__text { display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; }
.sitelogo__tagline { display:block; font-family:var(--font-en); font-size:10px; font-weight:400; letter-spacing:0.025em; line-height:1.2; color:var(--color-title); white-space:nowrap; }
#header .sitelogo__tagline { color:#fff; }
#header .sitelogo .sitelogo__word, .mobile-navigation .home .sitelogo__word { display:block; font-family:var(--font-en); font-size:var(--font-size-30); font-weight:400; letter-spacing:0.12em; color:var(--color-title); line-height:1; white-space:nowrap; }
#header .sitelogo .sitelogo__word { color:#fff; }
.mobile-navigation .home .sitelogo__link { display:flex; align-items:center; gap:10px; text-decoration:none; }
.footer__brand--word { display:flex; align-items:center; gap:12px; width:max-content; max-width:100%; height:auto; margin-bottom:var(--space-16); font-family:var(--font-en); font-size:var(--font-size-30); font-weight:400; letter-spacing:0.14em; line-height:1.3em; color:#fff; }
#wrapper.site #footer.footer .footer__top > div:first-child { display:flex; flex-direction:column; align-items:flex-start; width:max-content; max-width:100%; }
#wrapper.site #footer.footer .footer__tagline { width:0; min-width:100%; margin:0; line-height:1.3; white-space:nowrap; font-size:calc(var(--font-size-30) * 0.505); letter-spacing:0; }
.footer__mark { display:none; width:36px; height:36px; flex:0 0 36px; object-fit:contain; filter:brightness(0) invert(1); }

/* 우측 고정 퀵메뉴 — 직각 · 기본 아이콘 · 호버 시 좌측으로 문구 확장 */
.quick-menu {
  position: fixed;
  top: 50%;
  right: var(--work-gutter);
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--space-8);
  transform: translateY(-50%);
  pointer-events: none;
  border: none;
  background: transparent;
}

.quick-menu__item {
  pointer-events: auto;
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 64px;
  height: 64px;
  padding: 0;
  margin: 0;
  border: 1px solid var(--color-border);
  border-radius: 0;
  background: var(--color-white);
  box-shadow: none;
  font-family: var(--font-ko);
  font-size: var(--font-size-13);
  font-weight: 500;
  line-height: 1.2em;
  letter-spacing: -0.02em;
  color: var(--color-title);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  overflow: hidden;
  transition:
    width var(--transition-base),
    padding var(--transition-base),
    gap var(--transition-base),
    background var(--transition-base),
    color var(--transition-base),
    border-color var(--transition-base);
}

.quick-menu__item--inquiry, .quick-menu__item--sns { background:var(--color-accent); border-color:var(--color-accent); color:var(--color-white); }

.quick-menu__item--inquiry:hover, .quick-menu__item--inquiry:focus-visible, .quick-menu__item--sns:hover, .quick-menu__item--sns:focus-visible { background:var(--color-accent-light); border-color:var(--color-accent-light); color:var(--color-white); }

.quick-menu__item--chat {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-white);
}

.quick-menu__item--chat:hover,
.quick-menu__item--chat:focus-visible {
  background: var(--color-accent-light);
  border-color: var(--color-accent-light);
  color: var(--color-white);
}

.quick-menu__item:hover,
.quick-menu__item:focus-visible {
  width: auto;
  justify-content: flex-start;
  gap: var(--space-10);
  padding: 0 var(--space-18) 0 var(--space-16);
  font-size: var(--font-size-15);
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-white);
}

.quick-menu__icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  line-height: 0;
  color: inherit;
}

.quick-menu__item:hover .quick-menu__icon,
.quick-menu__item:focus-visible .quick-menu__icon {
  width: auto;
  height: auto;
}

.quick-menu__icon svg {
  display: block;
  width: 28px;
  height: auto;
  max-height: 28px;
}

.quick-menu__icon svg.quick-menu__icon-chat {
  width: 24px;
  height: 38px;
  max-height: none;
}

.quick-menu__label {
  display: block;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  font-size: inherit;
  transition: max-width var(--transition-base), opacity 0.2s ease;
}

.quick-menu__item:hover .quick-menu__label,
.quick-menu__item:focus-visible .quick-menu__label {
  max-width: 12em;
  opacity: 1;
  font-size: var(--font-size-15);
}

#header .btn-m-menu {
  display: none;
}

#wrapper.site #gnb > ul {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-40);
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

#gnb > ul > li {
  position: relative;
  padding: 0;
}

#gnb > ul > li > a {
  display: block;
  padding: var(--space-8) var(--space-4);
  height: auto;
  font-family: var(--font-en);
  font-size: var(--font-size-17);
  font-weight: 400;
  color: #fff;
  flex-direction: row;
}

#gnb > ul > li > a:hover {
  opacity: 0.65;
  text-decoration: none;
}

#gnb .submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  min-width: 180px;
  max-width: min(92vw, 420px);
  height: auto;
  overflow: visible;
  padding: var(--space-20) var(--space-24);
  background: var(--color-submenu-bg);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-base), visibility var(--transition-base);
  box-shadow: none;
  text-align: left;
}

#gnb .submenu a,
#gnb .submenu .submenu__heading {
  white-space: nowrap;
}

#gnb .submenu::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 0;
  right: 0;
  height: 8px;
}

#gnb > ul > li:hover .submenu,
#gnb > ul > li:focus-within .submenu,
#gnb > ul > li.is-open .submenu {
  opacity: 1;
  visibility: visible;
}

#gnb .submenu > ul > li + li {
  margin-top: var(--space-30);
}

#gnb .submenu--venue {
  min-width: 240px;
  max-width: min(92vw, 480px);
}

#gnb .submenu--venue > ul > li + li {
  margin-top: var(--space-34);
}

#gnb .submenu__heading {
  display: block;
  margin-bottom: var(--space-8);
  font-size: var(--font-size-15);
  font-weight: 600;
  color: var(--color-title);
  letter-spacing: -0.02em;
}

#gnb .submenu__depth {
  margin: 0;
  padding: 0;
  list-style: none;
}

#gnb .submenu__depth > li + li {
  margin-top: var(--space-22);
}

#gnb .submenu__depth a {
  display: block;
  font-size: var(--font-size-15);
  color: var(--color-body);
  line-height: 1.45em;
}

#gnb .submenu__depth a:hover {
  color: var(--color-accent);
}

#gnb .submenu__solo > a {
  display: block;
  font-size: var(--font-size-15);
  font-weight: 600;
  color: var(--color-title);
}

#gnb .submenu > ul > li > a {
  display: block;
  padding: 0;
  font-size: var(--font-size-15);
  color: var(--color-body);
}

#gnb .submenu > ul > li > a.is-current,
#gnb .submenu > ul > li.active > a {
  color: var(--color-accent);
  font-weight: 600;
}

#header .header__menu-btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-6);
  width: 44px;
  height: 44px;
  padding: 0;
  margin-left: auto;
}

#header .header__menu-btn span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  transition: transform var(--transition-base), opacity var(--transition-base);
}


/* WJ 푸터 — layout.css #footer(중앙·단순형) 덮어쓰기 · 기존 시안과 동일 */
#wrapper.site #footer.footer {
  padding: var(--space-60) 0 var(--space-40);
  background: var(--color-title);
  color: rgba(255, 255, 255, 0.75);
  text-align: left;
}

#wrapper.site #footer.footer .footer__inner {
  width: 100%;
  max-width: var(--content-width);
  margin: 0 auto;
  padding-left: var(--work-gutter);
  padding-right: var(--work-gutter);
  box-sizing: border-box;
}

#wrapper.site #footer.footer .footer__bottom p {
  margin: 0;
  font-size: var(--font-size-13);
  color: rgba(255, 255, 255, 0.75);
}
#wrapper.site #footer.footer .footer__bottom p span {display: inline-block;}
#wrapper.site #footer.footer .footer__bottom p span:after {
  content: '·'; margin: 0 4px;
}

#wrapper.site #footer.footer .design-credit {
  color: inherit;
  font-size: inherit;
  text-decoration: none;
}

#wrapper.site #footer.footer .design-credit:hover {
  color: var(--color-white);
}

/* Sub pages — header · page-head · board horizontal gutter 통일 (Figma 1920 / 1680) */
#wrapper.site .sub-page .page-head,
#wrapper.site .sub-page .gallery,
#wrapper.site .sub-page .board,
#wrapper.site .sub-page .board-view {
  padding-left: var(--work-gutter);
  padding-right: var(--work-gutter);
  box-sizing: border-box;
}

#wrapper.site .sub-page .page-head {
  padding-top: var(--space-104);
  padding-bottom: var(--space-144);
}

/* Venue 홀 — 3depth LNB ↔ ed-hero__cap (일반 page-head 하단 −100px) */
#wrapper.site .sub-page .page-head:has(+ .ed-hero--cap-first) {
  padding-bottom: var(--space-45);
}

/* Venue 행사대관 — 3depth LNB 하단 ↔ ed-section-title 상단 100px */
#wrapper.site .sub-page .page-head:has(+ .ed-body) {
  padding-bottom: var(--space-45);
}

#wrapper.site .sub-page .page-head:has(.venue-nav__depth3):has(+ .ed-body) .venue-nav__depth3 {
  padding-bottom: 0;
}

#wrapper.site .sub-page .page-head:has(.venue-nav__depth3):has(+ .ed-body) {
  padding-bottom: var(--space-100);
}

#wrapper.site .sub-page .page-head__title,
#wrapper.site .sub-page .page-head__desc,
#wrapper.site .sub-page .board__tabs {
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
}

#wrapper.site .sub-page .board__inner,
#wrapper.site .sub-page .gallery__inner,
#wrapper.site .sub-page .board-view__inner {
  width: 100%;
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
}

/* 서브 본문 ↔ 푸터 간격 — .real-cont padding-bottom 단일 적용 */
#wrapper.site .sub-page section.board,
#wrapper.site .sub-page section.gallery,
#wrapper.site .sub-page article.board-view,
#wrapper.site .sub-page section.board-view {
  padding-bottom: 0;
}

.brand-points { --frame-size:10px; --frame-right:var(--work-gutter); --frame-left:var(--frame-right); --frame-top:calc(var(--header-height) + var(--space-100)); position:relative; isolation:isolate; display:flex; align-items:flex-start; justify-content:flex-start; padding-right:var(--frame-right); padding-left:var(--frame-left); background-color:var(--color-bg); color:var(--color-title); max-width: 1800px; margin: 0 auto;}
.brand-points::before { content:""; position:absolute; z-index:-1; top:var(--frame-top); right:calc(var(--frame-right) * 2); bottom:0; left:calc(var(--frame-left) + 400px); border-top:var(--frame-size) solid var(--color-accent); border-right:var(--frame-size) solid var(--color-accent); pointer-events:none; }
.brand-points::after { content:""; position:absolute; z-index:-1; left:calc(var(--frame-left) * 2); bottom:0; width:var(--frame-size); height:calc(100% - var(--frame-top) - clamp(100px, calc(360 / var(--inner) * 100vw), 360px)); background:var(--color-accent); pointer-events:none; }
.brand-points__inner { display:flex; align-items:flex-start; gap:clamp(24px, 3vw, 64px); width:100%; margin:0 auto; padding:0 0 40px; box-sizing:border-box; }
.brand-points__head { flex:0 0 min(360px, 34%); text-align:left; }
.brand-points__eyebrow { margin-bottom:var(--space-20); font-size:var(--font-size-18); font-weight:400; line-height:1.55; letter-spacing:-0.02em; color:var(--color-accent); }
.brand-points__title { margin:0; font-size:clamp(26px, 4.2vw, 58px); font-weight:400; line-height:1.2; letter-spacing:-0.04em; color:var(--color-accent); }
@media (min-width: 1025px) {
  .brand-points__head { flex-basis: min(500px, 38%); }
}
.brand-points__list { position:absolute; top:calc(58% + var(--header-height) / 2); left:50%; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:var(--space-16); width:min(1200px, calc(100% - 2 * (var(--frame-right) + var(--work-gutter)))); max-width:var(--content-width); margin:0; text-align:center; transform:translate(-50%, -50%); padding: 0 var(--cont-gutter);}
.brand-points__item { padding:0; border:0; }
.brand-points__icon { display:flex; align-items:center; justify-content:center; width:170px; aspect-ratio: 1/1; margin:0 auto var(--space-16); color:var(--color-accent); }
.brand-points__icon svg { width:100%; height:100%; }
.brand-points__icon img { display:block; width:100%; height:100%; object-fit:contain; }
.brand-points__name { margin-bottom:var(--space-8); font-size:var(--font-size-30); line-height: 1.5em; font-weight:600; color:var(--color-accent); }
.brand-points__desc { font-size:var(--font-size-16); line-height:1.65; color:var(--color-accent-soft); }

.feature-slide {position: relative; z-index: 1; --frame-size:10px; --frame-right:var(--work-gutter); --frame-left:var(--frame-right); --frame-bottom:clamp(28px, 4vh, 52px); position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; padding-right:var(--frame-right); padding-left:var(--frame-left); background-color:var(--color-bg); box-sizing:border-box; max-width: 1800px; margin: 0 auto;}
.feature-slide::before { content:""; position:absolute; z-index:-1; top:0; right:calc(var(--frame-right) * 2); bottom:var(--frame-bottom); left:calc(var(--frame-left) * 2); border-right:var(--frame-size) solid var(--color-accent); border-bottom:var(--frame-size) solid var(--color-accent); border-left:var(--frame-size) solid var(--color-accent); pointer-events:none; }
.feature-slide__frame { display:flex; flex-direction:row-reverse; align-items:center; width:100%; max-width:var(--content-width); margin:0 auto; padding:0 var(--work-gutter2) var(--frame-bottom); border:0; background:transparent; box-sizing:border-box; }
.feature-slide__items { position:relative; display:grid; grid-template-columns:minmax(0, 1fr) min(36.46vw, calc(100svh - var(--header-height) - 180px)); grid-template-rows:auto auto; align-items:center; column-gap:clamp(24px, 3vw, 56px); row-gap:0; width:100%; flex:1; min-width:0; }
.feature-slide__item { position:absolute; inset:0; z-index:0; display:grid; grid-template-columns:minmax(0, 1fr) min(36.46vw, calc(100svh - var(--header-height) - 180px)); align-items:center; column-gap:clamp(24px, 3vw, 56px); width:100%; opacity:0; transition:opacity 1.4s ease; pointer-events:none; }
.feature-slide__item.is-active { position:relative; z-index:1; grid-column:1 / -1; grid-row:1; opacity:1; pointer-events:auto; }
.feature-slide__item.is-leaving { opacity:0; }
.feature-slide__item.is-reset { transition:none; }
.feature-slide__photo { position:relative; grid-column:2; grid-row:1; flex:0 0 auto; width:min(36.46vw, calc(100svh - var(--header-height) - 180px)); height: auto; aspect-ratio: 3/2; margin:0; overflow:hidden; background:#2a2420; }
.feature-slide__photo img { display:block; width:100%; height:100%; object-fit:cover; }
.feature-slide__copy {display:flex; grid-column:1; grid-row:1; flex-direction:column; align-items:flex-end; justify-content:center; min-width:0; padding:0 clamp(24px, 3vw, 56px) 0 0; text-align:right; opacity:0; transform:translateY(48px); transition:opacity 1.4s cubic-bezier(.65,0,.35,1), transform 1.4s cubic-bezier(.65,0,.35,1); }
.feature-slide__item.is-active .feature-slide__copy { opacity:1; transform:translateY(0); }
.feature-slide__item.is-leaving .feature-slide__copy { opacity:0; transform:translateY(-48px); }
.feature-slide__item.is-reset .feature-slide__copy { transition:none; }
.feature-slide__title { font-size:var(--font-size-40); font-weight:500; line-height:1.22; letter-spacing:-0.04em; color:var(--color-title); }
.feature-slide__text { max-width:550px; margin:var(--space-24) 0 0; font-size:var(--font-size-16); font-weight:400; line-height:1.65; letter-spacing:-0.02em; color:var(--color-muted); }
.feature-slide__dots { display:flex; grid-column:1; grid-row:2; justify-content:flex-end; gap:12px; margin-top:var(--space-28); padding-right:clamp(24px, 3vw, 56px); }
.feature-slide__dot { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:color-mix(in srgb, var(--color-accent) 28%, transparent); cursor:pointer; }
.feature-slide__dot.is-active { background:var(--color-accent); }
.feature-slide__item { opacity:1; transition:none; }
.feature-slide__item.is-leaving { z-index:3; opacity:1; top:0; right:0; bottom:auto; left:0; height:auto; }
.feature-slide__dots { position:relative; z-index:4; }
.feature-slide__item.is-leaving .feature-slide__photo { opacity:0; transition:opacity 1.4s cubic-bezier(.455,.03,.515,.955); }
.feature-slide__item.is-reset .feature-slide__photo { transition:none; }
.feature-slide__photo { clip-path:inset(0 0 0 0); }
.feature-slide:not(.is-in) .feature-slide__item.is-active .feature-slide__photo { clip-path:inset(0 100% 0 0); }
.feature-slide__item:not(.is-active):not(.is-leaving) .feature-slide__photo { opacity:0; }
.feature-slide__item.is-active .feature-slide__photo { transition:clip-path 1.2s cubic-bezier(.645,.045,.355,1), opacity 1.4s cubic-bezier(.455,.03,.515,.955); }
.feature-slide__item.is-active.is-reset .feature-slide__photo { opacity:1; transition:none; }
.feature-slide.is-in .feature-slide__photo { clip-path:inset(0 0 0 0); }
.feature-slide.is-in .feature-slide__item.is-leaving .feature-slide__photo { opacity:0; }
.feature-slide__copy { transform:translateY(60px); transition:opacity 1.2s cubic-bezier(.645,.045,.355,1), transform 1.2s cubic-bezier(.645,.045,.355,1); }
.feature-slide__item.is-reset .feature-slide__copy { transition:opacity 1.2s cubic-bezier(.645,.045,.355,1), transform 1.2s cubic-bezier(.645,.045,.355,1); }
.feature-slide__item.is-active .feature-slide__copy { transition:opacity 1.2s cubic-bezier(.645,.045,.355,1), transform 1.2s cubic-bezier(.645,.045,.355,1); }
.feature-slide__item.is-active.is-out .feature-slide__copy { transition:opacity .4s cubic-bezier(.2,0,.2,1), transform .7s cubic-bezier(.33,0,.2,1); }
.feature-slide__item.is-leaving .feature-slide__copy { opacity:0; transform:translateY(-60px); transition:opacity .4s cubic-bezier(.2,0,.2,1), transform .7s cubic-bezier(.33,0,.2,1); }
@media (prefers-reduced-motion: reduce) {
  .feature-slide:not(.is-in) .feature-slide__item.is-active .feature-slide__photo { clip-path:inset(0 0 0 0); }
  .feature-slide.is-in .feature-slide__photo { transition:none; }
  .feature-slide.is-in .feature-slide__item.is-leaving .feature-slide__photo { transition:none; }
  .feature-slide__item.is-active .feature-slide__photo { transition:none; }
  .feature-slide__item.is-leaving .feature-slide__photo { transition:none; }
  .feature-slide__copy { transition:none; }
  .feature-slide__item.is-active .feature-slide__copy { transition:none; }
  .feature-slide__item.is-active.is-out .feature-slide__copy { transition:none; }
  .feature-slide__item.is-reset .feature-slide__copy { transition:none; }
}

.venue-showcase { height:calc(100svh - var(--header-height)); overflow:hidden; }
.venue-showcase .hero__panels { height:100%; }
.venue-showcase .venue-panel__logo img { height:72px; }
.venue-showcase .venue-panel__hover-logo img { height:84px; }
.venue-showcase:has(.venue-panel.is-active) .venue-panel:not(.is-active) .venue-panel__dim, .venue-showcase:has(.venue-panel:hover) .venue-panel:not(:hover) .venue-panel__dim { background:rgba(0,0,0,.45); }

.occasion { --occasion-line:color-mix(in srgb, var(--color-muted) 28%, var(--color-bg)); display:flex; align-items:center; padding:var(--space-48) 0; background:var(--color-bg); }
.occasion__inner { width:100%; max-width:1500px; margin:0 auto; padding-left:var(--work-gutter); padding-right:var(--work-gutter); box-sizing:border-box; }
.occasion__eyebrow { margin-bottom:var(--space-12); font-family:var(--font-en); font-size:var(--font-size-14); font-weight:500; letter-spacing:0.14em; color:var(--color-accent); }
.occasion__title { margin-bottom:var(--space-60); font-size:clamp(28px, 4.58vw, 64px); font-weight:300; line-height:1.36; letter-spacing:-0.04em; color:var(--color-accent); }
.occasion__list { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:0; margin:0; border-top:1px solid var(--occasion-line); border-bottom:1px solid var(--occasion-line); text-align:center; }
.occasion__item { min-height:0; padding:var(--space-80) 16px; background:transparent; border:0; border-left:1px solid var(--occasion-line); }
.occasion__item:last-child { border-right:1px solid var(--occasion-line); }
.occasion__icon { display:flex; align-items:center; justify-content:center; width:36px; height:36px; margin:0 auto var(--space-20); color:var(--color-title); }
.occasion__icon img { width:36px; height:36px; object-fit:contain; display:block; }
.occasion__name { margin-bottom:10px; font-size:var(--font-size-28); line-height: 1.3em; font-weight:600; color:var(--color-title); }
.occasion__desc { font-size:var(--font-size-14); line-height:1.55; color:var(--color-muted); }

.need { display:flex; align-items:center; padding:var(--space-48) 0; background:var(--color-section-bg); }
.need__inner { width:100%; max-width:1500px; margin:0 auto; padding-left:var(--work-gutter); padding-right:var(--work-gutter); box-sizing:border-box; }
.need__eyebrow { margin-bottom:var(--space-12); font-family:var(--font-en); font-size:var(--font-size-14); font-weight:500; letter-spacing:0.14em; color:var(--color-accent); }
.need__title { margin-bottom:var(--space-60); font-size:clamp(28px, 4.58vw, 64px); font-weight:300; line-height:1.36; letter-spacing:-0.04em; color: var(--color-accent);}
.need__list { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:var(--space-16); }
.need__item { min-height:0; padding:0; color:var(--color-title); background:none; }
.need__img { display:block; width:100%; aspect-ratio:4 / 3; margin-bottom:var(--space-20); object-fit:cover; }
.need__name { margin-bottom:var(--space-8); font-size:var(--font-size-24); line-height: 1.3em; font-weight:600; color:var(--color-title); }
.need__desc { font-size:var(--font-size-15); line-height:1.65; color:var(--color-body); }