/* page-self-study.css — 이 페이지 전용. ✏️ 이 페이지 세션이 고치는 유일한 CSS.
   2026-08-20 신설 — 그동안 이 페이지만 전용 CSS 가 없어서 히어로 배경을 얹을 데가 없었다. */

/* ── 히어로 배경 이미지 (★2026-08-20 회장 지시) ──────────────────────────
   "인덱스 빼고는 히어로 섹션 배경을 각자에 어울리는 이미지로. 옅은 블랙박스도."
   원본 = 활동사진 self-study-07 (자습실에서 학생들이 각자 자리에 앉아 공부하는 모습).
   🔒 _shell.css 는 안 건드린다 — 페이지마다 그림이 다르니 각자 파일에서 얹는다.
   홈은 실물 영상이라 이 규칙과 무관하다.
   ⚠️ 히어로는 600px 고정 높이의 풀블리드라 3:2 원본이 세로로 크게 잘린다.
      슬롯 사진의 「75% 이상 남기기」 기준은 여기 적용 대상이 아니다(그건 콘텐츠 칸 기준).
      대신 background-position 으로 피사체가 잘려 나가지 않는 지점을 잡는다. */
/* ★2026-08-21 회장 지적 — "히어로에 회색창 1초 떴다가 로딩된다".
   원인 둘이었다.
   ① CSS 배경이라 브라우저가 CSS 5장을 다 받은 뒤에야(988ms) 사진을 요청한다.
      → HTML <head> 에 preload 를 넣어 요청을 앞으로 당겼다.
   ② 그동안 보이는 것이 회색이었다. placeholder 배경이 투명이라 흰 섹션 위에
      검은 오버레이만 얹혀 회색이 된 것이다(_shell.css 의 남색 그라디언트는
      여기서 background-image 를 덮어써서 사라진다).
      → 20px 짜리 흐린 축소본(아래 base64, 132바이트)을 아래층에 깔았다.
        회색 대신 그 사진의 흐릿한 형태가 보이다가 실물이 도착하면 덮인다.
   ⚠️ background-image 를 새로 선언하는 곳은 아래층(var(--hero-lqip))을 같이 써야 한다.
      한 층만 쓰면 흐린 층이 사라져 다시 회색이 된다. */
.dk-bg-video-section .dk-bg-video-placeholder {
  --hero-lqip: url("data:image/webp;base64,UklGRpIAAABXRUJQVlA4IIYAAADwAwCdASoUAA0APuleqE0pJSOiMAgBIB0JYwC/OB6yMWB8/pshXIgAAP7RtLiRlKsbqUugoSvvEuujC/tYxDEcXlgWWAjyObwD+jy0N0Mnto7buUncFl4lSUaJ4byYYraa8zYf6kb2ISSKsQJjbay2JWifPgLKXHvMXvjs+Nolg3m3poAAAA==");
  background-image: url("../images/hero/dakgong-domestic-hero-self-study-1920.webp"), var(--hero-lqip);
  background-size: cover; background-position: center 42%;
}
@media (max-width: 820px) {
  .dk-bg-video-section .dk-bg-video-placeholder {
    background-image: url("../images/hero/dakgong-domestic-hero-self-study-1200.webp"), var(--hero-lqip); }
}
/* ★회장 "선생님 좀 더 나오게" (2026-08-21) — 가로는 안 잘린다. cover 는 세로만 자른다.
   PC 히어로 박스가 2.4:1 인데 사진은 1.5:1 이라 세로 38% 가 잘리고 가로는 전부 보인다.
   사진을 축소하면 그만큼 좌우에 빈 자리가 생기므로, 잘리는 총량은 그대로 두고
   보이는 창만 위로 올렸다(42% → 12%). 선생님 머리부터 상반신까지 들어온다.
   모바일은 박스가 세로로 길어 사정이 반대라 42% 를 유지한다. */
@media (min-width: 821px) {
  .dk-bg-video-section .dk-bg-video-placeholder { background-position: center 12%; }
}
/* ★블랙박스 — 5페이지 전부에서 흰 글자가 읽히는 **최소값**이다. 회장 "옅은".
   실측(글자가 실제 놓인 줄 상자 기준, 기준 h1 3:1 · 리드 4.5:1) —
     PC   .62/.32/.08 → teachers 리드 4.35 ✗   ·  .62/.38/.10 → 최저 4.77 ✓  ← 채택
     모바일 .62/.34/.28 → 커리큘럼 3.50 · 자습 3.55 · 생활 3.71 ✗
            .66/.48/.42 + 아래→위 .46 → 최저 5.96 ✓  ← 채택
   ⚠️ 모바일은 글이 화면 폭을 거의 다 써서 가로 그라디언트만으론 안 된다.
      리드가 화면 세로 중앙쯤에 놓이므로 아래에서 올라오는 겹을 70%까지 끌어올렸다. */
