/* ===== MAGAZINE (웹진) — 목록 + 상세 ===== */

/* 업로드 워터마크 빈 박스 (이미지 자리) */
.ph {
  position: relative; background: #202020;
  border: 1px dashed rgba(255, 255, 255, .22);
}
.ph::after {
  content: "UPLOAD"; position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: rgba(255, 255, 255, .3); font-size: 11px; letter-spacing: 3px; font-weight: 600;
}

/* ---------- 목록 ---------- */
.mag-main { padding-bottom: 140px; padding-left: 2cm; }
.mag-list { margin-top: 50px; display: flex; flex-direction: column; }

.mag-row {
  display: flex; align-items: center; gap: 40px;
  padding: 30px 0; border-top: 1px solid rgba(255, 255, 255, .14);
  color: #fff; transition: padding-left .35s var(--ease);
}
.mag-row:last-child { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.mag-row:hover { padding-left: 14px; }

.mag-thumb { flex: 0 0 320px; aspect-ratio: 4 / 3; overflow: hidden; background: #1f1f1f; }
.mag-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.mag-row:hover .mag-thumb img { transform: scale(1.05); }

.mag-info { flex: 1 1 auto; }
.mag-title { font-size: clamp(20px, 2.2vw, 28px); font-weight: 700; letter-spacing: -0.6px; line-height: 1.4; }
.mag-source { margin-top: 16px; font-size: 12px; font-weight: 500; letter-spacing: 0.4px; text-transform: uppercase; color: rgba(255, 255, 255, .5); }

/* ---------- 상세 ---------- */
.mag-article { padding-bottom: 60px; }
.ar { max-width: 760px; margin: 0 auto; }
.ar-tag { font-size: 12px; font-weight: 600; letter-spacing: 0.4px; color: rgba(255, 255, 255, .55); text-transform: uppercase; }
.ar-title { margin-top: 16px; font-size: clamp(26px, 3.4vw, 42px); font-weight: 700; letter-spacing: -1px; line-height: 1.3; }
.ar-meta { margin-top: 18px; font-size: 13px; letter-spacing: 0.3px; color: rgba(255, 255, 255, .5); text-transform: uppercase; }
.ar-hero { margin-top: 40px; aspect-ratio: 16 / 9; }
.ar-body { margin-top: 44px; }
.ar-body p { font-size: 16px; line-height: 1.9; color: rgba(255, 255, 255, .82); margin-bottom: 26px; }
.ar-img { aspect-ratio: 16 / 10; margin: 36px 0; }

/* 이전 / 목록 / 다음 */
.ar-nav {
  max-width: 760px; margin: 60px auto 0; display: flex; justify-content: space-between; align-items: center;
  padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .15);
}
.ar-nav a { color: #fff; opacity: .65; font-size: 13px; font-weight: 700; letter-spacing: -0.2px; text-transform: uppercase; transition: opacity .25s; }
.ar-nav a:hover { opacity: 1; }
.ar-list { letter-spacing: 1px; }

@media (max-width: 760px) {
  .mag-row { flex-direction: column; align-items: stretch; gap: 16px; }
  .mag-thumb { flex: none; width: 100%; }
}
