/* figures.css — 图片版式库 (SPEC §6.6)
 * 必须在 book.css 之后加载
 */

:root {
  --figure-gap: 2.6mm;
  --figure-soft-shadow: 0 0.7mm 2.2mm rgba(0, 0, 0, 0.12);
}

/* ── full: 整页宽 113mm ──────────────────────────────────────────── */
.fig-full {
  width: 100%;
  margin: 7mm 0 8mm;
  clear: both;
}

.fig-full img {
  width: 100%;
  max-height: 142mm;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

/* ── full-bleed: 出血到页边 ─────────────────────────────────────── */
.fig-full-bleed {
  margin-left:  calc(-1 * var(--print-margin-left));
  margin-right: calc(-1 * var(--print-margin-right));
  margin-top: 7mm;
  margin-bottom: 8mm;
  clear: both;
}

.fig-full-bleed img {
  width:  calc(100% + var(--print-margin-left) + var(--print-margin-right));
  max-height: 150mm;
  max-width: none;
  object-fit: cover;
  display: block;
}

/* ── half-left / half-right: 半幅环绕 ───────────────────────────── */
.fig-half-left {
  float: left;
  width: 48%;
  margin: 1mm 5mm 4mm 0;
  clear: left;
}

.fig-half-right {
  float: right;
  width: 48%;
  margin: 1mm 0 4mm 5mm;
  clear: right;
}

.fig-half-left img,
.fig-half-right img {
  width: 100%;
  max-height: 82mm;
  height: auto;
  object-fit: contain;
  display: block;
}

/* 人物照禁止环绕: category=person 时 half 版式不生效 */
figure[data-category="person"].fig-half-left,
figure[data-category="person"].fig-half-right {
  float: none;
  width: 100%;
  margin: 7mm 0 8mm;
}

/* ── third-inline: 1/3 幅嵌入 ───────────────────────────────────── */
.fig-third-inline {
  float: left;
  width: 34%;
  margin: 1mm 4mm 3.5mm 0;
  clear: left;
}

.fig-third-inline img {
  width: 100%;
  max-height: 64mm;
  height: auto;
  object-fit: contain;
  display: block;
}

figure[data-category="person"].fig-third-inline {
  float: none;
  width: 100%;
  margin: 7mm 0 8mm;
}

/* ── spread-half: 跨页中缝 ──────────────────────────────────────── */
.fig-spread-half {
  page-break-before: left;   /* 从左页开始 */
  width: 100%;
  height: 124mm;
  overflow: hidden;
  margin: 0 calc(-1 * var(--print-margin-left));
  padding: 0;
  clear: both;
}

.fig-spread-half img {
  width: calc(100% + var(--print-margin-left) + var(--print-margin-right));
  max-width: none;
  height: 124mm;
  object-fit: cover;
  display: block;
}

/* ── grid-2: 两图并列 ───────────────────────────────────────────── */
.fig-grid-2,
.fig-grid-3,
.fig-grid-4 {
  display: grid;
  gap: var(--figure-gap);
  width: 100%;
  margin: 7mm 0 8mm;
  break-inside: avoid;
  page-break-inside: avoid;
  clear: both;
}

.fig-grid-2 {
  grid-template-columns: 1fr 1fr;
}

/* ── grid-3: 三图 ────────────────────────────────────────────────── */
.fig-grid-3 {
  grid-template-columns: 1.55fr 1fr;
  grid-template-rows: 1fr 1fr;
}

.fig-grid-3 .fig-cell:first-child {
  grid-row: 1 / 3;
}

/* ── grid-4: 四图 2×2 ───────────────────────────────────────────── */
.fig-grid-4 {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
}

/* ── 网格内图片通用 ──────────────────────────────────────────────── */
.fig-grid-2 img,
.fig-grid-3 img,
.fig-grid-4 img {
  width: 100%;
  object-fit: cover;
  display: block;
}

.fig-grid-2 img {
  height: 62mm;
}

.fig-grid-3 img {
  height: 38mm;
}

.fig-grid-3 .fig-cell:first-child img {
  height: calc(76mm + var(--figure-gap));
}

.fig-grid-4 img {
  height: 42mm;
}

.fig-cell {
  min-width: 0;
  break-inside: avoid;
  page-break-inside: avoid;
}

.fig-cell figcaption {
  font-size: 8pt;
  line-height: 1.38;
  margin-top: 1.5mm;
  margin-bottom: 0;
  padding-left: 2.4mm;
}

/* ── 浮动清除辅助 ────────────────────────────────────────────────── */
.clearfix::after {
  content: '';
  display: table;
  clear: both;
}

/* ── 组图 figcaption 居中 ────────────────────────────────────────── */
.fig-grid-2 > figcaption,
.fig-grid-3 > figcaption,
.fig-grid-4 > figcaption {
  grid-column: 1 / -1;
  margin-top: 0;
}

.fig-full img,
.fig-full-bleed img,
.fig-spread-half img,
.fig-grid-2 img,
.fig-grid-3 img,
.fig-grid-4 img {
  box-shadow: var(--figure-soft-shadow);
}
