/* ── 프로젝트 상세 페이지 ─────────────────────────────── */
body.case{background:var(--bg)}
body.case .hd{position:fixed}

/* hero */
.c-hero{position:relative;height:clamp(520px,82vh,860px);overflow:hidden;background:#1d211d;color:#fff;display:flex;align-items:flex-end}
.c-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,10,.5) 0%,rgba(10,12,10,.08) 38%,rgba(10,12,10,.78) 100%)}
.c-hero .wrap{position:relative;z-index:2;padding-bottom:clamp(44px,7vw,88px)}
.c-hero .tag{color:#fff;opacity:.9}
.c-hero h1{margin-top:10px;font-weight:300;font-size:clamp(38px,6.6vw,96px);line-height:1.08;letter-spacing:-.05em}
.c-hero .lead{margin-top:clamp(20px,2.6vw,34px);font-size:clamp(16px,1.6vw,22px);line-height:1.6;color:rgba(255,255,255,.88);font-weight:300}
/* 원본 해상도가 낮은 사진용 — 높이를 낮춰 확대율을 줄임 */
.c-hero.low{height:clamp(420px,62vh,620px)}
.c-hero.low::after{background:linear-gradient(180deg,rgba(10,12,10,.62) 0%,rgba(10,12,10,.34) 42%,rgba(10,12,10,.82) 100%)}
.c-hero.low h1,.c-hero.low .lead,.c-hero.low .tag{text-shadow:0 1px 18px rgba(0,0,0,.45)}

/* lead / meta */
.c-lead{padding-top:clamp(64px,8vw,110px);padding-bottom:0}
.c-lead-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(28px,5vw,80px);align-items:start;border-top:1px solid var(--ink);padding-top:30px}
.c-lead-grid .k{display:flex;flex-direction:column;gap:16px;font-size:14px;color:var(--ink-2)}
.c-lead-grid .k b{display:block;color:var(--ink);font-weight:500;font-size:13px;margin-bottom:4px;letter-spacing:.02em}
.c-lead-grid>p{font-size:clamp(18px,2vw,27px);line-height:1.62;font-weight:300;letter-spacing:-.025em}

/* before & after */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,28px)}
.ba figure{margin:0}
.ba img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#e4e2db}
.ba figcaption{margin-top:14px;font-size:14px;color:var(--ink-2);display:flex;flex-direction:column;gap:5px}
.ba figcaption i{font-style:normal;font-size:12px;letter-spacing:.14em;color:var(--blue);font-weight:500}

/* 고민 */
.c-voice-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.c-voice blockquote{margin:0;position:relative;padding-left:clamp(26px,3vw,44px);border-left:2px solid var(--blue)}
.c-voice blockquote p{font-size:clamp(20px,2.6vw,36px);line-height:1.5;font-weight:300;letter-spacing:-.035em}
.c-voice blockquote cite{display:block;margin-top:20px;font-style:normal;font-size:13px;color:var(--ink-2)}
.c-voice .note{padding-top:8px}
.c-voice .note p{font-size:16px;line-height:1.75;color:var(--ink-2)}
.c-wide{margin:clamp(44px,6vw,88px) 0 0}
.c-wide img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#e4e2db}
.c-wide figcaption{margin-top:12px;font-size:13px;color:var(--ink-2)}

/* 진단 */
.diag{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3.2vw,52px)}
.diag li{border-top:1px solid var(--ink);padding-top:22px}
.diag .no{font-size:13px;color:var(--blue);letter-spacing:.04em}
.diag h3{margin-top:14px;font-size:clamp(19px,1.9vw,25px);font-weight:500;line-height:1.35;letter-spacing:-.03em}
.diag p{margin-top:16px;font-size:15px;line-height:1.72;color:var(--ink-2)}
/* 사진이 있는 진단 카드 */
.diag.has-ph li{border-top:0;padding-top:0}
.diag.has-ph figure{margin:0 0 22px}
.diag.has-ph figure img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#e4e2db}
.diag.has-ph .no{display:block;padding-top:14px;border-top:1px solid var(--ink)}

