body{ margin:0; }
a:focus-visible,button:focus-visible{ outline:3px solid #a8cf38;outline-offset:3px; }
.skip-link{ position:fixed;top:-100px;left:12px;z-index:200;background:#fff;padding:12px; }
.skip-link:focus{ top:8px; }
.rich-content{ overflow-wrap:anywhere; }
.rich-content img{ max-width:100%;height:auto; }
.rich-content table{ max-width:100%; }
.page-header h1{ font-size:inherit;margin:0; }
.map-info{ padding-top:30px; }
.map-link{ display:inline-block;padding:12px 20px;margin:20px 0;background:#a8cf38; }
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.board-page{padding:24px 15px 48px}
.post-pinned{font-size:12px;background:#446c43;color:white;padding:3px 6px;margin-right:8px}
.board-count{color:#666;font-size:13px;margin-bottom:12px}
.board-pagination{display:flex;justify-content:center;gap:24px;margin:28px 0}
.post-attachments{padding:20px;background:#f6f6f6;margin-top:24px}
.post-attachments h3{margin-bottom:12px}
.post-attachments li{line-height:1.8;overflow-wrap:anywhere}
.post-back{margin-top:24px}
.auth-request-limit{color:#a52b22;line-height:1.7;margin-bottom:16px;}
.auth-request-limit:empty{display:none;}
.post-form{margin:24px 0}
.post-field{margin:20px 0}
.post-field>label{display:block;font-weight:bold;margin-bottom:10px}
.post-field input:not([type=checkbox]):not([type=file]),.post-field textarea,.post-field select{box-sizing:border-box;max-width:100%;width:100%;padding:10px;border:1px solid #bbb;font:inherit}
.post-field input[type=file]{max-width:100%}
.checkbox-field{display:flex;align-items:center;gap:10px}
.checkbox-field>label{margin:0}
.post-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:24px 0}
.post-actions form{margin:0}
.primary-button,.danger-button{display:inline-block;border:0;padding:10px 18px;font:inherit;cursor:pointer;color:white;background:#446c43}
.danger-button{background:#963d34}
.form-note{line-height:1.8;margin:18px 0;color:#666}
.errorlist{color:#a52b22;line-height:1.7}
.post-comments,.post-replies{margin-top:32px;padding-top:24px;border-top:1px solid #ddd}
.post-comments h3,.post-replies h3{margin-bottom:20px;font-size:20px}
.comment{padding:20px 0;border-bottom:1px solid #ddd}
.comment-body{line-height:1.8;overflow-wrap:anywhere}
.secret-label{font-size:12px;color:#8a5222}
.file-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.file-grid li{border:1px solid #ddd;padding:18px;overflow-wrap:anywhere}
.file-grid img{max-width:100%;height:160px;object-fit:contain}
.file-grid h2{font-size:17px;margin:14px 0}
.file-grid p{font-size:13px;color:#666;line-height:1.8;margin:12px 0}
.file-grid form{margin-top:14px}
.file-upload{margin:24px 0;padding:20px;background:#f6f6f6}
.file-upload summary{cursor:pointer}
.missing-image{display:block;padding:20px;background:#f6f6f6;color:#777}
.post-form .jodit-container{max-width:100%;box-sizing:border-box}
.post-field .jodit-workplace textarea{width:100%}
@media (max-width:768px){.file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:500px){.file-grid{grid-template-columns:1fr}
.post-actions{gap:14px}
.post-form .jodit-toolbar__box{overflow-x:auto}}
.board-page>h1{font-size:26px;line-height:1.5}
@media (max-width:600px){.board-page>h1{font-size:23px}}
.course-page{padding:24px 15px 48px}
.course-active-filter{display:flex;align-items:center;gap:8px;line-height:1.6}
.course-active-filter input{min-width:0;width:auto}
.course-no-image{display:flex;align-items:center;justify-content:center;min-height:160px;background:#f3f5ef;color:#666}
.course-empty{padding:50px 20px;text-align:center;color:#666;line-height:1.8}
.course-page>h1{font-size:26px;line-height:1.5;margin:24px 0}
.enrollment-form{max-width:650px}
.enrollment-title{font-size:21px;line-height:1.6;margin:20px 0;overflow-wrap:anywhere}
.enrollment-form .checkbox-field{flex-wrap:wrap}
.enrollment-list{margin-top:24px}

/* 서비스 연결·추가 기능·접근성 규칙. 공통 외형은 components/와 pages/에서 정의합니다. */
html{font-language-override:"ENG"}
.top-nav-links{display:flex;align-items:stretch}
.top-nav-logout{margin:0}
.top-nav-logout button.top-nav-link{border:0;border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0;background:transparent;color:inherit;font-family:inherit;line-height:20px}
.top-nav-logout button.top-nav-link:hover{background:#535051;color:#fff}
.community-menu:focus-within>.top-menu-sub-menu,.community-menu.submenu-open>.top-menu-sub-menu{display:block}
.community-menu.submenu-dismissed>.top-menu-sub-menu{display:none}
/* POST 삭제 폼은 댓글 항목의 아이콘 배치 기준을 바꾸지 않습니다. */
.bbs-comment-delete-form{margin:0!important;position:static}
.banner-slide[hidden]{display:none}
.banner-controls .banner-prev,.banner-controls .banner-next,.banner-controls .banner-pause{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.banner-controls button:focus-visible{clip-path:none;width:auto;height:30px;padding:0 12px}
.activity-load-status:empty{display:none}
.activity-more-link[hidden]{display:none}
@media(max-width:768px){
 .top-menu:not(.collapsed){overflow-y:auto;overscroll-behavior:contain}
 .community-menu.submenu-dismissed>.top-menu-sub-menu{display:block}
 .submenu-toggle{display:none}
 body.menu-open{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){.top-menu .container,.top-menu-sub-item{animation:none}}
.login-form .errorlist,.form .errorlist{color:#a52b22;font-size:13px;line-height:1.7;margin:8px 0;}
.login-form button.naver-login-button[type=submit]{position:static;width:185px;height:40px;padding:0;border:0;background:transparent;font-size:0;}
.login-form .naver-login-button img{display:block;}
