/* =========================================================
   SPACE LAYOUT — single file build (PLAYWEBON)
   간격 세분화: 섹션 수직 리듬/좌우 거터/내부 갭을 변수화하여
   1680→1440→1366→1200→1024→768→600→480→360→280 단계로 세분화
   ========================================================= */

/* ---------- design tokens (간격 + 타이포 계층 시스템) ---------- */
:root{
  /* layout */
  --maxw: 1600px;          /* 컨테이너 최대폭 */
  --gut: 32px;             /* 좌우 거터 */
  --sc-py: 160px;          /* 섹션 상하 패딩 */
  --tit-gap: 56px;         /* 타이틀 → 콘텐츠 */
  --tit-gap-sm: 28px;      /* 타이틀 → 탭/보조 콘텐츠(축소) */
  --card-gap: 32px;        /* 카드 그리드 세로 간격 */
  --card-gap-x: 2%;        /* 카드 그리드 가로 간격 */
  --inner-gap: 28px;       /* 블록 내부 요소 간격 */
  --block-gap: 60px;       /* 아이콘/문구 등 블록 수직 간격 */
  --line: #c4c4c4;
  --line-d: rgba(255,255,255,.14);
  --point: #D8151B;
  --ink: #000;
  --bg: #fff;

  /* ── 타이포 계층 (fluid type scale) ──
     clamp(min, 폭비례, max) — 뷰포트 폭에 비례해 자동 스케일.
     세로/가로 비율 변화에도 매끄럽게 대응하며, 미디어쿼리 폰트 오버라이드 불필요. */
  --fs-display: clamp(1.875rem, 1.05rem + 3.6vw, 4.6875rem);  /* 히어로     30 → 75 */
  --fs-h1:      clamp(1.625rem, 1.18rem + 1.95vw, 2.875rem);  /* 서브히어로/문서 H1  26 → 46 */
  --fs-h2:      clamp(1.5rem,   1.15rem + 1.55vw, 2.8125rem); /* 섹션 타이틀  24 → 45 */
  --fs-h3:      clamp(1.375rem, 1.1rem  + 0.95vw, 2rem);      /* 페이지 소제목 22 → 32 */
  --fs-h4:      clamp(1.1875rem,1.07rem + 0.5vw,  1.5rem);    /* 카드/분할    19 → 24 */
  --fs-h5:      clamp(1.0625rem,1.01rem + 0.24vw, 1.25rem);   /* 리드/아이브로 17 → 20 */
  --fs-lead:    clamp(1rem,     0.95rem + 0.25vw, 1.25rem);   /* 본문 리드    16 → 20 */
  --fs-base:    1rem;        /* 본문 16 */
  --fs-sm:      .9375rem;    /* 보조 15 */
  --fs-xs:      .8125rem;    /* 캡션 13 */
  --fs-eyebrow: .8125rem;    /* 키커(대문자) 13 */

  /* line-height */
  --lh-tight: 1.04; --lh-snug: 1.2; --lh-head: 1.3; --lh-base: 1.6; --lh-relaxed: 1.75; --lh-loose: 1.85;
  /* weight */
  --fw-light:300; --fw-reg:400; --fw-med:500; --fw-semi:600; --fw-bold:700; --fw-extra:800; --fw-black:900;
  /* letter-spacing */
  --ls-tight:-.02em; --ls-snug:-.01em; --ls-wide:.06em; --ls-wider:.12em;
}

/* 간격 토큰만 단계적으로 축소 (폰트는 clamp가 폭 비례로 자동 조정) */
@media(max-width:1680px){ :root{ --sc-py:150px; --tit-gap:52px; } }
@media(max-width:1660px){ :root{ --maxw:100%; } }
@media(max-width:1440px){ :root{ --sc-py:130px; --gut:28px; --tit-gap:48px; --card-gap:28px; --block-gap:52px; } }
@media(max-width:1366px){ :root{ --sc-py:120px; --gut:28px; --tit-gap:44px; } }
@media(max-width:1200px){ :root{ --sc-py:100px; --gut:24px; --tit-gap:40px; --tit-gap-sm:24px; --card-gap:24px; --inner-gap:24px; --block-gap:44px; } }
@media(max-width:1024px){ :root{ --sc-py:84px;  --gut:22px; --tit-gap:34px; --card-gap:22px; --block-gap:40px; } }
@media(max-width:768px){  :root{ --sc-py:68px;  --gut:18px; --tit-gap:30px; --tit-gap-sm:20px; --card-gap:20px; --inner-gap:20px; --block-gap:34px; } }
@media(max-width:600px){  :root{ --sc-py:56px;  --gut:16px; --tit-gap:26px; --card-gap:18px; --block-gap:30px; } }
@media(max-width:480px){  :root{ --sc-py:48px;  --gut:15px; --tit-gap:24px; --inner-gap:18px; } }
@media(max-width:360px){  :root{ --sc-py:40px;  --gut:13px; --tit-gap:20px; } }
@media(max-width:280px){  :root{ --sc-py:34px;  --gut:12px; --tit-gap:18px; --card-gap:14px; } }

/* ---------- reset ---------- */
*{ box-sizing:border-box; }
body,html{ margin:0; padding:0; width:100%; min-height:100%; scroll-behavior:smooth; }
body,html,input,textarea,select,button,table{ font-family:'Pretendard',sans-serif; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6,p,form,fieldset{ margin:0; padding:0; word-break:keep-all; }
ol,ul,li{ list-style:none; padding:0; margin:0; word-break:keep-all; }
img{ max-width:100%; }
a,a:hover{ color:inherit; text-decoration:none; }
button{ border:none; background:none; cursor:pointer; }
.logo-svg{ width:auto; height:100%; display:block; }

/* ---------- header ---------- */
body > header{
  position:fixed; z-index:9990; top:0; left:0; width:100%;
  transition:background .5s ease, backdrop-filter .5s ease, box-shadow .5s ease, top .3s ease;
}
body > header *{ box-sizing:border-box; }
.hd_bt{ position:relative; z-index:5; transition:.4s; }
.hd_con{
  width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gut);
  display:flex; justify-content:space-between; align-items:center; position:relative;
}
.lg{ margin-right:30px; }
.lg > a{ display:block; white-space:nowrap; }
.lg .logo-svg{ height:38px; transition:.4s; }
.hd-wrap{ display:flex; align-items:center; }
.mn{ display:flex; align-items:center; }

/* gnb */
#gnb > ul{ display:flex; flex-flow:row wrap; }
#gnb > ul > li{ position:relative; }
#gnb > ul > li > a{
  display:block; padding:62px 24px; font-size:16px; font-weight:700;
  transition:all .4s; color:#fff; position:relative;
}
#gnb > ul > li > ul{
  position:absolute; top:100%; left:50%;
  transform:translateX(-50%) translateY(14px);
  min-width:196px; background:#fff; border-radius:14px; padding:10px;
  text-align:left; box-shadow:0 22px 46px -14px rgba(0,0,0,.3), 0 4px 12px -6px rgba(0,0,0,.12);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .3s ease, transform .3s cubic-bezier(.2,.7,.2,1), visibility .3s;
  overflow:hidden;
}
#gnb > ul > li:hover > ul{
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
#gnb > ul > li > ul > li > a{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:11px 14px; font-size:14px; font-weight:500; white-space:nowrap;
  color:#555; border-radius:9px; transition:.25s;
}
#gnb > ul > li > ul > li > a::after{
  content:"\f061"; font-family:"Font Awesome 6 Free"; font-weight:900; font-size:9px;
  color:var(--point); opacity:0; transform:translateX(-6px); transition:.25s;
}
#gnb > ul > li > ul > li > a:hover{ background:rgba(216,21,27,.07); color:var(--point); padding-left:18px; }
#gnb > ul > li > ul > li > a:hover::after{ opacity:1; transform:translateX(0); }

