/* ============================================================
   diet 섹션 전용 확장 — body.diet-p2
   phase1.css + pain-p2.css(공용 P2 editorial 시스템) 위에 얹힌다.
   신규 정의는 diet 고유 요소(프로그램 흐름 5단·앱 관리)만.
   ============================================================ */

/* ------------------------------------------------------------
   LeanDiet 브랜드 컬러 토큰
   기준: 공식 로고 배경 #44348D(실측), 플랫레이 배경 #4D489C~#5C53A6(실측).
   본문용 파생 계열은 위 기준색을 탈채도·명도 조정한 muted lilac.
   홈페이지 LeanDiet 섹션 확장 시 이 토큰을 그대로 재사용한다.
   ------------------------------------------------------------ */
body.diet-p2{
  --lean-deep:#44348D;      /* 공식 로고 보라 — 브랜드 카드 등 핵심 장면 한정 */
  --lean-ink:#332C5F;       /* deep violet ink — CTA 등 어두운 브랜드 면 */
  --lean-violet:#554B92;    /* muted brand violet — accent 텍스트/라벨 (ivory 위 7:1) */
  --lean-mauve:#6E6690;     /* dusty gray-violet — 보조 라벨 (5:1) */
  --lean-lilac-500:#9A92BB; /* soft lilac — rule/마커 */
  --lean-lilac-300:#CFCADF; /* light lilac — 경계선 */
  --lean-lilac-200:#E5E2EF; /* pale lavender — 넓은 color field */
  --lean-lilac-100:#F2F0F7; /* palest gray-lavender — section background */
}

