/* 60대 친화 가독성·터치 영역 override
   적용 대상: 본문 텍스트, 게시판, 메뉴, 버튼, 폼
   메뉴 구조는 유지, 크기만 키움 */

/* === 1) 본문 텍스트 크기 ↑ === */
body { font-size: 16px; line-height: 1.7; }

/* container-content 안의 작은 글씨 한 단계씩 키움 */
.container-content .text-\[12px\] { font-size: 13px !important; line-height: 1.6 !important; }
.container-content .text-\[13px\] { font-size: 15px !important; line-height: 1.65 !important; }
.container-content .text-\[14px\] { font-size: 16px !important; line-height: 1.7 !important; }
.container-content .text-\[15px\] { font-size: 17px !important; line-height: 1.7 !important; }
.container-content .text-\[16px\] { font-size: 18px !important; line-height: 1.7 !important; }
.container-content .text-\[17px\] { font-size: 19px !important; line-height: 1.65 !important; }
.container-content .text-\[18px\] { font-size: 20px !important; line-height: 1.6 !important; }
.container-content .text-\[20px\] { font-size: 22px !important; line-height: 1.5 !important; }
.container-content .text-\[22px\] { font-size: 24px !important; line-height: 1.45 !important; }
.container-content .text-\[24px\] { font-size: 26px !important; }
.container-content .text-\[26px\] { font-size: 28px !important; }
.container-content .text-\[28px\] { font-size: 30px !important; }

/* === 2) 헤더 메뉴 키움 === */
header nav a { font-size: 19px !important; padding-left: 28px !important; padding-right: 28px !important; }
/* 드롭다운 서브메뉴 */
header nav .group-hover\:block a { font-size: 16px !important; padding-top: 14px !important; padding-bottom: 14px !important; }

/* 상단 유틸 메뉴 (로그인/회원가입/사이트맵) */
header .text-\[12px\] { font-size: 14px !important; }

/* === 3) 게시판 표 — 행 높이/글자 키움 === */
.container-content table th { font-size: 15px !important; padding: 16px 8px !important; }
.container-content table td { font-size: 16px !important; padding: 16px 8px !important; }
.container-content table td a { font-size: 16px !important; }

/* === 4) 버튼 / 카드 터치 영역 === */
.container-content .h-9 { height: 44px !important; padding-left: 14px !important; padding-right: 14px !important; }
.container-content .h-10 { height: 48px !important; padding-left: 18px !important; padding-right: 18px !important; }
.container-content button, .container-content [type="submit"] { min-height: 48px; }

/* 카드 내부 패딩 ↑ */
.container-content .card { padding: 24px !important; }
.container-content .card.p-6 { padding: 28px !important; }
.container-content .card.p-7 { padding: 32px !important; }

/* === 5) 폼 입력 칸 === */
.container-content input[type="text"],
.container-content input[type="email"],
.container-content input[type="tel"],
.container-content input[type="password"],
.container-content select,
.container-content textarea {
  font-size: 16px !important;
  min-height: 48px;
  padding: 10px 14px !important;
}

/* === 6) 사이드바 카드 글자 키움 === */
aside.space-y-4 .text-\[13px\] { font-size: 15px !important; }
aside.space-y-4 .text-\[14px\] { font-size: 16px !important; }
aside.space-y-4 .text-\[16px\] { font-size: 18px !important; }
aside.space-y-4 a { padding-top: 14px !important; padding-bottom: 14px !important; }

/* === 7) SUB HERO 텍스트 — 이미 충분히 큼, 손대지 않음 === */

