@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard-gov/dist/web/variable/pretendardvariable-gov-dynamic-subset.min.css");
/* =============================================
   tpl-v6 = 웹사이트 KYO-01 시안 (docs/KYO-01) · 공용 CSS
   시안의 shared/(모든 템플릿 공통)와 kyo-01/(템플릿 고유)을 그대로 옮긴 뒤, 끝의 "tpl-v6 연동" 구역에서
   Laravel 공용 레이아웃·콘솔 데이터에 맞춰 보강한다. shared는 아직 템플릿 6에만 적용한다(다른 템플릿 미적용).
   시안을 갱신할 때는 docs/KYO-01 파일을 바꾸고 이 파일의 해당 구역을 다시 옮긴다.
   브랜드 컬러: 콘솔 "메인 컬러"(primary-color)를 공통 styles.blade.php가 --first-h/s/l로 넘긴다.
   ============================================= */


/* =============================================
   shared/css/tokens.css
   ============================================= */
/* 공통 디자인 토큰 (Society Website Design System 값). 모든 템플릿 공통. 색·간격은 이 파일의 변수로만 지정한다.
   브랜드 컬러: --first-h/s/l 입력 → 단계 자동 생성. 템플릿별 브랜드·서체는 이 파일이 아니라 템플릿 CSS의 :root에서 재정의한다. */