/* AFTER 모자이크 */
.c-mosaic{display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:auto auto;gap:clamp(12px,1.8vw,22px)}
.c-mosaic figure{margin:0}
.c-mosaic img{width:100%;height:100%;object-fit:cover;background:#e4e2db;display:block}
.c-mosaic .m1{grid-row:1 / span 2}
.c-mosaic .m1 img{aspect-ratio:3/4}
.c-mosaic .m2 img,.c-mosaic .m3 img{aspect-ratio:4/3}
.c-mosaic.two{grid-template-columns:1fr 1fr;grid-template-rows:auto}
.c-mosaic.two img{aspect-ratio:4/3}
.c-band{margin-top:clamp(48px,6vw,92px);background:var(--ink);color:#fff;padding:clamp(34px,4.6vw,60px) clamp(24px,4vw,56px);text-align:center;font-size:clamp(19px,2.3vw,30px);font-weight:300;line-height:1.45;letter-spacing:-.035em}
.c-band span{display:block;margin-top:16px;font-size:15px;line-height:1.7;color:#a9a79f;letter-spacing:-.01em}

/* 해결 단계 */
.c-sol .step{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(24px,4.4vw,72px);align-items:center;padding:clamp(34px,4.6vw,64px) 0;border-top:1px solid var(--line)}
.c-sol .step:first-of-type{border-top:0;padding-top:0}
.c-sol .step:nth-of-type(even) figure{order:2}
.c-sol .step figure{margin:0}
.c-sol .step img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#e4e2db}
.c-sol .step .no{font-size:13px;color:var(--blue);letter-spacing:.04em;margin-right:12px}
.c-sol .step .k{font-size:13px;color:var(--ink-2)}
.c-sol .step h3{margin-top:18px;font-size:clamp(22px,2.7vw,38px);font-weight:400;line-height:1.3;letter-spacing:-.04em}
.c-sol .step p{margin-top:20px;font-size:16px;line-height:1.78;color:var(--ink-2);max-width:56ch}

/* after */
.c-after .c-wide{margin-top:0}
.c-after .c-wide img{aspect-ratio:16/9;object-position:50% 72%}
.c-closing{margin-top:clamp(44px,6vw,86px);text-align:center;font-size:clamp(24px,3.6vw,52px);font-weight:300;line-height:1.35;letter-spacing:-.045em}
.c-closing em{font-style:normal;color:var(--blue)}

/* cta */
.c-cta{border-top:1px solid var(--line)}
.c-cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-top:clamp(48px,6vw,84px);padding-bottom:clamp(48px,6vw,84px)}
.c-cta p{font-size:clamp(17px,1.8vw,23px);line-height:1.6;font-weight:300;letter-spacing:-.025em}
.c-cta .arrow{font-size:clamp(16px,1.5vw,19px);border-bottom:1px solid var(--ink);padding-bottom:4px;white-space:nowrap}
.c-cta .arrow:hover{color:var(--blue);border-color:var(--blue)}
.c-cta .arrow:hover::before{transform:translate(3px,3px)}

@media (max-width:900px){
  .c-lead-grid,.c-voice-grid,.c-sol .step{grid-template-columns:1fr}
  .c-lead-grid .k{flex-direction:row;flex-wrap:wrap;gap:22px 34px}
  .c-sol .step:nth-of-type(even) figure{order:0}
  .diag{grid-template-columns:1fr;gap:0}
  .diag li{padding:26px 0;border-top:0}
  .diag li+li{border-top:1px solid var(--line)}
  .diag li:first-child{padding-top:0}
  .diag.has-ph li{padding:0 0 34px}
  .diag.has-ph li+li{border-top:0}
  .diag.has-ph figure{margin-bottom:18px}
  .c-mosaic,.c-mosaic.two{grid-template-columns:1fr}
  .c-mosaic .m1{grid-row:auto}
  .c-mosaic .m1 img{aspect-ratio:4/3}
  .diag h3 br{display:none}
  .c-after .c-wide img{aspect-ratio:3/2}
  .c-cta .wrap{flex-direction:column;align-items:flex-start;gap:22px}
}
@media (max-width:600px){
  .ba{grid-template-columns:1fr;gap:26px}
  .c-wide img{aspect-ratio:4/3}
}