/* === 8) 색 대비 강화 — 옅은 회색 글씨를 좀 더 진하게 === */
.container-content .text-ink-500 { color: #475569 !important; } /* slate-600 */
.container-content .text-ink-400 { color: #64748b !important; } /* slate-500 */

/* === 9) link underline 강조 (메뉴 외 본문 link) === */
.container-content article a:not(.btn-primary):not(.card):not(.no-underline):hover { text-decoration: underline; }

/* === 10) footer 글자도 약간 크게 === */
footer .text-\[11px\] { font-size: 13px !important; }
footer .text-\[12px\] { font-size: 14px !important; }
footer .text-\[13px\] { font-size: 15px !important; }

/* === 11) 그누보드 표준 폼 (register/login/memo/profile 등) tkb 디자인 === */
.register, .login_wrap, .mem_box, .write_div, #register_form, #login_fs, .memo_form_div {
  width: 100%;
}
#register_form, #register_form .form_01, .register_form_inner {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.register_form_inner h2 {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #0B2C5C !important;
  border-bottom: 2px solid #0B2C5C !important;
  padding-bottom: 10px !important;
  margin: 28px 0 18px !important;
}
.register_form_inner h2:first-of-type { margin-top: 0 !important; }
.register_form_inner ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.register_form_inner li {
  display: block !important;
  margin-bottom: 16px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.register_form_inner label,
.write_div label, .mem_box label {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #334155 !important;
  margin-bottom: 8px !important;
}
.frm_input, .full_input, input.required, input[type="text"].form-control, input[type="password"].form-control {
  width: 100% !important;
  height: 48px !important;
  padding: 10px 14px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  background: #fff !important;
  transition: border-color 0.15s, box-shadow 0.15s;
  box-shadow: none !important;
}
.frm_input:focus, .full_input:focus, input.required:focus {
  border-color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,0.15) !important;
  outline: none !important;
}
/* 버튼 */
.btn_submit, button.btn_submit, .btn_confirm .btn_submit,
.btn_b01, .btn_b02 {
  display: inline-flex !important; align-items: center; justify-content: center;
  height: 52px !important;
  padding: 0 28px !important;
  border-radius: 10px !important;
  background: #0B2C5C !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  border: 0 !important;
  cursor: pointer;
  transition: background 0.15s;
}
.btn_submit:hover, button.btn_submit:hover { background: #163e7d !important; }
.btn_close, .btn_cancel, .btn_b03 {
  display: inline-flex !important; align-items: center; justify-content: center;
  height: 52px !important;
  padding: 0 24px !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #475569 !important;
  border: 1px solid #cbd5e1 !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.btn_confirm {
  display: flex !important;
  gap: 10px;
  justify-content: center;
  margin-top: 28px !important;
}
/* tooltip 아이콘 */
.tooltip_icon { background: transparent !important; border: 0 !important; color: #94a3b8 !important; padding: 4px !important; }
.tooltip { font-size: 12px !important; color: #64748b !important; background: #f1f5f9; padding: 8px 12px; border-radius: 6px; margin-top: 6px; display: block; }

/* 약관·동의 등 일반 텍스트 영역 */
.register_form_inner p, .agree_box p { font-size: 15px !important; line-height: 1.7 !important; color: #475569 !important; }
.captcha img { border-radius: 6px; }

/* memo / message form */
.memo_form_div textarea, .write_div textarea {
  width: 100% !important;
  min-height: 160px !important;
  padding: 12px 14px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
}

/* 회원가입 step 표시 */
#register_form { padding-top: 0 !important; }

/* === 12) 50-70대 색 대비 강화 (저시력 친화) === */
.container-content .text-ink-300 { color: #64748b !important; } /* 너무 옅은 회색 -> slate-500 */
.container-content .text-ink-400 { color: #475569 !important; } /* slate-600 */
.container-content .text-ink-500 { color: #334155 !important; } /* slate-700 */
.container-content .text-white\/70 { color: rgba(255,255,255,0.92) !important; }
.container-content .text-white\/80 { color: rgba(255,255,255,0.95) !important; }
.container-content .text-white\/85 { color: rgba(255,255,255,0.95) !important; }

/* 'Total N건' 같은 영어 단어 라벨 — 한국어 가독성 향상 */

/* === 13) 50-70대 폰트 하한 강화: 9~12px → 13~15px === */
.container-content .text-\[9px\] { font-size: 13px !important; line-height: 1.5 !important; }
.container-content .text-\[10px\] { font-size: 13px !important; line-height: 1.55 !important; }
.container-content .text-\[11px\] { font-size: 14px !important; line-height: 1.6 !important; }
.container-content .text-\[12\.5px\] { font-size: 15px !important; line-height: 1.6 !important; }
/* footer/header 작은 글자도 같이 */
footer .text-\[10px\] { font-size: 13px !important; }
footer .text-\[11px\] { font-size: 14px !important; }
header .text-\[10px\] { font-size: 13px !important; }
header .text-\[11px\] { font-size: 14px !important; }

/* === 14) 게시판 작은 부가 텍스트 (날짜·조회수 등) 키움 === */
.container-content table td span,
.container-content table td .text-\[11px\],
.container-content table td .text-\[12px\] { font-size: 14px !important; }

/* === 15) 카드 안 부가 정보(작성자·시간) 키움 === */
.container-content .card .text-\[10px\],
.container-content .card .text-\[11px\],
.container-content .card .text-\[12px\] { font-size: 14px !important; }

/* === 16) senior v2 — 강제 업스케일 (H4·H5 해결) === */
/* 모든 [10~14px] 강제 16px+ — !important로 PHP inline까지 override */
[class*="text-[10px]"], [class*="text-[11px]"], [class*="text-[12px]"], [class*="text-[12.5px]"] { font-size: 14px !important; line-height: 1.65 !important; }
[class*="text-[13px]"] { font-size: 16px !important; line-height: 1.7 !important; }
[class*="text-[14px]"] { font-size: 16px !important; line-height: 1.7 !important; }
[class*="text-[15px]"] { font-size: 17px !important; line-height: 1.7 !important; }

/* 옅은 회색 본문 강제 강화 */
[class*="text-ink-300"] { color: #475569 !important; }
[class*="text-ink-400"] { color: #334155 !important; }
[class*="text-ink-500"] { color: #334155 !important; }
[class*="text-white/70"] { color: rgba(255,255,255,0.95) !important; }
[class*="text-white/80"] { color: rgba(255,255,255,0.97) !important; }
[class*="text-white/85"] { color: rgba(255,255,255,0.97) !important; }

/* footer 강화 */
footer * { font-size: 14px !important; }
footer .text-\[18px\], footer .text-\[20px\] { font-size: 20px !important; }

/* 약관 textarea (개보법 가독성) */
textarea[name="agree_box"], textarea[name="agree2_box"], .agree_box textarea, .register textarea { 
  font-size: 16px !important; 
  line-height: 1.85 !important; 
  min-height: 320px !important; 
}

/* 폼 라벨 / 도움말 */
.frm_input + .frm_input { margin-top: 8px; }
.tooltip { font-size: 14px !important; color: #334155 !important; }
.frm_address { font-size: 16px !important; }

/* 로그인 도움 link (H22) */
.login_wrap a, .lgn_help a, #login_fs a { 
  font-size: 16px !important; 
  text-decoration: underline; 
  color: #2563eb !important; 
}

/* === 17) 게시판 검색폼·breadcrumb 폰트 강화 === */
.container-content #bo_sch_wrap select,
.container-content #bo_sch_wrap input[type="text"],
.container-content #bo_sch_wrap button { font-size: 16px !important; height: 48px !important; }
.container-content #bo_sch_wrap label { font-size: 15px !important; font-weight: 600 !important; }

/* 헤더 글쓰기 버튼 강조 */
.container-content a[href*="write.php"], 
.container-content a[href*="login.php?url"] { min-height: 48px; }

/* === 18) 약관 동의 체크박스 키움 === */
.container-content input[type="checkbox"], 
.container-content input[type="radio"] { width: 20px !important; height: 20px !important; cursor: pointer; }
.container-content label[for] { cursor: pointer; }

/* === 19) v3 추가 — 드롭다운 서브메뉴 + 폼 라벨 강화 === */
/* 드롭다운 서브메뉴 텍스트 (text-[13px] 71회 → 16px) */
header .group-hover\:block .text-\[13px\] { font-size: 16px !important; padding: 14px 20px !important; }
header nav.flex-1 .group-hover\:block a { padding: 14px 20px !important; font-size: 16px !important; }

/* 모바일 메뉴 서브 link */
aside.fixed nav a { font-size: 16px !important; padding: 14px 20px !important; min-height: 48px; display: flex; align-items: center; }
aside.fixed nav button { font-size: 17px !important; padding: 16px !important; min-height: 56px; }

/* terms/privacy 본문 가독성 */
.container-content article p,
.container-content article li { font-size: 16px !important; line-height: 1.85 !important; color: #334155 !important; }
.container-content article h2 { font-size: 22px !important; margin-top: 28px !important; padding-bottom: 10px !important; }
.container-content article h3 { font-size: 18px !important; }

/* 빈 label 보강 */
.container-content label:empty { display: none; }
.container-content label[for] { display: block; font-size: 15px !important; font-weight: 600 !important; color: #334155 !important; margin-bottom: 8px !important; }

/* === 20) v4 — 페이지네이션: 화살표 아이콘 + 컴팩트 그리드 === */
.board-pagination { margin-top: 40px !important; padding: 20px 0 !important; }
.board-pagination .pg_wrap, .pg_wrap { display: flex !important; justify-content: center !important; }
.board-pagination .pg, .pg {
  display: inline-flex !important; gap: 4px !important;
  align-items: center !important; flex-wrap: wrap !important; justify-content: center !important;
  background: #f8fafc !important; padding: 6px !important; border-radius: 12px !important;
  border: 1px solid #e2e8f0 !important;
}
.board-pagination .pg_page, .pg_page,
.board-pagination .pg_current, .pg_current {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  min-width: 40px !important; height: 40px !important; padding: 0 12px !important;
  border-radius: 8px !important; font-size: 15px !important; font-weight: 600 !important;
  border: 0 !important; background: transparent !important; color: #334155 !important;
  text-decoration: none !important; transition: all 0.15s !important;
}
.board-pagination .pg_page:hover, .pg_page:hover {
  background: #e0edff !important; color: #1e40af !important;
}
.board-pagination .pg_current, .pg_current {
  background: #0b2c5c !important; color: #fff !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 6px rgba(11,44,92,0.25);
}
.board-pagination .pg_start, .pg_start,
.board-pagination .pg_end, .pg_end,
.board-pagination .pg_prev, .pg_prev,
.board-pagination .pg_next, .pg_next {
  font-size: 0 !important;
  min-width: 40px !important; height: 40px !important;
  color: #64748b !important;
}
.board-pagination .pg_start::before,
.pg_start::before  { content: "«"; font-size: 18px; font-weight: 700; }
.board-pagination .pg_prev::before,
.pg_prev::before   { content: "‹"; font-size: 20px; font-weight: 700; }
.board-pagination .pg_next::before,
.pg_next::before   { content: "›"; font-size: 20px; font-weight: 700; }
.board-pagination .pg_end::before,
.pg_end::before    { content: "»"; font-size: 18px; font-weight: 700; }
.board-pagination .sound_only { position: absolute !important; left: -9999px !important; }

/* === 21) 홈 바로가기 카드 — 모바일 1열 (글자 겹침 fix) === */
@media (max-width: 639px) {
  .tkb-quick { grid-template-columns: 1fr !important; }
  .tkb-quick .card { height: auto !important; min-height: 64px; padding: 16px 24px !important; }
}

/* === 22) 모바일 홈 정돈 — 히어로 타이포·통계 밴드·최근 활동 === */
@media (max-width: 639px) {
  .tkb-hero h1 { font-size: 29px !important; line-height: 1.35 !important; }
  .tkb-hero p { font-size: 15px !important; margin-top: 12px !important; }
  .tkb-hero h1, .tkb-hero p, .tkb-stats { word-break: keep-all; }
  .tkb-stats .text-\[32px\] { font-size: 28px !important; }
  .tkb-recent { grid-template-columns: 1fr 1fr !important; }
}

/* === 23) 아이콘 든 입력칸 — 아이콘·플레이스홀더 겹침 fix (5번 padding !important 예외) === */
.container-content .relative > i[data-lucide] + input[type="text"],
.container-content .relative > i[data-lucide] + input[type="password"],
.container-content .relative > i[data-lucide] + input[type="email"],
.container-content .relative > svg + input[type="text"],
.container-content .relative > svg + input[type="password"],
.container-content .relative > svg + input[type="email"] {
  padding-left: 38px !important;
}

/* === 24) 한국어 어절 단위 줄바꿈 전역 적용 (문장 중간 꺾임 방지) === */
body { word-break: keep-all; overflow-wrap: break-word; }

/* === 25) lg 전용 그리드 모바일 1열 강제 — 열 정의 없는 grid가 내용 최소폭만큼 넓어져 우측이 잘리는 문제 fix.
       기본 열 유틸리티(" grid-cols-")가 있는 그리드는 제외 === */
@media (max-width: 1023px) {
  [class*="lg:grid-cols-"]:not([class*=" grid-cols-"]) { grid-template-columns: minmax(0, 1fr) !important; }
}

/* === 26) 모바일 헤더 — 로고+버튼 합이 화면폭 초과해 우측 잘리는 문제 fix === */
@media (max-width: 639px) {
  .container-content.h-\[88px\] { gap: 10px; height: 72px !important; }
  .container-content.h-\[88px\] > a[aria-label] img { height: 44px !important; width: 44px !important; }
  .container-content.h-\[88px\] button[aria-label="메뉴 열기"] { padding: 8px !important; }
  .container-content.h-\[88px\] button[aria-label="검색"] { padding: 6px !important; }
}

/* === 27) 홈 캘린더 날짜칸만 축소 — 버튼 min-height 48px(어르신 탭영역) 예외 === */
[x-data="calendar()"] .grid.grid-cols-7 button {
  min-height: 0 !important;
  height: 34px !important;
}
