/* =========================================================================
   POSCO Union — Main Stylesheet
   Brand: POSCO Blue
   ========================================================================= */

:root {
  --posco-blue: #003d7a;      /* 메인 딥블루 */
  --posco-blue-2: #0057b8;    /* 보조 블루 */
  --posco-sky: #00a0e9;       /* 포인트 스카이 */
  --posco-ink: #1a2330;       /* 본문 텍스트 */
  --posco-gray: #5b6472;      /* 서브 텍스트 */
  --posco-line: #e2e6ec;      /* 구분선 */
  --posco-bg: #000000;        /* 배경 */
  --posco-white: #ffffff;
  --posco-danger: #d64545;
  --posco-ok: #1f9d55;
  --radius: 10px;
  --shadow: 0 4px 24px rgba(0, 61, 122, 0.08);
  --wrap: 1160px;
  --font-letter: "Noto Serif KR", "Nanum Myeongjo", serif;  /* 인사말 본문(명조) */
  --font-letter-head: "Noto Serif KR", "Nanum Myeongjo", serif;  /* 인사말 제목(명조) */
  --font: "Pretendard", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Malgun Gothic", "맑은 고딕", sans-serif;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font);
  color: var(--posco-ink);
  background: var(--posco-bg);
  line-height: 1.7;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--posco-blue-2); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; height: auto; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }

/* ---------- Skip link (접근성) ---------- */
.skip-link {
  position: absolute; left: -9999px; top: 0;
  background: var(--posco-blue); color: #fff; padding: 10px 16px; z-index: 1000;
}
.skip-link:focus { left: 8px; top: 8px; }

/* ---------- 상단 유틸바 ---------- */
.top-utility {
  background: var(--posco-blue);
  color: rgba(255,255,255,.85);
  font-size: 13px;
}
.top-utility .wrap { display: flex; justify-content: flex-end; align-items: center; gap: 18px; height: 38px; }
.top-utility a { color: rgba(255,255,255,.85); }
.top-utility a:hover { color: #fff; text-decoration: none; }

/* ---------- 헤더 ---------- */
.site-header {
  background: var(--posco-white);
  border-bottom: 1px solid var(--posco-line);
  position: sticky; top: 0; z-index: 100;
}
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; height: 78px; }
.site-brand { display: flex; align-items: center; gap: 12px; }
.site-brand .logo-mark {
  width: 44px; height: 44px; border-radius: 8px;
  background: linear-gradient(135deg, var(--posco-blue), var(--posco-sky));
  color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 15px; letter-spacing: -.5px;
}
.site-brand .brand-text { display: flex; flex-direction: column; line-height: 1.2; }
.site-brand .brand-text b { font-size: 19px; color: var(--posco-blue); letter-spacing: -.5px; }
.site-brand .brand-text span { font-size: 12px; color: var(--posco-gray); }

/* ---------- 내비 ---------- */
.main-nav ul { list-style: none; display: flex; gap: 6px; margin: 0; padding: 0; }
.main-nav a {
  display: block; padding: 10px 16px; color: var(--posco-ink); font-weight: 600; border-radius: 8px;
}
.main-nav a:hover, .main-nav .current-menu-item > a { background: var(--posco-bg); color: var(--posco-blue); text-decoration: none; }

.nav-toggle { display: none; background: none; border: 0; font-size: 26px; color: var(--posco-blue); cursor: pointer; }