:root {
  /* Type */
  --fw-font-sans: "Pretendard GOV Variable", "Pretendard GOV", "Apple SD Gothic Neo", sans-serif;
  --fw-font-sans-noto: "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
  --fw-font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --fw-font-display: "Outfit", "Pretendard GOV Variable", "Pretendard GOV", sans-serif;

  /* Body text: 공통 기본값. 서체·가독성 기준에 따라 템플릿 CSS의 :root에서 재정의 */
  --body-size: 1rem;
  --body-lh: 1.5;

  /* Component */
  --hdr-h: 72px; /* 모바일 헤더 높이 = 드로어 헤드 높이 */

  /* Brand / primary: 메인 컬러 1개(H·S·L)로 50~900 생성. --first-h/s/l은 여기서 정의하지 않는다 —
     공통 styles.blade가 콘솔 "메인 컬러"(primary-color)를 :root에 넘긴다(이 파일이 더 늦게 로드되므로
     여기서 기본값을 두면 테넌트 색을 덮어쓴다). 컴포넌트·템플릿 CSS는 --fw-primary-*만 참조한다. */
  --first-color: hsl(var(--first-h) var(--first-s) var(--first-l));

  --fw-primary-50:  hsl(var(--first-h) var(--first-s) 97%);
  --fw-primary-100: hsl(var(--first-h) var(--first-s) 93%);
  --fw-primary-200: hsl(var(--first-h) var(--first-s) 86%);
  --fw-primary-300: hsl(var(--first-h) var(--first-s) 77%);
  --fw-primary-400: hsl(var(--first-h) var(--first-s) min(calc(var(--first-l) + 18%), 68%));
  --fw-primary-500: hsl(var(--first-h) var(--first-s) min(calc(var(--first-l) + 8%), 60%));
  --fw-primary-600: hsl(var(--first-h) var(--first-s) calc(var(--first-l) + 4%));   /* hover */
  --fw-primary-700: var(--first-color);                                             /* default brand */
  --fw-primary-800: hsl(var(--first-h) var(--first-s) calc(var(--first-l) * .8));
  --fw-primary-900: hsl(var(--first-h) var(--first-s) calc(var(--first-l) * .62));

  /* Color palette: Tailwind 기본 팔레트 22색 × 50~950 (브랜드 컬러와 별개로 고정)
     상태색: 성공 green · 오류 red · 경고 yellow · 정보 blue */
  --fw-white: #ffffff;
  --fw-black: #000000;

  --fw-red-50:       #fef2f2;
  --fw-red-100:      #ffe2e2;
  --fw-red-200:      #ffc9c9;
  --fw-red-300:      #ffa2a2;
  --fw-red-400:      #ff6467;
  --fw-red-500:      #fb2c36;
  --fw-red-600:      #e7000b;
  --fw-red-700:      #c10007;
  --fw-red-800:      #9f0712;
  --fw-red-900:      #82181a;
  --fw-red-950:      #460809;

  --fw-orange-50:    #fff7ed;
  --fw-orange-100:   #ffedd4;
  --fw-orange-200:   #ffd6a7;
  --fw-orange-300:   #ffb86a;
  --fw-orange-400:   #ff8904;
  --fw-orange-500:   #ff6900;
  --fw-orange-600:   #f54900;
  --fw-orange-700:   #ca3500;
  --fw-orange-800:   #9f2d00;
  --fw-orange-900:   #7e2a0c;
  --fw-orange-950:   #441306;

  --fw-amber-50:     #fffbeb;
  --fw-amber-100:    #fef3c6;
  --fw-amber-200:    #fee685;
  --fw-amber-300:    #ffd230;
  --fw-amber-400:    #ffb900;
  --fw-amber-500:    #fe9a00;
  --fw-amber-600:    #e17100;
  --fw-amber-700:    #bb4d00;
  --fw-amber-800:    #973c00;
  --fw-amber-900:    #7b3306;
  --fw-amber-950:    #461901;

  --fw-yellow-50:    #fefce8;
  --fw-yellow-100:   #fef9c2;
  --fw-yellow-200:   #fff085;
  --fw-yellow-300:   #ffdf20;
  --fw-yellow-400:   #fdc700;
  --fw-yellow-500:   #f0b100;
  --fw-yellow-600:   #d08700;
  --fw-yellow-700:   #a65f00;
  --fw-yellow-800:   #894b00;
  --fw-yellow-900:   #733e0a;
  --fw-yellow-950:   #432004;

  --fw-lime-50:      #f7fee7;
  --fw-lime-100:     #ecfcca;
  --fw-lime-200:     #d8f999;
  --fw-lime-300:     #bbf451;
  --fw-lime-400:     #9ae600;
  --fw-lime-500:     #7ccf00;
  --fw-lime-600:     #5ea500;
  --fw-lime-700:     #497d00;
  --fw-lime-800:     #3c6300;
  --fw-lime-900:     #35530e;
  --fw-lime-950:     #192e03;

  --fw-green-50:     #f0fdf4;
  --fw-green-100:    #dcfce7;
  --fw-green-200:    #b9f8cf;
  --fw-green-300:    #7bf1a8;
  --fw-green-400:    #05df72;
  --fw-green-500:    #00c950;
  --fw-green-600:    #00a63e;
  --fw-green-700:    #008236;
  --fw-green-800:    #016630;
  --fw-green-900:    #0d542b;
  --fw-green-950:    #032e15;

  --fw-emerald-50:   #ecfdf5;
  --fw-emerald-100:  #d0fae5;
  --fw-emerald-200:  #a4f4cf;
  --fw-emerald-300:  #5ee9b5;
  --fw-emerald-400:  #00d492;
  --fw-emerald-500:  #00bc7d;
  --fw-emerald-600:  #009966;
  --fw-emerald-700:  #007a55;
  --fw-emerald-800:  #006045;
  --fw-emerald-900:  #004f3b;
  --fw-emerald-950:  #002c22;

  --fw-teal-50:      #f0fdfa;
  --fw-teal-100:     #cbfbf1;
  --fw-teal-200:     #96f7e4;
  --fw-teal-300:     #46ecd5;
  --fw-teal-400:     #00d5be;
  --fw-teal-500:     #00bba7;
  --fw-teal-600:     #009689;
  --fw-teal-700:     #00786f;
  --fw-teal-800:     #005f5a;
  --fw-teal-900:     #0b4f4a;
  --fw-teal-950:     #022f2e;

  --fw-cyan-50:      #ecfeff;
  --fw-cyan-100:     #cefafe;
  --fw-cyan-200:     #a2f4fd;
  --fw-cyan-300:     #53eafd;
  --fw-cyan-400:     #00d3f2;
  --fw-cyan-500:     #00b8db;
  --fw-cyan-600:     #0092b8;
  --fw-cyan-700:     #007595;
  --fw-cyan-800:     #005f78;
  --fw-cyan-900:     #104e64;
  --fw-cyan-950:     #053345;

  --fw-sky-50:       #f0f9ff;
  --fw-sky-100:      #dff2fe;
  --fw-sky-200:      #b8e6fe;
  --fw-sky-300:      #74d4ff;
  --fw-sky-400:      #00bcff;
  --fw-sky-500:      #00a6f4;
  --fw-sky-600:      #0084d1;
  --fw-sky-700:      #0069a8;
  --fw-sky-800:      #00598a;
  --fw-sky-900:      #024a70;
  --fw-sky-950:      #052f4a;

  --fw-blue-50:      #eff6ff;
  --fw-blue-100:     #dbeafe;
  --fw-blue-200:     #bedbff;
  --fw-blue-300:     #8ec5ff;
  --fw-blue-400:     #51a2ff;
  --fw-blue-500:     #2b7fff;
  --fw-blue-600:     #155dfc;
  --fw-blue-700:     #1447e6;
  --fw-blue-800:     #193cb8;
  --fw-blue-900:     #1c398e;
  --fw-blue-950:     #162456;

  --fw-indigo-50:    #eef2ff;
  --fw-indigo-100:   #e0e7ff;
  --fw-indigo-200:   #c6d2ff;
  --fw-indigo-300:   #a3b3ff;
  --fw-indigo-400:   #7c86ff;
  --fw-indigo-500:   #615fff;
  --fw-indigo-600:   #4f39f6;
  --fw-indigo-700:   #432dd7;
  --fw-indigo-800:   #372aac;
  --fw-indigo-900:   #312c85;
  --fw-indigo-950:   #1e1a4d;

  --fw-violet-50:    #f5f3ff;
  --fw-violet-100:   #ede9fe;
  --fw-violet-200:   #ddd6ff;
  --fw-violet-300:   #c4b4ff;
  --fw-violet-400:   #a684ff;
  --fw-violet-500:   #8e51ff;
  --fw-violet-600:   #7f22fe;
  --fw-violet-700:   #7008e7;
  --fw-violet-800:   #5d0ec0;
  --fw-violet-900:   #4d179a;
  --fw-violet-950:   #2f0d68;

  --fw-purple-50:    #faf5ff;
  --fw-purple-100:   #f3e8ff;
  --fw-purple-200:   #e9d4ff;
  --fw-purple-300:   #dab2ff;
  --fw-purple-400:   #c27aff;
  --fw-purple-500:   #ad46ff;
  --fw-purple-600:   #9810fa;
  --fw-purple-700:   #8200db;
  --fw-purple-800:   #6e11b0;
  --fw-purple-900:   #59168b;
  --fw-purple-950:   #3c0366;

  --fw-fuchsia-50:   #fdf4ff;
  --fw-fuchsia-100:  #fae8ff;
  --fw-fuchsia-200:  #f6cfff;
  --fw-fuchsia-300:  #f4a8ff;
  --fw-fuchsia-400:  #ed6aff;
  --fw-fuchsia-500:  #e12afb;
  --fw-fuchsia-600:  #c800de;
  --fw-fuchsia-700:  #a800b7;
  --fw-fuchsia-800:  #8a0194;
  --fw-fuchsia-900:  #721378;
  --fw-fuchsia-950:  #4b004f;

  --fw-pink-50:      #fdf2f8;
  --fw-pink-100:     #fce7f3;
  --fw-pink-200:     #fccee8;
  --fw-pink-300:     #fda5d5;
  --fw-pink-400:     #fb64b6;
  --fw-pink-500:     #f6339a;
  --fw-pink-600:     #e60076;
  --fw-pink-700:     #c6005c;
  --fw-pink-800:     #a3004c;
  --fw-pink-900:     #861043;
  --fw-pink-950:     #510424;

  --fw-rose-50:      #fff1f2;
  --fw-rose-100:     #ffe4e6;
  --fw-rose-200:     #ffccd3;
  --fw-rose-300:     #ffa1ad;
  --fw-rose-400:     #ff637e;
  --fw-rose-500:     #ff2056;
  --fw-rose-600:     #ec003f;
  --fw-rose-700:     #c70036;
  --fw-rose-800:     #a50036;
  --fw-rose-900:     #8b0836;
  --fw-rose-950:     #4d0218;

  --fw-slate-50:     #f8fafc;
  --fw-slate-100:    #f1f5f9;
  --fw-slate-200:    #e2e8f0;
  --fw-slate-300:    #cad5e2;
  --fw-slate-400:    #90a1b9;
  --fw-slate-500:    #62748e;
  --fw-slate-600:    #45556c;
  --fw-slate-700:    #314158;
  --fw-slate-800:    #1d293d;
  --fw-slate-900:    #0f172b;
  --fw-slate-950:    #020618;

  --fw-gray-50:      #f9fafb;
  --fw-gray-100:     #f3f4f6;
  --fw-gray-200:     #e5e7eb;
  --fw-gray-300:     #d1d5dc;
  --fw-gray-400:     #99a1af;
  --fw-gray-500:     #6a7282;
  --fw-gray-600:     #4a5565;
  --fw-gray-700:     #364153;
  --fw-gray-800:     #1e2939;
  --fw-gray-900:     #101828;
  --fw-gray-950:     #030712;

  --fw-zinc-50:      #fafafa;
  --fw-zinc-100:     #f4f4f5;
  --fw-zinc-200:     #e4e4e7;
  --fw-zinc-300:     #d4d4d8;
  --fw-zinc-400:     #9f9fa9;
  --fw-zinc-500:     #71717b;
  --fw-zinc-600:     #52525c;
  --fw-zinc-700:     #3f3f46;
  --fw-zinc-800:     #27272a;
  --fw-zinc-900:     #18181b;
  --fw-zinc-950:     #09090b;

  --fw-neutral-50:   #fafafa;
  --fw-neutral-100:  #f5f5f5;
  --fw-neutral-200:  #e5e5e5;
  --fw-neutral-300:  #d4d4d4;
  --fw-neutral-400:  #a1a1a1;
  --fw-neutral-500:  #737373;
  --fw-neutral-600:  #525252;
  --fw-neutral-700:  #404040;
  --fw-neutral-800:  #262626;
  --fw-neutral-900:  #171717;
  --fw-neutral-950:  #0a0a0a;

  --fw-stone-50:     #fafaf9;
  --fw-stone-100:    #f5f5f4;
  --fw-stone-200:    #e7e5e4;
  --fw-stone-300:    #d6d3d1;
  --fw-stone-400:    #a6a09b;
  --fw-stone-500:    #79716b;
  --fw-stone-600:    #57534d;
  --fw-stone-700:    #44403b;
  --fw-stone-800:    #292524;
  --fw-stone-900:    #1c1917;
  --fw-stone-950:    #0c0a09;

  /* Semantic surfaces & text */
  --fw-text-strong:   var(--fw-gray-900);
  --fw-text-default:  var(--fw-gray-500);
  --fw-text-muted:    var(--fw-gray-400);
  --fw-text-onbrand:  var(--fw-white);
  --fw-text-link:     var(--first-color);

  --fw-surface:       var(--fw-white);
  --fw-surface-sunken:var(--fw-gray-50);
  --fw-surface-dark:  var(--fw-gray-800);
  --fw-border:        var(--fw-gray-200);
  --fw-border-strong: var(--fw-gray-300);
  --fw-overlay:       rgba(15,23,42,0.5); /* 딤 배경: 모달·드로어 뒤 반투명 막 */

  /* Radii (from source: button 12, cards 8, badge full, inputs 8) */
  --fw-radius-sm:   4px;
  --fw-radius-md:   6px;
  --fw-radius-lg:   8px;
  --fw-radius-xl:   12px;
  --fw-radius-2xl:  16px;
  --fw-radius-full: 9999px;

  /* Spacing scale (Tailwind 4px base) */
  --fw-space-1: 4px;
  --fw-space-2: 8px;
  --fw-space-3: 12px;
  --fw-space-4: 16px;
  --fw-space-5: 20px;
  --fw-space-6: 24px;
  --fw-space-8: 32px;
  --fw-space-10: 40px;
  --fw-space-16: 64px;

  /* Shadows (transcribed from source: subtle slate-tinted) */
  --fw-shadow-btn:  0px 1px 0.5px 0.05px rgba(29,41,61,0.02);
  --fw-shadow-xs:   0px 1px 2px rgba(29,41,61,0.05);
  --fw-shadow-sm:   0px 1px 3px rgba(29,41,61,0.1), 0px 1px 2px rgba(29,41,61,0.06);
  --fw-shadow-md:   0px 4px 6px -1px rgba(29,41,61,0.1), 0px 2px 4px -1px rgba(29,41,61,0.06);
  --fw-shadow-lg:   0px 10px 15px -3px rgba(29,41,61,0.1), 0px 4px 6px -2px rgba(29,41,61,0.05);
  --fw-shadow-xl:   0px 20px 25px -5px rgba(29,41,61,0.1), 0px 10px 10px -5px rgba(29,41,61,0.04);

  /* Focus ring */
  --fw-ring: 0 0 0 4px hsl(var(--first-h) var(--first-s) var(--first-l) / 30%);
  --fw-ring-gray: 0 0 0 4px rgba(107,114,128,0.25);
}

