/* Migration service family (WS38). Layered on hub.css + productmodule/module.css; tokens only. */
.cm-mig .cm-mig-factors { margin: var(--sp-8) 0 0; padding: 0; list-style: none; display: grid; gap: var(--sp-16); }
.cm-mig .cm-mig-factor { padding: var(--sp-20) var(--sp-24); background: var(--c-surface-0); border: 1px solid var(--c-lx-line); border-radius: var(--lx-radius-sm); box-shadow: var(--shadow-lx-1); }
.cm-mig .cm-mig-factor h3 { margin: 0 0 var(--sp-8); font-family: var(--font-heading); font-size: var(--text-h4); font-weight: var(--fw-semibold); color: var(--c-navy-900); }
.cm-mig .cm-mig-factor p { margin: 0 0 var(--sp-8); }
.cm-mig .cm-mig-card__photo { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; background: var(--c-navy-900); }
.cm-mig .cm-mig-card__photo .cm-pm-bg { position: absolute; inset: 0; }
.cm-mig .cm-mig-platforms { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .cm-mig .cm-mig-platforms { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .cm-mig .cm-mig-platforms { grid-template-columns: minmax(0, 1fr); } }
/* Moves table: stack rows on phones so the second column is never clipped. */
@media (max-width: 640px) {
	.cm-mig .cm-pm-table, .cm-mig .cm-pm-table tbody, .cm-mig .cm-pm-table tr, .cm-mig .cm-pm-table th, .cm-mig .cm-pm-table td { display: block; width: 100%; box-sizing: border-box; min-width: 0; }
	.cm-mig .cm-pm-table { min-width: 0 !important; width: 100% !important; max-width: 100%; }
	.cm-mig .cm-pm-table thead { display: none; }
	.cm-mig .cm-pm-table tbody th { width: 100%; padding-bottom: var(--sp-4); border-bottom: 0; }
	.cm-mig .cm-pm-table td { padding-top: 0; }
}