.dk-bg-video-section::after {
  background: linear-gradient(90deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.38) 45%, rgba(0,0,0,.10) 75%); }
@media (max-width: 768px) {
  .dk-bg-video-section::after {
    background: linear-gradient(90deg, rgba(0,0,0,.66) 0%, rgba(0,0,0,.48) 60%, rgba(0,0,0,.42) 100%),
                linear-gradient(to top, rgba(0,0,0,.46) 0%, rgba(0,0,0,0) 70%); }
}

/* ── 01 FLOW 스텝 카드 밑 사진 4칸 ────────────────────────────────
   회장 지시(2026-08-21) — 「자습실은 이렇게 돌아갑니다」 글+사진 조합을 빼고
   카드 네 장 밑에 사진만 깐다. 정의는 teachers 의 page-teachers-strip 을
   그대로 복제하고 figcaption 만 뺀 것이다(같은 역할 = 같은 값). */
.page-self-study-strip { display: grid; grid-template-columns: repeat(4, 1fr);
  gap: var(--dk-gap-xs); margin-top: var(--dk-gap-lg); }
.page-self-study-strip .dk-ph { aspect-ratio: 3/2; min-height: 0; }
@media (max-width: 880px) {
  .page-self-study-strip { grid-template-columns: repeat(2, 1fr); }
}

/* ── 지그재그 흐름 인포그래픽 (03 REVIEW · 02 CHECK 공용) ──────────
   회장 승인(2026-08-21, A안). 레퍼런스 = 좌우 교차 알약 + 번호 + 연결선.
   ★카드 폭을 420px 한 값으로 못 박는다 — 내용에 맡기면 278~370px 로 제각각이 되어
     「병렬 항목 N개는 레이아웃 통일」에 걸린다. 대신 남는 자리는 가운데정렬 +
     글자 한 단 키우기로 채웠다(회장 지시).
   ★번호 원은 코발트 '테두리'다. 면(배경)에 액센트를 쓰면 화면당 2회 제한에 걸린다. */
.page-self-study-zz { display: grid; }
.page-self-study-zz__i { display: grid; grid-template-columns: 1fr 84px 1fr; align-items: center; }
/* ⚠️ 홀수 행 카드가 1번 칸인데 레일(2번 칸)보다 뒤에 오면 자동배치가 다음 행으로
   밀어낸다. 행을 명시하지 않으면 번호와 카드가 93px 어긋난다. */
.page-self-study-zz__rail { grid-column: 2; grid-row: 1; justify-self: center; align-self: stretch;
  position: relative; width: 100%; display: flex; align-items: center; justify-content: center;
  min-height: 96px; }
.page-self-study-zz__rail::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%;
  border-left: 2px dashed var(--dk-hairline-cool); transform: translateX(-1px); }
.page-self-study-zz__i:first-child .page-self-study-zz__rail::before { top: 50%; }
.page-self-study-zz__i:last-child  .page-self-study-zz__rail::before { bottom: 50%; }
.page-self-study-zz__n { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%;
  background: #fff; border: 2px solid var(--dk-accent-red); color: var(--dk-accent-red);
  font: 800 19px/1 var(--dk-font-display); display: flex; align-items: center; justify-content: center; }
.page-self-study-zz__c { grid-column: 1; grid-row: 1; justify-self: end; width: 100%; max-width: 420px;
  background: #fff; border: 1px solid var(--dk-hairline-soft); border-radius: var(--dk-radius-lg);
  padding: 20px 24px; margin: 10px 0; text-align: center;
  box-shadow: 0 1px 2px rgba(20,40,90,.10), 0 10px 22px -6px rgba(20,40,90,.20); }
.page-self-study-zz__i:nth-child(even) .page-self-study-zz__c { grid-column: 3; justify-self: start; }
.page-self-study-zz__c h3 { font: var(--dk-display-xs); font-size: 22px; color: var(--dk-ink);
  margin: 0; letter-spacing: var(--dk-track-snug); }
.dk .page-self-study-zz__c p { font: var(--dk-body-md); color: var(--dk-fg-3);
  line-height: 1.7; margin: 9px 0 0; }
