/* ==========================================================================
   2026 노인일자리 주간 — 백엔드 연동 화면 스타일
   (게시판 · 폼 · 알림 · 사진 상세) — common.css 의 디자인 토큰을 그대로 사용
   ========================================================================== */

/* ── 접근성 ─────────────────────────────────────────────────────────── */
.skip{position:absolute;left:-9999px;top:0;z-index:200;padding:12px 20px;background:var(--brand);color:#fff;font-weight:700;border-radius:0 0 10px 0}
.skip:focus{left:0}
/* 화면에는 감추고 스크린리더에만 읽히는 텍스트 */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── 알림 배너 ──────────────────────────────────────────────────────── */
.msg{display:flex;gap:12px;align-items:flex-start;padding:16px 20px;border-radius:14px;font-size:15.5px;line-height:1.7;margin-bottom:28px}
.msg::before{font-weight:700;flex:none}
.msg--ok{background:var(--soft);color:var(--brand-d)}
.msg--ok::before{content:"✓"}
.msg--err{background:#FDECEC;color:#B3261E}
.msg--err::before{content:"!"}
.msg--info{background:var(--tint);color:var(--body)}
.msg--info::before{content:"i";font-style:italic}

/* ── 검색 바 ────────────────────────────────────────────────────────── */
.srch{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:26px}
.srch select,.srch input{height:46px;border:1.5px solid var(--line);border-radius:10px;padding:0 14px;font:inherit;font-size:15px;color:var(--ink);background:#fff}
.srch input{min-width:240px}
.srch select:focus,.srch input:focus{border-color:var(--brand);outline:none}
.srch button{height:46px;padding:0 24px;border-radius:10px;background:var(--brand);color:#fff;font-size:15px;font-weight:600}
.srch button:hover{background:var(--brand-d)}
.total{font-size:15px;color:var(--mute);margin-bottom:16px}
.total b{color:var(--brand);font-weight:700}

/* ── 게시판 목록 ────────────────────────────────────────────────────── */
.bl{width:100%;border-collapse:collapse;border-top:2px solid var(--ink)}
.bl th,.bl td{padding:20px 12px;border-bottom:1px solid var(--line);font-size:16px;text-align:center}
.bl th{font-size:14.5px;font-weight:700;letter-spacing:-.02em;color:var(--ink);background:var(--tint)}
.bl td.subj{text-align:left;padding-left:20px}
.bl td.subj a{font-weight:600;letter-spacing:-.03em;color:var(--ink)}
.bl td.subj a:hover{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.bl tr.fix td{background:#FBFDFF}
.bl .cat{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--soft);color:var(--brand-d);font-size:13px;font-weight:700;margin-right:8px;vertical-align:2px}
.bl .pin{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--brand);color:#fff;font-size:12.5px;font-weight:700}
.bl .att{display:inline-block;margin-left:8px;color:var(--brand);font-size:14px}
.bl .none{padding:90px 0;color:var(--mute);font-size:16px}
@media (max-width:860px){
  .bl thead{position:absolute;left:-9999px}
  .bl tr{display:block;padding:20px 4px;border-bottom:1px solid var(--line)}
  .bl td{display:inline-block;border:0;padding:2px 8px 2px 0;font-size:14.5px;color:var(--mute);text-align:left}
  .bl td.subj{display:block;padding:0 0 8px;font-size:17px}
  .bl td.num{display:none}
  .bl td.none{display:block;text-align:center;padding:70px 0}
}

/* ── 게시판 상세 ────────────────────────────────────────────────────── */
.bv{border-top:2px solid var(--ink)}
.bv__hd{padding:34px 4px 26px;border-bottom:1px solid var(--line)}
.bv__hd h2{font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.045em;line-height:1.4;color:var(--ink)}
.bv__meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:16px;font-size:14.5px;color:var(--mute)}
.bv__meta b{font-weight:600;color:var(--body)}
.bv__file{padding:20px 4px;border-bottom:1px solid var(--line);background:var(--tint)}
.bv__file ul{display:flex;flex-direction:column;gap:10px}
.bv__file a{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--brand-d);padding:0 16px}
.bv__file a:hover{text-decoration:underline;text-underline-offset:3px}
.bv__file .sz{font-weight:400;color:var(--mute);font-size:13.5px}
.bv__bd{padding:44px 4px 60px;font-size:17px;line-height:1.85;color:var(--body);border-bottom:1px solid var(--line);word-break:break-word}
.bv__bd p{margin:0 0 1em}
.bv__bd img{border-radius:12px;margin:12px 0}
.bv__bd a{color:var(--brand-d);text-decoration:underline;text-underline-offset:3px}
.bv__bd ul{list-style:disc;padding-left:20px;margin:0 0 1em}
.bv__bd ol{list-style:decimal;padding-left:22px;margin:0 0 1em}
.bv__bd table{width:100%;border-collapse:collapse;margin:12px 0}
.bv__bd th,.bv__bd td{border:1px solid var(--line);padding:12px 14px;font-size:15.5px}
.bv__bd th{background:var(--tint);font-weight:700;color:var(--ink)}
.bv__nav{display:flex;flex-direction:column}
.bv__nav a,.bv__nav span{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:20px 4px;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--body)}
.bv__nav a:hover{color:var(--brand)}
.bv__nav em{font-style:normal;font-weight:700;font-size:14px;color:var(--mute)}
.bv__nav span{color:var(--mute)}
.bv__btm{display:flex;justify-content:center;margin-top:44px}
@media (max-width:640px){.bv__nav a,.bv__nav span{grid-template-columns:70px 1fr;gap:12px}}

/* ── 버튼 ───────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:54px;padding:0 34px;border-radius:999px;font-size:16px;font-weight:700;letter-spacing:-.03em;border:1.5px solid var(--line);background:#fff;color:var(--ink);transition:.2s}
.btn:hover{border-color:var(--brand);color:var(--brand)}
.btn--fill{background:var(--brand);border-color:var(--brand);color:#fff}
.btn--fill:hover{background:var(--brand-d);border-color:var(--brand-d);color:#fff}
.btn--sm{height:44px;padding:0 22px;font-size:15px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btns-c{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:44px}

/* ── 폼 ─────────────────────────────────────────────────────────────── */
.fm{border-top:2px solid var(--ink);margin-bottom:40px}
.fm__row{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:24px 4px;border-bottom:1px solid var(--line);align-items:start}
.fm__lb{font-size:16px;font-weight:700;letter-spacing:-.03em;color:var(--ink);padding-top:13px}
.fm__lb .req{color:#D93636;margin-left:4px}
.fm__in input[type=text],.fm__in input[type=email],.fm__in input[type=tel],
.fm__in input[type=password],.fm__in input[type=number],.fm__in input[type=date],
.fm__in select,.fm__in textarea{
  width:100%;border:1.5px solid var(--line);border-radius:10px;padding:13px 15px;
  font:inherit;font-size:16px;color:var(--ink);background:#fff;transition:.2s
}
.fm__in textarea{min-height:170px;line-height:1.75;resize:vertical}
.fm__in input:focus,.fm__in select:focus,.fm__in textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px rgba(46,125,196,.12)}
.fm__in input[readonly]{background:var(--tint);color:var(--mute)}
.fm__in .half{max-width:320px}
.fm__in .third{max-width:200px}
.fm__hint{margin-top:8px;font-size:14px;color:var(--mute);line-height:1.65}
.fm__err{margin-top:8px;font-size:14px;color:#B3261E;font-weight:600}
.fm__in .inline{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.fm__in label.chk{display:inline-flex;align-items:center;gap:8px;font-size:15.5px;color:var(--body);cursor:pointer}
.fm__in input[type=checkbox],.fm__in input[type=radio]{width:19px;height:19px;accent-color:var(--brand);cursor:pointer}
.fm__in .cnt{display:block;margin-top:6px;font-size:13.5px;color:var(--mute);text-align:right}
.fm__file{display:block;font-size:15px}
@media (max-width:860px){
  .fm__row{grid-template-columns:1fr;gap:10px;padding:20px 2px}
  .fm__lb{padding-top:0}
}

/* ── 개인정보 수집 동의 ─────────────────────────────────────────────── */
.agree{border:1px solid var(--line);border-radius:16px;padding:26px 28px;background:var(--tint);margin-bottom:34px}
.agree h3{font-size:17px;font-weight:700;letter-spacing:-.035em;color:var(--ink);margin-bottom:14px}
.agree__box{max-height:180px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px;font-size:14.5px;line-height:1.8;color:var(--body)}
.agree__box table{width:100%;border-collapse:collapse;margin-top:8px}
.agree__box th,.agree__box td{border:1px solid var(--line);padding:8px 10px;font-size:13.5px;text-align:left}
.agree__box th{background:var(--tint);font-weight:700;color:var(--ink);white-space:nowrap}
.agree__ck{margin-top:16px;display:flex;justify-content:flex-end}
.agree__ck label{display:inline-flex;align-items:center;gap:9px;font-size:15.5px;font-weight:600;color:var(--ink);cursor:pointer}

/* ── 완료 화면 ──────────────────────────────────────────────────────── */
.done{text-align:center;padding:70px 0 20px}
.done__ic{width:88px;height:88px;margin:0 auto 30px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-size:40px;color:var(--brand)}
.done h2{font-size:clamp(26px,3.2vw,36px);font-weight:700;letter-spacing:-.05em;color:var(--ink)}
.done p{margin-top:18px;font-size:17px;line-height:1.8;color:var(--body)}
.done__no{display:inline-block;margin-top:26px;padding:14px 30px;border-radius:999px;background:var(--soft);font-size:18px;font-weight:700;letter-spacing:.02em;color:var(--brand-d)}

/* ── 사진 상세 (라이트박스형 그리드) ────────────────────────────────── */
.pv__hd{border-top:2px solid var(--ink);padding:34px 4px 26px;border-bottom:1px solid var(--line);margin-bottom:44px}
.pv__hd h2{font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.045em;color:var(--ink)}
.pv__hd p{margin-top:12px;font-size:16.5px;color:var(--mute)}
.pv__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pv__grid figure{margin:0}
.pv__grid img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:14px;background:#E4EAF0;cursor:zoom-in;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.pv__grid img:hover{transform:scale(1.02)}
.pv__grid figcaption{margin-top:10px;font-size:14.5px;color:var(--mute);line-height:1.6}
@media (max-width:1080px){.pv__grid{grid-template-columns:1fr 1fr;gap:18px}}
@media (max-width:640px){.pv__grid{grid-template-columns:1fr}}

/* 라이트박스 */
.lb{position:fixed;inset:0;z-index:300;background:rgba(16,22,30,.94);display:none;place-items:center;padding:40px 20px}
.lb.on{display:grid}
.lb img{max-width:100%;max-height:82vh;border-radius:10px}
.lb figcaption{margin-top:16px;text-align:center;color:#D6DEE7;font-size:15px}
.lb__x,.lb__p,.lb__n{position:absolute;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:24px;display:grid;place-items:center;transition:.2s}
.lb__x:hover,.lb__p:hover,.lb__n:hover{background:rgba(255,255,255,.3)}
.lb__x{top:22px;right:22px}
.lb__p{left:22px;top:50%;transform:translateY(-50%)}
.lb__n{right:22px;top:50%;transform:translateY(-50%)}
@media (max-width:640px){.lb__p{left:8px}.lb__n{right:8px}}

/* ── 실시간 중계 (2026-09-02) ────────────────────────────────────────────
   버튼(.lvb) · 모달(.lv) · 페이지 안 안내 카드(.lvc).
   중계가 켜져 있을 때만 마크업이 생기므로, 평소에는 이 규칙이 아무것도
   만나지 않습니다. common.css 다음에 읽히므로 헤더 규칙을 덮어씁니다. */

/* 상단 「LIVE」 버튼 — 빨간 점이 천천히 뜁니다 */
.lvb{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;
  background:#D93025;color:#fff;font-size:15px;font-weight:700;letter-spacing:.02em;
  box-shadow:0 4px 14px rgba(217,48,37,.28);transition:background .2s,transform .2s}
.lvb:hover{background:#B3261E;transform:translateY(-1px)}
.lvb__dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:lvPulse 1.6s ease-in-out infinite}
@keyframes lvPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}

/* 1081~1240px — 좁은 데스크톱.
   GNB 다섯 칸(약 705px) + 로고(약 168px) + LIVE 버튼이 한 줄에 들어가야 하는데,
   1081px 에서 쓸 수 있는 폭은 1017px 뿐이라 그냥 두면 몇 px 넘칩니다.
   이 구간에서만 여백을 조금씩 줄입니다. 버튼이 없는 평소에는 적용되지 않습니다. */
@media (min-width:1081px) and (max-width:1240px){
  .has-live .hd .inner{gap:14px}
  .has-live .gnb>li>a{padding:0 13px}
  .has-live .gnb>li>a::after{left:13px;right:13px}
  .has-live .lvb{padding:9px 14px;font-size:14px}
}

/* 모바일에서는 로고 오른쪽, 햄버거 왼쪽에 놓습니다 */
@media (max-width:1080px){
  .hd .inner{gap:12px}
  .lg{order:1}
  .lvb{order:2;margin-left:auto;padding:8px 14px;font-size:13.5px}
  .bg{order:3;margin-left:0}
  .hd .inner>nav{order:4}
}

/* 모달 */
.lv{position:fixed;inset:0;z-index:400;background:rgba(16,22,30,.94);display:none;place-items:center;padding:28px 20px}
.lv.on{display:grid}
.lv__box{width:100%;max-width:1040px;animation:lvIn .26s cubic-bezier(.2,.7,.2,1)}
@keyframes lvIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .lv__box{animation:none}
  .lvb__dot{animation:none}
}
.lv__hd{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.lv__hd h2{display:flex;align-items:center;gap:10px;color:#fff;font-size:clamp(17px,2vw,21px);font-weight:700;letter-spacing:-.04em}
.lv__x{width:44px;height:44px;flex-shrink:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:20px;
  display:grid;place-items:center;transition:background .2s}
.lv__x:hover{background:rgba(255,255,255,.3)}
.lv__tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.lv__tab{padding:9px 18px;border-radius:999px;background:rgba(255,255,255,.13);color:#D6DEE7;
  font-size:14.5px;font-weight:600;letter-spacing:-.02em;transition:.2s}
.lv__tab:hover{background:rgba(255,255,255,.24);color:#fff}
.lv__tab.on{background:#fff;color:var(--ink)}
/* 16:9 를 유지하되 세로가 화면을 넘지 않게 합니다 (머리말·꼬리말 자리를 뺀 값) */
.lv__fr{position:relative;aspect-ratio:16/9;max-height:calc(100vh - 230px);margin:0 auto;border-radius:12px;overflow:hidden;background:#000}
.lv__fr iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lv__ft{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:14px;color:#D6DEE7;font-size:15px}
.lv__ft a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media (max-width:640px){
  .lv{padding:16px 12px}
  .lv__fr{max-height:calc(100vh - 210px)}
  .lv__ft{font-size:14px}
}

/* 기념식·심포지엄 페이지 안내 카드 */
.lvc{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-bottom:40px;padding:22px 26px;border-radius:18px;
  background:linear-gradient(94deg,#FDECEA 0%,#FFF6F5 100%);border:1px solid rgba(217,48,37,.22)}
.lvc__t{display:flex;align-items:flex-start;gap:14px}
.lvc__t .lvb__dot{margin-top:9px;flex-shrink:0;background:#D93025}
.lvc__t b{display:block;font-size:17.5px;font-weight:700;letter-spacing:-.04em;color:#8C1D16;line-height:1.45}
.lvc__t p{margin-top:5px;font-size:15px;color:#A24A43}
/* 카드가 붉은색이라 기본 파란 버튼은 겉돕니다 — 중계 색으로 맞춥니다 */
.lvc .btn--fill{background:#D93025;border-color:#D93025}
.lvc .btn--fill:hover{background:#B3261E;border-color:#B3261E;color:#fff}
@media (max-width:640px){
  .lvc{padding:20px;gap:14px}
  .lvc .btn{width:100%;justify-content:center}
}

/* ── 신청/문의 조회 ─────────────────────────────────────────────────── */
.lookup{max-width:520px;margin:0 auto;border:1px solid var(--line);border-radius:20px;padding:44px 40px;background:#fff}
.lookup h2{font-size:24px;font-weight:700;letter-spacing:-.045em;color:var(--ink);text-align:center}
.lookup p.sub{margin-top:12px;text-align:center;font-size:15.5px;color:var(--mute);line-height:1.7}
.lookup .fm{border-top:0;margin:28px 0 0}
.lookup .fm__row{grid-template-columns:1fr;gap:8px;padding:12px 0;border:0}
.lookup .fm__lb{padding-top:0;font-size:15px}
@media (max-width:640px){.lookup{padding:34px 24px}}

/* ── 답변 박스 ──────────────────────────────────────────────────────── */
.reply{margin-top:28px;border-radius:16px;background:var(--soft);padding:28px 30px}
.reply h3{font-size:16px;font-weight:700;color:var(--brand-d);margin-bottom:12px}
.reply .body{font-size:16px;line-height:1.8;color:var(--ink)}
.reply .when{margin-top:14px;font-size:14px;color:var(--mute)}

/* ── 상태 배지 ──────────────────────────────────────────────────────── */
.badge{display:inline-block;padding:5px 14px;border-radius:999px;font-size:13.5px;font-weight:700;line-height:1.5}
.badge--wait{background:var(--tint);color:var(--mute);border:1px solid var(--line)}
.badge--ing {background:#FFF3E0;color:#B26A00}
.badge--done{background:var(--soft);color:var(--brand-d)}
.badge--no  {background:#FDECEC;color:#B3261E}

/* ── 안내 문단 ──────────────────────────────────────────────────────── */
.guide{border-radius:18px;background:var(--tint);padding:30px 32px;margin-bottom:44px}
.guide h3{font-size:18px;font-weight:700;letter-spacing:-.04em;color:var(--ink);margin-bottom:14px}
.guide ul{display:flex;flex-direction:column;gap:9px}
.guide li{position:relative;padding-left:16px;font-size:15.5px;line-height:1.75;color:var(--body)}
.guide li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--brand)}
.guide li b{color:var(--ink);font-weight:700}

/* ==========================================================================
   부스 배치도
   ========================================================================== */
.bmap{margin-bottom:64px}
.bmap:last-of-type{margin-bottom:0}
.bmap__hd{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-bottom:20px;margin-bottom:22px;border-bottom:2px solid var(--ink)}
.bmap__hd h2{font-size:clamp(21px,2.5vw,28px);font-weight:700;letter-spacing:-.045em;color:var(--ink)}
.bmap__hd p{margin-top:10px;font-size:15.5px;line-height:1.7;color:var(--mute)}
.bmap__ac{display:flex;gap:8px;flex-wrap:wrap}

.bmap__view{margin:0;position:relative}
.bmap__stage{position:relative;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:var(--tint);
  aspect-ratio:16/10;display:grid;place-items:center;touch-action:pan-y}
.bmap__stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  transform-origin:center center;transition:transform .18s cubic-bezier(.2,.7,.2,1);will-change:transform;user-select:none;-webkit-user-drag:none}
.bmap__view.is-ready .bmap__stage{cursor:zoom-in}
.bmap__view.is-zoomed .bmap__stage{cursor:grab;touch-action:none}
.bmap__view.is-drag .bmap__stage{cursor:grabbing}
.bmap__view.is-drag .bmap__stage img{transition:none}
.bmap__stage:focus-visible{outline:3px solid var(--brand);outline-offset:3px}

.bmap__zoom{position:absolute;right:14px;bottom:14px;display:flex;align-items:center;gap:4px;padding:6px;
  border-radius:999px;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:0 4px 16px rgba(30,39,51,.12);backdrop-filter:blur(6px)}
.bmap__zoom button{min-width:38px;height:38px;padding:0 12px;border-radius:999px;font-size:16px;font-weight:700;color:var(--ink);transition:.16s;line-height:1}
.bmap__zoom button:hover{background:var(--soft);color:var(--brand-d)}
.bmap__zoom button[data-zoom=reset],.bmap__zoom button[data-zoom=full]{font-size:13.5px;font-weight:600}
.bmap__zoom .lv{min-width:52px;text-align:center;font-size:13px;font-weight:700;color:var(--mute);font-variant-numeric:tabular-nums}
.bmap__tip{margin-top:14px;font-size:14.5px;color:var(--mute);line-height:1.7}
.bmap__tip b{color:var(--body);font-weight:700}

/* 전체화면일 때는 여백 없이 꽉 채웁니다 */
.bmap__view:fullscreen{background:#101820;display:grid;place-items:center;padding:0}
.bmap__view:fullscreen .bmap__stage{width:100vw;height:100vh;aspect-ratio:auto;border:0;border-radius:0;background:#101820}
.bmap__view:fullscreen .bmap__tip{display:none}
@media (max-width:860px){
  .bmap__stage{aspect-ratio:4/3}
  .bmap__hd{align-items:flex-start;flex-direction:column;gap:14px}
  .bmap__zoom{right:10px;bottom:10px;gap:2px;padding:5px}
  .bmap__zoom button{min-width:34px;height:34px;padding:0 9px}
  .bmap__zoom button[data-zoom=full]{display:none}
  .bmap__zoom .lv{min-width:44px;font-size:12px}
}

/* ==========================================================================
   이벤트 — 카드형 목록
   ========================================================================== */
.evs{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 24px}
.ev{display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;
  border:1px solid var(--line);transition:.24s cubic-bezier(.2,.7,.2,1)}
.ev:hover{transform:translateY(-4px);border-color:var(--brand);box-shadow:0 14px 34px rgba(30,39,51,.1)}
.ev__img{position:relative;aspect-ratio:4/3;background:var(--tint);overflow:hidden}
.ev__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.ev:hover .ev__img img{transform:scale(1.05)}
.ev__noimg{position:absolute;inset:0;display:grid;place-items:center;font-size:15px;font-weight:700;letter-spacing:.18em;color:#B9C6D3}
.ev__bd{padding:22px 22px 26px;display:flex;flex-direction:column;flex:1}
.ev__bd h3{font-size:19px;font-weight:700;letter-spacing:-.04em;line-height:1.45;color:var(--ink)}
.ev:hover .ev__bd h3{color:var(--brand-d)}
.ev__sum{margin-top:9px;font-size:15px;line-height:1.65;color:var(--mute);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev__meta{margin-top:auto;padding-top:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ev__date{font-size:14px;font-weight:600;color:var(--body)}
.ev__place{margin-top:6px;font-size:13.5px;color:var(--mute)}
.ev__dday{display:inline-block;padding:3px 10px;border-radius:999px;background:#FDECEC;color:#B3261E;font-size:12.5px;font-weight:700}

/* 상태 배지 */
.ev__st{position:absolute;left:14px;top:14px;z-index:1;padding:6px 14px;border-radius:999px;
  font-size:13px;font-weight:700;letter-spacing:-.02em;backdrop-filter:blur(4px)}
.ev__st--ing  {background:var(--brand);color:#fff}
.ev__st--ready{background:rgba(255,255,255,.94);color:var(--brand-d);border:1px solid var(--line)}
.ev__st--end  {background:rgba(30,39,51,.72);color:#fff}
/* 종료된 이벤트는 흐리게 — 기록으로 남기되 진행중과 구분합니다 */
.ev--end .ev__img img{filter:grayscale(.85);opacity:.62}
.ev--end .ev__bd h3{color:var(--mute)}
.ev--end:hover .ev__img img{filter:grayscale(.4);opacity:.85}
@media (max-width:1080px){.evs{grid-template-columns:1fr 1fr;gap:30px 18px}}
@media (max-width:640px){.evs{grid-template-columns:1fr;gap:22px}.ev__img{aspect-ratio:16/10}}

/* ── 이벤트 상세 ─────────────────────────────────────────────────────── */
.evv__hd{border-top:2px solid var(--ink);padding:32px 4px 26px;text-align:center}
.evv__hd .ev__st{position:static;display:inline-block;margin-bottom:16px}
.evv__hd h2{font-size:clamp(24px,3.2vw,34px);font-weight:700;letter-spacing:-.05em;line-height:1.35;color:var(--ink)}
.evv__sum{margin-top:14px;font-size:17px;line-height:1.75;color:var(--mute)}
.evv__img{margin:0 0 40px;border-radius:18px;overflow:hidden;background:var(--tint);border:1px solid var(--line)}
.evv__img img{width:100%;height:auto;display:block}
.evv__dl{border-top:1px solid var(--line)}
.evv__dl>div{display:grid;grid-template-columns:150px 1fr;gap:22px;padding:22px 4px;border-bottom:1px solid var(--line)}
.evv__dl dt{font-size:14.5px;font-weight:700;letter-spacing:-.02em;color:var(--brand-d)}
.evv__dl dd{margin:0;font-size:16.5px;line-height:1.75;color:var(--ink)}
@media (max-width:640px){.evv__dl>div{grid-template-columns:1fr;gap:7px;padding:18px 2px}}

/* 사진 아카이브 : 대표 이미지 미지정 앨범 (관련 없는 이미지를 대신 쓰지 않습니다) */
.gc .th__none{position:absolute;inset:0;display:grid;place-items:center;background:var(--tint);
  color:var(--mute);font-size:14.5px;font-weight:600;letter-spacing:-.02em}

/* ==========================================================================
   주최 · 주관 로고 (공식 CI)
   ========================================================================== */
/* 푸터 */
.ft__logo{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.ft__logo img{height:30px;width:auto;opacity:.9}
.ft__logo span{width:1px;height:20px;background:var(--line)}
/* 하단 CTA 배너 */
.end__logo{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:22px}
.end__logo img{height:38px;width:auto}
/* 행사 개요 HOST / ORGANIZER */
.orgmark{display:inline-flex;align-items:center}
.orgmark img{height:36px;width:auto}
@media (max-width:640px){
  .ft__logo img{height:24px}
  .end__logo{gap:18px}
  .end__logo img{height:30px}
  .orgmark img{height:30px}
}

/* ── 준비 중 안내 카드 (.soon) ─────────────────────────────────────────────
   확정 전 내용을 예시로 채워 두면 이용자가 실제 정보로 오해할 수 있어,
   해당 영역은 이 카드 하나로 대체합니다. 코비가 벌집을 짓듯 준비 중이라는 표현. */
.soon{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
      padding:clamp(48px,7vw,86px) 24px;border-radius:22px;
      background:linear-gradient(180deg,#F5FBF8 0%,#DEEFEB 100%)}
.soon__ic{width:clamp(150px,17vw,215px);aspect-ratio:510/523;
      background:url("../img/kobi/hive.webp") center/contain no-repeat;
      filter:drop-shadow(0 12px 16px rgba(44,89,116,.16));
      animation:kvBob 4.6s ease-in-out infinite}
.soon b{display:block;margin-top:20px;font-size:clamp(21px,2.4vw,28px);font-weight:700;
      letter-spacing:-.045em;color:var(--kv-ink)}
.soon p{margin-top:12px;font-size:clamp(15px,1.3vw,17px);color:#5A7280;line-height:1.75}
@media (prefers-reduced-motion:reduce){ .soon__ic{animation:none} }
/* 안내 카드 하나만 있는 페이지는 기본 .sec 여백(124px)을 쓰면 카드가 스크롤 아래로
   밀려 첫 화면이 텅 비어 보입니다. 그 페이지에서만 위아래를 줄입니다. */
.sec--soon{padding:clamp(20px,2.6vw,36px) 0 clamp(56px,7vw,96px)}
/* 넓은 화면에서는 코비를 왼쪽에 두고 가로로 놓습니다.
   세로로 쌓으면 카드가 490px 넘게 길어져, 노트북 화면에서 정작 안내 문구가
   첫 화면 아래로 밀립니다(측정: 문구 상단 1010px / 화면 900px). */
@media (min-width:720px){
  .soon{flex-direction:row;text-align:left;gap:clamp(26px,3.2vw,48px);
        padding:clamp(38px,4.4vw,56px) clamp(38px,4.6vw,68px)}
  .soon__ic{flex:0 0 auto}
  .soon__tx{min-width:0}
  .soon b{margin-top:0}
}