/* --- 카테고리 공통 (전 diet 페이지, 최소 강도) --- */
body.diet-p2 .eyebrow{color:var(--lean-mauve)}
body.diet-p2 .cta{background:var(--lean-ink)}
body.diet-p2 .cta h2{color:#fff} /* body.p1 h2(charcoal) 특이도 역전 보정 — 어두운 배경 위 제목 대비 확보 */
body.diet-p2 .cta .btn-primary{color:var(--lean-ink)}
body.diet-p2 .cta .btn-primary:hover{background:var(--lean-lilac-200)}

/* LeanDiet 브랜드 카드 — 공식 로고와 같은 deep violet 위 백색 (index·lean에만 존재) */
body.diet-p2 .brand-card{background:var(--lean-deep);border:none;color:#fff}
body.diet-p2 .brand-card h3{color:#fff}
body.diet-p2 .brand-card p{color:rgba(255,255,255,.82)}
body.diet-p2 .brand-card .tag{background:rgba(255,255,255,.13);color:#fff;border:1px solid rgba(255,255,255,.28)}
body.diet-p2 .brand-card .visit{background:#fff;color:var(--lean-deep)}
body.diet-p2 .brand-card:hover .visit{background:var(--lean-lilac-200);color:var(--lean-deep)}
body.diet-p2 .brand-card:hover{box-shadow:0 18px 40px -22px rgba(68,52,141,.55)}

/* lean-scene — 제품 이미지가 놓이는 연보라 배경 장면 (필요한 섹션에만 class로 지정) */
body.diet-p2 .lean-scene{background:var(--lean-lilac-100)}

/* --- diet/index (diet-home): 허브 — 브랜드 인지 최상 --- */
body.diet-home .page-hero{background:var(--lean-lilac-200)}
body.diet-home .page-hero h1{color:var(--lean-ink)}
body.diet-home .bg-grad{background:var(--lean-lilac-100)}
body.diet-home .d2-stages{border-top-color:var(--lean-lilac-300)}
body.diet-home .d2-stages li{border-bottom-color:var(--lean-lilac-200)}
body.diet-home .d2-stages .ph{color:var(--lean-violet)}
body.diet-home .d2-stages li span{color:var(--lean-mauve)}
body.diet-home .p1-co a:hover h4{color:var(--lean-violet)}
body.diet-home .p1-co .go{color:var(--lean-lilac-500)}
body.diet-home .p1-svc a:hover h3{color:var(--lean-violet)}
body.diet-home .p1-svc a:hover .go{color:var(--lean-mauve)}
body.diet-home .d2-phone{background:var(--lean-lilac-100);border-color:var(--lean-lilac-300)}
body.diet-home .d2-phone .label b{color:var(--lean-violet)}

/* --- diet/lean (diet-lean): 기준 페이지 — 공식 이미지와 색 연결 --- */
body.diet-lean .page-hero{background:var(--lean-lilac-100)}
body.diet-lean .page-hero h1{color:var(--lean-ink)}
body.diet-lean .p2-note{border-left-color:var(--lean-violet)}
body.diet-lean .p2-note .lbl{color:var(--lean-violet)}
body.diet-lean .p2-kw li{border-top-color:var(--lean-lilac-500)}
body.diet-lean .p1-sym .no{color:var(--lean-mauve)}
body.diet-lean .lean-scene .d2-prog{border-top-color:var(--lean-lilac-300)}
body.diet-lean .lean-scene .d2-prog > div{border-bottom-color:var(--lean-lilac-200)}
body.diet-lean .d2-prog .mgmt b{color:var(--lean-violet)}
body.diet-lean .d2-mini-flow span{background:var(--lean-lilac-200);border-color:var(--lean-lilac-300);color:var(--lean-violet)}
body.diet-lean .d2-phone{background:var(--lean-lilac-100);border-color:var(--lean-lilac-300)}
body.diet-lean .d2-phone .label b{color:var(--lean-violet)}
body.diet-lean .p2-flow .step{color:var(--lean-mauve)}

/* --- diet/obesity: 진료 성격 — 한 단계 낮게 --- */
body.diet-obesity .p2-dash li::before{color:var(--lean-lilac-500)}
body.diet-obesity .p2-note{border-left-color:var(--lean-violet)}
body.diet-obesity .p2-note .lbl{color:var(--lean-violet)}

/* --- diet/partial: 제한적 accent --- */
body.diet-partial .p2-steps .num{color:var(--lean-lilac-500)}

/* --- diet/review: neutral editorial + 최소 brand accent --- */
body.diet-review .p2-quote{border-left-color:var(--lean-lilac-500)}
body.diet-review .p2-quote .meta .stars{color:var(--lean-mauve)}

/* --- diet/column: 가장 neutral — category mark만 --- */
body.diet-column .p2-article .cat{color:var(--lean-violet)}

/* 프로그램 흐름 5단 (STEP 플로우 확장) */
body.diet-p2 .p2-flow.cols-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1100px){body.diet-p2 .p2-flow.cols-5{grid-template-columns:repeat(2,1fr)}body.diet-p2 .p2-flow.cols-5 > div:nth-child(2n){border-right:none}}
@media(max-width:600px){body.diet-p2 .p2-flow.cols-5{grid-template-columns:1fr}}

/* 진료 흐름 10단계: 4개 국면으로 묶은 editorial 흐름 (카드 아님) */
.d2-stages{display:grid;grid-template-columns:repeat(4,1fr);gap:0 44px;border-top:1px solid var(--line)}
.d2-stages .stage{padding-top:18px}
.d2-stages .ph{font-size:.85rem;font-weight:750;color:var(--olive-700);margin-bottom:12px}
.d2-stages ol{list-style:none;display:flex;flex-direction:column;gap:0}
.d2-stages li{display:flex;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:1.05rem;color:var(--charcoal);line-height:1.55}
.d2-stages li span{font-size:.75rem;font-weight:700;color:var(--text-mute);flex:none;font-variant-numeric:tabular-nums}
@media(max-width:1100px){.d2-stages{grid-template-columns:1fr 1fr;gap:20px 40px}}
@media(max-width:600px){.d2-stages{grid-template-columns:1fr}}

/* 공식 미디어 */
body.diet-p2 .d2-hero-img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:10px;display:block}
@media(max-width:760px){body.diet-p2 .d2-hero-img{aspect-ratio:4/3}}
body.diet-p2 .d2-video{width:100%;max-width:960px;border-radius:10px;display:block;background:#000}

/* 프로그램 상세 rows (쇼핑몰 카드 아님 — divider editorial) */
.d2-prog{border-top:1px solid var(--line)}
.d2-prog > div{display:grid;grid-template-columns:240px 1fr;gap:12px 44px;padding:28px 4px;border-bottom:1px solid var(--line-soft)}
.d2-prog h3{font-size:1.35rem;font-weight:750;letter-spacing:-.02em}
.d2-prog .dur{font-size:.9rem;color:var(--text-mute);margin-top:6px}
.d2-prog p{font-size:1.05rem;color:var(--ink-soft);line-height:1.8;margin-bottom:8px}
.d2-prog .mgmt{font-size:.97rem;color:var(--text-soft)}
.d2-prog .mgmt b{color:var(--olive-800);font-weight:700}
.d2-prog .pimg{width:130px;height:auto;margin-top:14px;display:block}
@media(max-width:760px){.d2-prog > div{grid-template-columns:1fr;gap:8px}}

/* 관리 흐름 개념도 (실제 앱/차트 UI 아님 — editorial diagram) */
.d2-mini-flow{display:flex;flex-wrap:wrap;gap:8px 6px;align-items:center;margin-top:18px}
.d2-mini-flow span{font-size:.92rem;font-weight:650;color:var(--olive-800);background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:7px 13px}
.d2-mini-flow i{font-style:normal;color:var(--text-mute)}

/* 라인약침 국소 진료 장면 (diet/partial) — 비대칭 text/side + 와이드 비주얼 */
.d2-line{display:grid;grid-template-columns:7fr 4fr;gap:clamp(36px,5vw,110px);align-items:start;margin-bottom:clamp(36px,4vw,60px)}
.d2-line .copy p{font-size:1.12rem;color:var(--ink-soft);line-height:1.9;margin-bottom:16px;max-width:660px}
.d2-line .side{border-top:2px solid var(--charcoal);padding-top:20px;margin-top:clamp(6px,2.2vw,40px);max-width:380px}
.d2-line .side .lbl{font-size:.88rem;font-weight:700;color:var(--text-mute);margin-bottom:6px}
.d2-line .side ul{list-style:none}
.d2-line .side li{padding:13px 0;border-bottom:1px solid var(--line-soft);font-size:1.04rem;font-weight:600;color:var(--charcoal)}
/* 대표 사진 자리 — 실제 라인약침 촬영본 확보 시 사용 (partial.html의 FUTURE PHOTO 주석 참조) */
.d2-line-img{width:100%;max-width:1100px;aspect-ratio:3/2;object-fit:cover;border-radius:10px;display:block}
@media(max-width:900px){.d2-line{grid-template-columns:1fr;gap:28px}.d2-line .side{margin-top:0}}

/* 라인약침 연보라 scene (diet/partial 한정 — lean.html의 lean-scene에는 영향 없음) */
body.diet-partial .lean-scene{background:var(--lean-lilac-200)}
body.diet-partial .lean-scene .head-block h2{color:var(--lean-ink)}
body.diet-partial .lean-scene .eyebrow{color:var(--lean-violet)}
body.diet-partial .d2-line .side{border-top-color:var(--lean-violet)}
body.diet-partial .d2-line .side .lbl{color:var(--lean-violet)}
body.diet-partial .d2-line .side li{border-bottom-color:var(--lean-lilac-300)}

/* 앱·알림 관리: 텍스트 + 모바일 화면 자리 (공식 앱 화면 확보 시 교체) */
.d2-app{display:grid;grid-template-columns:6fr 6fr;gap:clamp(32px,4vw,64px);align-items:center}
.d2-app .copy p{font-size:1.1rem;color:var(--ink-soft);line-height:1.85;margin-bottom:14px;max-width:560px}
.d2-app .shots{display:flex;gap:18px;justify-content:flex-start}
.d2-phone{flex:1;max-width:230px;aspect-ratio:9/19;border:1px solid var(--line);border-radius:22px;background:var(--cream);display:grid;place-items:center;padding:14px}
.d2-phone .label{text-align:center;font-size:.85rem;color:var(--text-mute);line-height:1.6}
.d2-phone .label b{display:block;color:var(--olive-800);font-size:.92rem;margin-bottom:4px;font-weight:700}
@media(max-width:900px){.d2-app{grid-template-columns:1fr;gap:28px}.d2-phone{max-width:190px}}
