/* 주식회사 가눔 홈페이지 — 외부 자원 0. 색·폰트 토큰은 theme.css (site.conf 에서 생성). */
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:#222;background:#fff;line-height:1.6;word-break:keep-all}
a{color:var(--navy2)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--green);outline-offset:2px}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1040px;margin:0 auto;padding-inline:20px}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:8px 12px}
.skip:focus{left:8px;top:8px;z-index:9}
/* 상단 */
.top{background:#fff;border-bottom:3px solid var(--navy);position:sticky;top:0;z-index:5}
.top .wrap{display:flex;align-items:center;gap:20px;min-height:60px;flex-wrap:wrap}
.brand{font-weight:700;font-size:1.15rem;color:var(--navy);text-decoration:none;margin-right:auto;display:flex;align-items:center;gap:10px}
.brand .logo{height:40px;width:auto;display:block}
.brand small{display:block;font-weight:400;font-size:.75rem;color:#666}
.nav{display:flex;gap:4px;flex-wrap:wrap}
.nav a{padding:8px 12px;text-decoration:none;color:#333;border-radius:4px}
.nav a[aria-current="page"]{color:var(--navy);font-weight:700;box-shadow:inset 0 -3px 0 var(--navy)}
.nav a:hover{background:#f0f3f9}
.menu-btn{display:none;border:1px solid #ccc;background:#fff;padding:8px 12px;border-radius:4px;font:inherit}
@media (max-width:760px){
  .menu-btn{display:inline-block}
  .nav{display:none;width:100%;flex-direction:column;padding-bottom:10px}
  .nav.open{display:flex}
}
/* 본문 */
main{padding-block:28px 48px}
h1{font-size:2rem;color:var(--navy);margin:.2em 0 .4em;line-height:1.25}
h2{font-size:1.4rem;color:var(--navy);margin:2em 0 .6em;padding-left:12px;border-left:5px solid var(--navy)}
h3{font-size:1.1rem;margin:1.4em 0 .5em;color:#333}
h4{font-size:1rem;margin:0 0 .4em}
p.lead{font-size:1.1rem;color:#444;max-width:60ch}
p.note,.small{font-size:.9rem;color:#666}
.eyebrow{color:var(--green);font-weight:700;letter-spacing:.02em;margin:0}
.hero{padding:24px 0 8px}
.hero h1{font-size:2.6rem}
.slogan{font-weight:700;color:var(--navy2);font-size:1.15rem}
.cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.btn{display:inline-block;padding:10px 18px;border:1px solid var(--navy);border-radius:4px;color:var(--navy);text-decoration:none;font-weight:700;background:#fff;font:inherit;cursor:pointer}
.btn.primary{background:var(--navy);color:#fff}
.btn:hover{filter:brightness(1.1)}
.toc{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 8px}
.toc a{font-size:.9rem;padding:5px 10px;border:1px solid #ddd;border-radius:14px;text-decoration:none;color:#333}
/* 카드 */
.cards3,.cards2{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{border:1px solid #e3e5e9;border-radius:6px;padding:16px 18px;background:#fff}
.card h3,.card h4{margin-top:0;color:var(--navy)}
.card ul{padding-left:18px;margin:.4em 0}
.num{display:inline-block;min-width:26px;height:26px;line-height:26px;text-align:center;background:var(--navy);color:#fff;border-radius:50%;font-size:.85rem;margin-right:8px}
/* 표 */
.tablewrap{overflow-x:auto;margin:10px 0 16px;border:1px solid #e3e5e9;border-radius:6px}
table{border-collapse:collapse;width:100%;font-size:.95rem;min-width:520px}
th,td{padding:9px 12px;border-bottom:1px solid #eceef2;text-align:left;vertical-align:top}
thead th{background:var(--navy);color:#fff;font-weight:700}
tbody th{background:#f7f8fa;color:var(--navy);font-weight:700;white-space:nowrap}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}
/* 구성도 */
.arch{display:flex;flex-direction:column;gap:6px;margin:10px 0 18px}
.arch .tier{border:1px solid #e3e5e9;border-radius:6px;padding:12px;background:#f7f8fa}
.arch .tier.field{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));position:relative;padding-top:34px}
.arch .tier .tl{position:absolute;top:8px;left:12px;font-size:.85rem;font-weight:700;color:var(--navy)}
.arch .box{background:#fff;border:1px solid #e3e5e9;border-radius:4px;padding:10px}
.arch .box b{display:block;color:var(--navy);margin-bottom:4px}
.arch .box span,.arch .tier > span{display:block;font-size:.9rem;color:#444}
.arch .tier.edge{background:var(--green);color:#fff;text-align:center}
.arch .tier.platform{background:var(--navy);color:#fff;text-align:center}
.arch .tier.edge b,.arch .tier.platform b{display:block;font-size:1.05rem}
.arch .tier.edge span,.arch .tier.platform span{color:#eef}
.arch .tier.top{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.arch .arrow{text-align:center;font-size:.85rem;color:#777}
/* 화면 · 사진 */
.shot{margin:10px 0 26px}
.shot img{border:1px solid #e3e5e9;border-radius:6px;aspect-ratio:16/9;width:100%}
.shot figcaption{font-size:.92rem;color:#444;margin-top:8px}
.photos{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:8px 0 14px}
.photos figure{margin:0}.photos img{border-radius:6px;aspect-ratio:4/3;object-fit:cover;width:100%}
.photos figcaption{font-size:.85rem;color:#666;margin-top:4px}
/* 문의 */
.cols2{display:grid;gap:28px;grid-template-columns:2fr 1fr}
@media (max-width:760px){.cols2{grid-template-columns:1fr}}
.inq label{display:block;margin:12px 0 4px;font-weight:700;font-size:.95rem}
.inq input,.inq textarea{display:block;width:100%;padding:10px;border:1px solid #cfd3da;border-radius:4px;font:inherit;margin-top:4px}
.inq .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.inq button{margin-top:14px}
.inq .err{color:#b3261e;font-weight:700}
ul.plain{list-style:none;padding:0;margin:.4em 0}
ul.plain .k{display:inline-block;min-width:64px;color:#666}
ul.files li{margin:8px 0}
ul.posts li{margin:10px 0}ul.posts time{color:#666;margin-right:8px;font-variant-numeric:tabular-nums}
.prose h2{border:0;padding:0}
/* 바닥 */
.foot{background:#f3f4f6;border-top:1px solid #e3e5e9;padding-block:28px;margin-top:20px;font-size:.92rem}
.foot .cols{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