.log{ display:flex; align-items:center; gap:18px; margin-left:18px; }
.lang{ position:relative; }
.lang-tg{ display:inline-flex; align-items:center; gap:7px; color:#fff; font-size:13px; font-weight:600; padding:8px 2px; letter-spacing:.02em; }
.lang-tg .lang-ar{ font-size:10px; transition:.3s; }
.lang.open .lang-ar{ transform:rotate(180deg); }
.lang-menu{ position:absolute; top:calc(100% + 12px); right:0; min-width:132px; background:#fff; border-radius:10px; box-shadow:0 14px 32px -6px rgba(0,0,0,.2); padding:6px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:.25s; }
.lang.open .lang-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.lang-menu li button{ width:100%; text-align:left; padding:9px 12px; border-radius:7px; font-size:13px; color:#333; transition:.2s; }
.lang-menu li button:hover{ background:#f5f5f5; color:var(--point); }
.util-login{ display:inline-flex; align-items:center; gap:7px; color:#fff; font-size:13px; font-weight:600; transition:.3s; }
.util-login:hover{ color:var(--point); }
.util-join{ display:inline-block; padding:12px 26px; border-radius:10px; font-size:13px; font-weight:600; color:#fff; background:var(--point); transition:.3s; }
.util-join:hover{ filter:brightness(1.08); }

/* header scrolled — 근거리 다크 블러, 흰 로고 유지 */
header.scr .hd_bt{ background:rgba(8,8,12,.82); backdrop-filter:blur(14px); box-shadow:0 1px 0 rgba(255,255,255,.06); }
header.scr #gnb > ul > li > a{ padding:30px 24px; }
header.scr .lg .logo-svg{ height:32px; }

/* mobile toggler */
.wmenu-mo{ display:none; }
.menu-toggler{
  position:absolute; top:50%; right:var(--gut); transform:translateY(-50%);
  width:30px; height:18px; display:flex; flex-direction:column; justify-content:space-between;
  cursor:pointer; z-index:99999;
}
.menu-toggler .bar{ background:#fff; width:100%; height:2px; border-radius:8px; transition:.4s; }
.menu-toggler .bar.half{ width:55%; }
.menu-toggler.open .bar{ background:#fff; }
.menu-toggler.open .bar.top{ transform:rotate(45deg) translate(4px,4px); }
.menu-toggler.open .bar:nth-child(2){ opacity:0; }
.menu-toggler.open .bar.bottom{ width:100%; transform:rotate(-45deg) translate(5px,-5px); }

.mt-menu{
  width:84%; max-width:360px; height:100vh; height:100dvh; position:fixed; top:0; right:-100%;
  background:#fff; z-index:99998; transition:right .6s cubic-bezier(.65,.05,.36,1);
  overflow-y:auto; padding:0 22px; display:flex; flex-direction:column; justify-content:center;
}
.mt-menu.mt-open{ right:0; box-shadow:-4px 0 30px rgba(0,0,0,.15); }
.mo_mn_mn{ padding:1rem 6px 2rem; }
.mo_mn_mn > li > a{ display:block; padding:16px 0; font-size:18px; font-weight:700; border-bottom:1px solid #f0f0f0; position:relative; }
.mo_mn_mn > li > a.more::after{ content:""; width:11px; height:2px; background:var(--point); position:absolute; top:50%; right:6px; transform:translateY(-50%); }
.mo_mn_mn > li > a.more::before{ content:""; width:2px; height:11px; background:var(--point); position:absolute; top:50%; right:10.5px; transform:translateY(-50%); transition:.3s; }
.mo_mn_mn > li > a.more.act::before{ opacity:0; }
.mo_mn_mn > li > ul{ display:none; background:#f7f7f8; border-radius:12px; padding:6px; margin:4px 0 10px; }
.mo_mn_mn > li > ul > li > a{ display:flex; align-items:center; gap:10px; padding:11px 14px; font-size:15px; font-weight:500; color:#777; border-radius:8px; transition:.2s; }
.mo_mn_mn > li > ul > li > a::before{ content:""; width:5px; height:5px; border-radius:50%; background:#ccc; flex:none; transition:.2s; }
.mo_mn_mn > li > ul > li > a:active,.mo_mn_mn > li > ul > li > a:hover{ color:var(--point); background:rgba(216,21,27,.07); }
.mo_mn_mn > li > ul > li > a:hover::before{ background:var(--point); }
.log-mo{ margin-top:1.4rem; }
.log-mo-btns{ display:flex; gap:10px; }
.util-login-mo{ flex:1; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:13px 0; border:1px solid var(--point); border-radius:8px; font-size:14px; font-weight:700; color:#fff; background:var(--point); }
.util-login-mo.ghost{ border:1px solid #ddd; color:#222; background:#fff; font-weight:600; }
.util-join-mo{ flex:1; text-align:center; padding:13px 0; border-radius:8px; font-size:14px; font-weight:600; color:#fff; background:var(--point); }
.lang-mo{ display:flex; align-items:center; justify-content:center; gap:10px; margin-top:1.1rem; }
.lang-mo button{ font-size:13px; font-weight:600; color:#999; transition:.2s; }
.lang-mo button.on{ color:var(--point); }
.lang-mo span{ color:#ccc; }

/* ---------- shared section ---------- */
.mc-con{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gut); position:relative; z-index:3; }
.main_sc{ width:100%; position:relative; background-repeat:no-repeat; background-position:center; background-size:cover; }

.more-btn{ display:inline-block; font-size:12px; border-radius:10px; font-weight:400; padding:15px 22px; transition:.3s; }
.more-btn.big{ font-size:14px; }
.more-btn > span{ display:inline-block; margin-left:9px; transition:.3s; }
.more-btn.read{ color:#000; background:#fff; }
.more-btn.read:hover{ background:var(--point); color:#fff; }
.more-btn.view{ color:#fff; background:#18191C; }
.more-btn.view:hover{ background:var(--point); }
.more-btn:hover > span{ transform:translateX(4px); }

.sect-tit{ text-align:center; margin-bottom:var(--tit-gap); color:#fff; }
.sect-tit > h5{ font-size:var(--fs-h5); font-weight:var(--fw-light); margin-bottom:10px; letter-spacing:.04em; text-transform:capitalize; color:var(--point); }
.sect-tit > h3{ font-size:var(--fs-h2); font-weight:var(--fw-extra); line-height:var(--lh-snug); letter-spacing:var(--ls-snug); }

/* ---------- sc01 hero ---------- */
#sc01{ background:#0a0a12; height:100vh; height:100dvh; position:relative; overflow:hidden; }
#sc01::after{ content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(180deg,rgba(6,6,14,.35) 0%,rgba(6,6,14,.05) 38%,rgba(6,6,14,.78) 100%); pointer-events:none; }
.main-slide,.main-slide .swiper,.main-slide .swiper-slide{ width:100%; height:100%; }
.ms-img{ width:100%; height:100%; background-repeat:no-repeat; background-position:center; background-size:cover; transform:scale(1.06); }
.swiper-slide-active .ms-img{ transform:scale(1); transition:transform 6s ease; }

.main-caption{ max-width:var(--maxw); width:100%; padding:0 var(--gut); position:absolute; bottom:16%; left:50%; transform:translateX(-50%); z-index:9; color:#fff; text-align:left; }
.main-caption > p{ font-size:var(--fs-h5); font-weight:var(--fw-reg); margin-bottom:1.3rem; letter-spacing:.06em; color:rgba(255,255,255,.85); }
.main-caption > h2{ font-size:var(--fs-display); font-weight:var(--fw-extra); text-transform:uppercase; line-height:var(--lh-tight); margin-bottom:clamp(1.4rem,2.4vw,2.2rem); letter-spacing:-.015em; }
.sc01-btn{ display:flex; align-items:center; }
.mouse{ width:50px; height:50px; border-radius:50%; border:1px solid rgba(255,255,255,.7); position:relative; margin-right:1rem; flex:none; }
.mouse .wheel{ position:absolute; left:50%; top:10px; transform:translateX(-50%); font-size:16px; animation:wheel 1.5s infinite; }
@keyframes wheel{ 0%{ top:10px; opacity:1; } 100%{ top:26px; opacity:0; } }

/* ---------- sc02 galaxies ---------- */
#sc02{ padding:var(--sc-py) 0; background:#fff; }
#sc02 .mc-con{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:var(--tit-gap); }
.sc02-tit > h3{ font-size:var(--fs-h2); font-weight:var(--fw-extra); color:#000; line-height:var(--lh-snug); letter-spacing:var(--ls-snug); }
.sc02-cont{ padding-left:1rem; text-align:right; }
.sc02-cont > h5{ font-size:var(--fs-h5); font-weight:var(--fw-reg); color:#000; line-height:1.45; margin-bottom:1.4rem; }
.sc02-con{ width:100%; padding-left:max(var(--gut), calc((100% - var(--maxw)) / 2)); }
.sc02-slide{ width:100%; position:relative; overflow:hidden; }
.sc02-img{ width:100%; display:flex; margin-bottom:1.6rem; transition:.4s; aspect-ratio:700 / 394; overflow:hidden; }
.sc02-img img{ width:100%; height:100%; object-fit:cover; transition:.6s; }
.sc02-card:hover .sc02-img img{ transform:scale(1.05); }
.sc02-card:hover .sc02-img{ box-shadow:6px 8px 18px -6px rgba(0,0,0,.3); }
.sc02-card-caption{ color:#000; display:flex; justify-content:space-between; align-items:center; }
.sc02-card-caption > h5{ font-size:20px; font-weight:800; transition:.3s; }
.sc02-card:hover .sc02-card-caption > h5{ color:var(--point); }
.sc02-card-caption > p{ font-size:14px; font-weight:300; color:#777; }

/* ---------- sc03 overview video ---------- */
#sc03{ background:#000; position:relative; overflow:hidden; }
.sc03-bg{ position:absolute; inset:0; z-index:1; display:flex; }
.sc03-bg-line{ width:33.3333%; position:relative; }
.sc03-bg-line::before{ content:""; width:1px; height:0; background:var(--line-d); position:absolute; top:0; left:0; transition:height 5s; }
.sc03-bg-line:nth-child(3)::after{ content:""; width:1px; height:0; background:var(--line-d); position:absolute; top:0; right:0; transition:height 5s; }
.sc03-bg-line:nth-child(2)::before{ transition-delay:.3s; }
.sc03-bg-line:nth-child(3)::before{ transition-delay:.6s; }
.sc03-bg-line:nth-child(3)::after{ transition-delay:.9s; }
.sc03-bg-line.act::before,.sc03-bg-line.act::after{ height:100%; }
.sc03-con{ padding:var(--sc-py) 0; position:relative; z-index:2; }
.sc03-vd-wrap{ padding:1.5rem; border:1px solid rgba(255,255,255,.3); max-width:1000px; margin:0 auto; }
.sc03-vd{ position:relative; height:0; padding-bottom:56.25%; }
.sc03-vd iframe{ position:absolute; inset:0; width:100%; height:100%; }

/* ---------- sc04 feature boxes ---------- */
#sc04{ padding:var(--sc-py) 0; background:#fff; }
.sc04-wrap{ width:100%; display:flex; justify-content:space-between; flex-wrap:wrap; }
.sc04-box{ width:32%; margin-bottom:var(--card-gap); padding:1.8rem 1.6rem; border:1px solid var(--line); transition:.35s; }
.sc04-box:hover{ border-color:#000; transform:translateY(-4px); }
.sc04-icon{ display:flex; align-items:center; justify-content:center; width:54px; height:54px; margin-bottom:1.5rem; border-radius:50%; background:#0a0a12; color:#fff; font-size:22px; }
.sc04-caption > h3{ font-size:var(--fs-h5); font-weight:var(--fw-extra); margin-bottom:1.4rem; padding-bottom:1.4rem; border-bottom:1px solid var(--line); color:#000; line-height:1.25; }
.sc04-caption > p{ font-size:14px; font-weight:300; line-height:1.55; margin-bottom:var(--inner-gap); word-break:keep-all; color:#444; }
.sc04-btn{ display:flex; justify-content:flex-end; }
.more-btn.view.sc04{ background:#000; }

/* ---------- sc05 gallery ---------- */
#sc05{ background:#000; position:relative; overflow:hidden; }
.sc05-bg{ position:absolute; inset:0; z-index:1; display:flex; }
.sc05-bg-line{ width:25%; position:relative; }
.sc05-bg-line::before{ content:""; width:1px; height:0; background:var(--line-d); position:absolute; top:0; left:0; transition:height 5s; }
.sc05-bg-line:nth-child(1)::before{ display:none; }
.sc05-bg-line:nth-child(3)::before{ transition-delay:.3s; }
.sc05-bg-line:nth-child(4)::before{ transition-delay:.6s; }
.sc05-bg-line.act::before{ height:100%; }
#sc05 .mc-con{ padding:var(--sc-py) var(--gut) calc(var(--sc-py) - var(--card-gap)); }
#sc05 .sect-tit{ margin-bottom:var(--tit-gap-sm); }
/* tabs */
.tab_tit{ width:100%; display:flex; justify-content:center; margin-bottom:var(--tit-gap); }
.tab_tit > ul{ display:flex; flex-wrap:wrap; justify-content:center; }
.tab_tit > ul > li{ font-size:15px; font-weight:500; color:rgba(255,255,255,.65); margin:0 16px; padding-bottom:10px; position:relative; cursor:pointer; transition:color .3s; }
.tab_tit > ul > li::after{ content:""; width:0; height:2px; background:var(--point); border-radius:10px; position:absolute; left:0; bottom:0; transition:width .4s; }
.tab_tit > ul > li.on{ color:#fff; }
.tab_tit > ul > li.on::after,.tab_tit > ul > li:hover::after{ width:100%; }
.tab_con > .tab-panel{ display:none; }
.tab_con > .tab-panel.on{ display:block; animation:tabfade .55s ease; }
@keyframes tabfade{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }
.sc05-wrap{ width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:var(--card-gap) 2%; }
.sc05-box{ width:auto; display:flex; position:relative; overflow:hidden; aspect-ratio:512 / 280; }
.sc05-box img{ width:100%; height:100%; object-fit:cover; transition:.6s; }
.sc05-box:hover img{ transform:scale(1.06); }
.sc05-caption{ position:absolute; inset:0; background:rgba(0,0,0,.65); display:flex; align-items:center; justify-content:center; opacity:0; transition:.4s; z-index:2; }
.sc05-caption > h5{ font-size:15px; font-weight:900; color:#fff; text-align:center; letter-spacing:.06em; }
.sc05-box:hover .sc05-caption{ opacity:1; }

/* ---------- sc06 statement ---------- */
#sc06{ padding:var(--sc-py) 0; background:#fff; }
.sc06-icon{ display:flex; max-width:90px; margin:0 auto; color:var(--point); font-size:64px; justify-content:center; }
.sc06-caption{ text-align:center; margin:var(--block-gap) 0; color:#000; }
.sc06-caption > h5{ font-weight:var(--fw-semi); font-size:var(--fs-h5); line-height:var(--lh-relaxed); }
.sc06-img{ display:flex; max-width:90px; aspect-ratio:1; margin:0 auto; border-radius:50%; overflow:hidden; }
.sc06-img img{ width:100%; height:100%; object-fit:cover; }

/* ---------- sc07 news / webzine ---------- */
#sc07{ padding:var(--sc-py) 0; background:#000; }
.sc07-wrap{ width:100%; display:flex; justify-content:space-between; gap:4%; }
.sc07-box{ width:48%; }
.sc07-tit{ width:100%; display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:var(--inner-gap); padding-bottom:var(--inner-gap); border-bottom:1px solid rgba(255,255,255,.8); }
.sc07-caption{ color:#fff; }
.sc07-caption > h3{ font-size:var(--fs-h2); font-weight:var(--fw-bold); margin-bottom:10px; letter-spacing:var(--ls-snug); }
.sc07-caption > p{ font-size:var(--fs-h5); font-weight:var(--fw-light); color:rgba(255,255,255,.7); }
.more-btn.read.sc07{ white-space:nowrap; }
/* news list */
.news-list > li{ border-bottom:1px solid rgba(255,255,255,.1); }
.news-list > li > a{ display:flex; padding:1.6rem 6px; color:#fff; transition:.4s; align-items:flex-start; }
.news-list > li > a:hover{ padding-left:14px; }
.news-list > li > a:hover .nl-tit > h4{ color:var(--point); }
.nl-date{ width:20%; font-size:14px; font-weight:700; padding-top:2px; color:rgba(255,255,255,.55); }
.nl-tit{ width:80%; }
.nl-tit > h4{ font-size:17px; font-weight:700; transition:.3s; }
.nl-tit > p{ font-size:14px; font-weight:300; margin-top:8px; color:rgba(255,255,255,.6); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* webzine grid */
.wz-grid{ display:flex; flex-wrap:wrap; margin:0 -8px; }
.wz-grid > li{ width:33.3333%; padding:0 8px 26px; }
.wz-grid .wz-img{ width:100%; aspect-ratio:4/3; overflow:hidden; }
.wz-grid .wz-img img{ width:100%; height:100%; object-fit:cover; transition:.5s; }
.wz-grid > li > a:hover .wz-img img{ transform:scale(1.06); }
.wz-grid .wz-txt h4{ font-size:15px; color:#fff; font-weight:700; margin-top:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; transition:.3s; }
.wz-grid > li > a:hover .wz-txt h4{ color:var(--point); }

/* ---------- sc08 split feature ---------- */
#sc08{ padding:var(--sc-py) 0; background:#fff; }
.sc08-wrap{ width:100%; display:flex; align-items:center; margin-bottom:var(--tit-gap); }
.sc08-wrap.rv{ flex-direction:row-reverse; margin-bottom:0; }
.sc08-box{ width:50%; }
.sc08-img{ display:flex; aspect-ratio:16/10; overflow:hidden; }
.sc08-img img{ width:100%; height:100%; object-fit:cover; transition:.6s; }
.sc08-wrap:hover .sc08-img img{ transform:scale(1.04); }
.sc08-caption{ padding-left:70px; color:#000; }
.sc08-wrap.rv .sc08-caption{ padding-left:0; padding-right:70px; }
.sc08-caption > h5{ font-size:var(--fs-h4); font-weight:var(--fw-bold); margin-bottom:1.8rem; padding-bottom:1.8rem; position:relative; line-height:var(--lh-head); }
.sc08-caption > h5::after{ content:""; width:80px; height:1px; background:var(--line); position:absolute; bottom:0; left:0; }
.sc08-caption > p{ font-size:16px; font-weight:300; line-height:1.65; margin-bottom:2.4rem; word-break:keep-all; color:#444; }
.sc08-btn{ text-align:right; }
.more-btn.view.sc07{ background:#000; }

/* ---------- footer ---------- */
footer{ padding:100px 0; background:#0a0a12; }
.ft_con{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 var(--gut); }
.ft_wrap{ width:100%; display:flex; justify-content:space-between; align-items:center; }
.ft_box{ width:49%; }
.ft-lg{ height:38px; margin-bottom:1.6rem; }
.ft-lg .logo-svg{ height:100%; }
.ft_txt{ font-size:14px; color:rgba(255,255,255,.8); font-weight:300; line-height:1.8; margin-bottom:1rem; }
.ft_cp{ font-size:13px; color:#ddd; font-weight:400; letter-spacing:.02em; text-align:center; margin-top:42px; padding-top:28px; border-top:1px solid rgba(255,255,255,.1); }
#fnb > ul{ text-align:right; margin-bottom:1.5rem; }
#fnb > ul > li{ display:inline-block; margin-left:28px; }
#fnb > ul > li > a{ font-size:14px; font-weight:400; color:#fff; transition:.3s; }
#fnb > ul > li > a:hover{ color:var(--point); }
.sns{ display:flex; justify-content:flex-end; }
.sns > li > a{ margin-left:10px; width:44px; height:44px; border-radius:50%; background:#fff; display:flex; justify-content:center; align-items:center; font-size:15px; color:#333; transition:.3s; }
.sns > li > a:hover{ background:var(--point); color:#fff; transform:translateY(-3px); }

/* ---------- scroll reveal ---------- */
.ani.up{ transform:translateY(80px); opacity:0; transition:1s; }
.ani.up.act{ transform:translateY(0); opacity:1; }
@media(min-width:769px){
  .ani.up.delay{ transition:1s opacity .2s,1s transform .2s; }
  .ani.up.delay2{ transition:1s opacity .4s,1s transform .4s; }
}

/* ---------- subpage (client-side sub view) ---------- */
.subpage{ display:none; }
body.sub-open .wrapper{ display:none; }
body.sub-open .subpage{ display:block; }
body.sub-open .scroll-loader{ display:none; }
.subpage-static{ background:#fff; }
.subtop{ position:relative; overflow:hidden; height:480px; background:#0a0a12 center/cover no-repeat;
	border-bottom-left-radius:50% 52px; border-bottom-right-radius:50% 52px; }
.subtop::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,6,14,.45),rgba(6,6,14,.78)); z-index:1; }
.st_box{ position:relative; z-index:2; height:100%; }
.st-caption{ width:100%; padding:0 var(--gut); position:absolute; top:54%; left:0; transform:translateY(-50%); text-align:center; color:#fff; z-index:3; }
.st-caption > h2{ font-size:var(--fs-h1); font-weight:var(--fw-extra); line-height:var(--lh-snug); letter-spacing:var(--ls-snug); text-transform:uppercase; }
.st-caption > h5{ font-size:var(--fs-lead); font-weight:var(--fw-light); margin-top:1rem; color:rgba(255,255,255,.82); }
.nav-sub{ position:absolute; bottom:0; left:0; width:100%; z-index:3; background:rgba(10,10,18,.5); backdrop-filter:blur(8px); border-top:1px solid rgba(255,255,255,.12); }
.nav-con{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gut); }
.sp-nav{ display:flex; justify-content:center; flex-wrap:wrap; }
.sp-nav .nav-link{ display:block; padding:20px 22px; font-size:15px; font-weight:500; color:rgba(255,255,255,.68); position:relative; transition:color .3s; cursor:pointer; }
.sp-nav .nav-link::after{ content:""; position:absolute; left:50%; bottom:0; width:0; height:2px; background:var(--point); transform:translateX(-50%); transition:width .35s; }
.sp-nav .nav-link.active,.sp-nav .nav-link:hover{ color:#fff; }
.sp-nav .nav-link.active::after,.sp-nav .nav-link:hover::after{ width:62%; }
/* article / document */
.art_con{ width:100%; max-width:var(--art-maxw, var(--maxw)); margin:0 auto; padding:var(--sc-py) var(--gut); }
/* 콘텐츠 페이지(SPACE/CONTACT/PRIVACY/TERMS) 공통 상하 간격 — 서브히어로 아래 동일 여백 보장.
   저장된 관리자 본문에 인라인 여백이 있어도 첫/마지막 요소 여백을 제거해 art_con 값으로 통일. */
.content-page > .art_con{ padding-top:48px; padding-bottom:88px; }
.content-page > .art_con.doc-body > *:first-child{ margin-top:0 !important; padding-top:0 !important; }
.content-page > .art_con.doc-body > *:last-child{ margin-bottom:0 !important; padding-bottom:0 !important; }
.doc-body{ max-width:none; margin:0 auto; color:#1a1a1a; }
.doc-eyebrow{ font-size:var(--fs-eyebrow); font-weight:var(--fw-bold); letter-spacing:.14em; text-transform:uppercase; color:var(--point); }
.doc-body h1{ font-size:var(--fs-h1); font-weight:var(--fw-extra); line-height:1.28; margin:14px 0 18px; letter-spacing:var(--ls-snug); }
.doc-meta{ display:flex; gap:18px; align-items:center; flex-wrap:wrap; font-size:13px; color:#888; padding-bottom:24px; margin-bottom:34px; border-bottom:1px solid #ececec; }
.doc-meta .dm-tag{ background:#f3f3f3; color:#555; padding:5px 11px; border-radius:20px; font-weight:600; }
.doc-body figure{ margin:0 0 34px; }
.doc-body figure img{ width:100%; border-radius:12px; display:block; }
.doc-body figcaption{ font-size:13px; color:#9a9a9a; text-align:center; margin-top:12px; }
.doc-body h2{ font-size:var(--fs-h4); font-weight:var(--fw-extra); margin:42px 0 14px; letter-spacing:var(--ls-snug); }
.doc-body p{ font-size:16px; line-height:1.85; color:#333; margin-bottom:20px; word-break:keep-all; }
.doc-body blockquote{ margin:36px 0; padding:6px 0 6px 26px; border-left:3px solid var(--point); font-size:21px; font-weight:600; line-height:1.6; color:#111; }
.doc-list{ margin:0 0 26px; }
.doc-list li{ position:relative; padding-left:26px; margin-bottom:13px; font-size:16px; line-height:1.7; color:#333; }
.doc-list li::before{ content:"\f111"; font-family:"Font Awesome 6 Free"; font-weight:900; font-size:7px; color:var(--point); position:absolute; left:0; top:9px; }
.doc-back{ display:inline-flex; align-items:center; gap:8px; margin-top:48px; padding-top:28px; border-top:1px solid #ececec; font-size:14px; font-weight:600; color:#555; cursor:pointer; transition:.3s; }
.doc-back:hover{ color:var(--point); }
.doc-soon{ text-align:center; padding:50px 0; }
.doc-soon i{ font-size:42px; color:var(--point); margin-bottom:20px; }
.doc-soon h3{ font-size:22px; font-weight:800; color:#222; margin-bottom:10px; }
.doc-soon p{ font-size:15px; color:#888; }

/* board */
.board-head{ text-align:center; margin-bottom:42px; }
.board-head h2{ font-size:var(--fs-h3); font-weight:var(--fw-extra); margin-top:8px; letter-spacing:var(--ls-snug); }
.board-list{ border-top:2px solid #1a1a1a; }
.board-list > li{ border-bottom:1px solid #ececec; }
.board-list > li > a{ display:flex; align-items:center; gap:26px; padding:22px 8px; color:#222; transition:.25s; }
.board-list > li > a:hover{ background:rgba(216,21,27,.05); padding-left:16px; }
.board-list .bd-no{ width:34px; flex:none; font-size:14px; font-weight:800; color:var(--point); }
.board-list .bd-tit{ flex:1; font-size:16px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.board-list > li > a:hover .bd-tit{ color:var(--point); }
.board-list .bd-date{ flex:none; font-size:13px; color:#999; font-variant-numeric:tabular-nums; }
@media(max-width:600px){
  .board-head h2{ font-size:24px; }
  .board-list > li > a{ gap:14px; padding:16px 4px; }
  .board-list .bd-tit{ font-size:14px; }
  .board-list .bd-no{ width:26px; font-size:13px; }
  .board-list .bd-date{ font-size:12px; }
}
@media(max-width:768px){
  .subtop{ height:360px; border-bottom-left-radius:50% 38px; border-bottom-right-radius:50% 38px; }
  .st-caption > h2{ font-size:32px; }
  .st-caption > h5{ font-size:15px; }
  .sp-nav .nav-link{ padding:16px 14px; font-size:14px; }
  .doc-body h1{ font-size:28px; }
  .doc-body blockquote{ font-size:18px; }
}
@media(max-width:480px){ .subtop{ height:300px; border-bottom-left-radius:50% 30px; border-bottom-right-radius:50% 30px; } .st-caption > h2{ font-size:26px; } }

/* location */
.loc-wrap{ display:flex; gap:48px; align-items:stretch; }
.loc-map{ flex:1 1 58%; min-height:460px; border-radius:12px; overflow:hidden; background:#eee; }
.loc-map iframe{ width:100%; height:100%; min-height:460px; border:0; display:block; }
.loc-info{ flex:1 1 42%; }
.loc-info h2{ font-size:var(--fs-h3); font-weight:var(--fw-extra); margin:10px 0 6px; letter-spacing:var(--ls-snug); }
.loc-info .loc-sub{ font-size:15px; color:#999; margin-bottom:26px; }
.loc-item{ display:flex; gap:16px; padding:22px 0; border-bottom:1px solid #ececec; }
.loc-item:first-of-type{ border-top:1px solid #ececec; }
.loc-item .li-ic{ width:46px; height:46px; flex:none; border-radius:50%; background:#0a0a12; color:#fff; display:flex; align-items:center; justify-content:center; font-size:17px; }
.loc-item .li-tx h4{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--point); margin-bottom:7px; }
.loc-item .li-tx p,.loc-item .li-tx a{ font-size:16px; color:#333; line-height:1.6; }
.loc-item .li-tx a{ transition:.3s; }
.loc-item .li-tx a:hover{ color:var(--point); }
@media(max-width:1024px){ .loc-wrap{ flex-direction:column; gap:32px; } .loc-map,.loc-map iframe{ min-height:340px; } }

/* contact form */
.contact-intro{ text-align:center; margin-bottom:46px; }
.contact-intro h2{ font-size:var(--fs-h3); font-weight:var(--fw-extra); margin-top:10px; letter-spacing:var(--ls-snug); }
.contact-intro p{ color:#888; margin-top:12px; font-size:16px; }
.contact-form{ max-width:760px; margin:0 auto; }
.cf-grid{ display:flex; gap:20px; }
.cf-grid .cf-row{ flex:1; }
.cf-row{ margin-bottom:22px; }
.cf-row label{ display:block; font-size:14px; font-weight:700; margin-bottom:9px; color:#222; }
.cf-row .req{ color:var(--point); margin-left:3px; }
.cf-row input,.cf-row textarea{ width:100%; padding:15px 16px; border:1px solid #ddd; border-radius:9px; font-size:15px; font-family:inherit; color:#222; background:#fff; transition:.25s; }
.cf-row input::placeholder,.cf-row textarea::placeholder{ color:#bbb; }
.cf-row input:focus,.cf-row textarea:focus{ outline:none; border-color:var(--point); box-shadow:0 0 0 3px rgba(216,21,27,.13); }
.cf-row textarea{ min-height:170px; resize:vertical; line-height:1.6; }
.cf-err{ color:var(--point); font-size:13px; margin-top:7px; display:none; }
.cf-err.on{ display:block; }
.cf-agree{ display:flex; align-items:flex-start; gap:10px; margin:4px 0 8px; font-size:14px; color:#555; cursor:pointer; }
.cf-agree input{ width:18px; height:18px; margin-top:2px; flex:none; accent-color:var(--point); cursor:pointer; }
.cf-agree a{ color:var(--point); text-decoration:underline; }
.cf-agree b{ color:var(--point); }
.err-agree{ margin:0 0 18px; }
.cf-submit{ width:100%; margin-top:18px; padding:17px; border-radius:10px; background:var(--point); color:#fff; font-size:16px; font-weight:700; transition:.3s; }
.cf-submit:hover{ filter:brightness(1.08); }
.cf-done{ display:none; text-align:center; max-width:760px; margin:0 auto; padding:48px 30px; background:#f7f7f7; border-radius:14px; }
.cf-done.show{ display:block; }
.cf-done i{ font-size:42px; color:#2bb673; margin-bottom:16px; }
.cf-done h3{ font-size:22px; font-weight:800; color:#1a1a1a; margin-bottom:10px; }
.cf-done p{ font-size:15px; color:#777; line-height:1.6; }
@media(max-width:600px){ .cf-grid{ flex-direction:column; gap:0; } .contact-intro h2{ font-size:26px; } }

/* ---------- right scroll loader ---------- */
.scroll-loader{
  position:fixed; right:max(var(--gut), calc((100vw - 1600px) / 2 + var(--gut))); bottom:16%; z-index:9990;
  width:42px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; pointer-events:none;
}
.sl-num{ width:100%; text-align:center; font-size:11px; font-weight:800; color:var(--point); font-variant-numeric:tabular-nums; letter-spacing:.02em; }
.sl-num small{ font-size:9px; font-weight:700; margin-left:1px; }
.sl-track{ width:1px; height:170px; background:rgba(150,150,150,.22); border-radius:2px; overflow:hidden; position:relative; }
.sl-fill{ position:absolute; top:0; left:0; width:100%; height:0%; background:var(--point); border-radius:2px; }
.sl-label{ writing-mode:vertical-rl; font-size:9px; font-weight:700; letter-spacing:.28em; color:rgba(128,128,128,.7); }
@media(max-width:1200px){ .scroll-loader{ bottom:10%; } }
@media(max-width:1024px){ .sl-track{ height:120px; } }
@media(max-width:768px){ .scroll-loader{ display:none; } }


/* =========================================================
   RESPONSIVE — 디바이스 / 방향 통합 레이어
   폰트는 :root의 fluid clamp 스케일이 폭에 비례해 자동 조정되므로
   이 레이어는 "레이아웃 전환"(컬럼 수·정렬·내비)만 담당한다.
   데스크탑 → 노트북(1366) → 태블릿 가로/작은 노트북(1200) →
   태블릿 세로·폴드 펼침(1024·820) → 모바일(768·600·480) →
   초소형·폴드 닫힘(360·280) → 가로 방향(landscape)
   ========================================================= */
html,body{ overflow-x:hidden; }
img,iframe,svg{ max-width:100%; }

@media(min-width:1201px){ .wmenu-mo{ display:none; } }

/* ── 노트북 (≤1366) : GNB 패딩만 축소, 거터/리듬은 토큰이 처리 ── */
@media(max-width:1366px){
  #gnb > ul > li > a, #gnb .menu > li > a{ padding:56px 20px; }
  header.scr #gnb > ul > li > a, header.scr #gnb .menu > li > a{ padding:28px 20px; }
}

/* ── 태블릿 가로 / 작은 노트북 (≤1200) : 모바일 내비 전환 + 2단·스택 ── */
@media(max-width:1200px){
  .mn{ display:none; }
  .log{ display:none; }
  .wmenu-mo{ display:block; }
  .lg .logo-svg{ height:34px; }
  .hd_con{ min-height:74px; padding:0 30px; }
  header.scr .hd_con{ min-height:74px; }

  #sc02 .mc-con{ flex-direction:column; align-items:stretch; }
  .sc02-tit{ margin-bottom:1.2rem; }
  .sc02-cont{ padding-left:0; text-align:left; }
  .sc02-con{ padding-left:var(--gut); padding-right:var(--gut); }

  .sc04-box{ width:49%; }
  .sc05-wrap{ grid-template-columns:repeat(2,1fr); }
  .wz-grid > li{ width:50%; }

  .sc07-wrap{ flex-direction:column; gap:0; }
  .sc07-box{ width:100%; }
  .sc07-box:first-child{ margin-bottom:var(--tit-gap); }

  .sc08-wrap, .sc08-wrap.rv{ flex-direction:column; }
  .sc08-box{ width:100%; }
  .sc08-box:first-child{ margin-bottom:var(--inner-gap); }
  .sc08-caption, .sc08-wrap.rv .sc08-caption{ padding-left:0; padding-right:0; }
}

/* ── 폴드 펼침(≈717~884) · 소형 태블릿 세로 (≤820) ── */
@media(max-width:820px){
  .sc08-caption > h5{ margin-bottom:1.4rem; padding-bottom:1.4rem; }
}

/* ── 모바일 / 대형폰 (≤768) ── */
@media(max-width:768px){
  .hd_con{ min-height:60px; padding:0 18px; }
  .menu-toggler{ right:18px; }
  .lg .logo-svg{ height:30px; }
  .main-caption > h2{ margin-bottom:1.4rem; }
  .sc04-box{ width:49%; }
  .sc05-wrap{ grid-template-columns:repeat(2,1fr); }
  .wz-grid > li{ width:50%; }
  /* footer 스택 */
  .ft_wrap{ flex-direction:column; align-items:flex-start; gap:2rem; }
  .ft_box{ width:100%; }
  .ft-lg, .ft_txt, .ft_info{ text-align:center; }
  .ft-lg{ display:flex; justify-content:center; }
  #fnb > ul{ text-align:center; }
  #fnb > ul > li{ margin:0 9px 10px; }
  .sns{ justify-content:center; }
  .sns > li:first-child > a{ margin-left:0; }
  footer{ padding:60px 0; }
}

/* ── 일반 모바일 (≤600) : 단일 컬럼 + iOS 줌 방지(입력 16px) ── */
@media(max-width:600px){
  .more-btn{ padding:12px 18px; border-radius:8px; }
  .sc02-card-caption{ flex-direction:column; align-items:flex-start; gap:6px; }
  .sc04-box{ width:100%; }
  .sc05-wrap{ grid-template-columns:repeat(2,1fr); }
  .wz-grid > li{ width:50%; }
  .sc07-tit{ flex-direction:column; align-items:flex-start; gap:1rem; }
  .nl-date{ width:26%; }
  .nl-tit{ width:74%; }
  .tab_tit > ul > li{ margin:0 10px; }
  .cf-row input, .cf-row textarea,
  .wf-input, .wf-textarea, .wf-select,
  .blist-search input, .lg-input{ font-size:16px; }
}

/* ── 소형 모바일 (≤480) ── */
@media(max-width:480px){
  .hd_con{ min-height:58px; padding:0 16px; }
  .menu-toggler{ right:16px; }
  .lg .logo-svg{ height:28px; }
  .mouse{ width:42px; height:42px; }
  .more-btn.big{ padding:11px 16px; }
  .sp-nav .nav-link{ padding:14px 12px; }
  .tab_tit > ul > li{ margin:0 8px; }
  .loc-item{ padding:18px 0; }
  .cf-submit{ padding:15px; }
  .sc05-wrap{ grid-template-columns:1fr; }
  .wz-grid > li{ width:100%; }
}

/* ── 초소형 / 폴드 닫힘 근접 (≤360) ── */
@media(max-width:360px){
  .lg .logo-svg{ height:26px; }
  .menu-toggler{ width:26px; height:16px; }
  .main-caption{ bottom:12%; }
  .sp-nav .nav-link{ padding:13px 9px; }
  .loc-map, .loc-map iframe{ min-height:280px; }
  .sc04-box{ padding:1.3rem 1.1rem; }
}

/* ── 갤럭시 Z 폴드 완전 닫힘 (≤300/280) ── */
@media(max-width:300px){
  .lg .logo-svg{ height:24px; }
  .menu-toggler{ width:24px; }
  .mouse{ width:38px; height:38px; }
  .sp-nav .nav-link{ padding:12px 7px; }
  .doc-body blockquote{ padding-left:18px; }
  .cf-agree{ font-size:13px; }
  .loc-item .li-ic{ width:40px; height:40px; font-size:15px; }
}

/* ── 가로 방향(landscape) 짧은 화면 : 히어로/서브히어로 클리핑 방지 ── */
@media (orientation:landscape) and (max-height:600px){
  .main-caption{ bottom:9%; }
}
@media (orientation:landscape) and (max-height:480px){
  .main-caption > h2{ font-size:clamp(1.25rem, 7.5vh, 2.5rem); margin-bottom:.9rem; }
  .main-caption > p{ margin-bottom:.7rem; }
  .subtop{ height:300px; }
  .st-caption{ top:52%; }
}

/* =========================================================
   sc04 FEATURES — 모바일 캐러셀 (가로 스와이프 / scroll-snap)
   ========================================================= */
@media(max-width:768px){
  .sc04-wrap{
    flex-wrap:nowrap; justify-content:flex-start;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory; gap:14px; padding-bottom:8px;
    scrollbar-width:none;
  }
  .sc04-wrap::-webkit-scrollbar{ display:none; }
  .sc04-box{
    flex:0 0 84%; width:84%; margin-bottom:0;
    scroll-snap-align:start;
  }
  .sc04-dots{ display:flex; justify-content:center; align-items:center; gap:8px; margin-top:22px; }
  .sc04-dot{ width:8px; height:8px; border-radius:50%; background:#d3d3d3; transition:.3s; cursor:pointer; }
  .sc04-dot.on{ width:24px; border-radius:5px; background:var(--point); }
}
@media(min-width:769px){ .sc04-dots{ display:none; } }
@media(max-width:480px){ .sc04-box{ flex:0 0 88%; width:88%; } }
/* =========================================================
   WordPress nav-menu compatibility (wp_nav_menu output)
   ========================================================= */
#gnb .menu{ display:flex; flex-flow:row wrap; }
#gnb .sub-menu{
  position:absolute; top:100%; left:50%;
  transform:translateX(-50%) translateY(14px);
  min-width:196px; background:#fff; border-radius:14px; padding:10px;
  text-align:left; box-shadow:0 22px 46px -14px rgba(0,0,0,.3), 0 4px 12px -6px rgba(0,0,0,.12);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .3s ease, transform .3s cubic-bezier(.2,.7,.2,1), visibility .3s; overflow:hidden;
}
#gnb .menu > li{ position:relative; }
#gnb .menu > li:hover > .sub-menu{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
#gnb .menu > li > a{ display:block; padding:62px 24px; font-size:16px; font-weight:700; transition:all .4s; color:#fff; }
header.scr #gnb .menu > li > a{ padding:30px 24px; }
#gnb .sub-menu > li > a{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:11px 14px; font-size:14px; font-weight:500; white-space:nowrap;
  color:#555; border-radius:9px; transition:.25s;
}
#gnb .sub-menu > li > a::after{ content:"\f061"; font-family:"Font Awesome 6 Free"; font-weight:900; font-size:9px; color:var(--point); opacity:0; transform:translateX(-6px); transition:.25s; }
#gnb .sub-menu > li > a:hover{ background:rgba(216,21,27,.07); color:var(--point); padding-left:18px; }
#gnb .sub-menu > li > a:hover::after{ opacity:1; transform:translateX(0); }

/* mobile menu (wp output) */
.mo_mn_mn .sub-menu{ display:none; background:#f7f7f8; border-radius:12px; padding:6px; margin:4px 0 10px; }
.mo_mn_mn .sub-menu > li > a{ display:flex; align-items:center; gap:10px; padding:11px 14px; font-size:15px; font-weight:500; color:#777; border-radius:8px; transition:.2s; }
.mo_mn_mn .sub-menu > li > a::before{ content:""; width:5px; height:5px; border-radius:50%; background:#ccc; flex:none; transition:.2s; }
.mo_mn_mn .sub-menu > li > a:hover{ color:var(--point); background:rgba(216,21,27,.07); }
.mo_mn_mn .sub-menu > li > a:hover::before{ background:var(--point); }
.mo_mn_mn > li > a{ display:block; padding:16px 0; font-size:18px; font-weight:700; border-bottom:1px solid #f0f0f0; position:relative; }
.mo_mn_mn > li.menu-item-has-children > a::after{ content:""; width:11px; height:2px; background:var(--point); position:absolute; top:26px; right:6px; }
.mo_mn_mn > li.menu-item-has-children > a::before{ content:""; width:2px; height:11px; background:var(--point); position:absolute; top:21px; right:10.5px; transition:.3s; }
.mo_mn_mn > li.menu-item-has-children > a.act::before{ opacity:0; }

/* WP alignment helpers + content */
.aligncenter{ display:block; margin:0 auto; }
.alignright{ float:right; margin:0 0 1rem 1.5rem; }
.alignleft{ float:left; margin:0 1.5rem 1rem 0; }
.wp-caption-text{ font-size:13px; color:#999; text-align:center; margin-top:8px; }
.doc-body img{ max-width:100%; height:auto; border-radius:10px; }
.doc-body a{ color:var(--point); text-decoration:underline; }
.pager{ display:flex; justify-content:center; gap:8px; margin-top:46px; }
.pager a,.pager span{ display:inline-flex; min-width:40px; height:40px; align-items:center; justify-content:center; padding:0 12px; border:1px solid #e2e2e2; border-radius:8px; font-size:14px; font-weight:600; color:#444; transition:.2s; }
.pager a:hover,.pager .current{ background:var(--point); border-color:var(--point); color:#fff; }
.bd-meta{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; font-size:13px; color:#888; padding-bottom:24px; margin-bottom:32px; border-bottom:1px solid #ececec; }

/* custom-logo (the_custom_logo) sizing */
.lg .custom-logo-link{ display:block; }
.lg img.custom-logo{ height:38px; width:auto; display:block; }
header.scr .lg img.custom-logo{ height:32px; }
.ft-lg img.custom-logo{ height:38px; width:auto; }
@media(max-width:1200px){ .lg img.custom-logo{ height:34px; } }
@media(max-width:768px){ .lg img.custom-logo{ height:30px; } }
@media(max-width:480px){ .lg img.custom-logo{ height:28px; } }
/* static sub hero wrapper (WP pages) */
.subpage-static .subtop{ display:block; }

/* GALLERY BOARD (archive-gallery) — 정사각형 카드, 열 수 가변 */
.gb-filter{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:40px; }
.gb-filter a{ padding:9px 20px; border:1px solid #e2e2e2; border-radius:30px; font-size:14px; font-weight:600; color:#555; transition:.25s; }
.gb-filter a:hover,.gb-filter a.on{ background:var(--point); border-color:var(--point); color:#fff; }
.gb-grid{ display:grid; grid-template-columns:repeat(var(--gb-cols,3),1fr); gap:28px 24px; }
.gb-card{ color:#1a1a1a; }
.gb-img{ width:100%; aspect-ratio:1/1; overflow:hidden; border-radius:12px; background:#f0f0f0; }
.gb-img img{ width:100%; height:100%; object-fit:cover; transition:.6s; }
.gb-card:hover .gb-img img{ transform:scale(1.05); }
.gb-cap{ margin-top:14px; }
.gb-title{ font-size:16px; font-weight:700; color:#1a1a1a; transition:.25s; margin-bottom:8px; line-height:1.4; }
.gb-card:hover .gb-title{ color:var(--point); }
.gb-meta{ display:flex; flex-wrap:wrap; gap:12px; font-size:13px; color:#999; }
.gb-meta span{ display:inline-flex; align-items:center; gap:5px; }
.gb-meta i{ font-size:12px; color:#bbb; }
@media(max-width:1024px){ .gb-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .gb-grid{ grid-template-columns:1fr; } }

/* =========================================================
   WordPress admin bar — 고정 헤더가 관리자 막대를 가리지 않도록 오프셋
   ========================================================= */
body.admin-bar header{ top:32px; }
body.admin-bar .mt-menu{ top:32px; height:calc(100vh - 32px); height:calc(100dvh - 32px); }
@media screen and (max-width:782px){
  body.admin-bar header{ top:46px; }
  body.admin-bar .mt-menu{ top:46px; height:calc(100vh - 46px); height:calc(100dvh - 46px); }
}

/* sc05 갤러리 항목 링크(실시간 게시판 모드) */
.sc05-box > .sc05-link{ display:block; width:100%; height:100%; }
.sc05-box > .sc05-link img{ width:100%; height:100%; object-fit:cover; }

/* 관리자 글쓰기 버튼 (서브페이지/게시판) */
.space-write{ display:flex; justify-content:flex-end; margin-bottom:20px; }
.space-write-btn{ display:inline-flex; align-items:center; gap:8px; padding:11px 22px; background:var(--point); color:#fff; border-radius:30px; font-weight:700; font-size:14px; line-height:1; transition:.25s; }
.space-write-btn:hover{ filter:brightness(.92); transform:translateY(-1px); color:#fff; }
.space-write-btn i{ font-size:13px; }

/* 프론트 글쓰기 폼 (라이믹스형) */
.space-form{ max-width:880px; margin:0 auto; }
.wf-error{ background:rgba(216,21,27,.08); color:var(--point); border:1px solid rgba(216,21,27,.25); padding:12px 16px; border-radius:8px; margin-bottom:20px; font-size:14px; }
.wf-row{ display:flex; gap:20px; padding:20px 0; border-bottom:1px solid #ededed; align-items:flex-start; }
.wf-label{ flex:0 0 120px; font-size:15px; font-weight:700; color:#333; padding-top:10px; }
.wf-req{ color:var(--point); }
.wf-field{ flex:1; min-width:0; }
.wf-input,.wf-select,.wf-textarea{ width:100%; padding:12px 14px; border:1px solid #d8d8d8; border-radius:8px; font-size:15px; font-family:inherit; color:#222; background:#fff; transition:border-color .2s; }
.wf-input:focus,.wf-select:focus,.wf-textarea:focus{ outline:none; border-color:var(--point); }
.wf-textarea{ resize:vertical; line-height:1.7; }
.wf-file{ font-size:14px; }
.wf-help{ font-size:12px; color:#999; margin-top:8px; }
.wf-actions{ display:flex; justify-content:center; gap:12px; margin-top:32px; }
.wf-btn{ display:inline-flex; align-items:center; justify-content:center; min-width:120px; padding:14px 28px; border-radius:30px; font-size:15px; font-weight:700; cursor:pointer; transition:.25s; border:none; }
.wf-cancel{ background:#f0f0f0; color:#555; }
.wf-cancel:hover{ background:#e6e6e6; color:#333; }
.wf-submit{ background:var(--point); color:#fff; }
.wf-submit:hover{ filter:brightness(.92); transform:translateY(-1px); }
@media(max-width:600px){ .wf-row{ flex-direction:column; gap:8px; } .wf-label{ flex:none; padding-top:0; } }

/* 첨부파일 목록 (글 보기) */
.att-list{ margin-top:36px; padding-top:24px; border-top:1px solid #ececec; }
.att-list h4{ font-size:15px; font-weight:800; color:#333; margin-bottom:16px; display:flex; align-items:center; gap:8px; }
.att-list h4 i{ color:var(--point); font-size:13px; }
.att-imgs{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.att-img{ display:block; width:140px; height:96px; border-radius:8px; overflow:hidden; border:1px solid #e6e6e6; }
.att-img img{ width:100%; height:100%; object-fit:cover; transition:.4s; }
.att-img:hover img{ transform:scale(1.06); }
.att-files{ list-style:none; padding:0; margin:0; }
.att-files li{ margin:6px 0; }
.att-files a{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color:#444; padding:8px 14px; background:#f5f5f6; border-radius:8px; transition:.2s; }
.att-files a:hover{ background:rgba(216,21,27,.08); color:var(--point); }
.att-files a i{ color:var(--point); }
/* 프론트 에디터 영역 */
.wf-editor .wp-editor-wrap{ border-radius:8px; }
.wf-editor .wp-editor-container{ border-radius:0 0 8px 8px; }

/* 게시판 목록 표 (번호·제목·글쓴이·작성일·조회) */
.board-tbl{ width:100%; border-collapse:collapse; }
.board-tbl thead th{ font-size:14px; font-weight:700; color:#777; padding:14px 10px; border-top:2px solid #222; border-bottom:1px solid #ddd; text-align:center; }
.board-tbl thead th.bt-tit{ text-align:left; padding-left:6px; }
.board-tbl tbody td{ font-size:15px; color:#555; padding:18px 10px; border-bottom:1px solid #ededed; text-align:center; vertical-align:middle; }
.board-tbl td.bt-tit{ text-align:left; }
.board-tbl td.bt-tit a{ color:#222; font-weight:600; transition:.2s; }
.board-tbl td.bt-tit a:hover{ color:var(--point); }
.board-tbl .bt-no,.board-tbl .bt-au,.board-tbl .bt-dt,.board-tbl .bt-hit{ color:#999; font-size:14px; white-space:nowrap; }
.board-tbl th.bt-no,.board-tbl td.bt-no{ width:80px; }
.board-tbl th.bt-au,.board-tbl td.bt-au{ width:140px; }
.board-tbl th.bt-dt,.board-tbl td.bt-dt{ width:120px; }
.board-tbl th.bt-hit,.board-tbl td.bt-hit{ width:80px; }
.board-tbl .bt-empty{ padding:60px 0; color:#999; text-align:center; }
@media(max-width:768px){
	.board-tbl thead{ display:none; }
	.board-tbl, .board-tbl tbody, .board-tbl tr, .board-tbl td{ display:block; width:auto; }
	.board-tbl tr{ padding:14px 2px; border-bottom:1px solid #ededed; }
	.board-tbl tr:first-child{ border-top:2px solid #222; }
	.board-tbl td{ border:0; padding:2px 4px; text-align:left; }
	.board-tbl td.bt-tit{ font-size:16px; margin-bottom:6px; }
	.board-tbl td.bt-tit a{ color:#222; }
	.board-tbl td.bt-no{ display:none; }
	.board-tbl .bt-au,.board-tbl .bt-dt,.board-tbl .bt-hit{ display:inline-block; margin-right:14px; font-size:13px; }
	.board-tbl .bt-au::before{ content:"글쓴이 "; color:#bbb; }
	.board-tbl .bt-dt::before{ content:"작성일 "; color:#bbb; }
	.board-tbl .bt-hit::before{ content:"조회 "; color:#bbb; }
	.board-tbl .bt-empty{ text-align:center; }
}

/* 헤더 소셜 아이콘 (다국어 대체) */
.hd-sns{ display:inline-flex; align-items:center; gap:6px; }
.hd-sns-i{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; color:#fff; font-size:16px; transition:.25s; }
.hd-sns-i:hover{ background:rgba(255,255,255,.14); color:#fff; }
header.scr .hd-sns-i{ color:#fff; }
/* 로그인 버튼 = 기존 회원가입(레드 필) 디자인 */
.log .util-login{ display:inline-flex; align-items:center; gap:7px; padding:11px 24px; background:var(--point); color:#fff; border-radius:30px; font-size:15px; font-weight:700; line-height:1; transition:.25s; }
.log .util-login:hover{ filter:brightness(.92); transform:translateY(-1px); color:#fff; }
.log .util-login i{ font-size:14px; }
/* 로그아웃 = 마이페이지 옆 보조(아이콘) 버튼 */
.log .util-logout{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; margin-left:9px; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#fff; font-size:14px; transition:.25s; }
.log .util-logout:hover{ background:var(--point); border-color:var(--point); color:#fff; transform:translateY(-1px); }
header.scr .log .util-logout{ border-color:rgba(0,0,0,.16); color:#222; }
header.scr .log .util-logout:hover{ background:var(--point); border-color:var(--point); color:#fff; }
/* 모바일 소셜 */
.sns-mo{ margin-top:14px; }
.sns-mo .hd-sns-i{ color:#222; width:42px; height:42px; border:1px solid #e4e4e4; }
.sns-mo .hd-sns-i:hover{ background:var(--point); border-color:var(--point); color:#fff; }

/* 커스텀 로그인 페이지 */
.login-wrap{ min-height:calc(100vh - 200px); display:flex; align-items:center; justify-content:center; padding:120px 20px 80px; background:#fff; }
.lg-card{ width:100%; max-width:560px; background:#fff; border:1px solid #ececec; border-radius:24px; box-shadow:0 30px 70px -30px rgba(0,0,0,.18); padding:54px 56px 40px; }
.lg-title{ font-size:42px; font-weight:800; color:#111; letter-spacing:-.02em; }
.lg-title span{ color:var(--point); }
.lg-sub{ margin-top:14px; font-size:16px; color:#9a9a9a; }
.lg-error{ margin-top:20px; display:flex; align-items:center; gap:8px; background:rgba(216,21,27,.07); color:var(--point); border:1px solid rgba(216,21,27,.22); padding:11px 14px; border-radius:10px; font-size:14px; }
.lg-form{ margin-top:42px; }
.lg-field{ margin-bottom:30px; }
.lg-label{ display:flex; align-items:center; gap:9px; font-size:16px; font-weight:700; color:#222; margin-bottom:14px; }
.lg-label i{ color:#222; font-size:15px; }
.lg-input{ width:100%; border:0; border-bottom:1px solid #d6d6d6; background:#eef2fb; padding:15px 14px; font-size:16px; color:#222; transition:.2s; }
.lg-input:focus{ outline:none; background:#e7edfb; border-bottom-color:var(--point); }
.lg-remember{ display:flex; align-items:center; justify-content:flex-end; gap:8px; font-size:15px; color:#555; margin-bottom:18px; cursor:pointer; }
.lg-remember input{ width:18px; height:18px; accent-color:var(--point); }
.lg-submit{ display:block; width:100%; text-align:center; padding:22px; background:#111; color:#fff; border:0; border-radius:14px; font-size:18px; font-weight:800; cursor:pointer; transition:.25s; }
.lg-submit:hover{ background:#000; color:#fff; transform:translateY(-1px); }
.lg-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; }
.lg-foot span{ font-size:14px; color:#666; }
.lg-foot a{ font-size:15px; font-weight:700; color:#111; text-decoration:underline; }
.lg-foot a:hover{ color:var(--point); }
@media(max-width:600px){ .lg-card{ padding:40px 26px 30px; border-radius:18px; } .lg-title{ font-size:34px; } .lg-foot{ flex-direction:column; align-items:flex-start; gap:8px; } }

/* 갤러리 보드 빈 상태 (중앙) */
.gb-empty{ grid-column:1 / -1; text-align:center; padding:80px 20px; color:#bbb; }
.gb-empty i{ font-size:46px; color:#e0e0e0; display:block; margin-bottom:18px; }
.gb-empty p{ font-size:15px; color:#999; }

/* 갤러리 필터 탭 — 더 심플(밑줄형) */
.gb-filter{ display:flex; flex-wrap:wrap; justify-content:center; gap:28px; margin-bottom:44px; border-bottom:1px solid #eee; padding-bottom:0; }
.gb-filter a{ padding:0 0 14px; border:0; border-radius:0; background:none; font-size:15px; font-weight:600; color:#999; position:relative; transition:color .2s; }
.gb-filter a::after{ content:""; position:absolute; left:0; bottom:-1px; width:0; height:2px; background:var(--point); transition:width .3s; }
.gb-filter a:hover{ background:none; color:#222; }
.gb-filter a.on{ background:none; color:#111; }
.gb-filter a.on::after{ width:100%; }

/* 로그인 페이지 — 더 심플/깔끔 */
.lg-card{ max-width:440px; border:1px solid #f0f0f0; border-radius:18px; box-shadow:0 20px 50px -28px rgba(0,0,0,.12); padding:48px 44px 36px; }
.lg-title{ font-size:34px; }
.lg-sub{ margin-top:10px; font-size:14px; }
.lg-form{ margin-top:34px; }
.lg-field{ margin-bottom:22px; }
.lg-label{ font-size:14px; font-weight:600; color:#555; margin-bottom:10px; }
.lg-label i{ color:#bbb; font-size:13px; }
.lg-input{ background:#f6f7f9; border:1px solid #eee; border-radius:10px; padding:14px 14px; font-size:15px; }
.lg-input:focus{ background:#fff; border-color:var(--point); border-bottom-color:var(--point); }
.lg-remember{ font-size:14px; color:#888; margin-bottom:16px; }
.lg-submit{ padding:18px; border-radius:12px; font-size:16px; }
.lg-foot{ margin-top:22px; }
.lg-foot span{ font-size:13px; color:#999; }
.lg-foot a{ font-size:14px; }

/* 해시태그 칩 (공통) */
.htag{ display:inline-block; color:var(--point); font-size:13px; font-weight:600; margin-right:10px; }
.htag:last-child{ margin-right:0; }

/* 갤러리 카드 — 카테고리 뱃지 + 해시태그 */
.gb-cat{ display:inline-block; padding:5px 13px; border:1px solid #e0e0e0; border-radius:30px; font-size:12px; font-weight:600; color:#666; margin-bottom:10px; }
.gb-card:hover .gb-cat{ border-color:var(--point); color:var(--point); }
.gb-title{ margin-bottom:10px; }
.gb-tags{ margin-bottom:10px; line-height:1.7; }

/* NOTICE 게시판 — 리스트형 (번호·카테고리·제목·날짜) */
.blist-head{ display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:10px; }
.blist-count{ font-size:15px; color:#555; }
.blist-count b{ color:#111; font-weight:800; }
.blist-search{ display:flex; align-items:center; gap:10px; width:min(360px,46%); border-bottom:2px solid #1c1c1c; padding:6px 2px; }
.blist-search input{ flex:1; min-width:0; border:0; background:none; font-size:15px; color:#222; padding:4px 0; }
.blist-search input:focus{ outline:none; }
.blist-search input::placeholder{ color:#bbb; }
.blist-search button{ border:0; background:none; color:#333; font-size:17px; cursor:pointer; padding:0 2px; }
.blist-search button:hover{ color:var(--point); }
.blist{ list-style:none; margin:24px 0 0; padding:0; border-top:2px solid #1c1c1c; }
.blist-row{ border-bottom:1px solid #eee; }
.blist-link{ display:flex; align-items:center; gap:26px; padding:26px 8px; transition:background .2s; }
.blist-link:hover{ background:#fafafa; }
.blist-no{ flex:none; width:34px; text-align:center; font-size:16px; color:#aaa; font-weight:600; }
.blist-cat{ flex:none; display:inline-flex; align-items:center; justify-content:center; min-width:84px; padding:10px 16px; background:#f1f2f4; color:#888; border-radius:30px; font-size:14px; font-weight:600; }
.blist-tit{ flex:1; min-width:0; font-size:18px; font-weight:700; color:#222; letter-spacing:-.01em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; transition:.2s; }
.blist-link:hover .blist-tit{ color:var(--point); }
.blist-date{ flex:none; font-size:15px; color:#bbb; font-weight:500; white-space:nowrap; }
.blist-empty{ text-align:center; padding:70px 20px; color:#999; font-size:15px; }
.blist-empty i{ margin-right:8px; color:#ccc; }
@media(max-width:768px){
	.blist-head{ flex-direction:column; align-items:stretch; gap:14px; }
	.blist-search{ width:100%; }
	.blist-link{ flex-wrap:wrap; gap:10px 14px; padding:20px 4px; }
	.blist-no{ width:auto; }
	.blist-cat{ min-width:0; padding:6px 12px; font-size:13px; }
	.blist-tit{ flex:1 1 100%; order:5; white-space:normal; font-size:16px; }
	.blist-date{ font-size:13px; }
}

/* 갤러리 카드 해시태그 — 칩(알약) 디자인 */
.gb-tags{ margin-bottom:10px; display:flex; flex-wrap:wrap; gap:6px; }
.gb-tags .htag{ margin:0; padding:4px 11px; background:#f3f4f6; color:#555; border-radius:20px; font-size:12px; font-weight:600; transition:.2s; }
.gb-card:hover .gb-tags .htag{ background:rgba(216,21,27,.09); color:var(--point); }
.gb-title{ margin-bottom:10px; }

/* 단일 글 해시태그 */
.doc-tags{ margin:24px 0 8px; display:flex; flex-wrap:wrap; gap:8px; }
.doc-tags .htag{ margin:0; padding:6px 14px; background:#f3f4f6; color:#555; border-radius:20px; font-size:13px; font-weight:600; }

/* 갤러리 카드 — 재배치(제목→메타→해시태그) 간격 */
.gb-cap .gb-title{ margin-bottom:8px; }
.gb-cap .gb-meta{ margin-bottom:10px; }
.gb-cap .gb-tags{ margin-bottom:0; }


/* 게시판 하단: 페이지네이션(중앙) + 검색창(우측) */
.blist-foot{ position:relative; display:flex; align-items:center; justify-content:center; margin-top:120px; gap:20px; }
.blist-foot .pager{ margin:0; }
.blist-foot .blist-search{ position:absolute; right:0; bottom:0; }
@media(max-width:768px){
	.blist-foot{ flex-direction:column; gap:20px; }
	.blist-foot .blist-search{ position:static; width:100%; }
}
.blist-head .space-write{ margin:0; }

/* 업로드 로고 (SVG/PNG) */
.lg .logo-img{ width:var(--logo-w,150px); height:auto; display:block; }

/* 히어로 배경 — MP4 / 유튜브 */
.main-bg{ position:absolute; inset:0; width:100%; height:100%; overflow:hidden; z-index:0; }
.main-bg video{ width:100%; height:100%; object-fit:cover; }
.main-bg.main-yt{ pointer-events:none; }
.main-bg.main-yt iframe{ position:absolute; top:50%; left:50%; width:100vw; height:56.25vw; min-height:100%; min-width:177.77vh; transform:translate(-50%,-50%); border:0; }

/* ===== CONTACT US 페이지 (.contact-wrap 스코프) ===== */
.contact-wrap .contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.contact-wrap .contact-h{ font-size:var(--fs-h3); font-weight:var(--fw-extra); line-height:var(--lh-head); color:#141414; letter-spacing:var(--ls-snug); margin:0; }
.contact-wrap .contact-lead{ margin:18px 0 32px; font-size:16px; color:#666; line-height:1.7; }
.contact-wrap .contact-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:22px; }
.contact-wrap .contact-list li{ display:flex; gap:16px; align-items:flex-start; border:0; padding:0; }
.contact-wrap .ci-ic{ flex:none; width:46px; height:46px; border-radius:50%; background:rgba(216,21,27,.08); color:var(--point); display:inline-flex; align-items:center; justify-content:center; font-size:17px; }
.contact-wrap .contact-list b{ display:block; font-size:13px; color:#999; font-weight:700; margin-bottom:4px; letter-spacing:.03em; }
.contact-wrap .contact-list div{ font-size:15px; color:#333; line-height:1.6; }
.contact-wrap .contact-list a{ color:#333; }
.contact-wrap .contact-list a:hover{ color:var(--point); }
.contact-wrap .contact-form{ max-width:none; margin:0; background:#fff; border:1px solid #eee; border-radius:18px; padding:38px 36px; box-shadow:0 22px 50px -34px rgba(0,0,0,.22); }
.contact-wrap .cf-row{ margin-bottom:18px; display:flex; flex-direction:column; gap:8px; }
.contact-wrap .cf-row label{ display:block; font-size:13px; font-weight:700; color:#555; margin:0; }
.contact-wrap .cf-row input,.contact-wrap .cf-row textarea{ width:100%; border:1px solid #e6e6e6; border-radius:10px; padding:13px 14px; font-size:15px; background:#fafbfc; box-shadow:none; transition:.2s; font-family:inherit; }
.contact-wrap .cf-row input:focus,.contact-wrap .cf-row textarea:focus{ outline:none; border-color:var(--point); background:#fff; box-shadow:none; }
.contact-wrap .cf-row textarea{ min-height:150px; resize:vertical; }
.contact-wrap .cf-submit{ width:auto; display:inline-flex; align-items:center; gap:9px; margin-top:6px; padding:15px 30px; background:#111; color:#fff; border:0; border-radius:30px; font-size:15px; font-weight:700; cursor:pointer; transition:.25s; }
.contact-wrap .cf-submit:hover{ background:var(--point); transform:translateY(-1px); }
.contact-wrap .cf-sent{ display:flex; align-items:center; gap:9px; margin-bottom:26px; padding:15px 18px; background:rgba(22,163,74,.08); border:1px solid rgba(22,163,74,.25); color:#15803d; border-radius:12px; font-size:14px; font-weight:600; }
@media(max-width:900px){ .contact-wrap .contact-grid{ grid-template-columns:1fr; gap:40px; } .contact-wrap .contact-h{ font-size:28px; } }

/* 푸터 회사정보 */
.ft_info{ font-size:13px; line-height:1.8; color:#9a9a9a; margin-top:16px; }
.ft_info p{ margin:0; }

/* =========================================================
   NEWS 카드뉴스 (에디토리얼 매거진) — featured 헤드라인 + 3단 카드 그리드
   ========================================================= */
.mag-wrap{ padding-top:4px; }

/* 공통 메타 / READ MORE */
.mag-date{ display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700; letter-spacing:.06em; color:#9a9a9a; text-transform:uppercase; }
.mag-date i{ color:var(--point); font-size:12px; }
.mag-more{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:800; letter-spacing:.05em; color:#141414; text-transform:uppercase; }
.mag-more i{ color:var(--point); transition:.3s; }

/* 대형 헤드라인 (featured) */
.mag-lead{ display:grid; grid-template-columns:1.12fr 1fr; align-items:stretch; border:1px solid var(--line); border-radius:20px; overflow:hidden; margin-bottom:calc(var(--card-gap,30px) + 16px); background:#fff; color:inherit; text-decoration:none; transition:.35s; }
.mag-lead:hover{ box-shadow:0 36px 70px -38px rgba(0,0,0,.34); transform:translateY(-3px); }
.mag-lead-thumb{ overflow:hidden; background:#f2f2f2; }
.mag-lead-thumb img{ width:100%; height:100%; min-height:360px; object-fit:cover; transition:.7s; display:block; }
.mag-lead:hover .mag-lead-thumb img{ transform:scale(1.05); }
.mag-lead-body{ padding:clamp(30px,3.4vw,52px); display:flex; flex-direction:column; justify-content:center; }
.mag-badge{ display:inline-flex; align-self:flex-start; align-items:center; background:var(--point); color:#fff; font-size:11px; font-weight:800; letter-spacing:.12em; padding:6px 13px; border-radius:30px; margin-bottom:18px; }
.mag-lead-body .mag-date{ margin-bottom:14px; }
.mag-lead-title{ font-size:clamp(24px,2.4vw,32px); font-weight:800; line-height:1.28; letter-spacing:-.02em; color:#141414; margin:0 0 16px; transition:.3s; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; word-break:keep-all; }
.mag-lead:hover .mag-lead-title{ color:var(--point); }
.mag-lead-excerpt{ font-size:15.5px; color:#666; line-height:1.75; margin:0 0 26px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; word-break:keep-all; }
.mag-lead:hover .mag-more i{ transform:translateX(5px); }

/* 3단 카드 그리드 */
.mag-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--card-gap,30px); }
.mag-card{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fff; color:inherit; text-decoration:none; transition:.35s; }
.mag-card:hover{ box-shadow:0 26px 52px -34px rgba(0,0,0,.3); transform:translateY(-4px); }
.mag-thumb{ overflow:hidden; background:#f2f2f2; aspect-ratio:16 / 10; }
.mag-thumb img{ width:100%; height:100%; object-fit:cover; transition:.6s; display:block; }
.mag-card:hover .mag-thumb img{ transform:scale(1.06); }
.mag-body{ padding:24px 24px 26px; display:flex; flex-direction:column; flex:1 1 auto; }
.mag-body .mag-date{ margin-bottom:12px; }
.mag-title{ font-size:18.5px; font-weight:800; line-height:1.4; letter-spacing:-.01em; color:#141414; margin:0 0 11px; transition:.3s; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:keep-all; }
.mag-card:hover .mag-title{ color:var(--point); }
.mag-excerpt{ font-size:14.5px; color:#777; line-height:1.7; margin:0 0 20px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:keep-all; }
.mag-card .mag-more{ margin-top:auto; }
.mag-card:hover .mag-more i{ transform:translateX(4px); }

/* 반응형 */
@media(max-width:1024px){ .mag-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:820px){
  .mag-lead{ grid-template-columns:1fr; }
  .mag-lead-thumb img{ min-height:0; aspect-ratio:16 / 10; }
  .mag-lead-body{ padding:30px 26px; }
}
@media(max-width:560px){ .mag-grid{ grid-template-columns:1fr; } }

/* =========================================================
   SITEMAP 페이지 + NEWS 매거진  (PLAYWEBON)
   ========================================================= */
.sitemap-wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:var(--sc-py) var(--gut); }
.sitemap-eyebrow{ font-size:var(--fs-eyebrow); font-weight:var(--fw-bold); letter-spacing:.12em; color:var(--point); margin:0 0 14px; }
.sitemap-h2{ font-size:var(--fs-h3); font-weight:var(--fw-extra); line-height:var(--lh-head); letter-spacing:var(--ls-snug); color:#141414; margin:0 0 32px; }
.sitemap-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:28px; }
.sitemap-card{ border:1px solid #e6e6e6; border-radius:14px; padding:26px 24px; }
.sitemap-card > h3{ display:flex; align-items:center; gap:10px; font-size:16px; font-weight:800; color:#141414; margin:0 0 16px; }
.sitemap-card > h3 i{ color:var(--point); }
.sitemap-card ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.sitemap-card a{ color:#444; text-decoration:none; font-size:15px; transition:.25s; }
.sitemap-card a:hover{ color:var(--point); }

/* ----- NEWS 매거진 ----- */
.news-mag{ margin-top:64px; padding-top:48px; border-top:1px solid var(--line); }
.news-mag-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:30px; }
.news-mag-eyebrow{ font-size:var(--fs-eyebrow); font-weight:var(--fw-bold); letter-spacing:.12em; color:var(--point); margin:0 0 10px; }
.news-mag-title{ font-size:28px; font-weight:800; letter-spacing:-.01em; color:#141414; line-height:1.2; margin:0; }
.news-mag-all{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:#141414; text-decoration:none; white-space:nowrap; transition:.25s; }
.news-mag-all i{ transition:.3s; }
.news-mag-all:hover{ color:var(--point); }
.news-mag-all:hover i{ transform:translateX(4px); }

.news-mag-grid{ display:flex; flex-direction:column; gap:26px; }

/* hero (대표글) */
.nm-hero{ position:relative; display:flex; align-items:flex-end; min-height:420px; border-radius:18px; overflow:hidden; background-size:cover; background-position:center; background-color:#16161d; text-decoration:none; }
.nm-overlay{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,10,18,0) 28%,rgba(10,10,18,.86) 100%); transition:.4s; }
.nm-hero:hover .nm-overlay{ background:linear-gradient(180deg,rgba(10,10,18,.12) 16%,rgba(10,10,18,.92) 100%); }
.nm-hero-body{ position:relative; z-index:2; display:block; padding:38px 40px; color:#fff; max-width:760px; }
.nm-hero-title{ display:block; font-size:30px; font-weight:800; line-height:1.3; letter-spacing:-.01em; margin:0 0 10px; word-break:keep-all; }
.nm-hero-desc{ font-size:15px; line-height:1.65; color:rgba(255,255,255,.82); word-break:keep-all; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* cards (나머지 글) */
.nm-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.nm-card{ display:block; text-decoration:none; color:#141414; }
.nm-card-img{ display:block; width:100%; aspect-ratio:420 / 260; overflow:hidden; border-radius:12px; margin-bottom:14px; }
.nm-card-img img{ width:100%; height:100%; object-fit:cover; transition:.5s; }
.nm-card:hover .nm-card-img img{ transform:scale(1.06); }
.nm-card-body{ display:block; }
.nm-card-title{ display:block; font-size:16px; font-weight:700; line-height:1.45; letter-spacing:-.01em; transition:.25s; word-break:keep-all; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nm-card:hover .nm-card-title{ color:var(--point); }

/* meta (매거진 공용) */
.nm-meta{ display:flex; align-items:center; gap:9px; margin-bottom:10px; }
.nm-tag{ font-size:11px; font-weight:800; letter-spacing:.06em; padding:3px 10px; border-radius:50px; white-space:nowrap; }
.nm-card .nm-tag{ color:var(--point); border:1px solid var(--point); }
.nm-hero .nm-tag{ color:#fff; background:var(--point); }
.nm-date{ font-size:12.5px; font-weight:300; }
.nm-card .nm-date{ color:#999; }
.nm-hero .nm-date{ color:rgba(255,255,255,.82); }

@media(max-width:1024px){
  .nm-cards{ grid-template-columns:repeat(2,1fr); }
  .nm-hero{ min-height:340px; }
  .nm-hero-title{ font-size:25px; }
}
@media(max-width:600px){
  .sitemap-h2{ font-size:24px; }
  .news-mag{ margin-top:48px; padding-top:36px; }
  .news-mag-title{ font-size:22px; }
  .nm-hero{ min-height:280px; }
  .nm-hero-body{ padding:26px 22px; }
  .nm-hero-title{ font-size:21px; }
}
@media(max-width:480px){
  .nm-cards{ grid-template-columns:1fr; gap:18px; }
}

/* =========================================================
   GALLERY 스킨 — NEWS 카드뉴스(매거진)와 동일한 카드형으로 통일
   (이전 .gb-* 규칙들을 파일 끝에서 덮어씀)
   ========================================================= */
.gb-grid{ grid-template-columns:repeat(var(--gb-cols,3),1fr); gap:var(--card-gap,30px); }
.gb-card{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fff; color:#1a1a1a; transition:.35s; }
.gb-card:hover{ box-shadow:0 26px 52px -34px rgba(0,0,0,.3); transform:translateY(-4px); }
.gb-img{ width:100%; aspect-ratio:16 / 10; border-radius:0; overflow:hidden; background:#f0f0f0; }
.gb-img img{ width:100%; height:100%; object-fit:cover; transition:.6s; display:block; }
.gb-card:hover .gb-img img{ transform:scale(1.06); }
.gb-cap{ margin-top:0; padding:22px 22px 24px; display:flex; flex-direction:column; flex:1 1 auto; }
.gb-cap .gb-cat{ align-self:flex-start; }
.gb-cap .gb-title{ font-size:17px; font-weight:800; line-height:1.4; letter-spacing:-.01em; margin-bottom:10px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:keep-all; }
.gb-cap .gb-meta{ margin-bottom:12px; }
.gb-cap .gb-tags{ margin-top:auto; margin-bottom:0; }
@media(max-width:1024px){ .gb-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .gb-grid{ grid-template-columns:1fr; } }


/* =========================================================
   본문 관리자 액션 바 (수정 / 삭제) — 관리자에게만 노출
   ========================================================= */
.space-admin-actions{ display:flex; justify-content:flex-end; gap:10px; margin-bottom:22px; }
.space-admin-actions .sa-btn{ display:inline-flex; align-items:center; gap:7px; padding:9px 18px; border-radius:30px; font-size:14px; font-weight:700; line-height:1; border:1px solid transparent; transition:.25s; }
.space-admin-actions .sa-btn i{ font-size:12px; }
.space-admin-actions .sa-edit{ background:var(--point); color:#fff; }
.space-admin-actions .sa-edit:hover{ filter:brightness(.92); color:#fff; transform:translateY(-1px); }
.space-admin-actions .sa-del{ background:#fff; color:#555; border-color:#ddd; }
.space-admin-actions .sa-del:hover{ background:#f6f6f6; color:var(--point); border-color:var(--point); }
@media(max-width:480px){ .space-admin-actions .sa-btn{ padding:8px 14px; font-size:13px; } }
.wf-thumb{ margin-bottom:10px; }
.wf-thumb img{ border-radius:8px; border:1px solid #e6e6e6; display:block; }

/* 본문 하단 바 — 좌: 목록으로 / 우: 관리자 수정·삭제 */
.doc-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:48px; padding-top:28px; border-top:1px solid #ececec; }
.doc-foot .doc-back{ margin-top:0; padding-top:0; border-top:0; }
.doc-foot .space-admin-actions{ margin:0; }
@media(max-width:480px){ .doc-foot{ gap:14px; } .doc-foot .space-admin-actions{ width:100%; justify-content:flex-start; } }

/* 게시글 본문 상단 제목 (서브탑은 게시판명, 제목은 본문에서 노출) */
.doc-title{ font-size:var(--fs-h1); font-weight:var(--fw-extra); line-height:1.28; letter-spacing:var(--ls-snug); color:#141414; margin:0 0 18px; word-break:keep-all; }

/* =========================================================
   글쓰기/수정 폼 — 첨부파일 관리 (선택 칩 ✕ 제거 / 기존 첨부 삭제 체크)
   ========================================================= */
.wf-sel-list{ list-style:none; margin:12px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.wf-sel{ display:inline-flex; align-items:center; gap:8px; padding:7px 8px 7px 13px; background:#f4f5f6; border:1px solid #e5e7eb; border-radius:30px; font-size:13px; color:#444; }
.wf-sel-name i{ color:var(--point); margin-right:3px; }
.wf-sel-x{ display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:#e2e4e8; color:#666; font-size:11px; transition:.2s; }
.wf-sel-x:hover{ background:var(--point); color:#fff; }

.wf-cur-atts{ list-style:none; margin:0 0 12px; padding:0; display:flex; flex-direction:column; gap:8px; }
.wf-cur-atts .wf-att-row{ display:flex; align-items:center; gap:10px; padding:10px 14px; background:#fafbfc; border:1px solid #ececec; border-radius:10px; cursor:pointer; font-size:14px; color:#333; transition:.2s; }
.wf-cur-atts .wf-att-cb{ width:17px; height:17px; accent-color:var(--point); flex:none; cursor:pointer; }
.wf-cur-atts .wf-att-ic{ color:#bbb; font-size:12px; }
.wf-cur-atts .wf-att-cb:checked ~ .wf-att-name{ text-decoration:line-through; color:#bbb; }
.wf-cur-atts .wf-att-cb:checked ~ .wf-att-ic{ color:#ddd; }
.wf-cur-atts .wf-att-row:has(.wf-att-cb:checked){ border-color:rgba(216,21,27,.4); background:rgba(216,21,27,.04); }

/* 글쓰기 폼 — 체크박스 라벨 */
.wf-check{ display:inline-flex; align-items:center; gap:9px; font-size:14px; color:#333; cursor:pointer; }
.wf-check input{ width:17px; height:17px; accent-color:var(--point); flex:none; }
