/* K-SOIL — ksoil.biotope.co.kr 리뉴얼 디자인 카피 (2026-07) */
:root{
  --deep:#002c11;        /* 헤더·히어로 밴드 */
  --green:#003f1b;       /* 프라이머리(버튼·Problem·푸터) */
  --green-dark:#003f1b;
  --green-pale:#e6f0e9;
  --cream:#fff7d7;       /* 카드·로고 크림 */
  --ink:#111;
  --gray:#5f6b63;
  --line:#ebebeb;
  --soft:#fafafa;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Pretendard Variable',Pretendard,-apple-system,'Malgun Gothic',sans-serif;color:var(--ink);background:#fff;line-height:1.6;font-size:16px;padding-top:90px;word-break:keep-all}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1300px;margin:0 auto;padding:0 24px}
section{padding:110px 0}

/* ── Header ─────────────────────────── */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--deep);height:90px}
.site-header .inner{max-width:1420px;margin:0 auto;padding:0 32px;height:100%;display:flex;align-items:center;justify-content:space-between}
.logo img{height:34px;width:auto}
.logo img.inv{filter:brightness(0) invert(.96) sepia(.15)}
.gnb{display:flex;align-items:center;gap:36px}
.gnb a{color:#fff;font-size:16px;font-weight:500}
.gnb a.pill{background:rgba(255,255,255,.18);border-radius:100px;padding:14px 22px;font-size:15px}
.gnb a.pill:hover{background:rgba(255,255,255,.3)}
.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:26px;cursor:pointer}

