/* =========================================================
   CL Convention — Official Website
   Design system: "Daylight Pavilion"
   Fonts: Pretendard (UI/본문), Noto Serif KR (한글 제목),
          Alegreya (영문 포인트, 정체만 사용)
   ========================================================= */

@import url('https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/static/pretendard.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@400;500;600;700&family=Alegreya:wght@500;600;700&display=swap');

:root{
  /* --- color: base (spec 13장 준수, 비율 조정) --- */
  --ink:        #14140F;
  --ink-soft:   #3B372F;
  --ink-mute:   #6B6659;
  --ivory:      #F6F4EE;
  --ivory-2:    #EFECE3;
  --white:      #FDFCFA;
  --mist:       #C9D0CC;
  --metal:      #9B8A70;
  --metal-soft: #C9BBA1;
  --line:       #E4E0D5;

  /* --- color: brand navy accent (실제 CLCONVENTION 로고에서 추출) --- */
  --navy:       #2E4258;
  --navy-deep:  #1E2E3F;
  --navy-soft:  #6C8299;

  /* --- color: dark cinematic (히어로 전용, 25~35%만 사용) --- */
  --cine:       #10110F;
  --cine-2:     #181A17;

  /* --- hall accent tints (본문 색이 아니라 라벨/보더 포인트로만 사용) --- */
  --wave-tint:      #7D8F7A;
  --covenant-tint:  #8A6F63;
  --bliss-tint:     #A0808A;

  --radius-s: 4px;
  --radius-m: 10px;
  --radius-l: 18px;

  --shadow-card: 0 1px 2px rgba(20,20,15,.04), 0 12px 28px -18px rgba(20,20,15,.28);
  --shadow-pop:  0 24px 60px -24px rgba(20,20,15,.35);

  --maxw: 1240px;
  --gutter: clamp(20px, 5vw, 64px);

  --ff-ui:    'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif;
  --ff-kr:    'Noto Serif KR', serif;
  --ff-en:    'Alegreya', serif;

  --dur-fast: .22s;
  --dur-med:  .5s;
  --ease: cubic-bezier(.34,.06,.22,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--ff-ui);
  font-size:16px;
  line-height:1.7;
  word-break:keep-all;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
:focus-visible{ outline:2px solid var(--navy); outline-offset:3px; border-radius:2px; }

.container{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.prose-w{ max-width:650px; }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--ff-en); font-weight:600; font-size:13px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--navy);
}
.eyebrow::before{ content:''; width:22px; height:1px; background:var(--navy); }

h1,.h1{ font-family:var(--ff-kr); font-weight:600; line-height:1.32; letter-spacing:-.01em; }
h2,.h2{ font-family:var(--ff-kr); font-weight:600; line-height:1.36; letter-spacing:-.01em; font-size:clamp(26px,3.4vw,38px); }
h3,.h3{ font-family:var(--ff-kr); font-weight:600; line-height:1.4; font-size:20px; }
.lead{ font-size:17px; color:var(--ink-soft); }
.muted{ color:var(--ink-mute); }
.en-name{ font-family:var(--ff-en); font-weight:600; letter-spacing:.01em; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:50px; padding:0 26px; border-radius:999px;
  font-size:15px; font-weight:600; letter-spacing:-.01em;
  border:1px solid transparent; white-space:nowrap;
  transition:transform var(--dur-fast) var(--ease), background var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);
}
.btn:active{ transform:scale(.98); }
.btn-primary{ background:var(--navy); color:var(--white); }
.btn-primary:hover{ background:var(--navy-deep); }
.btn-line{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn-line:hover{ background:var(--ink); color:var(--white); }
.btn-ghost-light{ background:rgba(253,252,250,.12); color:var(--white); border-color:rgba(253,252,250,.55); backdrop-filter:blur(6px); }
.btn-ghost-light:hover{ background:rgba(253,252,250,.92); color:var(--ink); }
.btn-sm{ height:42px; padding:0 20px; font-size:14px; }
.btn-block{ width:100%; }
.btn svg{ width:16px; height:16px; }

.text-link{
  display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:15px;
  padding-bottom:2px; border-bottom:1px solid currentColor;
}
.text-link:hover{ color:var(--navy); }

/* ---------- header ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100; height:76px;
  display:flex; align-items:center;
  background:transparent;
  transition:background var(--dur-med) var(--ease), box-shadow var(--dur-med), border-color var(--dur-med);
  border-bottom:1px solid transparent;
}
.site-header.is-light{ --hdr-fg:var(--ink); }
.site-header.is-dark-ctx:not(.is-scrolled){ --hdr-fg:var(--white); }
.site-header{ --hdr-fg:var(--ink); }
.site-header.is-scrolled,
.site-header.is-light-page{
  background:rgba(253,252,250,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); box-shadow:0 1px 0 rgba(0,0,0,.02);
  --hdr-fg:var(--ink);
}
.header-inner{
  width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--hdr-fg);
  flex-wrap:nowrap;
}
.brand{ display:flex; align-items:center; gap:8px; color:var(--hdr-fg); flex:0 0 auto; }
.brand svg{ width:26px; height:17px; flex:0 0 auto; }
.brand-word{ font-family:var(--ff-en); font-weight:700; font-size:16px; letter-spacing:.03em; white-space:nowrap; }
@media (min-width:640px){ .brand-word{ font-size:19px; letter-spacing:.05em; } .brand svg{ width:30px; height:20px; } }

.primary-nav{ display:none; }
@media (min-width:1000px){
  .primary-nav{ display:flex; align-items:center; }
  .primary-nav ul{ display:flex; align-items:center; gap:0; }
  .primary-nav li{ flex:0 0 auto; }
  .primary-nav li > a{
    display:flex; align-items:center; height:76px; padding:0 13px;
    font-size:14.5px; font-weight:600; color:var(--hdr-fg); position:relative; white-space:nowrap;
  }
  .primary-nav li > a::after{
    content:''; position:absolute; left:13px; right:13px; bottom:22px; height:2px;
    background:var(--navy); transform:scaleX(0); transform-origin:left; transition:transform var(--dur-fast) var(--ease);
  }
  .primary-nav li > a:hover::after,
  .primary-nav li.is-active > a::after{ transform:scaleX(1); }
}
@media (min-width:1180px){
  .primary-nav li > a{ padding:0 16px; font-size:15px; }
  .primary-nav li > a::after{ left:16px; right:16px; }
}
.header-actions{ display:flex; align-items:center; gap:6px; flex:0 0 auto; }
@media (min-width:640px){ .header-actions{ gap:10px; } }
@media (max-width:480px){ .header-actions .btn-sm{ height:38px; padding:0 14px; font-size:13px; } }
.header-phone{
  display:none; align-items:center; gap:8px; font-weight:600; font-size:14px; color:var(--hdr-fg);
}
@media (min-width:1000px){ .header-phone{ display:flex; } }
.menu-toggle{
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; background:none; border:none; padding:0;
}
@media (min-width:1000px){ .menu-toggle{ display:none; } }
.menu-toggle span{ width:22px; height:2px; background:var(--hdr-fg); transition:transform var(--dur-fast), opacity var(--dur-fast); }

/* mega menu */
.mega{
  position:absolute; top:76px; left:0; right:0;
  background:var(--white); border-bottom:1px solid var(--line); box-shadow:var(--shadow-pop);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility var(--dur-fast);
}
.primary-nav li:hover > .mega,
.primary-nav li:focus-within > .mega{ opacity:1; visibility:visible; transform:translateY(0); }
.mega-inner{ max-width:var(--maxw); margin:0 auto; padding:36px var(--gutter) 30px; }
.mega-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.mega-card{ display:block; border-radius:var(--radius-m); overflow:hidden; background:var(--ivory); border:1px solid var(--line); }
.mega-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform var(--dur-med) var(--ease); }
.mega-card:hover img{ transform:scale(1.03); }
.mega-card-body{ padding:14px 16px 16px; }
.mega-card-top{ display:flex; justify-content:space-between; font-size:12px; letter-spacing:.06em; color:var(--ink-mute); margin-bottom:4px; }
.mega-card-name{ font-family:var(--ff-en); font-weight:700; font-size:19px; }
.mega-card-note{ font-size:13.5px; color:var(--ink-soft); margin-top:4px; }
.mega-foot{ margin-top:22px; display:flex; justify-content:flex-end; }

