/* 동북권 ICT이노베이션스퀘어 게시판 - board.css (커뮤니티 · 게시판 페이지 전용, community.css 를 합침 2026-10-01)
   - 불러오는 순서 : common → layout → board
   - 게시판 공통 : 목록(날짜 타일 줄 목록 · 상단 고정 공지 · 내 글) / 게시글 보기(머리 · 본문 · 첨부파일 · 이전글 다음글) / 게시판 안 메뉴 · 쓰기 버튼 / 글쓰기 마무리
   - 커뮤니티 : 하위 메뉴 · 자료실 분류 색 · 분야 색 · 포트폴리오 카드 · 홍보 · 언론 카드 · 행사 · 프로그램 · 설문
   - 검색 · 분류는 공통 조건 찾기(common.css .filter-box), 입력 양식은 common.css .form-list */

/* ===================== 게시판 목록 : 날짜 타일 + 제목 + 정보 + 화살표 (줄 전체 클릭) =====================
   <ul class="bd-list"><li class="bl-item">
     <p class="bl-date"><span class="bl-day" aria-hidden="true">30</span><span class="bl-ym" aria-hidden="true">2026.09</span><span class="visually-hidden">등록일 2026.09.30</span></p>
     <div class="bl-body"><p class="bl-title"><span class="bl-tt">(공지 배지)<a href="보기 주소">제목</a></span> 아이콘</p><p class="bl-meta"><span>No. 126</span><span>작성자</span><span>조회 58</span></p></div>
     <span class="bl-go" aria-hidden="true"></span></li></ul>
   - 상단 고정 공지 : li.is-notice (연파랑 줄) + 제목 앞 <span class="bl-notice"><span class="visually-hidden">상단 고정 </span>공지</span> (빨간 둥근 배지 + 핀)
   - 새 글(3일 이내) : li.is-new + <span class="bd-new"><span aria-hidden="true">N</span><span class="visually-hidden">새 글</span></span>
   - 첨부파일 : <img class="bs-file" src="bd_file_icon.svg" alt="첨부파일 있음">
   - 제목 링크의 ::after 가 줄 전체를 덮어 어디를 눌러도 이동 (링크 글자는 제목만이라 스크린리더가 짧게 읽음)
   - 긴 제목 : PC 1줄 말줄임 / 태블릿(1000px 이하)부터 2줄 말줄임 (전체 글자는 그대로 있어 스크린리더는 다 읽음) */