.dk .page-self-study-zz__c .page-self-study-zz__list { font-size: 17px; font-weight: 700;
  color: var(--dk-fg-2); line-height: 1.9; }
.page-self-study-zz__list i { font-style: normal; font-weight: 400;
  color: var(--dk-hairline); padding: 0 9px; }
@media (max-width: 760px) {
  .page-self-study-zz__i, .page-self-study-zz__i:nth-child(even) { grid-template-columns: 52px 1fr; }
  .page-self-study-zz__rail { grid-column: 1; min-height: 0; }
  .page-self-study-zz__n { width: 40px; height: 40px; font-size: 15px; }
  .page-self-study-zz__c,
  .page-self-study-zz__i:nth-child(even) .page-self-study-zz__c { grid-column: 2; justify-self: stretch;
    width: auto; max-width: none; padding: 16px 18px; margin: 8px 0 8px 10px; }
  .page-self-study-zz__c h3 { font-size: 18px; }
}

/* ★회장 지시(2026-08-21) — 01 카드는 원안대로 검정 강조 + 알약으로 되돌린다.
   흰 카드로 통일했더니 흐름의 시작점이 죽었다. 타이틀만 새 것을 유지한다.
   (02 CHECK 쪽 01 은 흰 카드 그대로 — 그쪽 6개는 순서가 아니라 병렬 항목이라
    한 칸만 검정이면 그 항목이 특별하다는 뜻이 된다.) */
.page-self-study-zz__i--hi .page-self-study-zz__c {
  background: var(--dk-surface-dark); border-color: var(--dk-surface-dark); }
