.module-page { min-height: 64vh; padding: 50px 0 92px; }
.back-link { display: inline-flex; margin-bottom: 30px; color: var(--forest); font-size: 13px; font-weight: 800; }
.module-intro { width: 100%; max-width: none; padding: 22px 0 34px; border-bottom: 1px solid var(--line); }
.module-intro h1 { margin: 8px 0 16px; color: var(--forest-deep); font-size: clamp(34px, 4.5vw, 56px); line-height: 1.15; font-weight: 800; }
.module-intro > p:last-child { max-width: none; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.85; }
.module-list { display: grid; width: 100%; max-width: none; gap: 14px; margin-top: 30px; }
.module-item { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; padding: 20px; border: 1px solid var(--line); background: transparent; box-shadow: none; }
.module-item-copy:only-child { grid-column: 1 / -1; }
.module-item img { display: block; width: 220px; height: 140px; aspect-ratio: 11 / 7; object-fit: cover; object-position: center; background: var(--sage); }
.module-item-copy h2 { margin: 4px 0 9px; color: var(--forest); font-size: 21px; line-height: 1.4; }
.module-item-copy > p:not(.module-item-meta) { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.module-item-meta { margin: 0; color: var(--coral); font: 11px var(--mono); letter-spacing: .04em; }
.module-detail { margin-top: 11px; color: var(--muted); font-size: 14px; line-height: 1.8; white-space: pre-line; }
.module-item-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; }
.module-item-link { color: var(--coral); font-size: 12px; font-weight: 800; }
.module-item-link:hover { color: var(--forest); }
.module-empty { margin-top: 30px; padding: 30px; border: 1px dashed var(--line); background: var(--sage); color: var(--muted); }
@media (max-width: 900px) { .module-item { grid-template-columns: 190px minmax(0, 1fr); } .module-item img { width: 190px; height: 122px; } }
@media (max-width: 700px) { .module-page { padding-top: 32px; } .module-item { grid-template-columns: 1fr; gap: 14px; } .module-item img { width: 100%; height: auto; aspect-ratio: 16 / 9; } .module-item-copy h2 { font-size: 19px; } }
.module-item-copy h2 { font-size: var(--portal-card-title-size, 21px); font-weight: var(--portal-heading-weight, 800); }