/* mobile slide panel */
.mobile-panel{
  position:fixed; inset:0 0 0 auto; width:min(360px,86vw); background:var(--white); z-index:200;
  transform:translateX(100%); transition:transform var(--dur-med) var(--ease);
  display:flex; flex-direction:column; box-shadow:var(--shadow-pop);
}
.mobile-panel.is-open{ transform:translateX(0); }
.mobile-scrim{
  position:fixed; inset:0; background:rgba(20,20,15,.42); z-index:190; opacity:0; visibility:hidden;
  transition:opacity var(--dur-fast); backdrop-filter:blur(2px);
}
.mobile-scrim.is-open{ opacity:1; visibility:visible; }
.mobile-panel-head{ display:flex; align-items:center; justify-content:space-between; height:70px; padding:0 20px; border-bottom:1px solid var(--line); }
.mobile-close{ width:36px; height:36px; border:none; background:none; position:relative; }
.mobile-close::before,.mobile-close::after{ content:''; position:absolute; left:8px; right:8px; top:50%; height:2px; background:var(--ink); }
.mobile-close::before{ transform:rotate(45deg); }
.mobile-close::after{ transform:rotate(-45deg); }
.mobile-nav{ flex:1; overflow-y:auto; padding:10px 8px 20px; }
.mobile-nav > li > a,.mnav-toggle{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:15px 14px; font-size:16.5px; font-weight:600; border:none; background:none; text-align:left; color:var(--ink);
  border-bottom:1px solid var(--line);
}
.mnav-toggle svg{ transition:transform var(--dur-fast); width:16px; height:16px; }
.mnav-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }
.mnav-sub{ max-height:0; overflow:hidden; transition:max-height var(--dur-med) var(--ease); background:var(--ivory); }
.mnav-sub.is-open{ max-height:340px; }
.mnav-sub a{ display:block; padding:12px 26px; font-size:15px; color:var(--ink-soft); }
.mobile-panel-foot{ display:flex; gap:10px; padding:16px 20px 22px; border-top:1px solid var(--line); }

.mobile-bottombar{
  position:fixed; left:0; right:0; bottom:0; z-index:80; display:flex;
  border-top:1px solid var(--line); background:var(--white); box-shadow:0 -6px 20px rgba(0,0,0,.06);
}
@media (min-width:1000px){ .mobile-bottombar{ display:none; } }
.mobile-bottombar a{
  flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
  height:58px; font-weight:700; font-size:15px;
}
.mobile-bottombar a:first-child{ color:var(--ink); border-right:1px solid var(--line); }
.mobile-bottombar a:last-child{ color:var(--white); background:var(--navy); }
body.has-bottombar{ padding-bottom:58px; }
body.panel-open{ overflow:hidden; }

/* ---------- breadcrumb / page header ---------- */
.breadcrumb{
  display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:13px; color:var(--ink-mute); padding-top:106px;
}
.breadcrumb a:hover{ color:var(--navy); }
.page-head{ padding:14px 0 40px; border-bottom:1px solid var(--line); background:var(--ivory); }
.page-head h1{ font-size:clamp(30px,4.4vw,44px); margin-top:10px; }
.page-head .lead{ margin-top:14px; max-width:620px; }

.local-tabs{ display:flex; gap:6px; overflow-x:auto; padding:14px var(--gutter); background:var(--white); border-bottom:1px solid var(--line); position:sticky; top:76px; z-index:40; }
.local-tabs a{ flex:0 0 auto; padding:9px 16px; border-radius:999px; font-size:14px; font-weight:600; color:var(--ink-soft); }
.local-tabs a.is-active,.local-tabs a:hover{ background:var(--ink); color:var(--white); }

/* ---------- sections / reveal ---------- */
section{ position:relative; }
.section{ padding:88px 0; }
.section-tight{ padding:60px 0; }
.section-head{ max-width:640px; margin-bottom:44px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.on-cine{ background:var(--cine); color:var(--ivory); }
.on-cine .eyebrow,.on-cine .eyebrow::before{ color:var(--metal-soft); background:var(--metal-soft); }
.on-cine .muted{ color:#B9B6AC; }

/* motion behavior */
[data-reveal]{ }

/* ---------- hero (home) ---------- */
.hero{
  position:relative; min-height:78vh; display:flex; align-items:flex-end;
  color:var(--white); overflow:hidden; background:var(--cine);
}
@media (max-width:640px){ .hero{ min-height:66vh; } }
.hero-media{ position:absolute; inset:0; }
.hero-media img,.hero-media video{ width:100%; height:100%; object-fit:cover; object-position:center 78%; }
.hero-scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(16,17,15,.86) 0%, rgba(16,17,15,.42) 46%, rgba(16,17,15,.12) 68%, rgba(16,17,15,.28) 100%); }
.hero-body{ position:relative; width:100%; padding:0 var(--gutter) 56px; }
.hero-body .eyebrow{ color:var(--metal-soft); }
.hero-body .eyebrow::before{ background:var(--metal-soft); }
.hero-body h1{ font-size:clamp(32px,5vw,54px); margin-top:16px; max-width:14ch; color:var(--white); }

.home-opening-title{ max-width:none !important; }
.home-opening-title span{ display:block; font-family:var(--ff-ui); font-size:.62em; font-weight:600; letter-spacing:.025em; line-height:1.3; }
.home-opening-title strong{ display:block; margin-top:.12em; font:inherit; font-weight:500; }

.hero-body p{ margin-top:16px; max-width:520px; color:#E9E7DE; font-size:17px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.hero-scroll-note{ display:flex; align-items:center; gap:10px; margin-top:38px; font-size:12.5px; letter-spacing:.08em; color:#C9C6BB; }
.hero-scroll-note .line{ width:36px; height:1px; background:#C9C6BB; }

/* half hero used on hall detail pages */
.half-hero{ position:relative; height:56vh; min-height:400px; color:var(--white); display:flex; align-items:flex-end; background:var(--cine); }
.half-hero-media{ position:absolute; inset:0; }
.half-hero-media img{ width:100%; height:100%; object-fit:cover; }
.half-hero-scrim{ position:absolute; inset:0; background:linear-gradient(0deg,rgba(16,17,15,.82),rgba(16,17,15,.05) 60%); }
.half-hero-body{ position:relative; width:100%; padding:0 var(--gutter) 34px; }
.half-hero-body .hall-tags{ display:flex; gap:8px; margin-bottom:12px; }
.half-hero-body h1{ font-size:clamp(28px,4.6vw,44px); color:var(--white); }
.half-hero-body .en-name{ display:block; font-size:15px; color:var(--metal-soft); margin-top:8px; }

.tag{ display:inline-flex; align-items:center; height:26px; padding:0 12px; border-radius:999px; font-size:12px; font-weight:600; letter-spacing:.03em; background:rgba(253,252,250,.14); color:var(--white); border:1px solid rgba(253,252,250,.35); }
.tag-light{ background:var(--ivory-2); color:var(--ink-soft); border:1px solid var(--line); }

/* ---------- quick menu ---------- */
.quickmenu{ margin-top:-58px; position:relative; z-index:5; }
.quickmenu-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow-card); }
@media (max-width:760px){ .quickmenu-grid{ grid-template-columns:repeat(2,1fr); } }
.qm-item{ background:var(--white); padding:26px 22px; display:flex; flex-direction:column; gap:10px; min-height:150px; }
.qm-item:hover{ background:var(--ivory); }
.qm-icon{ width:30px; height:30px; color:var(--navy); }
.qm-item strong{ font-size:16px; font-weight:700; }
.qm-item span{ font-size:13.5px; color:var(--ink-mute); }
.qm-item .go{ margin-top:auto; display:flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--navy); }