.bd-list{margin:0;padding:0;border-top:2px solid var(--ink);}
.bl-item{position:relative;display:flex;align-items:center;gap:clamp(16px, 11.71px + 1.143vw, 30px);padding:clamp(16px, 14.16px + 0.49vw, 22px) clamp(4px, -1.51px + 1.469vw, 22px);border-bottom:1px solid #e3ecf7;transition:background .2s;}
.bl-item:hover{background:#f8fbff;}
.bl-date{   /* 날짜 타일 : 하늘색 바탕 (상단 고정 공지 줄은 파란 바탕 · 흰 글자) */
  flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:80px;height:80px;margin:0;
  border:1px solid transparent;border-radius:22px;background:var(--sky);transition:background .25s,border-color .25s;
}
.bl-day{font-family:var(--font-title);font-size:clamp(22.5px, 20.20px + 0.612vw, 30px);line-height:1;color:var(--primary);}
.bl-ym{margin-top:2px;font-size:12px;font-weight:600;color:var(--gray-700);}
.bl-body{flex:1 1 auto;min-width:0;}
.bl-title{display:flex;align-items:center;gap:8px;margin:0;}
.bl-tt{   /* 제목 글자 묶음 (공지 배지 + 제목 링크)
             PC : flex 로 배지 · 제목 가운데 맞춤 + 제목 1줄 말줄임 / 1000px 이하 : 글자 흐름(둘째 줄이 배지 아래 왼쪽부터) + 2줄 말줄임 */
  display:flex;align-items:center;flex:0 1 auto;min-width:0;
  font-size:clamp(16.5px, 16.04px + 0.122vw, 18px);font-weight:700;color:var(--ink);
}
.bl-title a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);text-underline-offset:4px;transition:color .2s;}
.bl-tt > .bd-tag + a,.bl-tt > .bl-notice + a{margin-left:10px;}   /* 태그 · 공지 배지 뒤 제목 : 왼쪽 10px 더 띄움 (사용자 지시) / 태그 없는 제목은 그대로 (아래 정보 줄과 맞춤) */
.bl-title a::after{content:'';position:absolute;inset:0;z-index:1;}   /* 줄 전체 클릭 영역 */
.bl-title a:focus-visible{outline:none;}
.bl-title a:focus-visible::after{outline:2px solid var(--primary);outline-offset:-2px;border-radius:6px;}
.bl-item:hover .bl-title a{color:var(--primary);text-decoration:underline;}
.bs-file{flex:none;width:18px;height:18px;}
.bd-new{   /* 새 글 : 빨간 원 N (흰 글자 대비 5.16:1) */
  flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;
  background:var(--red);color:#fff;font-size:12px;font-weight:800;line-height:1;
}
.bl-meta{display:flex;flex-wrap:wrap;margin:9px 0 0;font-size:clamp(13px, 12.69px + 0.082vw, 14px);color:var(--gray-700);}
.bl-meta > span + span{margin-left:12px;padding-left:12px;background:linear-gradient(#d7dce6, #d7dce6) left center/1px 11px no-repeat;}   /* 사이 세로줄 (장식) */
.bl-go{   /* 오른쪽 화살표 원 (장식) : 마우스를 올리면 파랗게 채워지며 살짝 밀림 */
  flex:none;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #d7dce6;border-radius:50%;color:var(--gray-700);
  transition:background .25s,border-color .25s,color .25s,transform .25s var(--ease);
}
.bl-go::before{
  content:'';width:16px;height:16px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4'/%3E%3C/svg%3E") center/contain no-repeat;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4'/%3E%3C/svg%3E");mask-position:center;mask-size:contain;mask-repeat:no-repeat;
}
.bl-item:hover .bl-go{border-color:var(--primary);background:var(--primary);color:#fff;transform:translateX(4px);}
/* 상단 고정 공지 : 연파랑 줄 + 흰 날짜 타일 + 제목 앞 빨간 "공지" 배지(핀) + 제목 더 굵게 */
.bl-item.is-notice{background:#f5f9fe;}
.bl-item.is-notice:hover{background:#edf4fd;}
.bl-item.is-notice .bl-date{border-color:var(--primary);background:var(--primary);}   /* 상단 고정 공지 : 날짜 타일 파란 바탕 + 흰 글자 (사용자 지시 2026-10-06) */
.bl-item.is-notice .bl-day{color:#fff;}
.bl-item.is-notice .bl-ym{color:rgba(255,255,255,.85);}   /* 파란 바탕 대비 6.8:1 */
.bl-notice{   /* 공지 배지 : 빨간 둥근 바탕 + 흰 핀 (흰 글자 대비 5.16:1) - 제목 글자 줄 안에 들어감 */
  flex:none;display:inline-flex;align-items:center;gap:4px;height:28px;margin-right:8px;padding:0 12px 0 9px;border-radius:999px;   /* 폭 = 글자 길이대로 (분류 태그 폭 통일에서 제외 - 사용자 지시) */
  background:var(--red);color:#fff;font-size:clamp(12px, 11.69px + 0.082vw, 13px);font-weight:800;line-height:1;white-space:nowrap;
}
.bl-notice::before{content:'';flex:none;width:14px;height:14px;background:url("../images/board/bd_pin_icon.svg") center/contain no-repeat;}   /* 핀 (장식) */
.bl-item.is-notice .bl-title a{font-weight:800;}
.bl-item.is-notice .bl-go{border-color:#c9d8ee;background:#fff;}
.bl-item.is-notice:hover .bl-go{border-color:var(--primary);background:var(--primary);}
.bl-empty{padding:clamp(48px, 40.65px + 1.959vw, 72px) 20px;border-bottom:1px solid #e3ecf7;text-align:center;font-size:clamp(14.5px, 14.04px + 0.122vw, 16px);color:var(--gray-700);}   /* 검색 결과 없음 : <li class="bl-empty"> */
.bd-badge{   /* 공지 배지 (게시글 보기 머리) : 목록 공지 배지와 같은 빨강, .is-pin = 핀 아이콘 */
  display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;padding:0 13px;border-radius:999px;   /* 폭 = 글자 길이대로 (분류 태그 폭 통일에서 제외) */
  background:var(--red);color:#fff;font-size:clamp(12px, 11.69px + 0.082vw, 13px);font-weight:800;white-space:nowrap;
}
.bd-badge.is-pin{padding-left:10px;}
.bd-badge.is-pin::before{content:'';flex:none;width:15px;height:15px;background:url("../images/board/bd_pin_icon.svg") center/contain no-repeat;}
/* 분류 태그 (자료실 등) : 목록 제목 앞 · 보기 머리 - 공지 배지(빨간 알약)와 구분되게 모서리 덜 둥근 연한 바탕 (글자 대비 4.5:1 이상)
   <span class="bd-tag is-edu">교육자료</span> (보라) / is-form 서식 (초록) / is-report 결과보고 (주황) - 연파랑 배경(제목 칸 · 공지 줄) 위에서도 구분되는 색 */
.bd-tag{   /* 가로 크기 통일 : 5글자(채용설명회 · 시설·장비)까지 같은 폭 + 글자 가운데 (사용자 지시) / 더 긴 글자(과정명 등)만 늘어남 */
  flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:6.4em;height:28px;padding:0 11px;border-radius:8px;text-align:center;
  background:var(--primary-light);color:var(--primary);font-size:clamp(12px, 11.69px + 0.082vw, 13px);font-weight:700;line-height:1;white-space:nowrap;
}
.bl-tt .bd-tag{margin-right:8px;}
.bv-tags .bd-tag{height:30px;padding:0 13px;}

@media (max-width:1000px){   /* 태블릿부터 : 제목 2줄 말줄임 · 배지와 아이콘은 첫 줄에 맞춤 */
  .bl-title{align-items:flex-start;}
  .bl-tt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere;}
  .bl-title a{overflow:visible;white-space:normal;}
  .bl-notice{height:24px;padding:0 10px 0 8px;vertical-align:top;}   /* 배지 · 분류 태그 : 첫 줄 위에 맞춤 (높이 24 ≒ 줄 높이라 가운데가 글자 가운데) */
  .bl-tt .bd-tag{height:24px;padding:0 9px;vertical-align:top;}
  .bl-title .bs-file{margin-top:4px;}
  .bl-title .bd-new{margin-top:3px;}
}
@media (max-width:768px){
  .bl-go{display:none;}
  .bl-date{width:64px;height:64px;border-radius:18px;}
  .bl-day{font-size:clamp(23px, 21.94px + 0.282vw, 26.45px);}
  .bl-ym{font-size:12px;}
}
@media (max-width:640px){
  .bl-item{align-items:flex-start;padding:clamp(16px, 14.16px + 0.49vw, 22px) 6px;}
  .bl-item.is-notice,.bl-item.is-mine{padding:clamp(16px, 14.16px + 0.49vw, 22px) 10px;}   /* 배경 있는 줄(공지 고정 · 내 글)은 안쪽 여백 조금 더 */
  .bl-title{gap:6px;}
  .bl-tt{font-size:clamp(16px, 15.54px + 0.122vw, 17.5px);}
  .bl-title .bs-file{width:17px;height:17px;}
  .bl-notice,.bl-tt .bd-tag{margin-right:6px;}
  .bl-meta{margin-top:7px;font-size:clamp(13px, 12.69px + 0.082vw, 14px);}
  .bl-meta{gap:3px 12px;}   /* 모바일 : 세로줄 대신 간격 (줄이 바뀌어도 줄 앞에 세로줄이 남지 않게) */
  .bl-meta > span + span{margin-left:0;padding-left:0;background:none;}
  .bl-meta .bl-hash{flex-basis:100%;}   /* 기술 태그는 따로 한 줄 */
}

/* ===================== 게시글 보기 (게시판 보기 공통) =====================
   .bv-head(배지 · 제목 · 작성자/등록일/조회) → .bv-content(에디터 내용) → .bv-files(첨부파일) → .bv-nav(이전글 · 다음글) → 목록 버튼 */
.bv-head{border-top:2px solid var(--ink);border-bottom:1px solid #e3e9f1;}   /* 게시판 머리 : 굵은 윗선 + 연한 아랫선 (온라인 강의 보기 .ov-head 와 같은 모양) */
.bv-tit{padding:clamp(26px, 22.94px + 0.816vw, 36px) clamp(16px, 12.33px + 0.98vw, 28px);border-bottom:1px solid #e3e9f1;background:#f5f9fe;}   /* 배지 + 제목 : 연파랑 배경 (작성자 줄은 배경 없음) */
.bv-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;}
.bv-title{margin:0;font-size:clamp(21px, 18.86px + 0.571vw, 28px);font-weight:800;line-height:1.4;color:var(--ink);word-break:keep-all;overflow-wrap:anywhere;}
.bv-meta{   /* 작성자(왼쪽) + 등록일 | 조회(오른쪽) : 한 줄에 다 안 들어가 오른쪽 묶음이 다음 줄로 내려가면 왼쪽부터 (사용자 지시 2026-11-02, 예전엔 오른쪽 끝) — space-between 이라 혼자 남은 줄은 왼쪽 */
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;
  padding:clamp(13px, 11.78px + 0.327vw, 17px) clamp(16px, 12.33px + 0.98vw, 28px);font-size:clamp(13.5px, 13.19px + 0.082vw, 14.5px);
}
.bv-meta dl{display:flex;flex-wrap:wrap;align-items:center;margin:0 0 0 -19px;clip-path:inset(0 0 0 19px);}   /* 왼쪽 19px(아래 구분선 13px + 칸 안 간격 6px)를 가림 → 줄 첫 칸 앞 세로줄은 안 보이고 글자는 예전 자리 */
.bv-meta dl > div{display:flex;align-items:center;gap:6px;}
.bv-meta dl > div::before{content:'';flex:none;width:1px;height:11px;margin:0 6px;background:#cfd8e6;}   /* 세로 구분선 (장식) : 모든 칸 앞 — 줄이 바뀌어도 줄 첫 칸은 위 가림으로 선 없이 시작 (사용자 지시 2026-11-02) */
.bv-meta dt{flex:none;font-weight:700;color:#363636;white-space:nowrap;}   /* 항목 이름(제출 기간 등)은 쪼개지 않음 — 좁으면 값(dd)만 줄바꿈 */
.bv-meta dd{margin:0;color:var(--gray-700);}

/* 본문 : 관리자 에디터로 쓴 내용이 그대로 들어감 - 문단 · 목록 · 굵게 · 링크 · 이미지 · 표 기본 모양 */
.bv-content{
  padding:clamp(36px, 28.65px + 1.959vw, 60px) clamp(16px, 12.33px + 0.98vw, 28px) clamp(40px, 32.65px + 1.959vw, 64px);   /* 왼쪽 여백 = 머리(제목 · 작성자 줄)와 같게 */
  font-size:clamp(15.5px, 15.04px + 0.122vw, 17px);line-height:1.85;color:#2b3346;word-break:keep-all;overflow-wrap:anywhere;
}
.bv-content > :first-child{margin-top:0;}
.bv-content > :last-child{margin-bottom:0;}
.bv-content p{margin:0 0 1.1em;}
.bv-content strong,.bv-content b{font-weight:800;color:var(--ink);}
.bv-content a{color:var(--primary);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.bv-content a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:3px;}
.bv-content ul,.bv-content ol{margin:0 0 1.2em;padding:0;}
.bv-content ul li{position:relative;padding-left:18px;}
.bv-content ul li::before{content:'';position:absolute;left:3px;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--primary);}   /* 목록 점 (장식) */
.bv-content ol{padding-left:1.5em;list-style:decimal;}
.bv-content li + li{margin-top:.35em;}
.bv-content img{display:block;max-width:100%;height:auto;border-radius:16px;}   /* 이미지(포스터 등) : 왼쪽 정렬, 원래 크기까지 */
.bv-content p:has(> img){margin-bottom:1.6em;}
.bv-content table{width:100%;margin:0 0 1.2em;border-collapse:collapse;border-top:2px solid var(--ink);font-size:.9em;}
.bv-content th,.bv-content td{padding:10px 14px;border-bottom:1px solid #e3ecf7;text-align:left;}
.bv-content th{background:#f4f9fe;font-weight:700;color:var(--ink);}

/* 첨부파일 : 파일 하나 = 링크 하나 [확장자 · 파일명 · 크기 · 내려받기] (링크 글자에 파일명이 들어가 어느 파일인지 알 수 있음) */
.bv-files{overflow:hidden;border:1px solid #e3ecf7;border-radius:22px;background:#fff;}
.bf-title{   /* 첨부파일 제목 줄 : 따로 빼서 연파랑 배경 */
  display:flex;align-items:center;gap:8px;margin:0;padding:clamp(14px, 12.78px + 0.327vw, 18px) clamp(18px, 13.71px + 1.143vw, 32px);
  border-bottom:1px solid #e3ecf7;background:#f5f9fe;font-size:clamp(15.5px, 15.04px + 0.122vw, 17px);font-weight:800;color:var(--ink);
}
.bf-list{padding:clamp(4px, 2.78px + 0.327vw, 8px) clamp(18px, 13.71px + 1.143vw, 32px);}
.bf-title::before{content:'';flex:none;width:19px;height:19px;background:url("../images/board/bd_file_icon02.svg") center/contain no-repeat;}   /* 클립 (장식) */
.bf-count{color:var(--primary);}
.bf-list li + li{border-top:1px dashed #dfe7f2;}
.bf-link{display:flex;align-items:center;gap:12px;padding:14px 2px;}
.bf-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:10px;}
.bf-ext{   /* 확장자 : 흰 글자 대비 모두 4.5:1 이상 */
  flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:50px;height:26px;padding:2px 8px 0;border-radius:7px;   /* 위 2px : 대문자 글자가 위로 떠 보이지 않게 (글자 위아래 여백 같게) */
  background:var(--gray-700);color:#fff;font-size:12px;font-weight:800;line-height:1;letter-spacing:.3px;text-align:center;
}
.bf-ext.is-pdf{background:var(--red);}
.bf-ext.is-xls{background:#1d7a46;}
.bf-ext.is-hwp{background:#1f5fbf;}
.bf-ext.is-doc{background:#2b579a;}
.bf-ext.is-zip{background:#7a4a14;}
.bf-name{min-width:0;font-size:clamp(14px, 13.69px + 0.082vw, 15px);font-weight:600;color:var(--ink);overflow-wrap:anywhere;text-underline-offset:3px;transition:color .2s;}
.bf-size{flex:none;font-size:clamp(12px, 11.69px + 0.082vw, 13px);color:var(--gray-500);}
.bf-cnt{flex:none;font-size:clamp(12px, 11.69px + 0.082vw, 13px);color:var(--gray-500);}   /* 내려받은 횟수 (자료실) */
.bf-size + .bf-cnt{position:relative;padding-left:11px;}
.bf-size + .bf-cnt::before{content:'';position:absolute;left:0;top:50%;width:1px;height:10px;margin-top:-5px;background:#d7dce6;}   /* 사이 세로줄 (장식) */
.bf-down{
  flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;margin-left:auto;padding:0 15px;border-radius:999px;
  background:var(--primary-light);color:var(--primary);font-size:clamp(13px, 12.69px + 0.082vw, 14px);font-weight:700;transition:background .2s,color .2s;
}
.bf-down::before{   /* 내려받기 화살표 (장식, 글자색을 따라감) */
  content:'';flex:none;width:15px;height:15px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2.5v8M4.5 7.5 8 11l3.5-3.5M3 13.5h10'/%3E%3C/svg%3E") center/contain no-repeat;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2.5v8M4.5 7.5 8 11l3.5-3.5M3 13.5h10'/%3E%3C/svg%3E");mask-position:center;mask-size:contain;mask-repeat:no-repeat;
}
.bf-link:hover .bf-name{color:var(--primary);text-decoration:underline;}
.bf-link:hover .bf-down{background:var(--primary);color:#fff;}

/* 이전글 · 다음글 : <nav class="bv-nav" aria-label="이전 글, 다음 글"> / 글이 없으면 링크 대신 <span class="bn-none">이전 글이 없습니다.</span> */
.bv-nav{margin-top:clamp(36px, 29.88px + 1.633vw, 56px);border-top:2px solid var(--ink);}
.bv-nav li{display:flex;align-items:center;gap:clamp(12px, 9.55px + 0.653vw, 20px);padding:clamp(16px, 14.78px + 0.327vw, 20px) clamp(6px, 1.71px + 1.143vw, 20px);border-bottom:1px solid #e3ecf7;}
.bn-label{flex:none;display:flex;align-items:center;gap:8px;width:96px;font-size:clamp(14px, 13.69px + 0.082vw, 15px);font-weight:800;color:var(--ink);}
.bn-label::before{content:'';flex:none;display:flex;width:26px;height:26px;border-radius:50%;background:var(--primary-light) var(--ic) center/14px no-repeat;}   /* 위 · 아래 화살표 (장식) */
.bn-prev{--ic:url("../images/board/bd_prev_icon.svg");}
.bn-next{--ic:url("../images/board/bd_next_icon.svg");}
.bv-nav a,.bn-none{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(14.5px, 14.04px + 0.122vw, 16px);}
.bv-nav a{color:var(--gray-700);text-underline-offset:4px;transition:color .2s;}
.bv-nav a:hover{color:var(--primary);text-decoration:underline;}
.bv-nav a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px;}
.bn-none{color:var(--gray-500);}
.bn-date{flex:none;font-size:clamp(13px, 12.69px + 0.082vw, 14px);color:var(--gray-500);}

/* 목록 버튼 : 왼쪽 목록 아이콘 */
.bv-btns{flex-wrap:wrap;gap:10px;}   /* 질문답변 본인 글 [수정]·[삭제]·[목록] 사이 간격(신청 완료 .ap-btns 와 같은 10px) */
.bv-list::before{
  content:'';flex:none;width:17px;height:17px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M5.5 4h8M5.5 8h8M5.5 12h8M2.5 4h.01M2.5 8h.01M2.5 12h.01'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* 댓글 (.cmt, 강의실 일반게시판 보기 등) : 첨부파일 상자(.bv-files)와 같은 모양 — 제목 줄 연파랑 · 목록 · 입력 칸
   <section class="cmt"><h6 class="cmt-title">댓글 <span class="cmt-count">n</span></h6><ul class="cmt-list">…</ul> 또는 <p class="cmt-empty">등록된 댓글이 없습니다.</p><form class="cmt-form">…</form></section> */
.cmt{overflow:hidden;margin-top:clamp(28px, 22.49px + 1.469vw, 46px);border:1px solid #e3ecf7;border-radius:22px;background:#fff;}
.cmt-title{
  display:flex;align-items:center;gap:6px;margin:0;padding:clamp(14px, 12.78px + 0.327vw, 18px) clamp(18px, 13.71px + 1.143vw, 32px);
  border-bottom:1px solid #e3ecf7;background:#f5f9fe;font-size:clamp(15.5px, 15.04px + 0.122vw, 17px);font-weight:800;color:var(--ink);
}
.cmt-title::before{content:'';flex:none;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='%23053ea5' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M3 3.5h12a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H8l-3.5 3v-3H3a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") center/contain no-repeat;}   /* 말풍선 (장식) */
.cmt-count{color:var(--primary);}
.cmt-list{margin:0;padding:0 clamp(18px, 13.71px + 1.143vw, 32px);list-style:none;}
.cmt-item{position:relative;padding:clamp(16px, 14.78px + 0.327vw, 20px) 0;border-bottom:1px solid #eef2f7;}
.cmt-item:last-child{border-bottom:0;}
.cmt-item.is-mine{padding-right:130px;}   /* 오른쪽 [수정 · 삭제] 자리 */
.cmt-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:clamp(13.5px, 13.19px + 0.082vw, 14.5px);}
.cmt-name{color:var(--ink);font-weight:700;}
.cmt-role{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;background:var(--primary);color:#fff;font-size:12px;font-weight:700;line-height:1;}   /* 강사 배지 : 진한 파랑 */
.cmt-role.is-writer{background:var(--primary-light);color:var(--primary);box-shadow:inset 0 0 0 1px #b9cdee;}   /* 글 작성자 배지 : 연한 파랑 바탕 + 파란 글자 (강사와 구분, 사용자 지시 2026-10-30) */
.cmt-date{color:var(--gray-500);font-variant-numeric:tabular-nums;}
.cmt-text{margin:8px 0 0;font-size:clamp(14px, 13.69px + 0.082vw, 15px);line-height:1.7;color:var(--gray-700);word-break:keep-all;overflow-wrap:anywhere;}
.cmt-act{position:absolute;right:0;top:50%;display:flex;gap:6px;transform:translateY(-50%);}   /* 본인 댓글 : [수정 · 삭제] 댓글 줄 세로 가운데 (사용자 지시 2026-10-30 — 수정 파랑 · 삭제 빨강) */
.cmt-edit,.cmt-del{display:inline-flex;align-items:center;height:32px;padding:0 12px;border:0;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;line-height:1;color:#fff;cursor:pointer;transition:background-color .2s;}
.cmt-edit{background:var(--primary);}   /* 흰 글자 대비 9.4:1 */
.cmt-edit:hover{background:var(--primary-dark);}
.cmt-del{background:#b42318;}   /* 흰 글자 대비 6.6:1 */
.cmt-del:hover{background:#912018;color:#fff;}
.cmt-edit:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.cmt-del:focus-visible{outline:2px solid #b42318;outline-offset:2px;}
.cmt-item.is-editing{padding-right:0;}   /* 고치는 중 : 글 · 버튼 숨기고 입력 칸 가득 */
.cmt-item.is-editing .cmt-text,.cmt-item.is-editing .cmt-act{display:none;}
.cmt-edit-form{margin-top:10px;}
.cmt-edit-form .cmt-foot{justify-content:flex-end;gap:8px;}
.cmt-empty{margin:0;padding:clamp(28px, 25.55px + 0.653vw, 36px) 0;text-align:center;font-size:clamp(14px, 13.69px + 0.082vw, 15px);color:var(--gray-500);}
.cmt-form{padding:clamp(16px, 14.78px + 0.327vw, 20px) clamp(18px, 13.71px + 1.143vw, 32px) clamp(18px, 16.16px + 0.49vw, 24px);border-top:1px solid #e3ecf7;background:#fafcff;}
.cmt-input{min-height:100px;}
.cmt-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;}
.cmt-foot .fm-help{margin:0;}
.cmt-submit{flex:none;min-width:120px;}

@media (max-width:1000px){
  .cmt-act{top:clamp(14px, 12.78px + 0.327vw, 18px);transform:none;}   /* 댓글 [수정 · 삭제] : 세로 가운데는 PC 만, 태블릿부터는 댓글 줄 오른쪽 위 (사용자 지시 2026-10-30) */
}

@media (max-width:640px){
  .bv-meta{row-gap:0;line-height:1.85;}   /* 보기 정보 줄 : 줄이 바뀌면 칸 사이든 날짜 글자 안이든 줄 간격이 같게 (row-gap 대신 줄 높이로, 사용자 지시 2026-11-02) */
  .bv-meta dl > div{align-items:flex-start;}   /* 값(날짜)이 두 줄이 되면 항목 이름은 첫 줄에 맞춤 */
  .bv-meta dl > div::before{margin-top:calc(0.925em - 5.5px);}   /* 세로줄도 첫 줄 가운데 (줄 높이 1.85em 의 반 - 선 높이 11px 의 반) */
  /* 첨부파일 (모든 게시판 보기) : [확장자 파일명 (크기)] 글자처럼 이어서 한 줄 — 길면 둘째 줄은 확장자 아래(왼쪽 끝)부터 / [내려받기]는 혼자 아래 줄 가로 100% (사용자 지시) */
  .bf-link{display:block;line-height:1.6;word-break:keep-all;}   /* 크기 ")" 와 "다운로드" 사이에서 줄이 갈려 세로줄이 줄 맨 앞에 붙지 않게 — 띄어쓰기에서만 줄바꿈 (긴 파일명은 .bf-name overflow-wrap 으로 꺾임) */
  .bf-ext{vertical-align:1px;margin-right:8px;}
  .bf-name,.bf-size,.bf-cnt{display:inline;}
  .bf-size,.bf-cnt{margin-left:6px;white-space:nowrap;}
  .bf-down{display:flex;justify-content:center;width:100%;height:40px;margin-top:10px;padding:0 13px;}
  .bv-nav li{flex-wrap:wrap;gap:6px 10px;}
  .bn-label{width:auto;}
  .bn-date{margin-left:auto;}
  .bv-nav a,.bn-none{flex:0 0 100%;order:1;padding-left:34px;}
  .cmt-foot{flex-direction:column;align-items:stretch;}   /* 댓글 : 안내 글 아래 [댓글 등록] 가로 가득 */
  .cmt-item.is-mine{padding-right:0;}   /* 본인 댓글 : [수정 · 삭제]는 글 아래 오른쪽 (좁은 화면에서 글 칸이 좁아지지 않게) */
  .cmt-act{position:static;justify-content:flex-end;margin-top:10px;}
  .cmt-edit-form .cmt-foot{flex-direction:row;}   /* 고칠 때 [취소 · 수정 완료]는 한 줄 오른쪽 */
}
@media (prefers-reduced-motion:reduce){
  .cmt-edit,.cmt-del{transition:none;}
  .bl-item,.bl-date,.bl-title a,.bl-go,.bf-name,.bf-down,.bv-nav a{transition:none;}
  .bl-item:hover .bl-go{transform:none;}
}

/* ===================== 게시판 안 메뉴 · 목록 머리 · 상태 태그 · 내 글 =====================
   - 게시판 안 메뉴 [포트폴리오 | 수강후기] 등 (.bd-tabs, 페이지 이동 링크) / 목록 머리 오른쪽 정렬 · 쓰기 버튼(.bt-right · .bt-write)
   - 태그 : 흰 바탕 테두리(.is-line) · 승인 대기(.is-wait) · 반려(.is-reject) / 내 글 줄(.bl-item.is-mine) */
/* 게시판 안 메뉴 : 페이지 이동 링크(현재 = aria-current="page") - 모양은 다른 페이지의 둥근 탭(.tab-switch)과 같음 */
.bd-tabs{display:flex;justify-content:center;margin:0 0 clamp(28px, 22.49px + 1.469vw, 46px);}
.bd-tabs ul{
  display:flex;flex-wrap:wrap;justify-content:center;gap:4px;max-width:100%;margin:0;padding:8px;list-style:none;
  border:1px solid #e8eef7;border-radius:999px;background:#fff;box-shadow:0 14px 32px -18px rgba(5,40,100,.3);
}
.bd-tabs a{
  display:inline-flex;align-items:center;justify-content:center;min-height:clamp(48px, 44.94px + 0.816vw, 58px);padding:0 clamp(24px, 16.65px + 1.959vw, 48px);
  border-radius:999px;font-size:clamp(16.5px, 16.04px + 0.122vw, 18px);font-weight:600;color:var(--ink);white-space:nowrap;transition:background .25s var(--ease),color .25s var(--ease);
}
.bd-tabs a:hover{background:var(--primary-light);color:var(--primary);}
.bd-tabs a[aria-current="page"]{background:var(--primary);color:#fff;font-weight:700;box-shadow:0 8px 18px -8px rgba(5,62,165,.6);}
.bd-tabs a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
/* 안내 박스 아이콘 (images/board/bd_approve_icon.svg) */
.gb-ic .gb-cm{width:22px;height:22px;margin:0;}
/* 목록 머리 오른쪽 : 정렬 + 쓰기 버튼 */
.bt-right{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;}
.bt-write::before{   /* + (장식) */
  content:'';flex:none;width:14px;height:14px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 2v10M2 7h10'/%3E%3C/svg%3E") center/contain no-repeat;
}
.bd-tag.is-line{background:#fff;color:var(--gray-700);box-shadow:inset 0 0 0 1px #d7dce6;}   /* 연도 · 과정 : 흰 바탕 테두리 */
.bd-tag.is-wait{   /* 승인 대기 (내 글) : 분류 태그(연한 사각형)와 다르게 주황갈색 알약 + 흰 글자 · 흰 시계 아이콘 — 대비 5.0:1 (11/9 시안 · 11/10 사용자 지시 "시안 기준") */
  gap:3px;padding:0 8px 0 7px;border-radius:999px;background:#b45309;color:#fff;font-weight:800;
}
.bd-tag.is-wait::before{
  content:'';flex:none;width:14px;height:14px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='8' r='6.2'/%3E%3Cpath d='M8 4.8V8l2.2 1.6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.bd-tag.is-reject{background:#fff;color:var(--gray-700);box-shadow:inset 0 0 0 1px #d7dce6;}   /* 반려 (내 글) : 시안은 .is-line(흰 바탕 회색 테두리) — 11/10 사용자 지시 "시안 기준" */
/* 내 글(승인 대기) 줄 : 공지 고정 줄과 같은 연파랑 배경 · 흰 날짜 타일 (사용자 지시) */
.bl-item.is-mine{background:#f5f9fe;}
.bl-item.is-mine:hover{background:#edf4fd;}
.bl-item.is-mine .bl-date{border-color:#e3ecf7;background:#fff;}
.bl-item.is-mine .bl-go{border-color:#c9d8ee;background:#fff;}
.bl-item.is-mine:hover .bl-go{border-color:var(--primary);background:var(--primary);}

/* ===================== 목록 · 보기 덧붙임 (수강후기 · 포트폴리오 등) ===================== */
/* 수강후기 목록 : 기술 태그(정보 줄 끝) / ul.bd-list.is-mdate = 768px 이하에서 날짜 타일 대신 정보 줄 안에 날짜(.bl-mdate) */
.bl-meta .bl-hash{color:var(--primary);font-weight:600;}
.bl-mdate{display:none;}
@media (max-width:768px){
  .bd-list.is-mdate .bl-date{display:none;}
  .bd-list.is-mdate .bl-mdate{display:block;}
}

/* 게시글 보기 : 본문 소제목 · 기술 태그 */
.bv-content h5{margin:1.8em 0 .5em;font-size:clamp(17.5px, 17.04px + 0.122vw, 19px);font-weight:800;line-height:1.5;color:var(--ink);}
.bv-content > h5:first-child,.bv-content p:has(> img) + h5{margin-top:0;}
.bv-content .bv-hash{display:flex;flex-wrap:wrap;gap:6px;margin:1.8em 0 0;}
.bv-content .bv-hash li{margin:0;padding:5px 11px;border-radius:7px;background:var(--primary-light);font-size:clamp(13px, 12.69px + 0.082vw, 14px);font-weight:600;line-height:1.5;color:var(--primary);}
.bv-content .bv-hash li::before{display:none;}

/* 게시판 글쓰기 (수강후기 쓰기 등) : 공통 입력 양식 + 내용 칸 높게 + 아래 버튼 [취소 | 등록] */
.bw-form{margin-top:clamp(36px, 29.88px + 1.633vw, 56px);}
.bw-editor{min-height:320px;}
.bw-btns{gap:10px;margin-top:clamp(36px, 29.88px + 1.633vw, 56px);}
.bw-btns .btn{min-width:150px;}
.bw-saved{margin:clamp(28px, 24.33px + 0.98vw, 40px) 0 0;text-align:center;font-size:clamp(14px, 13.69px + 0.082vw, 15px);font-weight:700;color:var(--primary);}   /* 임시 저장 알림 (role="status") */
.bw-saved:empty{margin:0;}
.bw-saved:not(:empty) + .bw-btns{margin-top:16px;}
.bw-form[hidden]{display:none;}   /* 제출 뒤 양식 숨김 (설문 등 form data-done) */
@media (max-width:640px){
  .bw-editor{min-height:240px;}
  .bw-btns{gap:8px;}
  .bw-btns .btn{flex:1 1 0%;min-width:0;padding:0 8px;white-space:nowrap;}   /* 버튼 2~3개 한 줄, 글자 꺾이지 않게 */
  .board-top{align-items:flex-start;}
  .bt-right{width:100%;justify-content:space-between;}
}

/* ===================== 커뮤니티 전용 (옛 community.css) ===================== */

/* ===================== 커뮤니티 하위 메뉴 (PC) : 메뉴가 6개라 칸 폭을 글자 길이에 맞춤 ===================== */
.lnb li{flex:1 1 auto;}
.lnb a{padding:0 14px;}

/* ===================== 자료실 분류 태그 색 : <span class="bd-tag is-edu">교육자료</span> (보라) / is-form 서식 (초록) / is-report 결과보고 (주황) ===================== */
.bd-tag.is-edu{background:#f1ecfd;color:#5b2bc4;}   /* 연한 보라 바탕 + 보라 글자 (대비 7.0:1) */
.bd-tag.is-form{background:#e6f5ee;color:#036b4c;}
.bd-tag.is-report{background:#fdf0e8;color:#a8380a;}

/* ===================== 교육생 게시판 (contents/board/portfolio · review) =====================
   - 분야 색(.fd-*) + 포트폴리오 카드 4열(.pf-list) + 등록 화면 분야 기본 그림(.pw-defaults) / 목록 · 보기 · 쓰기 공통 부품은 board.css */
/* 분야 색 (교육과정 분야 태그와 같은 색) : 목록 · 보기 분류 태그 = 연한 바탕 + 진한 글자 (대비 4.5:1 이상) / 카드 사진 위 배지 = 진한 바탕 */
.fd-ai{--c:#6d28d9;--c-soft:#f3eefd;}
.fd-bc{--c:#047857;--c-soft:#e6f5ee;}
.fd-data{--c:#c2410c;--c-soft:#fdf1ea;}
.fd-iot{--c:#8a6700;--c-soft:#fef6db;}   /* IoT 노랑 #fcd34d 는 글자로 쓰면 대비가 낮아 진한 금색 */
.fd-net{--c:#1d4ed8;--c-soft:#ebf1fd;}
.bd-tag[class*="fd-"]{background:var(--c-soft);color:var(--c);}

/* 포트폴리오 카드 : 사진(없으면 분야 기본 그림) + 분야 배지 / 제목(2줄) · 작성자 · 과정 / 기술 태그 / 연도 · 조회 - 카드 전체 클릭 */
.pf-list{--cols:4;--g:clamp(16px, 12.33px + 0.98vw, 28px);display:flex;flex-wrap:wrap;gap:clamp(24px, 20.33px + 0.98vw, 36px) var(--g);margin:0;padding:0;list-style:none;}
.pf-card{
  position:relative;display:flex;flex-direction:column;width:calc((100% - var(--g) * (var(--cols) - 1)) / var(--cols));overflow:hidden;
  border:1px solid #e6ecf4;border-radius:22px;background:#fff;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s;
}
.pf-card:hover{transform:translateY(-8px);border-color:#d5e1f1;box-shadow:0 26px 40px -24px rgba(5,62,165,.35);}
.pf-card:has(.pf-title a:focus-visible){outline:2px solid var(--primary);outline-offset:3px;}
.pf-thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:#f2f5f9;}
.pf-thumb > img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.pf-card:hover .pf-thumb > img{transform:scale(1.05);}
.pf-cat{position:absolute;top:12px;left:12px;min-width:6.4em;padding:6px 13px;border-radius:999px;text-align:center;background:var(--c);color:#fff;font-size:clamp(12px, 11.85px + 0.041vw, 12.5px);font-weight:800;}   /* 흰 글자 대비 4.5:1 이상 */
.pf-cat.fd-iot{background:#fcd34d;color:#1f2937;}
.pf-noimg{   /* 대표 사진이 없을 때 : 분야 기본 그림 (role="img" + aria-label) */
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;height:100%;
  background:radial-gradient(circle at 1.5px 1.5px, rgba(255,255,255,.75) 1.5px, transparent 0) 0 0/16px 16px, var(--c-soft);
}
.bv-noimg{max-width:640px;margin:0 0 1.6em;border-radius:16px;}   /* 상세 대표 이미지가 없을 때 분야 기본 그림(정의서 9장 4번) — 본문 그림과 같은 둥글기·간격 */
.pf-noimg b{font-family:var(--font-title);font-size:clamp(33px, 29.63px + 0.898vw, 44px);font-weight:400;line-height:1;color:var(--c);}
.pf-noimg em{font-style:normal;font-size:clamp(13px, 12.69px + 0.082vw, 14px);font-weight:700;color:var(--c);}
/* 분야 기본 이미지 (2026-11-09 사용자 지시) : 대표 사진을 안 올리면 분야 사진 images/contents/분야_Default.jpg — 네트워크 = network_Default.jpg (2026-11-09 추가) */
.pf-noimg.fd-ai{background:url("../images/contents/ai_Default.jpg?v=26110903") center/cover no-repeat;}
.pf-noimg.fd-bc{background:url("../images/contents/blockchain_Default.jpg?v=26110901") center/cover no-repeat;}
.pf-noimg.fd-data{background:url("../images/contents/Data_Default.jpg?v=26110901") center/cover no-repeat;}
.pf-noimg.fd-iot{background:url("../images/contents/iot_Default.jpg?v=26110901") center/cover no-repeat;}
.pf-noimg.fd-net{background:url("../images/contents/network_Default.jpg?v=26110901") center/cover no-repeat;}
.pf-noimg:is(.fd-ai,.fd-bc,.fd-data,.fd-iot,.fd-net) > *{display:none;}   /* 사진에 분야 글자가 있어 글자 그림은 숨김 (이름은 role="img" aria-label 로 읽음) */
.pf-body{flex:1 1 auto;display:flex;flex-direction:column;padding:18px 20px 20px;}
.pf-title{margin:0 0 8px;font-size:clamp(16.5px, 16.04px + 0.122vw, 18px);font-weight:700;line-height:1.45;word-break:keep-all;}
.pf-title a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:var(--ink);transition:color .2s;}
.pf-title a::after{content:'';position:absolute;inset:0;z-index:2;}   /* 카드 전체 클릭 */
.pf-title a:focus-visible{outline:none;}
@supports not selector(:has(*)){ .pf-title a:focus-visible{outline:2px solid var(--primary);outline-offset:3px;} }   /* :has 못 쓰는 옛 브라우저 : 링크에 초점 표시 */
.pf-card:hover .pf-title a{color:var(--primary);}
.pf-writer{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(13px, 12.69px + 0.082vw, 14px);color:var(--gray-700);}
.pf-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 16px;padding:0;list-style:none;}
.pf-tags li{padding:4px 9px;border-radius:6px;background:var(--primary-light);font-size:clamp(12px, 11.85px + 0.041vw, 12.5px);font-weight:600;color:var(--primary);}
.pf-foot{display:flex;justify-content:space-between;gap:10px;margin:auto 0 0;padding-top:14px;border-top:1px solid #eef0f4;font-size:clamp(12.5px, 12.19px + 0.082vw, 13.5px);color:var(--gray-700);}
.pf-list:not(.pr-list) .pf-foot > span:first-child{font-weight:700;color:var(--ink);}   /* 포트폴리오 카드 : 연도 굵게 (사용자 지시) — 홍보·언론 카드(.pr-list)의 날짜는 그대로 */

/* 분야 기본 그림 (포트폴리오 등록) : 고른 분야 = .is-on 파란 테두리 */
.pw-defaults{display:flex;flex-wrap:wrap;gap:10px 12px;margin:14px 0 0;padding:0;list-style:none;}
.pw-defaults li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:clamp(12px, 11.85px + 0.041vw, 12.5px);font-weight:600;color:var(--gray-700);}
.pw-defaults .pf-noimg{width:72px;height:54px;border:2px solid transparent;border-radius:10px;transition:border-color .2s;}
.pw-defaults .pf-noimg b{font-size:clamp(15.5px, 15.04px + 0.122vw, 17px);}
.pw-defaults li.is-on{font-weight:800;color:var(--primary);}
.pw-defaults li.is-on .pf-noimg{border-color:var(--primary);}

@media (max-width:1150px){ .pf-list{--cols:3;} }
@media (max-width:768px){ .pf-list{--cols:2;} }
@media (max-width:480px){ .pf-list{--cols:1;} }
@media (max-width:640px){
  .pw-defaults{flex-wrap:nowrap;gap:6px;}   /* 모바일 : 기본 그림 5개 한 줄 (칸 폭에 맞춰 줄어듦) */
  .pw-defaults li{flex:1 1 0%;min-width:0;gap:4px;font-size:12px;}
  .pw-defaults .pf-noimg{width:100%;height:auto;aspect-ratio:4/3;border-radius:8px;}
  .pw-defaults .pf-noimg b{font-size:clamp(13px, 12.69px + 0.082vw, 14px);}
}
@media (prefers-reduced-motion:reduce){
  .pf-card,.pf-thumb > img{transition:none;}
  .pf-card:hover{transform:none;}
  .pf-card:hover .pf-thumb > img{transform:none;}
}

/* ===================== 홍보 · 언론 (contents/board/press · press_view · press_write) =====================
   - 목록 = [홍보] [언론보도] 탭(.bd-tabs) : 홍보 = 포트폴리오 카드(.pf-card) 3열 / 언론보도 = 공통 줄 목록(.bd-list, 썸네일 없음 - 진도회의 10/29)
   - 구분 배지 언론보도(.pr-press 남색) · 홍보(.pr-promo 파랑) - 흰 글자 대비 4.5:1 이상
   - 보기 = 공통 게시글 보기 + 기사 원문 보기(새 창) 버튼 */
.pr-list{--cols:3;}
.pf-cat.pr-press,.bd-tag.pr-press{background:#0a1a3f;color:#fff;}
.pf-cat.pr-promo,.bd-tag.pr-promo{background:var(--primary);color:#fff;}
.pf-thumb > img.is-poster{object-position:center top;}   /* 세로로 긴 포스터 : 위쪽 기준으로 잘림 */
.pr-card .pf-title{margin-bottom:16px;}
.pr-origin{margin:calc(clamp(8px, 4.33px + 0.98vw, 20px) * -1) 0 0;padding:0 clamp(16px, 12.33px + 0.98vw, 28px) clamp(36px, 29.88px + 1.633vw, 56px);}   /* 본문과 같은 왼쪽 여백 */
.pr-origin .btn img{flex:none;width:14px;height:14px;}
.bl-title .pr-win{flex:none;width:14px;height:14px;}   /* 언론보도 줄 목록 : 원문 새 창 표시 (장식, 링크 글자에 '새 창 열림' 있음) */
@media (max-width:1000px){ .bl-title .pr-win{margin-top:6px;} }   /* 제목 2줄일 때 첫 줄에 맞춤 (첨부 아이콘 .bs-file 과 같은 방식) */
@media (max-width:768px){ .pr-list{--cols:2;} }
@media (max-width:480px){ .pr-list{--cols:1;} }

/* ===================== 행사 · 프로그램 소개 · 신청 (contents/board/event …) =====================
   - 목록 = 가로 카드 [포스터 | 상태 · 구분 · D-day · 행사명 · 일시/장소/신청 기간/모집 | 상세보기 · 신청하기] / 보기 = 포스터 + 요약 표 + 버튼, 행사 소개 · 프로그램 · 설문 안내
   - 참가 신청 · 신청 완료 = 공통 신청 흐름(.ap-steps · .ap-target · .ap-done) + 입력 양식 / 설문 = 문항 묶음(.sv-q) */
/* 상태 · 구분 태그 (흰 · 진한 글자 대비 4.5:1 이상) */
.bd-tag.is-open{gap:6px;background:var(--primary);color:#fff;}
.bd-tag.is-open::before{content:'';flex:none;width:6px;height:6px;border-radius:50%;background:#fff;}   /* 모집중 : 흰 점 (색 외 구분) */
.bd-tag.is-soon{background:#e3f5f2;color:#0d6e66;}
.bd-tag.is-closed{background:#eef1f5;color:var(--gray-700);}
/* 행사 구분 : 흰 바탕 + 구분마다 다른 테두리 · 글자 색 (테두리 = 글자 색, 흰 바탕 대비 5:1 이상 / 색 외에 글자로도 구분) */
.ev-tags .bd-tag.is-line{box-shadow:inset 0 0 0 1px currentColor;}
.bd-tag.is-line.ek-seminar{color:#1f5fcf;}   /* 세미나 : 파랑 5.8:1 */
.bd-tag.is-line.ek-conf{color:#6b3fd4;}      /* 컨퍼런스 : 보라 6.4:1 */
.bd-tag.is-line.ek-contest{color:#4d7c0f;}   /* 경진대회 : 올리브 5.0:1 (D-day 빨강과 겹치지 않게) */
.bd-tag.is-line.ek-tour{color:#15803d;}      /* 견학 : 초록 5.0:1 */
.bd-tag.is-line.ek-job{color:#0e7490;}       /* 채용설명회 : 청록 5.4:1 */
.bd-tag.is-line.ek-talk{color:#4a5f86;}      /* 토크콘서트 : 회청색 6.4:1 (D-day 빨강과 겹치지 않게) */
.bd-tag.is-line.ek-edu{color:#9a5b00;}       /* 교육 : 갈색 5.4:1 */
.ev-dday{font-size:clamp(13px, 12.69px + 0.082vw, 14px);font-weight:800;color:var(--red);}
.btn-off{background:#eef1f5;color:var(--gray-700);cursor:default;}   /* 누를 수 없는 상태 글자 (접수 예정 · 마감) : 버튼 아님 */

/* 행사 목록 */
.ev-list{margin:0;padding:0;list-style:none;border-top:2px solid var(--ink);}
.ev-item{display:flex;align-items:stretch;gap:clamp(18px, 13.1px + 1.306vw, 34px);padding:clamp(28px, 23.1px + 1.306vw, 44px) clamp(4px, -1.51px + 1.469vw, 22px);border-bottom:1px solid #e3ecf7;}
.ev-thumb{position:relative;flex:none;width:clamp(220px, 195.51px + 6.531vw, 300px);min-height:clamp(203px, 197.49px + 0.86vw, 214px);overflow:hidden;border-radius:16px;background:#f2f5f9 url("../images/contents/event_Default.jpg?v=26110901") center/cover no-repeat;}   /* 바탕 = 기본 이미지 : 사진을 안 올리거나 못 불러오면 보임 (사용자 지시 2026-11-09, facilty_03 복사본) */   /* 사진 높이 = 오른쪽 내용 높이 (위 끝 = 태그 줄, 아래 끝 = 모집 줄 — 사용자 지시), 포스터는 위쪽 기준으로 잘림 */
.ev-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;}
.ev-item.is-closed .ev-thumb img,.ev-item.is-closed .ev-thumb:empty{filter:grayscale(1);opacity:.8;}   /* 마감 : 사진 · 기본 이미지 모두 흑백 */
.ev-thumb:has(> img:not(.is-broken)){background-image:none;}
/* 썸네일 최소 높이 (2026-11-10 사용자 지시) : 높이 = 오른쪽 내용 높이라 장소 · 상태 태그가 없는 행사는 썸네일이 낮아졌음 → 상태 태그 + 일시 · 장소 · 신청 기간 · 모집 4줄 + 제목 한 줄일 때 높이(641px 203 ~ 1920px 214, 실측)를 최소로 고정, 제목이 두 줄이면 그만큼 늘어남 / 640px 이하는 16:10 그대로(min-height 0) */   /* 사진이 있으면 바탕 기본 이미지를 뺌 (2026-11-10 개발 화면 확인 : 마감 사진은 흐리게(opacity .8) 처리라 뒤의 기본 이미지가 비쳐 두 그림이 겹쳐 보였음) — 못 불러온 사진(.is-broken)은 그대로 기본 이미지 */
.ev-thumb img.is-noimg,.ev-poster img.is-noimg{object-position:center;}   /* 노 이미지 그림은 가운데 기준으로 잘림(메인 팝업 .popup-slide img.is-noimg 와 같음) */
.ev-body{flex:1 1 0%;min-width:0;}   /* 좁아져도 포스터 옆에 */
.ev-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 14px;}
.ev-title{margin:0 0 clamp(16px, 14.78px + 0.327vw, 20px);font-size:clamp(17.85px, 16.89px + 0.257vw, 21px);font-weight:800;line-height:1.4;word-break:keep-all;}
.ev-title a{display:inline-block;max-width:100%;vertical-align:top;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ink);text-underline-offset:4px;transition:color .2s;}   /* 길면 한 줄 + … (전체 제목은 보기에서) */
.ev-title a:hover{color:var(--primary);text-decoration:underline;}
.ev-title a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px;}
.ev-meta{display:flex;flex-direction:column;gap:9px;line-height:1.6;margin:0;font-size:clamp(14px, 13.69px + 0.082vw, 15px);}   /* 일시 · 장소 · 신청 기간 · 모집 세로로 한 줄씩 */
.ev-meta > div{display:flex;gap:12px;min-width:0;}
.ev-meta dt{flex:none;width:4.8em;font-weight:700;color:#363636;}
.ev-meta dd{min-width:0;margin:0;color:var(--gray-700);word-break:keep-all;}
.ev-side{flex:none;align-self:center;display:flex;flex-direction:column;gap:8px;width:150px;}
.ev-side .btn{width:100%;}

/* 행사 보기 : 포스터 + 요약 */
.ev-top{display:flex;align-items:stretch;gap:clamp(24px, 11.76px + 3.265vw, 64px);}   /* 간격 · 왼쪽 사진 = 시설 상세(.cv-top · .cv-poster)와 같게 (사용자 지시) */
.ev-poster{position:relative;flex:0 0 40%;min-width:0;overflow:hidden;border-radius:24px;background:#f2f5f9;box-shadow:0 30px 60px -38px rgba(5,40,100,.4);}
.ev-poster img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:top center;}   /* PC : 포스터 높이 = 오른쪽 내용 높이 (위 끝 = 태그, 아래 끝 = 안내 문구) — 교육신청 · 시설 상세와 같음 */
.ev-sum{flex:1 1 auto;min-width:0;}
.ev-sum .ev-tags{margin-bottom:clamp(18px, 15.55px + 0.653vw, 26px);}   /* 행사명 위 · 아래 여백 같게 (아래 = .evv-title margin-bottom, 사용자 지시) */
.evv-title{margin:0 0 clamp(18px, 15.55px + 0.653vw, 26px);font-family:var(--font-title);font-weight:400;font-size:clamp(25.5px, 22.90px + 0.694vw, 34px);line-height:1.3;color:var(--ink);word-break:keep-all;}
.ev-info{margin:0;border-top:2px solid var(--ink);}   /* 요약 표 : 왼쪽 항목 이름 연한 회색 칸 */
.ev-info > div{display:flex;border-bottom:1px solid #e9eef5;}
.ev-info dt{flex:none;display:flex;align-items:center;width:calc(4.8em + 44px);padding:13px 22px;background:#f5f7fa;font-size:clamp(14px, 13.69px + 0.082vw, 15px);font-weight:700;color:var(--ink);}
.ev-info dd{flex:1 1 auto;min-width:0;margin:0;padding:13px 20px;font-size:clamp(14px, 13.69px + 0.082vw, 15px);color:var(--gray-700);word-break:keep-all;}
.ev-info .ei-strong dd{font-weight:800;color:var(--primary);}
.ev-btns{justify-content:flex-start;gap:10px;margin-top:clamp(22px, 18.33px + 0.98vw, 34px);}
.ev-btns .btn{min-width:150px;}
.ev-note{margin-top:14px;}
.ev-sec{margin-top:clamp(56px, 43.76px + 3.265vw, 96px);}
.ev-sec .cont-head{margin-bottom:clamp(18px, 15.55px + 0.653vw, 26px);}
.ev-intro{margin:0;font-size:clamp(15.5px, 15.04px + 0.122vw, 17px);line-height:1.85;color:#2b3346;word-break:keep-all;}
.ev-prog .left{text-align:left;}

/* 설문 : 문항 묶음 (fieldset + legend) */
.sv-form{border-top:2px solid var(--ink);}
.sv-q{min-width:0;margin:0;padding:clamp(20px, 17.55px + 0.653vw, 28px) clamp(4px, -1.51px + 1.469vw, 22px);border:0;border-bottom:1px solid #e9eef5;}
.sv-q legend{float:left;width:100%;margin:0 0 14px;padding:0;font-size:clamp(15.5px, 15.04px + 0.122vw, 17px);font-weight:800;line-height:1.5;color:var(--ink);word-break:keep-all;}
.sv-q legend + *{clear:both;}
.sv-q legend .req{margin-left:4px;}
.sv-chks{display:flex;flex-wrap:wrap;gap:12px 24px;}
.sv-label{display:block;margin:0 0 14px;font-size:clamp(15.5px, 15.04px + 0.122vw, 17px);line-height:1.5;color:var(--ink);}
.sv-label b{font-weight:800;}
.sv-q .fm-err{margin-top:10px;}
.sv-done{outline:none;}
.sv-done[hidden]{display:none;}   /* 제출 전 완료 상자 (.ap-done 의 display 보다 우선) */

@media (max-width:1000px){
  .ev-item{flex-wrap:wrap;}
  .ev-side{flex-direction:row;width:100%;justify-content:flex-start;}   /* 반응형 : 버튼 왼쪽부터 (사용자 지시, 마이페이지 목록과 같게) */
  .ev-side .btn{width:auto;min-width:130px;}
  .ev-top{flex-direction:column;}
  .ev-poster{flex:none;width:100%;max-width:480px;margin:0 auto;aspect-ratio:4/3;}   /* 세로 배치 : 칸 비율 4:3 고정 (시설 상세 사진과 같음) — 어떤 크기 이미지를 올려도 비율이 깨지지 않고(object-fit:cover, 위 기준) 칸 크기도 일정 (사용자 지시) */
  .ev-title a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;}   /* 반응형 : 두 줄 + … */
  .sv-chks .chk{width:calc((100% - 24px) / 2);}   /* 행사 설문 관심 주제 체크 : 반응형은 한 줄에 2개 반반 (사이 24px = .sv-chks 가로 간격, 사용자 지시) */
}
@media (max-width:640px){
  .ev-item{gap:16px;padding-left:4px;padding-right:4px;}
  .ev-thumb{width:100%;min-height:0;aspect-ratio:16/10;border-radius:14px;}   /* 모바일 : 사진 위 칸 가득 (16:10) */
  .ev-body{flex-basis:100%;}
  .ev-title{margin-bottom:12px;font-size:clamp(17px, 16.54px + 0.122vw, 18.5px);}
  .ev-meta{gap:0;line-height:1.85;font-size:clamp(13.5px, 13.19px + 0.082vw, 14.5px);}   /* 칸 사이 간격을 줄 높이로 → 값이 두 줄로 꺾여도 줄 간격이 같음 (2026-11-02, 강의실 정보 줄과 같은 방식) */
  .ev-meta > div{gap:8px;}
  .ev-meta dt{width:4.6em;}
  .ev-side .btn{flex:1 1 0%;min-width:0;padding:0 8px;}
  .ev-info dt{width:calc(4.6em + 28px);padding:12px 14px;}
  .ev-info dd{padding:12px 14px;}
  .ev-btns .btn{flex:1 1 0%;min-width:0;}
  /* 행사 설문 만족도 5단계 : 한 줄에 5칸, 글자는 늘 한 줄 (사용자 지시 — 두 줄 X) → 칸 폭 = 글자 폭 + 남는 폭을 나눠 가짐 */
  .sv-q .fm-rdo{flex-wrap:nowrap;gap:6px;}
  .sv-q .rdo{flex:1 1 auto;min-width:0;}
  .sv-q .rdo span{width:100%;height:42px;justify-content:center;padding:0 2px;border-radius:12px;font-size:clamp(12px, 11.69px + 0.082vw, 13px);white-space:nowrap;}   /* 글자 · 여백 조금 작게 (사용자 지시) */
}
@media (prefers-reduced-motion:reduce){ .ev-title a{transition:none;} }

/* ===================== FAQ · 1:1 문의 (contents/board/faq · qna · qna_view · qna_write) =====================
   - FAQ = 질문 줄(h4 안 버튼 : Q · 분류 태그 · 질문 · 열림 화살표) 누르면 아래 답변(A · 연파랑 상자)이 열림 (js/board.js) + 아래 1:1 문의 안내(.faq-cta)
   - 1:1 문의 = 공통 게시판 목록 · 보기 · 쓰기 + 답변 상태 태그 + 보기 아래 답변 상자(.qa-answer) */
/* 답변 상태 (연한 바탕 + 진한 글자, 대비 4.5:1 이상) */
.bd-tag.is-answered{background:#e6f5ee;color:#036b4c;}   /* 답변완료 : 5.8:1 */
.bd-tag.is-pending{background:#fff4e0;color:#8a4b00;}    /* 답변대기 : 6.2:1 */

/* 분류 (FAQ · 1:1 문의 공통) : 흰 바탕 + 분류마다 다른 테두리 · 글자 색 (테두리 = 글자 색, 흰 바탕 대비 4.5:1 이상 / 빨강 · 초록 · 주황 계열은 피함 - 답변 상태 태그와 헷갈리지 않게) */
.bd-tag.is-line.fq-member{color:#1f5fcf;box-shadow:inset 0 0 0 1px currentColor;}    /* 회원 : 파랑 5.8:1 */
.bd-tag.is-line.fq-edu{color:#6b3fd4;box-shadow:inset 0 0 0 1px currentColor;}       /* 교육 : 보라 6.4:1 */
.bd-tag.is-line.fq-reserve{color:#0e7490;box-shadow:inset 0 0 0 1px currentColor;}   /* 시설·장비 : 청록 5.4:1 */
.bd-tag.is-line.fq-event{color:#4d7c0f;box-shadow:inset 0 0 0 1px currentColor;}     /* 행사 : 올리브 5.0:1 */
.bd-tag.is-line.fq-etc{color:#4a5f86;box-shadow:inset 0 0 0 1px currentColor;}       /* 기타 : 회청색 6.4:1 */

/* Q · A 원 (장식, 글자는 스크린리더에서 숨김) */
.qa-mark{flex:none;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font-size:clamp(15.5px, 15.04px + 0.122vw, 17px);font-weight:800;line-height:1;}
.qa-mark.is-q{background:var(--primary);color:#fff;}
.qa-mark.is-a{background:#fff;color:var(--primary);box-shadow:inset 0 0 0 2px var(--primary);}

/* FAQ 목록 */
.faq-list{margin:0;padding:0;list-style:none;border-top:2px solid var(--ink);}
.faq-item{border-bottom:1px solid #e3ecf7;}
.faq-h{margin:0;font-size:inherit;font-weight:inherit;}
.faq-q{
  display:flex;align-items:center;gap:clamp(16px, 11.71px + 1.143vw, 30px);width:100%;padding:clamp(16px, 14.16px + 0.49vw, 22px) clamp(4px, -1.51px + 1.469vw, 22px);   /* 간격 · 여백 = 공지 목록 줄(.bl-item) */
  border:0;background:none;text-align:left;font:inherit;font-size:clamp(16.5px, 16.04px + 0.122vw, 18px);font-weight:700;line-height:1.5;color:var(--ink);cursor:pointer;
}
.faq-q::after{   /* 열림 화살표 (장식) : 닫힘 ▽ / 열림 △ */
  content:'';flex:none;width:9px;height:9px;margin:0 6px 4px 8px;border-right:2px solid var(--gray-700);border-bottom:2px solid var(--gray-700);transform:rotate(45deg);transition:transform .25s var(--ease);
}
.faq-q[aria-expanded="true"]::after{margin-bottom:-4px;border-color:var(--primary);transform:rotate(-135deg);}
.faq-txt{flex:1 1 0%;min-width:0;word-break:keep-all;transition:color .2s;}
.faq-txt .bd-tag{display:flex;width:fit-content;margin:0 0 8px;}   /* Q 타일 오른쪽 2줄 : 첫 줄 = 분류 태그, 둘째 줄 = 질문 (사용자 지시) */
.faq-q:hover .faq-txt,.faq-q[aria-expanded="true"] .faq-txt{color:var(--primary);}
.faq-q:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:10px;}
.faq-q .qa-mark.is-q{   /* 질문 Q : 공지사항 목록 날짜 타일(.bl-date)과 같은 크기 · 하늘색 타일 + 제목 글꼴 큰 Q (사용자 지시) / 열리면 파랑 */
  width:80px;height:80px;border-radius:22px;background:var(--sky);color:var(--primary);font-family:var(--font-title);font-size:clamp(22.5px, 20.20px + 0.612vw, 30px);font-weight:400;transition:background-color .25s,color .25s;
}
.faq-q[aria-expanded="true"] .qa-mark.is-q{background:var(--primary);color:#fff;}
.faq-a{display:flex;align-items:flex-start;gap:clamp(16px, 11.71px + 1.143vw, 30px);margin:0 0 clamp(18px, 16.16px + 0.49vw, 24px);padding:clamp(16px, 14.16px + 0.49vw, 22px) clamp(12px, 8.94px + 0.816vw, 22px);border-radius:18px;background:#f5f9fe;}   /* 간격 = 질문 줄 (답변 글자가 질문 글자와 같은 세로줄) */
.faq-a .qa-mark.is-a{   /* 답변 A : 질문 Q 타일과 같은 크기 · 흰 바탕만 (테두리 없음, 사용자 지시) / 답변이 A 보다 길면 A 는 위, 2줄 이하로 짧으면 답변이 A 세로 가운데 (사용자 지시 — .faq-body align-self:center) */
  width:80px;height:80px;border-radius:22px;background:#fff;box-shadow:none;color:var(--primary);font-family:var(--font-title);font-size:clamp(22.5px, 20.20px + 0.612vw, 30px);font-weight:400;
}
.faq-a[hidden]{display:none;}
.faq-body{flex:1 1 0%;align-self:center;min-width:0;font-size:clamp(14.5px, 14.04px + 0.122vw, 16px);line-height:1.8;color:#2b3346;word-break:keep-all;}
.faq-body p{margin:0;}
.faq-body p + p{margin-top:6px;}

/* 찾는 답이 없을 때 : 1:1 문의 안내 */
.faq-cta{
  display:flex;flex-wrap:wrap;align-items:center;gap:16px clamp(16px, 11.1px + 1.306vw, 32px);margin-top:clamp(40px, 32.65px + 1.959vw, 64px);
  padding:clamp(24px, 20.33px + 0.98vw, 36px) clamp(22px, 13.43px + 2.286vw, 50px);border-radius:28px;background:var(--sky);
}
.fc-ic{flex:none;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 7px #d6e6fa;}
.fc-ic img{width:26px;height:26px;}
.fc-txt{flex:1 1 0%;min-width:0;}
.fc-txt p{margin:0;font-size:clamp(14.5px, 14.19px + 0.082vw, 15.5px);line-height:1.6;color:var(--gray-700);word-break:keep-all;}
.fc-txt .fc-tit{margin-bottom:4px;font-size:clamp(17px, 16.08px + 0.245vw, 20px);font-weight:800;color:var(--ink);}
.faq-cta .btn{flex:none;min-width:170px;}

/* 1:1 문의 보기 : 답변 상자 */
.bf-ext.is-img{background:#6b3fd4;}   /* 이미지(PNG · JPG) : 보라 6.4:1 */
.qa-answer{margin-top:clamp(28px, 23.1px + 1.306vw, 44px);padding:clamp(22px, 18.33px + 0.98vw, 34px) clamp(18px, 12.49px + 1.469vw, 36px);border:1px solid #d9e6f6;border-radius:24px;background:#f5f9fe;}
.qa-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-bottom:clamp(14px, 12.78px + 0.327vw, 18px);padding-bottom:clamp(14px, 12.78px + 0.327vw, 18px);border-bottom:1px dashed #c3d3e8;}
.qa-title{display:flex;align-items:center;gap:12px;margin:0;font-size:clamp(17px, 16.08px + 0.245vw, 20px);font-weight:800;color:var(--ink);}
.qa-meta{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0 0 0 auto;font-size:clamp(14px, 13.69px + 0.082vw, 15px);color:var(--gray-700);}
.qa-meta > div{display:flex;gap:8px;}
.qa-meta dt{font-weight:700;color:#363636;}
.qa-meta dd{margin:0;}
.qa-body{padding-left:46px;font-size:clamp(15px, 14.54px + 0.122vw, 16.5px);line-height:1.85;color:#2b3346;word-break:keep-all;overflow-wrap:anywhere;}   /* 왼쪽 = 답변 글자 줄 */
.qa-body p{margin:0;}
.qa-body p + p{margin-top:8px;}
.qa-btns{gap:10px;}
.qa-btns .btn{min-width:150px;}

@media (max-width:768px){
  .faq-q .qa-mark.is-q,.faq-a .qa-mark.is-a{width:64px;height:64px;border-radius:18px;font-size:clamp(23px, 21.94px + 0.282vw, 26.45px);}   /* 공지 날짜 타일 768 이하 크기와 같음 */
}
@media (max-width:640px){
  .faq-q{align-items:flex-start;font-size:clamp(15.5px, 15.19px + 0.082vw, 16.5px);}
  .faq-q::after{margin-top:8px;}
  .faq-txt .bd-tag{height:24px;margin:2px 0 6px;padding:0 9px;}
  .qa-mark{width:28px;height:28px;font-size:clamp(14px, 13.69px + 0.082vw, 15px);}
  .faq-body{font-size:clamp(14.5px, 14.19px + 0.082vw, 15.5px);}
  .faq-cta{flex-direction:column;align-items:flex-start;}
  .faq-cta .btn{width:100%;}
  .qa-meta{margin-left:0;flex-basis:100%;font-size:clamp(13.5px, 13.19px + 0.082vw, 14.5px);}
  .qa-body{padding-left:0;font-size:clamp(15px, 14.69px + 0.082vw, 16px);}
  .qa-btns .btn{flex:1 1 0%;min-width:0;}
}
@media (prefers-reduced-motion:reduce){ .faq-q::after,.faq-txt,.faq-q .qa-mark.is-q{transition:none;} }