/* 레이아웃 토큰 */
:root{--fw-container-max:1280px;--fw-container-wide:1536px;--fw-container-pad:16px;--fw-container-pad-sm:16px;--fw-container-pad-md:24px;--fw-container-pad-lg:32px;--fw-bp-2xl:1536px;--fw-bp-xl:1280px;--fw-bp-lg:1024px;--fw-bp-md:768px;--fw-bp-sm:640px}
@media (min-width:640px){:root{--fw-container-pad:24px}}
@media (min-width:1024px){:root{--fw-container-pad:32px}}

/* =============================================
   shared/css/base.css
   ============================================= */
/* 공통 기본: 리셋 · 본문 · 링크 · 포커스 · 상태 클래스 · 컨테이너
   모든 템플릿 공통. 템플릿에서 수정하지 않는다 (값은 tokens.css 변수 또는 템플릿 CSS에서 덮어쓴다). */
html { font-size:16px; }
body { margin:0; font-size:var(--body-size); line-height:var(--body-lh); font-family:var(--fw-font-sans); background:var(--fw-white); color:var(--fw-gray-900); text-wrap:pretty; word-break:keep-all; overflow-wrap:break-word; }
*, *::before, *::after { box-sizing:border-box; }
button, input, select, textarea { font-family:inherit; }
h1, h2, h3 { text-wrap:balance; }
/* [tpl-v6] 원본은 ul 전체 리셋 — 게시판 본문 등 공용 화면의 목록 기호를 지키려고 템플릿 영역(헤더·사이트맵·드로어·푸터·메인·서브 상단·3뎁스)으로 한정. :where()로 원본 ul 리셋과 같은 우선순위를 유지해 .sm-grid 같은 클래스 여백이 이긴다 */
:where(.hdr, .sm, .drw, .ft, #main, .sub-top, .tab3, .tab3-dd) ul { margin:0; padding:0; list-style:none; }
/* [tpl-v6] 원본은 제목이 본문 행간(--body-lh)을 물려받는데, 전역 Bootstrap 4가 h1~h6 행간을 1.2로 고정한다 — 같은 템플릿 영역에서만 상속으로 되돌린다(행간을 직접 준 클래스는 그대로 이김) */
:where(.hdr, .sm, .drw, .ft, #main, .sub-top, .tab3, .tab3-dd) :is(h1, h2, h3, h4, h5, h6) { line-height:inherit; }
address { font-style:normal; }
a { color:var(--fw-primary-700); text-decoration:none; }
a:hover { color:var(--fw-primary-600); text-decoration:none; }
a, button { transition:color .25s ease-out, background-color .25s ease-out, border-color .25s ease-out, box-shadow .25s ease-out; }
a:focus-visible, button:focus-visible { outline:none; box-shadow:var(--fw-ring); }
.hidden { display:none; }
.icon { display:block; flex:none; }

/* [tpl-v6] Bootstrap 4 .container(전역 로드)를 시안 컨테이너로 덮는다 — 템플릿 6 화면 전체가 같은 폭·여백을 쓴다 */
.container { margin-inline:auto; max-width:var(--fw-container-max); padding-inline:var(--fw-container-pad); }

/* =============================================
   shared/css/components.css
   ============================================= */
/* 공통 컴포넌트: 툴팁 · 탑버튼 · 모바일 드로어 · 사이트맵 · 3뎁스 탭/드롭다운
   모든 템플릿 공통 마크업·클래스. 템플릿별 차이는 tokens.css 변수(--hdr-h 등) 또는 템플릿 CSS에서 덮어쓴다. */

/* 툴팁 (아이콘 버튼 aria-label과 같은 문구) */
.tt { position:relative; display:inline-flex; }
.tt-tip { position:absolute; z-index:60; padding:8px 12px; border-radius:var(--fw-radius-lg); background:var(--fw-gray-900); color:var(--fw-white); font-size:.875rem; font-weight:500; line-height:1.4; white-space:nowrap; box-shadow:var(--fw-shadow-sm); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .15s ease-out, visibility 0s linear .15s; }
.tt-bottom > .tt-tip { top:calc(100% + 8px); left:50%; transform:translateX(-50%); }
.tt-left > .tt-tip { right:calc(100% + 8px); top:50%; transform:translateY(-50%); }
.tt:hover > .tt-tip, .tt:focus-within > .tt-tip { opacity:1; visibility:visible; transition:opacity .15s ease-out, visibility 0s; }

/* 탑버튼: 기본 숨김, .is-show일 때 노출 */
.pg-top-wrap { position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:30; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s ease-out, transform .2s ease-out, visibility 0s linear .2s; }
.pg-top-wrap.is-show { opacity:1; visibility:visible; transform:none; transition:opacity .2s ease-out, transform .2s ease-out; }
.pg-top { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:1px solid var(--fw-border); border-radius:var(--fw-radius-full); background:var(--fw-white); color:var(--fw-gray-900); box-shadow:var(--fw-shadow-md); cursor:pointer; }
.pg-top:hover { background:var(--fw-gray-900); border-color:var(--fw-gray-900); color:var(--fw-white); }

/* 모바일 드로어 + 아코디언 (1024px 미만) */
.drw { position:fixed; inset:0; z-index:90; }
.drw-bg { position:absolute; inset:0; background:var(--fw-overlay); opacity:0; transition:opacity .3s ease-out; }
.drw-panel { position:absolute; top:0; right:0; bottom:0; width:min(360px,86vw); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; background:var(--fw-white); box-shadow:var(--fw-shadow-xl); transform:translateX(100%); transition:transform .3s ease-out; }
.drw-panel::-webkit-scrollbar { display:none; }
.drw.is-open .drw-bg { opacity:1; }
.drw.is-open .drw-panel { transform:translateX(0); }
.drw-head { display:flex; align-items:center; height:var(--hdr-h); padding:0 16px 0 24px; border-bottom:1px solid var(--fw-gray-200); }
.drw-title { font-size:1.1875rem; font-weight:700; }
.drw-close { margin-left:auto; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:0; border-radius:var(--fw-radius-full); background:transparent; color:var(--fw-gray-900); cursor:pointer; }
.drw-close:hover { background:var(--fw-gray-100); }
.drw-auth { display:flex; gap:8px; padding:16px 16px 8px; }
.drw-auth a { flex:1; padding:12px 0; text-align:center; border:1px solid var(--fw-gray-200); border-radius:var(--fw-radius-md); background:var(--fw-white); color:var(--fw-gray-600); font-size:.9375rem; }
.drw-auth a:hover { background:var(--fw-gray-900); border-color:var(--fw-gray-900); color:var(--fw-white); }
.drw-list { display:flex; flex-direction:column; padding:8px 16px 24px; }
.drw-item { padding:8px 0; border-bottom:1px solid var(--fw-gray-100); }
.drw-acc { width:100%; display:flex; align-items:center; gap:8px; padding:10px 14px; border:0; border-radius:var(--fw-radius-md); background:transparent; color:var(--fw-gray-900); font:inherit; font-size:1.0625rem; font-weight:700; text-align:left; cursor:pointer; transition:background-color .15s ease-out, color .15s ease-out; }
.drw-acc > span:first-child { flex:1; }
.drw-acc:hover { background:var(--fw-gray-50); }
.drw-acc.is-open { color:var(--fw-primary-700); }
.drw-chev { display:flex; transition:transform .2s ease-out; }
.drw-acc.is-open .drw-chev { transform:rotate(180deg); }
.drw-sub { padding:0 0 0 14px; max-height:0; overflow:hidden; opacity:0; transition:max-height .3s ease-out, opacity .2s ease-out, padding-bottom .3s ease-out; }
.drw-sub:not(.hidden) { display:flex; flex-direction:column; gap:2px; }
.drw-sub.is-open { max-height:480px; opacity:1; padding-bottom:8px; }
.drw-sub-link, .sm-2d-link { display:block; padding:6px 0; font-size:1.0625rem; color:var(--fw-gray-600); }
.drw-sub-link:hover, .sm-2d-link:hover { color:var(--fw-primary-700); }
.drw-3d, .sm-3d { display:flex; flex-direction:column; padding:0 0 4px 12px; }
.drw-3d a, .sm-3d a { display:block; padding:4px 0; font-size:.9375rem; color:var(--fw-gray-500); }
.drw-3d a:hover, .sm-3d a:hover { color:var(--fw-primary-700); }

/* 사이트맵 */
.sm { position:fixed; inset:0; z-index:80; padding:24px; }
.sm:not(.hidden) { display:flex; align-items:center; justify-content:center; }
.sm-dim { position:absolute; inset:0; background:var(--fw-overlay); }
.sm-panel { position:relative; width:100%; max-width:var(--fw-container-max); max-height:86vh; overflow-y:auto; background:var(--fw-white); border-radius:var(--fw-radius-lg); box-shadow:var(--fw-shadow-xl); }
.sm.is-open .sm-dim { animation:sm-dim .3s ease-out both; }
.sm.is-open .sm-panel { animation:sm-in .3s ease-out both; }
@keyframes sm-dim { from { opacity:0; } to { opacity:1; } }
@keyframes sm-in { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
.sm-head { display:flex; align-items:center; justify-content:space-between; padding:20px 40px; border-bottom:1px solid var(--fw-gray-200); }
.sm-title { margin:0; font-size:1.375rem; font-weight:700; letter-spacing:0; }
.sm-close { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:0; border-radius:var(--fw-radius-md); background:transparent; color:var(--fw-gray-900); cursor:pointer; }
.sm-close:hover { background:var(--fw-gray-100); }
.sm-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 32px; padding:32px 40px; }
.sm-1d { display:block; padding-bottom:12px; margin-bottom:12px; border-bottom:2px solid var(--fw-gray-900); font-size:1.1875rem; font-weight:700; color:var(--fw-gray-900); }
.sm-1d:hover { color:var(--fw-primary-700); }
.sm-2d { display:flex; flex-direction:column; gap:4px; }

/* 3뎁스: 640px 이상 탭, 640px 미만 드롭다운 */
.tab3 { display:none; margin-bottom:48px; border-bottom:1px solid var(--fw-gray-200); }
.tab3-list { display:flex; gap:32px; margin-bottom:-1px; overflow-x:auto; scrollbar-width:none; }
.tab3-list::-webkit-scrollbar { display:none; }
.tab3-list > li { flex:none; }
.tab3-tab { display:block; padding:14px 2px; border-bottom:2px solid transparent; font-size:1.0625rem; font-weight:700; white-space:nowrap; color:var(--fw-gray-500); transition:color .2s ease-out, border-color .2s ease-out; }
.tab3-tab:hover { color:var(--fw-gray-900); }
.tab3-tab.is-active { color:var(--fw-primary-700); border-bottom-color:var(--fw-primary-700); }
.tab3-dd { position:relative; margin-bottom:32px; }
.tab3-dd-btn { width:100%; height:48px; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 16px; border:1px solid var(--fw-gray-300); border-radius:var(--fw-radius-md); background:var(--fw-white); color:var(--fw-gray-900); font:inherit; font-size:1.0625rem; font-weight:700; cursor:pointer; }
.tab3-dd-btn:hover { background:var(--fw-gray-50); }
.tab3-dd-chev { display:flex; color:var(--fw-gray-500); transition:transform .2s ease-out; }
.tab3-dd.is-open .tab3-dd-chev { transform:rotate(180deg); }
.tab3-dd-list { position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:20; padding:6px; border:1px solid var(--fw-gray-200); border-radius:var(--fw-radius-lg); background:var(--fw-white); box-shadow:var(--fw-shadow-lg); opacity:0; transform:translateY(-4px); transition:opacity .15s ease-out, transform .15s ease-out; }
.tab3-dd.is-open .tab3-dd-list { opacity:1; transform:none; }
.tab3-dd-item { display:block; padding:10px 12px; border-radius:var(--fw-radius-md); font-size:.9375rem; color:var(--fw-gray-700); }
.tab3-dd-item:hover { color:var(--fw-gray-900); background:var(--fw-gray-100); }
.tab3-dd-item.is-active { color:var(--fw-primary-700); font-weight:700; }

@media (min-width:640px) {
  .sm-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .tab3 { display:block; }
  .tab3-dd { display:none; }
}
@media (min-width:1024px) {
  .drw { display:none; }
  .sm-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .pg-top-wrap { right:24px; bottom:calc(24px + env(safe-area-inset-bottom)); }
  .pg-top { width:56px; height:56px; }
}

/* =============================================
   kyo-01/css/kyo-01.css
   ============================================= */
/* 웹사이트 KYO-01 전용 스타일
   불러오는 순서: shared/css/tokens.css → base.css → components.css → kyo-01.css */

/* theme: 공통 토큰 덮어쓰기 (브랜드 컬러는 --first-h/s/l만, 서체는 --fw-font-sans 재정의) */
:root {
  /* --first-h: 225; --first-s: 84%; --first-l: 49%; */
  --body-size: 1.0625rem; /* Pretendard GOV 본문 17px */
  --body-lh: 1.6;
}

/* layout */
.sec { padding-top:64px; padding-bottom:64px; }
.sec-title { margin:0; font-size:1.5rem; font-weight:700; letter-spacing:0; }

.btn-line { display:inline-flex; align-items:center; padding:9px 19px; border:1px solid var(--fw-border); border-radius:var(--fw-radius-full); background:var(--fw-white); color:var(--fw-gray-900); font-size:.9375rem; font-weight:500; }
.btn-line:hover { background:var(--fw-gray-900); border-color:var(--fw-gray-900); color:var(--fw-white); }

@media (min-width:640px) {
  .sec-title { font-size:1.75rem; }
}
@media (min-width:768px) {
  .sec-title { font-size:2rem; }
}
@media (min-width:1024px) {
  .sec { padding-top:96px; padding-bottom:96px; }
  .sec-title { font-size:2.25rem; }
}

/* header */
.hdr { position:sticky; top:0; z-index:20; background:var(--fw-white); border-bottom:1px solid var(--fw-gray-200); }
.hdr-bar { display:flex; align-items:center; gap:24px; height:72px; }
.hdr-logo { display:flex; align-items:center; flex:none; font-size:1rem; font-weight:700; color:var(--fw-gray-900); white-space:nowrap; }
.hdr-logo:hover { color:var(--fw-gray-900); }
.hdr-nav { display:none; margin-left:auto; align-self:stretch; }
.hdr-gnb { display:flex; height:100%; }
.hdr-li { position:relative; display:flex; align-items:center; padding:0 4px; }
.hdr-link { display:block; padding:8px 16px; border-radius:var(--fw-radius-full); font-size:1.0625rem; font-weight:700; white-space:nowrap; color:var(--fw-gray-900); background:transparent; }
.hdr-link:hover, .hdr-link.is-active { color:var(--fw-primary-700); background:var(--fw-primary-50); }
.hdr-mega { position:absolute; top:100%; left:0; right:0; z-index:2; padding:16px 0 24px; border-left:1px solid var(--fw-gray-100); opacity:0; visibility:hidden; transform:translateY(-8px); pointer-events:none; transition:opacity .25s ease-out, transform .3s ease-out, visibility 0s linear .3s; }
.hdr-mega:not(.hidden) { display:flex; flex-direction:column; gap:2px; }
.hdr-li:last-child > .hdr-mega { border-right:1px solid var(--fw-gray-100); }
.hdr-mega a { display:block; padding:6px 4px; text-align:center; font-size:.9375rem; font-weight:500; white-space:nowrap; color:var(--fw-gray-600); }
.hdr-mega a:hover { color:var(--fw-primary-700); }
.hdr-megabg { position:absolute; top:100%; left:0; right:0; height:212px; background:var(--fw-white); border-top:1px solid var(--fw-gray-200); border-bottom:1px solid var(--fw-gray-200); box-shadow:var(--fw-shadow-md); opacity:0; visibility:hidden; transform:scaleY(.92); transform-origin:top; pointer-events:none; transition:opacity .25s ease-out, transform .3s ease-out, visibility 0s linear .3s; }
.hdr.is-open .hdr-mega, .hdr.is-open .hdr-megabg { opacity:1; visibility:visible; transform:none; pointer-events:auto; transition:opacity .25s ease-out, transform .3s ease-out, visibility 0s; }
.hdr.is-open .hdr-mega { transition-delay:.05s, .05s, 0s; }
.hdr-mega-info { display:none; padding-top:24px; }
.hdr-contact { max-width:260px; display:flex; flex-direction:column; gap:12px; padding:16px; border:1px solid var(--fw-primary-200); border-radius:var(--fw-radius-lg); background:var(--fw-primary-50); }
.hdr-contact-title { display:flex; align-items:center; gap:8px; font-size:.9375rem; font-weight:700; color:var(--fw-primary-800); }
.hdr-contact-list { margin:0; display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px 12px; font-size:.8125rem; }
.hdr-contact-list dt { font-weight:700; color:var(--fw-gray-900); }
.hdr-contact-list dd { margin:0; color:var(--fw-gray-600); }
.hdr-contact-list a { color:var(--fw-gray-600); }
.hdr-util { display:none; align-items:center; gap:4px; }
.hdr-icon-btn { flex:none; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:0; border-radius:var(--fw-radius-md); background:transparent; color:var(--fw-gray-900); cursor:pointer; }
.hdr-icon-btn:hover { color:var(--fw-gray-900); background:var(--fw-gray-100); }
.hdr-menu-btn { margin-left:auto; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:0; border-radius:var(--fw-radius-md); background:transparent; color:var(--fw-gray-900); cursor:pointer; }
.hdr-menu-ico-close { display:none; }
.hdr-menu-btn.is-open .hdr-menu-ico-open { display:none; }
.hdr-menu-btn.is-open .hdr-menu-ico-close { display:block; }

@media (min-width:640px) {
  .hdr-logo { font-size:1.5rem; }
}
@media (min-width:1024px) {
  .hdr-bar { height:80px; }
  .hdr-nav, .hdr-util { display:flex; }
  .hdr-menu-btn { display:none; }
}
@media (min-width:1280px) {
  .hdr-li { padding:0 8px; }
  .hdr-mega-info { display:block; }
}

/* footer */
.ft { background:var(--fw-gray-900); color:var(--fw-gray-300); border-top:1px solid var(--fw-gray-200); }
.ft-inner { padding-top:56px; padding-bottom:32px; }
.ft-top { display:grid; grid-template-columns:minmax(0,1fr); gap:40px; padding-bottom:40px; border-bottom:1px solid var(--fw-gray-800); }
.ft-logo { margin-bottom:16px; font-size:1.5rem; font-weight:700; color:var(--fw-white); }
.ft-info { display:flex; flex-direction:column; gap:4px; font-size:.9375rem; }
.ft-info a { color:var(--fw-white); }
.ft-notice { margin:12px 0 0; font-size:.8125rem; color:var(--fw-gray-400); }
.ft-cols { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
.ft-col-title { display:block; margin-bottom:12px; font-size:.9375rem; font-weight:500; color:var(--fw-white); }
.ft-links { display:flex; flex-direction:column; gap:8px; font-size:.9375rem; }
.ft-link { color:var(--fw-gray-300); }
.ft-link:hover { color:var(--fw-white); }
.ft-bottom { display:flex; flex-direction:column; gap:8px; padding-top:24px; font-size:.8125rem; color:var(--fw-gray-400); }

@media (min-width:768px) {
  .ft-bottom { flex-direction:row; justify-content:space-between; }
}
@media (min-width:1024px) {
  .ft-top { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
}

/* hero */
.hero { background:linear-gradient(110deg,var(--fw-primary-100) 0%,var(--fw-primary-50) 30%,var(--fw-white) 50%,var(--fw-primary-50) 70%,var(--fw-primary-100) 100%); border-bottom:1px solid var(--fw-gray-200); }
.hero-inner { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; gap:40px; padding-top:56px; padding-bottom:56px; }
.hero-badge { display:inline-flex; padding:4px 12px; border:1px solid var(--fw-gray-200); border-radius:var(--fw-radius-full); background:var(--fw-white); font-size:.9375rem; font-weight:500; color:var(--fw-gray-900); }
.hero-title { margin:20px 0 16px; font-size:2rem; line-height:1.5; font-weight:700; letter-spacing:0; color:var(--fw-gray-900); }
.main-lead { margin:0 0 32px; max-width:520px; font-size:1.0625rem; line-height:1.7; color:var(--fw-gray-600); }
.hero-btns { display:flex; flex-wrap:wrap; gap:12px; }
.main-btn-primary { display:inline-flex; align-items:center; padding:16px 28px; border-radius:var(--fw-radius-full); background:var(--fw-primary-700); color:var(--fw-white); font-size:1.0625rem; font-weight:700; }
.main-btn-primary:hover { background:var(--fw-primary-600); color:var(--fw-white); }
.main-btn-line { display:inline-flex; align-items:center; padding:15px 27px; border:1px solid var(--fw-gray-200); border-radius:var(--fw-radius-full); background:var(--fw-white); color:var(--fw-gray-900); font-size:1.0625rem; font-weight:700; }
.main-btn-line:hover { background:var(--fw-gray-900); border-color:var(--fw-gray-900); color:var(--fw-white); }
.hero-emblem-wrap { display:flex; justify-content:center; }
.hero-emblem { width:200px; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; border:1px dashed var(--fw-gray-300); border-radius:0; background:var(--fw-white); color:var(--fw-gray-400); font-size:.9375rem; }

/* main */
.main-act-title { margin-bottom:12px; }
.main-act-lead { max-width:720px; }
.main-act { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.main-act-card { display:flex; gap:32px; padding:32px; border:1px solid var(--fw-gray-200); border-radius:var(--fw-radius-lg); background:var(--fw-white); box-shadow:var(--fw-shadow-xs); }
.main-act-ico { flex:none; width:64px; height:64px; display:flex; align-items:center; justify-content:center; border-radius:var(--fw-radius-lg); background:var(--fw-primary-50); color:var(--fw-primary-700); }
.main-act-h3 { margin:0 0 8px; font-size:1.1875rem; font-weight:700; }
.main-act-p { margin:0; font-size:1.0625rem; line-height:1.7; color:var(--fw-gray-600); }

.main-greet-sec { background:var(--fw-gray-50); border-top:1px solid var(--fw-gray-200); border-bottom:1px solid var(--fw-gray-200); }
.main-greet { display:flex; flex-direction:column; gap:8px; }
.main-greet-label { margin-bottom:12px; font-size:1.0625rem; font-weight:700; letter-spacing:.04em; color:var(--fw-primary-700); }
.main-greet-cols { display:grid; grid-template-columns:minmax(0,1fr); gap:32px; }
.main-quote { margin:0; font-size:1.375rem; line-height:1.5; font-weight:700; letter-spacing:0; color:var(--fw-gray-900); }
.main-body { margin:0 0 16px; font-size:1.0625rem; line-height:1.7; color:var(--fw-gray-600); }
.main-body + .main-body { margin-bottom:24px; }
.main-sign { font-weight:700; color:var(--fw-gray-900); }

.main-board { display:grid; grid-template-columns:minmax(0,1fr); gap:56px; }
.main-board-col { min-width:0; }
.main-head { display:flex; align-items:flex-end; margin-bottom:24px; }
.main-more { margin-left:auto; font-size:.9375rem; color:var(--fw-gray-500); }
.main-more:hover { color:var(--fw-gray-900); }
.main-list { border-top:1px solid var(--fw-gray-200); }
.main-list > li { border-bottom:1px solid var(--fw-gray-200); }
.main-list-link { display:flex; align-items:center; gap:16px; padding:18px 4px; color:var(--fw-gray-900); }
.main-list-link:hover { color:var(--fw-gray-900); background:var(--fw-gray-50); }
.main-nt { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:1.0625rem; font-weight:700; }
.main-nd { flex-shrink:0; font-size:.875rem; color:var(--fw-gray-500); }
.main-empty { margin:0; padding:32px 4px; border-top:1px solid var(--fw-gray-200); border-bottom:1px solid var(--fw-gray-200); font-size:1.0625rem; color:var(--fw-gray-500); }

.main-gal-sec { background:var(--fw-gray-50); border-top:1px solid var(--fw-gray-200); }
.main-gal { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.main-gal > li:nth-child(n+3) { display:none; }
@media (min-width:640px) {
  .main-gal { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.main-gal-item { display:block; min-width:0; color:var(--fw-gray-900); }
.main-gal-item:hover { color:var(--fw-primary-700); }
.main-gal-thumb { aspect-ratio:16/9; overflow:hidden; margin-bottom:12px; display:flex; align-items:center; justify-content:center; border:1px solid var(--fw-gray-200); border-radius:var(--fw-radius-lg); background:var(--fw-gray-100); font-size:.9375rem; font-weight:500; color:var(--fw-gray-500); }
.main-gal-thumb img { width:100%; height:100%; object-fit:cover; object-position:center; }
.main-gt { margin-bottom:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:1.0625rem; font-weight:700; }
.main-gd { font-size:.875rem; color:var(--fw-gray-500); }

@media (min-width:640px) {
  .hero-title { font-size:2.5rem; }
  .main-quote { font-size:1.5rem; }
}
@media (min-width:768px) {
  .main-lead { font-size:1.1875rem; }
  .main-act { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .main-quote { font-size:1.75rem; }
  .main-nt { font-size:1.1875rem; }
  .main-more { font-size:1.0625rem; }
}
@media (min-width:1024px) {
  .hero-inner { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:64px; padding-top:80px; padding-bottom:80px; }
  .hero-title { font-size:2.75rem; }
  .hero-emblem { width:340px; }
  .main-act { gap:24px; }
  .main-act-h3 { font-size:1.375rem; }
  .main-greet-cols { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:60px; }
  .main-quote { font-size:2rem; }
  .main-body { font-size:1.1875rem; }
  .main-board { grid-template-columns:repeat(2,minmax(0,1fr)); gap:80px; }
  .main-head { margin-bottom:32px; }
  .main-nd { font-size:.9375rem; }
  .main-gal { grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; }
  .main-gal > li:nth-child(n+3) { display:block; }
  .main-gt { font-size:1.1875rem; }
}
@media (min-width:1280px) {
  .hero-title { font-size:3.75rem; }
}

/* sub */
.sub-top { background:linear-gradient(180deg,var(--fw-primary-50) 0%,var(--fw-white) 100%); }
.sub-head { padding-top:48px; padding-bottom:48px; }
.sub-hgrid { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; gap:40px; }
.sub-hcol { min-width:0; }
.sub-title { margin:0 0 12px; font-size:2rem; font-weight:700; letter-spacing:0; }
.sub-2d { margin-top:24px; }
.sub-2d-list { display:flex; flex-wrap:wrap; gap:8px; }
.sub-tab { display:inline-flex; align-items:center; padding:9px 19px; border:1px solid transparent; border-radius:var(--fw-radius-full); background:transparent; color:var(--fw-gray-900); font-size:.9375rem; font-weight:700; }
.sub-tab:hover, .sub-tab.is-active { background:var(--fw-primary-700); border-color:var(--fw-primary-700); color:var(--fw-white); }
.sub-emblem { display:none; width:200px; aspect-ratio:1/1; justify-self:end; align-items:center; justify-content:center; border:1px dashed var(--fw-gray-300); border-radius:var(--fw-radius-full); background:var(--fw-white); color:var(--fw-gray-400); font-size:.9375rem; }

.sub-content { background:var(--fw-white); }
.sub-body { padding-top:32px; padding-bottom:96px; }
.sub-area { min-height:480px; margin-bottom:64px; display:flex; align-items:center; justify-content:center; border:1px dashed var(--fw-gray-300); border-radius:var(--fw-radius-lg); background:var(--fw-gray-50); color:var(--fw-gray-400); font-size:.9375rem; }

.sub-cta { display:flex; flex-wrap:wrap; align-items:flex-end; gap:20px; padding:32px 36px; border-radius:var(--fw-radius-lg); background:var(--fw-gray-100); color:var(--fw-gray-900); }
.sub-cta-text { flex:1 1 280px; min-width:0; }
.sub-cta-title { margin-bottom:8px; font-size:1.1875rem; font-weight:700; letter-spacing:0; }
.sub-cta-desc { font-size:1.0625rem; line-height:1.7; color:var(--fw-gray-600); }
.sub-cta-btn { flex:none; margin-left:auto; font-size:1.0625rem; font-weight:700; }

@media (min-width:640px) {
  .sub-title { font-size:2.25rem; }
}
@media (min-width:768px) {
  .sub-title { font-size:2.5rem; }
  .sub-tab { font-size:1.0625rem; }
}
@media (min-width:1024px) {
  .sub-head { padding-top:64px; padding-bottom:64px; }
  .sub-hgrid { grid-template-columns:minmax(0,1fr) auto; gap:64px; }
  .sub-emblem { display:flex; }
  .sub-title { font-size:2.75rem; }
}
@media (min-width:1280px) {
  .sub-emblem { width:240px; }
}

/* =============================================
   tpl-v6 연동 — Laravel 공용 레이아웃·콘솔 데이터 보강 (시안에 없는 부분)
   ============================================= */

/* 공용 레이아웃(app·layouts)이 모든 템플릿에 넣는 요소 */
.all__menu--wrap { display:none; }                /* 전역 사이트맵(components/sitemap) — 템플릿 6은 헤더의 #sm·#drw를 쓴다 */
#scrollToTopBtn { display:none !important; }     /* 전역 탑버튼(x-scroll-to-top) — 템플릿 6은 .pg-top. 컴포넌트가 자체 <style>로 display를 주므로 !important */
body:has(#dev-tpl-bar) .hdr { top:32px; }        /* 로컬 전용 템플릿 전환 바(32px 고정) 아래에 붙도록 */

/* header */
.hdr-logo img { display:block; max-height:40px; max-width:220px; width:auto; } /* 학회 로고(CDN). 없으면 학회명 텍스트로 대체 */
.hdr-megabg { height:var(--hdr-mega-h, 212px); }  /* 가장 긴 메가메뉴 열에 맞춘다(tpl-v6.js) */
.drw-link { display:block; padding:10px 14px; border-radius:var(--fw-radius-md); font-size:1.0625rem; font-weight:700; color:var(--fw-gray-900); } /* 하위메뉴 없는 1뎁스 = 아코디언 대신 링크 */
.drw-link:hover { color:var(--fw-gray-900); background:var(--fw-gray-50); }

/* footer */
.ft .footer-info-custom, .ft .footer-info-custom * { color:var(--fw-gray-300); } /* 콘솔 "하단 푸터"(HTML) */
.ft .footer-info-custom p { margin:0; }
.ft-link.is-strong { color:var(--fw-white); font-weight:700; }
.ft-policy { display:flex; flex-wrap:wrap; gap:4px 16px; }
.ft-cols.is-wide > li:first-child { grid-column:1 / -1; } /* 바로가기가 4개를 넘으면 2단 */
.ft-cols.is-wide > li:first-child .ft-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 24px; }
@media (min-width:768px) {
  .ft-cols.is-wide { grid-template-columns:minmax(0,2fr) minmax(0,1fr); }
  .ft-cols.is-wide > li:first-child { grid-column:auto; }
}

/* 푸터 테마 (템플릿 설정 footer_theme) — dark(기본)는 시안 그대로, light는 밝은 배경 */
.ft-theme-light { background:var(--fw-gray-50); color:var(--fw-gray-600); border-top-color:var(--fw-gray-200); }
.ft-theme-light .ft-top { border-bottom-color:var(--fw-gray-200); }
.ft-theme-light .ft-logo, .ft-theme-light .ft-col-title, .ft-theme-light .ft-info a, .ft-theme-light .ft-link.is-strong { color:var(--fw-gray-900); }
.ft-theme-light .ft-link { color:var(--fw-gray-600); }
.ft-theme-light .ft-link:hover { color:var(--fw-gray-900); }
.ft-theme-light .ft-notice, .ft-theme-light .ft-bottom { color:var(--fw-gray-500); }
.ft-theme-light .footer-info-custom, .ft-theme-light .footer-info-custom * { color:var(--fw-gray-600); }

/* 그라데이션 보조색 (settings.gradient_color) — header.blade.php가 값이 있을 때만 --grad-50/100(보조색 밝기 97%·93%)을 넘긴다.
   없으면 시안 그대로(메인 컬러 단계만), 있으면 메인 비주얼 오른쪽 끝과 서브 상단 오른쪽이 보조색으로 이어진다 */
.hero { background:linear-gradient(110deg,var(--fw-primary-100) 0%,var(--fw-primary-50) 30%,var(--fw-white) 50%,var(--grad-50, var(--fw-primary-50)) 70%,var(--grad-100, var(--fw-primary-100)) 100%); }
.sub-top { background:linear-gradient(110deg, transparent 45%, var(--grad-100, transparent) 100%), linear-gradient(180deg,var(--fw-primary-50) 0%,var(--fw-white) 100%); }

/* main — 시안 자리표시자를 콘솔 데이터로 바꾸면서 필요한 보강 */
.hero-title:first-child { margin-top:0; }                  /* 메인 배지(템플릿 설정 hero_badge)가 없을 때 */
.hero-title:not(:has(+ .main-lead)) { margin-bottom:32px; } /* 메인 소개문(hero_lead)이 없을 때 버튼과 간격 */
img.hero-emblem, img.sub-emblem { object-fit:cover; border:1px solid var(--fw-gray-200); } /* 엠블럼 = 테넌트 메인 이미지 1 (display는 시안 규칙 그대로 — 서브 엠블럼은 1024px 미만 숨김) */
img.hero-emblem { display:block; }
.main-act-title:not(:has(+ .main-act-lead)) { margin-bottom:32px; } /* 주요 활동 소개문(activity_lead)이 없을 때 */
.main-act > li > .main-act-card { height:100%; color:var(--fw-gray-900); } /* 카드 = 콘솔 바로가기 링크 */
.main-act-card:hover { color:var(--fw-primary-700); border-color:var(--fw-primary-200); box-shadow:var(--fw-shadow-sm); }
.main-act-card:not(:has(.main-act-p)) { align-items:center; } /* 설명문 없는 카드(콘솔 바로가기엔 설명 칸 없음) = 제목을 아이콘 가운데에 */
.main-act-h3:only-child { margin-bottom:0; }
.main-act-ico i { font-size:32px; line-height:1; } /* 콘솔 바로가기 아이콘(Bootstrap Icons 클래스 그대로) */
.main-greet .main-body p { margin:0 0 16px; }      /* 인사말 본문(HTML) */
.main-board-sec:not(:has(.main-board-col)) { display:none; } /* 지정한 게시판이 하나도 없으면 섹션째 숨김 */
.main-gal-sec:not(:has(.main-gal)) { display:none; }         /* 갤러리 닫기 또는 글 없음 */
@media (min-width:1024px) {
  .main-board:not(:has(> .main-board-col ~ .main-board-col)) { grid-template-columns:minmax(0,1fr); } /* 게시판이 하나뿐이면 전체 폭 */
}

/* 퀵박스 (콘솔 퀵박스) — 박스 배경은 콘솔 "박스컬러"(--qbox-bg), 없으면 메인 컬러. 주요 활동 바로 아래에 붙인다 */
.main-qbox-sec > .sec { padding-top:0; }
.main-qbox { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.main-qbox-card { display:flex; flex-direction:column; gap:12px; padding:24px; border-radius:var(--fw-radius-lg); background:var(--qbox-bg, var(--fw-primary-700)); color:var(--fw-white); }
.main-qbox-card a, .main-qbox-card a:hover { color:inherit; }
.main-qbox-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.main-qbox-t { margin:0; font-size:1.3125rem; font-weight:700; color:inherit; }
.main-qbox-d { margin:0; font-size:1rem; line-height:1.6; opacity:.9; }
.main-qbox-links { display:flex; flex-wrap:wrap; gap:8px 20px; padding-top:12px; border-top:1px solid rgba(255,255,255,.3); font-size:1rem; }
.main-qbox-links a:hover, .main-qbox-head:hover .main-qbox-t { text-decoration:underline; }

/* 메인 콘텐츠 (콘솔 메인 탭 Content 1·2, HTML 그대로) */
.main-content-sec { background:var(--fw-gray-50); border-top:1px solid var(--fw-gray-200); }
.main-contents { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.main-content { min-width:0; padding:24px; border:1px solid var(--fw-gray-200); border-radius:var(--fw-radius-lg); background:var(--fw-white); }
.main-content img { max-width:100%; height:auto; }

/* 하단배너 (콘솔 하단배너) */
.main-banner-sec { background:var(--fw-white); border-top:1px solid var(--fw-gray-200); }
.main-banners { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px 32px; padding-top:32px; padding-bottom:32px; }
.main-banner { display:block; }
.main-banner img { display:block; max-height:48px; width:auto; }

@media (min-width:768px) {
  .main-qbox { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:1024px) {
  .main-qbox { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
  .main-contents { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .main-contents:not(:has(> .main-content ~ .main-content)) { grid-template-columns:minmax(0,1fr); } /* 하나뿐이면 전체 폭 */
}

/* sub — layouts/sub.blade.php 본문(#content.v6-sub-wrap > .container > .row) = 시안 .sub-content/.sub-body */
.v6-sub-wrap { background:var(--fw-white); }
.v6-sub-wrap .sub-bg { display:none; }            /* 공용 레이아웃의 배경 띠 — 템플릿 6은 서브 상단(.sub-top)이 대신한다 */
.v6-sub-wrap > .container { padding-top:32px; padding-bottom:96px; }
.v6-sub-wrap > .container:has(#bbslist, #bbsview, #bbswrite) { max-width:calc(1024px + 2 * var(--fw-container-pad)); } /* 게시판(목록·보기·쓰기)은 본문 폭을 좁힌다 */
.v6-sub-wrap .page-title { margin-bottom:32px; }
.v6-sub-wrap .page-title h2 { margin:0; font-size:1.5rem; font-weight:700; letter-spacing:0; }
@media (min-width:768px) {
  .v6-sub-wrap .page-title h2 { font-size:1.75rem; }
}