/* ---------- hall cards (home summary + overview grid) ---------- */
.hall-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:900px){ .hall-grid{ grid-template-columns:1fr; max-width:460px; margin-inline:auto; } }
.hall-card{ border-radius:var(--radius-l); overflow:hidden; background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow-card); display:flex; flex-direction:column; }
.hall-card-media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--ivory-2); }
.hall-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform var(--dur-med) var(--ease); }
.hall-card:hover .hall-card-media img{ transform:scale(1.025); }
.hall-card-badge{ position:absolute; top:14px; left:14px; }
.hall-card-body{ padding:22px 22px 24px; display:flex; flex-direction:column; gap:10px; flex:1; }
.hall-card-top{ display:flex; justify-content:space-between; align-items:baseline; font-size:12.5px; color:var(--ink-mute); letter-spacing:.03em; }
.hall-card-name{ font-family:var(--ff-en); font-weight:700; font-size:26px; }
.hall-card-kr{ font-family:var(--ff-kr); font-weight:600; font-size:15px; color:var(--ink-soft); margin-top:-4px; }
.hall-card-desc{ font-size:14.5px; color:var(--ink-soft); flex:1; }
.hall-card-meta{ display:flex; gap:14px; font-size:13px; color:var(--ink-mute); padding-top:10px; border-top:1px solid var(--line); }
.hall-card-meta b{ color:var(--ink); font-weight:700; }
.hall-card-cta{ margin-top:6px; display:flex; align-items:center; justify-content:space-between; }

/* media fallback frame */
.shot-placeholder{
  position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center; text-align:center;
  background:
    repeating-linear-gradient(135deg, var(--ivory-2) 0 2px, var(--ivory) 2px 14px);
  border:1px dashed var(--metal-soft); color:var(--ink-mute); padding:18px;
}
.shot-placeholder .sp-inner{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.shot-placeholder svg{ width:26px; height:26px; color:var(--metal); }
.shot-placeholder span{ font-size:12.5px; line-height:1.5; max-width:22ch; }
.shot-placeholder b{ font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--metal); font-weight:700; }

/* ---------- stats / amenities ---------- */
.stat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-l); overflow:hidden; }
@media (max-width:760px){ .stat-grid{ grid-template-columns:1fr; } }
.stat-item{ background:var(--white); padding:32px 28px; display:flex; gap:18px; align-items:flex-start; }
.stat-icon{ width:40px; height:40px; flex:0 0 auto; color:var(--navy); }
.stat-num{ font-family:var(--ff-en); font-weight:700; font-size:26px; color:var(--ink); }
.stat-item p{ margin-top:6px; font-size:14px; color:var(--ink-soft); }

/* ---------- two buildings ---------- */
.building-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media (max-width:820px){ .building-grid{ grid-template-columns:1fr; } }
.building-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); padding:28px; box-shadow:var(--shadow-card); }
.building-card-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:18px; }
.building-card-head .en-name{ font-size:21px; }
.route{ display:flex; align-items:center; gap:0; flex-wrap:wrap; margin:18px 0; }
.route-step{ display:flex; flex-direction:column; align-items:center; gap:8px; width:88px; text-align:center; }
.route-dot{ width:34px; height:34px; border-radius:50%; background:var(--ivory-2); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--navy); }
.route-dot svg{ width:17px; height:17px; }
.route-step span{ font-size:12px; color:var(--ink-soft); font-weight:600; }
.route-arrow{ flex:1; min-width:14px; height:1px; background:var(--metal-soft); margin:0 -2px 26px; position:relative; }
.route-arrow::after{ content:''; position:absolute; right:0; top:50%; width:6px; height:6px; border-right:1px solid var(--metal-soft); border-top:1px solid var(--metal-soft); transform:translateY(-50%) rotate(45deg); }
.building-halls{ display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 18px; }
.building-note{ font-size:13.5px; color:var(--ink-mute); border-top:1px solid var(--line); padding-top:14px; }

/* ---------- news ---------- */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:820px){ .news-grid{ grid-template-columns:1fr; } }
.news-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; box-shadow:var(--shadow-card); }
.news-thumb{ aspect-ratio:3/2; overflow:hidden; background:var(--ivory-2); }
.news-thumb img{ width:100%; height:100%; object-fit:cover; }
.news-body{ padding:18px 18px 20px; }
.news-cat{ font-size:12px; font-weight:700; color:var(--navy); letter-spacing:.04em; }
.news-title{ margin-top:8px; font-size:15.5px; font-weight:700; line-height:1.5; }
.news-date{ margin-top:10px; font-size:12.5px; color:var(--ink-mute); }
.news-empty{ grid-column:1/-1; text-align:center; padding:56px 20px; border:1px dashed var(--line); border-radius:var(--radius-m); color:var(--ink-mute); font-size:14.5px; }

/* ---------- consult cta ---------- */
.consult-cta{ background:var(--navy); color:var(--white); border-radius:var(--radius-l); padding:44px var(--gutter); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; }
.consult-cta h2{ color:var(--white); font-size:clamp(22px,2.8vw,28px); }
.consult-cta p{ margin-top:8px; color:#C9D2DB; font-size:14.5px; }
.consult-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.consult-cta .btn-primary{ background:var(--white); color:var(--navy); }
.consult-cta .btn-primary:hover{ background:var(--ivory); }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:#C7C4B9; padding:64px 0 26px; }
.footer-top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px; padding-bottom:40px; border-bottom:1px solid #333026; }
@media (max-width:860px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer-top{ grid-template-columns:1fr; } }
.footer-brand .brand-word{ font-size:20px; color:var(--white); }
.footer-brand p{ margin-top:14px; font-size:13.5px; line-height:1.8; max-width:280px; }
.footer-col h4{ font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:#8E8A7C; margin-bottom:16px; }
.footer-col li{ margin-bottom:10px; }
.footer-col a{ font-size:14px; }
.footer-col a:hover{ color:var(--white); }
.footer-business{ display:flex; flex-wrap:wrap; gap:6px 18px; padding-top:22px; font-size:12.5px; line-height:1.7; color:#8E8A7C; }
.footer-business a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }
.footer-business a:hover{ color:var(--white); }
.footer-bottom{ padding-top:16px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:12.5px; color:#7E7A6D; }
.footer-bottom a:hover{ color:var(--white); }

/* ---------- comparison table (Wedding Halls overview) ---------- */
.compare-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-m); }
table.compare{ width:100%; border-collapse:collapse; min-width:640px; background:var(--white); }
table.compare th,table.compare td{ padding:16px 18px; text-align:left; border-bottom:1px solid var(--line); font-size:14.5px; }
table.compare thead th{ background:var(--ivory); font-family:var(--ff-en); font-weight:700; font-size:15px; }
table.compare th:first-child,table.compare td:first-child{ color:var(--ink-mute); font-weight:600; width:130px; }
table.compare tbody tr:last-child td{ border-bottom:none; }
@media (max-width:760px){ .compare-wrap{ display:none; } }
.compare-accordion{ display:none; }
@media (max-width:760px){ .compare-accordion{ display:block; } }
.acc-item{ border:1px solid var(--line); border-radius:var(--radius-m); margin-bottom:12px; overflow:hidden; background:var(--white); }
.acc-head{ width:100%; display:flex; justify-content:space-between; align-items:center; padding:16px 18px; background:none; border:none; font-weight:700; font-size:15.5px; }
.acc-head svg{ width:16px; height:16px; transition:transform var(--dur-fast); }
.acc-head[aria-expanded="true"] svg{ transform:rotate(180deg); }
.acc-body{ max-height:0; overflow:hidden; transition:max-height var(--dur-med) var(--ease); }
.acc-body.is-open{ max-height:420px; }
.acc-body dl{ padding:0 18px 16px; display:grid; grid-template-columns:88px 1fr; gap:10px 14px; margin:0; }
.acc-body dt{ color:var(--ink-mute); font-size:13.5px; }
.acc-body dd{ margin:0; font-size:14px; font-weight:600; }

/* ---------- venue navigator ---------- */
.navigator{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); padding:30px; box-shadow:var(--shadow-card); }
.nav-tree{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:700px){ .nav-tree{ grid-template-columns:1fr; } }
.nav-branch{ border:1px solid var(--line); border-radius:var(--radius-m); padding:18px; }
.nav-branch-head{ display:flex; align-items:center; gap:10px; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid var(--line); }
.nav-branch-head svg{ width:22px; height:22px; color:var(--navy); }
.nav-leaf{ display:flex; align-items:center; justify-content:space-between; padding:12px 12px; border-radius:var(--radius-s); }
.nav-leaf:hover,.nav-leaf.is-active{ background:var(--ivory); }
.nav-leaf-name{ font-family:var(--ff-en); font-weight:700; font-size:16px; }
.nav-leaf-meta{ font-size:12.5px; color:var(--ink-mute); }