/* ---------- 히어로 ---------- */
.hero {
  background: linear-gradient(135deg, var(--posco-blue) 0%, var(--posco-blue-2) 60%, var(--posco-sky) 130%);
  color: #fff; padding: 84px 0;
}
.hero h1 { font-size: 40px; margin: 0 0 14px; letter-spacing: -1px; line-height: 1.25; }
.hero p { font-size: 18px; color: rgba(255,255,255,.9); max-width: 640px; margin: 0 0 28px; }
.hero .btn-row { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- 버튼 ---------- */
.btn {
  display: inline-block; padding: 13px 26px; border-radius: 8px; font-weight: 700; cursor: pointer;
  border: 2px solid transparent; font-size: 15px; transition: transform .05s ease, box-shadow .15s ease;
}
.btn:hover { text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--posco-sky); color: #fff; }
.btn-primary:hover { background: #0090d4; color: #fff; }
.btn-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.btn-outline:hover { background: rgba(255,255,255,.12); color: #fff; }
.btn-blue { background: var(--posco-blue); color: #fff; }
.btn-blue:hover { background: var(--posco-blue-2); color: #fff; }
.btn-block { display: block; width: 100%; text-align: center; }

/* ---------- 섹션 공통 ---------- */
.section { padding: 72px 0; }
.section-head { text-align: center; margin-bottom: 44px; }
.section-head .eyebrow { color: var(--posco-sky); font-weight: 800; letter-spacing: 2px; font-size: 13px; text-transform: uppercase; }
.section-head h2 { font-size: 30px; margin: 8px 0 10px; color: var(--posco-blue); letter-spacing: -.8px; }
.section-head p { color: var(--posco-gray); margin: 0; }

/* ---------- 카드 그리드 ---------- */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.card {
  background: #fff; border: 1px solid var(--posco-line); border-radius: var(--radius);
  padding: 28px; box-shadow: var(--shadow);
}
.card .icon {
  width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; font-size: 24px;
  background: rgba(0,160,233,.12); color: var(--posco-blue); margin-bottom: 16px;
}
.card h3 { margin: 0 0 8px; font-size: 19px; color: var(--posco-ink); }
.card p { margin: 0; color: var(--posco-gray); font-size: 15px; }

/* ---------- 공지/게시글 리스트 ---------- */
.post-list { list-style: none; margin: 0; padding: 0; }
.post-list li {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 16px 4px; border-bottom: 1px solid var(--posco-line);
}
.post-list li:first-child { border-top: 1px solid var(--posco-line); }
.post-list .title { font-weight: 600; color: var(--posco-ink); }
.post-list .date { color: var(--posco-gray); font-size: 14px; white-space: nowrap; }

/* ---------- 콘텐츠 영역 ---------- */
.site-main { padding: 56px 0; }
.content-layout { display: grid; grid-template-columns: 1fr 300px; gap: 40px; }
.entry-title { color: var(--posco-blue); font-size: 30px; margin: 0 0 8px; letter-spacing: -.6px; }
.entry-meta { color: var(--posco-gray); font-size: 14px; margin-bottom: 24px; }
.entry-content { font-size: 16px; }
.entry-content h2 { color: var(--posco-blue); margin-top: 1.6em; }
.entry-content img { border-radius: 8px; }
.page-box { background: #fff; border: 1px solid var(--posco-line); border-radius: var(--radius); padding: 40px; box-shadow: var(--shadow); }

/* ---------- 사이드바 ---------- */
.sidebar .widget {
  background: #fff; border: 1px solid var(--posco-line); border-radius: var(--radius); padding: 22px; margin-bottom: 22px;
}
.sidebar .widget-title { font-size: 16px; color: var(--posco-blue); margin: 0 0 14px; padding-bottom: 10px; border-bottom: 2px solid var(--posco-line); }
.sidebar ul { list-style: none; margin: 0; padding: 0; }
.sidebar li { padding: 7px 0; border-bottom: 1px dashed var(--posco-line); }
.sidebar li:last-child { border-bottom: 0; }

/* ---------- 폼 공통 (문의/로그인) ---------- */
.posco-form { display: grid; gap: 16px; }
.posco-form .field { display: grid; gap: 6px; }
.posco-form label { font-weight: 700; font-size: 14px; color: var(--posco-ink); }
.posco-form label .req { color: var(--posco-danger); margin-left: 3px; }
.posco-form input[type=text],
.posco-form input[type=email],
.posco-form input[type=tel],
.posco-form input[type=password],
.posco-form textarea,
.posco-form select {
  width: 100%; padding: 12px 14px; border: 1px solid var(--posco-line); border-radius: 8px;
  font-family: inherit; font-size: 15px; background: #fff; color: var(--posco-ink);
}
.posco-form input:focus, .posco-form textarea:focus, .posco-form select:focus {
  outline: none; border-color: var(--posco-sky); box-shadow: 0 0 0 3px rgba(0,160,233,.15);
}
.posco-form textarea { min-height: 150px; resize: vertical; }
.posco-form .consent { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; color: var(--posco-gray); }
.posco-form .consent input { margin-top: 4px; }

.form-notice { padding: 14px 16px; border-radius: 8px; font-size: 15px; margin-bottom: 6px; }
.form-notice.ok { background: rgba(31,157,85,.1); color: var(--posco-ok); border: 1px solid rgba(31,157,85,.3); }
.form-notice.err { background: rgba(214,69,69,.08); color: var(--posco-danger); border: 1px solid rgba(214,69,69,.3); }

/* ---------- 페이지 헤더(서브 배너) ---------- */
.page-hero {
  background: linear-gradient(120deg, var(--posco-blue), var(--posco-blue-2));
  color: #fff; padding: 56px 0;
}
.page-hero h1 { margin: 0; font-size: 32px; letter-spacing: -.8px; }
.breadcrumb { color: rgba(255,255,255,.8); font-size: 14px; margin-top: 8px; }
.breadcrumb a { color: rgba(255,255,255,.9); }

/* ---------- 푸터 ---------- */
.site-footer { background: #10233b; color: rgba(255,255,255,.7); padding: 48px 0 28px; margin-top: 60px; }
.site-footer .foot-top { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 24px; }
.site-footer .foot-brand b { color: #fff; font-size: 18px; display: block; margin-bottom: 6px; }
.site-footer address { font-style: normal; font-size: 14px; line-height: 1.9; }
.site-footer .foot-links ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; flex-wrap: wrap; }
.site-footer .foot-links a { color: rgba(255,255,255,.8); font-size: 14px; }
.site-footer .copyright { margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; }

/* ---------- 페이지네이션 ---------- */
.pagination { display: flex; gap: 6px; justify-content: center; margin-top: 36px; flex-wrap: wrap; }
.pagination .page-numbers {
  display: inline-block; padding: 8px 14px; border: 1px solid var(--posco-line); border-radius: 8px; background: #fff; color: var(--posco-ink);
}
.pagination .page-numbers.current { background: var(--posco-blue); color: #fff; border-color: var(--posco-blue); }

/* ---------- 반응형 ---------- */
@media (max-width: 900px) {
  .card-grid { grid-template-columns: 1fr 1fr; }
  .content-layout { grid-template-columns: 1fr; }
  .hero h1 { font-size: 30px; }
}
@media (max-width: 640px) {
  .card-grid { grid-template-columns: 1fr; }
  .main-nav { display: none; position: absolute; top: 78px; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--posco-line); }
  .main-nav.open { display: block; }
  .main-nav ul { flex-direction: column; padding: 8px; }
  .nav-toggle { display: block; }
  .hero { padding: 56px 0; }
  .hero h1 { font-size: 26px; }
  .top-utility { display: none; }
}

/* =========================================================================
   공연 신청 랜딩 (front-page) — 배경/텍스트 PNG 레이어 + 신청 폼
   ========================================================================= */

/* 골드 버튼 */
.btn-gold {
  background: linear-gradient(135deg, #f4d78a 0%, #e8c26a 40%, #b8860b 100%);
  color: #1a1200; border: 0; font-weight: 800; letter-spacing: .5px;
  box-shadow: 0 6px 20px rgba(184,134,11,.35);
}
.btn-gold:hover { color: #1a1200; filter: brightness(1.05); }

/* 무대(검정 배경) */
.event-stage {max-width:1300px;margin:0 auto;
  background: radial-gradient(120% 60% at 50% 0%, #1a1408 0%, #0a0a0a 55%, #000 100%);
}

/* 첨부 포스터 원본을 그대로 사용하는 이벤트 비주얼 */
.event-poster,
.event-poster img {
  display: block;
  width: 100%;
}
.event-poster img {
  height: auto;
}
.event-poster-mobile { display: none; }

/* 포스터 = 조각 PNG를 세로로 이어붙여 재조립 */
.poster {
  position: relative;
}
.poster-bg {
  display: block;
}
.poster-bg img {
  display: block;
  width: 100%;
  height: auto;
}
.poster-visual {
  position: relative;
  height: 100%;
  z-index: 1;
  text-align: center;
  display:none;
}
.poster-visual .pl {

  display: block;
  height: auto;
  margin: 0;
  text-align: center;
}
.poster-visual .pl img {
  max-width: 100%;
  height: auto;
  margin: 0;
}
.poster-visual .img-title img,
.poster-visual .img-date img{
  max-width:50.8vw;
}
.poster .img-header { top: 6%; }
.poster .img-title { top: 48%; }

.poster .img-date { top: 98vw; }
.poster .img-venue { top: 142vw; }
.poster-visual .img-foot-logo{
  padding-top:50px;
}
.poster-visual .img-foot-logo img{
  max-width:20vw;
}
/* 하단 3박스: 데스크톱=가로 3열 / 모바일=세로 재배열 */

.info-item{
  position: relative;
  display: flex;
  max-width: 1500px;
  margin: 0 auto;
  align-items: flex-start;
  justify-content: space-around;
  }
.info-item::before,
.info-item::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.45);
  pointer-events: none;
}
.info-item::before { left: 33.3333%; }
.info-item::after  { left: 66.6666%; }
.poster-info img { display: block;  height: auto;max-width:20.37vw; }

/* CTA */
.poster-cta { text-align: center; margin-top: 28px; }
.poster-cta .btn-gold { font-size: 17px; padding: 15px 44px; border-radius: 10px; }

/* 신청 폼 영역 */
.event-form-wrap {
  background: linear-gradient(180deg, #0a0a0a 0%, #10233b 100%);
  padding: 56px 16px 72px;
}
.wrap-narrow { max-width: 720px; margin: 0 auto; }

.event-apply {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(232,194,106,.25);
  border-radius: 14px;
  padding: 36px 32px;
  color: #f3f3f3;
}
.event-apply .ea-head { text-align: center; margin-bottom: 22px; }
.event-apply .ea-head h2 { color: #f4d78a; font-size: 26px; margin: 0 0 6px; letter-spacing: -.5px; }
.event-apply .ea-sub { color: rgba(255,255,255,.7); margin: 0; font-size: 15px; }

/* 이벤트 요약 메타 */
.ea-meta {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;
  margin-bottom: 24px;
}
.ea-meta div {
  background: rgba(0,0,0,.25); border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px; padding: 12px 14px;
}
.ea-meta span { display: block; font-size: 12px; color: #e8c26a; letter-spacing: 1px; margin-bottom: 3px; }
.ea-meta b { font-size: 15px; color: #fff; font-weight: 600; }

/* 상태(오픈전/마감) 안내 */
.ea-status {
  text-align: center; padding: 28px; border-radius: 10px;
  background: rgba(0,0,0,.3); border: 1px dashed rgba(232,194,106,.4);
  color: #f4d78a; font-size: 18px; font-weight: 700; line-height: 1.6;
}
.ea-status small { color: rgba(255,255,255,.65); font-weight: 400; font-size: 14px; }

/* 폼 (다크 테마 오버라이드) */
.event-apply .posco-form label { color: #f3f3f3; }
.event-apply .posco-form input[type=text],
.event-apply .posco-form input[type=email],
.event-apply .posco-form input[type=tel],
.event-apply .posco-form select {
  background: rgba(255,255,255,.95); border: 1px solid rgba(255,255,255,.2); color: #1a2330;
}
.event-apply .ea-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.event-apply .ea-radio { display: flex; gap: 20px; padding: 6px 0; }
.event-apply .ea-radio label { font-weight: 600; display: flex; align-items: center; gap: 6px; }
.event-apply .consent { color: rgba(255,255,255,.8); }
.event-apply .ea-guide { font-size: 13px; color: rgba(255,255,255,.6); text-align: center; margin: 4px 0 0; }
.event-apply .btn-block { margin-top: 4px; }

/* 반응형 */
@media (max-width: 840px) {
  .poster {
    min-height: 0;
  }
  .event-poster--desktop { display: none; }
  .event-poster-mobile {
    display: block;
    overflow: hidden;
    background: #050302;
  }
  .event-poster-mobile__main {
    display: block;
    width: 100%;
    height: auto;
  }
  .event-poster-mobile__when {
    margin: -6px 0 0;
    padding: 0 18px 4px;
    background: #050302;
    text-align: center;
  }
  .event-poster-mobile__date {
    margin: 0;
    color: #fff;
    font-family: var(--font-letter, inherit);
    font-size: clamp(22px, 6vw, 30px);
    font-weight: 500;
    letter-spacing: -.02em;
    line-height: 1.3;
  }
  .event-poster-mobile__place {
    margin: 8px 0 0;
    color: #e9b765;
    font-family: var(--font-letter, inherit);
    font-size: clamp(18px, 4.8vw, 24px);
    font-weight: 500;
    letter-spacing: -.02em;
  }
  .event-poster-mobile__info {
    position: relative;
    display: grid;
    gap: 22px;
    padding: 24px 18px 18px;
    background: #050302;
  }
  .event-poster-mobile__info::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    height: 72px;
    background: linear-gradient(180deg, rgba(5, 3, 2, 0) 0%, rgba(5, 3, 2, .72) 58%, #050302 100%);
    pointer-events: none;
  }
  .event-poster-mobile__info-item {
    position: relative;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    color: #fff;
    text-align: center;
    background: transparent;
  }
  .event-poster-mobile__info-item:not(:last-child) {
    padding-bottom: 26px;
  }
  .event-poster-mobile__info-item:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 14%;
    bottom: 0;
    left: 14%;
    height: 1px;
    background: rgba(216, 182, 111, .68);
  }
  .event-poster-mobile__info-item h3 {
    margin: 0 0 14px;
    padding: 0;
    background: transparent;
    color: #d8b66f;
    font-size: clamp(20px, 5.8vw, 26px);
    font-weight: 800;
    line-height: 1.15;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .8);
  }
  .event-poster-mobile__info-item p {
    margin: 0;
    color: #fff;
    font-size: clamp(17px, 4.2vw, 28px);
    font-weight: 400;
    line-height: 1.48;
    letter-spacing: -.04em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, .75);
  }
  .poster-bg {
    z-index: 0;
  }
  .poster-visual {
    display:block;
  }
  .poster-bg picture,
  .poster-bg img {
    width: 100%;
    max-width: none;
  }
  .info-item{
    align-items: center;
    justify-content: space-around;
    flex-direction: column;
    gap:20px;
    margin-top:30px;
  }
  .poster-info img {
    display: block;
    height: auto;
    max-width: 50vw;
  }
  .info-item::before, .info-item::after{
    display:none;
  }
  
  .poster-visual .img-foot-logo{
 
  }
  .poster-visual .img-foot-logo img{
    max-width:50vw;
  }
}
@media (max-width: 600px) {
.poster .img-header { top: 15vw; }
.poster-visual .img-foot-logo{
 
}
.poster-visual .img-foot-logo img{
  max-width:60vw;
}
}
@media (max-width: 600px) {
  .poster-info { flex-direction: column; }      /* 3박스 세로 재배열 */
  .poster-info img { width: 100%; }
  .info-item::before,
  .info-item::after { display: none; }
  .event-apply { padding: 26px 18px; }
  .ea-meta { grid-template-columns: 1fr; }
  .event-apply .ea-grid { grid-template-columns: 1fr; }
  .event-apply .ea-radio { flex-direction: column; gap: 10px; }
}

/* 랜딩 우상단 로그인 링크 (헤더 없는 메인용) */
.landing-login {
  position: fixed; top: 14px; right: 18px; z-index: 1200;
  display: flex; gap: 14px; align-items: center; font-size: 24px;
}
.landing-login span { color: rgba(255,255,255,.75); }
.landing-login a { color: #f4d78a; font-weight: 600; }
.landing-login a:hover { color: #fff; text-decoration: none; }
@media (max-width: 600px) { .landing-login { top: 10px; right: 12px; gap: 10px; font-size: 18px; } }

/* 포스터 전체 이미지 섹션 */
.poster-full { background: #000; padding: 0; }
.poster-full__inner { max-width: 1600px; margin: 0 auto; }
.poster-full img { display: block; width: 100%; height: auto; }

/* 위원장 인사말 섹션 (텍스트 + 배경이미지) */
.greeting {
  font-family: var(--font-letter-head);
  --g: #e9b765;
  --g-dim: rgba(233,183,101,.55);
  position: relative;
  background: #050403 url('../images/notice-bg.webp') center top / cover no-repeat;
  padding: 86px 20px 78px;
  color: #efe7da;
  background: #050403 url('../images/bg_poster1.webp') center top / cover no-repeat;
  background-size: 1300px;
    min-height: 2041px;
}
.greeting::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(5,4,3,.55) 0%, rgba(5,4,3,.15) 25%, rgba(5,4,3,.15) 75%, rgba(5,4,3,.6) 100%);
}
.greeting__inner { position: relative; max-width: 960px; margin: 0 auto; }

.greeting__title {
  margin: 0 0 150px; text-align: center;
  font-size: 54px; font-weight: 900; line-height: 1.4; letter-spacing: -.5px;
  color: var(--g); text-shadow: 0 0 26px rgba(233,183,101,.4);
}

/* 골드 장식 프레임 (내용 길이에 맞춰 늘어남) */

.greeting__body { position: relative; text-align: center; padding-top:0px;}

.greeting__body p {
  font-family: var(--font-letter);
  margin: 0 0 30px; font-size: 28px; font-weight: 300; line-height: 1.95; letter-spacing: 0; color: #ece4d6;
}
.greeting__body p:last-of-type { margin-bottom: 0; }

.greeting__sign {
  display: flex; align-items: center; justify-content: center; gap: 16px;
  margin-top: 44px !important;
}
.sign-role { font-family: var(--font-letter); font-weight: 500; color: #ece4d6; }
.sign-name {
  display: block; height: 50px; width: auto;
  filter: drop-shadow(0 0 14px rgba(233,183,101,.35));
}

@media (max-width: 840px) {
  .greeting { background-image: url('../images/notice-bg_m.webp'); padding: 58px 16px 56px; min-height: 0; background-size: 118%; }
  .greeting__title { font-size: 26px; margin-bottom: 30px; }
  .greeting__frame { padding: 40px 18px 48px; }
  .greeting__body p { font-size: 15.5px; line-height: 1.9; margin-bottom: 24px; }
  .greeting__body::after { bottom: -67px; }
  .greeting__sign { flex-direction: column; gap: 6px; margin-top: 34px !important; }
  .sign-role { font-size: 15.5px; }
  .sign-name { height: 40px; }
  .greeting__frame {
    position: relative;
    border: 2px solid var(--g-dim);
    padding: 58px 34px 66px;
  }
  .greeting__frame::before {
    content: ""; position: absolute; inset: 7px;
    border: 1px solid rgba(233,183,101,.45); pointer-events: none;
  }
  .greeting__frame::after {
    content: "\2756"; position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
    color: var(--g); font-size: 17px; line-height: 1; padding: 0 16px;
    background: #0a0806;
  }
  .greeting__body::after {
    content: "\2756"; position: absolute; bottom: -76px; left: 50%; transform: translateX(-50%);
    color: var(--g); font-size: 17px; line-height: 1; padding: 0 16px;
    background: #0a0806;
  }
}

/* 스크린리더 전용 텍스트 */
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px,1px,1px,1px); clip-path: inset(50%); white-space: nowrap;
}

/* 공연 안내 섹션 */
.show-info {
  --g: #e9b765;
  --g-light: #f0d3a0;
  --g-line: rgba(233,183,101,.55);
  background: #000;
  padding: 92px 20px 96px;
  color: #fff;
  text-align: center;
}
.show-info__inner { max-width: 780px; margin: 0 auto; }
.show-info__title {
  margin: 0 0 22px;
  font-family: var(--font-letter); /* 주요안내 제목과 동일 */
  font-size: 56px; font-weight: 800; letter-spacing: 2px;
  color: var(--g); text-shadow: 0 0 24px rgba(233,183,101,.45);
}
/* 장식선 */
.si-rule { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 46px; }
.si-rule span { display: block; width: 150px; height: 1px; background: var(--g-line); }
.si-rule i, .si-rule b { color: var(--g); font-style: normal; line-height: 1; }
.si-rule i { font-size: 11px; opacity: .85; }
.si-rule b { font-size: 22px; }

.si-place { margin: 0 0 10px; font-size: 30px; font-weight: 800; color: #fff; letter-spacing: -.5px; }
.si-running { margin: 0 0 26px; font-size: 22px; font-weight: 600; color: #f3ead9; }
.si-warn { margin: 0 0 34px; font-size: 22px; font-weight: 600; color: #f3ead9; line-height: 1.6; }
.si-warn strong { color: #e0565f; font-weight: 800; }

/* 회차 표 */
.si-table {
  width: 100%; border-collapse: collapse; margin: 0 auto 44px;
  font-size: 22px;
}
.si-table th {
  background: #e8c98f; color: #1a1200; font-weight: 800; font-size: 21px;
  padding: 14px 8px; border-right: 1px solid rgba(0,0,0,.25);
}
.si-table th:last-child { border-right: 0; }
.si-table td {
  padding: 18px 8px; color: #fff; font-weight: 700;
  border-right: 1px solid var(--g-line); border-bottom: 1px solid var(--g-line);
}
.si-table td:last-child { border-right: 0; }
.si-table td.si-merge { color: #fff; }
.si-table tbody tr:first-child td:not(.si-merge) { border-bottom: 1px solid var(--g-line); }

/* 신청 버튼 */
.si-cta { margin-top: 6px; }
.si-btn {
  display: inline-block; border: 0; cursor: pointer;
  min-width: 380px; padding: 20px 48px; border-radius: 999px;
  background: linear-gradient(180deg, #f2d6a2 0%, #e9b765 100%);
  color: #1a1200; font-family: inherit; font-size: 34px; font-weight: 800; letter-spacing: -.5px;
  box-shadow: 0 10px 30px rgba(233,183,101,.28);
  transition: filter .15s ease, transform .05s ease;
  text-align: center; text-decoration: none; line-height: 1.2;
}
a.si-btn { color: #1a1200; }
.si-btn:hover, a.si-btn:hover { filter: brightness(1.06); color: #1a1200; text-decoration: none; }
.si-btn:active { transform: translateY(1px); }

@media (max-width: 840px) {
  .show-info { padding: 60px 18px 64px; }
  .show-info__title { font-size: 34px; margin-bottom: 16px; }
  .si-rule { margin-bottom: 30px; gap: 8px; }
  .si-rule span { width: 70px; }
  .si-rule b { font-size: 18px; }
  .si-place { font-size: 22px; }
  .si-running { font-size: 16px; margin-bottom: 18px; }
  .si-warn { font-size: 16px; margin-bottom: 26px; }
  .si-table { font-size: 16px; margin-bottom: 32px; }
  .si-table th { font-size: 15px; padding: 11px 4px; }
  .si-table td { padding: 13px 4px; }
  .si-btn { min-width: 0; width: 100%; padding: 16px 24px; font-size: 22px;max-width:240px; }
}

/* 주요안내 섹션 (텍스트 + 배경이미지) */
.notice {
  font-family: var(--font-letter);
  --g: #e9b765;
  --g-soft: rgba(233,183,101,.38);
  position: relative;
  background: #060504 url('../images/notice-bg.webp') center top / cover no-repeat;
  padding: 88px 20px 72px;
  color: #f2ece2;
}
.notice::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(6,5,4,.55) 0%, rgba(6,5,4,.2) 30%, rgba(6,5,4,.2) 70%, rgba(6,5,4,.7) 100%);
  pointer-events: none;
}
.notice__inner { position: relative; max-width: 820px; margin: 0 auto; }

.notice__title {
  text-align: center; margin: 0 0 14px;
  font-size: 56px; font-weight: 800; letter-spacing: 2px; color: var(--g);
  text-shadow: 0 0 24px rgba(233,183,101,.45);
}
.notice__rule { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 54px; }
.notice__rule span { display: block; width: 110px; height: 1px; background: linear-gradient(90deg, transparent, var(--g)); }
.notice__rule span:last-child { background: linear-gradient(90deg, var(--g), transparent); }
.notice__rule i { color: var(--g); font-style: normal; font-size: 14px; }

.notice-block { margin-bottom: 52px; }
.notice-block h3 {
  font-size: 25px; font-weight: 700; color: var(--g); margin: 0 0 18px;
  letter-spacing: 1px; padding-left: 6px;
}
.notice-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.notice-list li {
  position: relative; padding-left: 18px;
  font-size: 24px; line-height: 1.75; color: #ece5da;
}
.notice-list li::before {
  content: "·"; position: absolute; left: 2px; top: -2px;
  color: var(--g); font-size: 22px; line-height: 1.5;
}
.notice-list .hl { color: var(--g); font-weight: 700; }

/* 카드(문의처 / 증빙서류) */
.notice-card {
  margin-top: 26px; border: 1px solid var(--g-soft); border-radius: 12px;
  background: rgba(255,255,255,.03); padding: 22px 26px;
}
.notice-card--contact { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.nc-head { display: flex; align-items: center; gap: 16px; padding-right: 26px; border-right: 1px solid var(--g-soft); }
.nc-ico {
  width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%;
  background: rgba(233,183,101,.14); border: 1px solid var(--g-soft);
  display: grid; place-items: center; color: var(--g); font-size: 20px;
}
.nc-head-text { display: block; }
.nc-head-text small { display: block; font-size: 18px; color: rgba(242,236,226,.75); }
.nc-head-text strong { display: block; font-size: 22px; color: var(--g); font-weight: 700; letter-spacing: 1px; }
.nc-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; flex: 1 1 320px; align-content: center; }
.nc-people li { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.nc-tag {
  font-style: normal; font-size: 18px; font-weight: 700; color: #2a1e06;
  background: var(--g); border-radius: 4px; padding: 3px 10px; letter-spacing: 1px;
}
.nc-people b { font-weight: 600; color: #f2ece2; font-size: 22px; }
.nc-people a { color: var(--g); font-size: 22px; }
.nc-people a:hover { color: #fff; }

.notice-card--doc { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.notice .nc-ico svg { display: block; }
.nc-doc-label { font-size: 22px; color: var(--g); font-weight: 700; letter-spacing: 1px; }
.nc-doc-text { font-size: 18px; color: #ece5da; }

.notice__logo { text-align: center; padding-top: 26px; }
.notice__logo img { max-width: 20vw; }

@media (max-width: 840px) {
  .notice { background-image: url('../images/notice-bg_m.webp'); padding: 64px 18px 56px; }
  .notice__title { font-size: 34px; }
  .notice__rule { margin-bottom: 38px; }
  .notice__rule span { width: 70px; }
  .notice-block { margin-bottom: 40px; }
  .nc-head-text strong,
  .nc-people b,
  .notice-block h3 { font-size: 21px; }
  .nc-doc-text,
  .nc-head-text small,
  .notice-list li { font-size: 15.5px; }
  .notice-card { padding: 18px 18px; }
  .nc-head { border-right: 0; border-bottom: 1px solid var(--g-soft); padding: 0 0 14px; width: 100%; }
  
  .notice-card--contact { gap: 16px; }
  .nc-people li { gap: 10px; }
  .nc-people a { font-size: 15px; word-break: break-all; }
  .notice__logo img { max-width: 50vw; }
}

/* ---------- 조합원 로그인 페이지 (화면 중앙) ---------- */
.login-shell {
  min-height: 100vh; display: grid; place-items: center; padding: 40px 20px;
  background: #050403 url('../images/notice-bg.webp') center center / cover no-repeat;
}
.login-card {
  width: 100%; max-width: 440px; background: #fff; border-radius: 16px;
  box-shadow: 0 30px 80px rgba(0,0,0,.45); padding: 44px 38px 34px;
  border: 1px solid rgba(233,183,101,.5);
}
.login-card .login-logo { text-align: center; margin-bottom: 20px; }
.login-card .login-logo img { max-width: 190px; height: auto; }
.login-card h1 { font-size: 24px; text-align: center; color: var(--posco-blue); margin: 0 0 6px; }
.login-card .sub { text-align: center; color: var(--posco-gray); font-size: 14px; margin: 0 0 26px; }
.login-card .form-links {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  font-size: 13px; margin-top: 18px; color: var(--posco-gray); text-align: center;
}
.login-card .btn-block { padding: 14px; font-size: 16px; }
@media (max-width: 600px) {
  .login-shell { background-image: url('../images/notice-bg_m.webp'); padding: 24px 14px; }
  .login-card { padding: 32px 22px 26px; }
}

/* ---------- 모달 안 조합원 확인(로그인) ---------- */
.member-login { padding: 30px 26px 26px; }
.member-login .ml-head { text-align: center; margin-bottom: 22px; }
.member-login .ml-head h2 { margin: 0 0 6px; font-size: 24px; color: var(--gold-deep, #8a6520); }
.member-login .ml-sub { margin: 0; font-size: 14px; color: var(--posco-gray); }
.member-login .ml-form { gap: 14px; }
.member-login .ml-guide { font-size: 12.5px; color: var(--posco-gray); text-align: center; margin: 10px 0 0; }
.ml-msg { min-height: 0; font-size: 13.5px; text-align: center; }
.ml-msg.err {
  min-height: 20px; color: var(--posco-danger); background: rgba(214,69,69,.08);
  border: 1px solid rgba(214,69,69,.3); border-radius: 8px; padding: 9px 12px;
}
.ml-submit { margin-top: 2px; }

/* ---------- 개인정보 동의 박스 ---------- */
.ea-consent-box { gap: 8px; }
.ea-consent-text {
  max-height: 168px; overflow-y: auto;
  border: 1px solid var(--neutral-line, #e4e4e7); border-radius: 8px;
  padding: 14px 16px; background: #fff;
  font-size: 13.5px; line-height: 1.7; color: var(--posco-ink);
}
.ea-consent-text p { margin: 0 0 10px; }
.ea-consent-text p:last-child { margin-bottom: 0; }
.ea-consent-text b { color: var(--posco-ink); }
.ea-consent-ask { font-weight: 700; padding-top: 4px; }

/* 세로 라디오 목록 */
.event-apply .ea-radio--col,
.ea-radio--col { display: flex; flex-direction: column; gap: 11px; align-items: flex-start; }
.event-apply .ea-radio--col label { font-weight: 500; }

/* 자동 입력(수정 불가) 필드 */
.posco-form input[readonly],
.event-apply .posco-form input[readonly],
.posco-modal__body .posco-form input[readonly] {
  background: #f1f1f3; color: #6b7280; cursor: default;
}
.posco-modal__body .posco-form input[readonly]:focus { border-color: #e4e4e7; box-shadow: none; }

/* 하단 안내 */
.ea-notes { list-style: none; margin: 14px 0 0; padding: 0; }
.ea-notes li {
  position: relative; padding-left: 12px; font-size: 13px; font-weight: 700;
  line-height: 1.8; color: var(--posco-ink);
}
.ea-notes li::before { content: "*"; position: absolute; left: 0; }

/* 공연 신청 모달(팝업) — 골드(#e9b765) 라이트 테마 + 화면 정중앙 */
/* 모달이 열려도 페이지 스크롤 허용 — 모달 전체를 스크롤로 볼 수 있게 */
body.modal-open { overflow: visible; }
.posco-modal {
  position: absolute; top: 0; left: 0; right: 0; bottom: auto;
  min-height: 100%; z-index: 1000; display: none;
  --gold: #e9b765;              /* 기준색 */
  --gold-deep: #8a6520;         /* 텍스트용(대비 확보) */
  --gold-mid: #b8892f;          /* 보조 텍스트 */
  --gold-soft: #f4f4f5;         /* 배경 틴트(중립) */
  --gold-cream: #fafafa;        /* dialog 바탕(중립 오프화이트) */
  --gold-line: rgba(233,183,101,.45);
  --neutral-line: #e4e4e7;      /* 중립 구분선 */
}
.posco-modal[aria-hidden="false"] {
  display: flex; align-items: flex-start; justify-content: center; padding: 4vh 16px 6vh;
}
.posco-modal__overlay { position: fixed; inset: 0; background: rgba(20,20,22,.62); }
.posco-modal__dialog {
  position: relative; width: 100%; max-width: 640px; margin: 0;
  max-height: none; overflow: visible;
  background: var(--gold-cream);
  color: var(--posco-ink);
  border: 1px solid var(--gold); border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0,0,0,.32);
}
.posco-modal__x {
  position: absolute; top: 8px; right: 14px; background: none; border: 0;
  color: var(--gold-mid); font-size: 30px; line-height: 1; cursor: pointer; z-index: 2;
}
.posco-modal__x:hover { color: var(--gold-deep); }
.posco-modal__body {
  padding: 10px;
  border-radius: 14px;
  overflow: hidden;
}
.posco-modal__body .event-apply {
  border: 0; background: transparent; padding: 26px 24px 8px; color: var(--posco-ink);
}

/* 모달 내부 라이트(골드) 오버라이드 */
.posco-modal__body .ea-head h2 { color: var(--gold-deep); }
.posco-modal__body .ea-sub { color: var(--posco-gray); }
.posco-modal__body .ea-meta div { background: #fff; border: 1px solid var(--neutral-line); }
.posco-modal__body .ea-meta span { color: var(--gold-mid); }
.posco-modal__body .ea-meta b { color: var(--posco-ink); }
.posco-modal__body .ea-status {
  background: #fff; border: 1px dashed var(--gold); color: var(--gold-deep);
}
.posco-modal__body .ea-status small { color: var(--posco-gray); }
.posco-modal__body .posco-form label { color: var(--posco-ink); }
.posco-modal__body .posco-form input[type=text],
.posco-modal__body .posco-form input[type=email],
.posco-modal__body .posco-form input[type=tel],
.posco-modal__body .posco-form select {
  background: #fff; border: 1px solid var(--neutral-line); color: var(--posco-ink);
}
.posco-modal__body .posco-form input:focus,
.posco-modal__body .posco-form select:focus {
  border-color: var(--gold); box-shadow: 0 0 0 3px rgba(233,183,101,.28);
}
.posco-modal__body .ea-radio label { color: var(--posco-ink); }
.posco-modal__body .consent,
.posco-modal__body .ea-guide { color: var(--posco-gray); }
.posco-modal__body .btn-gold {
  background: linear-gradient(135deg, #f3d59b 0%, var(--gold) 45%, #c9922f 100%);
  color: #3a2a00; box-shadow: 0 6px 20px rgba(233,183,101,.45);
}

.posco-modal__foot {
  display: flex; justify-content: flex-end; gap: 10px;
  padding: 14px 26px 22px; margin: 0 16px;
  border-top: 1px solid var(--neutral-line);
}
.posco-modal__foot button { background: none; border: 0; cursor: pointer; font-size: 13px; color: var(--posco-gray); }
.posco-modal__foot .modal-close-btn { color: var(--gold-deep); font-weight: 700; }
.posco-modal__foot button:hover { text-decoration: underline; }
@media (max-width: 600px) {
  .posco-modal[aria-hidden="false"] { padding: 0 0 6vh; align-items: flex-start; }
  .posco-modal__dialog { margin: 0; min-height: 0; max-height: none; border-radius: 0; border: 0; }
  .notice__logo img { max-width: 60vw; }
  .posco-modal__body .event-apply { padding: 22px 16px 8px; }
  .poster .img-title {
    top: 70vw;
}
  .poster .img-date{
    top:102vw;
  }
  .greeting__body p br{
    display: none;
  }
}
@media (max-width: 420px) {
  .greeting__title {
      font-size: 6vw;
      
  }
}

/* ---------- 모달: 조합원 확인 단계(다크 골드) ---------- */
.posco-modal__dialog.is-login {
  --gold-cream: #0b0908;
  background: radial-gradient(120% 70% at 50% -10%, rgba(233,183,101,.22) 0%, rgba(11,9,8,0) 60%), #0b0908;
  border-color: rgba(233,183,101,.55);
  color: #f2ece2;
  max-width: 480px;
}
.is-login .posco-modal__x { color: var(--gold); }
.is-login .posco-modal__x:hover { color: #fff; }
.is-login .posco-modal__body { padding: 0; }

.is-login .member-login { padding: 34px 34px 26px; }
.is-login .ml-logo { text-align: center; margin-bottom: 14px; }
.is-login .ml-logo img { max-width: 200px; height: auto; }
.is-login .ml-head { margin-bottom: 26px; }
.is-login .ml-head h2 {
  font-size: 27px; font-weight: 800; color: var(--gold); margin: 0 0 8px;
  text-shadow: 0 0 22px rgba(233,183,101,.35);
}
.is-login .ml-sub { color: rgba(242,236,226,.72); font-size: 14px; }

.is-login .ml-form .field { gap: 8px; }
.is-login .posco-form label { color: #f2ece2; font-size: 14px; }
.is-login .posco-form label .req { color: var(--gold); }
.is-login .posco-form input[type=text],
.is-login .posco-form input[type=password] {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(233,183,101,.35);
  color: #f7f2e9; padding: 14px 16px; border-radius: 10px;
}
.is-login .posco-form input::placeholder { color: rgba(242,236,226,.4); }
.is-login .posco-form input:focus {
  border-color: var(--gold); box-shadow: 0 0 0 3px rgba(233,183,101,.2); outline: none;
}

.is-login .ml-submit {
  margin-top: 6px; padding: 15px; border-radius: 10px;
  background: linear-gradient(180deg, #f2d6a2 0%, #e9b765 100%);
  color: #241a06; font-size: 17px; font-weight: 800; letter-spacing: -.3px;
  box-shadow: 0 8px 26px rgba(233,183,101,.25);
}
.is-login .ml-guide { color: rgba(242,236,226,.55); font-size: 12px; margin-top: 12px; }
.is-login .ml-msg.err {
  color: #ffb3b3; background: rgba(214,69,69,.14); border-color: rgba(214,69,69,.45);
}

.is-login .posco-modal__foot {
  border-top: 1px solid rgba(233,183,101,.25); margin: 0 26px; padding: 14px 0 20px;
}
.is-login .posco-modal__foot button { color: rgba(242,236,226,.6); }
.is-login .posco-modal__foot .modal-close-btn { color: var(--gold); }

@media (max-width: 600px) {
  .is-login .member-login { padding: 28px 20px 22px; }
  .is-login .ml-head h2 { font-size: 23px; }
  .is-login .posco-modal__foot { margin: 0 18px; }
}

/* 신청 완료 상태 카드 */
.ea-status--done { border-style: solid; }
.posco-modal__body .ea-status--done {
  background: rgba(31,157,85,.06); border: 1px solid rgba(31,157,85,.35); color: #1f7a48;
}
.ea-done-mark {
  display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
  background: rgba(31,157,85,.14); color: #1f9d55; font-size: 17px; margin-bottom: 10px;
}
.ea-done-list { list-style: none; margin: 16px auto 12px; padding: 0; max-width: 300px; display: grid; gap: 8px; }
.ea-done-list li { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; font-weight: 400; }
.ea-done-list li span { color: var(--posco-gray); }
.ea-done-list li b { color: var(--posco-ink); font-weight: 700; }
.posco-modal__body .ea-status--done small { color: var(--posco-gray); line-height: 1.7; }

/* 신청 폼 상단 로고 */
.ea-logo { text-align: center; margin-bottom: 12px; }
.ea-logo img { max-width: 300px; height: auto; }
@media (max-width: 600px) { .ea-logo img { max-width: 220px; } }

/* 신청 폼 상단 배너 이미지 (사용자 정의에서 등록) */
.ea-banner { margin: 0 0 22px; }
.ea-banner img { display: block; width: 100%; height: auto; border-radius: 10px; }
.posco-modal__body .event-apply.has-banner { padding-top: 0; }
.posco-modal__body .ea-banner {
  margin: -10px -34px 22px; /* 모달 본문 패딩까지 상쇄해 가장자리에 붙임 */
  border-radius: 12px 12px 0 0; overflow: hidden;
}
.posco-modal__body .ea-banner img { border-radius: 0; }
@media (max-width: 600px) {
  .posco-modal__body .ea-banner { margin: -10px -26px 18px; }
}

/* 입력칸 아래 안내 문구 */
.posco-form .field-note {
  margin: 2px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--posco-danger);
  font-weight: 600;
}

/* 신청 취소 버튼 */
.ea-cancel-form { margin: 16px 0 6px; }
.ea-cancel-btn {
  background: none; border: 1px solid rgba(214,69,69,.5); border-radius: 8px;
  color: var(--posco-danger); font-family: inherit; font-size: 14px; font-weight: 700;
  padding: 10px 22px; cursor: pointer; transition: background .15s ease;
}
.ea-cancel-btn:hover { background: rgba(214,69,69,.08); }
.ea-cancel-note { display: block; font-size: 12.5px; color: var(--posco-gray); }

/* 조합원 확인 - 기본 안내 박스 */
.is-login .ml-msg--info {
  min-height: 0; color: #f3ddb2; background: rgba(233,183,101,.10);
  border: 1px solid rgba(233,183,101,.45); border-radius: 8px;
  padding: 11px 14px; font-size: 13.5px; line-height: 1.5;
}
.ml-msg--info { color: var(--posco-gray); }

/* 주요안내 - 강조 콜아웃 */
.notice-callout {
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 46px; padding: 18px 22px;
  background: rgba(233,183,101,.10);
  border: 1px solid var(--g, #e9b765); border-radius: 10px;
  box-shadow: 0 0 30px rgba(233,183,101,.12);
}
.notice-callout .nco-mark {
  flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--g, #e9b765); color: #241a06;
  font-weight: 800; font-size: 17px; line-height: 1;
}
.notice-callout p {
  margin: 0; font-size: 17px; font-weight: 700; line-height: 1.6;
  color: #f6ead2;
}
@media (max-width: 840px) {
  .notice-callout { margin-bottom: 34px; padding: 15px 16px; gap: 11px; }
  .notice-callout p { font-size: 15px; }
  .notice-callout .nco-mark { flex-basis: 26px; width: 26px; height: 26px; font-size: 15px; }
}