.page-self-study-zz__i--hi .page-self-study-zz__c h3 { color: #fff; }
.page-self-study-zz__pills { display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 14px; justify-content: center; }
.page-self-study-zz__pills span { font-size: 13px; font-weight: 700; color: #fff;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28);
  border-radius: var(--dk-radius-full); padding: 9px 14px; line-height: 1; }

/* ── 축과 갈래 (02 CHECK) ──────────────────────────────────────────
   회장 지시(2026-08-21) — 담당자 확인 6항목은 순서가 아니라 병렬이라
   지그재그(순서로 읽힘) 대신 하나가 여럿으로 갈라지는 형태로 바꾼다.
   03 REVIEW 는 지그재그 그대로 — 다양성은 섹션 사이에 둔다. */
.page-self-study-fk { display: grid; grid-template-columns: minmax(200px, 260px) 1fr; }
.page-self-study-fk__head { background: var(--dk-surface-dark); color: #fff;
  border-radius: var(--dk-radius-lg); padding: 24px; align-self: start; }
.page-self-study-fk__head .k { display: block; font-size: 13px; font-weight: 700;
  letter-spacing: 1px; color: var(--dk-accent-onDark); margin-bottom: 10px; }
.page-self-study-fk__head h3 { font: var(--dk-display-xs); font-size: 22px; color: #fff;
  margin: 0; letter-spacing: var(--dk-track-snug); }
.page-self-study-fk__branch { position: relative; padding-left: 56px; }
.page-self-study-fk__branch::before { content: ""; position: absolute; left: 28px;
  top: 30px; bottom: 30px; border-left: 2px solid var(--dk-hairline-cool); }
.page-self-study-fk__row { position: relative; display: flex; align-items: center; gap: 14px;
  background: #fff; border: 1px solid var(--dk-hairline-soft);
  border-radius: var(--dk-radius-md); padding: 16px 20px; margin-bottom: 12px; }
.page-self-study-fk__row:last-child { margin-bottom: 0; }
.page-self-study-fk__row::before { content: ""; position: absolute; left: -28px; top: 50%;
  width: 28px; border-top: 2px solid var(--dk-hairline-cool); }
.page-self-study-fk__ico { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%;
  background: var(--dk-accent-red-bg); display: flex; align-items: center;
  justify-content: center; color: var(--dk-accent-red); }
.page-self-study-fk__ico svg { width: 21px; height: 21px; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dk .page-self-study-fk__row b { font-size: 17px; font-weight: 700; color: var(--dk-ink);
  line-height: 1.45; }
@media (max-width: 760px) {
  .page-self-study-fk { grid-template-columns: 1fr; }
  .page-self-study-fk__head { margin-bottom: 18px; padding: 20px; }
  .page-self-study-fk__branch { padding-left: 34px; }
  .page-self-study-fk__branch::before { left: 12px; }
  .page-self-study-fk__row { padding: 13px 15px; gap: 11px; }
  .page-self-study-fk__row::before { left: -22px; width: 22px; }
  .dk .page-self-study-fk__row b { font-size: 15px; }
  .page-self-study-fk__ico { flex-basis: 34px; width: 34px; height: 34px; }
}

/* ── 패널 3칸 + 육각 배지 + 점선 레일 (04 SUPPORT) ─────────────────
   회장 지시(2026-08-21) — 레퍼런스 벤치마킹. 원본은 패널마다 다른 색인데
   그건 안 가져온다: ①회장이 색약이라 색으로 구분시키면 안 되고
   ②우리 팔레트는 코발트 단색이다. 형태(패널·육각 배지·점선 노드)만 가져오고
   구분은 아이콘과 제목이 한다. 번호도 안 붙인다 — 이 3개는 순서가 아니다. */
.page-self-study-op { display: grid; grid-template-columns: repeat(3, 1fr);
  gap: var(--dk-gap-sm); position: relative; padding-bottom: 56px; margin-top: 34px; }
.page-self-study-op::before { content: ""; position: absolute; left: 16%; right: 16%;
  bottom: 26px; border-top: 2px dashed var(--dk-hairline-cool); }
.page-self-study-op__c { position: relative; background: #fff;
  border: 1px solid var(--dk-hairline-soft); border-radius: var(--dk-radius-lg);
  padding: 46px 24px 26px; }
.page-self-study-op__c::after { content: ""; position: absolute; bottom: -41px; left: 50%;
  width: 18px; height: 18px; border-radius: 50%; background: #fff;
  border: 3px solid var(--dk-accent-red); transform: translateX(-50%); }
.page-self-study-op__hex { position: absolute; top: -24px; left: 24px;
  width: 54px; height: 60px; background: var(--dk-accent-red); color: #fff;
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  display: flex; align-items: center; justify-content: center; }
.page-self-study-op__hex svg { width: 24px; height: 24px; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.page-self-study-op__c h3 { font: var(--dk-display-xs); font-size: 20px; color: var(--dk-ink);
  margin: 0 0 12px; letter-spacing: var(--dk-track-snug); }
.dk .page-self-study-op__c p { font: var(--dk-body-sm); font-size: 15px;
  color: var(--dk-fg-3); line-height: 1.8; margin: 0; }
@media (max-width: 880px) {
  .page-self-study-op { grid-template-columns: 1fr; gap: 26px;
    padding-bottom: 0; padding-left: 40px; }
  .page-self-study-op::before { left: 13px; right: auto; top: 26px; bottom: 26px;
    border-top: 0; border-left: 2px dashed var(--dk-hairline-cool); }
  .page-self-study-op__c { padding: 40px 20px 22px; }
  /* ⚠️ -40px 은 padding-left 값을 그대로 쓴 것인데, 점선 축은 그 안 12px 에 있다.
     그래서 원이 축에서 12px 벗어나 화면 가장자리에 반쯤 물려 있었다.
     축 위에 올리려면 (padding-left 40 − 축 12) = 28px 만큼만 왼쪽으로 간다. */
  .page-self-study-op__c::after { bottom: auto; top: 50%; left: -28px;
    transform: translate(-50%, -50%); }
  .page-self-study-op__c h3 { font-size: 18px; }
}

/* ★회장 지적(2026-08-21) — 순회 사진이 03 REVIEW 것인데 바깥에 떠 있어서
   위(인포그래픽)와는 멀고 아래 04 섹션과는 붙어 있었다. 블록을 섹션 안으로
   넣었더니 이번엔 위쪽 간격이 0 이 됐다(바깥용 margin-block 이 섹션 안에서 상쇄).
   섹션 내부 여백 스케일로 띄운다. 아래 간격은 섹션 패딩이 만든다. */
/* ⚠️ margin 만 껐더니 padding-block 96px 이 그대로 남아 섹션 패딩과 이중으로 붙었다.
   사진 아래가 192px(폰 112px) — 다른 섹션의 두 배였다. 바깥에 있을 때 쓰던
   섹션 리듬용 패딩이라 안에서는 필요 없다. */
.dk-sec .dk-ph-block { padding-block: 0; margin-top: var(--dk-gap-lg); margin-bottom: 0; }

/* 육각 배지를 가운데로 옮겼다가 되돌렸다(회장, 2026-08-21) —
   본문이 좌측 정렬인데 배지만 가운데면 축이 두 개가 된다. 배지는 글 시작선에 맞춘다. */