/* ---------- hall detail: info summary bar ---------- */
.info-bar{ display:grid; grid-template-columns:repeat(5,1fr); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; background:var(--white); }
@media (max-width:900px){ .info-bar{ grid-template-columns:repeat(2,1fr); } }
.info-bar > div{ padding:18px 18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.info-bar > div:nth-child(5){ border-right:none; }
@media (max-width:900px){ .info-bar > div:nth-child(odd){ } .info-bar > div:nth-child(2n){ border-right:none; } }
.info-bar dt{ font-size:12px; color:var(--ink-mute); margin-bottom:6px; }
.info-bar dd{ margin:0; font-size:15.5px; font-weight:700; }

.feature-list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:700px){ .feature-list{ grid-template-columns:1fr; } }
.feature-item{ display:flex; gap:12px; padding:16px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); }
.feature-item svg{ width:22px; height:22px; color:var(--navy); flex:0 0 auto; }
.feature-item strong{ display:block; font-size:14.5px; margin-bottom:3px; }
.feature-item p{ font-size:13.5px; color:var(--ink-soft); }

/* gallery grid + lightbox */
.gal-filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
.gal-filters button{ padding:9px 18px; border-radius:999px; border:1px solid var(--line); background:var(--white); font-size:13.5px; font-weight:600; color:var(--ink-soft); }
.gal-filters button.is-active{ background:var(--ink); color:var(--white); border-color:var(--ink); }
.gal-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:900px){ .gal-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px){ .gal-grid{ grid-template-columns:repeat(2,1fr); gap:10px; } }
.gal-item{ position:relative; border-radius:var(--radius-s); overflow:hidden; background:var(--ivory-2); cursor:zoom-in; }
.gal-item.r-32{ aspect-ratio:3/2; } .gal-item.r-45{ aspect-ratio:4/5; } .gal-item.r-11{ aspect-ratio:1/1; }
.gal-item img{ width:100%; height:100%; object-fit:cover; transition:transform var(--dur-med) var(--ease); }
.gal-item:hover img{ transform:scale(1.03); }
.gal-cap{ position:absolute; left:0; right:0; bottom:0; padding:9px 10px; font-size:11.5px; color:#fff; background:linear-gradient(0deg,rgba(0,0,0,.55),transparent); opacity:0; transition:opacity var(--dur-fast); }
.gal-item:hover .gal-cap{ opacity:1; }

.lightbox{ position:fixed; inset:0; background:rgba(10,10,8,.92); z-index:300; display:none; align-items:center; justify-content:center; padding:30px; }
.lightbox.is-open{ display:flex; }
.lightbox img{ max-width:min(1100px,92vw); max-height:84vh; object-fit:contain; border-radius:6px; }
.lightbox-close,.lightbox-nav{ position:absolute; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.35); color:#fff; border-radius:50%; width:44px; height:44px; display:flex; align-items:center; justify-content:center; }
.lightbox-close{ top:22px; right:22px; }
.lightbox-nav.prev{ left:18px; top:50%; transform:translateY(-50%); }
.lightbox-nav.next{ right:18px; top:50%; transform:translateY(-50%); }
.lightbox-nav svg,.lightbox-close svg{ width:18px; height:18px; }

/* ---------- LED / signature feature block (Covenant) ---------- */
.feature-block{ background:var(--cine); color:var(--ivory); border-radius:var(--radius-l); overflow:hidden; }
.feature-block-media{ aspect-ratio:16/9; width:100%; }
.feature-block-body{ padding:34px var(--gutter); }
.feature-block-body h3{ color:var(--white); font-size:clamp(22px,2.6vw,28px); }
.feature-block-spec{ display:flex; gap:22px; flex-wrap:wrap; margin:18px 0; }
.feature-block-spec div{ font-size:13px; color:#B9B6AC; }
.feature-block-spec b{ display:block; font-family:var(--ff-en); font-size:20px; color:var(--white); font-weight:700; }
.feature-block ul{ display:grid; gap:8px; margin-top:16px; }
.feature-block li{ font-size:14px; color:#D8D5C9; padding-left:16px; position:relative; }
.feature-block li::before{ content:''; position:absolute; left:0; top:9px; width:5px; height:5px; background:var(--metal-soft); border-radius:50%; }

/* ---------- visit page ---------- */
.building-tabs{ display:flex; gap:10px; margin-bottom:26px; }
.building-tabs button{ flex:1; padding:16px; border-radius:var(--radius-m); border:1px solid var(--line); background:var(--white); text-align:left; }
.building-tabs button.is-active{ border-color:var(--navy); background:var(--white); box-shadow:0 0 0 1px var(--navy); }
.building-tabs .bt-en{ font-family:var(--ff-en); font-weight:700; font-size:18px; }
.building-tabs .bt-kr{ font-size:13px; color:var(--ink-mute); margin-top:2px; }
.visit-panel{ display:none; }
.visit-panel.is-active{ display:block; }
.visit-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:30px; }
@media (max-width:900px){ .visit-grid{ grid-template-columns:1fr; } }
.addr-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); padding:26px; }
.addr-row{ display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid var(--line); }
.addr-row:last-of-type{ border-bottom:none; }
.addr-row dt{ font-size:13px; color:var(--ink-mute); }
.addr-row dd{ margin:0; font-size:15px; font-weight:600; text-align:right; }
.copy-btn{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:var(--navy); background:none; border:none; padding:4px 0; margin-top:2px; }
.map-btns{ display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
.map-btn{ display:flex; align-items:center; gap:8px; padding:11px 16px; border-radius:999px; border:1px solid var(--line); font-size:13.5px; font-weight:700; background:var(--white); }
.map-btn:hover{ border-color:var(--navy); color:var(--navy); }

/* ---------- consultation form ---------- */
.consult-layout{ display:grid; grid-template-columns:1fr .8fr; gap:36px; align-items:start; }
@media (max-width:900px){ .consult-layout{ grid-template-columns:1fr; } }
.form-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); padding:32px; box-shadow:var(--shadow-card); }
.field{ margin-bottom:20px; }
.field label{ display:block; font-size:13.5px; font-weight:700; margin-bottom:8px; }
.field .req{ color:#B5473E; }
.field input[type=text],.field input[type=tel],.field input[type=date],.field select,.field textarea{
  width:100%; height:50px; border:1px solid var(--line); border-radius:var(--radius-s); padding:0 14px;
  font-size:15px; font-family:inherit; background:var(--white); color:var(--ink);
}
.field textarea{ height:120px; padding:12px 14px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--navy); }
.hall-pick{ display:flex; gap:10px; flex-wrap:wrap; }
.hall-pick input{ position:absolute; opacity:0; width:1px; height:1px; }
.hall-pick label{ display:inline-flex; align-items:center; height:44px; padding:0 16px; border-radius:999px; border:1px solid var(--line); font-size:13.5px; font-weight:600; margin:0; cursor:pointer; }
.hall-pick input:checked + label{ background:var(--navy); border-color:var(--navy); color:var(--white); }
.check-row{ display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:var(--ink-soft); margin-bottom:14px; }
.check-row input{ margin-top:3px; }
.form-note{ font-size:12.5px; color:var(--ink-mute); margin-top:6px; }
.form-status{ margin-top:16px; padding:14px 16px; border-radius:var(--radius-s); font-size:14px; display:none; }
.form-status.show{ display:block; }
.form-status.ok{ background:#EBF3EE; color:#2C5C42; }
.form-status.err{ background:#FBEDEC; color:#8A3A32; }
.side-info-card{ background:var(--navy); color:var(--white); border-radius:var(--radius-l); padding:28px; }
.side-info-card h3{ color:var(--white); }
.side-info-card .phone-big{ font-family:var(--ff-en); font-size:26px; font-weight:700; margin:14px 0 4px; display:block; }
.side-info-card p{ font-size:13.5px; color:#C9D2DB; }
.side-info-list{ margin-top:20px; display:grid; gap:10px; padding-top:18px; border-top:1px solid rgba(255,255,255,.18); }
.side-info-list li{ font-size:13.5px; color:#D5DCE2; display:flex; gap:8px; }

/* ---------- facilities / banquet tab cards ---------- */
.tile-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){ .tile-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .tile-grid{ grid-template-columns:1fr; } }
.tile{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-l); overflow:hidden; box-shadow:var(--shadow-card); }
.tile-media{ aspect-ratio:3/2; }
.tile-body{ padding:20px; }
.tile-body h3{ font-size:17px; }
.tile-body p{ margin-top:8px; font-size:13.5px; color:var(--ink-soft); }
.tile-body a{ margin-top:12px; }

.filter-row{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; }
.filter-row button{ padding:9px 16px; border-radius:999px; border:1px solid var(--line); background:var(--white); font-size:13.5px; font-weight:600; color:var(--ink-soft); }
.filter-row button.is-active{ background:var(--ink); color:var(--white); border-color:var(--ink); }

/* ---------- utility page (privacy / stub) ---------- */
.doc-body{ max-width:760px; font-size:15px; color:var(--ink-soft); }
.doc-body h2{ font-size:19px; margin-top:34px; margin-bottom:10px; color:var(--ink); }
.doc-body p{ margin-top:10px; }
.doc-body table{ width:100%; border-collapse:collapse; margin-top:14px; font-size:13.5px; }
.doc-body th,.doc-body td{ border:1px solid var(--line); padding:10px 12px; text-align:left; }

.notice-card{ display:flex; gap:14px; padding:22px; border:1px dashed var(--metal-soft); border-radius:var(--radius-m); background:var(--white); align-items:flex-start; }
.notice-card svg{ width:22px; height:22px; color:var(--metal); flex:0 0 auto; margin-top:2px; }
.notice-card p{ font-size:14px; color:var(--ink-soft); }

@media (max-width:640px){
  .section{ padding:64px 0; }
  .quickmenu{ margin-top:-40px; }
}


/* ===== Wedding editorial refinement ===== */
:root{ --blush:#D8C8C2; --champagne:#B89B72; }
.hero{ min-height:84vh; }
.hero-media img{ object-position:center 52%; }
.hero-scrim{ background:linear-gradient(90deg,rgba(14,14,12,.34),transparent 58%),linear-gradient(0deg,rgba(14,14,12,.84) 0%,rgba(14,14,12,.28) 52%,rgba(14,14,12,.18) 100%); }
.hero-body{ max-width:var(--maxw); margin:0 auto; padding-bottom:64px; }
.hero-body h1{ max-width:15ch; }
.wedding-editorial{ background:var(--white); border-bottom:1px solid var(--line); }
.wedding-editorial-grid{ display:grid; grid-template-columns:minmax(260px,.82fr) minmax(360px,1.35fr) minmax(180px,.65fr); gap:clamp(16px,2.8vw,36px); align-items:end; }
.wedding-editorial-copy{ align-self:center; padding-block:18px; }
.wedding-editorial-copy h2{ margin-top:16px; }
.wedding-editorial-copy>p:not(.eyebrow){ margin-top:18px; color:var(--ink-soft); max-width:38ch; }
.wedding-editorial-copy .text-link{ margin-top:26px; }
.wedding-editorial-main,.wedding-editorial-detail{ margin:0; overflow:hidden; background:var(--ivory-2); }
.wedding-editorial-main{ aspect-ratio:4/5; }
.wedding-editorial-detail{ aspect-ratio:4/5; margin-bottom:44px; }
.wedding-editorial-main img,.wedding-editorial-detail img{ width:100%; height:100%; object-fit:cover; }
.wedding-editorial-main img{ object-position:center 46%; }
.hall-overview-section{ padding-top:96px; }
.hall-card,.tile{ border-radius:8px; }
.hall-card-body{ padding:24px 24px 26px; }
.story-building-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.story-building{ background:var(--white); border:1px solid var(--line); }
.story-building-media{ margin:0; background:#e8e6df; }
.story-building-media img{ width:100%; height:auto; object-fit:contain; }
.story-building-body{ padding:30px; }
.story-building-body h2{ margin-top:9px; font-size:clamp(26px,3vw,36px); }
.story-building-body>p:not(.eyebrow){ margin-top:16px; color:var(--ink-soft); }
.story-building-links{ display:flex; flex-wrap:wrap; gap:20px; margin-top:24px; }
.story-wide-image{ margin:38px 0 0; position:relative; overflow:hidden; }
.story-wide-image img{ width:100%; height:auto; max-height:620px; object-fit:cover; }
.story-wide-image figcaption{ position:absolute; right:18px; bottom:16px; padding:7px 11px; background:rgba(15,15,13,.7); color:#fff; font-family:var(--ff-en); font-size:12px; letter-spacing:.07em; }
.banquet-hall-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.banquet-hall-card{ display:grid; grid-template-columns:1.2fr .8fr; min-height:330px; background:var(--white); border:1px solid var(--line); overflow:hidden; }
.banquet-hall-card figure{ margin:0; min-height:300px; overflow:hidden; }
.banquet-hall-card figure img{ width:100%; height:100%; object-fit:cover; }
.banquet-hall-body{ padding:30px; align-self:center; }
.banquet-hall-body h3{ margin-top:10px; font-size:28px; }
.banquet-hall-body>p:not(.eyebrow){ margin-top:12px; color:var(--ink-soft); }
.banquet-hall-body .text-link{ margin-top:22px; }
.event-use-head{ margin-top:88px; }
.event-use-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.event-use-card{ background:var(--white); border:1px solid var(--line); }
.event-use-card figure{ position:relative; margin:0; aspect-ratio:4/3; overflow:hidden; }
.event-use-card figure img{ width:100%; height:100%; object-fit:cover; }
.event-use-card>div{ padding:22px; }
.event-use-card h3{ font-family:var(--ff-en); font-size:22px; }
.event-use-card p{ margin-top:8px; color:var(--ink-soft); font-size:14px; }
.visual-note{ position:absolute; right:10px; bottom:10px; padding:5px 9px; border:1px solid rgba(255,255,255,.48); background:rgba(17,17,15,.68); color:#fff; font-size:11px; letter-spacing:.04em; }
.feature-block-media img{ width:100%; height:100%; object-fit:cover; }
.single-venue-photo{ margin:0; position:relative; max-width:980px; background:var(--ivory-2); }
.single-venue-photo img{ width:100%; height:auto; max-height:700px; object-fit:contain; }
.single-venue-photo figcaption{ position:absolute; left:14px; bottom:12px; padding:6px 10px; background:rgba(16,17,15,.68); color:#fff; font-family:var(--ff-en); font-size:12px; }
.bliss-gallery-section{ background:var(--white); border-block:1px solid var(--line); }
.visit-building-photo{ aspect-ratio:3/2; overflow:hidden; margin-bottom:22px; }
.visit-building-photo img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:1000px){
 .wedding-editorial-grid{ grid-template-columns:.8fr 1.2fr; }
 .wedding-editorial-copy{ grid-column:1/-1; max-width:620px; }
 .wedding-editorial-detail{ margin-bottom:0; }
 .banquet-hall-card{ grid-template-columns:1fr; }
 .banquet-hall-card figure{ min-height:0; aspect-ratio:3/2; }
}
@media (max-width:760px){
 .hero{ min-height:72vh; }
 .hero-media img{ object-position:58% center; }
 .hero-body{ padding-bottom:48px; }
 .wedding-editorial-grid{ grid-template-columns:1.25fr .75fr; gap:10px; }
 .wedding-editorial-copy{ padding-bottom:18px; }
 .wedding-editorial-main,.wedding-editorial-detail{ aspect-ratio:4/5; }
 .wedding-editorial-detail{ margin-bottom:28px; }
 .story-building-grid,.banquet-hall-grid,.event-use-grid{ grid-template-columns:1fr; }
 .story-building-body,.banquet-hall-body{ padding:24px; }
 .event-use-head{ margin-top:64px; }
 .banquet-hall-card{ min-height:0; }
}
@media (max-width:480px){
 .wedding-editorial-grid{ grid-template-columns:1fr; }
 .wedding-editorial-detail{ display:none; }
 .wedding-editorial-main{ aspect-ratio:4/5; }
 .hero-body p{ font-size:16px; }
 .story-building-links{ gap:14px; }
}

/* ===== Lovely wedding visual system v2 ===== */
:root{--ink:#2D2929;--ink-soft:#514A4D;--ink-mute:#776F72;--ivory:#FBF8F7;--ivory-2:#F5EFEE;--white:#FFFEFD;--mist:#DCD4DA;--metal:#A98870;--metal-soft:#D8C1B1;--line:#E9DFE0;--navy:#6C5966;--navy-deep:#51414B;--navy-soft:#9B8793;--cine:#241F22;--cine-2:#30292D;--wave-tint:#9A8F9A;--covenant-tint:#AF8E83;--bliss-tint:#B68E9B;--blush:#F2E6E8;--lavender:#EEEAF2;--petal:#FBF8F7;--champagne:#B89A7D;--radius-m:12px;--radius-l:20px;--shadow-card:0 18px 50px -36px rgba(74,50,62,.42);--shadow-pop:0 28px 70px -35px rgba(74,50,62,.42)}
body{background:var(--petal)}::selection{background:#EAD7DC;color:var(--ink)}.site-header.is-scrolled,.site-header.is-light-page{background:rgba(255,254,253,.92)}.btn-primary{background:var(--navy)}.btn-primary:hover{background:var(--navy-deep)}.eyebrow{color:var(--navy)}.eyebrow::before{background:linear-gradient(90deg,var(--champagne),var(--navy-soft))}
.page-head{position:relative;overflow:hidden;background:radial-gradient(circle at 84% 22%,rgba(232,214,221,.72),transparent 30%),radial-gradient(circle at 68% 82%,rgba(226,222,235,.58),transparent 34%),linear-gradient(135deg,#FFFEFD 0%,#F9F3F3 62%,#F4EEF2 100%)}
.page-head::after{content:'';position:absolute;width:260px;height:260px;right:-90px;bottom:-150px;border:1px solid rgba(164,126,143,.16);border-radius:50%;box-shadow:0 0 0 34px rgba(164,126,143,.035),0 0 0 72px rgba(164,126,143,.025);pointer-events:none}.page-head .container{position:relative;z-index:1}
.hall-overview-section,.bliss-gallery-section{background:linear-gradient(180deg,#FFFDFB 0%,#F9F2F3 100%)}.hall-card,.tile,.story-building,.banquet-hall-card,.event-use-card,.addr-card,.form-card{border-color:rgba(166,137,150,.22);box-shadow:var(--shadow-card)}.hall-card,.tile,.event-use-card,.story-building,.banquet-hall-card{border-radius:16px;overflow:hidden}.quickmenu{border-color:rgba(166,137,150,.22);box-shadow:0 20px 50px -34px rgba(74,50,62,.5)}.quickmenu a:hover{background:#FAF2F4}.feature-block,.side-info-card{background:linear-gradient(145deg,#66535F,#3C3137)}.site-footer{background:#241F22}.mobile-bottombar a:last-child{background:var(--navy)}
.wedding-editorial{background:radial-gradient(circle at 16% 18%,rgba(244,224,229,.62),transparent 25%),var(--white)}.wedding-editorial-main,.wedding-editorial-detail{border-radius:14px;box-shadow:var(--shadow-card)}.wedding-editorial-copy>p:not(.eyebrow){color:var(--ink-soft)}
.photo-grade img,.grade-wave img,.grade-covenant img,.grade-banquet img,.grade-facilities img,.grade-dining img{transition:filter .35s ease,transform .55s var(--ease)}.photo-grade img,.grade-wave img{filter:brightness(1.055) contrast(.94) saturate(.90) sepia(.018)}.grade-covenant img{filter:brightness(1.105) contrast(.925) saturate(.88) sepia(.012)}.grade-banquet img{filter:brightness(1.065) contrast(.94) saturate(.90) sepia(.025)}.grade-facilities img{filter:brightness(1.055) contrast(.95) saturate(.88) sepia(.012)}.grade-dining img{filter:brightness(1.035) contrast(.96) saturate(.96) sepia(.018)}
img[src$="selected-001.webp"],img[src$="selected-003.webp"],img[src$="selected-008.webp"],img[src$="selected-009.webp"],img[src$="selected-010.webp"],img[src$="selected-018.webp"],img[src$="selected-035.webp"],img[src$="selected-038.webp"],img[src$="selected-040.webp"],img[src$="selected-043.webp"]{transform:scale(1.035) rotate(var(--photo-rotate,0deg));transform-origin:center}
.gallery-page{background:linear-gradient(180deg,#FBF8F7 0%,#FFFEFD 14%,#FFFEFD 88%,#F8F0F2 100%)}.gallery-jump{position:sticky;top:88px;z-index:20;display:flex;gap:8px;width:max-content;max-width:100%;padding:8px;margin:0 auto 54px;overflow-x:auto;border:1px solid rgba(166,137,150,.22);border-radius:999px;background:rgba(255,254,253,.9);box-shadow:0 14px 34px -28px rgba(65,42,54,.58);backdrop-filter:blur(14px);scrollbar-width:none}.gallery-jump::-webkit-scrollbar{display:none}.gallery-jump a{flex:0 0 auto;padding:9px 16px;border-radius:999px;color:var(--ink-soft);font-family:var(--ff-en);font-size:14px;font-weight:600}.gallery-jump a:hover,.gallery-jump a:focus-visible{background:var(--blush);color:var(--navy-deep)}
.gallery-album{scroll-margin-top:150px;padding:58px 0 76px;border-top:1px solid var(--line)}.gallery-album:first-of-type{border-top:0;padding-top:10px}.gallery-album-head{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(260px,1.2fr);gap:clamp(28px,7vw,110px);align-items:end;margin-bottom:28px}.gallery-album-head h2{margin-top:10px;font-size:clamp(28px,3.6vw,43px)}.gallery-album-head>p{max-width:590px;color:var(--ink-soft);font-size:16px}
.gallery-regular{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px)}.gallery-card{--photo-rotate:0deg;margin:0;overflow:hidden;border:1px solid rgba(166,137,150,.18);border-radius:14px;background:var(--white);box-shadow:0 14px 40px -34px rgba(74,50,62,.62);cursor:zoom-in;transition:transform .35s var(--ease),box-shadow .35s ease,border-color .35s ease}.gallery-card:hover{transform:translateY(-4px);border-color:rgba(166,137,150,.36);box-shadow:0 24px 52px -34px rgba(74,50,62,.58)}.gallery-card-media{aspect-ratio:4/3;overflow:hidden;background:#F0E9E9}.gallery-card img{width:100%;height:100%;object-fit:cover;transform:scale(1.035) rotate(var(--photo-rotate));transform-origin:center}.gallery-card:hover img{transform:scale(1.065) rotate(var(--photo-rotate))}.gallery-card figcaption{min-height:48px;display:flex;align-items:center;padding:12px 15px;border-top:1px solid rgba(166,137,150,.14);color:var(--ink-soft);font-size:13px}.gallery-note{max-width:780px;margin:10px auto 0;padding:24px 28px;border:1px solid rgba(166,137,150,.2);border-radius:14px;background:linear-gradient(135deg,#FFFDFD,#F8F0F3);color:var(--ink-mute);font-size:13px;text-align:center}
.uniform-gallery.gal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.uniform-gallery .gal-item,.uniform-gallery .gal-item:nth-child(n){grid-column:auto;aspect-ratio:4/3;border-radius:12px;overflow:hidden}.uniform-gallery .gal-item img{width:100%;height:100%;object-fit:cover}.event-use-card figure img{filter:brightness(1.045) contrast(.95) saturate(.91) sepia(.018)}.visual-note{background:rgba(66,48,57,.72);border-color:rgba(255,255,255,.4)}.event-use-card>div{background:linear-gradient(180deg,#FFFEFD,#FBF5F6)}
@media(max-width:900px){.gallery-regular{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-album-head{grid-template-columns:1fr;gap:14px}.uniform-gallery.gal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.page-head{padding-top:118px}.gallery-jump{top:72px;justify-content:flex-start;margin-bottom:34px}.gallery-album{padding:44px 0 58px}.gallery-regular{grid-template-columns:1fr;gap:16px}.gallery-album-head{margin-bottom:22px}.gallery-album-head>p{font-size:15px}.gallery-card figcaption{font-size:13.5px}.uniform-gallery.gal-grid{grid-template-columns:1fr}.wedding-editorial-main,.wedding-editorial-detail{border-radius:10px}}
@media(prefers-reduced-motion:reduce){.gallery-card,.gallery-card img{transition:none}.gallery-card:hover{transform:none}}

/* ===== Dual venue identity + responsive audit ===== */
.brand-duo{
  gap:9px;
  min-width:0;
  padding:6px 8px;
  border-radius:10px;
}
.brand-duo .brand-logo{ width:auto; flex:0 0 auto; object-fit:contain; }
.brand-duo .brand-logo-cl{ height:18px; }
.brand-duo .brand-logo-bridge{ height:18px; }
.brand-separator{ width:1px; height:22px; flex:0 0 auto; background:rgba(108,89,102,.22); }
.site-header.is-dark-ctx:not(.is-scrolled) .brand-duo{
  background:rgba(255,254,253,.92);
  box-shadow:0 10px 30px -20px rgba(20,13,18,.68);
  backdrop-filter:blur(10px);
}

.mobile-brand-duo,.footer-brand-duo{
  display:flex;
  align-items:center;
  gap:9px;
}
.mobile-brand-duo .brand-logo-cl{ width:auto; height:18px; }
.mobile-brand-duo .brand-logo-bridge{ width:auto; height:19px; }
.mobile-brand-duo .brand-separator{ height:24px; }

.footer-brand-duo{
  width:max-content;
  max-width:100%;
  padding:11px 13px;
  border-radius:10px;
  background:rgba(255,254,253,.96);
}
.footer-brand-duo .brand-logo-cl{ width:auto; height:20px; }
.footer-brand-duo .brand-logo-bridge{ width:auto; height:21px; }
.footer-brand-duo .brand-separator{ height:26px; }

.story-building-logo{
  display:block;
  width:auto;
  max-width:100%;
  object-fit:contain;
  object-position:left center;
  margin-bottom:22px;
}
.story-building-logo-cl{ height:34px; }
.story-building-logo-bridge{ height:42px; }
.story-building-body .story-building-logo + .eyebrow{ margin-top:0; }

.footer-legal{ display:flex; gap:16px; align-items:flex-start; }

@media (min-width:640px){
  .brand-duo .brand-logo-cl{ height:20px; }
  .brand-duo .brand-logo-bridge{ height:20px; }
  .brand-duo .brand-separator{ height:25px; }
}
@media (min-width:1000px) and (max-width:1179px){
  .primary-nav{ display:none; }
  .header-phone{ display:none; }
  .menu-toggle{ display:flex; }
  .mobile-bottombar{ display:flex; }
}
@media (min-width:1180px){
  body.has-bottombar{ padding-bottom:0; }
}
@media (min-width:1180px){
  .primary-nav li > a{ padding-inline:10px; font-size:14px; }
  .primary-nav li > a::after{ left:10px; right:10px; }
  .header-phone{ display:none; }
}
@media (min-width:1400px){
  .header-phone{ display:flex; }
}
@media (max-width:760px){
  .story-building-logo-cl{ height:29px; }
  .story-building-logo-bridge{ height:36px; }
  .consult-cta{ padding:34px 24px; }
  .consult-actions{ width:100%; }
  .consult-actions .btn{ flex:1 1 160px; }
  .footer-legal{ flex-direction:column; gap:6px; }
  .footer-business{ display:grid; gap:3px; }
}
@media (max-width:560px){
  .header-inner{ gap:8px; }
  .header-actions .btn-sm{ display:none; }
  .brand-duo{ gap:7px; padding-inline:5px; }
  .brand-duo .brand-logo-cl{ height:17px; }
  .brand-duo .brand-logo-bridge{ height:17px; }
  .brand-duo .brand-separator{ height:21px; }
  .building-tabs{ flex-direction:column; }
  .addr-row{ align-items:flex-start; gap:16px; }
  .addr-row dd{ text-align:left; overflow-wrap:anywhere; }
  .map-btns{ display:grid; grid-template-columns:1fr; }
  .map-btn{ justify-content:center; width:100%; }
  .form-card{ padding:23px 19px; }
  .hall-pick{ display:grid; grid-template-columns:1fr 1fr; }
  .hall-pick label{ justify-content:center; padding-inline:10px; }
  .mobile-panel-foot{ padding-inline:14px; }
}
@media (max-width:380px){
  .brand-duo .brand-logo-cl{ height:15px; }
  .brand-duo .brand-logo-bridge{ height:15px; }
  .brand-duo .brand-separator{ height:19px; }
  .header-inner{ padding-inline:16px; }
  .mobile-panel-foot{ flex-direction:column; }
  .hall-pick{ grid-template-columns:1fr; }
}

/* ===== News & Event ===== */
.news-page{background:linear-gradient(180deg,#FFFEFD,#FAF3F5)}
.news-filter{justify-content:flex-end}
.news-feature{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);min-height:480px;overflow:hidden;border:1px solid rgba(166,137,150,.22);border-radius:20px;background:var(--white);box-shadow:0 26px 70px -48px rgba(74,50,62,.7)}
.news-feature-visual{position:relative;margin:0;min-height:480px;overflow:hidden;background:#493841}
.news-feature-visual::after,.news-detail-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,20,27,.82),rgba(31,20,27,.08) 58%,transparent)}
.news-feature-visual img,.news-detail-hero img{width:100%;height:100%;object-fit:cover}
.grand-open-overlay{position:absolute;z-index:2;left:clamp(24px,4vw,54px);bottom:clamp(28px,5vw,58px);display:flex;flex-direction:column;color:#fff}
.grand-open-overlay span{font-size:12px;font-weight:700;letter-spacing:.18em}
.grand-open-overlay strong{margin-top:7px;font-family:var(--ff-en);font-size:clamp(38px,5vw,66px);font-weight:600;line-height:.92;letter-spacing:.01em}
.grand-open-overlay b{margin-top:14px;color:#E8D1C3;font-family:var(--ff-en);font-size:16px;letter-spacing:.11em}
.news-feature-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,5vw,58px);background:radial-gradient(circle at 100% 0,rgba(237,220,227,.8),transparent 38%),#FFFEFD}
.news-status{display:flex;align-items:center;gap:8px}
.news-status span{font-family:var(--ff-en);font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--navy)}
.news-status i{padding:4px 8px;border-radius:999px;background:#F1E5E8;color:#795E6B;font-size:11px;font-style:normal;font-weight:700}
.news-feature-copy h2{margin-top:20px;font-size:clamp(28px,3.4vw,42px)}
.news-feature-copy>p{margin-top:18px;color:var(--ink-soft);font-size:16px}
.news-feature-foot{display:flex;justify-content:space-between;gap:18px;margin-top:auto;padding-top:34px;border-top:1px solid var(--line);color:var(--ink-mute);font-size:13px}
.news-feature-foot span{color:var(--navy);font-weight:700}
.news-list-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin:88px 0 28px}
.news-list-head h2{margin-top:8px}.news-list-head>p{max-width:430px;color:var(--ink-soft)}
.news-list-grid,.home-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.news-card{display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s ease}.news-card:hover{transform:translateY(-4px);box-shadow:0 25px 58px -38px rgba(74,50,62,.65)}
.news-summary{margin-top:9px;color:var(--ink-soft);font-size:13.5px}
.news-notice-mark{display:flex;align-items:center;justify-content:space-between;min-height:220px;padding:28px;background:radial-gradient(circle at 85% 20%,rgba(232,214,221,.9),transparent 34%),linear-gradient(145deg,#F9F2F3,#EEE8EF);color:var(--navy)}
.news-notice-mark span{font-family:var(--ff-en);font-size:13px;font-weight:700;letter-spacing:.16em}.news-notice-mark svg{width:54px;height:54px}
.news-thumb-event img{filter:brightness(.82) saturate(.85)}
.home-news-grid{max-width:900px}.home-news-grid .news-notice-mark{min-height:0;aspect-ratio:3/2}
.news-detail-head{padding:82px 0 54px;background:radial-gradient(circle at 83% 24%,rgba(235,219,225,.8),transparent 28%),linear-gradient(135deg,#FFFEFD,#F7EFF2)}
.news-detail-narrow{max-width:900px}
.news-detail-head h1{margin-top:18px;font-size:clamp(34px,5vw,58px)}
.news-detail-head p{max-width:680px;margin-top:20px;color:var(--ink-soft);font-size:17px}
.news-detail-head time{display:block;margin-top:24px;color:var(--ink-mute);font-family:var(--ff-en);font-size:13px;letter-spacing:.08em}
.news-detail-head-notice{background:linear-gradient(135deg,#FFFEFD,#F1EDF3)}
.news-detail-hero{position:relative;aspect-ratio:16/9;margin:54px 0 0;overflow:hidden;border-radius:20px;box-shadow:var(--shadow-pop)}
.grand-open-overlay-large strong{font-size:clamp(44px,7vw,86px)}
.news-detail-body{padding-top:64px;padding-bottom:100px}
.news-intro{font-family:var(--ff-kr);font-size:clamp(19px,2.4vw,24px);line-height:1.75;color:var(--ink);letter-spacing:-.015em}
.event-benefits{margin-top:72px}.event-benefits h2{margin-top:9px}
.event-benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}
.event-benefit-grid>div{padding:26px 22px;border:1px solid rgba(166,137,150,.23);border-radius:14px;background:linear-gradient(155deg,#FFFEFD,#F8F1F3)}
.event-benefit-grid span{font-family:var(--ff-en);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--navy)}
.event-benefit-grid h3{margin-top:12px;font-size:18px}.event-benefit-grid p{margin-top:9px;color:var(--ink-soft);font-size:14px}
.news-info-block{margin-top:64px;padding-top:34px;border-top:1px solid var(--line)}.news-info-block h2{font-size:25px}
.news-info-block dl{margin:20px 0 0}.news-info-block dl>div{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}
.news-info-block dt{color:var(--ink-mute);font-size:13px}.news-info-block dd{margin:0;color:var(--ink-soft);font-size:15px}
.news-detail-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:62px;padding:34px;border-radius:16px;background:linear-gradient(145deg,#66535F,#3C3137);color:#fff}
.news-detail-cta h2{color:#fff;font-size:24px}.news-detail-cta p{margin-top:6px;color:#DED1D7;font-size:14px}.news-detail-cta .btn{background:#fff;color:var(--navy)}
.news-back{display:inline-block;margin-top:34px;border-bottom:1px solid currentColor;color:var(--ink-soft);font-size:14px}
.notice-building-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:52px}
.notice-building-grid section{padding:30px;border:1px solid rgba(166,137,150,.23);border-radius:16px;background:#fff}
.notice-building-grid img{width:auto;height:32px;object-fit:contain;object-position:left;margin-bottom:28px}.notice-building-grid section:nth-child(2) img{height:40px}
.notice-building-grid h2{font-size:22px}.notice-building-grid p{margin-top:12px;color:var(--ink-soft)}.notice-building-grid strong{display:block;margin-top:18px;color:var(--navy);font-size:14px}.notice-building-grid small{display:block;margin-top:4px;color:var(--ink-mute)}
.notice-steps{display:grid;gap:0;margin-top:20px}.notice-steps li{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);color:var(--ink-soft)}.notice-steps span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--blush);color:var(--navy);font-family:var(--ff-en);font-weight:700}
@media(max-width:820px){.news-feature{grid-template-columns:1fr}.news-feature-visual{min-height:420px}.news-feature-copy{min-height:330px}.news-list-grid,.home-news-grid{grid-template-columns:1fr}.event-benefit-grid{grid-template-columns:1fr}.news-list-head{align-items:flex-start;flex-direction:column;gap:12px}}
@media(max-width:640px){.news-filter{justify-content:flex-start}.news-feature{border-radius:14px}.news-feature-visual{min-height:330px}.news-feature-copy{min-height:300px;padding:28px 22px}.grand-open-overlay{left:22px;bottom:26px}.news-list-head{margin-top:62px}.news-detail-head{padding:62px 0 42px}.news-detail-hero{margin-top:30px;border-radius:12px;aspect-ratio:4/3}.news-detail-body{padding-top:44px;padding-bottom:76px}.notice-building-grid{grid-template-columns:1fr}.news-info-block dl>div{grid-template-columns:1fr;gap:5px}.news-detail-cta{align-items:flex-start;flex-direction:column;padding:28px 22px}.news-detail-cta .btn{width:100%}.news-notice-mark{min-height:180px}}

/* ===== Home Covenant hero + visible first-view header ===== */
.site-header.home-header:not(.is-scrolled){
  --hdr-fg:var(--ink);
  background:rgba(255,254,253,.92);
  border-bottom:1px solid rgba(166,137,150,.22);
  box-shadow:0 10px 34px -30px rgba(41,27,35,.72);
  backdrop-filter:blur(13px);
  -webkit-backdrop-filter:blur(13px);
}
.site-header.home-header:not(.is-scrolled) .brand-duo{
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
.site-header.home-header:not(.is-scrolled) .primary-nav li>a,
.site-header.home-header:not(.is-scrolled) .header-phone{color:var(--ink)}
.site-header.home-header:not(.is-scrolled) .menu-toggle span{background:var(--ink)}
.hero-media .home-hero-covenant{
  object-position:center 50%;
  filter:brightness(.94) contrast(.98) saturate(.9);
}
@media(max-width:760px){
  .hero-media .home-hero-covenant{
    object-position:center 50%;
    filter:brightness(.9) contrast(.98) saturate(.9);
  }
}