/* ── Hero (홈) ───────────────────────── */
.hero{position:relative;min-height:calc(100vh - 90px);display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:var(--deep);text-align:center}
.hero .bgvid,.hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center}
.hero .shade{position:absolute;inset:0;background:rgba(0,22,9,.45)}
.hero .inner{position:relative;z-index:2;max-width:900px;margin:0 auto;padding:100px 24px 60px;color:#fff}
.hero h1{font-size:clamp(40px,5.2vw,70px);font-weight:500;line-height:1.2;letter-spacing:-.02em}
.hero .lead{margin-top:28px;font-size:clamp(15px,1.4vw,18px);color:rgba(255,255,255,.88);line-height:1.8}
.hero .link-cta{display:inline-block;margin-top:36px;color:#fff;font-size:17px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:8px}
.hero .scroll-hint{position:relative;z-index:2;color:rgba(255,255,255,.9);font-size:15px;padding:26px 24px;border-top:1px solid rgba(255,255,255,.25);max-width:1140px;margin:40px auto 0;width:100%}

/* ── 서브페이지 다크 밴드 히어로 ───────── */
.band-hero{background:var(--deep);color:#fff;text-align:center;padding:120px 24px 100px}
.band-hero .tag-pill{display:inline-block;background:rgba(255,255,255,.14);border-radius:50px;padding:6px 16px;font-size:15px;color:rgba(255,255,255,.9);margin-bottom:28px}
.band-hero h1{font-size:clamp(38px,5vw,70px);font-weight:500;letter-spacing:-.02em;color:var(--cream)}
.band-hero .sub{margin-top:24px;color:rgba(255,255,255,.72);font-size:clamp(15px,1.3vw,17px);line-height:1.8}

/* ── 섹션 라벨(pill) & 헤딩 ───────────── */
.sec-head{text-align:center;margin-bottom:56px}
.section-label{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:50px;padding:5px 16px;font-size:15px;color:#000;margin-bottom:22px}
.section-label img{width:18px;height:18px;object-fit:contain}
.sec-head h2{font-size:clamp(28px,3.4vw,40px);font-weight:600;letter-spacing:-.02em;line-height:1.35}
.sec-head .sub{margin-top:16px;color:var(--gray);font-size:16px}

/* ── Stats ──────────────────────────── */
.stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:56px}
.stats3 .num{font-size:clamp(44px,4.5vw,60px);font-weight:500;letter-spacing:-.02em}
.stats3 .num small{font-size:.6em}
.stats3 b{display:block;margin:14px 0 8px;font-size:18px}
.stats3 p{color:var(--gray);font-size:15px;line-height:1.75}

/* ── 고객사 로고 ─────────────────────── */
.logo-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:48px 40px;align-items:center;justify-items:center}
.logo-strip img{width:120px;height:auto;max-height:60px;object-fit:contain}

/* ── Problem (다크그린 + 크림 카드) ────── */
.problem-sec{background:var(--green);padding:120px 0}
.problem-sec .sec-head h2{color:#fff}
.p-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.p-card{background:var(--cream);border-radius:10px;padding:24px 22px}
.p-card .icon{width:100px;height:90px;object-fit:contain;object-position:left center}
.p-card h3{font-size:19px;font-weight:700;margin:16px 0 12px}
.p-card ul{list-style:none}
.p-card li{font-size:15px;line-height:1.7;color:#222}
.p-card li::before{content:"· "}

/* ── Solution ───────────────────────── */
.sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.sol-card .ph{aspect-ratio:4/5;border-radius:10px;background-size:cover;background-position:center}
.sol-card .eyebrow-s{display:block;margin-top:22px;color:var(--green);font-size:14px;font-weight:700}
.sol-card h3{font-size:22px;font-weight:600;margin:6px 0 10px}
.sol-card p{color:var(--gray);font-size:15px;line-height:1.75}

/* ── Comparison ─────────────────────── */
.cmp-sec{background:var(--soft)}
table.compare{width:100%;border-collapse:collapse;max-width:1000px;margin:0 auto;background:transparent}
.compare th,.compare td{padding:18px 16px;text-align:center;font-size:15px;border-bottom:1px solid #e8e8e8}
.compare th{font-weight:700;font-size:16px}
.compare tr td:first-child{font-weight:600;text-align:left}
.compare .win{background:rgba(3,89,37,.12);font-weight:700}
.compare tr:last-child td{border-bottom:0}

/* ── Portfolio 카드 ─────────────────── */
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;row-gap:60px}
.pf-card{display:block}
.pf-card .ph{position:relative;aspect-ratio:3/2;border-radius:8px;overflow:hidden;background-size:cover;background-position:center}
.pf-card .cat{position:absolute;left:14px;bottom:14px;background:#fff;border-radius:50px;padding:5px 14px;font-size:14px}
.pf-card h3{font-size:22px;font-weight:600;margin-top:18px}
.pf-card:hover .ph{opacity:.92}

/* 필터 탭 */
.tabs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:56px}
.tab{padding:8px 20px;border-radius:50px;font-size:15px;color:#777;cursor:pointer;border:0;background:none;font-family:inherit}
.tab.on{background:var(--green);color:#fff}

/* ── Process ────────────────────────── */
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.step .ph{aspect-ratio:11/10;border-radius:10px;background-size:cover;background-position:center}
.step .no{display:block;margin-top:20px;color:var(--green);font-weight:700;font-size:15px;letter-spacing:.06em}
.step h3{font-size:20px;font-weight:600;margin:6px 0 10px}
.step p{color:var(--gray);font-size:15px;line-height:1.75}

/* ── CTA 카드 ───────────────────────── */
.cta-card{background:var(--cream);border-radius:10px;text-align:center;padding:90px 24px}
.cta-card .brand{font-size:15px;font-weight:700;color:var(--green);letter-spacing:.04em}
.cta-card h2{font-size:clamp(30px,3.6vw,44px);font-weight:600;margin:10px 0 22px;letter-spacing:-.02em}
.cta-card p{color:#444;font-size:16px;line-height:1.8}
.btn-primary{display:inline-block;background:var(--green);color:#fff;border-radius:50px;padding:15px 30px;font-size:16px;font-weight:600;margin-top:34px}
.btn-primary:hover{opacity:.9}

/* ── 상세 갤러리 ─────────────────────── */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery a,.gallery .g{border-radius:8px;overflow:hidden;aspect-ratio:4/3;background-size:cover;background-position:center;display:block}
.gallery.detail{grid-template-columns:repeat(3,1fr)}

/* ── 문의 폼 ────────────────────────── */
.form-panel{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:10px;padding:40px 36px}
.btn{display:inline-block;border-radius:50px;padding:13px 26px;font-size:15px;font-weight:600}
.btn-line{border:1px solid var(--green);color:var(--green)}
.btn-ghost{border:1px solid rgba(255,255,255,.6);color:#fff}

/* ── Footer ─────────────────────────── */
footer{background:var(--green);color:var(--cream);padding:90px 0 36px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:start}
.f-logo img{width:min(340px,70%);height:auto}
.f-logo img.inv{filter:brightness(0) invert(.96) sepia(.15)}
.f-tag{margin-top:30px;font-size:clamp(17px,1.6vw,21px);font-weight:600;line-height:1.6;color:var(--cream)}
.f-sns{margin-top:30px;display:flex;gap:10px}
.f-sns a{border:1px solid rgba(255,247,215,.55);border-radius:8px;padding:9px 18px;font-size:15px;color:var(--cream)}
.f-sns a:hover{background:rgba(255,247,215,.12)}
.f-info{list-style:none}
.f-info li{display:flex;gap:12px;align-items:flex-start;color:rgba(255,247,215,.85);font-size:16px;margin-bottom:18px;line-height:1.5}
.f-info li .ic{flex:0 0 auto;opacity:.9}
footer .rule{border:0;border-top:1px solid rgba(255,247,215,.25);margin:56px 0 28px}
footer .copyright{font-size:14px;color:rgba(255,247,215,.7)}

/* ── 반응형 ─────────────────────────── */
@media (max-width:1024px){
  .p-grid{grid-template-columns:repeat(2,1fr)}
  .logo-strip{grid-template-columns:repeat(4,1fr)}
  .pf-grid,.sol-grid,.step-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  body{padding-top:72px}
  .site-header{height:72px}
  .site-header .inner{padding:0 20px}
  .logo img{height:26px}
  .nav-toggle{display:block}
  .gnb{display:none;position:absolute;top:72px;left:0;right:0;background:var(--deep);flex-direction:column;padding:20px 24px;gap:18px;align-items:flex-start}
  .gnb.open{display:flex}
  .gnb a.pill{padding:12px 18px}
  section{padding:70px 0}
  .problem-sec{padding:80px 0}
  .stats3{grid-template-columns:1fr;gap:36px}
  .logo-strip{grid-template-columns:repeat(3,1fr);gap:28px}
  .logo-strip img{width:100px}
  .p-grid,.pf-grid,.sol-grid,.step-grid{grid-template-columns:1fr}
  .gallery,.gallery.detail{grid-template-columns:repeat(2,1fr)}
  .f-grid{grid-template-columns:1fr}
  .band-hero{padding:90px 24px 70px}
  .cta-card{padding:64px 20px}
  .hero .scroll-hint{margin-top:20px}
}

/* ── 갤러리 figure & 문의 보조 ─────────── */
.gallery figure{border-radius:8px;overflow:hidden;aspect-ratio:4/3;margin:0}
.gallery figure img{width:100%;height:100%;object-fit:cover}
.contact-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:start}
.info-panel h3{font-size:18px;font-weight:700;margin:8px 0 14px}
.info-panel h3+.box{margin-top:0}
.info-panel .box{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin-bottom:12px;font-size:15px}
.info-panel .box b{display:inline-block;min-width:74px;color:var(--green)}
.info-panel h3:nth-of-type(2){margin-top:26px}
@media (max-width:900px){.contact-wrap{grid-template-columns:1fr}}
