:root{
  --bg:#ffffff;
  --ink:#0f172a;
  --muted:#64748b;
  --nav1:#071a28;
  --nav2:#071520;
  --card:#ffffff;
  --line:rgba(15,23,42,.10);
  --shadow:0 14px 34px rgba(2,6,23,.12);
  --accent1:#17a2ff;
  --accent2:#22c55e;
  --accent:#22c55e;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Pretendard",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  color:var(--ink);
  background:var(--bg);
}

/* Layout */
.nb-layout{min-height:100vh; display:flex;}
.nb-sidebar{
  width:260px;
  background:linear-gradient(180deg,var(--nav1),var(--nav2));
  color:#e5e7eb;
  position:fixed; inset:0 auto 0 0;
  padding:18px 14px;
  overflow:auto;
}
.nb-main{
  margin-left:260px;
  width:calc(100% - 260px);
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.nb-content{flex:1; padding:46px 28px 28px;}

/* Brand */
.nb-brand{padding:6px 6px 14px;}
.nb-brand-link{display:flex; gap:10px; align-items:center; text-decoration:none; color:#e5e7eb;}
.nb-brand-logo{width:44px; height:44px; border-radius:10px; object-fit:cover; background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.10);}
.nb-brand-en{font-weight:950; letter-spacing:.3px}
.nb-brand-kr{font-weight:800; color:#cbd5e1; font-size:12px; margin-top:2px}

/* Nav */
.nb-nav{display:flex; flex-direction:column; gap:10px; margin-top:10px;}
.nb-nav-item{
  color:#e5e7eb; text-decoration:none;
  padding:10px 10px; border-radius:12px;
  font-weight:900; font-size:15px;
}
.nb-nav-item:hover{background:rgba(255,255,255,.06)}
.nb-nav-item.is-active{color:var(--accent2); background:rgba(34,197,94,.12)}

.nb-nav-group{border-radius:12px; overflow:hidden;}
.nb-nav-toggle{
  width:100%;
  border:0; background:transparent; color:#e5e7eb;
  text-align:left;
  padding:10px 10px;
  border-radius:12px;
  font-weight:950; font-size:14px;
  cursor:pointer;
  display:flex; justify-content:space-between; align-items:center;
}
.nb-nav-toggle:hover{background:rgba(255,255,255,.06)}
.nb-caret{opacity:.85; transition:transform .15s ease}
.nb-nav-group.is-open .nb-caret{transform:rotate(180deg)}
.nb-nav-sub{display:none; flex-direction:column; gap:6px; padding:0 10px 10px}
.nb-nav-group.is-open .nb-nav-sub{display:flex}
.nb-nav-sub a{
  color:#cbd5e1; text-decoration:none;
  padding:8px 10px; border-radius:12px;
  font-weight:800; font-size:13px;
}
.nb-nav-sub a:hover{background:rgba(255,255,255,.06)}
.nb-nav-sub a.is-active{color:var(--accent2); background:rgba(34,197,94,.12)}

/* Auth box */
.nb-authbox{
  margin-top:10px;
  padding:12px 10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  background:rgba(255,255,255,.03);
  display:flex; flex-direction:column; gap:8px;
}
.nb-auth-meta{display:flex; flex-direction:column; gap:2px}
.nb-auth-name{font-weight:950; font-size:13px}
.nb-auth-sub{font-weight:800; color:#cbd5e1; font-size:12px}
.nb-auth-link{
  text-decoration:none;
  color:#e5e7eb;
  font-weight:900;
  padding:9px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.04);
}
.nb-auth-link:hover{background:rgba(255,255,255,.07)}
.nb-auth-link.is-active{color:var(--accent2); background:rgba(34,197,94,.12)}

/* Typography */
.nb-page-title{
  margin:0 0 18px;
  font-size:34px;
  font-weight:1000;
  letter-spacing:-.6px;
  text-align:center;
}
.nb-subtitle{
  margin:0 auto 26px;
  max-width:980px;
  text-align:center;
  color:var(--muted);
  font-weight:850;
  line-height:1.6;
}

/* Hero with animation */
.nb-hero{
  position:relative;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 16px 40px rgba(2,6,23,.10);
  overflow:hidden;
  max-width:1200px;
  margin:0 auto 26px;
  min-height:420px;
  background:radial-gradient(1200px 600px at 20% 30%, rgba(23,162,255,.20), transparent 60%),
             radial-gradient(900px 500px at 80% 30%, rgba(34,197,94,.20), transparent 60%),
             linear-gradient(180deg, #0b2030, #0a1622);
}
.nb-hero canvas{position:absolute; inset:0; width:100%; height:100%;}
.nb-hero-overlay{
  position:relative;
  padding:52px 46px;
  color:#e5e7eb;
}
.nb-hero-h1{
  margin:0;
  font-size:44px;
  font-weight:1000;
  letter-spacing:-.8px;
}
.nb-hero-h1 .grad{
  background:linear-gradient(90deg, var(--accent1), var(--accent2));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.nb-hero-p{
  margin:14px 0 22px;
  max-width:760px;
  color:rgba(226,232,240,.88);
  font-weight:850;
  line-height:1.65;
}
.nb-hero-cta{display:flex; gap:10px; flex-wrap:wrap;}
.nb-btn{
  border:0;
  padding:12px 14px;
  border-radius:14px;
  font-weight:950;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.nb-btn.primary{background:linear-gradient(90deg, var(--accent1), var(--accent2)); color:#03111a;}
.nb-btn.secondary{background:rgba(255,255,255,.08); color:#e5e7eb; border:1px solid rgba(255,255,255,.12);}
.nb-btn:hover{filter:brightness(1.05)}

/* Auth pages use light background -> make secondary buttons readable */
.nb-auth .nb-btn.secondary{
  background:#ffffff;
  color:#0f172a;
  border:1px solid rgba(15,23,42,.26);
  box-shadow:0 10px 22px rgba(2,6,23,.08);
  opacity:1 !important;
}
.nb-auth .nb-btn.secondary:hover{
  background:#ffffff;
  border-color:rgba(15,23,42,.36);
}

/* Cards grid */
.nb-grid{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:22px;
}
.nb-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px 18px 16px;
  box-shadow:0 10px 22px rgba(2,6,23,.06);
  min-height:180px;
  display:flex; flex-direction:column; gap:10px;
}
.nb-card h3{margin:0; font-size:18px; font-weight:1000}
.nb-tag{font-weight:1000; font-size:12.5px; color:var(--accent2)}
.nb-desc{margin:0; color:var(--muted); font-weight:800; line-height:1.55; font-size:13.5px}
.nb-link{
  margin-top:auto;
  color:var(--accent);
  font-weight:1000;
  text-decoration:none;
}
.nb-link:hover{text-decoration:underline}

/* Modal */
.nb-modal-backdrop{
  position:fixed; inset:0;
  background:rgba(15,23,42,.55);
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:2000;
}
.nb-modal-backdrop.is-open{display:flex}
.nb-modal{
  width:min(780px, 100%);
  background:linear-gradient(180deg,#0f172a,#0b1220);
  color:#e5e7eb;
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:20px 22px;
  position:relative;
}
.nb-x{
  position:absolute; right:14px; top:10px;
  border:0; background:transparent;
  color:#cbd5e1; font-size:18px;
  cursor:pointer;
}
.nb-modal h2{margin:2px 0 10px; font-size:22px; font-weight:1000}
.nb-modal p{margin:0 0 12px; color:#cbd5e1; line-height:1.6; font-weight:800}
.nb-modal ul{margin:10px 0 0 16px; color:#e2e8f0; line-height:1.7; font-weight:800}
.nb-modal .cta{display:flex; justify-content:flex-end; margin-top:16px}

/* Forms */
.nb-form{
  max-width:900px;
  margin:0 auto;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 14px 30px rgba(2,6,23,.08);
  padding:22px;
}
.nb-form-row{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px;}
.nb-field{display:flex; flex-direction:column; gap:6px;}
.nb-label{font-weight:950; color:var(--ink); font-size:13px;}
.nb-input, .nb-select, .nb-textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px 12px;
  outline:none;
  font-weight:850;
}
.nb-textarea{min-height:110px; resize:vertical}
.nb-actions{display:flex; gap:10px; justify-content:flex-end; margin-top:12px; flex-wrap:wrap;}
.nb-note{color:var(--muted); font-weight:850; line-height:1.6; font-size:13px; margin-top:10px}

/* Keyword chips */
.nb-kw-group{margin:12px 0 0}
.nb-kw-title{font-weight:1000; margin:10px 0 8px}
.nb-kw-wrap{display:flex; gap:8px; flex-wrap:wrap}
.nb-kw-pill{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(15,23,42,.18);
  color:#111827;
  background:#f8fafc;
  padding:8px 12px;border-radius:999px;
  font-size:14px;line-height:1;
  cursor:pointer;user-select:none;
}
.nb-kw-pill input{ margin:0; accent-color:#7c3aed; }
.nb-kw-pill:has(input:checked){
  border-color:rgba(124,58,237,.45);
  background:#f5f3ff;
  color:#4c1d95;
  font-weight:600;
}
.nb-kw-pill input{ margin:0; accent-color:#7c3aed; }
.nb-kw-pill:has(input:checked){
  border-color:rgba(124,58,237,.45);
  background:#f5f3ff;
  color:#4c1d95;
  font-weight:600;
}

/* Resources toolbar */
.nb-toolbar{
  max-width:1200px; margin:0 auto 14px;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:14px;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 10px 22px rgba(2,6,23,.06);
  background:#fff;
}
.nb-search{flex:1; min-width:240px}
.nb-switchwrap{display:flex; align-items:center; gap:8px; font-weight:1000}
.nb-switch{
  width:46px; height:26px; border-radius:999px;
  background:rgba(15,23,42,.12);
  position:relative; cursor:pointer; border:1px solid var(--line);
}
.nb-switch::after{
  content:"";
  position:absolute; top:3px; left:3px;
  width:20px; height:20px; border-radius:50%;
  background:#fff;
  box-shadow:0 6px 12px rgba(2,6,23,.15);
  transition:transform .15s ease;
}
.nb-switch.is-on{background:rgba(34,197,94,.22); border-color:rgba(34,197,94,.35)}
.nb-switch.is-on::after{transform:translateX(20px)}
.nb-mini{
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:10px 12px;
  font-weight:1000;
  cursor:pointer;
}
.nb-mini:hover{background:rgba(2,6,23,.03)}

.nb-chiprow{display:flex; gap:8px; flex-wrap:wrap; justify-content:center; max-width:1200px; margin:0 auto 18px;}
.nb-chip{
  border:1px solid var(--line);
  background:#fff;
  padding:8px 12px;
  border-radius:999px;
  font-weight:1000;
  cursor:pointer;
}
.nb-chip.is-active{background:rgba(23,162,255,.10); border-color:rgba(23,162,255,.22); color:#0b2030}

/* Notice list */
.nb-notice-list{max-width:1200px; margin:0 auto; display:flex; flex-direction:column; gap:12px;}
.nb-notice{
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px 16px;
  box-shadow:0 10px 22px rgba(2,6,23,.06);
  background:#fff;
  display:flex;
  justify-content:space-between;
  gap:16px;
}
.nb-notice h4{margin:0; font-size:16px; font-weight:1000}
.nb-meta{color:var(--muted); font-size:12.8px; margin-top:6px; line-height:1.5; font-weight:850}
.nb-right{min-width:180px; display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:8px}
.nb-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  font-size:9px;
  font-weight:800;
  line-height:1;
  margin-left:6px;
  border-radius:50%;
  color:#ffffff;
  background:#FF3B30;
  border: none;
  box-shadow: 0 6px 18px rgba(255,59,48,0.25);
  transform: translateY(-1px);
}
.nb-badge.deadline{background:rgba(239,68,68,.10); border-color:rgba(239,68,68,.22)}
.nb-badge.today{background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.25)}
.nb-a{color:var(--accent); font-weight:1000; text-decoration:none}
.nb-a:hover{text-decoration:underline}

/* Pager */
.nb-pager{max-width:1200px; margin:18px auto 0; display:flex; gap:8px; flex-wrap:wrap; justify-content:center;}
.nb-pagebtn{
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:8px 12px;
  font-weight:1000;
  cursor:pointer;
}
.nb-pagebtn.is-active{background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.35); color:var(--accent)}
.nb-loading{max-width:1200px; margin:18px auto; color:var(--muted); text-align:center; font-weight:950}

/* Footer */
.nb-footer{
  margin-top:48px;
  /* Dark + subtle texture (모던/클린) */
  background:
    radial-gradient(900px 420px at 18% 0%, rgba(56,193,114,.14), transparent 55%),
    radial-gradient(800px 360px at 88% 18%, rgba(23,162,255,.10), transparent 60%),
    linear-gradient(180deg, var(--nav1), var(--nav2));
  color:#e5e7eb;
  padding:56px 22px 30px;
  position:relative;
  border-top:1px solid rgba(255,255,255,.06);
}
.nb-footer-inner{
  max-width:1200px; margin:0 auto;
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.2fr;
  gap:34px;
  row-gap:28px;
}

/* Hierarchy */
.nb-foot-title{
  font-weight:900;
  font-size:14px;
  color:#ffffff;
  margin-bottom:16px;
  letter-spacing:-0.2px;
}
.nb-foot-title.nb-foot-title-sm{margin:20px 0 10px; font-size:13px; color:rgba(255,255,255,.92)}
.nb-foot-text{
  color:rgba(226,232,240,.74);
  font-size:13px;
  line-height:1.75;
  font-weight:700;
}

/* Brand */
.nb-foot-brandlink{
  display:flex;
  gap:12px;
  align-items:center;
  text-decoration:none;
  color:#fff;
}
.nb-foot-logo{width:38px; height:38px; display:block; object-fit:contain; filter:drop-shadow(0 10px 22px rgba(0,0,0,.18));}
.nb-foot-brandname{font-weight:950; font-size:16px; letter-spacing:-.2px;}
.nb-foot-brandsub{font-weight:800; font-size:12px; color:rgba(226,232,240,.70); margin-top:2px;}
.nb-foot-desc{margin-top:14px; color:rgba(226,232,240,.70); font-size:13px; line-height:1.85; font-weight:700}

/* Social */
.nb-foot-social{margin-top:18px; padding-top:16px; border-top:1px solid rgba(255,255,255,.08)}
.nb-foot-kicker{font-weight:950; font-size:11px; letter-spacing:.12em; color:rgba(226,232,240,.62)}
.nb-foot-socialrow{margin-top:10px; display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.nb-social{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  padding:0;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  color:rgba(226,232,240,.84);
  text-decoration:none;
  background:rgba(255,255,255,.04);
  transition:transform .18s ease, color .18s ease, border-color .18s ease, background .18s ease;
}
.nb-social:hover{transform:translateY(-1px); color:#fff; border-color:rgba(56,193,114,.28); background:rgba(56,193,114,.10)}

.nb-social-label{display:none}
/* Lists */
.nb-foot-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px}
.nb-foot-list a{
  color:rgba(226,232,240,.66);
  text-decoration:none;
  font-weight:800;
  font-size:13.2px;
  transition:color .18s ease, transform .18s ease;
}
.nb-foot-list a:hover{color:#fff; transform:translateX(2px); text-decoration:none}
.nb-foot-list a:focus-visible{outline:2px solid rgba(56,193,114,.35); outline-offset:2px; border-radius:8px}

/* Footer - Consulting list (7 items) */
.nb-foot-consulting .nb-foot-title{
  font-weight:850;
  color:#ffffff;
  margin-bottom:16px;
}
.nb-foot-consulting .nb-foot-list{
  display:grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(4, auto);
  column-gap:26px;
  row-gap:8px;
  line-height:1.9;
  align-content:start;
}
.nb-foot-consulting .nb-foot-list a{
  color:rgba(226,232,240,.66);
  font-size:13.2px;
}

@media (max-width: 520px){
  .nb-foot-consulting .nb-foot-list{
    grid-auto-flow: row;
    grid-template-rows: none;
    grid-template-columns:1fr;
    column-gap:0;
    row-gap:8px;
  }
}

/* Footer - Resources list align with consulting column 2 */
.nb-foot-resources .nb-foot-list{
  display:grid;
  grid-template-rows: repeat(4, auto);
  row-gap:8px;
  line-height:1.9;
  align-content:start;
}
.nb-foot-resources .nb-foot-list a{
  display:inline-block;
}

/* Contact */
.nb-foot-contact{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px}
.nb-foot-contact li{display:flex; gap:10px; align-items:center}
.nb-foot-contact .nb-ico{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  flex:0 0 auto;
}
.nb-foot-contact .nb-ico svg{display:block}
.nb-foot-contact .nb-ico-phone{color:#22c55e; background:rgba(34,197,94,.14); border-color:rgba(34,197,94,.22)}
.nb-foot-contact .nb-ico-mail{color:#38bdf8; background:rgba(56,189,248,.14); border-color:rgba(56,189,248,.22)}
.nb-foot-contact .nb-ico-map{color:#f59e0b; background:rgba(245,158,11,.14); border-color:rgba(245,158,11,.22)}
.nb-foot-link{color:rgba(226,232,240,.86); text-decoration:none; font-weight:850; font-size:13px}
.nb-foot-link:hover{color:#fff; text-decoration:underline}

/* Mini links */
.nb-foot-mini{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
.nb-foot-mini a{color:rgba(226,232,240,.72); text-decoration:none; font-weight:850; font-size:12.5px}
.nb-foot-mini a:hover{color:#fff; text-decoration:underline}
.nb-dot{color:rgba(226,232,240,.34)}

.nb-foot-bottom{
  max-width:1200px;
  margin:28px auto 0;
  border-top:1px solid rgba(255,255,255,.10);
  padding-top:18px;
}

.nb-foot-bottom-inner{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
.nb-foot-copy{color:rgba(226,232,240,.74); font-size:12px; font-weight:900}
.nb-foot-subcopy{color:rgba(226,232,240,.54); font-size:12px; font-weight:800}

@media (max-width: 720px){
  .nb-footer{padding:48px 18px 26px;}
  .nb-footer-inner{grid-template-columns:1fr;}
  .nb-foot-bottom-inner{flex-direction:column; align-items:flex-start;}
}

/* Floating buttons */
.nb-float{
  position:fixed;
  right:18px; bottom:18px;
  display:flex; flex-direction:column; gap:10px;
  z-index:2100;
  transition: bottom .18s ease;
  will-change: bottom;
}
.nb-float-btn{
  background:#fff;
  color:#0b2030;
  border:1px solid rgba(23,162,255,.25);
  padding:10px 14px;
  border-radius:999px;
  font-weight:1000;
  text-decoration:none;
  box-shadow:0 12px 24px rgba(2,6,23,.12);
}
.nb-float-btn:hover{filter:brightness(1.02)}

.nb-float-btn.nb-float-kakao{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  border-radius:0 !important;
  overflow:visible !important;
  width:64px;
  height:64px;
  display:block;
  line-height:0;
}
.nb-float-btn.nb-float-kakao img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  filter:none;
}


/* Flash */
.nb-flash{
  max-width:900px; margin:0 auto 14px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--line);
  font-weight:950;
}
.nb-flash.ok{background:rgba(34,197,94,.10); border-color:rgba(34,197,94,.22)}
.nb-flash.err{background:rgba(239,68,68,.08); border-color:rgba(239,68,68,.18)}

/* Responsive */
@media (max-width: 1100px){
  .nb-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
  .nb-footer-inner{grid-template-columns:1fr 1fr}
}
@media (max-width: 900px){
  .nb-sidebar{position:static; width:100%; height:auto;}
  .nb-main{margin-left:0; width:100%}
  .nb-layout{flex-direction:column}
  .nb-content{padding:16px 12px}
  .nb-grid{grid-template-columns:1fr}
  .nb-notice{flex-direction:column}
  .nb-right{align-items:flex-start; min-width:auto}
  .nb-form-row{grid-template-columns:1fr}
  .nb-hero-overlay{padding:28px 18px}
  .nb-hero-h1{font-size:34px}
}

/* ==============================
   v2 (Top navigation + full hero)
   ============================== */

/* Layout overrides (remove left sidebar) */
.nb-layout{display:block;}
.nb-sidebar{display:none;}
.nb-main{
  margin-left:0;
  width:100%;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  padding-top:var(--nb-header-h, 92px); /* header height (auto sync by JS) */
}
.nb-content{flex:1; padding:18px 22px 32px; max-width:1200px; margin:0 auto; width:100%;}

/* Top header */

:root{
  --nb-header-h: 92px;
  --nb-header-bg: rgba(13, 17, 23, 0.80);
  --nb-header-bg-scrolled: rgba(13, 17, 23, 0.88);
  --nb-header-border: rgba(255, 255, 255, 0.05);
  --nb-header-blur: 15px;
  --nb-nav-text: #FFFFFF;
  --nb-nav-text-strong: #FFFFFF;
  --nb-nav-accent: #38C172;
  --nb-nav-support: #00FF85;
}

.nb-header{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: var(--nb-header-bg);
  -webkit-backdrop-filter: blur(var(--nb-header-blur)) saturate(160%);
  backdrop-filter: blur(var(--nb-header-blur)) saturate(160%);
  border-bottom: 1px solid var(--nb-header-border);
  padding: 20px 0;
  box-sizing: border-box;
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.nb-header.is-scrolled{
  background: var(--nb-header-bg-scrolled);
  box-shadow: 0 10px 34px rgba(0,0,0,.16);
}

.nb-header-inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

@media (max-width: 900px){
  .nb-header-inner{padding:0 16px;}
}

.nb-topbrand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color: #ffffff;
  min-width:64px;
}
.nb-toplogo{
  width:40px;
  height:40px;
  background:transparent;
  border:none;
  border-radius:0;
  object-fit:contain;
}
.nb-topbrand-text{display:flex; flex-direction:column; line-height:1.1}
.nb-topbrand-en{font-weight:800; letter-spacing:.1px; line-height:1.1; font-size:16px}
.nb-topbrand-kr{font-weight:650; color:rgba(255,255,255,.68); font-size:12px; margin-top:2px}

.nb-topnav{display:flex; align-items:center; gap:14px;}

/* Navigation links (underline hover) */
.nb-toplink,
.nb-dd-btn{
  text-decoration:none;
  color: var(--nb-nav-text);
  font-weight: 600;
  letter-spacing: -0.02em;
  font-size: 16px;

  height: 40px;
  padding: 0 12px;

  border-radius: 12px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  line-height: 1;
  cursor: pointer;
  background: transparent;
  border: 1px solid transparent;

  transition: color .18s ease, transform .18s ease, background .18s ease, border-color .18s ease;
}
.nb-toplink:hover,
.nb-dd-btn:hover{
  color: #ffffff;
  transform: translateY(-1px);
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.10);
}
.nb-toplink::after,
.nb-dd-btn::after{
  content: '';
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 7px;
  height: 2px;
  background: var(--nb-nav-accent);
  border-radius: 999px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .18s ease, opacity .18s ease;
  opacity: 0;
}
.nb-toplink:hover::after,
.nb-dd-btn:hover::after{ transform: scaleX(1); }
.nb-toplink.is-active{ color: var(--nb-nav-text-strong); }
.nb-toplink.is-active::after{ transform: scaleX(1); }

/* Support link highlight + badge */
.nb-toplink--support,
.nb-toplink--support.is-active{
  color: var(--nb-nav-support);
  font-weight: 800;
  text-shadow: 0 0 10px rgba(0, 255, 133, 0.45);
}
.nb-toplink--support::after{ background: var(--nb-nav-support); }
.nb-toplink--support:hover{
  color: var(--nb-nav-support);
  text-shadow: 0 0 12px rgba(0, 255, 133, 0.50);
}
.nb-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  font-size:9px;
  font-weight:800;
  line-height:1;
  margin-left:6px;
  border-radius:50%;
  color:#ffffff;
  background:#FF3B30;
  border: none;
  box-shadow: 0 6px 18px rgba(255,59,48,0.25);
  transform: translateY(0);
}

/* Dropdown */
.nb-dd{position:relative;}
.nb-dd-btn{
  border:0;
  background:transparent;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.nb-dd-caret{display:inline-block; opacity:.75; transition: transform .18s ease, opacity .18s ease;}
.nb-dd.is-open .nb-dd-caret{transform: rotate(180deg); opacity:1;}
.nb-dd-menu{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:220px;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  box-shadow:0 18px 38px rgba(2,6,23,.14);
  padding:10px;
  display:none;
}
.nb-dd.is-open .nb-dd-menu{display:block;}
.nb-dd.is-open .nb-dd-btn{background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.12);}
.nb-dd.is-open .nb-dd-btn::after{transform: scaleX(1); opacity:1;}
.nb-dd-menu a{
  display:block;
  padding:10px 12px;
  border-radius:14px;
  text-decoration:none;
  color:rgba(15,23,42,.86);
  font-weight:650;
  font-size:13.5px;
}
.nb-dd-menu a:hover{background:rgba(2,6,23,.06)}
.nb-dd-menu-right{right:0; left:auto;}

/* Consulting mega dropdown (7 items) */
.nb-dd-consulting .nb-dd-menu{
  /* dark glass mega menu */
  background: rgba(13,17,23,0.92);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 24px 60px rgba(0,0,0,0.40);
  border-radius: 18px;

  min-width: 520px;
  max-width: min(560px, calc(100vw - 32px));
  padding: 12px;

  /* layout */
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;

  /* animation */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 1200;
}
.nb-dd-consulting.is-open .nb-dd-menu{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.nb-dd-consulting .nb-dd-menu a{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-radius: 14px;
  text-decoration: none;

  font-size: 14px;
  font-weight: 800;
  color: rgba(255,255,255,0.86);

  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);

  transition: background .15s ease, border-color .15s ease, transform .15s ease, color .15s ease, box-shadow .15s ease;
}
.nb-dd-consulting .nb-dd-menu a::after{
  content: '›';
  opacity: .55;
  transition: transform .15s ease, opacity .15s ease;
}
.nb-dd-consulting .nb-dd-menu a:hover{
  background: rgba(0,255,133,0.10);
  border-color: rgba(0,255,133,0.22);
  color: #00FF85;
  box-shadow: inset 3px 0 0 #00FF85;
  transform: translateY(-1px);
}
.nb-dd-consulting .nb-dd-menu a:hover::after{
  opacity: .95;
  transform: translateX(2px);
}
@media (max-width: 980px){
  .nb-dd-consulting .nb-dd-menu{
    min-width: 260px;
    max-width: calc(100vw - 32px);
    grid-template-columns: 1fr;
  }
}

/* Right side group */
.nb-topright{display:flex; align-items:center; gap:10px;}
.nb-userdd{display:flex; align-items:center; gap:12px;}

.nb-usercluster{
  display:inline-flex;
  align-items:center;
  gap:2px;
  height:40px;
  padding: 2px;
  border-radius: 50px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.16);
  box-shadow: 0 10px 26px rgba(0,0,0,0.18);
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.nb-usercluster:hover{
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.20);
}
.nb-vsep{
  width:1px;
  height:18px;
  background: rgba(255,255,255,0.12);
}
.nb-logout-ico{ width:14px; height:14px; }

.nb-user-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  background: transparent;
  border: 0;
  border-radius: 50px;
  height: 36px;
  padding: 0 12px;
  color: #ffffff;
  font-weight: 800;
  font-size: 13.5px;
  white-space: nowrap;
  transition: background .15s ease;
}
.nb-user-chip:hover{background: rgba(255,255,255,0.08);}
.nb-user-ico{ color: rgba(255,255,255,0.92); }
.nb-user-name{ letter-spacing: -0.01em; }

.nb-topbtn{
  text-decoration:none;
  font-weight:800;
  font-size:13.5px;
  padding:10px 12px;
  border-radius: 50px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.025);
  color: rgba(255,255,255,.88);
  transition:transform .15s ease, filter .15s ease, background .15s ease, border-color .15s ease;
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  word-break:keep-all;
  flex:0 0 auto;
}
.nb-topbtn:hover{transform:translateY(-1px); filter:brightness(1.05)}
.nb-topbtn.ghost{background:transparent; border:1px solid rgba(255,255,255,.30); color:rgba(255,255,255,.70)}
.nb-topbtn.primary{background:linear-gradient(90deg, #3490dc, #38c172); color:#fff; border:0; border-radius:8px; padding:8px 18px;}

.nb-topbtn--dash{
  background: #00FF85;
  color: #000000;
  border: 0;
  border-radius: 50px;
  padding: 9px 16px;
  font-weight: 900;
  box-shadow: 0 10px 26px rgba(0,255,133,0.16);
}
.nb-topbtn--dash:hover{
  filter: brightness(1.03);
  box-shadow: 0 12px 30px rgba(0,255,133,0.22);
}

.nb-topbtn--logout{
  background: transparent;
  border: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 13px;
  border-radius: 50px;
  height: 36px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform .15s ease, background .15s ease, color .15s ease;
}
.nb-topbtn--logout:hover{
  color: #ffffff;
  background: rgba(255, 255, 255, 0.10);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  transform: translateY(-1px);
}

@media (max-width: 520px){
  .nb-topnav{display:none;}
  .nb-burger{display:inline-flex;}
}


/* Mobile burger */
.nb-burger{
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.025);
  cursor:pointer;
  display:none;
  position:relative;
}
.nb-burger span{
  position:absolute;
  left:12px; right:12px;
  height:2px;
  background:rgba(255,255,255,.82);
  border-radius:999px;
}
.nb-burger span:nth-child(1){top:14px}
.nb-burger span:nth-child(2){top:21px}
.nb-burger span:nth-child(3){top:28px}

/* Mobile drawer */
.nb-mobile{display:none;}
.nb-mobile.is-open{display:block;}
.nb-mobile{
  position:fixed !important;
  inset:0 !important;
  /* 인앱 브라우저에서 패널이 배경과 겹쳐 보이지 않도록 오버레이를 더 진하게 */
  background:rgba(15,23,42,.62);
  /* 일부 페이지가 z-index를 과도하게 사용해 메뉴가 뒤로 깔리는 경우가 있어 상향 */
  z-index:99999 !important;
}
.nb-mobile-panel{
  position:absolute;
  top:0; right:0;
  width:min(360px, 92vw);
  /* 일부 모바일/인앱 브라우저에서 height:100%가 잘 적용되지 않아 패널 아래가 비쳐보이는 문제 방지 */
  min-height:100vh !important;
  height:100vh !important;
  display:flex;
  flex-direction:column;
  /* 모바일 메뉴 패널은 완전 불투명(투명/블러로 인해 글자가 비쳐 보이는 현상 방지) */
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  border-left:1px solid rgba(15,23,42,.10);
  box-shadow:-14px 0 34px rgba(0,0,0,.18);
  padding:16px;
  overflow-y:auto;
  animation:nbSlideIn .18s ease;
}
@keyframes nbSlideIn{from{transform:translateX(14px); opacity:0}to{transform:translateX(0); opacity:1}}
.nb-mobile-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px}
.nb-mobile-title{font-weight:1000; font-size:16px}
.nb-mobile-close{
  width:44px; height:44px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(2,6,23,.03);
  cursor:pointer;
  font-size:22px;
}
.nb-mobile-links{
  /* 패널 내부가 스크롤 되도록 + 배경을 완전 불투명으로 유지 */
  flex:1;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:8px;
  background:#fff;
}
.nb-m-link{padding:12px 12px; border-radius:16px; text-decoration:none; font-weight:950; color:rgba(15,23,42,.86); background:rgba(2,6,23,.03)}
.nb-m-link:hover{background:rgba(2,6,23,.06)}
.nb-m-details{background:rgba(2,6,23,.03); border-radius:16px; padding:10px 12px}
.nb-m-details summary{
  cursor:pointer;
  font-weight:1000;
  list-style:none;
  padding:12px 10px;
  border-radius:14px;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(15,23,42,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.nb-m-details summary::-webkit-details-marker{display:none}
.nb-m-details summary::after{
  content:'▾';
  opacity:.75;
  transition:transform .2s ease-in-out;
}
.nb-m-details[open] summary::after{transform:rotate(180deg)}
.nb-m-sub{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:10px}
.nb-m-sub a{padding:12px 14px; border-radius:14px; text-decoration:none; font-weight:950; color:rgba(15,23,42,.86); background:rgba(255,255,255,.70); border:1px solid rgba(15,23,42,.08)}

@media (max-width: 380px){
  .nb-m-sub{grid-template-columns:1fr;}
}

/* Fullscreen hero */
.nb-hero-full{
  position:relative;
  height:calc(100vh - var(--nb-header-h, 92px));
  min-height:560px;
  width:100%;
  margin:0;
  overflow:hidden;
  background:radial-gradient(1200px 700px at 18% 30%, rgba(23,162,255,.28), transparent 62%),
             radial-gradient(1000px 650px at 82% 30%, rgba(34,197,94,.22), transparent 62%),
             linear-gradient(180deg, #061826, #070f18);
}
.nb-hero-full canvas{position:absolute; inset:0; width:100%; height:100%;}
.nb-hero-full-overlay{
  position:relative;
  height:100%;
  max-width:1200px;
  margin:0 auto;
  padding:62px 22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:16px;
  color:#e5e7eb;
}
.nb-hero-glass{
  width:min(900px, 100%);
  padding:26px 22px;
  border-radius:22px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(18px);
  box-shadow:0 18px 54px rgba(0,0,0,.20);
}
.nb-scrollhint{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  color:rgba(226,232,240,.86);
  text-decoration:none;
  font-weight:950;
  font-size:13px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(16px);
}
.nb-scrollhint:hover{filter:brightness(1.08)}

/* =========================================================
   HOME(대문) - 카드 없는 타이포 히어로 + 5개 섹션
   ========================================================= */
.nb-home-hero{
  position:relative;
  height:calc(100vh - var(--nb-header-h, 92px));
  min-height:640px;
  overflow:hidden;
  background:radial-gradient(1200px 700px at 18% 30%, rgba(23,162,255,.28), transparent 62%),
             radial-gradient(1000px 650px at 82% 30%, rgba(34,197,94,.22), transparent 62%),
             linear-gradient(180deg, #061826, #070f18);
}
.nb-home-hero canvas{position:absolute; inset:0; width:100%; height:100%;}
.nb-home-hero-dim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(2,6,23,.62), rgba(2,6,23,.78));
}
.nb-home-hero-inner{
  position:relative;
  height:100%;
  max-width:1200px;
  margin:0 auto;
  padding:84px 22px 62px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.nb-home-mark{display:flex; flex-direction:column; gap:14px; align-items:center;}
.nb-home-logo{display:flex; align-items:center; justify-content:center; opacity:.98;}
.nb-home-logo-img{width:clamp(44px, 6vw, 68px); height:clamp(44px, 6vw, 68px); object-fit:contain; filter:drop-shadow(0 14px 38px rgba(0,0,0,.35));}

.nb-home-title{margin:0; font-weight:1100; letter-spacing:-1.2px; line-height:1.02;}
.nb-home-title-grad{
  font-size:clamp(54px, 8vw, 104px);
  background:linear-gradient(90deg, rgba(23,162,255,1), rgba(34,197,94,1));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:0 14px 48px rgba(0,0,0,.38);
}

/* HOME Hero 타이핑 커서 */
.nb-typed-cursor{
  display:inline-block;
  width:0.11em;
  height:0.88em;
  margin-left:0.08em;
  vertical-align:-0.06em;
  border-radius:2px;
  background:rgba(226,232,240,.85);
  animation:nbTypedBlink .95s steps(1,end) infinite;
}
@keyframes nbTypedBlink{50%{opacity:0;}}

/* HOME Hero 타이핑 커서(태그라인용 작은 커서) */
.nb-typed-cursor--sm{
  height:0.78em;
  width:0.10em;
  margin-left:0.10em;
  vertical-align:-0.04em;
  opacity:0.85;
}

@media (prefers-reduced-motion: reduce){
  .nb-typed-cursor{animation:none; opacity:0;}
}
.nb-home-tagline{margin:0; color:rgba(226,232,240,.88); font-weight:900; font-size:16px; letter-spacing:.2px; text-transform:none;}
.nb-home-sub{margin:0; color:rgba(226,232,240,.72); font-size:13px;}

.nb-scroll-indicator{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  text-decoration:none;
  color:rgba(226,232,240,.80);
  font-weight:1000;
  letter-spacing:1.4px;
  font-size:11px;
  user-select:none;
}
.nb-scroll-mouse{
  width:26px; height:40px;
  border-radius:999px;
  border:1px solid rgba(226,232,240,.42);
  position:relative;
  background:rgba(255,255,255,.04);
  backdrop-filter: blur(12px);
}
.nb-scroll-mouse::after{
  content:'';
  width:4px; height:8px;
  border-radius:99px;
  background:linear-gradient(180deg, rgba(23,162,255,1), rgba(34,197,94,1));
  position:absolute;
  left:50%; top:10px;
  transform:translateX(-50%);
  animation:nbScroll 1.25s ease-in-out infinite;
}
@keyframes nbScroll{
  0%{opacity:.0; transform:translate(-50%, -2px);}
  15%{opacity:1;}
  70%{opacity:1; transform:translate(-50%, 12px);}
  100%{opacity:0; transform:translate(-50%, 14px);}
}

.nb-home-section{padding:74px 0; background:#fff;}
.nb-home-wrap{max-width:1200px; margin:0 auto; padding:0 18px;}
.nb-home-head{display:flex; flex-direction:column; gap:10px; margin-bottom:18px;}
.nb-home-h2{margin:0; font-size:26px; letter-spacing:-.4px;}
.nb-home-lead{margin:0; opacity:.82; font-size:14px; line-height:1.55;}

.nb-home-services{background:rgba(248,250,252,1);}

/* =========================
   HOME: Solution Carousel
   ========================= */
.nb-home-solutions{position:relative;}
.nb-sol-carousel{position:relative; margin-top:14px; padding-bottom:8px;}
.nb-sol-track{
  position:relative; z-index:2;
  display:flex;
  gap:14px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding:8px 6px 18px;
  scroll-behavior:smooth;
  scrollbar-width:none;
}
.nb-sol-track::-webkit-scrollbar{display:none;}
.nb-sol-card{
  z-index:2;
  flex:0 0 auto;
  width:340px;
  scroll-snap-align:start;
  border:1px solid rgba(15,23,42,.10);
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:0 16px 40px rgba(2,6,23,.08);
  padding:18px 18px 16px;
  text-decoration:none;
  color:inherit;
  position:relative;
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nb-sol-card::before{
  content:'';
  position:absolute;
  inset:-60px;
  background:
    radial-gradient(420px 260px at 15% 10%, rgba(23,162,255,.16), transparent 62%),
    radial-gradient(420px 260px at 85% 20%, rgba(34,197,94,.14), transparent 62%);
  opacity:.55;
  pointer-events:none;
}
.nb-sol-card:hover{transform:translateY(-3px); box-shadow:0 22px 54px rgba(2,6,23,.12); border-color:rgba(15,23,42,.16);}
.nb-sol-ico{
  width:56px; height:56px;
  border-radius:18px;
  background:rgba(15,23,42,.04);
  border:1px solid rgba(15,23,42,.08);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:12px;
  position:relative;
}
.nb-sol-kicker{
  font-size:12px;
  letter-spacing:.06em;
  color:rgba(15,23,42,.60);
  text-transform:uppercase;
  margin-bottom:6px;
  position:relative;
}
.nb-sol-title{
  font-size:22px;
  line-height:1.18;
  margin:0 0 8px;
  color:rgba(15,23,42,.92);
  position:relative;
}
.nb-sol-desc{
  margin:0 0 12px;
  color:rgba(15,23,42,.68);
  line-height:1.5;
  font-size:14px;
  position:relative;
}
.nb-sol-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  color:rgba(2,6,23,.86);
  position:relative;
}
.nb-sol-cta::after{
  content:'→';
  transform:translateY(-1px);
}
.nb-sol-nav{
  position:absolute;
  top:50%;
  transform:translateY(-62%);
  width:42px; height:42px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.14);
  background:rgba(255,255,255,.85);
  box-shadow:0 12px 28px rgba(2,6,23,.12);
  backdrop-filter:blur(10px);
  cursor:pointer;
  z-index:3;
}
.nb-sol-nav:hover{background:rgba(255,255,255,.96);}
.nb-sol-nav.prev{left:-8px;}
.nb-sol-nav.next{right:-8px;}
.nb-sol-nav::before{
  content:'';
  display:block;
  width:10px; height:10px;
  border-right:3px solid rgba(15,23,42,.72);
  border-bottom:3px solid rgba(15,23,42,.72);
  margin:0 auto;
  transform:rotate(135deg);
}
.nb-sol-nav.next::before{transform:rotate(-45deg);}
.nb-sol-dots{
  position:relative; z-index:2;
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:4px;
}
.nb-sol-dot{
  width:8px; height:8px;
  border-radius:999px;
  background:rgba(15,23,42,.18);
  border:0;
  cursor:pointer;
}
.nb-sol-dot.is-active{background:rgba(34,197,94,.85);}
.nb-home-watermark{
  position:absolute;
  left:14px;
  bottom:-10px;
  font-weight:900;
  letter-spacing:-0.04em;
  font-size:clamp(72px, 10vw, 150px);
  color:rgba(15,23,42,.06);
  pointer-events:none;
  user-select:none;
  z-index:0;
  mix-blend-mode:multiply;
}
@media (max-width: 980px){
  .nb-sol-card{width:300px;}
  .nb-sol-nav{display:none;}
  .nb-home-watermark{left:8px; bottom:-6px; font-size:clamp(56px, 14vw, 120px);}
}
@media (prefers-reduced-motion: reduce){
  .nb-sol-track{scroll-behavior:auto;}
}

.nb-home-service-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}
.nb-home-svc{
  border:1px solid rgba(15,23,42,.10);
  border-radius:20px;
  padding:18px 18px;
  background:rgba(255,255,255,.86);
  box-shadow:0 16px 40px rgba(2,6,23,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  position:relative;
  overflow:hidden;
}
.nb-home-svc::before{
  content:'';
  position:absolute;
  inset:-40px;
  background:radial-gradient(380px 240px at 30% 20%, rgba(23,162,255,.14), transparent 60%),
             radial-gradient(380px 240px at 70% 20%, rgba(34,197,94,.12), transparent 60%);
  opacity:.0;
  transition:opacity .18s ease;
}
.nb-home-svc>*{position:relative;}
.nb-home-svc:hover{transform:translateY(-4px); box-shadow:0 22px 58px rgba(2,6,23,.12); border-color:rgba(34,197,94,.22)}
.nb-home-svc:hover::before{opacity:1;}
.nb-home-svc-ico{display:inline-flex; align-items:center; justify-content:center; margin-bottom:8px;}
.nb-home-svc h3{margin:0 0 6px 0; font-size:16px; letter-spacing:-.2px;}
.nb-home-svc p{margin:0; opacity:.78; font-size:13px; line-height:1.55;}

.nb-home-demo{background:linear-gradient(180deg, rgba(2,6,23,.02), rgba(2,6,23,0));}
.nb-home-demo-grid{display:grid; grid-template-columns: 1.1fr .9fr; gap:18px; align-items:stretch;}
.nb-demo-panel{
  border-radius:22px;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(2,6,23,.04);
  overflow:hidden;
  box-shadow:0 20px 60px rgba(2,6,23,.10);
}
.nb-demo-top{display:flex; gap:10px; padding:14px 14px 10px; flex-wrap:wrap; background:rgba(255,255,255,.70); border-bottom:1px solid rgba(15,23,42,.08)}
.nb-demo-pill{
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;
  font-size:12px;
  font-weight:950;
  display:inline-flex;
  gap:8px;
  align-items:center;
}
.nb-demo-pill::before{
  content:'';
  width:8px; height:8px; border-radius:999px;
  background:rgba(15,23,42,.18);
}
.nb-demo-pill.is-on{border-color:rgba(47,91,255,.45); box-shadow:0 0 0 3px rgba(47,91,255,.10) inset;}
.nb-demo-pill.is-on::before{background:linear-gradient(90deg, rgba(23,162,255,1), rgba(34,197,94,1));}
.nb-demo-list{padding:10px 0;}
.nb-demo-item{
  display:flex; justify-content:space-between; gap:12px;
  padding:12px 14px;
  font-size:13px;
  border-bottom:1px solid rgba(15,23,42,.06);
  background:rgba(255,255,255,.78);
  transition:background .18s ease;
}
.nb-demo-item .t{font-weight:900; color:rgba(2,6,23,.86);}
.nb-demo-item .b{
  font-weight:1000;
  color:rgba(2,6,23,.78);
  border:1px solid rgba(15,23,42,.10);
  background:rgba(255,255,255,.86);
  padding:6px 8px;
  border-radius:999px;
  font-size:12px;
  white-space:nowrap;
}
.nb-demo-item.is-hot{background:rgba(34,197,94,.10);}
.nb-demo-item.is-hot .b{border-color:rgba(34,197,94,.38)}
.nb-demo-item.is-fav .t{color:rgba(47,91,255,.95)}
.nb-demo-item.is-fav .t::before{content:'★ '; color:rgba(47,91,255,.95)}
.nb-demo-foot{display:flex; gap:8px; align-items:center; padding:12px 14px; background:rgba(255,255,255,.70)}
.nb-demo-dot{width:8px; height:8px; border-radius:999px; background:linear-gradient(90deg, rgba(23,162,255,1), rgba(34,197,94,1));}
.nb-demo-note{font-size:12px; opacity:.72;}

.nb-demo-copy{
  border-radius:22px;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  padding:18px 18px;
  box-shadow:0 16px 46px rgba(2,6,23,.06);
}
.nb-demo-kicker{font-size:12px; font-weight:1000; letter-spacing:.7px; text-transform:uppercase; opacity:.70;}
.nb-demo-copy h3{margin:10px 0 10px; font-size:18px; letter-spacing:-.25px;}
.nb-demo-bullets{margin:0; padding-left:16px; display:flex; flex-direction:column; gap:8px; font-size:13px; opacity:.85; line-height:1.55;}

/* =========================================================
   HOME: 지원사업(공지) 페이지 Scrollytelling Demo
   - 한 섹션(한 페이지)에서 스크롤로 화면이 “프레임 전환”되며
     키워드 필터 → 마감임박순 → 즐겨찾기(내 리스트)를 이해시키는 목적
========================================================= */
.nb-demo-story{background:linear-gradient(180deg, rgba(2,6,23,.02), rgba(2,6,23,0));}
.nb-demo-story-wrap{padding-top:0;}
.nb-home-section.nb-demo-story{padding:64px 0 180px; min-height:100vh;}

/* 지원사업 데모는 화면을 넓게 사용 */
.nb-demo-story .nb-home-wrap{max-width:1400px;}

/* 데모 섹션은 화면을 넓게 쓰되, 전체 페이지 레이아웃(상단 워터마크 기준선)과 맞춰 중앙 정렬 유지 */
@media (min-width: 1200px){
  .nb-demo-story .nb-home-wrap{
    max-width: 1560px;
    margin: 0 auto;
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* 스토리 스테이지: 높이를 크게 잡고 내부는 sticky로 고정 */
.nb-demo-story-stage{height:auto; position:relative;}
.nb-demo-story-sticky{
  position:relative;
  top:auto;
  min-height:auto;
  display:grid;
  /* 왼쪽(데모) + 가운데(단계 카드) + 오른쪽(카드 밖 문구) */
  grid-template-columns: 1.15fr .82fr .55fr;
  gap:22px;
  /* 좌/우 카드 높이 맞춤 */
  align-items:stretch;
  padding:8px 0 18px;
}

/* 데모 섹션 워터마크(우측 하단) */
.nb-demo-watermark{
  z-index: 0;
  position: absolute;
  right: -8px;
  bottom: -95px;
  font-size: 120px;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: rgba(2, 6, 23, 0.06);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

/* 워터마크 위로 콘텐츠를 올립니다 */
.nb-demo-story-left,
.nb-demo-story-right,
.nb-demo-story-copycol{
  position: relative;
  z-index: 2;
}

.nb-demo-story-left{display:flex; align-items:flex-start; justify-content:center; padding-top:0; height:100%;}
.nb-demo-mock{
  width:min(760px, 100%);
  height:100%;
  border-radius:26px;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(255,255,255,.86);
  box-shadow:0 26px 80px rgba(2,6,23,.12);
  overflow:hidden;
  position:relative;
}

/* 프레임 내부에서 쓰던 spot(강조 오버레이)은 반응형에서 위치가 틀어질 수 있어 비활성화 */
.nb-demo-spot{display:none !important;}

/* 데모 섹션 헤더: PRODUCT/SOLUTION 톤과 유사한 kicker 추가 */
.nb-demo-kicker{display:block; margin-bottom:6px;}
.nb-demo-mock::before{
  content:'';
  position:absolute;
  inset:-60px;
  background:radial-gradient(520px 320px at 25% 10%, rgba(23,162,255,.10), transparent 60%),
             radial-gradient(520px 320px at 70% 10%, rgba(34,197,94,.10), transparent 60%);
  pointer-events:none;
}
.nb-demo-mock>*{position:relative;}

.nb-demo-mock-top{padding:16px 16px 10px; border-bottom:1px solid rgba(15,23,42,.08); background:rgba(255,255,255,.72)}
.nb-demo-mock-title{font-weight:1100; letter-spacing:-.2px; font-size:14px; color:rgba(2,6,23,.92)}
.nb-demo-mock-sub{margin-top:4px; font-size:12px; opacity:.70}

.nb-demo-frames{position:relative; min-height:450px; padding:14px 12px 12px;}
.nb-demo-frame{position:absolute; inset:14px 12px 12px; opacity:0; transform:translateY(10px) scale(.985); transition:opacity .26s ease, transform .26s ease;}
.nb-demo-frame.is-active{opacity:1; transform:translateY(0) scale(1);}

.nb-demo-toolbar{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px;}
.nb-demo-chip{
  position:relative;
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;
  font-size:12px;
  font-weight:1000;
}
.nb-demo-chip::before{content:''; width:8px; height:8px; border-radius:999px; background:rgba(15,23,42,.18);}
.nb-demo-chip.is-on{border-color:rgba(47,91,255,.45); box-shadow:0 0 0 3px rgba(47,91,255,.10) inset;}
.nb-demo-chip.is-on::before{background:linear-gradient(90deg, rgba(23,162,255,1), rgba(34,197,94,1));}

/* 가독성: 작은 동그라미(커서) 대신 칩 자체를 크게 강조 */
.nb-demo-chip.is-focus{
  border-color:rgba(47,91,255,.70);
  background:rgba(47,91,255,.06);
  box-shadow:0 0 0 4px rgba(47,91,255,.16), 0 18px 44px rgba(47,91,255,.10);
}

/* 칩 클릭(가상 마우스) 애니메이션 */
.nb-demo-chip.is-click{animation:nbChipPress .55s ease;}
.nb-demo-chip.is-click::after{
  content:'';
  position:absolute;
  inset:-6px;
  border-radius:999px;
  border:2px solid rgba(47,91,255,.35);
  opacity:0;
  animation:nbChipRipple .55s ease;
}
@keyframes nbChipPress{
  0%{transform:scale(1)}
  40%{transform:scale(.965)}
  100%{transform:scale(1)}
}
@keyframes nbChipRipple{
  0%{opacity:0; transform:scale(.92)}
  30%{opacity:1}
  100%{opacity:0; transform:scale(1.06)}
}

/* 가상 커서 */
.nb-demo-cursor{
  display:none !important;
}

.nb-demo-list{border-radius:18px; overflow:hidden; border:1px solid rgba(15,23,42,.10); background:rgba(2,6,23,.03)}
.nb-demo-row{
  display:grid;
  grid-template-columns: 1fr 110px 80px;
  gap:10px;
  padding:12px 12px;
  font-size:13px;
  background:rgba(255,255,255,.88);
  border-bottom:1px solid rgba(15,23,42,.06);
  align-items:center;
}
.nb-demo-row:last-child{border-bottom:none;}
.nb-demo-row .t{font-weight:1000; color:rgba(2,6,23,.90); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.nb-demo-row .m{font-size:12px; opacity:.70; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:left;}
.nb-demo-row .d{
  justify-self:end;
  font-weight:1100;
  font-size:12px;
  white-space:nowrap;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(255,255,255,.92);
  padding:6px 8px;
  border-radius:999px;
}
.nb-demo-row.is-hot{background:rgba(34,197,94,.10);}
.nb-demo-row.is-hot .d{border-color:rgba(34,197,94,.38)}
.nb-demo-row.is-fav .t{color:rgba(47,91,255,.95)}

.nb-demo-hint{margin-top:10px; font-size:12px; opacity:.72;}

/* 하이라이트(spot) 오버레이 */
.nb-demo-spot{display:none !important;}

.nb-demo-mock-foot{display:flex; gap:10px; align-items:center; justify-content:space-between; padding:12px 14px; border-top:1px solid rgba(15,23,42,.08); background:rgba(255,255,255,.72)}
.nb-demo-live-dot{width:8px; height:8px; border-radius:999px; background:linear-gradient(90deg, rgba(23,162,255,1), rgba(34,197,94,1));}

/* 상태 텍스트는 공간을 채우고, 진행바는 항상 우측에 정렬 */
.nb-demo-live-text{font-size:12px; opacity:.74; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}

.nb-demo-prog{
  width:140px;
  height:4px;
  border-radius:999px;
  background:rgba(15,23,42,.10);
  overflow:hidden;
}
.nb-demo-prog i{display:block; height:100%; width:0%; background:linear-gradient(90deg, rgba(23,162,255,1), rgba(34,197,94,1));}
.nb-demo-story.is-playing .nb-demo-prog i{animation:nbDemoProg 2.2s linear infinite;}
@keyframes nbDemoProg{from{width:0%}to{width:100%}}

/* RIGHT: 설명 */
.nb-demo-story-right{
  border-radius:24px;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  box-shadow:0 18px 52px rgba(2,6,23,.06);
  padding:16px 16px;
  margin-top:0;
  display:flex;
  flex-direction:column;
  height:100%;
}

/* 카드 오른쪽(카드 밖) 문구 영역 */
.nb-demo-story-copycol{
  padding:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  transform: translateY(18px);
}
.nb-demo-copy-h2{
  margin:10px 0 6px;
  font-size:44px;
  line-height:1.08;
  font-weight:900;
}
.nb-demo-copy-lead{
  margin:0;
  font-size:14px;
  line-height:1.65;
  color:rgba(15,23,42,.70);
}

/* 우측 카드 상단: PRODUCT/SOLUTION 톤의 헤더 블록 */
.nb-demo-right-head{
  padding:2px 2px 12px;
}
.nb-demo-right-head .nb-sol2-kicker{font-size:12px; letter-spacing:.14em; text-transform:uppercase; opacity:.70;}
.nb-demo-right-h2{
  margin:8px 0 6px;
  font-size:30px;
  line-height:1.12;
  font-weight:900;
}
.nb-demo-right-lead{
  margin:0;
  font-size:14px;
  line-height:1.65;
  color:rgba(15,23,42,.70);
}

.nb-demo-steps{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
.nb-demo-step{
  display:flex;
  gap:12px;
  align-items:flex-start;
  border:1px solid rgba(15,23,42,.10);
  border-radius:18px;
  padding:14px 14px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.92));
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.nb-demo-step .k{
  width:48px; height:48px; flex:0 0 auto;
  border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  font-weight:1100;
  color:rgba(226,232,240,.92);
  background:linear-gradient(135deg, rgba(23,162,255,.95), rgba(34,197,94,.95));
  box-shadow:0 14px 34px rgba(2,6,23,.16);
}
.nb-demo-step .t{font-weight:1100; letter-spacing:-.2px;}
.nb-demo-step .d{margin-top:6px; font-size:13px; opacity:.78; line-height:1.55;}
.nb-demo-step.is-active{border-color:rgba(47,91,255,.35); box-shadow:0 24px 64px rgba(47,91,255,.10); transform:translateY(-2px)}

.nb-demo-cta{margin-top:auto; border-top:1px solid rgba(15,23,42,.08); padding-top:12px; display:flex; flex-direction:column; gap:10px;}
.nb-demo-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 14px;
  border-radius:14px;
  font-weight:1100;
  text-decoration:none;
  color:#fff;
  background:linear-gradient(135deg, rgba(47,91,255,1), rgba(23,162,255,1));
  box-shadow:0 16px 44px rgba(47,91,255,.22);
  width:100%;
}
.nb-demo-btn:hover{filter:brightness(1.03)}
.nb-demo-cta-note{margin-top:10px; font-size:12px; opacity:.68; line-height:1.55;}

@media (max-width: 980px){
  .nb-demo-story-stage{height:auto;}
  .nb-demo-story-sticky{position:relative; min-height:auto; grid-template-columns:1fr; padding:14px 0 20px;}
  .nb-demo-story-copycol{order:-1; padding:0 0 8px;}
  .nb-demo-mock{width:100%;}
  .nb-demo-frames{min-height:340px;}
  /* 모바일은 스크롤 스토리 느낌을 유지하되 과도한 높이를 방지 */
}

@media (prefers-reduced-motion: reduce){
  .nb-demo-frame{transition:none;}
  .nb-demo-spot{animation:none;}
}

.nb-home-flow{background:#fff;}
.nb-flow{display:grid; grid-template-columns:1fr; gap:12px;}
.nb-flow-step{
  display:flex; gap:14px; align-items:flex-start;
  border:1px solid rgba(15,23,42,.10);
  border-radius:20px;
  padding:16px 16px;
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.90));
  box-shadow:0 16px 44px rgba(2,6,23,.06);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.nb-flow-step.is-active{border-color:rgba(47,91,255,.35); box-shadow:0 22px 62px rgba(47,91,255,.10); transform:translateY(-2px)}
.nb-flow-num{
  flex:0 0 auto;
  width:52px; height:52px;
  border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  font-weight:1100;
  letter-spacing:.6px;
  color:rgba(226,232,240,.92);
  background:linear-gradient(135deg, rgba(23,162,255,.95), rgba(34,197,94,.95));
  box-shadow:0 14px 34px rgba(2,6,23,.16);
}
.nb-flow-title{font-weight:1100; letter-spacing:-.2px; margin-bottom:6px;}
.nb-flow-desc{opacity:.82; font-size:13px; line-height:1.55;}

/* =====================================================
   Home - 실행 흐름 5단계 다이어그램
   (기존 nb-flow-step은 유지하되, 홈에서는 다이어그램을 우선 사용)
   ===================================================== */
.nb-flow-diagram-wrap{margin-top:18px;}
.nb-flow-diagram{
  position:relative;
  width:100%;
  max-width:1320px;
  height:520px;
  margin:0 auto;
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.72));
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 22px 70px rgba(2,6,23,.10);
  overflow:hidden;
}
.nb-flow-svg{position:absolute; inset:0; width:100%; height:100%; pointer-events:none;}
.nb-flow-line-bg{stroke:rgba(2,6,23,.18); stroke-width:3; fill:none; stroke-linecap:round; stroke-dasharray:6 10;}
.nb-flow-line-draw{stroke:rgba(47,91,255,.28); stroke-width:4; fill:none; stroke-linecap:round; stroke-dasharray:2000; stroke-dashoffset:2000; opacity:0;}
.nb-flow-dot-svg{opacity:0; filter:drop-shadow(0 10px 18px rgba(2,6,23,.18));}

.nb-flow-meta{
  position:absolute;
  left:26px; bottom:22px;
  display:flex; align-items:flex-end; gap:12px;
  pointer-events:none;
}
.nb-flow-meta-num{font-size:64px; font-weight:1200; line-height:1; letter-spacing:-1px; opacity:.22;}
.nb-flow-meta-text{font-weight:1000; letter-spacing:-.2px; opacity:.72;}
.nb-flow-node{
  position:absolute;
  width:280px;
  display:flex; gap:12px; align-items:flex-start;
  padding:14px 14px;
  border-radius:20px;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(255,255,255,.92);
  box-shadow:0 18px 54px rgba(2,6,23,.08);
  opacity:0;
  transform:translateY(10px);
}
.nb-flow-badge{
  flex:0 0 auto;
  width:46px; height:46px;
  border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  font-weight:1100;
  color:rgba(226,232,240,.92);
  background:linear-gradient(135deg, rgba(23,162,255,.95), rgba(34,197,94,.95));
  box-shadow:0 14px 34px rgba(2,6,23,.16);
  overflow:hidden; /* 아이콘이 커도 배지 밖으로 튀지 않게 */
}

/* 배지 안 SVG 아이콘이 기본(300x150) 크기로 렌더링되며
   섹션 레이아웃이 깨지는 현상을 방지 */
.nb-flow-badge svg{
  width:24px;
  height:24px;
  display:block;
  max-width:100%;
  max-height:100%;
}
.nb-flow-node-title{font-weight:1100; letter-spacing:-.2px; margin-bottom:4px;}
.nb-flow-node-desc{opacity:.82; font-size:13px; line-height:1.55;}

/* 노드 위치 (데스크탑) */
.nb-flow-node.n1{left:52px; top:270px;}
.nb-flow-node.n2{left:130px; top:64px;}
.nb-flow-node.n3{left:420px; top:24px;}
.nb-flow-node.n4{left:720px; top:96px;}
.nb-flow-node.n5{left:430px; top:308px;}

/* 애니메이션 */
.nb-flow-diagram.is-animating .nb-flow-line-draw{opacity:1; animation:nbFlowDraw 1.8s ease forwards;}
.nb-flow-diagram.is-animating .nb-flow-dot-svg{opacity:1;}
.nb-flow-diagram.is-animating .nb-flow-node{animation:nbFlowPop .55s ease forwards;}
.nb-flow-diagram.is-animating .nb-flow-node.n1{animation-delay:.20s;}
.nb-flow-diagram.is-animating .nb-flow-node.n2{animation-delay:.45s;}
.nb-flow-diagram.is-animating .nb-flow-node.n3{animation-delay:.70s;}
.nb-flow-diagram.is-animating .nb-flow-node.n4{animation-delay:.95s;}
.nb-flow-diagram.is-animating .nb-flow-node.n5{animation-delay:1.20s;}

@keyframes nbFlowDraw{to{stroke-dashoffset:0;}}
@keyframes nbFlowPop{to{opacity:1; transform:translateY(0);}}

@media (max-width: 980px){
  .nb-flow-diagram{height:auto; padding:16px; background:#fff;}
  .nb-flow-svg{display:none;}
  .nb-flow-meta{position:static; margin:10px 0 12px;}
  .nb-flow-meta-num{font-size:44px; opacity:.20;}
  .nb-flow-node{
    position:relative;
    left:auto !important;
    top:auto !important;
    width:100%;
    margin:10px 0;
    opacity:1;
    transform:none;
    animation:none !important;
  }
}

@media (prefers-reduced-motion: reduce){
  .nb-flow-diagram.is-animating .nb-flow-line-draw{animation:none; stroke-dashoffset:0;}
  .nb-flow-diagram.is-animating .nb-flow-node{animation:none; opacity:1; transform:none;}
  .nb-flow-dot-svg{display:none;}
}

/* =====================================================
   HOME: 주요 성과(풀페이지 카운팅) - ENMOST 스타일 참고 (화이트 배경)
===================================================== */
.nb-home-impact.nb-impact-full{
  padding:90px 0 280px;
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#fff;
}

/* 배경(화이트 + 아주 약한 그라데이션) */
.nb-impact-bg{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(1100px 720px at 28% 18%, rgba(0,153,255,.08), rgba(255,255,255,1) 55%),
    radial-gradient(980px 640px at 86% 45%, rgba(0,200,120,.06), rgba(255,255,255,0) 62%),
    radial-gradient(840px 560px at 70% 86%, rgba(255,159,10,.06), rgba(255,255,255,0) 60%);
}

/* 섹션 폭(한 페이지 최대 활용) */
.nb-home-impact.nb-impact-full .nb-home-wrap{
  position:relative;
  z-index:2;
  width:100%;
  max-width:1560px;
  margin:0 auto;
  padding:0 28px;
}

/* ENMOST처럼: 헤더 중앙 정렬 */
.nb-impact-head{
  max-width:980px;
  margin:0 auto;
  text-align:center;
}
.nb-impact-h2{
  color:#111;
  font-size:44px;
  margin:0 0 10px 0;
  letter-spacing:-.02em;
}
.nb-impact-lead{
  margin:0;
  font-size:16px;
  line-height:1.65;
  color:rgba(17,17,17,.72);
}

/* =========================
   ENMOST 스타일 레이아웃(크기/위치)
   - 원형 3개(고정폭) + 아래 레일/도트/라벨
========================= */
.nb-impact-circles{
  /* ENMOST 비율에 맞춘 기준값 */
  --circle: 320px;
  --ring: 10px;
  --dot: 18px;
  --pin-top: 22px; /* 원형 아래부터 도트까지 */
  --line-y: calc(var(--circle) + var(--pin-top) + (var(--dot) / 2));

  position:relative;
  display:flex;
  justify-content:center;
  gap:120px;
  margin-top:48px;
  padding-bottom:24px; /* 라벨 아래 여백 */
}

/* 레일(가로선): 도트 중심과 정확히 일치 */
.nb-impact-circles::after{
  content:'';
  position:absolute;
  left:4%;
  right:4%;
  top: var(--line-y);
  height:2px;
  background:rgba(0,0,0,.12);
  border-radius:999px;
}

/* 각 원형 박스 */
.nb-impact-circle{
  flex:0 0 auto;
  cursor: pointer;
  width:var(--circle);
  text-align:center;
  position:relative;

  /* 색상 변수 */
  --c: rgba(23,162,255,1);
  --cSoft: rgba(23,162,255,.22);
}
.nb-impact-circle.c2{ --c: rgba(34,197,94,1); --cSoft: rgba(34,197,94,.18); }
.nb-impact-circle.c3{ --c: rgba(255,159,10,1); --cSoft: rgba(255,159,10,.20); }

/* 큰 원형 */
.nb-impact-circle-in{
  width:var(--circle);
  height:var(--circle);
  margin:0 auto;
  border-radius:999px;
  background:var(--cSoft);
  border:var(--ring) solid var(--c);
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:none;
}
/* 호버: 글라스(반짝임) 애니메이션 */
.nb-impact-circle-in{
  overflow:hidden;
  isolation:isolate;
  transition: transform .25s ease, box-shadow .25s ease;
}
.nb-impact-circle-in::after{
  content:"";
  position:absolute;
  top:-25%;
  left:-60%;
  width:45%;
  height:150%;
  background: linear-gradient(120deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.55) 45%,
    rgba(255,255,255,0) 80%);
  transform: skewX(-20deg) translateX(-160%);
  opacity:0;
  pointer-events:none;
}
.nb-impact-circle:hover .nb-impact-circle-in{
  transform: translateY(-4px);
  box-shadow: 0 18px 32px rgba(0,0,0,.10);
}
.nb-impact-circle:hover .nb-impact-circle-in::after{
  opacity:1;
  animation: nbShine .9s ease;
}
@keyframes nbShine{
  from{ transform: skewX(-20deg) translateX(-160%); opacity:0; }
  15%{ opacity:1; }
  to{ transform: skewX(-20deg) translateX(280%); opacity:0; }
}
/* 숫자 */
.nb-impact-num{
  font-size: 70px;
  font-weight:900;
  letter-spacing:-2px;
  color:#fff;
  line-height:1;
  text-shadow:0 8px 28px rgba(0,0,0,.28);
}

/* 도트(레일 위) */
.nb-impact-pin{
  width:100%;
  height:66px;
  display:flex;
  justify-content:center;
  position:relative;
}
.nb-impact-pin span{
  margin-top:var(--pin-top);
  width:var(--dot);
  height:var(--dot);
  border-radius:999px;
  background:#fff;
  border:4px solid var(--c);
  box-shadow:0 10px 18px rgba(0,0,0,.16);
  position:relative;
  z-index:2; /* 레일보다 위 */
}

/* 라벨(도트 아래) */
.nb-impact-title{
  margin-top:0;
  font-size:20px;
  font-weight:900;
  color:rgba(17,17,17,.78);
  letter-spacing:-.02em;
}

/* 워터마크(우하단) */
.nb-impact-watermark{
  position:absolute;
  right: 28px;
  bottom: -155px; /* 라벨/레일과 겹치지 않게 섹션 하단에 고정 */
  font-size: 120px; /* 다른 섹션 워터마크 크기와 동일 */
  line-height: .9;
  font-weight: 900;
  letter-spacing: -0.04em;
  opacity: 0.06;
  color: #111;
  pointer-events:none;
  user-select:none;
  white-space:nowrap;
  z-index:0;
}
@media (max-width: 980px){
  .nb-impact-watermark{ right: 14px; bottom: 10px; font-size: 72px; }
}

/* 반응형(태블릿 이하) */
@media (max-width: 1200px){
  .nb-impact-circles{gap:64px;}
  .nb-impact-title{font-size:18px;}
  .nb-impact-num{font-size: 58px;}
}
@media (max-width: 980px){
  .nb-home-impact.nb-impact-full{min-height:auto; padding:74px 0;}
  .nb-impact-h2{font-size:32px;}
  .nb-impact-circles{
    flex-direction:column;
    align-items:center;
    gap:30px;
    padding-bottom:0;
  }
  .nb-impact-circles::after{display:none;}
  .nb-impact-circle{width:auto;}
  .nb-impact-circles{--circle: 260px; --ring: 9px; --dot: 16px; --pin-top: 18px;}
  .nb-impact-num{font-size:66px;}
  .nb-impact-watermark{right:18px; bottom: -18px; opacity:.06;}
}
.nb-home-trust{background:#fff;}
.nb-trust-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px;}
.nb-trust-card{
  border:1px solid rgba(15,23,42,.10);
  border-radius:22px;
  padding:18px;
  background:rgba(2,6,23,.03);
}
.nb-trust-title{font-weight:1100; margin-bottom:10px; letter-spacing:-.2px;}
.nb-trust-list{margin:0; padding-left:18px; display:flex; flex-direction:column; gap:8px; font-size:13px; opacity:.85; line-height:1.55;}

.nb-home-bottomline{
  margin-top:18px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:22px;
  padding:18px;
  background:linear-gradient(135deg, rgba(23,162,255,.10), rgba(34,197,94,.10));
}
.nb-home-bottomline-text{font-weight:1200; letter-spacing:-.35px;}
.nb-home-bottomline-sub{margin-top:6px; font-size:13px; opacity:.78;}

@media (max-width: 980px){
  .nb-home-demo-grid{grid-template-columns:1fr;}
  .nb-home-service-grid{grid-template-columns:1fr;}
  .nb-impact-grid{grid-template-columns:1fr;}
  .nb-metrics{grid-template-columns:1fr;}
  .nb-trust-grid{grid-template-columns:1fr;}
}
@media (max-width: 720px){
  .nb-home-hero{min-height:560px;}
  .nb-home-hero-inner{padding:70px 16px 58px;}
  .nb-home-tagline{font-size:12px;}
}


@media (max-width: 1100px){
  .nb-impact-circles{gap:26px;}
  .nb-impact-circle-in{width:260px; height:260px;}
  .nb-impact-h2{font-size:36px;}
}
@media (max-width: 820px){
  .nb-home-impact.nb-impact-full{min-height:auto; padding:56px 0;}
  .nb-impact-head{max-width:100%;}
  .nb-impact-circles{flex-direction:column; align-items:center; gap:18px; padding-bottom:24px;}
  .nb-impact-circle-in{width:240px; height:240px;}
  .nb-impact-pin{display:none;}
  .nb-impact-sub{margin-top:26px;}
}

/* Glass cards + hover animation */
.nb-card{
  background:rgba(255,255,255,.72);
  backdrop-filter: blur(14px);
  border:1px solid rgba(15,23,42,.12);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nb-card:hover{transform:translateY(-4px); box-shadow:0 18px 44px rgba(2,6,23,.14); border-color:rgba(34,197,94,.28)}

.nb-btn{transition:transform .15s ease, filter .15s ease, box-shadow .15s ease;}
.nb-btn:hover{transform:translateY(-1px); box-shadow:0 12px 26px rgba(2,6,23,.18)}

/* Reveal animation on scroll */
[data-reveal]{opacity:0; transform:translateY(18px); transition:opacity .68s ease, transform .68s ease;}
[data-reveal].is-visible{opacity:1; transform:translateY(0)}

/* Responsive */
@media (max-width: 980px){
  .nb-topnav{display:none;}
  .nb-burger{display:inline-block;}
  .nb-topbrand{min-width:auto;}
  .nb-main{padding-top:var(--nb-header-h, 92px)}
}
@media (max-width: 720px){
  .nb-hero-full{min-height:520px}
  .nb-hero-full-overlay{padding:42px 16px}
  .nb-hero-h1{font-size:34px}
}


/* =========================================================
   Seewan Notice 스타일(리소스 페이지 전용) - .sw-* 스코프
   ========================================================= */
.sw-wrap{max-width:1240px;margin:0 auto;padding:10px 14px 40px;}
.sw-topbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px;}
.sw-brand{display:flex;flex-direction:column;gap:2px;}
.sw-brand-t1{font-size:12px;opacity:.75;}
.sw-brand-t2{font-size:14px;font-weight:700;}
.sw-badge{display:inline-flex;gap:8px;align-items:center;padding:7px 10px;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:rgba(37,99,235,.08);font-size:12px;}
.sw-dot{width:8px;height:8px;border-radius:50%;background:rgba(47,91,255,.95);display:inline-block;}
.sw-hero{margin:0 0 10px 0;}
.sw-hero-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.sw-h1{font-size:18px;font-weight:800;letter-spacing:-.2px;margin:0;}
.sw-sub{margin-top:6px;font-size:13px;opacity:.78;}
.sw-hero-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}

.sw-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:12px 12px;box-shadow:0 8px 24px rgba(0,0,0,.04);}
.sw-filters{margin-bottom:12px;position:relative;}
.sw-card.sw-filters{border:0;box-shadow:0 4px 6px -1px rgba(0,0,0,.05);border-radius:12px;}

.sw-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.sw-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}

/* Utility row: bigger separation between search and control cluster */
.sw-filters-top{gap:20px;}

.sw-searchbox{flex:1;min-width:240px;display:flex;gap:8px;align-items:center;height:44px;padding:0 12px;border:1px solid #E2E8F0;border-radius:12px;background:#F8FAFC;transition:all .3s ease;}
.sw-searchbox:focus-within{background:#FFFFFF;border-color:#2563EB;box-shadow:0 0 0 3px rgba(37,99,235,0.1);}
.sw-ico{opacity:.65}
.sw-searchbox input{flex:1;border:0;outline:0;font-size:13px;background:transparent;height:100%;}

.sw-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:#fff;font-size:13px;cursor:pointer;text-decoration:none;color:inherit;user-select:none;}
.sw-btn:hover{background:rgba(0,0,0,.02);}
.sw-btn.is-disabled{opacity:.45;pointer-events:none;}
.sw-btn-gray{background:rgba(0,0,0,.03);}
.sw-toggle.on{border-color:rgba(47,91,255,.55);box-shadow:0 0 0 3px rgba(47,91,255,.12) inset;}
/* Utility toggles: subtle ON state without heavy contrast */
.sw-toggle.on.util-button{background:rgba(37,99,235,.10);border-color:rgba(37,99,235,.35);color:#1D4ED8;box-shadow:0 0 0 3px rgba(37,99,235,.08) inset;}
.sw-switchwrap{display:inline-flex;align-items:center;gap:8px;font-size:12px;opacity:.9;height:44px;padding:0 12px;border-radius:10px;background:#FFFFFF;border:1px solid #E2E8F0;}
.sw-switchwrap.is-disabled{opacity:.45;}

/* Utility button polish (only when util-button class is present) */
.util-button{height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border-radius:10px;border:1px solid #E2E8F0;background:#FFFFFF;color:#475569;font-weight:500;transition:all .2s ease;}
.util-button:hover{background:#F1F5F9;border-color:#CBD5E1;transform:none;box-shadow:none;}
.util-button:active{transform:scale(.98);}
.sw-btn.util-button{padding:0 14px;border-radius:10px;}
.sw-btn.util-button:hover{transform:none;box-shadow:none;}
.reset-button{color:#64748B;}
.reset-button:hover{color:#EF4444;}
.sw-switch{width:44px;height:26px;border-radius:999px;border:1px solid rgba(0,0,0,.15);background:rgba(0,0,0,.08);position:relative;cursor:pointer;flex:0 0 auto;}
.sw-switch::after{content:'';width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;box-shadow:0 2px 10px rgba(0,0,0,.18);transition:transform .15s ease;}
.sw-switch.is-on{background:rgba(47,91,255,.85);border-color:rgba(47,91,255,.85);}
.sw-switch.is-on::after{transform:translateX(18px);}

/* Resources filters (category/region pills) */
.sw-pills-wrap{
margin-top:14px;
  padding:12px;
  border-radius:12px;
  border:0;
  background:rgba(255,255,255,.92);
}
.sw-pills-row{
display:flex;
  align-items:flex-start;
  gap:14px;
  margin-top:16px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.04);
  background:#FFFFFF;
}
.sw-pills-row:first-child{margin-top:0;}
.sw-pills-label{
flex:0 0 100px;
  width:100px;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:800;
  color:rgba(17,24,39,.62);
  letter-spacing:-.2px;
  padding-top:4px;
}
.sw-pills-ico{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:rgba(17,24,39,.52);}
.sw-pills-ico svg{width:18px;height:18px;}
.sw-pills{
display:flex;
  gap:8px 10px;         /* row / column */
  row-gap:12px;         /* 행간(조금 더 여백) */
  flex-wrap:wrap;
  margin-top:0;
}
.sw-pill{
display:inline-flex;
  align-items:center;
  gap:8px;
  padding:5px 14px;
  border-radius:999px;
  border:1px solid #E2E8F0;
  background-color:#FFFFFF;
  color:#475569;
  font-size:14px;
  font-weight:500;
  cursor:pointer;
  transition:all .2s ease;
}
.sw-pill:hover{
  background-color:#F1F5F9;
  border-color:#CBD5E1;
}
.sw-pill:active{
  transform:scale(.98);
}
.sw-pill.on{
  background-color:#2563EB; /* 브랜드 Primary */
  border-color:#2563EB;
  color:#FFFFFF;
  font-weight:700;
  box-shadow:0 4px 6px -1px rgba(37,99,235,.2);
}
.sw-pill.on:hover{
  background-color:#2563EB;
  border-color:#2563EB;
}
.sw-pill:focus-visible{
  outline:2px solid rgba(37,99,235,.28);
  outline-offset:2px;
}
.sw-pill-count{background-color:#F1F5F9;border-radius:10px;padding:1px 6px;margin-left:6px;font-size:11px;color:#64748B;font-weight:500;line-height:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;min-width:auto;border:0;}
.sw-pill.on .sw-pill-count{background-color:rgba(255,255,255,0.2);color:#FFFFFF;}

/* Alias: 기획서 스타일 클래스명(.filter-chip / .filter-count)도 지원 */
.filter-chip{display:inline-flex;align-items:center;padding:5px 14px;border-radius:999px;border:1px solid #E2E8F0;background:#ffffff;font-size:14px;color:#475569;transition:all .2s ease-in-out;}
.filter-count{margin-left:6px;padding:1px 6px;background-color:#F1F5F9;color:#64748B;border-radius:10px;font-size:11px;font-weight:500;line-height:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;}
.filter-chip.active{background-color:#2563EB;border-color:#2563EB;color:#ffffff;}
.filter-chip.active .filter-count{background-color:rgba(255,255,255,0.2);color:#ffffff;}
.filter-chip-active{background-color:#2563EB;border-color:#2563EB;color:#ffffff;}
.filter-chip-active .filter-count{background-color:rgba(255,255,255,0.2);color:#ffffff;}


@media(max-width:640px){
  .sw-pills-wrap{padding:10px;}
  .sw-pills-row{flex-direction:column;gap:8px;}
  .sw-pills-label{width:auto;flex:0 0 auto;padding-top:0;}
}
.sw-hint{margin-top:10px;font-size:12px;opacity:.78;line-height:1.35;}

.sw-guestlock-card{
  width:min(680px,100%);
  background:rgba(255,255,255,.92);
  border:1px solid rgba(0,0,0,.10);
  border-radius:20px;
  box-shadow:0 18px 54px rgba(0,0,0,.12);
  padding:16px 16px;
}
.sw-guestlock-top{display:flex;gap:12px;align-items:flex-start;}
.sw-guestlock-ico{
  width:44px;height:44px;border-radius:14px;
  background:rgba(0,0,0,.05);
  color:rgba(17,24,39,.9);
  display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;
}
.sw-guestlock-title{font-weight:900;font-size:17px;letter-spacing:-.2px;color:#111827;margin-top:2px;}
.sw-guestlock-body{margin-top:6px;font-size:13px;line-height:1.55;color:rgba(17,24,39,.72);}

.sw-guestlock-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px;}
.sw-guestbtn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 14px;border-radius:14px;
  border:1px solid rgba(0,0,0,.12);
  text-decoration:none;
  font-weight:800;font-size:13px;
  color:#111827;background:#fff;
  cursor:pointer;user-select:none;
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease, background-color .15s ease;
}
.sw-guestbtn:hover{background:rgba(0,0,0,.03);transform:translateY(-1px);}
.sw-guestbtn-secondary{background:rgba(0,0,0,.02);}

.sw-guestbtn-primary{
  background:#00C17C;border-color:#00C17C;color:#fff;
  position:relative;overflow:hidden;transform:translateZ(0);
  box-shadow:0 12px 28px rgba(0,193,124,.28);
  animation:nbCtaPulse 2.2s ease-in-out infinite;
}
.sw-guestbtn-primary:hover{background:#00A86B;border-color:#00A86B;filter:saturate(1.06);}
.sw-guestbtn-primary span{position:relative;z-index:2;}
.sw-guestbtn-primary::before{
  content:'';
  position:absolute;inset:-24px;
  background:
    radial-gradient(circle at 18% 35%, rgba(255,255,255,.55), transparent 58%),
    radial-gradient(circle at 78% 70%, rgba(255,255,255,.40), transparent 62%),
    radial-gradient(circle at 46% 92%, rgba(255,255,255,.28), transparent 60%);
  opacity:.65;
  filter:blur(7px);
  animation:nbSparkles 1.8s ease-in-out infinite;
}
.sw-guestbtn-primary::after{
  content:'';
  position:absolute;top:-140%;left:-60%;
  width:70%;height:320%;
  transform:rotate(22deg);
  background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.75) 48%, transparent 100%);
  opacity:.55;
  animation:nbSheen 2.8s ease-in-out infinite;
}

@keyframes nbCtaPulse{
  0%,100%{transform:translateY(0) scale(1); box-shadow:0 12px 28px rgba(0,193,124,.28);}
  50%{transform:translateY(-1px) scale(1.04); box-shadow:0 18px 40px rgba(0,193,124,.42);}
}
@keyframes nbSparkles{
  0%,100%{opacity:.55; transform:scale(1);}
  50%{opacity:.85; transform:scale(1.03);}
}
@keyframes nbSheen{
  0%{left:-70%;}
  45%{left:110%;}
  100%{left:110%;}
}

@media (max-width: 720px){
  .sw-guestlock-card{padding:14px 14px;}
  .sw-guestlock-actions{justify-content:stretch;}
  .sw-guestbtn{flex:1 1 auto;}
}


.sw-tablewrap{padding:0;overflow:hidden;}
.sw-loading{display:none;padding:12px 12px;border-bottom:1px solid rgba(0,0,0,.08);font-size:12px;opacity:.7;}
.sw-loading.on{display:block;}
.sw-table{width:100%;border-collapse:separate;border-spacing:0;}
.sw-table thead th{position:sticky;top:0;background:#fff;z-index:1;font-size:12px;text-align:left;padding:10px 10px;border-bottom:1px solid rgba(0,0,0,.08);}
.sw-table tbody td{padding:10px 10px;border-bottom:1px solid rgba(0,0,0,.06);font-size:13px;vertical-align:top;}
.sw-table tbody tr:hover{background:rgba(0,0,0,.02);}
.sw-table .title a{color:inherit;text-decoration:none;}
.sw-table .title a:hover{text-decoration:underline;}

.col-fav{width:44px;text-align:center;}
.col-no{width:70px;text-align:center;}
.col-field{width:120px;}
.col-period{width:210px;}
.col-dept{width:170px;}
.col-org{width:170px;}
.col-date{width:110px;white-space:nowrap;}

.sw-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.02);font-size:12px;white-space:nowrap;}
.sw-dday{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid rgba(0,0,0,.12);background:rgba(0,0,0,.02);white-space:nowrap;}
.sw-dday.soon{border-color:rgba(255,140,0,.35);background:rgba(255,140,0,.10);color:rgba(180,83,9,1);}
.sw-dday.today{border-color:rgba(255,59,48,.35);background:rgba(255,59,48,.10);color:rgba(185,28,28,1);}
.sw-dday.closed{border-color:rgba(0,0,0,.25);background:rgba(0,0,0,.05);color:rgba(55,65,81,1);opacity:.8;}
.sw-dday.unknown{opacity:.75;}
.sw-favbtn{width:20px;height:20px;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#9aa0a6;}
.sw-favbtn svg{width:12px;height:12px;}
.sw-favbtn:hover{background:rgba(0,0,0,.02);}
.sw-favbtn.on{border-color:rgba(255,170,0,.45);background:rgba(255,215,0,.18);color:rgba(180,83,9,1);}

.sw-empty{display:none;padding:16px 12px;font-size:13px;opacity:.75;}
.sw-pager{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:12px;}
.sw-pagebtn{padding:8px 10px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:#fff;font-size:12px;cursor:pointer;}
.sw-pagebtn:hover{background:rgba(0,0,0,.02);}
.sw-pagebtn.is-active{background:rgba(47,91,255,.12);border-color:rgba(47,91,255,.45);font-weight:700;}

@media (max-width: 720px){
  .sw-wrap{padding:14px 10px 32px;}
  .sw-h1{font-size:16px;}

  /*
    모바일 지원사업(공고) 리스트
    - 제목이 우선
    - 카드에는 제목 + 기간(+D-day)만 노출
    - 즐겨찾기(★)는 제목과 겹치지 않도록 '기간 라인' 우측에 배치
  */
  .sw-wrap[data-page^="resources"] .sw-table{display:block;border:0;table-layout:auto !important;}
  .sw-wrap[data-page^="resources"] .sw-table thead{display:none;}
  .sw-wrap[data-page^="resources"] .sw-table tbody{display:block;}
  .sw-wrap[data-page^="resources"] .sw-table tbody tr{
    display:grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "title title"
      "period fav";
    gap:10px;
    position:relative;
    margin:12px 0;
    padding:14px 14px 12px 14px;
    border:1px solid rgba(15,23,42,.10);
    border-radius:16px;
    background:#fff;
    box-shadow:0 6px 20px rgba(0,0,0,.06);
  }

  /* 기본은 모두 숨기고 필요한 컬럼만 다시 표시 */
  .sw-wrap[data-page^="resources"] .sw-table tbody td{
    display:none;
    border:0 !important;
    padding:0 !important;
    width:auto !important;
    text-align:left;
  }

  /* 제목 */
  .sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(3){
    display:block;
    grid-area:title;
  }
  .sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(3) .title,
  .sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(3) a{
    display:block;
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:anywhere;
    line-height:1.35;
    font-size:15px;
    font-weight:900;
    color:#0f172a;
  }

  /* 기간(+D-day) */
  .sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(4){
    display:flex;
    grid-area:period;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    font-size:12.5px;
    color:#475569;
  }

  /* 즐겨찾기(★) */
  .sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(1){
    display:flex;
    grid-area:fav;
    justify-content:flex-end;
    align-items:center;
  }
  .sw-wrap[data-page^="resources"] .sw-favbtn{
    width:38px;
    height:38px;
    border-radius:999px;
  }
}



/* page head (카드 밖 우상단) */
.sw-pagehead{display:flex;justify-content:flex-end;align-items:center;margin:0 0 10px 0;}
.sw-pagehead .sw-badge{font-size:12px;opacity:.85}

/* glass hover 강화 */
.sw-btn, .sw-pill{transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, backdrop-filter .18s ease;}
.sw-btn:hover, .sw-pill:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 10px 30px rgba(0,0,0,.12);backdrop-filter:blur(10px);}

.sw-wrap{margin-top:0;}


/* resources responsive columns */
@media (max-width: 900px){
  .col-dept,.col-org{display:none;}
  .col-period{width:160px;}
}
/* (모바일에서도 기간은 유지) */

/* 즐겨찾기 별표: 기본(비활성) */
.fav-btn, .favorite-btn, .btn-fav, .favStar {
  color: #9aa0a6;
}

/* 즐겨찾기 별표: 활성(ON) - 연노랑 */
.fav-btn.is-fav, .favorite-btn.is-fav, .btn-fav.is-fav, .favStar.is-fav,
.fav-btn.active, .favorite-btn.active, .btn-fav.active, .favStar.active {
  color: #f4c542;
}

/* SVG 아이콘일 때 fill도 같이 */
.fav-btn svg, .favorite-btn svg, .btn-fav svg, .favStar svg {
  fill: currentColor;
  stroke: currentColor;
}



/* ===== NexusBrain Hotfix 2025-12-21 ===== */
/* 카드(전체) 폭 조금 확대: 우측 '사업수행기관' 컬럼 잘림 방지 */
.sw-wrap[data-page^="resources"],
.sw-wrap[data-page="resources-my"]{max-width:1600px;}

/* 테이블 본문/지원사업명 글씨 크기 통일(12px) */
.sw-table tbody td{font-size:12px;line-height:1.45;}
.sw-table tbody td.title{font-size:12px;font-weight:650;}
.sw-table thead th{font-size:13.5px;font-weight:700;}

/* 지원사업명 칸 더 넓게 */
.sw-table th.title,.sw-table td.title{min-width:520px;}

/* No 숫자: 조금 더 왼쪽으로 */
.sw-table td.col-no{text-align:left;padding-left:10px;}

/* 지원분야/등록일: 제목(헤더) 기준 중앙 정렬 */
.sw-table th.col-field,.sw-table td.col-field{text-align:center;}
.sw-table th.col-date,.sw-table td.col-date{text-align:center;}

/* ===== (사용자가 숫자만 바꿔서 조절) 지원사업 테이블 컬럼 폭 =====
   nth-child: 1=★, 2=No, 3=분야, 4=지원사업명, 5=신청기간, 6=소관부처·지자체, 7=사업수행기관, 8=등록일
*/
.sw-wrap[data-page^="resources"] .sw-table,
.sw-wrap[data-page="resources-my"] .sw-table{table-layout:fixed;}

.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(1),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(1),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(1),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(1){width:40px;}

.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(2),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(2),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(2),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(2){width:42px;}

.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(3),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(3),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(3),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(3){width:58px;}

/* resources: compact first columns + hide title region tags */
.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(-n+3),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(-n+3),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(-n+3),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(-n+3){
  padding-left:6px;
  padding-right:6px;
}

.sw-wrap[data-page^="resources"] .sw-table td.col-title .sw-regiontag,
.sw-wrap[data-page^="resources"] .sw-table td.col-title .sw-tag,
.sw-wrap[data-page="resources-my"] .sw-table td.col-title .sw-regiontag,
.sw-wrap[data-page="resources-my"] .sw-table td.col-title .sw-tag{
  display:none !important;
}


.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(4),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(4),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(4),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(4){width:500px;}

.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(5),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(5),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(5),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(5){width:160px;}

.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(6),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(6),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(6),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(6){width:140px;}

.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(7),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(7),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(7),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(7){width:150px;}

.sw-wrap[data-page^="resources"] .sw-table thead th:nth-child(8),
.sw-wrap[data-page^="resources"] .sw-table tbody td:nth-child(8),
.sw-wrap[data-page="resources-my"] .sw-table thead th:nth-child(8),
.sw-wrap[data-page="resources-my"] .sw-table tbody td:nth-child(8){width:110px;}

/* 즐겨찾기 별 색(연노랑) + 즉시 반영용 */
.sw-favbtn{color:#94a3b8 !important;transition:transform .05s ease, color .05s ease, background-color .05s ease, border-color .05s ease;}
.sw-favbtn.on{color:rgba(180,83,9,1) !important;background:rgba(255,215,0,.22);border-color:rgba(255,170,0,.55);} 
.sw-favbtn:active{transform:scale(.96);}

/* 지역 태그 */
.sw-regiontag{display:inline-flex;align-items:center;margin-right:6px;padding:2px 7px;border-radius:999px;border:1px solid rgba(0,0,0,.10);background:rgba(0,0,0,.02);font-size:11px;white-space:nowrap;}

/* 페이지네이션 현재 페이지 강조 */
.sw-pagebtn.is-active{font-weight:800;}

/* D-day 강조 (JS 클래스명과 일치) */
.sw-dday.closed{border-color:rgba(0,0,0,.25);background:rgba(0,0,0,.05);color:rgba(0,0,0,.70);opacity:.90;}
.sw-dday.today{border-color:rgba(255,59,48,.35);background:rgba(255,59,48,.10);color:rgba(185,28,28,.95);}
.sw-dday.soon{border-color:rgba(255,140,0,.35);background:rgba(255,140,0,.10);color:rgba(180,83,9,.95);}

/* 상단 메뉴 두께 통일 */
.nb-toplink,.nb-dd-btn{font-weight:700;}

/* ================================
   [리소스/지원사업] 테이블 조절용(형이 숫자만 바꾸면 됨)
   적용범위: /resources/index.php, /resources/my.php
   ================================ */
.sw-wrap[data-page^="resources"] table.sw-table{ table-layout: fixed; }

/* (1) 제목행(TH) 높이/간격: 아래 숫자만 조절 */
:root {
  --res-th-padding-y: 10px; /* 제목행 위/아래 여백 */
  --res-td-padding-y: 10px; /* 본문행 위/아래 여백 */
}
.sw-wrap[data-page^="resources"] table.sw-table thead th {
  padding-top: var(--res-th-padding-y) !important;
  padding-bottom: var(--res-th-padding-y) !important;
}
.sw-wrap[data-page^="resources"] table.sw-table tbody td {
  padding-top: var(--res-td-padding-y) !important;
  padding-bottom: var(--res-td-padding-y) !important;
}

/* (2) 컬럼 폭: 아래 숫자만 조절 */
:root {
  --res-col-star: 44px;   /* ★ */
  --res-col-no: 46px;     /* No (간격↓) */
  --res-col-field: 66px;  /* 분야 (간격↓) */
  /* 폭 조정: 지원사업명 -10px, 사업수행기관 +22px */
  --res-col-title: 460px; /* 지원사업명 */
  --res-col-period: 205px;/* 신청기간 */
  --res-col-owner: 175px; /* 소관부처·지자체 */
  --res-col-org: 230px;   /* 사업수행기관 */
  --res-col-date: 90px;   /* 등록일 */
}
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(1),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(1) { width: var(--res-col-star) !important; }
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(2),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(2) { width: var(--res-col-no) !important; }
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(3),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(3) { width: var(--res-col-field) !important; }
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(4),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(4) { width: var(--res-col-title) !important; }
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(5),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(5) { width: var(--res-col-period) !important; }
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(6),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(6) { width: var(--res-col-owner) !important; }
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(7),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(7) { width: var(--res-col-org) !important; }
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(8),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(8) { width: var(--res-col-date) !important; }

/* (3) '분야'를 No에 더 붙이기(좌측 여백 축소) */
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(2),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(2) {
  padding-left: 4px !important;
  padding-right: 4px !important;
}
.sw-wrap[data-page^="resources"] table.sw-table thead th:nth-child(3),
.sw-wrap[data-page^="resources"] table.sw-table tbody td:nth-child(3) {
  padding-left: 4px !important;
  padding-right: 4px !important;
}

/* (4) 지원사업명 앞 [전국]/[충북] 같은 뱃지/태그 강제 숨김 (구버전 JS 대비용) */
.sw-wrap[data-page^="resources"] table.sw-table tbody td.title > span.sw-tag,
.sw-wrap[data-page^="resources"] table.sw-table tbody td.title > span.sw-pill,
.sw-wrap[data-page^="resources"] table.sw-table tbody td.title > span.sw-regiontag,
.sw-wrap[data-page^="resources"] table.sw-table tbody td.title > span.tag {
  display: none !important;
}

/* (5) 즐겨찾기(별) 버튼 조금 작게 */
.sw-favbtn {
  width: 16px !important;
  height: 16px !important;
}
.sw-favbtn svg {
  width: 10px !important;
  height: 10px !important;
}



/* period cell: D-day badge right aligned */
.sw-wrap[data-page^="resources"] td.col-period .sw-periodstack{display:flex;flex-direction:column;gap:4px;align-items:flex-start;}
.sw-wrap[data-page^="resources"] td.col-period .sw-periodstack .sw-dday{align-self:flex-end;margin-left:0 !important;}

/* =========================================================
   RESOURCES(지원사업) 테이블 레이아웃 오버라이드 (20251221_11)
   - 등록일 컬럼 제거
   - D-day를 신청기간 같은 줄(오른쪽)로 표시
   - No ↔ 분야 간격 축소
   - 즐겨찾기(★) 버튼 소폭 축소
   ※ 아래 px 숫자만 바꾸면 열/간격 조절 가능
   ========================================================= */

/* 공통: 테이블 패딩(=행 간격) 조절 변수 */
.sw-wrap[data-page^="resources-"] {
  --res-th-py: 10px;  /* 제목(헤더) 세로 간격 */
  --res-th-px: 12px;  /* 제목(헤더) 좌우 간격 */
  --res-td-py: 12px;  /* 본문 세로 간격 */
  --res-td-px: 12px;  /* 본문 좌우 간격 */
}

/* D-day: 신청기간 같은 줄 + 우측 정렬(크기는 본문과 동일) */
.sw-periodline{display:flex; align-items:center; gap:8px;}
.sw-periodline .sw-periodtext{white-space:nowrap;}
.sw-ddayinline{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  font-size:inherit;      /* 다른 글씨와 동일 */
  line-height:1.2;
  font-weight:600;
  white-space:nowrap;
}
.sw-ddayinline.is-closed{background:rgba(255,0,0,.08); border-color:rgba(255,0,0,.18);}
.sw-ddayinline.is-today{background:rgba(255,165,0,.14); border-color:rgba(255,165,0,.28);}
.sw-ddayinline.is-soon{background:rgba(255,165,0,.08); border-color:rgba(255,165,0,.18);}

/* 즐겨찾기(★) 버튼 -2px 정도 축소 */
.sw-favbtn{
  width:18px;
  height:18px;
  font-size:12px;
  line-height:16px;
}

/* =========================
   resources-index (전체 공고)
   컬럼: ★ | No | 분야 | 지원사업명 | 신청기간 | 소관부처·지자체 | 사업수행기관 | 등록일
   ========================= */
.sw-wrap[data-page="resources-index"] table.sw-table.res{
  table-layout:fixed;
}
.sw-wrap[data-page="resources-index"] table.sw-table.res thead th,
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td{
  padding: var(--res-th-py) var(--res-th-px);
}
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td{
  padding: var(--res-td-py) var(--res-td-px);
}

/* 열 너비(여기 숫자만 조절) */
.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(1),
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(1){ width:34px; }

.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(2),
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(2){ width:42px; }

.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(3),
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(3){ width:56px; }

/* 지원사업명(요청: 30px 더 축소 반영) */
.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(4),
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(4){ width:390px; }

/* 신청기간(요청: +15px) */
.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(5),
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(5){ width:210px; }

/* 소관부처·지자체(요청: +15px) */
.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(6),
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(6){ width:170px; }

/* 사업수행기관 */
.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(7),
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(7){ width:180px; }

/* 등록일 */
.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(8),
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(8){ width:92px; text-align:center; }

/* 사업수행기관 값이 안보이는 경우 방지(강제 표시) */
.sw-wrap[data-page="resources-index"] th.col-agency,
.sw-wrap[data-page="resources-index"] td.col-agency{
  display: table-cell !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: inherit !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sw-wrap[data-page="resources-index"] th.col-org,
.sw-wrap[data-page="resources-index"] td.col-org{
  display: table-cell !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: inherit !important;
}

.sw-wrap[data-page="resources-index"] th.col-reg,
.sw-wrap[data-page="resources-index"] td.col-reg{
  display: table-cell !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: inherit !important;
  white-space: nowrap;
}

/* No ↔ 분야 간격 더 타이트 */
.sw-wrap[data-page="resources-index"] table.sw-table.res tbody td:nth-child(3),
.sw-wrap[data-page="resources-index"] table.sw-table.res thead th:nth-child(3){ padding-left:6px; padding-right:6px; }

/* =========================
   resources-my (내 키워드/즐겨찾기 등)
   컬럼: ★ | No | 분야 | 지원사업명 | 신청기간
   ========================= */
.sw-wrap[data-page="resources-my"] table.sw-table.res{
  table-layout:fixed;
}

.sw-wrap[data-page="resources-my"] table.sw-table.res thead th,
.sw-wrap[data-page="resources-my"] table.sw-table.res tbody td{
  padding: var(--res-th-py) var(--res-th-px);
}
.sw-wrap[data-page="resources-my"] table.sw-table.res tbody td{
  padding: var(--res-td-py) var(--res-td-px);
}

.sw-wrap[data-page="resources-my"] table.sw-table.res thead th:nth-child(1),
.sw-wrap[data-page="resources-my"] table.sw-table.res tbody td:nth-child(1){ width:34px; }

.sw-wrap[data-page="resources-my"] table.sw-table.res thead th:nth-child(2),
.sw-wrap[data-page="resources-my"] table.sw-table.res tbody td:nth-child(2){ width:46px; }

.sw-wrap[data-page="resources-my"] table.sw-table.res thead th:nth-child(3),
.sw-wrap[data-page="resources-my"] table.sw-table.res tbody td:nth-child(3){ width:60px; }

.sw-wrap[data-page="resources-my"] table.sw-table.res thead th:nth-child(4),
.sw-wrap[data-page="resources-my"] table.sw-table.res tbody td:nth-child(4){ width:520px; }

.sw-wrap[data-page="resources-my"] table.sw-table.res thead th:nth-child(5),
.sw-wrap[data-page="resources-my"] table.sw-table.res tbody td:nth-child(5){ width:240px; }

/* [HOTFIX] 사업수행기관(마지막 열) 값이 안 보일 때 강제 표시 */
.sw-wrap[data-page="resources-index"] table.sw-table.res th.col-agency,
.sw-wrap[data-page="resources-index"] table.sw-table.res td.col-agency{
  display: table-cell !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: inherit !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* v20251221_17: 사업수행기관(마지막 열) 값이 안 보이는 경우를 대비한 강제 표시 */
.sw-wrap[data-page="resources-index"] th.col-agency,
.sw-wrap[data-page="resources-index"] td.col-agency{
  display: table-cell !important;
  color: inherit !important;
  opacity: 1 !important;
  visibility: visible !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* SAFETY: agency visible (20251221_17)
   - 일부 캐시/버전 혼선으로 사업수행기관 텍스트가 안 보이는 케이스 방지
*/
.sw-wrap[data-page="resources-index"] th.col-agency,
.sw-wrap[data-page="resources-index"] td.col-agency{
  display:table-cell !important;
  visibility:visible !important;
  opacity:1 !important;
  color:inherit !important;
}

/* nb-content resources widen (20251221_17) */
.sw-wrap[data-page^="resources"]{max-width:1400px;}

/* [핫픽스 20251221_17] 사업수행기관 텍스트가 안보이는 경우 강제 표시 */
.sw-wrap[data-page="resources-index"] th.col-agency,
.sw-wrap[data-page="resources-index"] td.col-agency,
.sw-wrap[data-page="resources-index"] th.col-org,
.sw-wrap[data-page="resources-index"] td.col-org{
  display: table-cell !important;
  color: inherit !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* resources layout widen: nb-content parent had max-width:1200px (20251221_18) */
.nb-content.nb-content-wide{max-width:1600px;}
@media (max-width: 1700px){
  .nb-content.nb-content-wide{max-width:calc(100% - 56px);} /* 기존 패딩(28px*2) 고려 */
}
@media (max-width: 768px){
  .nb-content.nb-content-wide{max-width:100%;}
}

/* =====================================================
   Solution Section v2 (wide photo carousel)
   ===================================================== */
.nb-sol2{
  position: relative;
  background: #f6f8fb;
  padding: 72px 0 84px;
  overflow: hidden;
}
.nb-sol2-inner{
  width: min(1560px, calc(100% - 64px));
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 56px;
}
.nb-sol2-left{
  flex: 0 0 360px;
  position: relative;
}
.nb-sol2-kicker{
  position: relative;
  z-index: 2;
  position: relative;
  z-index: 2;
  letter-spacing: 0.14em;
  font-weight: 700;
  font-size: 12px;
  color: rgba(15, 23, 42, 0.55);
}
.nb-sol2-h2{
  position: relative;
  z-index: 2;
  position: relative;
  z-index: 2;
  margin: 10px 0 8px;
  font-size: 42px;
  line-height: 1.08;
  font-weight: 800;
  color: #0f172a;
}
.nb-sol2-lead{
  position: relative;
  z-index: 2;
  position: relative;
  z-index: 2;
  margin: 0;
  color: rgba(15, 23, 42, 0.70);
  font-size: 15px;
  line-height: 1.7;
}

.nb-sol2-right{
  flex: 1 1 auto;
  min-width: 0;
}

.nb-sol2-carousel{
  position: relative;
  /* 항상 '2장만' 보이도록 뷰포트 폭을 고정하고, 카드 이동은 뷰포트에서만 클리핑 */
  /* 카드 폭 420px + 간격 26px 기준, 2장만 보이도록 866px로 고정 */
  width: 866px;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 0 42px;
  overflow: visible;
}

.nb-sol2-viewport{
  overflow: hidden;
  /* 좌우 패딩이 있으면 3번째 카드가 비치는 현상이 있어 제거 */
  /* active 카드가 translate/scale 될 때 상단이 잘리지 않도록 상단 여백 확보 */
  padding: 60px 0 56px;
}

.nb-sol2-watermark{
  z-index: 0;
  position: absolute;
  left: -6px;
  /* 워터마크가 본문과 겹치지 않도록 더 아래로 */
  bottom: -240px;
  font-size: 132px;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: rgba(2, 6, 23, 0.06);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

.nb-sol2-track{
  display: flex;
  gap: 26px;
  padding: 0;
  will-change: transform;
  transition: transform 650ms cubic-bezier(.2,.8,.2,1);
}
.nb-sol2-track::-webkit-scrollbar{ display: none; }

.nb-sol2-card{
  position: relative;
  flex: 0 0 420px;
  height: 460px;
  border-radius: 26px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 18px 50px rgba(15, 23, 42, 0.14);
  /* 스크롤 스냅 제거: translate 기반 */
  text-decoration: none;
  color: inherit;
  /*
    기존에는 is-active 시 height를 바꾸며(460→540) 레이아웃이 미세하게 재계산되어
    좌측 문구가 위/아래로 흔들리는 현상이 있었습니다.
    높이는 고정하고 transform(Scale)로만 강조해 레이아웃 점프를 제거합니다.
  */
  opacity: 0.92;
  filter: saturate(0.92) contrast(0.96);
  transform: translateY(0) scale(0.92);
  transition: transform .26s ease, box-shadow .26s ease, opacity .26s ease, filter .26s ease;
  will-change: transform;
  z-index: 1;
}
.nb-sol2-card.is-active{ z-index: 3; opacity: 1; filter: none; }

.nb-sol2-media{
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.03);
}

.nb-sol2-card::after{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(2, 6, 23, 0.12) 0%, rgba(2, 6, 23, 0.20) 45%, rgba(2, 6, 23, 0.72) 100%);
}

.nb-sol2-overlay{
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  z-index: 2;
  color: #fff;
}

.nb-sol2-title{
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.nb-sol2-desc{
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.86);
}

.nb-sol2-card.is-active{
  /* height는 고정(460px) 유지, transform으로만 크게 보이게 */
  transform: translateY(-24px) scale(1.05);
  box-shadow: 0 26px 70px rgba(15, 23, 42, 0.22);
}

.nb-sol2-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: rgba(255,255,255,0.92);
  border-radius: 999px;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.12);
  cursor: pointer;
  z-index: 3;
}
.nb-sol2-nav.prev{ left: 10px; }
.nb-sol2-nav.next{ right: 10px; }
.nb-sol2-nav::before{
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(15, 23, 42, 0.65);
  border-bottom: 2px solid rgba(15, 23, 42, 0.65);
  transform: translate(-50%, -50%) rotate(135deg);
}
.nb-sol2-nav.next::before{
  transform: translate(-50%, -50%) rotate(-45deg);
}

.nb-sol2-dots{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 8px;
  display: flex;
  justify-content: center;
  gap: 8px;
  z-index: 3;
}

.nb-sol2-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 0;
  background: rgba(15, 23, 42, 0.22);
  cursor: pointer;
}
.nb-sol2-dot.is-active{
  width: 20px;
  background: linear-gradient(90deg, #2dd4bf, #38bdf8);
}

@media (max-width: 980px){
  .nb-sol2-inner{
    width: calc(100% - 32px);
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
  }
  .nb-sol2-left{ flex: none; }
  .nb-sol2-h2{
  position: relative;
  z-index: 2; font-size: 32px; }
  .nb-sol2-track{ padding: 14px 18px; }
  .nb-sol2-card{ flex-basis: 78vw; height: 380px; }
  .nb-sol2-card.is-active{ height: 430px; transform: translateY(-12px); }
  .nb-sol2-nav{ display: none; }
  /* 모바일에서도 본문과 겹치지 않게 조금 더 아래로 */
  .nb-sol2-watermark{ font-size: 92px; bottom: -40px; }
}

.nb-home-impact .nb-home-wrap{width:100%; padding:120px 24px 110px; position:relative; z-index:1;}

/* About hero video: 원본 그대로 보이게(밝게) + 크롭 없이(하단 여백 포함) */
.nb-hero-video{
  background:#ffffff; /* contain으로 생기는 빈 공간(레터박스) 배경 */
}

.nb-hero-video .nb-hero-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;      /* ★ cover → contain (하단 여백 포함해서 전체 프레임 보임) */
  object-position:center;  /* 가운데 정렬 */
  z-index:0;
}


/* About (narrative section) - bigger type & wider leading */
.nb-about{
  background:#fff;
  padding:56px 16px 70px;
}
.nb-about-inner{
  max-width:980px;
  margin:0 auto;
}
.nb-about-kicker{
  font-size:15px;
  font-weight:700;
  letter-spacing:-0.2px;
  color:#0f766e;
  margin:0 0 16px;
}
.nb-about-title{
  font-size:40px;      /* 크게 */
  line-height:1.32;    /* 행간 넓게 */
  letter-spacing:-0.8px;
  margin:0 0 22px;
  color:#0f172a;
}
.nb-about-body{
  font-size:18px;      /* 본문 크게 */
  line-height:2.1;     /* 본문 행간 넓게 */
  letter-spacing:-0.2px;
  color:#334155;
}
.nb-about-body p{
  margin:0 0 18px;     /* 문단 상하 간격 넓게 */
}
.nb-about-strong{
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid rgba(15,23,42,0.08);
  font-weight:800;
  color:#0f172a;
}
.nb-about-sign{
  margin-top:28px;
  display:flex;
  justify-content:flex-end;
}
.nb-about-signline{
  font-size:16px;
  font-weight:800;
  color:#0f172a;
  letter-spacing:-0.2px;
}
@media (max-width:640px){
  .nb-about{padding:40px 14px 56px;}
  .nb-about-title{font-size:28px; line-height:1.38;}
  .nb-about-body{font-size:16px; line-height:2.0;}
  .nb-about-body p{margin:0 0 16px;}
}



/* === MFG PAGE (v2) ======================================================= */
.mfg-page{
  --mfg-max: 1320px;
  --mfg-gutter: 28px;
  --mfg-text: #0f172a;
  --mfg-sub: #334155;
  --mfg-muted: #64748b;
  --mfg-line: rgba(15, 23, 42, .10);
  --mfg-soft: rgba(15, 23, 42, .04);
  --mfg-accent: #16a34a; /* green */
  color: var(--mfg-text);
  letter-spacing: -0.2px;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}
.mfg-wrap{ max-width: var(--mfg-max); margin: 0 auto; padding: 0 var(--mfg-gutter); }
@media (min-width: 1200px){
  .mfg-page{ --mfg-gutter: 36px; }
}

/* Sections */
.mfg-section{ padding: 80px 0; }
.mfg-section.alt{ background: #f8fafc; }
.mfg-kicker{ color: var(--mfg-accent); font-weight: 700; font-size: 13px; margin: 0 0 10px; }
.mfg-h2{ font-size: clamp(22px, 1.9vw, 30px); font-weight: 800; margin: 0 0 10px; }
.mfg-lead{ color: var(--mfg-sub); line-height: 1.7; font-size: 16px; margin: 0; }
.mfg-small{ color: var(--mfg-muted); font-size: 13px; }

/* HERO */
.mfg-hero{ padding: 72px 0 56px; background: radial-gradient(1200px 400px at 20% 10%, rgba(22,163,74,.10), transparent 55%); }
.mfg-badge{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:700; font-size:13px; color: #0f766e;
  background: rgba(20,184,166,.10);
  border: 1px solid rgba(20,184,166,.25);
  padding: 6px 10px; border-radius: 999px;
  margin-bottom: 16px;
}
.mfg-hero-grid{ display:grid; grid-template-columns: 1.08fr .92fr; gap: 56px; align-items:center; }
@media (max-width: 980px){
  .mfg-hero-grid{ grid-template-columns: 1fr; gap: 22px; }
  .mfg-hero{ padding: 54px 0 42px; }
}
.mfg-title{
  font-size: clamp(34px, 3.2vw, 54px);
  line-height: 1.14;
  font-weight: 900;
  margin: 0 0 16px;
}
.mfg-subtitle{ color: var(--mfg-sub); font-size: 16px; line-height: 1.8; margin: 0 0 18px; max-width: 52ch; }
.mfg-cta{ display:flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.mfg-cta a{ display:inline-flex; align-items:center; justify-content:center; height: 44px; padding: 0 16px; border-radius: 12px; font-weight: 700; }
.mfg-cta .primary{ background: var(--mfg-accent); color:#fff; }
.mfg-cta .ghost{ border:1px solid var(--mfg-line); background:#fff; color: var(--mfg-text); }
.mfg-hero-points{ display:flex; gap:16px; flex-wrap:wrap; margin: 18px 0 0; padding:0; list-style:none; color: var(--mfg-sub); }
.mfg-hero-points li{ display:flex; align-items:center; gap:8px; font-size: 13px; }
.mfg-dot{ width:8px; height:8px; border-radius:999px; background: var(--mfg-accent); display:inline-block; }

/* HERO MEDIA + WATERMARK (media-only, no text overlap) */
.mfg-hero-media{ position:relative; overflow:hidden; border-radius: 22px; background: #0b1220; box-shadow: 0 18px 48px rgba(2,6,23,.14); }
.mfg-watermark{ pointer-events:none; user-select:none; }
.mfg-watermark--media{
  position:absolute; right:-120px; bottom:-80px;
  font-weight: 900;
  font-size: clamp(84px, 9vw, 160px);
  letter-spacing: -0.04em;
  opacity: .08;
  color: #ffffff;
  z-index: 0;
  white-space: nowrap;
}
.mfg-slider{ position:relative; z-index:2; }
.mfg-slides{ position:relative; height: 420px; overflow:hidden; }
.mfg-slide{ position:absolute; inset:0; opacity:0; transition: opacity .7s ease; }
.mfg-slide.is-active{ opacity:1; }
.mfg-slide img{ width:100%; height:100%; object-fit: cover; display:block; }

.mfg-control{
  position:absolute; top:50%; transform:translateY(-50%);
  width:42px; height:42px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(2,6,23,.45);
  border: 1px solid rgba(255,255,255,.25);
  color:#fff;
  z-index: 3;
}
.mfg-control.prev{ left: 10px; }
.mfg-control.next{ right: 10px; }

.mfg-dots{
  position:absolute; left:0; right:0; bottom: 12px;
  display:flex; justify-content:center; gap: 8px;
  z-index: 3;
}
.mfg-dotbtn{
  width: 8px; height: 8px; border-radius:999px;
  background: rgba(255,255,255,.55);
  border: none;
  padding: 0;
}
.mfg-dotbtn.is-active{ width: 18px; background:#fff; }

@media (max-width: 980px){
  .mfg-slides{ height: 320px; }
}

/* “이런 상황” + “진단부터 빠르게” : reduce card feel */
.mfg-split{ display:grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 42px; }
@media (max-width: 980px){ .mfg-split{ grid-template-columns: 1fr; } }
.mfg-panel{
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.mfg-panel h3{
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 800;
}
.mfg-panel ul{ margin: 0; padding-left: 18px; color: var(--mfg-sub); line-height: 1.75; }
.mfg-panel .mfg-cta{ margin-top: 12px; }

/* Definition + Principles */
.mfg-two-col{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items:start; }
@media (max-width: 980px){ .mfg-two-col{ grid-template-columns: 1fr; gap: 22px; } }
.mfg-principles{
  padding-left: 22px;
  border-left: 3px solid rgba(22,163,74,.30);
}
.mfg-principles h3{ margin: 0 0 10px; font-size: 16px; font-weight: 900; }
.mfg-principles ul{ margin: 0; padding-left: 18px; color: var(--mfg-sub); line-height: 1.75; }

/* Timeline (replaces “cards”) */
.mfg-steps{ position:relative; margin-top: 26px; }
.mfg-steps:before{
  content:"";
  position:absolute;
  left: 22px;
  top: 4px;
  bottom: 4px;
  width: 2px;
  background: rgba(15, 23, 42, .08);
}
.mfg-step{
  display:grid;
  grid-template-columns: 56px 1fr;
  gap: 22px;
  padding: 22px 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  border-bottom: 1px solid var(--mfg-line);
}
.mfg-step:last-child{ border-bottom: none; }
.mfg-step-no{
  width: 44px; height: 44px; border-radius: 999px;
  display:flex; align-items:center; justify-content:center;
  font-weight: 900;
  color: #065f46;
  background: rgba(22,163,74,.12);
  border: 1px solid rgba(22,163,74,.20);
  position: relative;
  z-index: 2;
}
.mfg-step h3{ margin: 0 0 6px; font-size: 18px; font-weight: 900; }
.mfg-step p{ margin: 0; color: var(--mfg-sub); line-height: 1.75; }
.mfg-step-meta{ margin-top: 10px; color: var(--mfg-muted); font-size: 13px; }

/* Scope (no cards) */
.mfg-scope{ margin-top: 18px; border-top: 1px solid var(--mfg-line); }
.mfg-scope-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
@media (max-width: 980px){ .mfg-scope-grid{ grid-template-columns: 1fr; gap: 0; } }
.mfg-scope-item{
  padding: 18px 0 22px;
  border-bottom: 1px solid var(--mfg-line);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.mfg-scope-item h3{ margin: 0 0 8px; font-weight: 900; font-size: 16px; }
.mfg-scope-item p{ margin: 0; color: var(--mfg-sub); line-height: 1.75; }

/* Cases (minimal, readable) */
.mfg-cases{ margin-top: 18px; border-top: 1px solid var(--mfg-line); }
.mfg-case{
  padding: 18px 0 22px;
  border-bottom: 1px solid var(--mfg-line);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.mfg-case h3{ margin: 0 0 10px; font-size: 16px; font-weight: 900; }
.mfg-case ul{ margin: 0; padding-left: 18px; color: var(--mfg-sub); line-height: 1.8; }

/* FAQ (accordion, no cards) */
.mfg-faqs{ margin-top: 10px; border-top: 1px solid var(--mfg-line); }
.mfg-faq{
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  border-bottom: 1px solid var(--mfg-line);
  padding: 14px 0;
}
.mfg-faq summary{
  cursor:pointer;
  font-weight: 900;
  color: var(--mfg-text);
  list-style: none;
}
.mfg-faq summary::-webkit-details-marker{ display:none; }
.mfg-faq-body{ color: var(--mfg-sub); line-height: 1.75; padding: 10px 0 0; }

/* Links */
.mfg-links ul{ margin: 10px 0 0; padding-left: 18px; line-height: 1.8; }
.mfg-links a{ color:#1d4ed8; }

/* Reveal animation */
.reveal{ opacity: 0; transform: translateY(14px); transition: opacity .65s ease, transform .65s ease; }
.reveal.reveal-in{ opacity: 1; transform: translateY(0); }
/* === MFG PAGE END ========================================================= */

/* =============================
   AUTH PAGES (login / reauth)
   ============================= */
body.nb-auth{background:#f9fafb}
/* 하단 플로팅 버튼(카카오톡)과 겹침 방지용 여백 포함 */
body.nb-auth .nb-content{padding:64px 16px 160px}
body.nb-auth .nb-title,
body.nb-auth .nb-page-title{text-align:center}
body.nb-auth .nb-sub,
body.nb-auth .nb-subtitle{text-align:center;color:#64748b;margin-bottom:18px}

body.nb-auth .nb-form.nb-auth-form{
  max-width:460px;
  margin: 18px auto 0;
  background:#fff;
  border-radius:16px;
  padding:24px;
  box-shadow: 0 18px 38px rgba(15,23,42,.08);
}

body.nb-auth .nb-form.nb-auth-form .nb-form-row{grid-template-columns:1fr;gap:12px}
body.nb-auth .nb-form.nb-auth-form .nb-field{margin-bottom:12px}

body.nb-auth .nb-form.nb-auth-form .nb-actions{justify-content:stretch}
body.nb-auth .nb-form.nb-auth-form .nb-actions .nb-btn{width:100%;justify-content:center;text-align:center}

body.nb-auth .nb-auth-links{
  max-width:460px;
  margin: 12px auto 0;
  display:flex;
  justify-content:center;
  gap:14px;
  font-size:13px;
  font-weight:800;
}
body.nb-auth .nb-auth-links a{color:#334155;text-decoration:none}
body.nb-auth .nb-auth-links a:hover{text-decoration:underline}

body.nb-auth .nb-input{
  border-color:#e2e8f0;
  border-radius:14px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
body.nb-auth .nb-input:focus{
  border-color: rgba(59,130,246,.45);
  box-shadow: 0 0 0 4px rgba(59,130,246,.12);
}

body.nb-auth .nb-reauth-tip{
  max-width:460px;
  margin: 0 auto 10px;
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding: 12px 14px;
  border: 1px solid #e2e8f0;
  background:#fff;
  border-radius:14px;
  color:#334155;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
}
body.nb-auth .nb-reauth-ic{line-height:1.2}



/* ===== Mobile 안정화(가로 잘림/오버플로우 방지 + 플로팅 버튼 축소) ===== */
@media (max-width: 720px){
  html, body{ overflow-x:hidden; }
}

@media (max-width: 480px){
  .nb-float{ right:12px; bottom:12px; gap:8px; }
  .nb-float-btn{ padding:9px 12px; font-size:16px; }
  /* 플로팅 버튼에 가려지는 하단 콘텐츠 방지 */
  .nb-main{ padding-bottom:110px; }
}

/* ===== Mobile Fix v4: 지원사업(공고) 카드 제목/즐겨찾기(★) ===== */
@media (max-width: 768px){
  /* 데스크톱용 고정 폭/최소폭이 모바일에서 제목 잘림/★ 숨김을 유발 → 모바일에서는 해제 */
  .sw-wrap[data-page^="resources"] table.sw-table.res{
    table-layout: auto !important;
  }

  .sw-wrap[data-page^="resources"] table.sw-table.res th,
  .sw-wrap[data-page^="resources"] table.sw-table.res td{
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* 제목 셀: 줄바꿈/랩핑 허용(카드 끝에서 잘리지 않도록) */
  .sw-wrap[data-page^="resources"] table.sw-table.res tbody td.title,
  .sw-wrap[data-page^="resources"] table.sw-table.res tbody td:nth-child(4){
    min-width: 0 !important;
    width: auto !important;
  }
  .sw-wrap[data-page^="resources"] table.sw-table.res tbody td.title a,
  .sw-wrap[data-page^="resources"] table.sw-table.res tbody td:nth-child(4) a{
    display: block;
    width: 100%;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  /* ★ 버튼이 제목/카드에 가려지지 않도록 레이어 올림 */
  .sw-wrap[data-page^="resources"] table.sw-table.res tbody td:nth-child(1){
    z-index: 3;
  }
  .sw-wrap[data-page^="resources"] table.sw-table.res tbody td:nth-child(1) .sw-favbtn{
    z-index: 3;
  }
}

/* Reset button with icon */
.sw-btn-reset{gap:8px;}
.sw-btn-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;opacity:.75;}
