/* Generated from index.html. Source of truth: index.html */

#subpage-container{
  position:fixed;top:134px;left:0;right:0;bottom:0;z-index:99;
  background:#fff;
  transform:translateY(100%);
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;
  display:flex;flex-direction:column;
}
#subpage-container.open{transform:translateY(0)}
.subpage-header{
  position:sticky;top:0;z-index:10;
  background:rgba(255,255,255,.96);backdrop-filter:blur(8px);
  border-bottom:1px solid #ececec;
  padding:16px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.subpage-bc{font-size:14px;color:var(--gray-500);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.subpage-bc .home{color:var(--green-700);font-weight:700}
.subpage-bc strong{color:var(--green-900);font-weight:800}
.subpage-actions{display:flex;gap:8px}
.subpage-close,.subpage-back{
  background:#f3f3f3;color:#333;
  padding:9px 16px;border-radius:8px;font-weight:700;font-size:13.5px;
  cursor:pointer;transition:all .15s ease;
  display:inline-flex;align-items:center;gap:6px;
  font-family:inherit;text-decoration:none;
}
.subpage-close:hover{background:#1B4332;color:#fff}
.subpage-back:hover{background:var(--green-100);color:var(--green-700)}
.subpage-layout{
  display:grid;grid-template-columns:240px 1fr;
  max-width:1240px;margin:0 auto;padding:40px 32px 100px;
  gap:48px;flex:1;width:100%;
}
.subpage-sidebar{position:sticky;top:90px;align-self:start}
.subpage-sidebar h4{
  font-size:13px;color:var(--green-700);letter-spacing:1px;
  text-transform:uppercase;font-weight:800;margin-bottom:14px;
  padding-bottom:12px;border-bottom:2px solid var(--green-700);
}
.subpage-sidebar h4 .pname{display:block;color:var(--green-900);font-size:18px;letter-spacing:-.3px;margin-top:6px;text-transform:none}
.subpage-sidebar ul li{margin-bottom:2px}
.subpage-sidebar ul li a{
  display:block;padding:11px 14px;border-radius:8px;
  font-size:14.5px;color:#555;transition:all .15s ease;cursor:pointer;
  border-left:3px solid transparent;
}
.subpage-sidebar ul li a:hover{background:var(--green-100);color:var(--green-700)}
.subpage-sidebar ul li a.active{
  background:var(--green-100);color:var(--green-900);font-weight:700;
  border-left-color:var(--green-500);
}

/* [v21] 사이드바 회사 로고 배너 (모든 서브페이지에 자동 표시) */
/* ─── [v1.5] 공급사 홈페이지 배너 - 고급 디자인 ─────────────── */
.sb-company-banner{
  margin-top:28px;padding:22px 18px 18px;
  background:#fff;
  border:1px solid #e5ecea;border-radius:16px;
  text-decoration:none;color:inherit;
  display:block;
  position:relative;overflow:hidden;
  box-shadow:0 1px 2px rgba(15,32,42,.04), 0 2px 8px rgba(15,32,42,.04);
  transition:transform .3s cubic-bezier(.4,0,.2,1),
             box-shadow .3s cubic-bezier(.4,0,.2,1),
             border-color .25s ease;
}
/* 상단 컬러 액센트 바 (하늘숲 컬러 블루→그린 그라데이션) */
.sb-company-banner::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#3DAAE0 0%,#3DAA8E 50%,#3DAA6E 100%);
  opacity:.85;
  pointer-events:none;
}
/* 우상단 외부 링크 아이콘 (subtle) */
.sb-company-banner::after{
  content:"↗";
  position:absolute;top:11px;right:13px;
  font-size:13px;color:#b9c4c0;font-weight:700;
  transition:color .25s ease,transform .25s ease;
  pointer-events:none;
}
.sb-company-banner:hover{
  transform:translateY(-3px);
  border-color:#d0e4dc;
  box-shadow:0 4px 8px rgba(15,32,42,.05), 0 12px 28px rgba(45,106,79,.12);
}
.sb-company-banner:hover::after{color:var(--green-700);transform:translate(2px,-2px)}

.sb-company-banner .sb-c-label{
  font-size:10px;color:#6f8278;font-weight:800;
  letter-spacing:1.2px;margin-bottom:14px;text-transform:uppercase;
  display:flex;align-items:center;gap:6px;
}
.sb-company-banner .sb-c-logo{
  display:block;width:100%;max-width:190px;height:auto;
  margin:6px auto 14px;
  transition:transform .3s cubic-bezier(.4,0,.2,1);
}
.sb-company-banner:hover .sb-c-logo{transform:scale(1.04)}

.sb-company-banner .sb-c-name{
  font-size:14px;color:#0f2837;font-weight:800;
  text-align:center;margin-bottom:5px;letter-spacing:-.3px;
  line-height:1.3;
}
.sb-company-banner .sb-c-url{
  font-size:11px;color:#8a9b94;font-weight:600;
  text-align:center;font-family:'SF Mono','Monaco','Consolas',monospace;
  letter-spacing:.2px;transition:color .25s ease;
}
.sb-company-banner:hover .sb-c-url{color:var(--green-700)}
/* ───────────────────────────────────────────────────────────── */

/* ============================================================
   [v21] 교육 안내 - 신청 방법 4단계 카드 (한눈에 흐름 파악)
   ============================================================ */
.edu-apply-section{margin:20px 0 30px}

/* 핵심 양식 박스 (필수 기재) */
.edu-form-spec{
  background:linear-gradient(135deg,#FFE066 0%,#f5a623 100%);
  border-radius:16px;padding:22px 26px;
  position:relative;overflow:hidden;
  box-shadow:0 8px 22px rgba(245,166,35,.18);
  margin-bottom:24px;
}
.edu-form-spec::before{
  content:"📋";position:absolute;top:-15px;right:-5px;
  font-size:120px;opacity:.10;line-height:1;pointer-events:none;
}
.edu-form-spec .efs-eyebrow{
  display:inline-block;
  background:rgba(27,67,50,.20);color:#1B4332;
  padding:4px 10px;border-radius:5px;
  font-size:11px;font-weight:800;letter-spacing:.5px;margin-bottom:8px;
}
.edu-form-spec .efs-title{
  font-size:18px;font-weight:900;color:#1B4332;margin-bottom:10px;line-height:1.4;
}
.edu-form-spec .efs-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 12px;
  position:relative;z-index:1;
}
.edu-form-spec .efs-item{
  background:rgba(255,255,255,.55);backdrop-filter:blur(4px);
  border:1.5px solid rgba(27,67,50,.18);
  border-radius:10px;padding:10px 12px;text-align:center;
}
.edu-form-spec .efs-item .label{
  font-size:10.5px;color:#5a3d00;font-weight:800;letter-spacing:.3px;margin-bottom:3px;
}
.edu-form-spec .efs-item .value{
  font-size:13.5px;color:#1B4332;font-weight:900;
}
.edu-form-spec .efs-example{
  background:rgba(27,67,50,.10);border-radius:8px;padding:10px 14px;
  font-size:12.5px;color:#1B4332;line-height:1.6;font-weight:600;
}
.edu-form-spec .efs-example strong{color:#1B4332;font-weight:900}

/* 4단계 흐름 카드 (그라데이션 컬러 단계별) */
.edu-steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  position:relative;
}
.edu-step{
  position:relative;background:#fff;
  border:1.5px solid #e5ebe7;border-radius:14px;
  padding:22px 18px;transition:all .25s ease;
  overflow:hidden;
}
.edu-step::before{
  content:"";position:absolute;top:0;left:0;width:100%;height:5px;
  background:linear-gradient(90deg,var(--c1) 0%,var(--c2) 100%);
}
.edu-step:nth-child(1){--c1:#88D4A8;--c2:#2D6A4F}
.edu-step:nth-child(2){--c1:#A5C2FF;--c2:#1E3A8A}
.edu-step:nth-child(3){--c1:#FFB07F;--c2:#D97706}
.edu-step:nth-child(4){--c1:#D4B0FF;--c2:#7C3AED}

.edu-step:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 26px rgba(0,0,0,.10);
  border-color:var(--c2);
}

/* 화살표 (카드 사이 흐름 시각화) */
.edu-step:not(:last-child)::after{
  content:"→";position:absolute;top:50%;right:-14px;
  transform:translateY(-50%);
  font-size:24px;color:var(--green-300);font-weight:900;
  z-index:2;background:#fff;width:24px;height:24px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
}

.edu-step .es-num{
  width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,var(--c1) 0%,var(--c2) 100%);
  color:#fff;font-weight:900;font-size:18px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:14px;letter-spacing:-1px;
  box-shadow:0 4px 10px rgba(0,0,0,.15);
}
.edu-step .es-ico{
  font-size:28px;margin-bottom:10px;line-height:1;
}
.edu-step h4{
  font-size:15.5px;color:var(--green-900);font-weight:800;
  margin:0 0 8px;letter-spacing:-.3px;
}
.edu-step p{
  font-size:12.5px;color:var(--gray-700);
  line-height:1.6;margin:0;font-weight:600;
}
.edu-step p strong{color:var(--green-700);font-weight:800}

/* 신청 양식 바로가기 CTA */
.edu-apply-cta{
  margin-top:24px;
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 60%,#3DAA6E 100%);
  border-radius:16px;padding:24px 28px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
  position:relative;overflow:hidden;
  box-shadow:0 12px 28px rgba(45,90,61,.20);
}
.edu-apply-cta::before{
  content:"✍️";position:absolute;top:-25px;right:30px;
  font-size:150px;opacity:.07;line-height:1;pointer-events:none;
}
.edu-apply-cta .ea-text{
  color:#fff;flex:1;min-width:240px;
  position:relative;z-index:1;
}
.edu-apply-cta .ea-text h4{
  font-size:18px;font-weight:900;margin:0 0 4px;
}
.edu-apply-cta .ea-text p{
  font-size:13.5px;color:rgba(255,255,255,.85);margin:0;line-height:1.5;
}
.edu-apply-cta .ea-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:13px 22px;border-radius:10px;
  background:#FFE066;color:#1B4332;
  font-size:14px;font-weight:900;text-decoration:none;
  box-shadow:0 6px 16px rgba(255,224,102,.30);
  transition:all .2s;position:relative;z-index:1;
}
.edu-apply-cta .ea-btn:hover{
  background:#FFD93D;transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(255,224,102,.40);
}

@media (max-width:900px){
  .edu-form-spec .efs-grid{grid-template-columns:repeat(2,1fr)}
  .edu-steps{grid-template-columns:1fr 1fr;gap:18px}
  .edu-step:not(:last-child)::after{display:none}
}
@media (max-width:560px){
  .edu-form-spec .efs-grid{grid-template-columns:1fr}
  .edu-steps{grid-template-columns:1fr}
  .edu-apply-cta{padding:20px 22px}
}

/* ============================================================
   [v21] 신청 규정 - 3개 정보 카드 (전문 디자인)
   ============================================================ */
.edu-rules{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px;
}
.edu-rule-card{
  position:relative;background:#fff;border-radius:16px;padding:24px;
  border:1.5px solid #e5ebe7;transition:all .25s ease;
  overflow:hidden;
}
.edu-rule-card::before{
  content:"";position:absolute;top:0;left:0;width:100%;height:6px;
  background:linear-gradient(90deg,var(--rc1),var(--rc2));
}
.edu-rule-card.r-eligibility{--rc1:#88D4A8;--rc2:#2D6A4F}
.edu-rule-card.r-method{--rc1:#A5C2FF;--rc2:#1E3A8A}
.edu-rule-card.r-important{--rc1:#FFB0B0;--rc2:#dc2626}
.edu-rule-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.08);border-color:var(--rc2)}

.edu-rule-card .erc-head{
  display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;
}
.edu-rule-card .erc-num{
  font-size:28px;font-weight:900;line-height:1;
  background:linear-gradient(135deg,var(--rc1),var(--rc2));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;letter-spacing:-1px;
}
.edu-rule-card .erc-ico{
  width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,var(--rc1) 0%,var(--rc2) 100%);
  display:flex;align-items:center;justify-content:center;
  font-size:18px;box-shadow:0 4px 10px rgba(0,0,0,.12);
}
.edu-rule-card .erc-label{
  margin-left:auto;font-size:10px;font-weight:900;letter-spacing:1px;color:var(--rc2);
  background:rgba(0,0,0,.03);padding:4px 8px;border-radius:5px;
}
.edu-rule-card .erc-title{
  font-size:20px;color:var(--green-900);font-weight:900;
  margin:0 0 12px;letter-spacing:-.5px;
}
.edu-rule-card .erc-desc{
  font-size:13.5px;color:var(--gray-700);line-height:1.7;margin:0 0 14px;font-weight:600;
}
.edu-rule-card .erc-tags{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;
}
.edu-rule-card .erc-tag{
  font-size:11.5px;color:var(--rc2);font-weight:800;
  background:#f0f7f2;padding:5px 10px;border-radius:6px;
  border:1px solid rgba(0,0,0,.04);
}
.edu-rule-card .erc-note{
  font-size:11.5px;color:var(--gray-500);line-height:1.6;
  margin:8px 0 0;padding:8px 10px;background:#fafcfa;border-radius:6px;
}
.edu-rule-card .erc-note-warn{
  background:#fef3c7;color:#92400e;font-weight:700;
}

/* 접수 방법 카드 - 2가지 방법 */
.edu-rule-card .erc-methods{
  display:flex;flex-direction:column;gap:10px;margin-top:10px;
}
.edu-rule-card .erc-method-item{
  display:flex;align-items:center;gap:10px;
  background:#f5f9fc;border:1px solid #e0eaf3;border-radius:10px;
  padding:10px 12px;
}
.edu-rule-card .erc-method-item .emi-ico{font-size:22px;line-height:1}
.edu-rule-card .erc-method-item .emi-title{
  font-size:13px;font-weight:800;color:#1E3A8A;
}
.edu-rule-card .erc-method-item .emi-desc{
  font-size:11.5px;color:var(--gray-700);margin-top:2px;
}

/* 중요 안내 카드 - 큰 숫자 강조 */
.edu-rule-card .erc-important-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.edu-rule-card .eri-item{
  background:linear-gradient(180deg,#fef2f2 0%,#fff 100%);
  border:1.5px solid #fecaca;border-radius:10px;padding:12px;text-align:center;
}
.edu-rule-card .eri-item.warning{
  background:linear-gradient(180deg,#fef3c7 0%,#fff 100%);
  border-color:#fbbf24;
}
.edu-rule-card .eri-big{
  font-size:32px;font-weight:900;color:#dc2626;line-height:1;letter-spacing:-1px;margin-bottom:6px;
}
.edu-rule-card .eri-big span{
  font-size:13px;color:var(--gray-700);font-weight:700;margin-left:3px;
}
.edu-rule-card .eri-item.warning .eri-big{color:#d97706}
.edu-rule-card .eri-text{
  font-size:11.5px;color:var(--gray-700);line-height:1.5;
}
.edu-rule-card .eri-text strong{color:var(--green-900);font-weight:800}

@media (max-width:900px){
  .edu-rules{grid-template-columns:1fr;gap:14px}
}

/* ============================================================
   [v21] 커뮤니티 새 글 작성 모달
   ============================================================ */
.cf-modal-overlay{
  position:fixed;inset:0;background:rgba(15,28,22,.55);
  backdrop-filter:blur(4px);z-index:9999;
  display:none;align-items:flex-start;justify-content:center;
  padding:40px 20px;overflow-y:auto;
}
.cf-modal-overlay.active{display:flex;animation:cfFade .25s ease}
@keyframes cfFade{from{opacity:0}to{opacity:1}}

.cf-modal{
  background:#fff;border-radius:18px;
  max-width:680px;width:100%;
  box-shadow:0 24px 60px rgba(0,0,0,.30);
  overflow:hidden;animation:cfSlide .3s ease;
}
@keyframes cfSlide{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

.cf-modal-head{
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 100%);
  color:#fff;padding:22px 28px;
  display:flex;justify-content:space-between;align-items:center;
}
.cf-modal-head h3{
  font-size:18px;font-weight:900;margin:0;letter-spacing:-.3px;
}
.cf-modal-head .cf-modal-close{
  background:rgba(255,255,255,.15);border:0;color:#fff;
  width:32px;height:32px;border-radius:8px;cursor:pointer;
  font-size:18px;font-weight:900;transition:all .15s;
}
.cf-modal-head .cf-modal-close:hover{background:rgba(255,255,255,.25)}

.cf-modal-body{padding:24px 28px}
.cf-modal-body .cfw-field{margin-bottom:16px}
.cf-modal-body .cfw-field label{
  display:block;font-size:13px;font-weight:800;color:var(--green-900);
  margin-bottom:6px;letter-spacing:-.2px;
}
.cf-modal-body .cfw-field label .req{color:#dc2626;font-weight:900}
.cf-modal-body .cfw-field input[type="text"],
.cf-modal-body .cfw-field select,
.cf-modal-body .cfw-field textarea{
  width:100%;padding:11px 14px;
  border:1.5px solid #d4dcd6;border-radius:8px;
  font-size:14px;font-family:inherit;color:var(--gray-700);
  transition:border-color .15s,box-shadow .15s;background:#fff;
}
.cf-modal-body .cfw-field textarea{
  resize:vertical;min-height:140px;line-height:1.6;
}
.cf-modal-body .cfw-field input:focus,
.cf-modal-body .cfw-field select:focus,
.cf-modal-body .cfw-field textarea:focus{
  outline:0;border-color:var(--green-500);
  box-shadow:0 0 0 3px rgba(61,170,110,.15);
}
.cf-modal-body .cfw-row{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
.cf-modal-body .cfw-tag-picker{
  display:flex;flex-wrap:wrap;gap:6px;
}
.cf-modal-body .cfw-tag-picker label{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 12px;border-radius:6px;cursor:pointer;
  background:#f0f7f2;border:1.5px solid transparent;
  font-size:12.5px;font-weight:800;color:var(--green-700);
  transition:all .15s;margin:0;
}
.cf-modal-body .cfw-tag-picker label input{display:none}
.cf-modal-body .cfw-tag-picker label:has(input:checked){
  background:var(--green-700);color:#fff;border-color:var(--green-900);
}
.cf-modal-body .cfw-tag-picker label:hover{border-color:var(--green-500)}

/* [v1.13] 사용자 후기 별점 라디오 - 메인 페이지 후기 카드 톤(청량 블루)과 매칭 */
.cf-modal-body .cfw-rating-picker{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;
}
.cf-modal-body .cfw-rating-picker label{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 16px;border-radius:10px;cursor:pointer;
  background:#f0f9ff;border:1.5px solid #e0f2fe;
  font-size:14px;font-weight:800;color:#0284C7;
  transition:all .15s;margin:0;letter-spacing:.3px;
}
.cf-modal-body .cfw-rating-picker label:hover{
  border-color:#38BDF8;
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(14,165,233,.15);
}
.cf-modal-body .cfw-rating-picker label input{display:none}
.cf-modal-body .cfw-rating-picker label:has(input:checked){
  background:linear-gradient(135deg,#0EA5E9 0%,#0284C7 100%);
  color:#fff !important;border-color:#0284C7;
  box-shadow:0 6px 14px rgba(14,165,233,.32);
}
.cf-modal-body .cfw-rating-picker label .r-num{
  font-size:12.5px;font-weight:700;
}
.cf-modal-body .cfw-rating-hint{
  display:block;margin-top:8px;
  font-size:11.5px;color:#94a39a;font-weight:500;
}
.cf-modal-body .cfw-file-hint{
  font-size:11.5px;color:var(--gray-500);margin-top:6px;
}

.cf-modal-foot{
  padding:18px 28px;background:#fafcfa;border-top:1px solid #e5ebe7;
  display:flex;justify-content:flex-end;gap:10px;
}
.cf-modal-foot button{
  padding:11px 22px;border-radius:8px;border:0;cursor:pointer;
  font-size:14px;font-weight:800;transition:all .15s;
}
.cf-modal-foot .cfw-btn-cancel{
  background:#f0f0f0;color:var(--gray-700);
}
.cf-modal-foot .cfw-btn-cancel:hover{background:#e0e0e0}
.cf-modal-foot .cfw-btn-submit{
  background:linear-gradient(135deg,#2D6A4F 0%,#1B4332 100%);
  color:#fff;box-shadow:0 4px 12px rgba(45,106,79,.25);
}
.cf-modal-foot .cfw-btn-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(45,106,79,.35);
}
body.cf-modal-open{overflow:hidden}

/* ============================================================
   [v1.13] 리치 텍스트 에디터 (커뮤니티 새 글 작성)
   ============================================================ */
.cf-editor-wrap{
  border:1.5px solid #d4dcd6;border-radius:8px;background:#fff;overflow:hidden;
  transition:border-color .15s,box-shadow .15s;
}
.cf-editor-wrap:focus-within{
  border-color:var(--green-500);box-shadow:0 0 0 3px rgba(61,170,110,.15);
}
.cf-editor-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:3px;
  padding:8px 10px;background:#f7faf8;border-bottom:1px solid #e5ebe7;
  position:relative;
}
.cf-editor-toolbar .cf-tb-btn{
  min-width:32px;height:32px;padding:0 8px;
  border:1px solid transparent;border-radius:6px;background:transparent;
  cursor:pointer;font-size:13px;color:var(--gray-700);font-family:inherit;
  display:inline-flex;align-items:center;justify-content:center;
  transition:all .12s;
}
.cf-editor-toolbar .cf-tb-btn:hover{background:#e6f0e9;border-color:#cfe1d4;color:var(--green-700)}
.cf-editor-toolbar .cf-tb-btn:active{background:#cfe1d4}
.cf-editor-toolbar .cf-tb-btn.active{background:var(--green-700);color:#fff;border-color:var(--green-900)}
.cf-editor-toolbar .cf-tb-sep{
  width:1px;height:20px;background:#d4dcd6;margin:0 4px;display:inline-block;
}
/* [v1.13 fix] 모달 일반 input/select 스타일이 툴바에 상속되는 것 차단 */
.cf-modal-body .cf-editor-toolbar input,
.cf-modal-body .cf-editor-toolbar select{
  width:auto;padding:0;border:0;box-shadow:none;
}
.cf-modal-body .cf-editor-toolbar input:focus,
.cf-modal-body .cf-editor-toolbar select:focus{
  outline:0;box-shadow:none;
}
.cf-editor-toolbar .cf-tb-select{
  width:auto !important;min-width:96px;
  height:32px;padding:0 22px 0 8px !important;
  border:1px solid #d4dcd6 !important;border-radius:6px;
  font-size:12.5px;background:#fff;cursor:pointer;font-family:inherit;
  -webkit-appearance:auto;appearance:auto;
}
.cf-editor-toolbar .cf-tb-select:focus{
  border-color:var(--green-500) !important;
  box-shadow:0 0 0 2px rgba(61,170,110,.15) !important;
}
.cf-editor-toolbar .cf-tb-color{
  display:inline-flex;align-items:center;gap:2px;
  height:32px;padding:0 6px;border:1px solid transparent;border-radius:6px;
  cursor:pointer;font-size:13px;
}
.cf-editor-toolbar .cf-tb-color:hover{background:#e6f0e9;border-color:#cfe1d4}
.cf-editor-toolbar .cf-tb-color input[type="color"]{
  width:22px;height:22px;border:0;padding:0;cursor:pointer;background:transparent;
}
.cf-editor-toolbar .cf-tb-color input[type="color"]::-webkit-color-swatch-wrapper{padding:0}
.cf-editor-toolbar .cf-tb-color input[type="color"]::-webkit-color-swatch{border:1px solid #d4dcd6;border-radius:4px}

/* 이모지 피커 (툴바 아래로 펼침) */
.cf-emoji-picker{
  position:absolute;top:100%;right:10px;z-index:20;
  background:#fff;border:1px solid #d4dcd6;border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  padding:10px;margin-top:6px;
  animation:cfEmojiPopIn .15s ease-out;
}
@keyframes cfEmojiPopIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.cf-emoji-picker[hidden]{display:none}
.cf-emoji-grid{
  display:grid;grid-template-columns:repeat(8,32px);gap:4px;
  max-height:240px;overflow-y:auto;
}
.cf-emoji-grid button{
  width:32px;height:32px;border:0;background:transparent;cursor:pointer;
  font-size:18px;border-radius:6px;padding:0;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .12s;
}
.cf-emoji-grid button:hover{background:#e6f0e9}
.cf-emoji-grid button:active{background:#cfe1d4}

/* 에디터 본문 (contenteditable) */
.cf-editor-body{
  min-height:180px;max-height:420px;overflow-y:auto;
  padding:14px 16px;font-size:14px;line-height:1.7;color:var(--gray-700);
  font-family:inherit;outline:none;background:#fff;
  word-break:break-word;
}
.cf-editor-body:empty::before{
  content:attr(data-placeholder);
  color:#a0aaa3;white-space:pre-wrap;pointer-events:none;
}
.cf-editor-body ul,.cf-editor-body ol{margin:6px 0 6px 24px}
.cf-editor-body a{color:var(--green-700);text-decoration:underline}
.cf-editor-body img{max-width:100%;height:auto}

@media (max-width:600px){
  .cf-editor-toolbar{padding:6px 8px;gap:2px}
  .cf-editor-toolbar .cf-tb-btn{min-width:30px;height:30px;font-size:12.5px;padding:0 6px}
  .cf-editor-toolbar .cf-tb-sep{margin:0 2px}
  .cf-emoji-grid{grid-template-columns:repeat(6,32px)}
}

/* ============================================================
   [v21] 임도 뉴스 / 공지사항 등록 모달 (관리자·사용자 공용)
   ============================================================ */
.nn-modal-overlay{
  position:fixed;inset:0;background:rgba(15,28,22,.55);
  backdrop-filter:blur(4px);z-index:9999;
  display:none;align-items:flex-start;justify-content:center;
  padding:40px 20px;overflow-y:auto;
}
.nn-modal-overlay.active{display:flex;animation:nnFade .25s ease}
@keyframes nnFade{from{opacity:0}to{opacity:1}}

.nn-modal{
  background:#fff;border-radius:18px;max-width:680px;width:100%;
  box-shadow:0 24px 60px rgba(0,0,0,.30);overflow:hidden;
  animation:nnSlide .3s ease;
}
@keyframes nnSlide{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

.nn-modal-head{
  padding:22px 28px;color:#fff;
  display:flex;justify-content:space-between;align-items:center;
}
.nn-modal-head.h-news{background:linear-gradient(135deg,#1E3A8A 0%,#3b5fbf 100%)}
/* [v1.13] 공지 모달 헤더 주황 → 하늘색 청량 블루로 변경 */
.nn-modal-head.h-notice{background:linear-gradient(135deg,#0284C7 0%,#38BDF8 100%)}
.nn-modal-head h3{font-size:18px;font-weight:900;margin:0;letter-spacing:-.3px}
.nn-modal-head .nn-close{
  background:rgba(255,255,255,.15);border:0;color:#fff;
  width:32px;height:32px;border-radius:8px;cursor:pointer;
  font-size:18px;font-weight:900;transition:all .15s;
}
.nn-modal-head .nn-close:hover{background:rgba(255,255,255,.25)}

.nn-modal-body{padding:24px 28px}
.nn-modal-body .nn-role-banner{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;border-radius:10px;margin-bottom:18px;
  font-size:13px;line-height:1.5;
}
.nn-modal-body .nn-role-banner.user{background:#fef3c7;color:#92400e}
/* [v1.13] 관리자 등록 모드 배너 — 분홍 → 연한 하늘색 (청량 톤 통일) */
.nn-modal-body .nn-role-banner.admin{background:#e0f2fe;color:#075985}
.nn-modal-body .nn-role-banner strong{font-weight:900}

.nn-modal-body .nnf-field{margin-bottom:16px}
.nn-modal-body .nnf-field label{
  display:block;font-size:13px;font-weight:800;color:var(--green-900);
  margin-bottom:6px;letter-spacing:-.2px;
}
.nn-modal-body .nnf-field label .req{color:#dc2626;font-weight:900}
.nn-modal-body .nnf-field input[type="text"],
.nn-modal-body .nnf-field input[type="url"],
.nn-modal-body .nnf-field select,
.nn-modal-body .nnf-field textarea{
  width:100%;padding:11px 14px;
  border:1.5px solid #d4dcd6;border-radius:8px;
  font-size:14px;font-family:inherit;color:var(--gray-700);
  transition:border-color .15s,box-shadow .15s;background:#fff;
}
.nn-modal-body .nnf-field textarea{resize:vertical;min-height:140px;line-height:1.6}
.nn-modal-body .nnf-field input:focus,
.nn-modal-body .nnf-field select:focus,
.nn-modal-body .nnf-field textarea:focus{
  outline:0;border-color:var(--green-500);
  box-shadow:0 0 0 3px rgba(61,170,110,.15);
}
.nn-modal-body .nnf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nn-modal-body .nnf-cat-picker{display:flex;flex-wrap:wrap;gap:6px}
.nn-modal-body .nnf-cat-picker label{
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 14px;border-radius:8px;cursor:pointer;
  background:#f0f7f2;border:1.5px solid transparent;
  font-size:12.5px;font-weight:800;color:var(--green-700);
  transition:all .15s;margin:0;
}
.nn-modal-body .nnf-cat-picker label input{display:none}
.nn-modal-body .nnf-cat-picker label:has(input:checked){
  background:var(--green-700);color:#fff;border-color:var(--green-900);
}
.nn-modal-body .nnf-cat-picker label:hover{border-color:var(--green-500)}
.nn-modal-body .nnf-file-hint{font-size:11.5px;color:var(--gray-500);margin-top:6px}

.nn-modal-foot{
  padding:18px 28px;background:#fafcfa;border-top:1px solid #e5ebe7;
  display:flex;justify-content:flex-end;gap:10px;
}
.nn-modal-foot button{
  padding:11px 22px;border-radius:8px;border:0;cursor:pointer;
  font-size:14px;font-weight:800;transition:all .15s;
}
.nn-modal-foot .nnf-btn-cancel{background:#f0f0f0;color:var(--gray-700)}
.nn-modal-foot .nnf-btn-cancel:hover{background:#e0e0e0}
.nn-modal-foot .nnf-btn-submit{
  background:linear-gradient(135deg,#2D6A4F 0%,#1B4332 100%);
  color:#fff;box-shadow:0 4px 12px rgba(45,106,79,.25);
}
.nn-modal-foot .nnf-btn-submit:hover{
  transform:translateY(-2px);box-shadow:0 6px 16px rgba(45,106,79,.35);
}

/* ============================================================
   [v1.13] 히어로 우측 배너 영역 (데스크탑 전용)
   ============================================================ */
.hero-banner-area{
  position:absolute;
  top:50%; right:0;
  transform:translateY(-50%);
  width:min(38%, 420px);
  display:none;
  z-index:5;
  pointer-events:auto;
}
.hero-banner-area .hero-bn-grid{
  display:flex;flex-direction:column;gap:14px;
}
/* [v1.13] 히어로 안 배너 — 상단 작은 제목 + 큰 이미지 (부제목 제거) */
.hero-banner-area .hb-card{
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.5);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 14px 36px rgba(0,0,0,.28);
  display:block;
  text-decoration:none;color:inherit;
  transition:transform .25s,box-shadow .25s;
  position:relative;
}
.hero-banner-area .hb-card:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 44px rgba(0,0,0,.36);
}
.hero-banner-area .hb-header{
  padding:8px 12px;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid rgba(2,132,199,.08);
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.hero-banner-area .hb-title{
  font-size:13px;font-weight:900;color:#1B4332;
  margin:0;line-height:1.3;flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.hero-banner-area .hb-image{
  width:100%;aspect-ratio:1/1;
  min-width:0;
  background-size:cover;background-position:center;
  background-color:#f0f9ff;
  background-image:linear-gradient(135deg,#e0f2fe,#bae6fd);
}
.hero-banner-area .hb-image.has-bg{background-image:none}
.hero-banner-area .hb-badge{
  padding:3px 9px;border-radius:999px;
  font-size:10px;font-weight:900;letter-spacing:1px;
  color:#fff;flex-shrink:0;
  box-shadow:0 4px 10px rgba(0,0,0,.30);
}
@media (min-width:1100px){
  .hero-banner-area{ display:block }
}

/* ============================================================
   [v1.13] About F-ROAD 하단 — 측량사 비주얼 섹션
   ============================================================ */
#about-visual{
  position:relative;background:#f7faf8;padding:60px 0 70px;
  background-size:cover;background-position:center;
}
/* [v1.13] 사용자 요청 — 측량사 사진을 임도 사진 아래로 배치 (1열 세로 스택) */
#about-visual .av-grid{
  display:grid;grid-template-columns:1fr;gap:20px;
  max-width:720px;margin:0 auto;
}
.av-photo{
  position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;
  background:linear-gradient(135deg,#e0f2fe 0%,#bae6fd 100%);
  background-size:cover;background-position:center;
  box-shadow:0 16px 36px rgba(2,132,199,.18);
  transition:transform .3s,box-shadow .3s;
}
.av-photo:hover{ transform:translateY(-4px); box-shadow:0 24px 48px rgba(2,132,199,.30); }
.av-photo.has-bg .av-photo-placeholder{ display:none; }
.av-photo-cap{
  position:absolute;top:16px;left:16px;z-index:2;
  background:rgba(27,67,50,.88);color:#fff;
  padding:7px 14px;border-radius:999px;
  font-size:12px;font-weight:800;letter-spacing:.3px;
  backdrop-filter:blur(4px);
}
.av-photo-placeholder{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;color:#0d3a23;
  padding:20px;
}
.av-photo-placeholder .av-ph-icon{ font-size:42px;margin-bottom:8px;opacity:.7 }
.av-photo-placeholder .av-ph-text{ font-size:16px;font-weight:800;color:#0d3a23;margin-bottom:6px }
.av-photo-placeholder small{ font-size:11.5px;color:#456;opacity:.75;line-height:1.4 }
.av-slogan{
  text-align:center;max-width:780px;margin:42px auto 0;
}
.av-slogan h2{
  font-size:38px;font-weight:900;color:#1B4332;line-height:1.25;margin:0 0 12px;
  letter-spacing:-1px;
}
.av-slogan h2 em{
  font-style:normal;
  background:linear-gradient(135deg,#0EA5E9,#0284C7);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.av-slogan p{
  font-size:16px;color:#475569;line-height:1.7;margin:0;font-weight:500;
}
@media (max-width:760px){
  #about-visual .av-grid{ grid-template-columns:1fr;gap:14px }
  .av-slogan h2{ font-size:28px }
  .av-slogan p{ font-size:14px }
}

/* ============================================================
   [v1.13] 메인 페이지 배너 광고 — 별도 섹션 (모바일·태블릿 fallback)
   ============================================================ */
#home-banners{
  padding:32px 0 4px;background:linear-gradient(180deg,#fff 0%,#f0f9ff 100%);
}
@media (min-width:1100px){
  /* 데스크탑에서는 히어로 안 배너만 보이고 별도 섹션은 숨김 */
  #home-banners{ display:none !important }
}
.home-banners-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:20px;
  max-width:920px;margin:0 auto;
}
.home-banners-grid.single{grid-template-columns:minmax(0,520px);justify-content:center}
/* [v1.13] 배너 카드 레이아웃 — 상단 작은 제목 → 큰 이미지 (부제목 제거) */
.hb-card{
  position:relative;display:block;
  background:#fff;border-radius:16px;overflow:hidden;
  border:1px solid #e0f2fe;
  box-shadow:0 8px 24px rgba(2,132,199,.10);
  transition:transform .25s,box-shadow .25s;
  text-decoration:none;color:inherit;
}
.hb-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 36px rgba(2,132,199,.22);
}
.hb-header{
  position:relative;
  padding:10px 16px;
  border-bottom:1px solid #f0f9ff;
  background:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.hb-title{
  font-size:14px;font-weight:900;color:#1B4332;
  margin:0;line-height:1.35;flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.hb-image{
  width:100%;aspect-ratio:1/1;
  background-size:cover;background-position:center;
  background-color:#f0f9ff;
  background-image:linear-gradient(135deg,#e0f2fe 0%,#bae6fd 100%);
}
.hb-image.has-bg{background-image:none}
.hb-badge{
  padding:4px 10px;border-radius:999px;
  font-size:10.5px;font-weight:900;letter-spacing:1px;
  color:#fff;flex-shrink:0;
  box-shadow:0 4px 10px rgba(0,0,0,.18);
}
.hb-badge.b-new   {background:linear-gradient(135deg,#0EA5E9,#0284C7)}
.hb-badge.b-hot   {background:linear-gradient(135deg,#f43f5e,#be123c)}
.hb-badge.b-sale  {background:linear-gradient(135deg,#f59e0b,#b45309)}
.hb-badge.b-launch{background:linear-gradient(135deg,#10b981,#047857)}
@media (max-width:760px){
  .home-banners-grid{grid-template-columns:1fr;gap:14px}
  .home-banners-grid.single{grid-template-columns:1fr}
}

/* ============================================================
   [v1.13] 메인 페이지 사용자 후기 (홍보 미리보기) - 청량 블루 톤
   ============================================================ */
#home-reviews{
  background:linear-gradient(180deg,#f0f9ff 0%,#fff 75%);
}
#home-reviews .sec-head .eyebrow{
  background:rgba(14,165,233,.10);color:#0284C7;
}
#home-reviews .sec-head h2 em{
  font-style:normal;color:#0284C7;
}
.hr-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:6px;
}
.hr-card{
  background:#fff;border:1px solid #e0f2fe;border-radius:14px;
  padding:24px 22px;position:relative;
  box-shadow:0 6px 18px rgba(2,132,199,.07);
  transition:transform .25s,box-shadow .25s,border-color .25s;
  display:flex;flex-direction:column;
}
.hr-card:hover{
  transform:translateY(-5px);
  box-shadow:0 16px 32px rgba(2,132,199,.18);
  border-color:#7dd3fc;
}
.hr-card.hr-featured{
  background:linear-gradient(160deg,#fff 0%,#e0f2fe 100%);
  border-color:#38BDF8;
}
.hr-badge{
  position:absolute;top:14px;right:14px;
  background:linear-gradient(135deg,#0EA5E9,#0284C7);
  color:#fff;padding:4px 10px;border-radius:999px;
  font-size:10.5px;font-weight:900;letter-spacing:1.2px;
  box-shadow:0 4px 10px rgba(14,165,233,.30);
}
.hr-stars{
  display:flex;align-items:center;gap:6px;font-size:14px;
  margin-bottom:12px;
}
.hr-stars .hr-rating{
  color:#0284C7;font-weight:900;font-size:13.5px;
}
.hr-quote{
  position:relative;
  font-size:14.5px;line-height:1.75;color:#374151;
  margin:0 0 18px;
  flex:1;
  padding:0 4px;
}
.hr-quote::before{
  content:"\201C";color:#7dd3fc;font-size:36px;line-height:0;
  vertical-align:-12px;font-weight:900;margin-right:2px;
}
.hr-quote::after{
  content:"\201D";color:#7dd3fc;font-size:30px;line-height:0;
  vertical-align:-12px;font-weight:900;margin-left:2px;
}
.hr-author{
  display:flex;align-items:center;gap:10px;
  padding-top:14px;border-top:1px dashed #cce8f5;
}
.hr-avatar{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(135deg,#0EA5E9,#0284C7);
  color:#fff;font-weight:900;font-size:16px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px rgba(14,165,233,.25);
  flex-shrink:0;
}
.hr-meta{display:flex;flex-direction:column;line-height:1.4}
.hr-meta strong{font-size:13.5px;color:#1B4332;font-weight:800}
.hr-meta span{font-size:11.5px;color:#6b7d6f}
.hr-cta-wrap{text-align:center;margin-top:32px}
.hr-cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 28px;border-radius:999px;
  background:linear-gradient(135deg,#0EA5E9 0%,#0284C7 100%);
  color:#fff !important;font-weight:800;font-size:14.5px;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(14,165,233,.32);
  transition:transform .15s,box-shadow .15s;
}
.hr-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(14,165,233,.45);
}
.hr-cta-note{
  margin:14px 0 0;font-size:11.5px;color:#94a39a;font-weight:500;
}
@media (max-width:980px){
  .hr-grid{grid-template-columns:1fr 1fr}
  .hr-card.hr-featured{grid-column:1 / -1}
}
@media (max-width:600px){
  .hr-grid{grid-template-columns:1fr;gap:16px}
  .hr-card{padding:20px 18px}
  .hr-card.hr-featured{grid-column:auto}
  .hr-badge{top:12px;right:12px;padding:3px 8px;font-size:10px}
  .hr-cta{padding:12px 22px;font-size:13.5px}
}

/* [v1.13] 관리자 공지 등록 버튼 — 주황 톤 → 하늘색 청량 블루 (공지=정보 톤 통일) */
.nn-admin-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 18px;border-radius:8px;cursor:pointer;
  background:linear-gradient(135deg,#0EA5E9 0%,#0284C7 100%);
  color:#fff;font-size:13.5px;font-weight:800;border:0;
  box-shadow:0 4px 12px rgba(14,165,233,.28);transition:all .15s;
}
.nn-admin-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(14,165,233,.40)}

body.nn-modal-open{overflow:hidden}

/* ============================================================
   [v21] 교육 일정 게시판 - 관리자 등록 툴바 + 전용 모달
   ============================================================ */
.edu-admin-bar{
  display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(135deg,#fef3c7 0%,#fef9e7 100%);
  border:1.5px solid #fbbf24;border-radius:12px;
  padding:14px 18px;margin-bottom:14px;gap:14px;flex-wrap:wrap;
}
.edu-admin-bar .eab-info{
  display:flex;align-items:center;gap:10px;flex:1;min-width:200px;
}
.edu-admin-bar .eab-eye{
  display:inline-block;background:#92400e;color:#fff;
  padding:4px 10px;border-radius:5px;
  font-size:11px;font-weight:900;letter-spacing:.5px;
}
.edu-admin-bar .eab-text{
  font-size:13px;color:#92400e;font-weight:700;line-height:1.5;
}
.edu-admin-bar .eab-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:11px 20px;border-radius:8px;border:0;cursor:pointer;
  background:linear-gradient(135deg,#92400e 0%,#5a2d08 100%);
  color:#fff;font-size:13.5px;font-weight:800;
  box-shadow:0 4px 12px rgba(146,64,14,.25);transition:all .15s;
  white-space:nowrap;
}
.edu-admin-bar .eab-btn:hover{
  transform:translateY(-2px);box-shadow:0 6px 16px rgba(146,64,14,.35);
}

/* 교육 일정 모달 (nn-modal 스타일 재사용 + 일정 전용 필드) */
.es-modal-overlay{
  position:fixed;inset:0;background:rgba(15,28,22,.55);
  backdrop-filter:blur(4px);z-index:9999;
  display:none;align-items:flex-start;justify-content:center;
  padding:40px 20px;overflow-y:auto;
}
.es-modal-overlay.active{display:flex;animation:nnFade .25s ease}
.es-modal{
  background:#fff;border-radius:18px;max-width:680px;width:100%;
  box-shadow:0 24px 60px rgba(0,0,0,.30);overflow:hidden;
  animation:nnSlide .3s ease;
}
.es-modal-head{
  padding:22px 28px;color:#fff;
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 100%);
  display:flex;justify-content:space-between;align-items:center;
}
.es-modal-head h3{font-size:18px;font-weight:900;margin:0;letter-spacing:-.3px}
.es-modal-head .es-close{
  background:rgba(255,255,255,.15);border:0;color:#fff;
  width:32px;height:32px;border-radius:8px;cursor:pointer;
  font-size:18px;font-weight:900;transition:all .15s;
}
.es-modal-head .es-close:hover{background:rgba(255,255,255,.25)}

.es-modal-body{padding:24px 28px}
.es-modal-body .es-admin-banner{
  background:#fee2e2;color:#991b1b;
  padding:12px 14px;border-radius:10px;margin-bottom:18px;
  font-size:13px;line-height:1.5;display:flex;align-items:center;gap:10px;
}
.es-modal-body .esf-field{margin-bottom:16px}
.es-modal-body .esf-field label{
  display:block;font-size:13px;font-weight:800;color:var(--green-900);
  margin-bottom:6px;letter-spacing:-.2px;
}
.es-modal-body .esf-field label .req{color:#dc2626;font-weight:900}
.es-modal-body .esf-field input,
.es-modal-body .esf-field select,
.es-modal-body .esf-field textarea{
  width:100%;padding:11px 14px;
  border:1.5px solid #d4dcd6;border-radius:8px;
  font-size:14px;font-family:inherit;color:var(--gray-700);
  transition:border-color .15s,box-shadow .15s;background:#fff;
}
.es-modal-body .esf-field textarea{resize:vertical;min-height:90px;line-height:1.6}
.es-modal-body .esf-field input:focus,
.es-modal-body .esf-field select:focus,
.es-modal-body .esf-field textarea:focus{
  outline:0;border-color:var(--green-500);
  box-shadow:0 0 0 3px rgba(61,170,110,.15);
}
.es-modal-body .esf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.es-modal-body .esf-row-3{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px}

.es-modal-body .esf-status-picker{display:flex;flex-wrap:wrap;gap:6px}
.es-modal-body .esf-status-picker label{
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 14px;border-radius:8px;cursor:pointer;
  background:#f5f7f6;border:1.5px solid transparent;
  font-size:12.5px;font-weight:800;color:var(--gray-700);
  transition:all .15s;margin:0;
}
.es-modal-body .esf-status-picker label input{display:none}
.es-modal-body .esf-status-picker label:has(input:checked)[data-st="open"]{
  background:#d4edda;color:#155724;border-color:#28a745;
}
.es-modal-body .esf-status-picker label:has(input:checked)[data-st="closed"]{
  background:#e2e3e5;color:#383d41;border-color:#6c757d;
}
.es-modal-body .esf-status-picker label:has(input:checked)[data-st="cancel"]{
  background:#f8d7da;color:#721c24;border-color:#dc3545;
}
.es-modal-body .esf-status-picker label:has(input:checked)[data-st="done"]{
  background:#cfe2ff;color:#084298;border-color:#0d6efd;
}

.es-modal-foot{
  padding:18px 28px;background:#fafcfa;border-top:1px solid #e5ebe7;
  display:flex;justify-content:flex-end;gap:10px;
}
.es-modal-foot button{
  padding:11px 22px;border-radius:8px;border:0;cursor:pointer;
  font-size:14px;font-weight:800;transition:all .15s;
}
.es-modal-foot .esf-btn-cancel{background:#f0f0f0;color:var(--gray-700)}
.es-modal-foot .esf-btn-cancel:hover{background:#e0e0e0}
.es-modal-foot .esf-btn-submit{
  background:linear-gradient(135deg,#2D6A4F 0%,#1B4332 100%);
  color:#fff;box-shadow:0 4px 12px rgba(45,106,79,.25);
}
.es-modal-foot .esf-btn-submit:hover{
  transform:translateY(-2px);box-shadow:0 6px 16px rgba(45,106,79,.35);
}
body.es-modal-open{overflow:hidden}

/* ============================================================
   [v21] 회원 시스템 - GNB 우측 로그인 영역
   ============================================================ */
.gnb-auth{
  display:flex;align-items:center;gap:8px;
  margin-left:14px;padding-left:14px;
  border-left:1px solid #e5e5e5;
}
.gnb-auth .ga-login,
.gnb-auth .ga-signup{
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 14px;border-radius:8px;
  font-size:13px;font-weight:800;text-decoration:none;
  transition:all .15s ease;cursor:pointer;border:0;font-family:inherit;
}
.gnb-auth .ga-login{
  background:transparent;color:var(--gray-700);
}
.gnb-auth .ga-login:hover{background:var(--green-100);color:var(--green-700)}
.gnb-auth .ga-signup{
  background:linear-gradient(135deg,#2D6A4F 0%,#1B4332 100%);
  color:#fff;box-shadow:0 4px 10px rgba(45,106,79,.20);
}
.gnb-auth .ga-signup:hover{
  transform:translateY(-1px);box-shadow:0 6px 14px rgba(45,106,79,.30);
}

/* 로그인 후 사용자 메뉴 */
.gnb-user{
  display:none;align-items:center;gap:8px;position:relative;
  margin-left:14px;padding-left:14px;border-left:1px solid #e5e5e5;
}
.gnb-user.active{display:flex}
.gnb-user-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px 6px 6px;border-radius:24px;border:0;cursor:pointer;
  background:var(--green-100);transition:all .15s;font-family:inherit;
}
.gnb-user-btn:hover{background:#d4f0dc}
.gnb-user-avatar{
  width:28px;height:28px;border-radius:50%;
  background:linear-gradient(135deg,#2D6A4F 0%,#1B4332 100%);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;
}
.gnb-user-name{
  font-size:13px;font-weight:800;color:var(--green-900);
}
.gnb-user-grade{
  display:inline-flex;align-items:center;gap:3px;
  padding:2px 7px;border-radius:5px;font-size:10px;font-weight:900;letter-spacing:.3px;
}
.gnb-user-grade.g-sapling{background:#d4edda;color:#155724}
.gnb-user-grade.g-vip{background:linear-gradient(135deg,#FFE066,#f5a623);color:#5a3d00}
.gnb-user-grade.g-manager{background:linear-gradient(135deg,#bfdbfe,#3b82f6);color:#fff}
.gnb-user-grade.g-admin{background:linear-gradient(135deg,#dc2626,#7f1d1d);color:#fff}

/* 드롭다운 메뉴 */
.gnb-user-menu{
  position:absolute;top:calc(100% + 10px);right:0;
  background:#fff;border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,.15);
  border:1px solid #e5ebe7;
  min-width:240px;padding:8px;z-index:1000;
  display:none;
}
.gnb-user.open .gnb-user-menu{display:block;animation:gumFade .2s ease}
@keyframes gumFade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

.gum-head{
  padding:14px 14px 12px;border-bottom:1px solid #f0f0f0;margin-bottom:6px;
}
.gum-head .gum-name{font-size:14px;font-weight:900;color:var(--green-900);margin-bottom:3px}
.gum-head .gum-email{font-size:11.5px;color:var(--gray-500);font-family:'SF Mono',monospace}
.gum-head .gum-grade-line{margin-top:8px;display:flex;align-items:center;gap:6px}

.gum-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:8px;
  font-size:13px;color:var(--gray-700);text-decoration:none;
  font-weight:700;transition:all .15s;cursor:pointer;border:0;background:transparent;width:100%;
  text-align:left;font-family:inherit;
}
.gum-item:hover{background:var(--green-100);color:var(--green-900)}
.gum-admin-link{display:none}
.gum-admin-link:hover{background:#fff3cd;color:#7a4d00}
.gum-item.danger:hover{background:#fee2e2;color:#991b1b}
.gum-item .gum-ico{font-size:14px}

#froad-maintenance-screen{
  position:fixed;inset:0;z-index:2147483000;
  display:flex;align-items:center;justify-content:center;
  padding:24px;background:#f6faf7;color:#10291d;
}
#froad-maintenance-screen .fms-panel{
  width:min(560px,100%);background:#fff;border:1px solid #dfe9e3;
  border-radius:8px;padding:42px 34px;text-align:center;
  box-shadow:0 24px 70px rgba(23,54,38,.18);
}
#froad-maintenance-screen .fms-badge{
  display:inline-flex;align-items:center;padding:7px 12px;margin-bottom:18px;
  border-radius:6px;background:#e9f7ef;color:#12613f;font-size:12px;font-weight:900;letter-spacing:1px;
}
#froad-maintenance-screen h1{
  margin:0 0 12px;font-size:32px;line-height:1.25;color:#103e2b;font-weight:900;letter-spacing:0;
}
#froad-maintenance-screen p{margin:0 auto 24px;max-width:440px;line-height:1.7;color:#51645a;font-size:16px}
#froad-maintenance-screen .fms-info{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
#froad-maintenance-screen .fms-info a{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:10px 16px;border-radius:8px;border:1px solid #cfe0d4;color:#174c35;text-decoration:none;font-weight:900;
}

/* ============================================================
   [v21] 회원 가입 / 로그인 페이지
   ============================================================ */
.auth-wrap{
  max-width:480px;margin:0 auto;
}
.auth-card{
  background:#fff;border-radius:20px;
  padding:36px 32px;
  box-shadow:0 12px 32px rgba(0,0,0,.06);
  border:1px solid #e5ebe7;
}
.auth-header{text-align:center;margin-bottom:28px}
.auth-header h2{
  font-size:26px;color:var(--green-900);font-weight:900;
  margin-bottom:6px;letter-spacing:-.5px;
}
.auth-header p{font-size:13.5px;color:var(--gray-500);line-height:1.6}

/* 소셜 로그인 버튼 */
.auth-social{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.auth-social-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:13px 18px;border-radius:10px;
  font-size:14px;font-weight:800;cursor:pointer;
  transition:all .15s ease;border:1.5px solid transparent;font-family:inherit;
}
.auth-social-btn.kakao{background:#FEE500;color:#3C1E1E}
.auth-social-btn.kakao:hover{background:#FDD835;transform:translateY(-1px)}
.auth-social-btn.naver{background:#03C75A;color:#fff}
.auth-social-btn.naver:hover{background:#02B14F;transform:translateY(-1px)}
.auth-social-btn.google{background:#fff;color:#444;border-color:#dadce0}
.auth-social-btn.google:hover{background:#f8f9fa;border-color:#a0a0a0}

/* 구분선 */
.auth-divider{
  display:flex;align-items:center;gap:14px;margin:18px 0;
  color:var(--gray-500);font-size:12px;font-weight:700;
}
.auth-divider::before,.auth-divider::after{
  content:"";flex:1;height:1px;background:#e5e5e5;
}

/* 폼 */
.auth-form .auth-field{margin-bottom:14px}
.auth-form .auth-field label{
  display:block;font-size:12.5px;font-weight:800;color:var(--green-900);
  margin-bottom:5px;letter-spacing:-.2px;
}
.auth-form .auth-field label .req{color:#dc2626;font-weight:900}
.auth-form .auth-field label .hint{
  font-size:11px;color:var(--gray-500);font-weight:600;margin-left:5px;
}
.auth-form .auth-field input,
.auth-form .auth-field select,
.auth-form .auth-field textarea{
  width:100%;padding:12px 14px;
  border:1.5px solid #d4dcd6;border-radius:10px;
  font-size:14px;font-family:inherit;color:var(--gray-700);
  transition:all .15s;background:#fff;
}
.auth-form .auth-field input:focus,
.auth-form .auth-field select:focus,
.auth-form .auth-field textarea:focus{
  outline:0;border-color:var(--green-500);
  box-shadow:0 0 0 3px rgba(61,170,110,.15);
}
.auth-form .auth-field.has-error input{border-color:#dc2626}
.auth-form .auth-error{
  font-size:11.5px;color:#dc2626;margin-top:4px;font-weight:700;
  display:none;
}
.auth-form .auth-field.has-error .auth-error{display:block}

/* 비밀번호 강도 표시기 */
.auth-pw-strength{
  display:flex;gap:4px;margin-top:6px;
}
.auth-pw-strength .pw-bar{
  flex:1;height:4px;background:#e5e5e5;border-radius:2px;transition:background .15s;
}
.auth-pw-strength.weak .pw-bar:nth-child(1){background:#dc2626}
.auth-pw-strength.medium .pw-bar:nth-child(1),
.auth-pw-strength.medium .pw-bar:nth-child(2){background:#f5a623}
.auth-pw-strength.strong .pw-bar:nth-child(1),
.auth-pw-strength.strong .pw-bar:nth-child(2),
.auth-pw-strength.strong .pw-bar:nth-child(3){background:#22c55e}
.auth-pw-text{
  font-size:11px;font-weight:700;margin-top:4px;color:var(--gray-500);
}
.auth-pw-strength.weak ~ .auth-pw-text{color:#dc2626}
.auth-pw-strength.medium ~ .auth-pw-text{color:#d97706}
.auth-pw-strength.strong ~ .auth-pw-text{color:#15803d}

/* 체크박스 그룹 */
.auth-checks{margin:16px 0}
.auth-check{
  display:flex;align-items:center;gap:8px;margin-bottom:8px;cursor:pointer;
}
.auth-check input{margin:0;cursor:pointer;width:16px;height:16px;accent-color:var(--green-700)}
.auth-check span{font-size:12.5px;color:var(--gray-700);font-weight:600}
.auth-check.all{
  background:#f0f7f2;padding:10px 12px;border-radius:8px;
  border:1.5px solid var(--green-500);font-weight:800;margin-bottom:12px;
}
.auth-check.all span{color:var(--green-900);font-weight:800;font-size:13px}

/* 제출 버튼 */
.auth-submit{
  width:100%;padding:14px 18px;border-radius:10px;
  background:linear-gradient(135deg,#2D6A4F 0%,#1B4332 100%);
  color:#fff;font-size:14.5px;font-weight:900;
  border:0;cursor:pointer;transition:all .15s;font-family:inherit;
  margin-top:6px;letter-spacing:-.2px;
}
.auth-submit:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(45,106,79,.30)}
.auth-submit:disabled{opacity:0.5;cursor:not-allowed}

/* 페이지 푸터 (회원가입↔로그인 전환) */
.auth-footer{
  text-align:center;margin-top:18px;font-size:13px;color:var(--gray-500);
}
.auth-footer a{color:var(--green-700);font-weight:800;text-decoration:none}
.auth-footer a:hover{text-decoration:underline}

/* ============================================================
   [v21] 관리자 로그인 모달
   ============================================================ */
.admin-login-link{
  display:block;text-align:center;margin-top:14px;
  font-size:11.5px;color:var(--gray-500);text-decoration:none;
  padding:8px;border-top:1px dashed #e5e5e5;font-weight:600;
  transition:all .15s;
}
.admin-login-link:hover{color:#dc2626;background:#fef2f2;border-top-style:solid;border-top-color:#fecaca}

.admin-modal-overlay{
  position:fixed;inset:0;background:rgba(15,28,22,.65);
  backdrop-filter:blur(6px);z-index:10000;
  display:none;align-items:center;justify-content:center;
  padding:40px 20px;
}
.admin-modal-overlay.active{display:flex;animation:cfFade .25s ease}
.admin-modal{
  background:#fff;border-radius:20px;max-width:480px;width:100%;
  box-shadow:0 24px 60px rgba(0,0,0,.40);overflow:hidden;
  animation:cfSlide .3s ease;
}
.admin-modal-head{
  background:linear-gradient(135deg,#7f1d1d 0%,#dc2626 100%);
  padding:24px 28px;color:#fff;
  display:flex;justify-content:space-between;align-items:center;
}
.admin-modal-head h3{
  font-size:18px;font-weight:900;margin:0;letter-spacing:-.3px;
  display:flex;align-items:center;gap:8px;
}
.admin-modal-head .admin-close{
  background:rgba(255,255,255,.18);border:0;color:#fff;
  width:32px;height:32px;border-radius:8px;cursor:pointer;
  font-size:18px;font-weight:900;
}
.admin-modal-head .admin-close:hover{background:rgba(255,255,255,.30)}
.admin-modal-body{padding:24px 28px}
.admin-warning-banner{
  background:linear-gradient(135deg,#fef3c7 0%,#fed7aa 100%);
  border:1.5px solid #f59e0b;border-radius:10px;
  padding:12px 14px;margin-bottom:18px;color:#92400e;
  font-size:12.5px;line-height:1.5;
}
.admin-warning-banner strong{font-weight:900}

.admin-modal-body .admf-field{margin-bottom:14px}
.admin-modal-body .admf-field label{
  display:block;font-size:12.5px;font-weight:800;color:var(--green-900);
  margin-bottom:5px;
}
.admin-modal-body .admf-field input{
  width:100%;padding:12px 14px;border:1.5px solid #d4dcd6;
  border-radius:10px;font-size:14px;font-family:inherit;
  transition:all .15s;background:#fff;
}
.admin-modal-body .admf-field.security input{font-family:'SF Mono',monospace;letter-spacing:1px;text-transform:uppercase}
.admin-modal-body .admf-field input:focus{
  outline:0;border-color:#dc2626;
  box-shadow:0 0 0 3px rgba(220,38,38,.15);
}
.admin-submit{
  width:100%;padding:13px 18px;border-radius:10px;
  background:linear-gradient(135deg,#dc2626 0%,#7f1d1d 100%);
  color:#fff;font-size:14px;font-weight:900;
  border:0;cursor:pointer;transition:all .15s;font-family:inherit;
  margin-top:8px;letter-spacing:-.2px;
  box-shadow:0 4px 12px rgba(220,38,38,.25);
}
.admin-submit:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(220,38,38,.35)}
.admin-test-info{
  margin-top:14px;font-size:11px;color:var(--gray-500);
  background:#f5f7f6;padding:10px 12px;border-radius:8px;line-height:1.6;
}
.admin-test-info strong{color:#7f1d1d;font-family:'SF Mono',monospace}
body.admin-modal-open{overflow:hidden}

/* 소셜 가입 안내 배너 */
.auth-social-notice{
  background:#eff6ff;color:#1e3a8a;border:1.5px solid #93c5fd;
  border-radius:10px;padding:10px 14px;margin-bottom:14px;
  font-size:12px;line-height:1.5;font-weight:600;
}
.auth-social-notice strong{font-weight:900}
.auth-steps{
  display:flex;align-items:center;gap:6px;justify-content:center;margin-bottom:22px;
}
.auth-step{
  display:flex;align-items:center;gap:8px;
}
.auth-step .as-num{
  width:28px;height:28px;border-radius:50%;
  background:#e5ebe7;color:var(--gray-500);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;transition:all .25s;
}
.auth-step.active .as-num{
  background:var(--green-700);color:#fff;
  box-shadow:0 0 0 4px rgba(45,106,79,.15);
}
.auth-step.done .as-num{background:var(--green-500);color:#fff}
.auth-step .as-label{font-size:12px;color:var(--gray-500);font-weight:700}
.auth-step.active .as-label{color:var(--green-900);font-weight:900}
.auth-step-bar{width:30px;height:2px;background:#e5ebe7}
.auth-step-bar.done{background:var(--green-500)}

/* ============================================================
   [v21] 마이페이지
   ============================================================ */
.mypage-grid{display:grid;grid-template-columns:280px 1fr;gap:24px;margin-top:8px}
.mp-profile{
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 100%);
  border-radius:18px;padding:28px 22px;color:#fff;
  position:relative;overflow:hidden;
}
.mp-profile::before{
  content:"";position:absolute;top:-30px;right:-30px;width:120px;height:120px;
  background:radial-gradient(circle,rgba(255,255,255,.10) 0%,transparent 70%);
}
.mp-profile-avatar{
  width:72px;height:72px;border-radius:50%;
  background:rgba(255,255,255,.15);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  font-size:30px;font-weight:900;color:#fff;margin:0 auto 14px;
  border:3px solid rgba(255,255,255,.30);
}
.mp-profile-name{
  text-align:center;font-size:20px;font-weight:900;margin-bottom:4px;
}
.mp-profile-email{
  text-align:center;font-size:12px;color:rgba(255,255,255,.7);
  font-family:'SF Mono',monospace;margin-bottom:14px;
}
.mp-profile-grade{
  display:flex;justify-content:center;margin-bottom:18px;
}
.mp-grade-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:20px;
  font-size:12.5px;font-weight:900;letter-spacing:.3px;
}
.mp-grade-badge.g-sapling{background:#d4edda;color:#155724}
.mp-grade-badge.g-vip{background:linear-gradient(135deg,#FFE066,#f5a623);color:#5a3d00}
.mp-grade-badge.g-manager{background:linear-gradient(135deg,#bfdbfe,#3b82f6);color:#fff}
.mp-grade-badge.g-admin{background:linear-gradient(135deg,#dc2626,#7f1d1d);color:#fff}

.mp-quick-stats{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  background:rgba(255,255,255,.10);border-radius:10px;padding:12px;
  position:relative;z-index:1;
}
.mp-qs-item{text-align:center}
.mp-qs-num{font-size:18px;font-weight:900;color:#FFE066}
.mp-qs-label{font-size:10.5px;color:rgba(255,255,255,.8);margin-top:2px;font-weight:700}

.mp-content{display:flex;flex-direction:column;gap:18px}
.mp-card{
  background:#fff;border-radius:14px;padding:24px;
  border:1px solid #e5ebe7;
}
.mp-card-head{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px;
}
.mp-card-head h3{font-size:16px;color:var(--green-900);font-weight:900;margin:0}
.mp-card-head .mp-edit-btn{
  background:#f0f7f2;border:0;padding:7px 12px;border-radius:6px;
  font-size:12px;font-weight:800;color:var(--green-700);cursor:pointer;
}
.mp-card-head .mp-edit-btn:hover{background:var(--green-100)}
.mp-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mp-info-item .mi-label{
  font-size:11px;color:var(--gray-500);font-weight:800;letter-spacing:.3px;
  text-transform:uppercase;margin-bottom:4px;
}
.mp-info-item .mi-value{
  font-size:14px;color:var(--green-900);font-weight:700;line-height:1.5;
}

/* 라이선스 인증 */
.mp-license-box{
  background:linear-gradient(135deg,#FFE066 0%,#f5a623 100%);
  border-radius:16px;padding:28px 36px;color:#073b2a;
}
.mp-license-box.verified{background:linear-gradient(135deg,#d4edda 0%,#bcebcc 100%);color:#1B4332}
.mp-license-box h3{
  font-size:20px;font-weight:900;margin:0 0 14px;color:#073b2a;
}
.mp-license-box p{font-size:17px;line-height:1.75;margin:0 0 24px;font-weight:800}
.mp-license-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.mp-license-form input{
  flex:1;min-width:280px;padding:15px 20px;border:1.5px solid rgba(0,0,0,.18);
  border-radius:10px;font-size:16px;font-family:'SF Mono',monospace;
  background:rgba(255,255,255,.78);font-weight:700;
}
.mp-license-form button{
  min-width:136px;padding:15px 22px;border-radius:10px;border:0;cursor:pointer;
  background:#06452f;color:#fff;font-weight:900;font-size:15px;font-family:inherit;
}
.mp-license-form button:hover{background:#0f2920}
.mp-license-verified{
  display:flex;align-items:center;gap:10px;
}
.mp-license-verified .mp-lv-key{
  flex:1;font-family:'SF Mono',monospace;font-size:12.5px;font-weight:700;
  background:rgba(255,255,255,.5);padding:8px 12px;border-radius:8px;
}

/* [v21] 초대 링크 시스템 (매니저·관리자 전용) */
.mp-invite-box{
  background:linear-gradient(135deg,#1E3A8A 0%,#3b82f6 100%);
  border-radius:14px;padding:22px 24px;color:#fff;
  position:relative;overflow:hidden;
}
.mp-invite-box,
.mp-invite-box h3,
.mp-invite-box p,
.mp-invite-box .mp-invite-history-head,
.mp-invite-box .mp-invite-empty,
.mp-invite-box .mil-code,
.mp-invite-box .mil-date{
  color:#fff !important;
}
.mp-invite-box::before{
  content:"🎟️";position:absolute;top:-20px;right:20px;
  font-size:130px;opacity:.10;line-height:1;pointer-events:none;
}
.mp-invite-box .mib-eyebrow{
  display:inline-block;background:rgba(255,255,255,.20);color:#fff;
  padding:3px 9px;border-radius:5px;font-size:10.5px;font-weight:900;
  letter-spacing:.5px;margin-bottom:10px;
}
.mp-invite-box h3{font-size:17px;font-weight:900;margin:0 0 6px;color:#fff}
.mp-invite-box p{font-size:13px;color:rgba(255,255,255,.85);line-height:1.6;margin:0 0 14px}

.mp-invite-form{
  display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;
}
.mp-invite-form input{
  flex:1;min-width:180px;padding:11px 14px;border:0;
  border-radius:8px;font-size:14px;font-family:'SF Mono',monospace;
  background:rgba(255,255,255,.95);color:#1E3A8A;font-weight:700;
}
.mp-invite-form button{
  padding:11px 18px;border-radius:8px;border:0;cursor:pointer;
  background:#FFE066;color:#1E3A8A;font-weight:800;font-size:13px;font-family:inherit;
  transition:all .15s;
}
.mp-invite-form button:hover{background:#FFD93D;transform:translateY(-1px)}

.mp-invite-history{
  margin-top:14px;background:rgba(0,0,0,.18);border-radius:10px;padding:12px 14px;
}
.mp-invite-history-head{
  font-size:11px;color:rgba(255,255,255,.7);font-weight:800;letter-spacing:.5px;
  margin-bottom:8px;text-transform:uppercase;
}
.mp-invite-list{
  list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;
}
.mp-invite-list li{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:8px 12px;background:rgba(255,255,255,.10);border-radius:6px;
  font-size:12px;color:#fff;
}
.mp-invite-list .mil-code{font-family:'SF Mono',monospace;font-weight:700}
.mp-invite-list .mil-date{font-size:10.5px;color:rgba(255,255,255,.7)}
.mp-invite-list .mil-copy-btn{
  background:rgba(255,255,255,.20);border:0;color:#fff;
  padding:3px 8px;border-radius:5px;cursor:pointer;
  font-size:10.5px;font-weight:700;font-family:inherit;
}
.mp-invite-list .mil-copy-btn:hover{background:rgba(255,255,255,.35)}
.mp-invite-empty{
  font-size:12px;color:rgba(255,255,255,.6);text-align:center;padding:8px;font-style:italic;
}

/* 초대 받은 사용자 표시 (회원가입 페이지 상단) */
.auth-invite-banner{
  background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);
  border:1.5px solid #3b82f6;border-radius:12px;
  padding:14px 18px;margin-bottom:20px;color:#1e3a8a;
  display:none;
}
.auth-invite-banner.active{display:block;animation:cfFade .25s ease}
.auth-invite-banner strong{color:#1e3a8a}
.auth-invite-banner .ai-code{
  font-family:'SF Mono',monospace;font-weight:800;
  background:rgba(255,255,255,.7);padding:2px 8px;border-radius:5px;font-size:12px;
}

@media (max-width:900px){
  .mypage-grid{grid-template-columns:1fr;gap:14px}
  .mp-info-grid{grid-template-columns:1fr}
  .gnb-auth{display:none}
  .gnb-user{display:none}
}
.subpage-content{min-width:0}
.subpage{display:none !important}
.subpage.active{display:block !important;animation:fadeUp .3s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.subpage h1{
  font-size:40px;color:var(--green-900);margin-bottom:14px;letter-spacing:-1px;line-height:1.2;
}
.sub-eyebrow{
  display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:1.5px;
  color:var(--green-700);text-transform:uppercase;
  background:var(--green-100);padding:5px 12px;border-radius:6px;margin-bottom:14px;
}
.sub-lead{
  font-size:17.5px;color:var(--gray-700);
  padding-bottom:22px;margin-bottom:28px;border-bottom:1px solid #eee;
  line-height:1.7;
}
.subpage h2{
  font-size:23px;color:var(--green-900);margin:34px 0 14px;
  padding-left:12px;border-left:4px solid var(--green-500);font-weight:800;
}
.subpage h3{font-size:17px;color:var(--green-900);margin-bottom:8px}
.subpage p{font-size:15px;color:var(--gray-700);margin-bottom:14px;line-height:1.85}
.dot-list{margin:10px 0 22px 4px;list-style:none;padding:0}
.dot-list li{font-size:15px;color:var(--gray-700);padding-left:22px;position:relative;margin-bottom:8px;line-height:1.7}
.dot-list li::before{content:"●";position:absolute;left:0;color:var(--green-500);font-size:10px;top:8px}
.info-box{background:var(--green-100);border-left:4px solid var(--green-500);padding:18px 22px;border-radius:8px;margin:20px 0}
.info-box strong{color:var(--green-900)}
.cta-row{margin-top:30px;display:flex;gap:12px;flex-wrap:wrap}
.cta-row a{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:10px;font-weight:700;font-size:14.5px;transition:all .2s ease}
.cta-row .cta-primary{background:var(--green-700);color:#fff}
.cta-row .cta-primary:hover{background:var(--green-900)}
.cta-row .cta-outline{border:1.5px solid var(--green-700);color:var(--green-700);background:#fff}
.cta-row .cta-outline:hover{background:var(--green-100)}
.sub-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:20px 0}
.scard{padding:22px 20px;background:#fafafa;border:1px solid #eee;border-radius:12px;transition:all .2s ease}
.scard:hover{border-color:var(--green-500);background:#fff;transform:translateY(-3px)}
.scard p{font-size:13.5px;color:var(--gray-500);margin:0;line-height:1.6}
.price-table{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin:24px 0}
.price-card{background:#fff;border:1px solid #eee;border-radius:14px;padding:30px 24px;text-align:center;position:relative}
.price-card.featured{border-color:var(--green-500);box-shadow:0 8px 28px rgba(61,170,110,.18)}
.price-card.featured::before{content:"인기";position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--green-500);color:#fff;font-size:11px;font-weight:800;padding:4px 12px;border-radius:999px}
.price-card h3{font-size:18px;color:var(--green-900);margin-bottom:8px}
.price-card .price{font-size:28px;font-weight:800;color:var(--green-700);margin:14px 0 4px}
.price-card .period{font-size:13px;color:var(--gray-500);margin-bottom:18px}
.price-card ul{text-align:left;margin-top:14px;list-style:none;padding:0}
.price-card ul li{font-size:13.5px;padding:6px 0;color:var(--gray-700);padding-left:22px;position:relative}
.price-card ul li::before{content:"✓";position:absolute;left:0;color:var(--green-500);font-weight:800}
.price-card .buy-btn{display:block;margin-top:20px;padding:12px;border-radius:8px;background:var(--green-700);color:#fff;font-weight:700;font-size:14px}
.step-list{counter-reset:step;list-style:none;padding:0;margin:20px 0}
.step-list li{counter-increment:step;padding:14px 18px 14px 56px;background:#fafafa;border:1px solid #eee;border-radius:10px;margin-bottom:10px;position:relative}
.step-list li::before{content:counter(step);position:absolute;left:14px;top:14px;width:32px;height:32px;border-radius:50%;background:var(--green-500);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.step-list li strong{display:block;color:var(--green-900);font-size:15px;margin-bottom:3px}
.step-list li span{font-size:13.5px;color:var(--gray-500)}
.simple-list{list-style:none;padding:0}
.simple-list li{padding:14px 0;border-bottom:1px dashed #eee;display:flex;justify-content:space-between;align-items:center}
.simple-list li:last-child{border-bottom:0}
.simple-list li .name{font-weight:600;color:var(--gray-700)}
.simple-list li .meta{font-size:13px;color:var(--gray-500)}
.faq-item{background:#fafafa;border:1px solid #eee;border-radius:10px;padding:18px 22px;margin-bottom:10px}
.faq-item .q{font-weight:700;color:var(--green-900);font-size:15px;margin-bottom:8px}
.faq-item .q::before{content:"Q. ";color:var(--green-500)}
.faq-item .a{font-size:14px;color:var(--gray-700);line-height:1.7}
.faq-item .a::before{content:"A. ";color:var(--green-700);font-weight:700}

/* 브로셔 이미지 영역 */
.brochure{
  margin:30px 0 36px;
  text-align:center;
  background:linear-gradient(135deg,#f9faf7 0%,#f3efe6 100%);
  padding:24px;
  border-radius:14px;
  border:1px solid #e8e5dc;
}
.brochure img{
  max-width:100%;
  height:auto;
  border-radius:8px;
  box-shadow:0 10px 40px rgba(0,0,0,.15);
  display:block;
  margin:0 auto;
  max-height:1400px;
  object-fit:contain;
}
.brochure figcaption{
  margin-top:16px;
  font-size:13px;
  color:#7a7a7a;
  font-style:italic;
}

/* 대표 메시지 박스 */
.ceo-message{
  margin:20px 0;
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 100%);
  color:#fff;
  padding:36px 36px 32px;
  border-radius:18px;
  position:relative;
  overflow:hidden;
}
.ceo-message::before{
  content:"";
  position:absolute;
  top:-40px;right:-40px;
  width:200px;height:200px;
  border-radius:50%;
  background:rgba(149,213,178,.15);
}
.ceo-message::after{
  content:"";
  position:absolute;
  bottom:-30px;left:-30px;
  width:120px;height:120px;
  border-radius:50%;
  background:rgba(149,213,178,.1);
}
.ceo-message .ceo-title{
  position:relative;
  font-size:22px;font-weight:800;
  color:#95D5B2;
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,.15);
  letter-spacing:-.3px;
}
.ceo-message p{
  position:relative;
  color:#e0ebe3;
  font-size:15px;
  line-height:1.85;
  margin-bottom:14px;
}
.ceo-message strong{color:#95D5B2}
.ceo-sign{
  position:relative;
  margin-top:20px;padding-top:18px;
  border-top:1px solid rgba(255,255,255,.15);
  text-align:right;
}
.ceo-sign strong{
  color:#fff;font-size:15.5px;font-weight:700;
}
@media (max-width:900px){
  .subpage-layout{grid-template-columns:1fr;gap:24px;padding:30px 20px 60px}
  .subpage-sidebar{position:static;border-bottom:1px solid #eee;padding-bottom:20px}
  .subpage h1{font-size:30px}
  .subpage-header{padding:12px 18px}
  .subpage-close,.subpage-back{padding:8px 12px;font-size:12.5px}
}

/* ============================================================
   [추가] 업데이트 안내 페이지 전용 스타일 (scope: #sub-update-info)
   ============================================================ */#sub-update-info .page-hero,
#sub-license .page-hero,
#sub-purchase-steps .page-hero { background: linear-gradient(135deg, #2d5a3d 0%, #4a7c59 100%); color: white; padding: 60px 20px 50px; text-align: center; position: relative; overflow: hidden; }#sub-update-info .page-hero::before,
#sub-license .page-hero::before,
#sub-purchase-steps .page-hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: radial-gradient(circle at 10% 30%, rgba(255,255,255,0.08) 0%, transparent 30%), radial-gradient(circle at 90% 70%, rgba(255,255,255,0.05) 0%, transparent 40%); }#sub-update-info .page-hero h1,
#sub-license .page-hero h1,
#sub-purchase-steps .page-hero h1 { font-size: 36px; font-weight: 700; margin-bottom: 10px; position: relative; letter-spacing: -0.5px; }#sub-update-info .page-hero p,
#sub-license .page-hero p,
#sub-purchase-steps .page-hero p { font-size: 15px; opacity: 0.92; position: relative; }#sub-update-info .breadcrumb,
#sub-license .breadcrumb,
#sub-purchase-steps .breadcrumb { margin-top: 16px; font-size: 13px; opacity: 0.85; position: relative; }#sub-update-info .breadcrumb span,
#sub-license .breadcrumb span,
#sub-purchase-steps .breadcrumb span { margin: 0 6px; }#sub-update-info .container,
#sub-license .container,
#sub-purchase-steps .container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }#sub-update-info .sub-nav,
#sub-license .sub-nav,
#sub-purchase-steps .sub-nav { display: flex; border-bottom: 2px solid #e5ebe7; overflow-x: auto; }#sub-update-info .sub-nav a,
#sub-license .sub-nav a,
#sub-purchase-steps .sub-nav a { flex: 1; min-width: 140px; padding: 18px 16px; text-align: center; color: #6b7d6f; text-decoration: none; font-size: 15px; font-weight: 600; border-bottom: 3px solid transparent; margin-bottom: -2px; transition: all 0.2s; white-space: nowrap; }#sub-update-info .sub-nav a:hover,
#sub-license .sub-nav a:hover,
#sub-purchase-steps .sub-nav a:hover { color: #2d5a3d; background: #fafcfa; }#sub-update-info .sub-nav a.active,
#sub-license .sub-nav a.active,
#sub-purchase-steps .sub-nav a.active { color: #2d5a3d; border-bottom-color: #2d5a3d; background: #f0f7f2; }#sub-update-info .section,
#sub-license .section,
#sub-purchase-steps .section { padding: 50px 0 40px; }#sub-update-info .section-title,
#sub-license .section-title,
#sub-purchase-steps .section-title { font-size: 26px; font-weight: 700; color: #1f2d1f; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }#sub-update-info .section-title::before,
#sub-license .section-title::before,
#sub-purchase-steps .section-title::before { content: ''; display: inline-block; width: 5px; height: 24px; background: #2d5a3d; border-radius: 2px; }#sub-update-info .section-subtitle,
#sub-license .section-subtitle,
#sub-purchase-steps .section-subtitle { color: #6b7d6f; font-size: 14px; margin-bottom: 28px; margin-left: 15px; }#sub-update-info .desc-box,
#sub-license .desc-box,
#sub-purchase-steps .desc-box { background: #f5f7f4; border-left: 4px solid #4a7c59; border-radius: 8px; padding: 20px 24px; margin-bottom: 36px; color: #1f2d1f; font-size: 14px; line-height: 1.8; }#sub-update-info .desc-box strong,
#sub-license .desc-box strong,
#sub-purchase-steps .desc-box strong { color: #2d5a3d; font-weight: 700; }#sub-update-info /* POLICY TIMELINE */
  .timeline-wrap,
#sub-license /* POLICY TIMELINE */
  .timeline-wrap,
#sub-purchase-steps /* POLICY TIMELINE */
  .timeline-wrap {
    background: linear-gradient(135deg, #f0f7f2 0%, #fafcfa 100%);
    border: 1px solid #d4dcd6;
    border-radius: 14px;
    padding: 36px 32px;
    margin-bottom: 40px;
  }#sub-update-info .timeline-wrap h3,
#sub-license .timeline-wrap h3,
#sub-purchase-steps .timeline-wrap h3 {
    text-align: center;
    color: #2d5a3d;
    font-size: 18px;
    margin-bottom: 28px;
  }#sub-update-info .timeline,
#sub-license .timeline,
#sub-purchase-steps .timeline {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    position: relative;
  }#sub-update-info .timeline-item,
#sub-license .timeline-item,
#sub-purchase-steps .timeline-item {
    background: white;
    border-radius: 12px;
    padding: 24px 18px;
    text-align: center;
    border: 2px solid #e5ebe7;
    position: relative;
  }#sub-update-info .timeline-item.free,
#sub-license .timeline-item.free,
#sub-purchase-steps .timeline-item.free {
    border-color: #2d5a3d;
    background: linear-gradient(180deg, #f0f7f2 0%, white 100%);
  }#sub-update-info .timeline-item.paid,
#sub-license .timeline-item.paid,
#sub-purchase-steps .timeline-item.paid {
    border-color: #f39c12;
    background: linear-gradient(180deg, #fff8e1 0%, white 100%);
  }#sub-update-info .timeline-item.security,
#sub-license .timeline-item.security,
#sub-purchase-steps .timeline-item.security {
    border-color: #e74c3c;
    background: linear-gradient(180deg, #fce4ec 0%, white 100%);
  }#sub-update-info .tl-period,
#sub-license .tl-period,
#sub-purchase-steps .tl-period {
    background: #2d5a3d;
    color: white;
    display: inline-block;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 10px;
  }#sub-update-info .timeline-item.paid .tl-period,
#sub-license .timeline-item.paid .tl-period,
#sub-purchase-steps .timeline-item.paid .tl-period { background: #f39c12; }#sub-update-info .timeline-item.security .tl-period,
#sub-license .timeline-item.security .tl-period,
#sub-purchase-steps .timeline-item.security .tl-period { background: #e74c3c; }#sub-update-info .tl-icon,
#sub-license .tl-icon,
#sub-purchase-steps .tl-icon { font-size: 36px; margin: 10px 0; }#sub-update-info .tl-title,
#sub-license .tl-title,
#sub-purchase-steps .tl-title { font-size: 16px; font-weight: 700; color: #1f2d1f; margin-bottom: 8px; }#sub-update-info .tl-desc,
#sub-license .tl-desc,
#sub-purchase-steps .tl-desc { font-size: 13px; color: #6b7d6f; line-height: 1.6; }#sub-update-info .tl-cost,
#sub-license .tl-cost,
#sub-purchase-steps .tl-cost {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed #d4dcd6;
    font-size: 13px;
    font-weight: 600;
  }#sub-update-info .tl-cost.green,
#sub-license .tl-cost.green,
#sub-purchase-steps .tl-cost.green { color: #2d5a3d; }#sub-update-info .tl-cost.orange,
#sub-license .tl-cost.orange,
#sub-purchase-steps .tl-cost.orange { color: #d68910; }#sub-update-info .tl-cost.red,
#sub-license .tl-cost.red,
#sub-purchase-steps .tl-cost.red { color: #c0392b; }#sub-update-info /* POLICY TABLE */
  .table-container,
#sub-license /* POLICY TABLE */
  .table-container,
#sub-purchase-steps /* POLICY TABLE */
  .table-container { overflow-x: auto; border-radius: 10px; border: 1px solid #e5ebe7; margin-bottom: 30px; }#sub-update-info table,
#sub-license table,
#sub-purchase-steps table { width: 100%; border-collapse: collapse; background: white; font-size: 13.5px; }#sub-update-info table th,
#sub-license table th,
#sub-purchase-steps table th { background: #2d5a3d; color: white; padding: 14px 16px; text-align: center; font-weight: 600; font-size: 14px; }#sub-update-info table th:first-child,
#sub-license table th:first-child,
#sub-purchase-steps table th:first-child { background: #1f4128; width: 200px; }#sub-update-info table td,
#sub-license table td,
#sub-purchase-steps table td { padding: 14px 16px; border-bottom: 1px solid #e5ebe7; vertical-align: middle; }#sub-update-info table tbody tr:last-child td,
#sub-license table tbody tr:last-child td,
#sub-purchase-steps table tbody tr:last-child td { border-bottom: none; }#sub-update-info table tbody tr:hover,
#sub-license table tbody tr:hover,
#sub-purchase-steps table tbody tr:hover { background: #fafcfa; }#sub-update-info .td-category,
#sub-license .td-category,
#sub-purchase-steps .td-category { background: #f5f7f4; font-weight: 700; color: #2d5a3d; text-align: center; }#sub-update-info .td-center,
#sub-license .td-center,
#sub-purchase-steps .td-center { text-align: center; }#sub-update-info .badge-free,
#sub-license .badge-free,
#sub-purchase-steps .badge-free { display: inline-block; background: #d4edda; color: #155724; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; }#sub-update-info .badge-paid,
#sub-license .badge-paid,
#sub-purchase-steps .badge-paid { display: inline-block; background: #fff3cd; color: #856404; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; }#sub-update-info .badge-perm,
#sub-license .badge-perm,
#sub-purchase-steps .badge-perm { display: inline-block; background: #f8d7da; color: #721c24; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; }#sub-update-info /* PRICING CARDS (legacy - retained for compatibility) */
  .pricing-grid,
#sub-license /* PRICING CARDS (legacy - retained for compatibility) */
  .pricing-grid,
#sub-purchase-steps /* PRICING CARDS (legacy - retained for compatibility) */
  .pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 40px;
  }#sub-update-info .pricing-card,
#sub-license .pricing-card,
#sub-purchase-steps .pricing-card {
    background: white;
    border: 1.5px solid #e5ebe7;
    border-radius: 12px;
    padding: 24px 20px;
    text-align: center;
    transition: all 0.2s;
  }#sub-update-info /* SINGLE PRICING + OFFICE DISCOUNT (new) */
  .single-pricing-wrap,
#sub-license /* SINGLE PRICING + OFFICE DISCOUNT (new) */
  .single-pricing-wrap,
#sub-purchase-steps /* SINGLE PRICING + OFFICE DISCOUNT (new) */
  .single-pricing-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
  }#sub-update-info .single-pricing-card,
#sub-license .single-pricing-card,
#sub-purchase-steps .single-pricing-card {
    background: linear-gradient(180deg, #f0f7f2 0%, white 100%);
    border: 2px solid #2d5a3d;
    border-radius: 14px;
    padding: 32px 28px;
    text-align: center;
    position: relative;
  }#sub-update-info .single-tag,
#sub-license .single-tag,
#sub-purchase-steps .single-tag {
    display: inline-block;
    background: #d33;
    color: white;
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 16px;
    letter-spacing: 0.5px;
  }#sub-update-info .single-title,
#sub-license .single-title,
#sub-purchase-steps .single-title {
    font-size: 22px;
    font-weight: 700;
    color: #2d5a3d;
    margin-bottom: 6px;
  }#sub-update-info .single-subtitle,
#sub-license .single-subtitle,
#sub-purchase-steps .single-subtitle {
    font-size: 12px;
    color: #6b7d6f;
    margin-bottom: 20px;
  }#sub-update-info .single-amount,
#sub-license .single-amount,
#sub-purchase-steps .single-amount {
    font-size: 44px;
    font-weight: 800;
    color: #1f2d1f;
    margin-bottom: 4px;
    line-height: 1;
  }#sub-update-info .single-amount .currency,
#sub-license .single-amount .currency,
#sub-purchase-steps .single-amount .currency {
    font-size: 22px;
    font-weight: 600;
    margin-right: 4px;
  }#sub-update-info .single-unit,
#sub-license .single-unit,
#sub-purchase-steps .single-unit {
    font-size: 13px;
    color: #6b7d6f;
    margin-bottom: 8px;
  }#sub-update-info .single-vat,
#sub-license .single-vat,
#sub-purchase-steps .single-vat {
    display: inline-block;
    background: #fff3cd;
    color: #856404;
    padding: 3px 10px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 20px;
  }#sub-update-info .single-features,
#sub-license .single-features,
#sub-purchase-steps .single-features {
    list-style: none;
    padding: 0;
    text-align: left;
    border-top: 1px dashed #d4dcd6;
    padding-top: 16px;
    margin-top: 16px;
  }#sub-update-info .single-features li,
#sub-license .single-features li,
#sub-purchase-steps .single-features li {
    padding: 7px 0 7px 24px;
    position: relative;
    font-size: 13px;
    color: #1f2d1f;
    line-height: 1.6;
  }#sub-update-info .single-features li::before,
#sub-license .single-features li::before,
#sub-purchase-steps .single-features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 7px;
    color: #2d5a3d;
    font-weight: 700;
  }#sub-update-info .single-features strong,
#sub-license .single-features strong,
#sub-purchase-steps .single-features strong { color: #2d5a3d; }#sub-update-info /* Office Discount Card */
  .office-discount-card,
#sub-license /* Office Discount Card */
  .office-discount-card,
#sub-purchase-steps /* Office Discount Card */
  .office-discount-card {
    background: linear-gradient(180deg, #fff8e1 0%, white 100%);
    border: 2px solid #f39c12;
    border-radius: 14px;
    padding: 28px 24px;
    position: relative;
  }#sub-update-info .discount-icon,
#sub-license .discount-icon,
#sub-purchase-steps .discount-icon {
    font-size: 40px;
    text-align: center;
    margin-bottom: 8px;
  }#sub-update-info .discount-title,
#sub-license .discount-title,
#sub-purchase-steps .discount-title {
    font-size: 18px;
    font-weight: 700;
    color: #d68910;
    text-align: center;
    margin-bottom: 12px;
  }#sub-update-info .discount-desc,
#sub-license .discount-desc,
#sub-purchase-steps .discount-desc {
    font-size: 13.5px;
    color: #1f2d1f;
    text-align: center;
    margin-bottom: 18px;
    line-height: 1.7;
  }#sub-update-info .discount-example,
#sub-license .discount-example,
#sub-purchase-steps .discount-example {
    background: white;
    border: 1px dashed #f39c12;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 18px;
  }#sub-update-info .ex-label,
#sub-license .ex-label,
#sub-purchase-steps .ex-label {
    text-align: center;
    color: #d68910;
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 10px;
  }#sub-update-info .ex-content,
#sub-license .ex-content,
#sub-purchase-steps .ex-content {
    text-align: center;
    font-size: 14px;
  }#sub-update-info .ex-content > div,
#sub-license .ex-content > div,
#sub-purchase-steps .ex-content > div {
    padding: 4px 0;
  }#sub-update-info .ex-old,
#sub-license .ex-old,
#sub-purchase-steps .ex-old {
    text-decoration: line-through;
    color: #6b7d6f;
    font-weight: 600;
  }#sub-update-info .ex-arrow,
#sub-license .ex-arrow,
#sub-purchase-steps .ex-arrow {
    color: #d33;
    font-size: 14px;
    font-weight: 700;
  }#sub-update-info .ex-new,
#sub-license .ex-new,
#sub-purchase-steps .ex-new {
    color: #d33;
    font-weight: 800;
    font-size: 18px;
  }#sub-update-info .ex-vat,
#sub-license .ex-vat,
#sub-purchase-steps .ex-vat {
    display: inline-block;
    background: #fff3cd;
    color: #856404;
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 10px;
    margin-left: 4px;
    font-weight: 600;
  }#sub-update-info .discount-rules,
#sub-license .discount-rules,
#sub-purchase-steps .discount-rules {
    background: #fafcfa;
    border-radius: 10px;
    padding: 14px 18px;
  }#sub-update-info .rules-title,
#sub-license .rules-title,
#sub-purchase-steps .rules-title {
    color: #2d5a3d;
    font-weight: 700;
    font-size: 13px;
    margin-bottom: 10px;
  }#sub-update-info .discount-rules ul,
#sub-license .discount-rules ul,
#sub-purchase-steps .discount-rules ul {
    list-style: none;
    padding: 0;
  }#sub-update-info .discount-rules ul li,
#sub-license .discount-rules ul li,
#sub-purchase-steps .discount-rules ul li {
    padding: 5px 0 5px 18px;
    position: relative;
    font-size: 12.5px;
    color: #1f2d1f;
    line-height: 1.6;
  }#sub-update-info .discount-rules ul li::before,
#sub-license .discount-rules ul li::before,
#sub-purchase-steps .discount-rules ul li::before {
    content: '•';
    position: absolute;
    left: 4px;
    color: #2d5a3d;
    font-weight: 700;
  }#sub-update-info .pricing-card:hover,
#sub-license .pricing-card:hover,
#sub-purchase-steps .pricing-card:hover { border-color: #2d5a3d; transform: translateY(-3px); box-shadow: 0 8px 20px rgba(45,90,61,0.1); }#sub-update-info .pricing-card.recommended,
#sub-license .pricing-card.recommended,
#sub-purchase-steps .pricing-card.recommended { border-color: #2d5a3d; background: linear-gradient(180deg, #f0f7f2 0%, white 100%); position: relative; }#sub-update-info .pricing-card.recommended::before,
#sub-license .pricing-card.recommended::before,
#sub-purchase-steps .pricing-card.recommended::before {
    content: '★ 추천';
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: #d33;
    color: white;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
  }#sub-update-info .pricing-card .duration,
#sub-license .pricing-card .duration,
#sub-purchase-steps .pricing-card .duration {
    color: #2d5a3d;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
  }#sub-update-info .pricing-card .amount,
#sub-license .pricing-card .amount,
#sub-purchase-steps .pricing-card .amount {
    font-size: 28px;
    font-weight: 800;
    color: #1f2d1f;
    margin-bottom: 4px;
  }#sub-update-info .pricing-card .amount .currency,
#sub-license .pricing-card .amount .currency,
#sub-purchase-steps .pricing-card .amount .currency { font-size: 14px; font-weight: 600; }#sub-update-info .pricing-card .vat-tag,
#sub-license .pricing-card .vat-tag,
#sub-purchase-steps .pricing-card .vat-tag {
    display: inline-block;
    background: #fff3cd;
    color: #856404;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    margin-bottom: 14px;
  }#sub-update-info .pricing-card ul,
#sub-license .pricing-card ul,
#sub-purchase-steps .pricing-card ul {
    list-style: none;
    padding: 0;
    text-align: left;
    border-top: 1px dashed #d4dcd6;
    padding-top: 14px;
  }#sub-update-info .pricing-card ul li,
#sub-license .pricing-card ul li,
#sub-purchase-steps .pricing-card ul li {
    padding: 6px 0 6px 22px;
    position: relative;
    font-size: 12.5px;
    color: #1f2d1f;
  }#sub-update-info .pricing-card ul li::before,
#sub-license .pricing-card ul li::before,
#sub-purchase-steps .pricing-card ul li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: #2d5a3d;
    font-weight: 700;
  }#sub-update-info /* HOW TO UPDATE */
  .step-grid,
#sub-license /* HOW TO UPDATE */
  .step-grid,
#sub-purchase-steps /* HOW TO UPDATE */
  .step-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 30px;
  }#sub-update-info .step-card,
#sub-license .step-card,
#sub-purchase-steps .step-card {
    background: white;
    border: 1px solid #e5ebe7;
    border-radius: 10px;
    padding: 20px 16px;
    text-align: center;
    position: relative;
  }#sub-update-info .step-card .step-no,
#sub-license .step-card .step-no,
#sub-purchase-steps .step-card .step-no {
    background: #2d5a3d;
    color: white;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 700;
    margin: 0 auto 12px;
  }#sub-update-info .step-card h4,
#sub-license .step-card h4,
#sub-purchase-steps .step-card h4 { color: #2d5a3d; font-size: 14px; margin-bottom: 6px; }#sub-update-info .step-card p,
#sub-license .step-card p,
#sub-purchase-steps .step-card p { color: #6b7d6f; font-size: 12px; line-height: 1.6; }#sub-update-info /* FAQ */
  .faq-list,
#sub-license /* FAQ */
  .faq-list,
#sub-purchase-steps /* FAQ */
  .faq-list { margin-bottom: 30px; }#sub-update-info .faq-item,
#sub-license .faq-item,
#sub-purchase-steps .faq-item {
    background: white;
    border: 1px solid #e5ebe7;
    border-radius: 8px;
    margin-bottom: 8px;
    overflow: hidden;
  }#sub-update-info .faq-question,
#sub-license .faq-question,
#sub-purchase-steps .faq-question {
    padding: 16px 20px;
    cursor: pointer;
    font-weight: 600;
    color: #1f2d1f;
    display: flex;
    align-items: center;
    gap: 10px;
    user-select: none;
    transition: background 0.2s;
  }#sub-update-info .faq-question:hover,
#sub-license .faq-question:hover,
#sub-purchase-steps .faq-question:hover { background: #f5f7f4; }#sub-update-info .faq-question .q-mark,
#sub-license .faq-question .q-mark,
#sub-purchase-steps .faq-question .q-mark {
    background: #2d5a3d;
    color: white;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
  }#sub-update-info .faq-question .toggle,
#sub-license .faq-question .toggle,
#sub-purchase-steps .faq-question .toggle {
    margin-left: auto;
    color: #6b7d6f;
    transition: transform 0.2s;
  }#sub-update-info .faq-item.open .faq-question .toggle,
#sub-license .faq-item.open .faq-question .toggle,
#sub-purchase-steps .faq-item.open .faq-question .toggle { transform: rotate(180deg); }#sub-update-info .faq-answer,
#sub-license .faq-answer,
#sub-purchase-steps .faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    padding: 0 20px;
    background: #fafcfa;
  }#sub-update-info .faq-item.open .faq-answer,
#sub-license .faq-item.open .faq-answer,
#sub-purchase-steps .faq-item.open .faq-answer {
    max-height: 500px;
    padding: 16px 20px 18px 54px;
  }#sub-update-info .faq-answer p,
#sub-license .faq-answer p,
#sub-purchase-steps .faq-answer p {
    font-size: 13.5px;
    color: #1f2d1f;
    line-height: 1.7;
  }#sub-update-info /* Notice & CTA */
  .notice-box,
#sub-license /* Notice & CTA */
  .notice-box,
#sub-purchase-steps /* Notice & CTA */
  .notice-box { background: #fff8e1; border: 1px solid #f5d76e; border-radius: 8px; padding: 16px 20px; margin-bottom: 30px; font-size: 13px; color: #856404; line-height: 1.7; }#sub-update-info .notice-box strong,
#sub-license .notice-box strong,
#sub-purchase-steps .notice-box strong { color: #6b4d00; }#sub-update-info .cta-section,
#sub-license .cta-section,
#sub-purchase-steps .cta-section { background: linear-gradient(135deg, #f0f7f2 0%, #fafcfa 100%); border: 1px solid #d4dcd6; border-radius: 14px; padding: 32px; text-align: center; margin-bottom: 30px; }#sub-update-info .cta-section h3,
#sub-license .cta-section h3,
#sub-purchase-steps .cta-section h3 { font-size: 20px; color: #2d5a3d; margin-bottom: 8px; }#sub-update-info .cta-section p,
#sub-license .cta-section p,
#sub-purchase-steps .cta-section p { color: #6b7d6f; font-size: 14px; margin-bottom: 20px; }#sub-update-info .cta-buttons,
#sub-license .cta-buttons,
#sub-purchase-steps .cta-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }#sub-update-info .btn,
#sub-license .btn,
#sub-purchase-steps .btn { padding: 13px 28px; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; border: none; font-family: inherit; transition: all 0.2s; }#sub-update-info .btn-primary,
#sub-license .btn-primary,
#sub-purchase-steps .btn-primary { background: #2d5a3d; color: white; }#sub-update-info .btn-primary:hover,
#sub-license .btn-primary:hover,
#sub-purchase-steps .btn-primary:hover { background: #1f4128; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(45,90,61,0.3); }#sub-update-info .btn-outline,
#sub-license .btn-outline,
#sub-purchase-steps .btn-outline { background: white; color: #2d5a3d; border: 2px solid #2d5a3d; }#sub-update-info .btn-outline:hover,
#sub-license .btn-outline:hover,
#sub-purchase-steps .btn-outline:hover { background: #f0f7f2; }#sub-update-info .footer,
#sub-license .footer,
#sub-purchase-steps .footer { background: #1a2a20; color: #a8c3b0; padding: 24px 20px; text-align: center; font-size: 12px; margin-top: 60px; }

  @media (max-width: 900px) {#sub-update-info .timeline,
#sub-license .timeline,
#sub-purchase-steps .timeline { grid-template-columns: 1fr; }#sub-update-info .pricing-grid,
#sub-license .pricing-grid,
#sub-purchase-steps .pricing-grid { grid-template-columns: 1fr; }#sub-update-info .single-pricing-wrap,
#sub-license .single-pricing-wrap,
#sub-purchase-steps .single-pricing-wrap { grid-template-columns: 1fr; }#sub-update-info .step-grid,
#sub-license .step-grid,
#sub-purchase-steps .step-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 600px) {#sub-update-info .page-hero,
#sub-license .page-hero,
#sub-purchase-steps .page-hero { padding: 40px 16px 32px; }#sub-update-info .page-hero h1,
#sub-license .page-hero h1,
#sub-purchase-steps .page-hero h1 { font-size: 26px; }#sub-update-info .step-grid,
#sub-license .step-grid,
#sub-purchase-steps .step-grid { grid-template-columns: 1fr; }#sub-update-info .section-title,
#sub-license .section-title,
#sub-purchase-steps .section-title { font-size: 20px; }#sub-update-info .sub-nav a,
#sub-license .sub-nav a,
#sub-purchase-steps .sub-nav a { font-size: 13px; padding: 14px 8px; min-width: 100px; }#sub-update-info .timeline-wrap,
#sub-license .timeline-wrap,
#sub-purchase-steps .timeline-wrap { padding: 24px 18px; }
  }

/* ============================================================
   [추가] 구매 견적 요청 양식 전용 스타일
   ============================================================ */
.quote-form{
  background:#fff;border:1px solid #e5ebe7;border-radius:14px;
  padding:34px;margin-bottom:24px;
}
.qf-section{margin-bottom:30px}
.qf-section:last-child{margin-bottom:0}
.qf-section-title{
  font-size:16px;font-weight:800;color:#2d5a3d;
  padding:10px 14px;background:#f0f7f2;border-radius:8px;
  margin-bottom:16px;border-left:4px solid #2d5a3d;
}
.qf-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
}
.qf-field{display:flex;flex-direction:column}
.qf-field.qf-full{grid-column:1/-1}
.qf-field label{
  font-size:13.5px;font-weight:700;color:#1f2d1f;margin-bottom:8px;
}
.qf-field label .req{color:#d33;margin-left:2px}
.qf-field label .opt{color:#888;font-weight:500;font-size:12px}
.qf-field input[type="text"],
.qf-field input[type="tel"],
.qf-field input[type="email"],
.qf-field select,
.qf-field textarea{
  padding:13px 14px;border:1px solid #d4dcd6;border-radius:8px;
  font-family:inherit;font-size:14px;background:#fafcfa;color:#1f2d1f;
  transition:all .15s ease;
}
.qf-field input:focus,
.qf-field select:focus,
.qf-field textarea:focus{
  outline:none;border-color:#2d5a3d;background:#fff;
  box-shadow:0 0 0 3px rgba(45,90,61,.1);
}
.qf-field textarea{resize:vertical;min-height:100px}
.qf-checkbox{display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:14px;color:#1f2d1f}
.qf-checkbox input[type="checkbox"]{margin-top:4px;width:16px;height:16px;cursor:pointer;accent-color:#2d5a3d}
.qf-agree-line{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}
.qf-policy-view{
  flex:0 0 auto;
  border:1px solid #cfe0d4;
  background:#fff;
  color:#17643b;
  border-radius:6px;
  padding:6px 10px;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
}
.qf-policy-view:hover{border-color:#2d5a3d;background:#f0f7f2}
.qf-note{font-size:12px;color:#6b7d6f;margin-top:8px;margin-left:24px;line-height:1.6}
.qf-submit{
  display:flex;gap:10px;justify-content:center;
  padding-top:24px;border-top:1px solid #e5ebe7;margin-top:8px;
}
.qf-btn-primary{
  background:#2d5a3d;color:#fff;padding:14px 32px;border-radius:10px;
  font-weight:700;font-size:15px;cursor:pointer;border:none;
  transition:all .2s ease;font-family:inherit;
  display:inline-flex;align-items:center;gap:8px;
}
.qf-btn-primary:hover{background:#1f4128;transform:translateY(-2px);box-shadow:0 6px 20px rgba(45,90,61,.3)}
.qf-btn-primary:disabled{
  background:#b9c8bf;color:#eef4f0;cursor:not-allowed;box-shadow:none;transform:none;
}
.qf-btn-primary:disabled:hover{
  background:#b9c8bf;box-shadow:none;transform:none;
}
.qf-btn-outline{
  background:#fff;color:#2d5a3d;border:2px solid #2d5a3d;
  padding:13px 28px;border-radius:10px;font-weight:700;font-size:15px;
  cursor:pointer;transition:all .15s ease;font-family:inherit;
}
.qf-btn-outline:hover{background:#f0f7f2}
.qf-info{
  background:#fff8e1;border:1px solid #f5d76e;border-radius:8px;
  padding:14px 18px;margin-top:18px;font-size:13px;color:#856404;line-height:1.7;
}
.qf-info strong{color:#6b4d00}

.contact-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px;
}
.ccard{
  background:linear-gradient(180deg,#f0f7f2 0%,white 100%);
  border:1px solid #d4dcd6;border-radius:12px;padding:22px 18px;text-align:center;
  transition:all .2s ease;display:block;text-decoration:none;color:inherit;
}
.ccard:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(45,90,61,.1);border-color:#2d5a3d}
.ccard.linked:hover{border-color:#2d5a3d;background:linear-gradient(180deg,#e8f5ec 0%,#fff 100%)}
.ccard.linked .ccard-value{transition:color .2s}
.ccard.linked:hover .ccard-value{color:#2d5a3d}
.ccard-ico{font-size:28px;margin-bottom:8px}
.ccard-label{font-size:12px;font-weight:700;color:#2d5a3d;letter-spacing:.5px;margin-bottom:6px}
.ccard-value{font-size:16px;font-weight:800;color:#1f2d1f;letter-spacing:-.3px;margin-bottom:4px}
.ccard-sub{font-size:12px;color:#6b7d6f}

/* ============================================================
   [추가] 고객사 표 전용 스타일
   ============================================================ */
.clients-wrap{
  border:1px solid #e5ebe7;border-radius:14px;overflow:hidden;
  background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.03);
}
.clients-table{
  width:100%;border-collapse:collapse;font-size:14.5px;
}
.clients-table thead th{
  background:#f5f7f4;color:#1f2d1f;font-weight:700;
  padding:16px 18px;text-align:center;font-size:14px;
  border-bottom:2px solid #e5ebe7;letter-spacing:.3px;
}
.clients-table .th-logo{width:140px}
.clients-table .th-name{text-align:left;padding-left:24px}
.clients-table .th-addr{width:240px}
.clients-table tbody tr{
  border-bottom:1px solid #f0f2ef;transition:background .15s ease;
}
.clients-table tbody tr:last-child{border-bottom:0}
.clients-table tbody tr:hover{background:#fafcfa}
.clients-table tbody td{
  padding:18px;vertical-align:middle;color:#1f2d1f;
}
.clients-table .td-logo{text-align:center;padding:14px}
.clients-table .td-name{
  font-weight:700;color:#1f2d1f;font-size:15.5px;padding-left:24px;
}
.clients-table .td-addr{
  color:#6b7d6f;text-align:center;font-size:14px;
}

/* 로고 박스 (실제 운영 시 이미지로 교체) */
.logo-box{
  width:96px;height:60px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto;font-weight:800;font-size:28px;
  letter-spacing:-1px;
  box-shadow:0 2px 6px rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.04);
}

@media (max-width:768px){
  .clients-table{font-size:13px}
  .clients-table .th-logo{width:80px}
  .clients-table .th-addr{width:auto}
  .clients-table tbody td{padding:12px 10px}
  .clients-table .td-name{padding-left:10px;font-size:14px}
  .logo-box{width:62px;height:42px;font-size:18px}
  .clients-wrap{overflow-x:auto}
}

@media (max-width:768px){
  .qf-grid{grid-template-columns:1fr}
  .contact-cards{grid-template-columns:1fr}
  .quote-form{padding:22px 18px}
  .qf-submit{flex-direction:column}
  .qf-submit button{width:100%}
}

/* ============================================================
   [추가 v21] 측량 지원 접수 전용 스타일
   - 라디오 카드 (측량 방법 선택)
   - 면적 입력 (숫자+단위)
   - 진행 단계 시각화
   - 진행 현황 조회 폼
   ============================================================ */

/* 라디오 카드 그룹 (측량 방법 선택) */
.qf-radio-group{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;
}
.qf-radio-card{
  position:relative;border:1.5px solid #d4dcd6;border-radius:10px;
  padding:20px 18px;cursor:pointer;transition:all .2s ease;background:#fff;
  display:block;
}
.qf-radio-card:hover{border-color:#4a7c59;background:#fafcfa}
.qf-radio-card input[type="radio"]{
  position:absolute;top:18px;right:16px;accent-color:#2d5a3d;
  width:18px;height:18px;cursor:pointer;
}
.qf-radio-card:has(input:checked){
  border-color:#2d5a3d;background:#f0f7f2;
  box-shadow:0 0 0 3px rgba(45,90,61,.1);
}
.qf-radio-title{
  font-weight:700;font-size:15.5px;margin-bottom:6px;color:#2d5a3d;
  padding-right:30px;
}
.qf-radio-desc{
  font-size:12.5px;color:#6b7d6f;line-height:1.6;padding-right:30px;
}

/* [v21] DJI 견적 양식 - 체크박스 그리드 + 라디오 그리드 */
.qf-checkgrid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px;
}
.qf-check{
  display:block;cursor:pointer;
}
.qf-check input[type="checkbox"]{
  position:absolute;opacity:0;pointer-events:none;
}
.qf-check .qf-check-box{
  display:block;padding:14px 16px;
  border:1.5px solid #d4dcd6;border-radius:10px;background:#fff;
  font-size:14px;font-weight:600;color:#444;
  transition:all .2s ease;
}
.qf-check:hover .qf-check-box{border-color:#4a7c59;background:#fafcfa}
.qf-check input:checked + .qf-check-box{
  border-color:#2d5a3d;background:#f0f7f2;color:#1B4332;font-weight:800;
  box-shadow:0 0 0 3px rgba(45,90,61,.1);
}

.qf-radio-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:8px;
}
.qf-radio-grid .qf-radio-card{padding:14px 16px}
.qf-radio-grid .qf-radio-card span{
  display:flex;flex-direction:column;gap:3px;padding-right:30px;
}
.qf-radio-grid .qf-radio-card span strong{
  font-size:14.5px;color:#1B4332;font-weight:800;
}
.qf-radio-grid .qf-radio-card span small{
  font-size:11.5px;color:#6b7d6f;
}

@media (max-width:768px){
  .qf-checkgrid{grid-template-columns:1fr;gap:8px}
  .qf-radio-grid{grid-template-columns:1fr;gap:8px}
}

/* 면적 입력 (숫자 + 단위 select) */
.qf-area-input{display:flex;gap:8px}
.qf-area-input input[type="number"]{flex:1;min-width:0}
.qf-area-input select{width:140px;flex-shrink:0}

/* 도움말 텍스트 (필드 하단) */
.qf-help{font-size:12px;color:#6b7d6f;margin-top:6px;line-height:1.5}

/* ----------- 신청 안내 페이지 ----------- */
.ap-service-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;margin:24px 0 8px;
}
.ap-service-card{
  background:#fff;border:1.5px solid #e5ebe7;border-radius:14px;
  padding:24px 22px;transition:all .2s ease;position:relative;overflow:hidden;
}
.ap-service-card::before{
  content:"";position:absolute;top:0;left:0;width:100%;height:4px;
  background:linear-gradient(90deg,var(--green-500),var(--green-700));
}
.ap-service-card:hover{
  border-color:var(--green-500);transform:translateY(-4px);
  box-shadow:0 10px 25px rgba(45,90,61,.10);
}
.ap-service-card .ap-ico{font-size:32px;margin-bottom:10px;display:block}
.ap-service-card h3{
  font-size:17px;color:var(--green-900);margin-bottom:8px;font-weight:800;
}
.ap-service-card p{font-size:13.5px;color:var(--gray-700);line-height:1.6;margin:0}
.ap-service-card .ap-tag{
  display:inline-block;margin-top:12px;padding:4px 10px;
  background:var(--green-100);color:var(--green-700);
  border-radius:6px;font-size:12px;font-weight:700;
}

/* 비용·기간 요약 박스 */
.ap-summary-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0;
}
.ap-summary{
  background:linear-gradient(180deg,#f0f7f2 0%,#fff 100%);
  border:1px solid #d4dcd6;border-radius:12px;padding:22px 18px;text-align:center;
}
.ap-summary .ap-sum-ico{font-size:28px;margin-bottom:8px}
.ap-summary .ap-sum-label{font-size:12px;color:var(--green-700);font-weight:700;letter-spacing:.5px;margin-bottom:6px}
.ap-summary .ap-sum-value{font-size:18px;font-weight:800;color:var(--green-900);margin-bottom:4px}
.ap-summary .ap-sum-note{font-size:12px;color:var(--gray-500)}

/* ----------- 진행 현황 조회 페이지 ----------- */
.ap-status-search{
  background:#fff;border:1px solid #e5ebe7;border-radius:14px;
  padding:28px 30px;margin:24px 0;
}
.ap-status-search h3{
  font-size:17px;color:var(--green-900);margin-bottom:18px;font-weight:800;
  display:flex;align-items:center;gap:8px;
}
.ap-status-form{
  display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;
}
.ap-status-form input{
  flex:1;min-width:200px;padding:13px 16px;
  border:1.5px solid #d4dcd6;border-radius:10px;
  font-family:inherit;font-size:14.5px;background:#fafcfa;
}
.ap-status-form input:focus{
  outline:none;border-color:#2d5a3d;background:#fff;
  box-shadow:0 0 0 3px rgba(45,90,61,.1);
}
.ap-status-form button{
  padding:13px 28px;background:#2d5a3d;color:#fff;border:none;
  border-radius:10px;font-weight:700;font-size:14.5px;cursor:pointer;
  font-family:inherit;transition:all .2s ease;white-space:nowrap;
}
.ap-status-form button:hover{background:#1f4128}

/* 진행 단계 시각화 (5단계 프로그레스) */
.ap-progress-wrap{
  background:#fafcfa;border:1px solid #e5ebe7;border-radius:14px;
  padding:30px 28px;margin:24px 0;
}
.ap-progress-wrap h3{
  font-size:16px;color:var(--green-900);font-weight:800;margin-bottom:6px;
}
.ap-progress-wrap .ap-prog-sub{font-size:13px;color:var(--gray-500);margin-bottom:22px}
.ap-progress{
  display:flex;align-items:flex-start;gap:0;position:relative;
}
.ap-step{
  flex:1;text-align:center;position:relative;
}
.ap-step .ap-step-circle{
  width:42px;height:42px;border-radius:50%;
  background:#fff;border:2.5px solid #d4dcd6;color:#9ca8a0;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:15px;margin:0 auto 10px;
  position:relative;z-index:2;transition:all .3s;
}
.ap-step.done .ap-step-circle{background:var(--green-500);border-color:var(--green-500);color:#fff}
.ap-step.current .ap-step-circle{
  background:#fff;border-color:var(--green-700);color:var(--green-700);
  box-shadow:0 0 0 5px rgba(45,106,79,.18);
}
.ap-step .ap-step-label{
  font-size:12.5px;color:var(--gray-700);font-weight:600;line-height:1.4;
}
.ap-step.done .ap-step-label,
.ap-step.current .ap-step-label{color:var(--green-900);font-weight:800}
.ap-step.current .ap-step-label{color:var(--green-700)}
.ap-step::after{
  content:"";position:absolute;top:21px;left:50%;width:100%;height:3px;
  background:#d4dcd6;z-index:1;
}
.ap-step:last-child::after{display:none}
.ap-step.done::after{background:var(--green-500)}

/* 데모 결과 (조회 후 표시) */
.ap-result-card{
  background:#fff;border:1.5px solid var(--green-300);border-radius:14px;
  padding:24px 26px;margin-top:18px;
}
.ap-result-card .ap-result-head{
  display:flex;justify-content:space-between;align-items:center;
  padding-bottom:14px;border-bottom:1px dashed #e5ebe7;margin-bottom:16px;
  flex-wrap:wrap;gap:10px;
}
.ap-result-card .ap-result-no{
  background:var(--green-100);color:var(--green-700);
  padding:5px 12px;border-radius:6px;font-weight:800;font-size:13.5px;
}
.ap-result-card .ap-result-date{font-size:13px;color:var(--gray-500)}
.ap-result-card .ap-result-rows{display:grid;grid-template-columns:120px 1fr;gap:10px 16px;font-size:14px}
.ap-result-card .ap-result-rows .k{color:var(--gray-500);font-weight:600}
.ap-result-card .ap-result-rows .v{color:var(--gray-900);font-weight:700}

/* 모바일 반응형 */
@media (max-width:768px){
  .qf-radio-group{grid-template-columns:1fr}
  .qf-area-input{flex-direction:row}
  .qf-area-input select{width:110px}
  .ap-summary-grid{grid-template-columns:1fr}
  .ap-progress{flex-wrap:wrap;gap:14px}
  .ap-step{flex:1 1 30%;min-width:80px}
  .ap-step::after{display:none}
  .ap-status-form button{width:100%}
  .ap-status-search{padding:22px 18px}
  .ap-progress-wrap{padding:22px 18px}
  .ap-result-card .ap-result-rows{grid-template-columns:1fr}
  .ap-result-card .ap-result-rows .k{margin-bottom:-4px}
}

/* ----------- 측량 지원 FAQ : 리치 FAQ 스타일 재사용 (sub-apply-faq) ----------- */
#sub-apply-faq .faq-item{
  background:#fff;border:1px solid #e5ebe7;border-radius:8px;
  margin-bottom:8px;overflow:hidden;padding:0;
}
#sub-apply-faq .faq-question{
  padding:16px 20px;cursor:pointer;font-weight:600;color:#1f2d1f;
  display:flex;align-items:center;gap:10px;
  user-select:none;transition:background .2s;
}
#sub-apply-faq .faq-question:hover{background:#f5f7f4}
#sub-apply-faq .faq-question .q-mark{
  background:#2d5a3d;color:white;width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;flex-shrink:0;
}
#sub-apply-faq .faq-question .toggle{
  margin-left:auto;color:#6b7d6f;transition:transform .2s;
}
#sub-apply-faq .faq-item.open .faq-question .toggle{transform:rotate(180deg)}
#sub-apply-faq .faq-answer{
  max-height:0;overflow:hidden;
  transition:max-height .3s ease, padding .3s ease;
  padding:0 20px;background:#fafcfa;
}
#sub-apply-faq .faq-item.open .faq-answer{
  max-height:500px;padding:16px 20px 18px 54px;
}
#sub-apply-faq .faq-answer p{
  font-size:13.5px;color:#1f2d1f;line-height:1.7;
}

/* ============================================================
   [추가 v21] MARKET - DJI Enterprise 제품 마켓
   - 정식 대리점 신뢰 배너
   - 차별점 강조 박스
   - 제품 카드 그리드 (4:3 이미지 자리, 특징, 액션)
   - 영상/스펙/문의 액션 버튼
   ============================================================ */

/* 정식 대리점 신뢰 배너 (각 마켓 페이지 상단) */
.mk-trust-banner{
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 60%,#3DAA6E 100%);
  color:#fff;border-radius:16px;padding:28px 32px;margin:18px 0 28px;
  position:relative;overflow:hidden;
}
.mk-trust-banner::before{
  content:"";position:absolute;top:-40px;right:-40px;width:200px;height:200px;
  background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 70%);
  pointer-events:none;
}
.mk-trust-banner .mk-tb-eyebrow{
  display:inline-block;background:rgba(255,255,255,.18);color:#fff;
  padding:5px 12px;border-radius:6px;font-size:11.5px;font-weight:800;
  letter-spacing:1px;margin-bottom:12px;backdrop-filter:blur(4px);
}
.mk-trust-banner h3{
  font-size:22px;font-weight:800;margin-bottom:10px;line-height:1.4;
  position:relative;z-index:2;
}
.mk-trust-banner h3 em{font-style:normal;color:#FFE066;font-weight:900}
.mk-trust-banner p{
  font-size:14.5px;line-height:1.7;color:rgba(255,255,255,.95);
  position:relative;z-index:2;max-width:780px;
}
.mk-trust-banner p strong{color:#FFE066;font-weight:800}
.mk-trust-banner .mk-tb-badges{
  display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;
  position:relative;z-index:2;
}
.mk-trust-banner .mk-tb-badge{
  background:rgba(255,255,255,.15);padding:5px 11px;border-radius:6px;
  font-size:12px;font-weight:700;letter-spacing:.3px;
  border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(4px);
}

/* 차별점 강조 박스 ("같은 가격이라면…") */
.mk-difference{
  background:linear-gradient(180deg,#fff8e1 0%,#fff 100%);
  border:1.5px solid #f5d76e;border-radius:14px;
  padding:22px 26px;margin-bottom:28px;display:flex;gap:18px;align-items:flex-start;
}
.mk-difference .mk-diff-ico{
  font-size:34px;line-height:1;flex-shrink:0;margin-top:2px;
}
.mk-difference .mk-diff-body h4{
  font-size:16.5px;color:#6b4d00;font-weight:800;margin-bottom:8px;
}
.mk-difference .mk-diff-body p{
  font-size:13.5px;color:#856404;line-height:1.7;margin:0;
}
.mk-difference .mk-diff-body p strong{color:#5a3d00;font-weight:800}

/* 제품 카드 그리드 */
.mk-product-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:22px;margin:20px 0 28px;
}

/* 개별 제품 카드 */
.mk-product-card{
  background:#fff;border:1.5px solid #e5ebe7;border-radius:16px;
  overflow:hidden;transition:all .25s ease;position:relative;
  display:flex;flex-direction:column;
}
.mk-product-card:hover{
  border-color:var(--green-500);transform:translateY(-4px);
  box-shadow:0 16px 36px rgba(45,90,61,.12);
}

/* 제품 이미지 영역 (4:3 비율, 자리만) */
.mk-product-img{
  position:relative;background:linear-gradient(135deg,#f5f7f4 0%,#e8eee6 100%);
  aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.mk-product-img .mk-img-placeholder{
  font-size:60px;opacity:.5;line-height:1;
}
/* [v1.7] 실제 제품 이미지 (투명 PNG/WebP) */
.mk-product-img .mk-img-real{
  width:100%; height:100%;
  object-fit:contain;
  padding:18px;
  box-sizing:border-box;
  display:block;
  filter:drop-shadow(0 8px 14px rgba(20,40,30,.12));
  transition:transform .4s cubic-bezier(.2,.7,.3,1);
}
.mk-product-card:hover .mk-img-real{
  transform:scale(1.05);
}
.mk-product-img .mk-product-svg{
  width:100%;height:100%;display:block;object-fit:cover;
}
.mk-product-card:hover .mk-product-svg{transform:scale(1.04);transition:transform .35s ease}
.mk-product-img .mk-img-note{
  position:absolute;bottom:8px;right:10px;
  background:rgba(0,0,0,.55);color:#fff;
  font-size:10.5px;padding:3px 8px;border-radius:5px;letter-spacing:.3px;
  z-index:2;
}

/* 제품 카드 뱃지 (NEW, BEST, 추천) */
.mk-product-badges{
  position:absolute;top:12px;left:12px;display:flex;gap:6px;z-index:2;
}
.mk-pbadge{
  padding:5px 10px;border-radius:6px;
  font-size:11px;font-weight:800;letter-spacing:.5px;color:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.18);
}
.mk-pbadge.b-new{background:#d33}
.mk-pbadge.b-best{background:#f5a623}
.mk-pbadge.b-pick{background:var(--green-700)}
.mk-pbadge.b-hot{background:linear-gradient(90deg,#ff6b6b,#ff4757)}

/* 제품 카드 본문 */
.mk-product-body{padding:20px 22px;display:flex;flex-direction:column;flex:1}
.mk-product-cat{
  font-size:11px;font-weight:800;color:var(--green-700);letter-spacing:1.5px;
  margin-bottom:6px;
}
.mk-product-title{
  font-size:18px;font-weight:800;color:var(--green-900);
  margin-bottom:8px;line-height:1.3;
}
.mk-product-slogan{
  font-size:13.5px;color:var(--green-700);font-weight:700;
  margin-bottom:12px;line-height:1.5;
}
.mk-product-desc{
  font-size:13px;color:var(--gray-700);line-height:1.7;
  margin-bottom:14px;
}

/* 핵심 특징 (체크리스트) */
.mk-product-features{
  list-style:none;padding:0;margin:0 0 16px;
}
.mk-product-features li{
  font-size:12.5px;color:var(--gray-700);padding-left:22px;
  position:relative;line-height:1.6;margin-bottom:6px;
}
.mk-product-features li::before{
  content:"✓";position:absolute;left:0;top:0;
  color:var(--green-500);font-weight:900;font-size:13px;
}
.mk-product-features li strong{color:var(--green-900);font-weight:700}

/* 주요 스펙 미니 표 */
.mk-product-specs{
  background:#fafcfa;border:1px solid #f0f2ef;border-radius:8px;
  padding:11px 14px;margin-bottom:14px;
}
.mk-product-specs .mk-spec-row{
  display:flex;justify-content:space-between;font-size:12px;
  padding:3px 0;color:var(--gray-700);
}
.mk-product-specs .mk-spec-row .k{color:var(--gray-500);font-weight:600}
.mk-product-specs .mk-spec-row .v{color:var(--green-900);font-weight:700}

/* 액션 버튼 (영상·스펙·문의) */
.mk-product-actions{
  margin-top:auto;padding-top:14px;border-top:1px dashed #e5ebe7;
  display:flex;gap:6px;flex-wrap:wrap;
}
.mk-act-btn{
  flex:1;min-width:80px;padding:9px 10px;border-radius:7px;
  font-size:12.5px;font-weight:700;text-align:center;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  transition:all .15s ease;border:1.5px solid #d4dcd6;background:#fff;color:var(--gray-700);
  font-family:inherit;
}
.mk-act-btn:hover{border-color:var(--green-500);color:var(--green-700);background:var(--green-100)}
.mk-act-btn.act-primary{background:var(--green-700);color:#fff;border-color:var(--green-700)}
.mk-act-btn.act-primary:hover{background:var(--green-900);border-color:var(--green-900);color:#fff}
.mk-act-btn.act-video{background:#d33;color:#fff;border-color:#d33}
.mk-act-btn.act-video:hover{background:#a52;border-color:#a52;color:#fff}

/* MARKET 페이지 하단 CTA 영역 */
.mk-bottom-cta{
  background:linear-gradient(135deg,#f0f7f2 0%,#fafcfa 100%);
  border:1.5px solid #d4dcd6;border-radius:16px;
  padding:32px 36px;margin:28px 0;text-align:center;
}
.mk-bottom-cta h3{
  font-size:22px;color:var(--green-900);font-weight:800;margin-bottom:8px;
}
.mk-bottom-cta p{
  font-size:14px;color:var(--gray-700);line-height:1.7;margin-bottom:20px;
  max-width:680px;margin-left:auto;margin-right:auto;
}
.mk-bottom-cta .mk-cta-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:680px;
  margin:0 auto;
}
.mk-bottom-cta .mk-cta-item{
  background:#fff;border:1px solid #e5ebe7;border-radius:10px;
  padding:18px 14px;text-align:center;transition:all .2s;
}
.mk-bottom-cta .mk-cta-item:hover{border-color:var(--green-500);transform:translateY(-2px)}
.mk-bottom-cta .mk-cta-item .mk-cta-ico{font-size:26px;margin-bottom:6px}
.mk-bottom-cta .mk-cta-item .mk-cta-label{font-size:12px;color:var(--green-700);font-weight:700;margin-bottom:4px;letter-spacing:.3px}
.mk-bottom-cta .mk-cta-item .mk-cta-value{font-size:14.5px;color:var(--green-900);font-weight:800}

/* 모바일 반응형 */
@media (max-width:768px){
  .mk-trust-banner{padding:22px 22px}
  .mk-trust-banner h3{font-size:18px}
  .mk-difference{padding:18px 20px;flex-direction:column;gap:10px}
  .mk-product-grid{grid-template-columns:1fr;gap:16px}
  .mk-product-card{border-radius:14px}
  .mk-product-body{padding:18px 18px}
  .mk-product-actions{flex-direction:column}
  .mk-act-btn{width:100%;padding:11px}
  .mk-bottom-cta{padding:24px 22px}
  .mk-bottom-cta h3{font-size:18px}
  .mk-bottom-cta .mk-cta-grid{grid-template-columns:1fr;gap:10px}
}

/* ============================================================
   [추가 v21] 공지사항 / 임도 뉴스 - 뉴스 게시판 확장
   ============================================================ */

/* 중요도 뱃지 (긴급/중요/일반) */
.db-table .td-title .nw-priority{
  display:inline-block;padding:2px 7px;border-radius:4px;
  font-size:10.5px;font-weight:800;letter-spacing:.3px;
  margin-right:6px;vertical-align:middle;color:#fff;
}
.nw-priority.p-urgent{background:#d33}
.nw-priority.p-important{background:#f5a623}
.nw-priority.p-normal{background:#888}
.nw-priority.p-event{background:#7b4ea3}

/* 뉴스 페이지 - 카테고리 탭 */
.nw-tabs{
  display:flex;gap:8px;margin:18px 0 16px;flex-wrap:wrap;
}
.nw-tab{
  padding:9px 16px;border:1.5px solid #d4dcd6;border-radius:24px;
  background:#fff;color:var(--gray-700);font-size:13.5px;font-weight:700;
  cursor:pointer;transition:all .2s;font-family:inherit;
}
.nw-tab:hover{border-color:var(--green-500);color:var(--green-700)}
.nw-tab.active{background:var(--green-700);color:#fff;border-color:var(--green-700)}
.nw-tab .nw-tab-count{
  display:inline-block;margin-left:6px;padding:1px 7px;border-radius:10px;
  background:rgba(0,0,0,.08);font-size:11px;font-weight:700;
}
.nw-tab.active .nw-tab-count{background:rgba(255,255,255,.22)}

/* ============================================================
   [추가 v21] 임도 사진 컨테스트 (히든 카드 🎯)
   - 매월 최우수 사진 선정
   - 사용자 투표 + 사은품 50만원
   - 화려하고 재치있게 구성
   ============================================================ */

/* 🔥 메인 컨테스트 히어로 (이번 달) */
.ct-hero{
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 40%,#3DAA6E 100%);
  border-radius:20px;padding:32px 36px;margin:18px 0 24px;
  color:#fff;position:relative;overflow:hidden;
}
.ct-hero::before{
  content:"";position:absolute;top:-60px;right:-60px;width:280px;height:280px;
  background:radial-gradient(circle,rgba(255,224,102,.18) 0%,transparent 60%);
  pointer-events:none;
}
.ct-hero::after{
  content:"📷 🌲 🏆";position:absolute;bottom:-12px;right:24px;
  font-size:72px;opacity:.10;letter-spacing:8px;pointer-events:none;
}
.ct-hero .ct-month{
  display:inline-block;background:rgba(255,224,102,.20);color:#FFE066;
  padding:6px 14px;border-radius:8px;font-size:13px;font-weight:800;
  letter-spacing:1px;margin-bottom:14px;backdrop-filter:blur(4px);
  border:1px solid rgba(255,224,102,.30);
}
.ct-hero h2{
  font-size:30px;font-weight:900;line-height:1.3;margin-bottom:8px;
  position:relative;z-index:2;
}
/* [v1.13] "임도 작가" 강조 — 어두운 초록 배경에 묻히던 노란색을 선명한 노랑+그림자로 강화 */
.ct-hero h2 em{
  font-style:normal;
  color:#FFD93D;
  font-weight:900;
  text-shadow:0 2px 10px rgba(0,0,0,.35), 0 0 1px rgba(255,217,61,.4);
  letter-spacing:.5px;
}
.ct-hero .ct-slogan{
  font-size:16px;color:rgba(255,255,255,.92);line-height:1.6;
  position:relative;z-index:2;max-width:600px;margin-bottom:20px;
}
.ct-hero .ct-countdown{
  display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;
  position:relative;z-index:2;
}
.ct-hero .ct-cd-box{
  background:rgba(255,255,255,.15);padding:14px 20px;border-radius:12px;
  text-align:center;backdrop-filter:blur(6px);min-width:90px;
  border:1px solid rgba(255,255,255,.18);
}
.ct-hero .ct-cd-num{font-size:32px;font-weight:900;color:#FFE066;line-height:1}
.ct-hero .ct-cd-label{font-size:11px;color:rgba(255,255,255,.85);margin-top:6px;letter-spacing:.5px;font-weight:700}

.ct-hero-actions{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:2}
.ct-hero-btn{
  padding:12px 22px;border-radius:10px;font-weight:800;font-size:14px;
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  transition:all .2s ease;border:none;font-family:inherit;
}
.ct-hero-btn.btn-yellow{
  background:#FFE066;color:#1B4332;
  box-shadow:0 6px 18px rgba(255,224,102,.35);
}
.ct-hero-btn.btn-yellow:hover{background:#FFD93D;transform:translateY(-2px)}
.ct-hero-btn.btn-outline{
  background:rgba(255,255,255,.10);color:#fff;
  border:1.5px solid rgba(255,255,255,.30);backdrop-filter:blur(4px);
}
.ct-hero-btn.btn-outline:hover{background:rgba(255,255,255,.18)}

/* 🎁 사은품 강조 박스 */
.ct-prize-banner{
  background:linear-gradient(135deg,#fff8e1 0%,#ffeaa7 100%);
  border:2px solid #FFD93D;border-radius:16px;
  padding:24px 28px;margin:0 0 24px;display:flex;gap:20px;align-items:center;
  position:relative;overflow:hidden;
}
.ct-prize-banner::before{
  content:"🎁";position:absolute;top:-20px;right:-10px;font-size:120px;opacity:.10;
}
.ct-prize-banner .ct-pb-icon{
  font-size:54px;line-height:1;flex-shrink:0;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.10));
}
.ct-prize-banner .ct-pb-body h3{
  font-size:20px;color:#6b4d00;font-weight:900;margin-bottom:6px;line-height:1.3;
}
.ct-prize-banner .ct-pb-body h3 em{font-style:normal;color:#d33;font-weight:900}
.ct-prize-banner .ct-pb-body p{
  font-size:14px;color:#856404;line-height:1.6;margin:0;
}
.ct-prize-banner .ct-pb-body p strong{color:#5a3d00;font-weight:800}

/* 📊 컨테스트 현황 통계 */
.ct-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;
}
.ct-stat{
  background:#fff;border:1.5px solid #e5ebe7;border-radius:14px;
  padding:18px 16px;text-align:center;transition:all .2s;
}
.ct-stat:hover{border-color:var(--green-500);transform:translateY(-2px)}
.ct-stat .ct-st-ico{font-size:24px;margin-bottom:4px;line-height:1}
.ct-stat .ct-st-num{
  font-size:24px;font-weight:900;color:var(--green-700);line-height:1.1;
}
.ct-stat .ct-st-label{font-size:11.5px;color:var(--gray-500);margin-top:4px;font-weight:700;letter-spacing:.3px}

/* 🎁 사은품 옵션 그리드 (4가지) */
.ct-gift-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:20px 0 24px;
}
.ct-gift-card{
  background:#fff;border:2px solid #e5ebe7;border-radius:14px;
  padding:20px 18px;transition:all .25s;position:relative;overflow:hidden;
}
.ct-gift-card:hover{
  border-color:#FFD93D;transform:translateY(-4px);
  box-shadow:0 12px 28px rgba(245,166,35,.15);
}
.ct-gift-card .ct-gift-emoji{font-size:42px;margin-bottom:8px;line-height:1}
.ct-gift-card h4{
  font-size:15.5px;color:var(--green-900);font-weight:900;margin-bottom:6px;line-height:1.3;
}
.ct-gift-card .ct-gift-tagline{
  font-size:12px;color:#d33;font-weight:700;margin-bottom:10px;font-style:italic;
}
.ct-gift-card ul{list-style:none;padding:0;margin:0}
.ct-gift-card ul li{
  font-size:12.5px;color:var(--gray-700);padding-left:18px;line-height:1.7;position:relative;
}
.ct-gift-card ul li::before{
  content:"·";position:absolute;left:6px;top:-2px;color:var(--green-500);font-weight:900;font-size:16px;
}

/* 📸 응모작 갤러리 그리드 */
.ct-gallery-head{
  display:flex;justify-content:space-between;align-items:center;
  margin:24px 0 14px;flex-wrap:wrap;gap:10px;
}
.ct-gallery-head h3{
  font-size:18px;color:var(--green-900);font-weight:800;margin:0;
  display:flex;align-items:center;gap:8px;
}
.ct-gallery-sort{
  display:flex;gap:6px;
}
.ct-gallery-sort button{
  padding:7px 14px;border:1px solid #d4dcd6;background:#fff;color:var(--gray-700);
  border-radius:8px;font-size:12.5px;font-weight:700;cursor:pointer;
  font-family:inherit;transition:all .15s;
}
.ct-gallery-sort button:hover{border-color:var(--green-500);color:var(--green-700)}
.ct-gallery-sort button.active{background:var(--green-700);color:#fff;border-color:var(--green-700)}

.ct-photo-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-bottom:24px;
}
.ct-photo-card{
  background:#fff;border:1.5px solid #e5ebe7;border-radius:12px;
  overflow:hidden;transition:all .25s;position:relative;
}
.ct-photo-card:hover{
  border-color:var(--green-500);transform:translateY(-3px);
  box-shadow:0 10px 24px rgba(45,90,61,.10);
}

/* 사진 영역 (이미지 자리, 4:3 또는 1:1) */
.ct-photo-img{
  position:relative;aspect-ratio:4/3;
  background:linear-gradient(135deg,#88d4a8 0%,#52B788 50%,#1B4332 100%);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.ct-photo-img .ct-img-ico{font-size:54px;opacity:.5;line-height:1}
.ct-photo-img .ct-img-note{
  position:absolute;bottom:6px;right:8px;background:rgba(0,0,0,.45);color:#fff;
  font-size:10px;padding:2px 6px;border-radius:4px;letter-spacing:.3px;
}
.ct-photo-img .ct-rank-badge{
  position:absolute;top:8px;left:8px;
  background:#FFD93D;color:#1B4332;font-weight:900;
  padding:3px 9px;border-radius:6px;font-size:11.5px;letter-spacing:.3px;
  box-shadow:0 2px 6px rgba(0,0,0,.18);
}
.ct-photo-img .ct-new-badge{
  position:absolute;top:8px;right:8px;
  background:#d33;color:#fff;font-weight:900;
  padding:2px 8px;border-radius:5px;font-size:10.5px;letter-spacing:.3px;
}

.ct-photo-body{padding:12px 14px}
.ct-photo-title{
  font-size:13.5px;color:var(--green-900);font-weight:800;line-height:1.4;
  margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ct-photo-meta{
  display:flex;justify-content:space-between;align-items:center;
  font-size:11.5px;color:var(--gray-500);margin-bottom:10px;
}
.ct-photo-meta .ct-author{font-weight:700;color:var(--gray-700)}

/* 투표 버튼 */
.ct-vote-row{
  display:flex;gap:6px;align-items:center;
  padding-top:10px;border-top:1px dashed #f0f2ef;
}
.ct-vote-btn{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 10px;border:1.5px solid #ffcdd2;background:#fff5f6;color:#d33;
  border-radius:8px;font-size:12.5px;font-weight:800;cursor:pointer;
  font-family:inherit;transition:all .15s;
}
.ct-vote-btn:hover{background:#ffe0e3;border-color:#ffabab}
.ct-vote-btn.voted{background:#d33;color:#fff;border-color:#d33}
.ct-vote-btn .ct-vote-num{font-weight:900}
.ct-detail-btn{
  padding:8px 12px;border:1.5px solid #d4dcd6;background:#fff;color:var(--gray-700);
  border-radius:8px;font-size:12.5px;font-weight:700;cursor:pointer;
  font-family:inherit;transition:all .15s;
}
.ct-detail-btn:hover{border-color:var(--green-500);color:var(--green-700);background:var(--green-100)}

/* 🏆 명예의 전당 (월별 우승작 갤러리) */
.ct-hall-head{
  display:flex;align-items:center;gap:10px;margin:30px 0 6px;
}
.ct-hall-head h2{
  font-size:24px;color:var(--green-900);font-weight:900;margin:0;line-height:1.2;
}
.ct-hall-head h2 .ct-hall-trophy{font-size:28px}
.ct-hall-sub{
  font-size:13.5px;color:var(--gray-500);margin-bottom:20px;
}

.ct-hall-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:24px;
}
.ct-hall-card{
  background:linear-gradient(180deg,#fff 0%,#fafcfa 100%);
  border:2px solid #FFD93D;border-radius:14px;overflow:hidden;
  transition:all .25s;position:relative;
}
.ct-hall-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(245,166,35,.18)}
.ct-hall-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:6px;
  background:linear-gradient(90deg,#FFD93D,#f5a623,#FFD93D);
}
.ct-hall-photo{
  position:relative;aspect-ratio:4/3;
  background:linear-gradient(135deg,#FFD93D 0%,#f5a623 100%);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.ct-hall-photo .ct-hall-ico{font-size:64px;opacity:.7;line-height:1}
.ct-hall-photo .ct-month-tag{
  position:absolute;top:10px;left:10px;
  background:#1B4332;color:#FFE066;font-weight:900;
  padding:5px 11px;border-radius:6px;font-size:12px;letter-spacing:.5px;
}
.ct-hall-photo .ct-trophy{
  position:absolute;top:8px;right:10px;font-size:30px;
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.18));
}

.ct-hall-body{padding:14px 16px}
.ct-hall-title{
  font-size:14.5px;color:var(--green-900);font-weight:800;line-height:1.4;margin-bottom:6px;
}
.ct-hall-author{
  font-size:12.5px;color:var(--gray-700);font-weight:700;margin-bottom:8px;
}
.ct-hall-quote{
  font-size:12px;color:var(--gray-500);font-style:italic;line-height:1.6;margin-bottom:10px;
  background:#fafcfa;padding:8px 12px;border-radius:6px;border-left:3px solid #FFD93D;
}
.ct-hall-stats{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:10px;border-top:1px dashed #f0f2ef;
  font-size:11.5px;color:var(--gray-500);
}
.ct-hall-stats strong{color:#d33;font-weight:900;font-size:13px}

/* 응모 안내 박스 (재치있게) */
.ct-howto{
  background:linear-gradient(180deg,#f0f7f2 0%,#fff 100%);
  border:1.5px solid #d4dcd6;border-radius:14px;
  padding:24px 26px;margin:24px 0;
}
.ct-howto h3{
  font-size:17px;color:var(--green-900);font-weight:800;margin-bottom:14px;
  display:flex;align-items:center;gap:8px;
}
.ct-howto-steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
}
.ct-howto-step{
  background:#fff;border:1px solid #e5ebe7;border-radius:10px;
  padding:14px 14px;text-align:center;position:relative;
}
.ct-howto-step .ct-step-num{
  width:28px;height:28px;background:var(--green-700);color:#fff;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:13px;margin:0 auto 8px;
}
.ct-howto-step .ct-step-ico{font-size:22px;line-height:1;margin-bottom:4px}
.ct-howto-step h5{font-size:13px;color:var(--green-900);font-weight:800;margin-bottom:4px}
.ct-howto-step p{font-size:11.5px;color:var(--gray-500);line-height:1.6;margin:0}

/* 모바일 반응형 */
@media (max-width:768px){
  .ct-hero{padding:24px 24px;border-radius:16px}
  .ct-hero h2{font-size:22px}
  .ct-hero .ct-slogan{font-size:14px}
  .ct-hero-actions{flex-direction:column}
  .ct-hero-btn{width:100%;justify-content:center}
  .ct-prize-banner{padding:18px 20px;flex-direction:column;text-align:center;gap:10px}
  .ct-stats{grid-template-columns:repeat(2,1fr)}
  .ct-photo-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .ct-photo-body{padding:10px 12px}
  .ct-photo-title{font-size:12.5px}
  .ct-hall-grid{grid-template-columns:1fr;gap:14px}
  .ct-howto-steps{grid-template-columns:repeat(2,1fr)}
  .ct-gallery-head{flex-direction:column;align-items:flex-start}
}

/* ============================================================
   [v21] 교육 안내 - 찾아오시는 길 (Venue Map)
   ============================================================ */
.venue-section{margin-top:32px}
.venue-hero{
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 60%,#3DAA6E 100%);
  border-radius:18px;padding:28px 32px;color:#fff;
  position:relative;overflow:hidden;margin-bottom:20px;
}
.venue-hero::before{
  content:"";position:absolute;top:-40px;right:-40px;width:220px;height:220px;
  background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 70%);
  pointer-events:none;
}
.venue-hero::after{
  content:"📍";position:absolute;bottom:-20px;right:24px;
  font-size:160px;opacity:.08;line-height:1;pointer-events:none;
}
.venue-hero .vh-eye{
  display:inline-block;background:rgba(255,224,102,.20);color:#FFE066;
  padding:5px 12px;border-radius:6px;font-size:11.5px;font-weight:800;
  letter-spacing:1px;margin-bottom:14px;
  border:1px solid rgba(255,224,102,.35);
}
.venue-hero h3{
  font-size:24px;font-weight:900;margin-bottom:6px;
  position:relative;z-index:2;line-height:1.4;
}
.venue-hero .vh-addr{
  font-size:17px;font-weight:700;color:#FFE066;margin-bottom:14px;
  position:relative;z-index:2;
}
.venue-hero .vh-sub{
  font-size:13.5px;color:rgba(255,255,255,.85);line-height:1.6;
  margin-bottom:18px;position:relative;z-index:2;
}
.venue-hero .vh-actions{
  display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:2;
}
.venue-hero .vh-btn{
  padding:11px 20px;border-radius:10px;font-weight:800;font-size:13.5px;
  display:inline-flex;align-items:center;gap:6px;
  text-decoration:none;transition:all .2s;
}
.venue-hero .vh-btn-y{
  background:#FFE066;color:#1B4332;
  box-shadow:0 6px 18px rgba(255,224,102,.30);
}
.venue-hero .vh-btn-y:hover{background:#FFD93D;transform:translateY(-2px)}
.venue-hero .vh-btn-n{
  background:#03C75A;color:#fff;
  box-shadow:0 6px 18px rgba(3,199,90,.30);
}
.venue-hero .vh-btn-n:hover{background:#02b14F;transform:translateY(-2px)}
.venue-hero .vh-btn-o{
  background:rgba(255,255,255,.15);color:#fff;
  border:1.5px solid rgba(255,255,255,.30);backdrop-filter:blur(4px);
}
.venue-hero .vh-btn-o:hover{background:rgba(255,255,255,.25)}

/* 교통편 3카드 */
.venue-transport{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;
}
.vt-card{
  background:#fff;border:1.5px solid #e5ebe7;border-radius:14px;
  padding:20px 22px;transition:all .25s;
}
.vt-card:hover{border-color:var(--green-500);transform:translateY(-3px);box-shadow:0 10px 24px rgba(45,90,61,.10)}
.vt-card h4{
  font-size:15.5px;color:var(--green-900);font-weight:800;margin-bottom:10px;
  display:flex;align-items:center;gap:8px;
}
.vt-card h4 .vt-ico{font-size:22px;line-height:1}
.vt-card ul{list-style:none;padding:0;margin:0}
.vt-card ul li{
  font-size:13px;color:var(--gray-700);padding-left:18px;line-height:1.7;position:relative;
}
.vt-card ul li::before{
  content:"›";position:absolute;left:4px;color:var(--green-500);font-weight:900;
}
.vt-card ul li strong{color:var(--green-900);font-weight:700}

/* 주차/안내 박스 */
.venue-info-box{
  background:linear-gradient(180deg,#f0f7f2 0%,#fafcfa 100%);
  border:1.5px solid #d4dcd6;border-radius:14px;
  padding:18px 22px;display:flex;gap:16px;align-items:flex-start;
}
.venue-info-box .vi-ico{font-size:30px;line-height:1;flex-shrink:0;margin-top:2px}
.venue-info-box .vi-body h5{
  font-size:14.5px;color:var(--green-900);font-weight:800;margin-bottom:6px;
}
.venue-info-box .vi-body p{
  font-size:13px;color:var(--gray-700);line-height:1.65;margin:0;
}
.venue-info-box .vi-body p strong{color:var(--green-700);font-weight:800}

@media (max-width:768px){
  .venue-hero{padding:22px 22px;border-radius:14px}
  .venue-hero h3{font-size:19px}
  .venue-hero .vh-addr{font-size:14.5px}
  .venue-hero .vh-actions{flex-direction:column}
  .venue-hero .vh-btn{width:100%;justify-content:center}
  .venue-transport{grid-template-columns:1fr;gap:10px}
  .venue-info-box{padding:16px 18px;flex-direction:column;gap:10px}
}

/* ============================================================
   [v21] 다운로드 - 설치파일 페이지 (관리자 업로드 UI 포함)
   ============================================================ */

/* 관리자 안내 + 업로드 띠 */
.dl-admin-bar{
  display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(90deg,#fff8e1 0%,#fffbf0 100%);
  border:1.5px dashed #f5d76e;border-radius:12px;
  padding:14px 20px;margin:18px 0 24px;flex-wrap:wrap;gap:12px;
}
.dl-admin-bar .da-left{
  display:flex;align-items:center;gap:10px;font-size:13.5px;color:#6b4d00;
}
.dl-admin-bar .da-left strong{color:#5a3d00;font-weight:800}
.dl-admin-bar .da-left .da-ico{font-size:22px;line-height:1}
.dl-admin-bar .da-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 18px;border-radius:8px;
  background:var(--green-700);color:#fff;
  font-weight:800;font-size:13.5px;cursor:pointer;
  border:none;font-family:inherit;transition:all .15s;
}
.dl-admin-bar .da-btn:hover{background:var(--green-900);transform:translateY(-1px)}

/* 파일 카테고리 그룹 */
.dl-group{margin-bottom:26px}
.dl-group-head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:14px;padding-left:14px;
  border-left:4px solid var(--green-500);
}
.dl-group-head h2{
  font-size:20px;font-weight:800;color:var(--green-900);margin:0;
}
.dl-group-head .dl-badge{
  background:var(--green-100);color:var(--green-700);
  padding:3px 10px;border-radius:6px;
  font-size:11.5px;font-weight:800;letter-spacing:.3px;
}

/* 파일 아이템 (다운로드 행) */
.dl-files{
  display:flex;flex-direction:column;gap:8px;
}
.dl-file{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:#fff;border:1.5px solid #e5ebe7;border-radius:12px;
  padding:16px 20px;transition:all .2s;cursor:pointer;
}
.dl-file:hover{
  border-color:var(--green-500);
  box-shadow:0 8px 18px rgba(45,90,61,.08);
  transform:translateX(2px);
}
.dl-file .dl-f-left{
  display:flex;align-items:center;gap:12px;flex:1;min-width:0;
}
.dl-file .dl-f-ico{
  width:42px;height:42px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:900;flex-shrink:0;color:#fff;
}
.dl-file .dl-f-ico.t-exe{background:#2D6A4F}
.dl-file .dl-f-ico.t-pdf{background:#d33}
.dl-file .dl-f-ico.t-zip{background:#f5a623}
.dl-file .dl-f-ico.t-doc{background:#1d4ed8}
.dl-file .dl-f-info{flex:1;min-width:0}
.dl-file .dl-f-title{
  font-size:15px;color:var(--green-900);font-weight:800;line-height:1.4;
  margin-bottom:3px;
}
.dl-file .dl-f-title .dl-tag{
  display:inline-block;background:#d33;color:#fff;
  padding:1px 7px;border-radius:4px;font-size:10.5px;font-weight:800;
  vertical-align:middle;margin-left:6px;letter-spacing:.3px;
}
.dl-file .dl-f-desc{
  font-size:12.5px;color:var(--gray-500);line-height:1.5;
}
.dl-file .dl-f-meta{
  font-size:12px;color:var(--gray-500);font-weight:700;text-align:right;
  flex-shrink:0;
}
.dl-file .dl-f-meta .dl-f-size{
  display:block;color:var(--green-700);font-weight:800;font-size:13px;
}
.dl-file .dl-f-actions{
  display:flex;gap:6px;flex-shrink:0;
}
.dl-file .dl-f-btn{
  padding:9px 14px;border-radius:8px;
  background:var(--green-700);color:#fff;
  font-size:12.5px;font-weight:800;cursor:pointer;border:none;
  display:inline-flex;align-items:center;gap:5px;
  font-family:inherit;transition:all .15s;
}
.dl-file .dl-f-btn:hover{background:var(--green-900)}
.dl-file .dl-f-btn.edit{
  background:transparent;color:var(--gray-500);
  border:1.5px solid #d4dcd6;
}
.dl-file .dl-f-btn.edit:hover{border-color:var(--green-500);color:var(--green-700)}

/* 업로드 모달 */
.dl-modal-overlay{
  position:fixed;inset:0;background:rgba(15,24,20,.65);
  z-index:9000;display:none;align-items:center;justify-content:center;
  padding:20px;backdrop-filter:blur(4px);
}
.dl-modal-overlay.open{display:flex}
.dl-modal{
  background:#fff;border-radius:18px;
  max-width:640px;width:100%;max-height:90vh;overflow-y:auto;
  box-shadow:0 24px 60px rgba(0,0,0,.30);
}
.dl-modal-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 26px 16px;border-bottom:1px solid #ececec;
}
.dl-modal-head h3{
  font-size:19px;color:var(--green-900);font-weight:900;margin:0;
}
.dl-modal-head .dl-close{
  background:none;border:none;font-size:28px;color:var(--gray-500);
  cursor:pointer;line-height:1;padding:0;
}
.dl-modal-head .dl-close:hover{color:var(--green-900)}
.dl-modal-body{padding:22px 26px}
.dl-modal-body .dl-field{margin-bottom:16px}
.dl-modal-body .dl-field label{
  display:block;font-size:13px;font-weight:800;color:var(--green-900);
  margin-bottom:6px;
}
.dl-modal-body .dl-field label .req{color:#d33;margin-left:3px}
.dl-modal-body .dl-field input,
.dl-modal-body .dl-field select,
.dl-modal-body .dl-field textarea{
  width:100%;padding:11px 14px;border:1.5px solid #d4dcd6;border-radius:8px;
  font-size:14px;font-family:inherit;color:#222;background:#fff;
  transition:border-color .15s;
}
.dl-modal-body .dl-field input:focus,
.dl-modal-body .dl-field select:focus,
.dl-modal-body .dl-field textarea:focus{
  outline:none;border-color:var(--green-500);
}
.dl-modal-body .dl-field textarea{min-height:80px;resize:vertical}
.dl-modal-body .dl-field .dl-hint{
  font-size:11.5px;color:var(--gray-500);margin-top:4px;
}
.dl-modal-foot{
  display:flex;gap:10px;justify-content:flex-end;
  padding:16px 26px 22px;border-top:1px solid #ececec;
}
.dl-modal-foot button{
  padding:11px 22px;border-radius:8px;font-weight:800;font-size:13.5px;
  cursor:pointer;border:none;font-family:inherit;transition:all .15s;
}
.dl-modal-foot .dl-cancel{background:#fff;color:var(--gray-700);border:1.5px solid #d4dcd6}
.dl-modal-foot .dl-cancel:hover{border-color:var(--gray-500);color:#222}
.dl-modal-foot .dl-submit{background:var(--green-700);color:#fff}
.dl-modal-foot .dl-submit:hover{background:var(--green-900)}

@media (max-width:768px){
  .dl-admin-bar{padding:12px 16px;flex-direction:column;align-items:flex-start}
  .dl-admin-bar .da-btn{width:100%;justify-content:center}
  .dl-file{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 16px}
  .dl-file .dl-f-meta{text-align:left}
  .dl-file .dl-f-actions{width:100%}
  .dl-file .dl-f-btn{flex:1;justify-content:center}
}

/* ============================================================
   [추가 v21] 원격지원 - Chrome 원격 데스크톱
   ============================================================ */

/* 메인 히어로 (구글 톤) */
.cr-hero{
  background:linear-gradient(135deg,#1a73e8 0%,#34a853 100%);
  border-radius:20px;padding:34px 38px;margin:18px 0 24px;
  color:#fff;position:relative;overflow:hidden;
}
.cr-hero::before{
  content:"";position:absolute;top:-50px;right:-30px;width:240px;height:240px;
  background:radial-gradient(circle,rgba(251,188,5,.20) 0%,transparent 65%);
  pointer-events:none;
}
.cr-hero::after{
  content:"🖥️";position:absolute;bottom:-10px;right:30px;
  font-size:120px;opacity:.12;line-height:1;pointer-events:none;
}
.cr-hero .cr-eyebrow{
  display:inline-block;background:rgba(255,255,255,.20);color:#fff;
  padding:6px 14px;border-radius:8px;font-size:12px;font-weight:800;
  letter-spacing:1px;margin-bottom:14px;backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.25);
}
.cr-hero h2{
  font-size:30px;font-weight:900;line-height:1.3;margin-bottom:10px;
  position:relative;z-index:2;max-width:680px;
}
.cr-hero h2 em{font-style:normal;color:#fbbc05}
.cr-hero p{
  font-size:15.5px;color:rgba(255,255,255,.95);line-height:1.7;
  position:relative;z-index:2;max-width:660px;margin-bottom:20px;
}
.cr-hero-actions{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:2}
.cr-hero-btn{
  padding:13px 24px;border-radius:10px;font-weight:800;font-size:14.5px;
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  transition:all .2s ease;border:none;font-family:inherit;
  text-decoration:none;
}
.cr-hero-btn.btn-yellow{
  background:#fbbc05;color:#1B4332;
  box-shadow:0 6px 18px rgba(251,188,5,.35);
}
.cr-hero-btn.btn-yellow:hover{background:#f5a623;transform:translateY(-2px)}
.cr-hero-btn.btn-outline{
  background:rgba(255,255,255,.10);color:#fff;
  border:1.5px solid rgba(255,255,255,.30);backdrop-filter:blur(4px);
}
.cr-hero-btn.btn-outline:hover{background:rgba(255,255,255,.20)}

/* 장점 카드 (5개) */
.cr-benefits{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;margin:20px 0 28px;
}
.cr-benefit{
  background:#fff;border:1.5px solid #e5ebe7;border-radius:14px;
  padding:22px 18px;text-align:center;transition:all .25s;
}
.cr-benefit:hover{
  border-color:#1a73e8;transform:translateY(-4px);
  box-shadow:0 10px 24px rgba(26,115,232,.12);
}
.cr-benefit .cr-bn-ico{font-size:38px;margin-bottom:8px;line-height:1}
.cr-benefit h4{font-size:15px;color:var(--green-900);font-weight:800;margin-bottom:6px}
.cr-benefit p{font-size:12.5px;color:var(--gray-700);line-height:1.6;margin:0}

/* 단계별 절차 */
.cr-steps{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
  margin:20px 0 28px;position:relative;
}
.cr-step{
  background:#fff;border:1.5px solid #e5ebe7;border-radius:14px;
  padding:24px 22px;position:relative;transition:all .25s;
}
.cr-step:hover{border-color:var(--green-500);box-shadow:0 8px 20px rgba(45,90,61,.08)}
.cr-step .cr-step-num{
  position:absolute;top:-14px;left:22px;
  width:32px;height:32px;background:#1a73e8;color:#fff;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:14px;box-shadow:0 4px 10px rgba(26,115,232,.30);
}
.cr-step h4{
  font-size:16px;color:var(--green-900);font-weight:800;margin-bottom:10px;
  padding-top:6px;display:flex;align-items:center;gap:8px;
}
.cr-step h4 .cr-step-emoji{font-size:22px}
.cr-step p{font-size:13.5px;color:var(--gray-700);line-height:1.7;margin-bottom:10px}
.cr-step .cr-step-link{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;background:#1a73e8;color:#fff;
  border-radius:8px;font-size:13px;font-weight:700;
  transition:all .15s;
}
.cr-step .cr-step-link:hover{background:#1557b0}
.cr-step .cr-step-note{
  background:#f8f9fa;border-radius:8px;padding:10px 12px;
  font-size:12.5px;color:var(--gray-700);line-height:1.6;
  margin-top:10px;border-left:3px solid #fbbc05;
}
.cr-step .cr-step-note strong{color:#5a3d00}

/* 큰 CTA 박스 */
.cr-cta-box{
  background:linear-gradient(135deg,#e8f0fe 0%,#fff 100%);
  border:2px solid #1a73e8;border-radius:16px;
  padding:30px 34px;text-align:center;margin:28px 0;
}
.cr-cta-box h3{
  font-size:22px;color:#1557b0;font-weight:900;margin-bottom:10px;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.cr-cta-box p{
  font-size:14.5px;color:var(--gray-700);line-height:1.7;margin-bottom:20px;
}
.cr-cta-box .cr-cta-btn{
  display:inline-flex;align-items:center;gap:10px;
  background:#1a73e8;color:#fff;padding:14px 32px;
  border-radius:12px;font-weight:800;font-size:16px;
  text-decoration:none;transition:all .2s;
  box-shadow:0 6px 20px rgba(26,115,232,.35);
}
.cr-cta-box .cr-cta-btn:hover{
  background:#1557b0;transform:translateY(-2px);
  box-shadow:0 10px 28px rgba(26,115,232,.45);
}
.cr-cta-box .cr-cta-sub{
  font-size:12.5px;color:var(--gray-500);margin-top:14px;
}

.anydesk-hero{
  background:linear-gradient(135deg,#184c35 0%,#2d6a4f 100%);
}
.anydesk-hero::before{
  background:radial-gradient(circle,rgba(255,193,7,.18) 0%,transparent 65%);
}
.anydesk-hero h2 em{color:#ffc107}
.anydesk-download-box{
  background:linear-gradient(135deg,#eef5ff 0%,#fff 100%);
}
.anydesk-download-box .cr-cta-btn{
  background:#1a73e8;
}

/* 모바일 반응형 */
@media (max-width:768px){
  .cr-hero{padding:24px 22px;border-radius:14px}
  .cr-hero h2{font-size:22px}
  .cr-hero p{font-size:14px}
  .cr-hero-actions{flex-direction:column}
  .cr-hero-btn{width:100%;justify-content:center}
  .cr-benefits{grid-template-columns:repeat(2,1fr);gap:10px}
  .cr-benefit{padding:18px 14px}
  .cr-steps{grid-template-columns:1fr;gap:18px}
  .cr-cta-box{padding:24px 22px}
  .cr-cta-box h3{font-size:18px}
}

/* ============================================================
   [추가 v21] 임도 자료실 게시판 (data-board)
   - 사용자 자료 공유·등록 게시판
   - 4개 페이지에 공통 적용: 설계/감리/시공 자료실 + 임도 지침법
   - 파일 타입 뱃지, 다운로드 카운트, 추천 등 게시판 표준 요소
   ============================================================ */

/* 자료실 상단 통계 카드 */
.db-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 22px;
}
.db-stat{
  background:linear-gradient(180deg,#f0f7f2 0%,#fff 100%);
  border:1px solid #d4dcd6;border-radius:12px;padding:16px 14px;text-align:center;
}
.db-stat .db-stat-num{
  font-size:22px;font-weight:800;color:var(--green-700);line-height:1.1;
}
.db-stat .db-stat-label{
  font-size:12px;color:var(--gray-500);margin-top:4px;font-weight:600;
}

/* 자료실 툴바 (검색 + 필터 + 등록 버튼) */
.db-toolbar{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  background:#fff;border:1px solid #e5ebe7;border-radius:12px;
  padding:14px 16px;margin-bottom:14px;
}
.db-search{
  flex:1;min-width:200px;display:flex;gap:8px;
}
.db-search input{
  flex:1;padding:10px 14px;border:1.5px solid #d4dcd6;border-radius:8px;
  font-family:inherit;font-size:14px;background:#fafcfa;color:#1f2d1f;
}
.db-search input:focus{
  outline:none;border-color:#2d5a3d;background:#fff;
  box-shadow:0 0 0 3px rgba(45,90,61,.1);
}
.db-search select{
  padding:10px 12px;border:1.5px solid #d4dcd6;border-radius:8px;
  font-family:inherit;font-size:13.5px;background:#fafcfa;color:#1f2d1f;
  cursor:pointer;
}
.db-search button{
  padding:10px 18px;background:#2d5a3d;color:#fff;border:none;
  border-radius:8px;font-weight:700;font-size:13.5px;cursor:pointer;
  font-family:inherit;transition:background .2s;
}
.db-search button:hover{background:#1f4128}
.db-upload-btn{
  padding:10px 18px;background:#fff;color:var(--green-700);
  border:1.5px solid var(--green-700);border-radius:8px;
  font-weight:700;font-size:13.5px;cursor:pointer;
  font-family:inherit;transition:all .2s;display:inline-flex;align-items:center;gap:6px;
}
.db-upload-btn:hover{background:var(--green-100)}

/* 자료실 게시판 테이블 */
.db-board{
  background:#fff;border:1px solid #e5ebe7;border-radius:12px;overflow:hidden;
}
.db-table{
  width:100%;border-collapse:collapse;font-size:14px;
}
.db-table thead th{
  background:#f5f7f4;color:#1f2d1f;font-weight:700;
  padding:13px 14px;text-align:left;font-size:13px;
  border-bottom:2px solid #e5ebe7;letter-spacing:.3px;white-space:nowrap;
}
.db-table thead th.th-no{width:76px;text-align:center}
.db-table thead th.th-file{width:104px;text-align:center}
.db-table thead th.th-author{width:110px;text-align:center}
.db-table thead th.th-date{width:96px;text-align:center}
.db-table thead th.th-down{width:78px;text-align:center}
.db-table thead th.th-like{width:64px;text-align:center}

.db-table tbody tr{
  border-bottom:1px solid #f0f2ef;transition:background .15s ease;cursor:pointer;
}
.db-table tbody tr:last-child{border-bottom:0}
.db-table tbody tr:hover{background:#fafcfa}
.db-table tbody tr.db-pinned{background:#fff8e1}
.db-table tbody tr.db-pinned:hover{background:#fff3c4}

.db-table tbody td{
  padding:14px 14px;vertical-align:middle;color:#1f2d1f;
}
.db-table .td-no{text-align:center;color:var(--gray-500);font-weight:600;font-size:13px}
.db-table .td-no .db-pin{
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  min-width:54px;height:28px;padding:0 10px;border-radius:999px;
  background:linear-gradient(135deg,#ffb020 0%,#f97316 100%);
  color:#fff;font-size:12px;font-weight:900;line-height:1;letter-spacing:0;
  white-space:nowrap;box-shadow:0 7px 14px rgba(249,115,22,.24);
}
.db-table .td-no .db-pin::before{
  content:"";
  width:6px;height:6px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 3px rgba(255,255,255,.22);
}
.db-table .td-title{font-weight:600;color:#1f2d1f;font-size:14.5px;line-height:1.5}
.db-table .td-title a{color:#1f2d1f;display:inline-block}
.db-table .td-title a:hover{color:var(--green-700)}
.db-table .td-title .db-new{
  display:inline-block;background:#d33;color:#fff;font-size:10px;
  padding:1px 5px;border-radius:3px;margin-left:6px;font-weight:700;
  vertical-align:middle;letter-spacing:.3px;
}
.db-table .td-title .db-tags{margin-top:5px;display:flex;gap:6px;flex-wrap:wrap}
.db-table .td-title .db-tag{
  font-size:11px;color:var(--green-700);background:var(--green-100);
  padding:2px 7px;border-radius:4px;font-weight:600;
}
.db-table .td-file{text-align:center;white-space:nowrap}
.db-table .td-author{text-align:center;color:var(--gray-700);font-size:13px}
.db-table .td-author .db-badge-staff{
  display:inline-block;background:var(--green-700);color:#fff;
  font-size:10px;padding:1px 5px;border-radius:3px;margin-right:4px;font-weight:700;letter-spacing:.3px;
}
.db-table .td-date{text-align:center;color:var(--gray-500);font-size:12.5px}
.db-table .td-down{text-align:center;color:var(--gray-700);font-weight:700;font-size:13px}
.db-table .td-like{text-align:center;color:#d33;font-weight:700;font-size:13px}

/* 파일 타입 뱃지 */
.db-ftype{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:72px;padding:5px 10px;
  border-radius:5px;font-size:11px;font-weight:800;color:#fff;
  letter-spacing:0;text-align:center;line-height:1;white-space:nowrap;
}
.db-ftype.f-hwp{background:#0066cc}
.db-ftype.f-doc,.db-ftype.f-docx{background:#2b579a}
.db-ftype.f-xls,.db-ftype.f-xlsx{background:#217346}
.db-ftype.f-ppt,.db-ftype.f-pptx{background:#d04423}
.db-ftype.f-pdf{background:#cc2929}
.db-ftype.f-dwg{background:#7b4ea3}
.db-ftype.f-zip{background:#666}
.db-ftype.f-frp{background:#1b4332}
.db-ftype.f-img,.db-ftype.f-jpg,.db-ftype.f-png{background:#e67e22}

/* 다운로드 페이지네이션 */
.db-pagination{
  display:flex;justify-content:center;align-items:center;gap:6px;
  margin-top:20px;padding:14px 0;
}
.db-pagination a, .db-pagination span{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;height:34px;padding:0 10px;border-radius:6px;
  font-size:13px;color:var(--gray-700);font-weight:600;
  border:1px solid #e5ebe7;background:#fff;cursor:pointer;transition:all .15s;
}
.db-pagination a:hover{background:var(--green-100);border-color:var(--green-300);color:var(--green-700)}
.db-pagination .db-pg-active{
  background:var(--green-700);color:#fff;border-color:var(--green-700);cursor:default;
}
.db-pagination .db-pg-disabled{
  color:#bbb;background:#fafafa;cursor:not-allowed;
}

/* 자료 등록 모달 */
.db-modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.45);
  display:none;align-items:flex-start;justify-content:center;
  z-index:9999;overflow-y:auto;padding:60px 20px;
}
.db-modal-overlay.open{display:flex}
.db-modal{
  background:#fff;border-radius:14px;width:100%;max-width:560px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden;
  animation:dbModalIn .25s ease-out;
}
@keyframes dbModalIn{
  from{transform:translateY(-20px);opacity:0}
  to{transform:translateY(0);opacity:1}
}
.db-modal-head{
  background:linear-gradient(135deg,#2d5a3d 0%,#4a7c59 100%);
  color:#fff;padding:22px 26px;display:flex;justify-content:space-between;align-items:center;
}
.db-modal-head h3{font-size:18px;font-weight:800;margin:0;display:flex;align-items:center;gap:8px}
.db-modal-head .db-close{
  background:transparent;border:none;color:#fff;font-size:22px;cursor:pointer;
  width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  transition:background .15s;
}
.db-modal-head .db-close:hover{background:rgba(255,255,255,.18)}
.db-modal-body{padding:24px 26px}
.db-modal-body .qf-field{margin-bottom:16px}
.db-modal-body .qf-field:last-child{margin-bottom:0}
.db-modal-body .qf-field label{
  display:block;font-size:13.5px;font-weight:700;color:#1f2d1f;margin-bottom:7px;
}
.db-modal-body .qf-field label .req{color:#d33;margin-left:2px}
.db-modal-body .qf-field input[type="text"],
.db-modal-body .qf-field textarea,
.db-modal-body .qf-field select{
  width:100%;padding:11px 14px;border:1.5px solid #d4dcd6;border-radius:8px;
  font-family:inherit;font-size:14px;background:#fafcfa;color:#1f2d1f;
}
.db-modal-body .qf-field input:focus,
.db-modal-body .qf-field textarea:focus,
.db-modal-body .qf-field select:focus{
  outline:none;border-color:#2d5a3d;background:#fff;
  box-shadow:0 0 0 3px rgba(45,90,61,.1);
}
.db-modal-body .qf-field textarea{min-height:80px;resize:vertical}
.db-modal-body .db-file-input{
  border:1.5px dashed #d4dcd6;border-radius:8px;padding:22px;
  text-align:center;cursor:pointer;background:#fafcfa;transition:all .15s;
}
.db-modal-body .db-file-input:hover{border-color:var(--green-700);background:var(--green-100)}
.db-modal-body .db-file-input.dragover{border-color:var(--green-700);background:#e8f5ee;box-shadow:0 0 0 4px rgba(45,90,61,.12)}
.db-modal-body .db-file-input .db-file-ico{font-size:30px;margin-bottom:6px}
.db-modal-body .db-file-input .db-file-text{font-size:13.5px;color:var(--gray-700);font-weight:600}
.db-modal-body .db-file-input .db-file-sub{font-size:12px;color:var(--gray-500);margin-top:4px}
.db-modal-foot{
  padding:18px 26px 24px;display:flex;gap:10px;
  border-top:1px solid #f0f2ef;background:#fafcfa;
}
.db-modal-foot button{
  flex:1;padding:12px;border-radius:8px;font-weight:700;font-size:14px;
  cursor:pointer;font-family:inherit;transition:all .2s;border:none;
}
.db-modal-foot .db-btn-submit{background:#2d5a3d;color:#fff;flex:2}
.db-modal-foot .db-btn-submit:hover{background:#1f4128}
.db-modal-foot .db-btn-submit:disabled{
  background:#d7e2db;
  color:#7b8d84;
  cursor:not-allowed;
  box-shadow:none;
}
.db-modal-foot .db-btn-submit:disabled:hover{background:#d7e2db}
.db-modal-foot .db-btn-cancel{
  background:#fff;color:var(--gray-700);border:1.5px solid #d4dcd6;
}
.db-modal-foot .db-btn-cancel:hover{background:#f5f7f4}
.db-modal-notice{
  background:#fff8e1;border:1px solid #f5d76e;border-radius:8px;
  padding:12px 14px;margin-top:14px;font-size:12.5px;color:#856404;line-height:1.6;
}

/* 임도 지침법 페이지의 공식 법령 카드 */
.db-law-cards{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:16px 0 24px;
}
.db-law-card{
  background:#fff;border:1.5px solid #d4dcd6;border-radius:12px;padding:20px 22px;
  border-left:4px solid var(--green-700);transition:all .2s;
}
.db-law-card:hover{box-shadow:0 6px 18px rgba(45,90,61,.10);transform:translateY(-2px)}
.db-law-card .db-law-icon{font-size:22px;margin-bottom:8px}
.db-law-card h4{font-size:15.5px;color:var(--green-900);margin-bottom:6px;font-weight:800;line-height:1.4}
.db-law-card p{font-size:13px;color:var(--gray-700);line-height:1.6;margin:0}
.db-law-card .db-law-meta{margin-top:10px;font-size:12px;color:var(--gray-500)}

/* 모바일 반응형 */
@media (max-width:768px){
  .db-stats{grid-template-columns:repeat(2,1fr)}
  .db-toolbar{flex-direction:column;align-items:stretch}
  .db-search{width:100%}
  .db-upload-btn{width:100%;justify-content:center}
  /* 테이블 → 카드형으로 변환 */
  .db-table thead{display:none}
  .db-table, .db-table tbody, .db-table tr, .db-table td{display:block;width:100%}
  .db-table tbody tr{
    border:1px solid #e5ebe7;border-radius:10px;
    margin-bottom:10px;padding:14px;
  }
  .db-table .td-no{
    display:inline-block;width:auto;padding:0;margin-right:8px;
    font-size:12px;color:var(--gray-500);
  }
  .db-table .td-file{
    display:inline-block;width:auto;padding:0;margin-left:4px;
  }
  .db-table .td-title{padding:8px 0 6px;font-size:14.5px}
  .db-table .td-author,
  .db-table .td-date,
  .db-table .td-down,
  .db-table .td-like{
    display:inline-block;width:auto;padding:2px 0;
    margin-right:14px;font-size:12.5px;text-align:left;
  }
  .db-table .td-author::before{content:"작성: ";color:var(--gray-500)}
  .db-table .td-date::before{content:"";}
  .db-table .td-down::before{content:"⬇ ";color:var(--gray-500)}
  .db-table .td-like::before{content:"♥ ";color:var(--gray-500)}
  .db-modal{margin:0 auto}
}

/* ============================================================
   [추가] 매뉴얼 페이지 전용 스타일
   ============================================================ */
.manual-actions{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
  margin:24px 0 30px;
}
.ma-btn{
  display:flex;align-items:center;gap:14px;padding:18px 20px;
  border-radius:12px;text-decoration:none;
  transition:all .2s ease;border:1.5px solid transparent;
}
.ma-btn-primary{
  background:linear-gradient(135deg,#1B4332 0%,#2D6A4F 100%);
  color:#fff;border-color:#1B4332;
}
.ma-btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(27,67,50,.3)}
.ma-btn-outline{background:#fff;color:#1f2d1f;border-color:#d4dcd6}
.ma-btn-outline:hover{border-color:#2D6A4F;background:#f0f7f2;transform:translateY(-2px)}
.ma-ico{font-size:30px;flex-shrink:0}
.ma-btn strong{display:block;font-size:15px;font-weight:700;letter-spacing:-.3px}
.ma-btn small{display:block;font-size:12px;opacity:.85;margin-top:2px}
.ma-btn-primary small{color:#B7E4C7}
.ma-btn-outline small{color:#6b7d6f}

.manual-viewer{
  margin:8px 0 34px;
  border:1px solid #d9e3dc;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 8px 28px rgba(27,67,50,.10);
  background:#fff;
}
.manual-viewer .mv-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:12px 16px;
  background:#1B4332;
  color:#fff;
}
.manual-viewer .mv-title{
  font-weight:800;
  font-size:15px;
  letter-spacing:-.3px;
}
.manual-viewer .mv-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.manual-viewer .mv-link,
.manual-viewer .mv-close{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:7px 12px;
  border-radius:8px;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(255,255,255,.12);
  color:#fff;
  transition:background .15s,color .15s;
}
.manual-viewer .mv-link:hover{background:#fff;color:#1B4332}
.manual-viewer .mv-close:hover{background:#fff;color:#9A3412;border-color:#fff}
.manual-viewer .mv-frame{
  display:block;
  width:100%;
  height:78vh;
  min-height:520px;
  border:0;
  background:#fff;
}

.manual-toc{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;
  margin-bottom:30px;
}
.mtoc-section{
  background:#fff;border:1px solid #e5ebe7;border-radius:14px;
  padding:22px 20px;transition:all .2s ease;
}
.mtoc-section:hover{box-shadow:0 6px 18px rgba(0,0,0,.06)}
.mtoc-section-head{
  display:flex;align-items:center;gap:10px;
  padding-bottom:14px;margin-bottom:14px;
  border-bottom:1px solid #f0f2ef;
}
.mtoc-section-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.mtoc-section-title{
  font-size:17px;font-weight:800;color:#1f2d1f;
  letter-spacing:-.3px;flex:1;
}
.mtoc-section-count{
  font-size:12px;color:#6b7d6f;background:#f5f7f4;
  padding:3px 10px;border-radius:12px;font-weight:600;
}
.mtoc-list{display:flex;flex-direction:column;gap:6px}
.mtoc-item{
  display:flex;align-items:center;gap:12px;
  padding:10px 14px;border-radius:8px;
  background:#fafcfa;transition:all .15s ease;
}
.mtoc-item:hover{background:#f0f7f2;transform:translateX(3px)}
.mtoc-no{
  width:26px;height:26px;border-radius:50%;
  background:#2d5a3d;color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;flex-shrink:0;
}
.mtoc-name{font-size:14px;font-weight:600;color:#1f2d1f}

.print-guide{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  margin-bottom:24px;
}
.pg-step{
  background:linear-gradient(180deg,#f0f7f2 0%,#fff 100%);
  border:1px solid #d4dcd6;border-radius:12px;
  padding:20px 16px;text-align:center;
}
.pg-step-no{
  background:#2d5a3d;color:#fff;
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;margin:0 auto 12px;
}
.pg-step h4{color:#2d5a3d;font-size:14px;margin-bottom:8px}
.pg-step p{color:#6b7d6f;font-size:12.5px;line-height:1.6}
kbd{
  display:inline-block;background:#fff;color:#1f2d1f;
  padding:2px 7px;border:1px solid #d4dcd6;border-bottom-width:2px;
  border-radius:5px;font-family:monospace;font-size:11px;
  font-weight:700;box-shadow:0 1px 0 rgba(0,0,0,.04);
  margin:0 2px;
}

/* ============================================================
   [추가] 동영상 페이지 전용 스타일
   ============================================================ */
.vid-tabs{
  display:flex;gap:8px;margin-bottom:28px;
  border-bottom:2px solid #f0f2ef;
}
.vid-tab{
  background:transparent;border:none;cursor:pointer;
  padding:14px 22px;font-family:inherit;font-size:14.5px;
  color:#6b7d6f;font-weight:600;
  border-bottom:3px solid transparent;
  margin-bottom:-2px;
  display:flex;align-items:center;gap:8px;
  transition:all .15s ease;
}
.vid-tab:hover{color:#2d5a3d;background:#fafcfa}
.vid-tab.active{color:#1f2d1f;border-bottom-color:#2d5a3d;font-weight:800}
.vt-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.vt-count{
  background:#e5ebe7;color:#6b7d6f;padding:2px 8px;
  border-radius:10px;font-size:11px;font-weight:700;
}
.vid-tab.active .vt-count{background:#2d5a3d;color:#fff}

.vid-section{display:none}
.vid-section.active{display:block}
.vid-section-title{
  display:flex;align-items:center;gap:10px;
  font-size:18px;font-weight:800;color:#1f2d1f;
  margin-bottom:18px;letter-spacing:-.3px;
}
.vst-dot{width:10px;height:10px;border-radius:50%;display:inline-block}

.vid-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:18px;
}
.vid-card{
  background:#fff;border:1px solid #e5ebe7;border-radius:14px;
  overflow:hidden;cursor:pointer;
  transition:all .25s ease;
}
.vid-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 28px rgba(0,0,0,.1);
  border-color:#2d5a3d;
}
.vid-card:focus-visible{
  outline:3px solid rgba(45,106,79,.28);
  outline-offset:3px;
  border-color:#2d5a3d;
}
.vid-thumb{
  aspect-ratio:16/9;width:100%;
  position:relative;
  display:flex;align-items:center;justify-content:center;
  color:#fff;
}
.vid-thumb::before{
  content:"";position:absolute;inset:0;
  background:rgba(0,0,0,.08);
}
.vid-ch{
  position:absolute;top:12px;left:12px;
  background:rgba(0,0,0,.4);color:#fff;
  padding:4px 10px;border-radius:6px;
  font-size:11px;font-weight:700;letter-spacing:.5px;
  z-index:1;
}
.vid-play{
  font-size:48px;position:relative;z-index:1;
  text-shadow:0 4px 12px rgba(0,0,0,.3);
  transition:transform .2s ease;
}
.vid-card:hover .vid-play{transform:scale(1.15)}
.vid-info{padding:16px 18px 18px}
.vid-info h3{
  font-size:15.5px;font-weight:800;color:#1f2d1f;
  margin-bottom:8px;letter-spacing:-.3px;
}
.vid-info p{
  font-size:13px;color:#6b7d6f;line-height:1.55;
  margin-bottom:12px;min-height:40px;
}
.vid-meta{
  display:flex;gap:12px;font-size:12px;color:#6b7d6f;
  padding-top:10px;border-top:1px solid #f0f2ef;
}

@media (max-width:768px){
  .manual-actions{grid-template-columns:1fr}
  .manual-toc{grid-template-columns:1fr}
  .manual-viewer .mv-frame{height:70vh;min-height:420px}
  .print-guide{grid-template-columns:repeat(2,1fr)}
  .vid-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
}

/* ============================================================
   [추가] 교육 안내 페이지 전용 스타일
   ============================================================ */
.edu-intro{
  background:#f5f7f4;border-left:4px solid #2D6A4F;
  border-radius:8px;padding:20px 24px;margin-bottom:26px;
}
.edu-intro p{margin-bottom:10px;font-size:14.5px;line-height:1.75;color:#1f2d1f}
.edu-intro p:last-child{margin-bottom:0}

.edu-next-box{
  background:linear-gradient(135deg,#fff8e1 0%,#fff 100%);
  border:2px solid #f39c12;border-radius:16px;
  padding:30px 28px;margin-bottom:30px;
  box-shadow:0 6px 20px rgba(243,156,18,.12);
}
.edu-next-tag{
  display:inline-block;background:#d33;color:#fff;
  padding:5px 14px;border-radius:20px;
  font-size:12px;font-weight:700;letter-spacing:.3px;
  margin-bottom:14px;
}
.edu-next-title{
  font-size:22px;font-weight:800;color:#1f2d1f;
  letter-spacing:-.4px;margin:0 0 10px;line-height:1.4;
}
.edu-next-sub{font-size:14px;color:#6b7d6f;margin-bottom:22px}
.edu-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.edu-info-item{
  background:#fff;border:1px solid #f5d76e;
  border-radius:10px;padding:16px 18px;
}
.eii-label{
  font-size:12px;font-weight:700;color:#d68910;
  letter-spacing:.3px;margin-bottom:8px;
}
.eii-value{font-size:15px;font-weight:700;color:#1f2d1f;line-height:1.5}
.eii-sub{
  display:block;font-size:12px;font-weight:500;
  color:#6b7d6f;margin-top:4px;
}

/* 방문 교육 안내 박스 */
.edu-visit-box{
  display:flex;gap:22px;
  background:linear-gradient(135deg,#f0f7f2 0%,#fafcfa 100%);
  border:1px solid #95D5B2;border-left:5px solid #2D6A4F;
  border-radius:14px;padding:26px 28px;margin-bottom:30px;
}
.evb-icon{
  font-size:42px;flex-shrink:0;
  width:60px;height:60px;border-radius:14px;
  background:#fff;border:1px solid #d4e8d8;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(45,90,61,.08);
}
.evb-content{flex:1}
.evb-content h3{
  font-size:18px;font-weight:800;color:#1f4128;
  margin-bottom:12px;letter-spacing:-.3px;
}
.evb-content p{
  font-size:14px;color:#1f2d1f;line-height:1.75;margin-bottom:10px;
}
.evb-content p:last-of-type{margin-bottom:0}
.evb-meta{
  display:flex;flex-wrap:wrap;gap:18px;
  margin-top:16px;padding-top:14px;
  border-top:1px dashed #95D5B2;
  font-size:13px;color:#2d5a3d;
}
.evb-meta span{display:flex;align-items:center;gap:4px}
.evb-meta strong{color:#1f4128}

@media (max-width:768px){
  .edu-visit-box{flex-direction:column;gap:14px;padding:22px}
  .evb-icon{font-size:32px;width:48px;height:48px}
}

.edu-curriculum{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.ec-item{
  display:flex;gap:18px;
  background:#fff;border:1px solid #e5ebe7;
  border-radius:12px;padding:18px 22px;
  transition:all .2s ease;
}
.ec-item:hover{border-color:#2D6A4F;transform:translateX(4px);box-shadow:0 4px 12px rgba(45,90,61,.08)}
.ec-no{
  width:42px;height:42px;border-radius:50%;
  background:linear-gradient(135deg,#2D6A4F,#1B4332);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:800;flex-shrink:0;
  box-shadow:0 4px 10px rgba(45,90,61,.25);
}
.ec-content h4{
  font-size:15.5px;font-weight:800;color:#1f2d1f;
  margin-bottom:6px;letter-spacing:-.3px;
}
.ec-content p{font-size:13.5px;color:#6b7d6f;line-height:1.65;margin:0}

.edu-applicant-list{
  border:1px solid #e5ebe7;border-radius:12px;overflow:hidden;
  background:#fff;margin-bottom:20px;
}
.eal-head,.eal-row{
  display:grid;
  grid-template-columns:60px 1.8fr 70px 1.6fr 1.4fr 1fr;
  gap:8px;align-items:center;
  padding:14px 18px;font-size:13.5px;
}
.eal-head{
  background:#1f4128;color:#fff;font-weight:700;font-size:13px;
  text-align:center;
}
.eal-head span{text-align:center}
.eal-row{border-bottom:1px solid #f0f2ef;transition:background .15s ease}
.eal-row:last-child{border-bottom:0}
.eal-row:hover{background:#fafcfa}
.eal-row .eal-no{
  text-align:center;background:#f5f7f4;color:#2d5a3d;
  width:30px;height:30px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:12px;margin:0 auto;
}
.eal-row .eal-company{font-weight:700;color:#1f2d1f}
.eal-row .eal-count{
  text-align:center;background:#fff3cd;color:#856404;
  padding:3px 8px;border-radius:5px;font-size:12px;
  font-weight:700;width:fit-content;margin:0 auto;
}
.eal-row .eal-name{color:#1f2d1f;text-align:center}
.eal-row .eal-phone{color:#6b7d6f;font-family:monospace;text-align:center;font-size:12.5px}
.eal-row .eal-time{color:#6b7d6f;font-size:12px;text-align:center}
.eal-row-empty{background:#fafcfa}
.eal-row-empty .eal-no{background:transparent;color:#999;font-weight:500}

.edu-progress{
  background:#fff;border:1px solid #e5ebe7;border-radius:12px;
  padding:18px 22px;
}
.ep-label{
  display:flex;justify-content:space-between;
  font-size:13.5px;color:#1f2d1f;margin-bottom:10px;
}
.ep-label strong{color:#2d5a3d;font-weight:800}
.ep-bar{
  background:#f0f2ef;border-radius:8px;height:14px;
  overflow:hidden;margin-bottom:10px;
}
.ep-bar-fill{
  background:linear-gradient(90deg,#52B788,#2D6A4F);
  height:100%;border-radius:8px;
  transition:width .4s ease;
}
.ep-status{text-align:right;font-size:12.5px;color:#d68910;font-weight:700}

@media (max-width:768px){
  .edu-info-grid{grid-template-columns:repeat(2,1fr)}
  .eal-head,.eal-row{
    grid-template-columns:40px 1.5fr 60px 1fr;
    font-size:12px;
  }
  .eal-head .eal-phone,.eal-head .eal-time,
  .eal-row .eal-phone,.eal-row .eal-time{display:none}
}

/* ============================================================
   [추가] 교육 일정 게시판 (다산소프트 스타일)
   ============================================================ */
.edu-board{
  border-top:2px solid #1f2d1f;
  border-bottom:1px solid #d4dcd6;
  background:#fff;margin-bottom:20px;
}
.edu-board-head,.edu-board-row{
  display:grid;
  grid-template-columns:60px 60px minmax(120px,.75fr) minmax(220px,.95fr) minmax(160px,.7fr) 80px 70px;
  align-items:center;
  font-size:14px;
}
.edu-board-head{
  background:#f5f7f4;
  padding:14px 12px;
  border-bottom:1px solid #e5ebe7;
  font-weight:700;color:#1f2d1f;
  text-align:center;font-size:13.5px;
}
.edu-board-head span{text-align:center}
.edu-board-row{
  padding:16px 12px;
  border-bottom:1px solid #f0f2ef;
  transition:background .15s ease;
}
.edu-board-row:last-child{border-bottom:0}
.edu-board-row:hover{background:#fafcfa}

.edu-board-row .ebh-no{text-align:center;color:#6b7d6f;font-size:13px}
.edu-board-row .ebh-file{text-align:center;color:#c4cdc7}
.edu-board-row .ebh-title{padding-left:6px}
.edu-board-row .ebh-date,
.edu-board-row .ebh-author,
.edu-board-row .ebh-view,
.edu-board-row .ebh-capacity{text-align:center}
.edu-board-row .ebh-title a{
  color:#1f2d1f;text-decoration:none;font-weight:600;
  font-size:14px;line-height:1.5;
  transition:color .15s ease;
}
.edu-board-row .ebh-title a:hover{color:#2d5a3d;text-decoration:underline}
.edu-board-row .ebh-author{text-align:center}
.edu-board-row .ebh-date{
  justify-self:center;
  min-width:190px;
  padding:7px 10px;
  border-radius:8px;
  background:#eef8f1;
  color:#24724b;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
  font-family:inherit;
}
.edu-board-row .ebh-view{
  text-align:center;color:#6b7d6f;font-size:13px;font-weight:600;
}

/* 공지 행 */
.edu-board-notice{
  background:#fffaf0;
}
.edu-board-notice:hover{background:#fff5e6}
.edu-board-notice .ebh-title a{
  color:#1f2d1f !important;font-weight:800;
}
.eb-badge-notice{
  display:inline-block;
  background:#2d5a3d;color:#fff;
  padding:4px 11px;border-radius:4px;
  font-size:11px;font-weight:700;letter-spacing:.5px;
}

/* 상태 뱃지 */
.eb-status{
  display:inline-block;
  padding:2px 8px;border-radius:4px;
  font-size:11px;font-weight:700;
  margin-left:6px;letter-spacing:.3px;
  vertical-align:middle;
}
.eb-status-open{
  background:#d4edda;color:#155724;
  animation:eb-blink 2s ease-in-out infinite;
}
.eb-status-closed{background:#e9ecef;color:#6c757d}
@keyframes eb-blink{
  0%,100%{opacity:1}
  50%{opacity:.55}
}

/* 댓글 수 */
.eb-comment{
  display:inline-block;color:#d33;
  font-size:12.5px;font-weight:700;
  margin-left:4px;
  vertical-align:middle;
}

/* 작성자 로고 */
.eb-author-logo{
  display:inline-block;
  background:linear-gradient(135deg,#1B4332,#2D6A4F);
  color:#fff;
  padding:5px 11px;border-radius:5px;
  font-size:11px;font-weight:700;letter-spacing:.3px;
  white-space:nowrap;
}

/* 페이지네이션 */
.edu-board-pagination{
  display:flex;justify-content:center;align-items:center;
  gap:6px;margin-top:24px;
}
.ebp-num,.ebp-arrow{
  display:flex;align-items:center;justify-content:center;
  min-width:32px;height:32px;
  border:1px solid #d4dcd6;border-radius:6px;
  background:#fff;color:#6b7d6f;
  font-size:13px;font-weight:600;
  text-decoration:none;
  transition:all .15s ease;
}
.ebp-num:hover,.ebp-arrow:hover{
  border-color:#2d5a3d;color:#2d5a3d;
}
.ebp-num.active{
  background:#2d5a3d;color:#fff;border-color:#2d5a3d;
}
.ebp-arrow{font-size:15px;font-weight:700}

@media (max-width:768px){
  .edu-board-head,.edu-board-row{
    grid-template-columns:40px minmax(0,.9fr) minmax(150px,1.35fr) 54px;
    gap:6px;font-size:12.5px;
  }
  .edu-board-head .ebh-file,
  .edu-board-head .ebh-author,
  .edu-board-head .ebh-capacity,
  .edu-board-row .ebh-file,
  .edu-board-row .ebh-author,
  .edu-board-row .ebh-capacity{display:none}
  .edu-board-row .ebh-date{
    min-width:0;
    width:100%;
    padding:6px 8px;
    font-size:12px;
  }
  .edu-board-row .ebh-title a{font-size:13px}
  .eb-status,.eb-comment{font-size:10.5px}
}

/* ============================================================
   [추가] 커뮤니티 게시판 (네이버 카페 스타일)
   ============================================================ */
.cf-header{
  display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(135deg,#f0f7f2 0%,#fafcfa 100%);
  border:1px solid #d4e8d8;border-radius:12px;
  padding:18px 22px;margin:24px 0 18px;
}
.cf-header-stats{display:flex;gap:24px}
.cf-stat{
  display:flex;flex-direction:column;gap:4px;
  font-size:13px;color:#1f2d1f;
}
.cf-stat-label{
  font-size:11.5px;color:#6b7d6f;font-weight:600;
  letter-spacing:.3px;
}
.cf-stat strong{font-size:18px;font-weight:800;color:#1f4128}
.cf-write-btn{
  display:flex;align-items:center;gap:6px;
  background:linear-gradient(135deg,#2D6A4F,#1B4332);
  color:#fff;border:none;border-radius:10px;
  padding:12px 22px;font-size:14px;font-weight:700;
  cursor:pointer;font-family:inherit;
  box-shadow:0 4px 12px rgba(45,90,61,.25);
  transition:all .2s ease;
}
.cf-write-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(45,90,61,.35)}

/* 말머리 필터 탭 */
.cf-tabs{
  display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;
}
.cf-tab{
  background:#fff;border:1px solid #d4dcd6;
  padding:8px 16px;border-radius:8px;cursor:pointer;
  font-family:inherit;font-size:13px;font-weight:600;
  color:#1f2d1f;
  display:flex;align-items:center;gap:6px;
  transition:all .15s ease;
}
.cf-tab:hover{border-color:#2d5a3d;background:#f0f7f2}
.cf-tab.active{
  background:#1f4128;color:#fff;border-color:#1f4128;
}
.cf-tab.active .cf-tag{filter:brightness(1.2)}

/* 검색 영역 */
.cf-search{
  display:flex;gap:8px;margin-bottom:18px;
}
.cf-search select,
.cf-search input{
  padding:10px 14px;font-size:13.5px;
  border:1px solid #d4dcd6;border-radius:8px;
  font-family:inherit;
  background:#fff;
}
.cf-search select{width:120px;cursor:pointer}
.cf-search input{flex:1}
.cf-search input:focus,
.cf-search select:focus{outline:none;border-color:#2d5a3d}
.cf-search-btn{
  background:#1f4128;color:#fff;border:none;
  padding:0 22px;border-radius:8px;cursor:pointer;
  font-family:inherit;font-size:13.5px;font-weight:700;
  white-space:nowrap;
  transition:background .15s ease;
}
.cf-search-btn:hover{background:#2d5a3d}

/* 게시판 본체 */
.cf-board{
  border-top:2px solid #1f2d1f;
  border-bottom:1px solid #d4dcd6;
  background:#fff;
}
.cf-board-head,.cf-row{
  display:grid;
  grid-template-columns:70px 1fr 130px 100px 70px 60px;
  align-items:center;
  gap:10px;
  padding:13px 14px;
  font-size:13.5px;
}
.cf-board-head{
  background:#f5f7f4;
  border-bottom:1px solid #e5ebe7;
  font-weight:700;color:#1f2d1f;
  text-align:center;font-size:13px;
}
.cf-board-head span{text-align:center}
.cf-row{
  border-bottom:1px solid #f0f2ef;
  transition:background .15s ease;
}
.cf-row:last-child{border-bottom:0}
.cf-row:hover{background:#fafcfa}
.cf-row .cf-c-tag{text-align:center}
.cf-row .cf-c-title{padding-left:8px}
.cf-row .cf-c-title a{
  color:#1f2d1f;text-decoration:none;font-weight:600;
  font-size:14px;line-height:1.5;
  transition:color .15s ease;
}
.cf-row .cf-c-title a:hover{color:#2d5a3d;text-decoration:underline}
.cf-row .cf-c-author{text-align:center;font-size:12.5px;color:#1f2d1f}
.cf-row .cf-c-date{text-align:center;color:#6b7d6f;font-size:12.5px;font-family:monospace}
.cf-row .cf-c-view{text-align:center;color:#6b7d6f;font-size:12.5px;font-weight:600}
.cf-row .cf-c-like{text-align:center;color:#d33;font-size:12.5px;font-weight:700}

/* 공지 행 */
.cf-row-notice{background:#fffaf0}
.cf-row-notice:hover{background:#fff5e6}
.cf-row-notice .cf-c-title a{color:#1f2d1f !important;font-weight:800}

/* 댓글 수 */
.cf-cmt{
  display:inline-block;color:#d33;
  font-size:12.5px;font-weight:700;
  margin-left:4px;vertical-align:middle;
}

/* 말머리 (말머리 뱃지) */
.cf-tag{
  display:inline-block;
  padding:3px 9px;border-radius:4px;
  font-size:11px;font-weight:700;
  letter-spacing:.3px;
  vertical-align:middle;
  min-width:36px;text-align:center;
}
.cf-tag-notice{background:#dc3545;color:#fff}
.cf-tag-must{background:#fd7e14;color:#fff}
.cf-tag-question{background:#0d6efd;color:#fff}
.cf-tag-info{background:#198754;color:#fff}
.cf-tag-free{background:#6c757d;color:#fff}

/* 작성자 등급 뱃지 */
.cf-grade{
  display:inline-block;
  background:#f5f7f4;color:#6b7d6f;
  width:18px;height:18px;border-radius:50%;
  font-size:10px;font-weight:800;
  text-align:center;line-height:18px;
  margin-left:3px;vertical-align:middle;
}
.cf-author-badge{
  display:inline-block;
  background:linear-gradient(135deg,#1B4332,#2D6A4F);
  color:#fff;
  padding:4px 10px;border-radius:5px;
  font-size:11.5px;font-weight:700;
  white-space:nowrap;
}
.cf-author-admin{background:linear-gradient(135deg,#1B4332,#2D6A4F)}

/* 페이지네이션 */
.cf-pagination{
  display:flex;justify-content:center;align-items:center;
  gap:5px;margin-top:24px;
}
.cf-pg-num,.cf-pg-arrow{
  display:flex;align-items:center;justify-content:center;
  min-width:34px;height:34px;
  border:1px solid #d4dcd6;border-radius:6px;
  background:#fff;color:#6b7d6f;
  font-size:13px;font-weight:600;
  text-decoration:none;
  transition:all .15s ease;
  padding:0 8px;
}
.cf-pg-num:hover,.cf-pg-arrow:hover{border-color:#2d5a3d;color:#2d5a3d}
.cf-pg-num.active{background:#2d5a3d;color:#fff;border-color:#2d5a3d}

/* 모바일 */
@media (max-width:768px){
  .cf-header{flex-direction:column;gap:14px;align-items:stretch}
  .cf-header-stats{justify-content:space-around}
  .cf-write-btn{justify-content:center}
  .cf-board-head,.cf-row{
    grid-template-columns:60px 1fr 80px;
    gap:6px;font-size:12.5px;
  }
  .cf-board-head .cf-c-author,
  .cf-board-head .cf-c-view,
  .cf-board-head .cf-c-like,
  .cf-row .cf-c-author,
  .cf-row .cf-c-view,
  .cf-row .cf-c-like{display:none}
  .cf-row .cf-c-title a{font-size:13px}
  .cf-tag{font-size:10px;padding:2px 6px;min-width:32px}
  .cf-search select{width:90px;font-size:12px}
  .cf-tabs{gap:4px}
  .cf-tab{padding:6px 10px;font-size:12px}
}

/* ============================================================
   [추가] @media print — 인쇄 모드 (PDF / 인쇄)
   ============================================================ */
@media print{
  header.site-header,
  footer.site-footer,
  .subpage-header,
  .subpage-sidebar,
  .manual-actions,
  .print-guide,
  .info-box,
  .vid-tabs,
  .ma-btn,
  .yt-section,
  .hero,
  nav{
    display:none !important;
  }
  body{
    background:#fff !important;
    color:#000 !important;
    font-size:11pt;line-height:1.6;
  }
  .subpage,
  .subpage-content,
  .subpage-layout{
    display:block !important;
    position:static !important;
    width:100% !important;
    max-width:100% !important;
    padding:0 !important;
    margin:0 !important;
    box-shadow:none !important;
    background:#fff !important;
  }
  .subpage h1{
    font-size:22pt;margin:0 0 14pt;
    border-bottom:2pt solid #000;padding-bottom:8pt;color:#000 !important;
  }
  .subpage h2{font-size:15pt;margin:14pt 0 10pt;color:#000 !important}
  .subpage h3{font-size:12pt;margin-top:10pt;color:#000 !important}
  .subpage p,.subpage li{font-size:10.5pt;color:#000 !important}
  a{color:#000 !important;text-decoration:none !important}
  .mtoc-section,.pg-step,.vid-card,.section,.timeline-item{page-break-inside:avoid}
  h2,h3{page-break-after:avoid}
  @page{size:A4;margin:18mm 16mm}
}
